




'''simple docstring'''

from __future__ import annotations

from string import ascii_letters




def    snake_case__     (  a       ,      a       ,      a = None	)			->       str:





			'''simple docstring'''






			snake_case__          =						alphabet or ascii_letters

			# The final result string
			snake_case__          =						""""""

			for character in input_string:
						if character not in alpha:
									# Append without encryption if character is not in the alphabet
									result += character
						else:
									# Get the index of the new key and make sure it isn't too large
									snake_case__          =						(alpha.index(a	) + key) % len(a	)

									# Append the encoded character to the alphabet
									result += alpha[new_key]

			return result




def    snake_case__     (  a       ,      a       ,      a = None	)			->       str:





			'''simple docstring'''






			key *= -1

			return encrypt(a       ,      a       ,      a	)




def    snake_case__     (  a       ,      a = None	)			->       dict[int, str]:





			'''simple docstring'''






			snake_case__          =						alphabet or ascii_letters

			# To store data on all the combinations
			snake_case__          =						{}

			# Cycle through each combination
			for key in range(1       ,      len(a	) + 1	):
						# Decrypt the message and store the result in the data
						snake_case__          =						decrypt(a       ,      a       ,      a	)

			return brute_force_data


if __name__ == "__main__":
		while True:
				print(F"\n{'-' * 10}\n Menu\n{'-' * 10}")
				print(*['''1.Encrypt''', '''2.Decrypt''', '''3.BruteForce''', '''4.Quit'''], sep='''\n''')

				# get user input
				a__         =     input('''\nWhat would you like to do?: ''').strip() or '''4'''

				# run functions based on what the user chose
				if choice not in ("1", "2", "3", "4"):
						print('''Invalid choice, please enter a valid choice''')
				elif choice == "1":
						a__         =     input('''Please enter the string to be encrypted: ''')
						a__         =     int(input('''Please enter off-set: ''').strip())

						print(encrypt(input_string, key))
				elif choice == "2":
						a__         =     input('''Please enter the string to be decrypted: ''')
						a__         =     int(input('''Please enter off-set: ''').strip())

						print(decrypt(input_string, key))
				elif choice == "3":
						a__         =     input('''Please enter the string to be decrypted: ''')
						a__         =     brute_force(input_string)

						for key, value in brute_force_data.items():
								print(F"Key: {key} | Message: {value}")

				elif choice == "4":
						print('''Goodbye.''')
						break

"""simple docstring"""




import numpy as np
import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute

def     UpperCamelCase_    (						SCREAMING_SNAKE_CASE_ = np.pi / 2,	SCREAMING_SNAKE_CASE_ = np.pi / 2,	SCREAMING_SNAKE_CASE_ = np.pi / 2     ):
					SCREAMING_SNAKE_CASE           =      QuantumRegister(3,	'qr'     )  # Define the number of quantum bits
					SCREAMING_SNAKE_CASE           =      ClassicalRegister(1,	'cr'     )  # Define the number of classical bits

					SCREAMING_SNAKE_CASE           =      QuantumCircuit(SCREAMING_SNAKE_CASE_,	SCREAMING_SNAKE_CASE_     )  # Define the quantum circuit.

					# Build the circuit
					quantum_circuit.u(SCREAMING_SNAKE_CASE_,	SCREAMING_SNAKE_CASE_,	SCREAMING_SNAKE_CASE_,	0     )  # Quantum State to teleport
					quantum_circuit.h(1     )  # add hadamard gate
					quantum_circuit.cx(
					    1,	2     )  # add control gate with qubit 1 as control and 2 as target.
					quantum_circuit.cx(0,	1     )
					quantum_circuit.h(0     )
					quantum_circuit.cz(0,	2     )  # add control z gate.
					quantum_circuit.cx(1,	2     )

					quantum_circuit.measure([2],	[0]     )  # measure the qubit.

					# Simulate the circuit using qasm simulator
					SCREAMING_SNAKE_CASE           =      Aer.get_backend('aer_simulator'     )
					SCREAMING_SNAKE_CASE           =      execute(SCREAMING_SNAKE_CASE_,	SCREAMING_SNAKE_CASE_,	shots=1_0_0_0     )

					return job.result().get_counts(SCREAMING_SNAKE_CASE_     )


if __name__ == "__main__":
	print(
	    'Total count for teleported state is: '
	    f'{quantum_teleportation(np.pi/2, np.pi/2, np.pi/2)}'
	)
