



'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


a  :     int       =       {
    """auto_factory""": ["""get_values"""],
    """configuration_auto""": ["""ALL_PRETRAINED_CONFIG_ARCHIVE_MAP""", """CONFIG_MAPPING""", """MODEL_NAMES_MAPPING""", """AutoConfig"""],
    """feature_extraction_auto""": ["""FEATURE_EXTRACTOR_MAPPING""", """AutoFeatureExtractor"""],
    """image_processing_auto""": ["""IMAGE_PROCESSOR_MAPPING""", """AutoImageProcessor"""],
    """processing_auto""": ["""PROCESSOR_MAPPING""", """AutoProcessor"""],
    """tokenization_auto""": ["""TOKENIZER_MAPPING""", """AutoTokenizer"""],
}

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a  :     Union[str, Any]       =       [
							    """MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_AUDIO_XVECTOR_MAPPING""",
							    """MODEL_FOR_BACKBONE_MAPPING""",
							    """MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING""",
							    """MODEL_FOR_CAUSAL_LM_MAPPING""",
							    """MODEL_FOR_CTC_MAPPING""",
							    """MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING""",
							    """MODEL_FOR_DEPTH_ESTIMATION_MAPPING""",
							    """MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_IMAGE_SEGMENTATION_MAPPING""",
							    """MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING""",
							    """MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING""",
							    """MODEL_FOR_MASKED_LM_MAPPING""",
							    """MODEL_FOR_MASK_GENERATION_MAPPING""",
							    """MODEL_FOR_MULTIPLE_CHOICE_MAPPING""",
							    """MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING""",
							    """MODEL_FOR_OBJECT_DETECTION_MAPPING""",
							    """MODEL_FOR_PRETRAINING_MAPPING""",
							    """MODEL_FOR_QUESTION_ANSWERING_MAPPING""",
							    """MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING""",
							    """MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING""",
							    """MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING""",
							    """MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING""",
							    """MODEL_FOR_TEXT_ENCODING_MAPPING""",
							    """MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING""",
							    """MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_VISION_2_SEQ_MAPPING""",
							    """MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING""",
							    """MODEL_MAPPING""",
							    """MODEL_WITH_LM_HEAD_MAPPING""",
							    """MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING""",
							    """MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING""",
							    """AutoModel""",
							    """AutoBackbone""",
							    """AutoModelForAudioClassification""",
							    """AutoModelForAudioFrameClassification""",
							    """AutoModelForAudioXVector""",
							    """AutoModelForCausalLM""",
							    """AutoModelForCTC""",
							    """AutoModelForDepthEstimation""",
							    """AutoModelForImageClassification""",
							    """AutoModelForImageSegmentation""",
							    """AutoModelForInstanceSegmentation""",
							    """AutoModelForMaskGeneration""",
							    """AutoModelForTextEncoding""",
							    """AutoModelForMaskedImageModeling""",
							    """AutoModelForMaskedLM""",
							    """AutoModelForMultipleChoice""",
							    """AutoModelForNextSentencePrediction""",
							    """AutoModelForObjectDetection""",
							    """AutoModelForPreTraining""",
							    """AutoModelForQuestionAnswering""",
							    """AutoModelForSemanticSegmentation""",
							    """AutoModelForSeq2SeqLM""",
							    """AutoModelForSequenceClassification""",
							    """AutoModelForSpeechSeq2Seq""",
							    """AutoModelForTableQuestionAnswering""",
							    """AutoModelForTokenClassification""",
							    """AutoModelForUniversalSegmentation""",
							    """AutoModelForVideoClassification""",
							    """AutoModelForVision2Seq""",
							    """AutoModelForVisualQuestionAnswering""",
							    """AutoModelForDocumentQuestionAnswering""",
							    """AutoModelWithLMHead""",
							    """AutoModelForZeroShotImageClassification""",
							    """AutoModelForZeroShotObjectDetection""",
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a  :     Tuple       =       [
							    """TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING""",
							    """TF_MODEL_FOR_CAUSAL_LM_MAPPING""",
							    """TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING""",
							    """TF_MODEL_FOR_MASK_GENERATION_MAPPING""",
							    """TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING""",
							    """TF_MODEL_FOR_MASKED_LM_MAPPING""",
							    """TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING""",
							    """TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING""",
							    """TF_MODEL_FOR_PRETRAINING_MAPPING""",
							    """TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING""",
							    """TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING""",
							    """TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING""",
							    """TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING""",
							    """TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING""",
							    """TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING""",
							    """TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING""",
							    """TF_MODEL_FOR_TEXT_ENCODING_MAPPING""",
							    """TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING""",
							    """TF_MODEL_FOR_VISION_2_SEQ_MAPPING""",
							    """TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING""",
							    """TF_MODEL_MAPPING""",
							    """TF_MODEL_WITH_LM_HEAD_MAPPING""",
							    """TFAutoModel""",
							    """TFAutoModelForAudioClassification""",
							    """TFAutoModelForCausalLM""",
							    """TFAutoModelForImageClassification""",
							    """TFAutoModelForMaskedImageModeling""",
							    """TFAutoModelForMaskedLM""",
							    """TFAutoModelForMaskGeneration""",
							    """TFAutoModelForMultipleChoice""",
							    """TFAutoModelForNextSentencePrediction""",
							    """TFAutoModelForPreTraining""",
							    """TFAutoModelForDocumentQuestionAnswering""",
							    """TFAutoModelForQuestionAnswering""",
							    """TFAutoModelForSemanticSegmentation""",
							    """TFAutoModelForSeq2SeqLM""",
							    """TFAutoModelForSequenceClassification""",
							    """TFAutoModelForSpeechSeq2Seq""",
							    """TFAutoModelForTableQuestionAnswering""",
							    """TFAutoModelForTextEncoding""",
							    """TFAutoModelForTokenClassification""",
							    """TFAutoModelForVision2Seq""",
							    """TFAutoModelForZeroShotImageClassification""",
							    """TFAutoModelWithLMHead""",
							]

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							a  :     str       =       [
							    """FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING""",
							    """FLAX_MODEL_FOR_CAUSAL_LM_MAPPING""",
							    """FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING""",
							    """FLAX_MODEL_FOR_MASKED_LM_MAPPING""",
							    """FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING""",
							    """FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING""",
							    """FLAX_MODEL_FOR_PRETRAINING_MAPPING""",
							    """FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING""",
							    """FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING""",
							    """FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING""",
							    """FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING""",
							    """FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING""",
							    """FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING""",
							    """FLAX_MODEL_MAPPING""",
							    """FlaxAutoModel""",
							    """FlaxAutoModelForCausalLM""",
							    """FlaxAutoModelForImageClassification""",
							    """FlaxAutoModelForMaskedLM""",
							    """FlaxAutoModelForMultipleChoice""",
							    """FlaxAutoModelForNextSentencePrediction""",
							    """FlaxAutoModelForPreTraining""",
							    """FlaxAutoModelForQuestionAnswering""",
							    """FlaxAutoModelForSeq2SeqLM""",
							    """FlaxAutoModelForSequenceClassification""",
							    """FlaxAutoModelForSpeechSeq2Seq""",
							    """FlaxAutoModelForTokenClassification""",
							    """FlaxAutoModelForVision2Seq""",
							]


if TYPE_CHECKING:
							from .auto_factory import get_values
							from .configuration_auto import ALL_PRETRAINED_CONFIG_ARCHIVE_MAP, CONFIG_MAPPING, MODEL_NAMES_MAPPING, AutoConfig
							from .feature_extraction_auto import FEATURE_EXTRACTOR_MAPPING, AutoFeatureExtractor
							from .image_processing_auto import IMAGE_PROCESSOR_MAPPING, AutoImageProcessor
							from .processing_auto import PROCESSOR_MAPPING, AutoProcessor
							from .tokenization_auto import TOKENIZER_MAPPING, AutoTokenizer

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_auto import (
														    MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
														    MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING,
														    MODEL_FOR_AUDIO_XVECTOR_MAPPING,
														    MODEL_FOR_BACKBONE_MAPPING,
														    MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
														    MODEL_FOR_CAUSAL_LM_MAPPING,
														    MODEL_FOR_CTC_MAPPING,
														    MODEL_FOR_DEPTH_ESTIMATION_MAPPING,
														    MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
														    MODEL_FOR_IMAGE_SEGMENTATION_MAPPING,
														    MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING,
														    MODEL_FOR_MASK_GENERATION_MAPPING,
														    MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
														    MODEL_FOR_MASKED_LM_MAPPING,
														    MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
														    MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
														    MODEL_FOR_OBJECT_DETECTION_MAPPING,
														    MODEL_FOR_PRETRAINING_MAPPING,
														    MODEL_FOR_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
														    MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
														    MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
														    MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
														    MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_TEXT_ENCODING_MAPPING,
														    MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
														    MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING,
														    MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
														    MODEL_FOR_VISION_2_SEQ_MAPPING,
														    MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
														    MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING,
														    MODEL_MAPPING,
														    MODEL_WITH_LM_HEAD_MAPPING,
														    AutoBackbone,
														    AutoModel,
														    AutoModelForAudioClassification,
														    AutoModelForAudioFrameClassification,
														    AutoModelForAudioXVector,
														    AutoModelForCausalLM,
														    AutoModelForCTC,
														    AutoModelForDepthEstimation,
														    AutoModelForDocumentQuestionAnswering,
														    AutoModelForImageClassification,
														    AutoModelForImageSegmentation,
														    AutoModelForInstanceSegmentation,
														    AutoModelForMaskedImageModeling,
														    AutoModelForMaskedLM,
														    AutoModelForMaskGeneration,
														    AutoModelForMultipleChoice,
														    AutoModelForNextSentencePrediction,
														    AutoModelForObjectDetection,
														    AutoModelForPreTraining,
														    AutoModelForQuestionAnswering,
														    AutoModelForSemanticSegmentation,
														    AutoModelForSeqaSeqLM,
														    AutoModelForSequenceClassification,
														    AutoModelForSpeechSeqaSeq,
														    AutoModelForTableQuestionAnswering,
														    AutoModelForTextEncoding,
														    AutoModelForTokenClassification,
														    AutoModelForUniversalSegmentation,
														    AutoModelForVideoClassification,
														    AutoModelForVisionaSeq,
														    AutoModelForVisualQuestionAnswering,
														    AutoModelForZeroShotImageClassification,
														    AutoModelForZeroShotObjectDetection,
														    AutoModelWithLMHead,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_auto import (
														    TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_CAUSAL_LM_MAPPING,
														    TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
														    TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_MASK_GENERATION_MAPPING,
														    TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
														    TF_MODEL_FOR_MASKED_LM_MAPPING,
														    TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
														    TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
														    TF_MODEL_FOR_PRETRAINING_MAPPING,
														    TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
														    TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
														    TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
														    TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
														    TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
														    TF_MODEL_FOR_TEXT_ENCODING_MAPPING,
														    TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_VISION_2_SEQ_MAPPING,
														    TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
														    TF_MODEL_MAPPING,
														    TF_MODEL_WITH_LM_HEAD_MAPPING,
														    TFAutoModel,
														    TFAutoModelForAudioClassification,
														    TFAutoModelForCausalLM,
														    TFAutoModelForDocumentQuestionAnswering,
														    TFAutoModelForImageClassification,
														    TFAutoModelForMaskedImageModeling,
														    TFAutoModelForMaskedLM,
														    TFAutoModelForMaskGeneration,
														    TFAutoModelForMultipleChoice,
														    TFAutoModelForNextSentencePrediction,
														    TFAutoModelForPreTraining,
														    TFAutoModelForQuestionAnswering,
														    TFAutoModelForSemanticSegmentation,
														    TFAutoModelForSeqaSeqLM,
														    TFAutoModelForSequenceClassification,
														    TFAutoModelForSpeechSeqaSeq,
														    TFAutoModelForTableQuestionAnswering,
														    TFAutoModelForTextEncoding,
														    TFAutoModelForTokenClassification,
														    TFAutoModelForVisionaSeq,
														    TFAutoModelForZeroShotImageClassification,
														    TFAutoModelWithLMHead,
														)

							try:
														if not is_flax_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_flax_auto import (
														    FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_CAUSAL_LM_MAPPING,
														    FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_MASKED_LM_MAPPING,
														    FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
														    FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
														    FLAX_MODEL_FOR_PRETRAINING_MAPPING,
														    FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
														    FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
														    FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
														    FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING,
														    FLAX_MODEL_MAPPING,
														    FlaxAutoModel,
														    FlaxAutoModelForCausalLM,
														    FlaxAutoModelForImageClassification,
														    FlaxAutoModelForMaskedLM,
														    FlaxAutoModelForMultipleChoice,
														    FlaxAutoModelForNextSentencePrediction,
														    FlaxAutoModelForPreTraining,
														    FlaxAutoModelForQuestionAnswering,
														    FlaxAutoModelForSeqaSeqLM,
														    FlaxAutoModelForSequenceClassification,
														    FlaxAutoModelForSpeechSeqaSeq,
														    FlaxAutoModelForTokenClassification,
														    FlaxAutoModelForVisionaSeq,
														)

else:
							import sys

							a  :     Optional[Any]       =       _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)






'''simple docstring'''




from __future__ import annotations



def  __lowerCamelCase    (   _lowercase						) ->     int | None:
							for r in range(1      ,							_lowercase						):
														UpperCAmelCase	:						Dict					=						[]
														for x in range(n - 1						):
																					UpperCAmelCase	:						List[str]					=						pow(_lowercase      ,							_lowercase      ,							_lowercase						)
																					if val in li:
																												break
																					li.append(_lowercase						)
														else:
																					return r
							return None


if __name__ == "__main__":
							a  :     Dict       =       int(input("""Enter a prime number q: """))
							a  :     Union[str, Any]       =       find_primitive(q)
							if a is None:
														print(F'''Cannot find the primitive for the value: {a!r}''')
							else:
														a  :     str       =       int(input("""Enter private key of A: """))
														a  :     str       =       pow(a, a_private, q)
														a  :     List[Any]       =       int(input("""Enter private key of B: """))
														a  :     str       =       pow(a, b_private, q)

														a  :     Union[str, Any]       =       pow(b_public, a_private, q)
														a  :     List[Any]       =       pow(a_public, b_private, q)

														print("""The key value generated by A is: """, a_secret)
														print("""The key value generated by B is: """, b_secret)

