
SCREAMING_SNAKE_CASE__     :    List[Any]      							=					{
    "A": ("ABCDEFGHIJKLM", "NOPQRSTUVWXYZ"),
    "B": ("ABCDEFGHIJKLM", "NOPQRSTUVWXYZ"),
    "C": ("ABCDEFGHIJKLM", "ZNOPQRSTUVWXY"),
    "D": ("ABCDEFGHIJKLM", "ZNOPQRSTUVWXY"),
    "E": ("ABCDEFGHIJKLM", "YZNOPQRSTUVWX"),
    "F": ("ABCDEFGHIJKLM", "YZNOPQRSTUVWX"),
    "G": ("ABCDEFGHIJKLM", "XYZNOPQRSTUVW"),
    "H": ("ABCDEFGHIJKLM", "XYZNOPQRSTUVW"),
    "I": ("ABCDEFGHIJKLM", "WXYZNOPQRSTUV"),
    "J": ("ABCDEFGHIJKLM", "WXYZNOPQRSTUV"),
    "K": ("ABCDEFGHIJKLM", "VWXYZNOPQRSTU"),
    "L": ("ABCDEFGHIJKLM", "VWXYZNOPQRSTU"),
    "M": ("ABCDEFGHIJKLM", "UVWXYZNOPQRST"),
    "N": ("ABCDEFGHIJKLM", "UVWXYZNOPQRST"),
    "O": ("ABCDEFGHIJKLM", "TUVWXYZNOPQRS"),
    "P": ("ABCDEFGHIJKLM", "TUVWXYZNOPQRS"),
    "Q": ("ABCDEFGHIJKLM", "STUVWXYZNOPQR"),
    "R": ("ABCDEFGHIJKLM", "STUVWXYZNOPQR"),
    "S": ("ABCDEFGHIJKLM", "RSTUVWXYZNOPQ"),
    "T": ("ABCDEFGHIJKLM", "RSTUVWXYZNOPQ"),
    "U": ("ABCDEFGHIJKLM", "QRSTUVWXYZNOP"),
    "V": ("ABCDEFGHIJKLM", "QRSTUVWXYZNOP"),
    "W": ("ABCDEFGHIJKLM", "PQRSTUVWXYZNO"),
    "X": ("ABCDEFGHIJKLM", "PQRSTUVWXYZNO"),
    "Y": ("ABCDEFGHIJKLM", "OPQRSTUVWXYZN"),
    "Z": ("ABCDEFGHIJKLM", "OPQRSTUVWXYZN"),
}




def 				__magic_name__				(     __lowerCAmelCase			:		Optional[int]							)    ->     list[tuple[str, str]]:
				return [alphabet[char] for char in key.upper()]




def 				__magic_name__				(     __lowerCAmelCase			:		Dict	,						__lowerCAmelCase			:		Dict							)    ->     str:
				__lowerCamelCase					      =			''''''
				__lowerCamelCase					      =			0
				__lowerCamelCase					      =			generate_table(lowercase_							)
				for char in words.upper():
								cipher += get_opponent(table[count]	,						lowercase_							)
								__lowerCamelCase					      =			(count + 1) % len(lowercase_							)
				return cipher




def 				__magic_name__				(     __lowerCAmelCase			:		List[str]	,						__lowerCAmelCase			:		Optional[Any]							)    ->     str:
				return encrypt(lowercase_	,						lowercase_							)




def 				__magic_name__				(     __lowerCAmelCase			:		int	,						__lowerCAmelCase			:		Dict							)    ->     tuple[int, int]:
				__lowerCamelCase					      =			0 if char in table[0] else 1
				__lowerCamelCase					      =			table[row].index(lowercase_							)
				return row, col




def 				__magic_name__				(     __lowerCAmelCase			:		Optional[int]	,						__lowerCAmelCase			:		Optional[int]							)    ->     str:
				__lowerCamelCase					      =			get_position(lowercase_	,						char.upper()							)
				if row == 1:
								return table[0][col]
				else:
								return table[1][col] if row == 0 else char


if __name__ == "__main__":
					import doctest

					doctest.testmod()  # Fist ensure that all our tests are passing...
					SCREAMING_SNAKE_CASE__     :    Optional[Any]      							=					input("Enter key: ").strip()
					SCREAMING_SNAKE_CASE__     :    Tuple      							=					input("Enter text to encrypt: ").strip()
					SCREAMING_SNAKE_CASE__     :    List[str]      							=					encrypt(key, text)

					print(F'Encrypted: {cipher_text}')
					print(F'Decrypted with key: {decrypt(key, cipher_text)}')




def 				__magic_name__				(     __lowerCAmelCase			:		list	,						__lowerCAmelCase			:		int	,						__lowerCAmelCase			:		int	,						__lowerCAmelCase			:		int							)    ->     int:
				__lowerCamelCase					      =			int((lower_bound + upper_bound) // 2							)
				if array[r] == value:
								return r
				if lower_bound >= upper_bound:
								return -1
				if array[r] < value:
								return binary_search(__lowerCAmelCase	,						r + 1	,						__lowerCAmelCase	,						__lowerCAmelCase							)
				else:
								return binary_search(__lowerCAmelCase	,						__lowerCAmelCase	,						r - 1	,						__lowerCAmelCase							)




def 				__magic_name__				(     __lowerCAmelCase			:		int	,						__lowerCAmelCase			:		list							)    ->     list:
				__lowerCamelCase					      =			0
				if matrix[index][0] == value:
								return [index, 0]
				while index < len(__lowerCAmelCase							) and matrix[index][0] < value:
								__lowerCamelCase					      =			binary_search(matrix[index]	,						0	,						len(matrix[index]							) - 1	,						__lowerCAmelCase							)
								if r != -1:
												return [index, r]
								index += 1
				return [-1, -1]


if __name__ == "__main__":
					import doctest

					doctest.testmod()



