






"""simple docstring"""
import numpy as np

lowerCamelCase_							      = [
    ['''a''', '''b''', '''c''', '''d''', '''e'''],
    ['''f''', '''g''', '''h''', '''i''', '''k'''],
    ['''l''', '''m''', '''n''', '''o''', '''p'''],
    ['''q''', '''r''', '''s''', '''t''', '''u'''],
    ['''v''', '''w''', '''x''', '''y''', '''z'''],
]







class      UpperCamelCase_			:





	def __init__( self   :					int		)		->     None:
				UpperCAmelCase_	:					Union[str, Any]     	=   np.array(lowerCAmelCase_		)





	def 	_SCREAMING_SNAKE_CASE ( self   :					Optional[int]      ,      lowerCAmelCase_   :					str		)		->     np.ndarray:
				UpperCAmelCase_	,      UpperCAmelCase_	:					Tuple     	=   np.where(letter == self.SQUARE		)
				UpperCAmelCase_	:					int     	=   np.concatenate([indexa + 1, indexa + 1]		)
				return indexes





	def 	_SCREAMING_SNAKE_CASE ( self   :					List[str]      ,      lowerCAmelCase_   :					int      ,      lowerCAmelCase_   :					int		)		->     str:
				UpperCAmelCase_	:					List[Any]     	=   self.SQUARE[indexa - 1, indexa - 1]
				return letter





	def 	_SCREAMING_SNAKE_CASE ( self   :					Any      ,      lowerCAmelCase_   :					str		)		->     str:
				UpperCAmelCase_	:					Dict     	=   message.lower()
				UpperCAmelCase_	:					str     	=   message.replace(" "      ,      ""		)
				UpperCAmelCase_	:					List[Any]     	=   message.replace("j"      ,      "i"		)

				UpperCAmelCase_	:					List[str]     	=   np.empty((2, len(lowerCAmelCase_		))		)
				for letter_index in range(len(lowerCAmelCase_		)		):
							UpperCAmelCase_	:					Dict     	=   self.letter_to_numbers(message[letter_index]		)

							UpperCAmelCase_	:					Union[str, Any]     	=   numbers[0]
							UpperCAmelCase_	:					Tuple     	=   numbers[1]

				UpperCAmelCase_	:					Any     	=   first_step.reshape(2 * len(lowerCAmelCase_		)		)
				UpperCAmelCase_	:					Tuple     	=   ""
				for numbers_index in range(len(lowerCAmelCase_		)		):
							UpperCAmelCase_	:					Any     	=   int(second_step[numbers_index * 2]		)
							UpperCAmelCase_	:					List[Any]     	=   int(second_step[(numbers_index * 2) + 1]		)
							UpperCAmelCase_	:					Union[str, Any]     	=   self.numbers_to_letter(lowerCAmelCase_      ,      lowerCAmelCase_		)
							UpperCAmelCase_	:					int     	=   encoded_message + letter

				return encoded_message





	def 	_SCREAMING_SNAKE_CASE ( self   :					List[Any]      ,      lowerCAmelCase_   :					str		)		->     str:
				UpperCAmelCase_	:					Optional[int]     	=   message.lower()
				message.replace(" "      ,      ""		)
				UpperCAmelCase_	:					str     	=   np.empty(2 * len(lowerCAmelCase_		)		)
				for letter_index in range(len(lowerCAmelCase_		)		):
							UpperCAmelCase_	:					str     	=   self.letter_to_numbers(message[letter_index]		)
							UpperCAmelCase_	:					List[Any]     	=   numbers[0]
							UpperCAmelCase_	:					Tuple     	=   numbers[1]

				UpperCAmelCase_	:					Any     	=   first_step.reshape((2, len(lowerCAmelCase_		))		)
				UpperCAmelCase_	:					List[Any]     	=   ""
				for numbers_index in range(len(lowerCAmelCase_		)		):
							UpperCAmelCase_	:					Optional[Any]     	=   int(second_step[0, numbers_index]		)
							UpperCAmelCase_	:					Tuple     	=   int(second_step[1, numbers_index]		)
							UpperCAmelCase_	:					str     	=   self.numbers_to_letter(lowerCAmelCase_      ,      lowerCAmelCase_		)
							UpperCAmelCase_	:					List[Any]     	=   decoded_message + letter

				return decoded_message











import math
from datetime import datetime, timedelta






def      _snake_case     (__lowercase):
   UpperCamelCase_						=  year % 19
   UpperCamelCase_						=  year % 4
   UpperCamelCase_						=  year % 7
   UpperCamelCase_						=  math.floor(year / 100)
   UpperCamelCase_						=  math.floor((13 + 8 * leap_day_inhibits) / 25)
   UpperCamelCase_						=  leap_day_inhibits / 4
   UpperCamelCase_						=  (
       15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
   ) % 30
   UpperCamelCase_						=  (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

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

   # PHM -> Paschal Full Moon
   UpperCamelCase_						=  (
       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(__lowercase     ,   4     ,   19)
   elif days_to_add == 28 and days_from_phm_to_sunday == 6:
      return datetime(__lowercase     ,   4     ,   18)
   else:
      return datetime(__lowercase     ,   3     ,   22) + timedelta(
          days=int(days_to_add + days_from_phm_to_sunday))


if __name__ == "__main__":
 for year in (1_9_9_4, 2_0_0_0, 2_0_1_0, 2_0_2_1, 2_0_2_3):
  snake_case__   :						Dict													=   """will be""" if year > datetime.now().year else """was"""
  print(f'Easter in {year} {tense} {gauss_easter(year)}')





