



import math
from datetime import datetime, timedelta






def 				A				(					_lowerCamelCase  ):





							'''simple docstring'''




							_lowerCAmelCase     :							int    =    year % 19
							_lowerCAmelCase     :							Optional[int]    =    year % 4
							_lowerCAmelCase     :							Optional[Any]    =    year % 7
							_lowerCAmelCase     :							List[Any]    =    math.floor(year / 100  )
							_lowerCAmelCase     :							Any    =    math.floor((13 + 8 * leap_day_inhibits) / 25  )
							_lowerCAmelCase     :							str    =    leap_day_inhibits / 4
							_lowerCAmelCase     :							Union[str, Any]    =    (
							    15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
							) % 30
							_lowerCAmelCase     :							Union[str, Any]    =    (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

							# days to be added to March 21
							_lowerCAmelCase     :							str    =    (19 * metonic_cycle + secular_moon_shift) % 30

							# PHM -> Paschal Full Moon
							_lowerCAmelCase     :							Any    =    (
							    2 * julian_leap_year
							    + 4 * non_leap_year
							    + 6 * days_to_add
							    + century_starting_point
							) % 7

							if days_to_add == 29 and days_from_phm_to_sunday == 6:
														return datetime(_lowerCamelCase				, 4				, 19  )
							elif days_to_add == 28 and days_from_phm_to_sunday == 6:
														return datetime(_lowerCamelCase				, 4				, 18  )
							else:
														return datetime(_lowerCamelCase				, 3				, 22  ) + timedelta(
														    days=int(days_to_add + days_from_phm_to_sunday  )  )


if __name__ == "__main__":
						for year in (1994, 2000, 2010, 2021, 2023):
												_snake_case		=  "will be" if year > datetime.now().year else "was"
												print(f'''Easter in {year} {tense} {gauss_easter(year)}''')



'''simple docstring'''






import os

lowerCAmelCase__											=	{'''I''': 1, '''V''': 5, '''X''': 10, '''L''': 50, '''C''': 100, '''D''': 500, '''M''': 1000}


def 		_A     (    A__      ):






 """simple docstring"""



 __lowercase							  = 0

 __lowercase							  = 0
 while index < len(A__      ) - 1:
  __lowercase							  = SYMBOLS[numerals[index]]
  __lowercase							  = SYMBOLS[numerals[index + 1]]
  if current_value < next_value:
   total_value -= current_value
  else:
   total_value += current_value
  index += 1
 total_value += SYMBOLS[numerals[index]]

 return total_value


def 		_A     (    A__      ):






 """simple docstring"""



 __lowercase							  = ''''''

 __lowercase							  = num // 1000
 numerals += m_count * "M"
 num %= 1000

 __lowercase							  = num // 100
 if c_count == 9:
  numerals += "CM"
  c_count -= 9
 elif c_count == 4:
  numerals += "CD"
  c_count -= 4
 if c_count >= 5:
  numerals += "D"
  c_count -= 5
 numerals += c_count * "C"
 num %= 100

 __lowercase							  = num // 10
 if x_count == 9:
  numerals += "XC"
  x_count -= 9
 elif x_count == 4:
  numerals += "XL"
  x_count -= 4
 if x_count >= 5:
  numerals += "L"
  x_count -= 5
 numerals += x_count * "X"
 num %= 10

 if num == 9:
  numerals += "IX"
  num -= 9
 elif num == 4:
  numerals += "IV"
  num -= 4
 if num >= 5:
  numerals += "V"
  num -= 5
 numerals += num * "I"

 return numerals


def 		_A     (    A__ = "/p089_roman.txt"      ):






 """simple docstring"""



 __lowercase							  = 0

 with open(os.path.dirname(A__      ) + roman_numerals_filename      ) as filea:
  __lowercase							  = filea.readlines()

 for line in lines:
  __lowercase							  = line.strip()
  __lowercase							  = parse_roman_numerals(A__      )
  __lowercase							  = generate_roman_numerals(A__      )
  savings += len(A__      ) - len(A__      )

 return savings


if __name__ == "__main__":
 print(f'{solution() = }')

