






from string import ascii_uppercase

def   SCREAMING_SNAKE_CASE_				(				__magic_name__   :    Dict      ,     __magic_name__   :    Optional[int]      ,     __magic_name__   :    List[Any] = False      ,     __magic_name__   :    Optional[Any] = ascii_uppercase   )						->     str:






	"""simple docstring"""



	UpperCamelCase	:str		=      keyword.upper()
	UpperCamelCase	:Optional[Any]		=      plaintext.upper()
	UpperCamelCase	:Optional[int]		=      set(_SCREAMING_SNAKE_CASE   )

	# create a list of unique characters in the keyword - their order matters
	# it determines how we will map plaintext characters to the ciphertext
	UpperCamelCase	:Dict		=      []
	for char in keyword:
		if char in alphabet_set and char not in unique_chars:
			unique_chars.append(_SCREAMING_SNAKE_CASE   )
			 # the number of those unique characters will determine the number of rows
	UpperCamelCase	:str		=      len(_SCREAMING_SNAKE_CASE   )

	# create a shifted version of the alphabet
	UpperCamelCase	:Union[str, Any]		=      unique_chars + [
	    char for char in alphabet if char not in unique_chars
	]

	# create a modified alphabet by splitting the shifted alphabet into rows
	UpperCamelCase	:str		=      [
	    shifted_alphabet[k : k + num_unique_chars_in_keyword]
	    for k in range(0      ,     26      ,     _SCREAMING_SNAKE_CASE   )
	]

	# map the alphabet characters to the modified alphabet characters
	# going 'vertically' through the modified alphabet - consider columns first
	UpperCamelCase	:List[str]		=      {}
	UpperCamelCase	:str		=      0
	for column in range(_SCREAMING_SNAKE_CASE   ):
		for row in modified_alphabet:
			# if current row (the last one) is too short, break out of loop
			if len(_SCREAMING_SNAKE_CASE   ) <= column:
				break

			# map current letter to letter in modified alphabet
			UpperCamelCase	:List[Any]		=      row[column]
			letter_index += 1

	if verbose:
		print(_SCREAMING_SNAKE_CASE   )
	# create the encrypted text by mapping the plaintext to the modified alphabet
	return "".join(mapping[char] if char in mapping else char for char in plaintext   )


if __name__ == "__main__":
	# example use
	print(mixed_keyword('''college''', '''UNIVERSITY'''))








"""simple docstring"""



from string import ascii_uppercase




def       snake_case__		(   _SCREAMING_SNAKE_CASE       ,	_SCREAMING_SNAKE_CASE       ,	_SCREAMING_SNAKE_CASE = False       ,	_SCREAMING_SNAKE_CASE = ascii_uppercase			)    ->str:
 UpperCAmelCase__ 						=				keyword.upper()
 UpperCAmelCase__ 						=				plaintext.upper()
 UpperCAmelCase__ 						=				set(_SCREAMING_SNAKE_CASE			)

 # create a list of unique characters in the keyword - their order matters
 # it determines how we will map plaintext characters to the ciphertext
 UpperCAmelCase__ 						=				[]
 for char in keyword:
  if char in alphabet_set and char not in unique_chars:
   unique_chars.append(_SCREAMING_SNAKE_CASE			)
    # the number of those unique characters will determine the number of rows
 UpperCAmelCase__ 						=				len(_SCREAMING_SNAKE_CASE			)

 # create a shifted version of the alphabet
 UpperCAmelCase__ 						=				unique_chars + [
     char for char in alphabet if char not in unique_chars
 ]

 # create a modified alphabet by splitting the shifted alphabet into rows
 UpperCAmelCase__ 						=				[
     shifted_alphabet[k : k + num_unique_chars_in_keyword]
     for k in range(0       ,	2_6       ,	_SCREAMING_SNAKE_CASE			)
 ]

 # map the alphabet characters to the modified alphabet characters
 # going 'vertically' through the modified alphabet - consider columns first
 UpperCAmelCase__ 						=				{}
 UpperCAmelCase__ 						=				0
 for column in range(_SCREAMING_SNAKE_CASE			):
  for row in modified_alphabet:
   # if current row (the last one) is too short, break out of loop
   if len(_SCREAMING_SNAKE_CASE			) <= column:
    break

   # map current letter to letter in modified alphabet
   UpperCAmelCase__ 						=				row[column]
   letter_index += 1

 if verbose:
  print(_SCREAMING_SNAKE_CASE			)
 # create the encrypted text by mapping the plaintext to the modified alphabet
 return "".join(mapping[char] if char in mapping else char for char in plaintext			)


if __name__ == "__main__":
 # example use
 print(mixed_keyword('''college''', '''UNIVERSITY'''))



