
import os
import random
import sys

from . import cryptomath_module as cryptoMath  # noqa: N812
from . import rabin_miller as rabinMiller  # noqa: N812







def     A__   (  )					->		None:
				print("""Making key files..."""  )
				make_key_files("""rsa"""       ,      10_24  )
				print("""Key files generation successful."""  )







def     A__   (  lowerCamelCase  )					->		tuple[tuple[int, int], tuple[int, int]]:
				print("""Generating prime p..."""  )
				UpperCamelCase_:							Union[str, Any]		=  rabinMiller.generate_large_prime(lowerCamelCase  )
				print("""Generating prime q..."""  )
				UpperCamelCase_:							List[Any]		=  rabinMiller.generate_large_prime(lowerCamelCase  )
				UpperCamelCase_:							List[Any]		=  p * q

				print("""Generating e that is relatively prime to (p - 1) * (q - 1)..."""  )
				while True:
								UpperCamelCase_:							int		=  random.randrange(2 ** (key_size - 1)       ,      2 ** (key_size)  )
								if cryptoMath.gcd(lowerCamelCase       ,      (p - 1) * (q - 1)  ) == 1:
												break

				print("""Calculating d that is mod inverse of e..."""  )
				UpperCamelCase_:							Dict		=  cryptoMath.find_mod_inverse(lowerCamelCase       ,      (p - 1) * (q - 1)  )

				UpperCamelCase_:							str		=  (n, e)
				UpperCamelCase_:							Optional[Any]		=  (n, d)
				return (public_key, private_key)







def     A__   (  lowerCamelCase       ,      lowerCamelCase  )					->		None:
				if os.path.exists(F'''{name}_pubkey.txt'''  ) or os.path.exists(F'''{name}_privkey.txt'''  ):
								print("""\nWARNING:"""  )
								print(
								    F'''"{name}_pubkey.txt" or "{name}_privkey.txt" already exists. \n'''
								    """Use a different name or delete these files and re-run this program."""  )
								sys.exit()

				UpperCamelCase_,				UpperCamelCase_:							Any		=  generate_key(lowerCamelCase  )
				print(F'''\nWriting public key to file {name}_pubkey.txt...'''  )
				with open(F'''{name}_pubkey.txt'''       ,      """w"""  ) as out_file:
								out_file.write(F'''{key_size},{public_key[0]},{public_key[1]}'''  )

				print(F'''Writing private key to file {name}_privkey.txt...'''  )
				with open(F'''{name}_privkey.txt'''       ,      """w"""  ) as out_file:
								out_file.write(F'''{key_size},{private_key[0]},{private_key[1]}'''  )


if __name__ == "__main__":
							main()








from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCamelCase_  :	Tuple 				=					logging.get_logger(__name__)

lowerCamelCase_  :	str 				=					{
    """unc-nlp/lxmert-base-uncased""": """https://huggingface.co/unc-nlp/lxmert-base-uncased/resolve/main/config.json""",
}

class     _UpperCamelCase			(   _A					):






			'''simple docstring'''

			__UpperCamelCase :  Any    =	"""lxmert"""
			__UpperCamelCase :  Optional[Any]    =	{}

			def __init__(    self	:    Dict  ,		snake_case_	:    List[str]=3_0522  ,		snake_case_	:    int=768  ,		snake_case_	:    str=12  ,		snake_case_	:    Tuple=9500  ,		snake_case_	:    Optional[Any]=1600  ,		snake_case_	:    str=400  ,		snake_case_	:    List[str]=3072  ,		snake_case_	:    Dict="gelu"  ,		snake_case_	:    Optional[Any]=0.1  ,		snake_case_	:    int=0.1  ,		snake_case_	:    Optional[int]=512  ,		snake_case_	:    Tuple=2  ,		snake_case_	:    Optional[int]=0.02  ,		snake_case_	:    Union[str, Any]=1e-12  ,		snake_case_	:    Tuple=9  ,		snake_case_	:    Tuple=5  ,		snake_case_	:    Union[str, Any]=5  ,		snake_case_	:    List[str]=2048  ,		snake_case_	:    Any=4  ,		snake_case_	:    int=6.67  ,		snake_case_	:    Dict=True  ,		snake_case_	:    Tuple=True  ,		snake_case_	:    int=True  ,		snake_case_	:    str=True  ,		snake_case_	:    List[Any]=True  ,		snake_case_	:    List[Any]=True  ,		snake_case_	:    List[str]=True  ,		**snake_case_	:    Optional[int]  ,		):
							UpperCamelCase_:							int		=  vocab_size
							UpperCamelCase_:							Tuple		=  hidden_size
							UpperCamelCase_:							Optional[Any]		=  num_attention_heads
							UpperCamelCase_:							List[str]		=  hidden_act
							UpperCamelCase_:							int		=  intermediate_size
							UpperCamelCase_:							Any		=  hidden_dropout_prob
							UpperCamelCase_:							List[Any]		=  attention_probs_dropout_prob
							UpperCamelCase_:							List[str]		=  max_position_embeddings
							UpperCamelCase_:							Optional[Any]		=  type_vocab_size
							UpperCamelCase_:							Optional[Any]		=  initializer_range
							UpperCamelCase_:							str		=  layer_norm_eps
							UpperCamelCase_:							List[str]		=  num_qa_labels
							UpperCamelCase_:							List[str]		=  num_object_labels
							UpperCamelCase_:							Tuple		=  num_attr_labels
							UpperCamelCase_:							List[Any]		=  l_layers
							UpperCamelCase_:							List[Any]		=  x_layers
							UpperCamelCase_:							Any		=  r_layers
							UpperCamelCase_:							str		=  visual_feat_dim
							UpperCamelCase_:							Union[str, Any]		=  visual_pos_dim
							UpperCamelCase_:							str		=  visual_loss_normalizer
							UpperCamelCase_:							Dict		=  task_matched
							UpperCamelCase_:							Tuple		=  task_mask_lm
							UpperCamelCase_:							List[str]		=  task_obj_predict
							UpperCamelCase_:							Any		=  task_qa
							UpperCamelCase_:							Dict		=  visual_obj_loss
							UpperCamelCase_:							Optional[Any]		=  visual_attr_loss
							UpperCamelCase_:							List[Any]		=  visual_feat_loss
							UpperCamelCase_:							Tuple		=  {"""vision""": r_layers, """cross_encoder""": x_layers, """language""": l_layers}
							super().__init__(**snake_case_ )






