





"""simple docstring"""


__magic_name__       :					str						=			{
    """A""": """.-""", """B""": """-...""", """C""": """-.-.""", """D""": """-..""", """E""": """.""", """F""": """..-.""", """G""": """--.""",
    """H""": """....""", """I""": """..""", """J""": """.---""", """K""": """-.-""", """L""": """.-..""", """M""": """--""", """N""": """-.""",
    """O""": """---""", """P""": """.--.""", """Q""": """--.-""", """R""": """.-.""", """S""": """...""", """T""": """-""", """U""": """..-""",
    """V""": """...-""", """W""": """.--""", """X""": """-..-""", """Y""": """-.--""", """Z""": """--..""", """1""": """.----""",
    """2""": """..---""", """3""": """...--""", """4""": """....-""", """5""": """.....""", """6""": """-....""", """7""": """--...""",
    """8""": """---..""", """9""": """----.""", """0""": """-----""", """&""": """.-...""", """@""": """.--.-.""",
    """:""": """---...""", """,""": """--..--""", """.""": """.-.-.-""", """'""": """.----.""", """\"""": """.-..-.""",
    """?""": """..--..""", """/""": """-..-.""", """=""": """-...-""", """+""": """.-.-.""", """-""": """-....-""",
    """(""": """-.--.""", """)""": """-.--.-""", """!""": """-.-.--""", """ """: """/"""
}  # Exclamation mark is not in ITU-R recommendation
# fmt: on
__magic_name__       :					int						=			{value: key for key, value in MORSE_CODE_DICT.items()}

def      UpperCamelCase							(SCREAMING_SNAKE_CASE     ):
						return " ".join(MORSE_CODE_DICT[char] for char in message.upper()     )

def      UpperCamelCase							(SCREAMING_SNAKE_CASE     ):
						return "".join(REVERSE_DICT[char] for char in message.split()     )

def      UpperCamelCase							():
						UpperCamelCase				:		Any				   =			"""Morse code here!"""
						print(SCREAMING_SNAKE_CASE     )
						UpperCamelCase				:		Optional[int]				   =			encrypt(SCREAMING_SNAKE_CASE     )
						print(SCREAMING_SNAKE_CASE     )
						UpperCamelCase				:		Optional[Any]				   =			decrypt(SCREAMING_SNAKE_CASE     )
						print(SCREAMING_SNAKE_CASE     )


if __name__ == "__main__":
		main()





from __future__ import annotations




class 					lowerCamelCase__				:




	'''simple docstring'''




	def __init__(   self						:Dict	,  a						:str	,  a						:str		)						->					Union[str, Any]:
								__UpperCamelCase  ,		__UpperCamelCase      :  Optional[int]       =   text, pattern
								__UpperCamelCase  ,		__UpperCamelCase      :  Tuple       =   len(a		), len(a		)







	def   _lowerCamelCase							(   self						:Any	,  a						:str		)						->					int:

								for i in range(self.patLen - 1	,  -1	,  -1		):
															if char == self.pattern[i]:
																						return i
								return -1







	def   _lowerCamelCase							(   self						:str	,  a						:int		)						->					int:

								for i in range(self.patLen - 1	,  -1	,  -1		):
															if self.pattern[i] != self.text[current_pos + i]:
																						return current_pos + i
								return -1







	def   _lowerCamelCase							(   self						:Union[str, Any]		)						->					list[int]:
								# searches pattern in text and returns index positions
								__UpperCamelCase      :  Any       =   []
								for i in range(self.textLen - self.patLen + 1		):
															__UpperCamelCase      :  List[Any]       =   self.mismatch_in_text(a		)
															if mismatch_index == -1:
																						positions.append(a		)
															else:
																						__UpperCamelCase      :  Any       =   self.match_in_pattern(self.text[mismatch_index]		)
																						__UpperCamelCase      :  Dict       =   (
																						    mismatch_index - match_index
																						)  # shifting index lgtm [py/multiple-definition]
								return positions
lowercase    :   Any						=			'ABAABA'
lowercase    :   str						=			'AB'
lowercase    :   str						=			BoyerMooreSearch(text, pattern)
lowercase    :   Union[str, Any]						=			bms.bad_character_heuristic()

if len(positions) == 0:
		print('No match found')
else:
		print('Pattern found in following positions: ')
		print(positions)