

from typing import TYPE_CHECKING

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


_SCREAMING_SNAKE_CASE							 =			{
    '''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:
      _SCREAMING_SNAKE_CASE							 =			[
          '''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:
      _SCREAMING_SNAKE_CASE							 =			[
          '''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:
      _SCREAMING_SNAKE_CASE							 =			[
          '''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

      _SCREAMING_SNAKE_CASE							 =			_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)








from hashlib import mda, shaaaa

A__							=				(shaaaa, mda)

class 					__UpperCamelCase					:







	def __init__( self:			Optional[int]	,			__UpperCamelCase:			int = 8   ):

						'''simple docstring'''





						__magic_name__				=     0b0
						__magic_name__				=     size







	def 						_SCREAMING_SNAKE_CASE				( self:			Tuple	,			__UpperCamelCase:			str   ):

						'''simple docstring'''





						__magic_name__				=     self.hash_(__UpperCamelCase   )
						self.bitarray |= h







	def 						_SCREAMING_SNAKE_CASE				( self:			List[str]	,			__UpperCamelCase:			str   ):

						'''simple docstring'''





						__magic_name__				=     self.hash_(__UpperCamelCase   )
						return (h & self.bitarray) == h







	def __contains__( self:			Optional[int]	,			__UpperCamelCase:			str   ):

						'''simple docstring'''





						return self.exists(__UpperCamelCase   )







	def 						_SCREAMING_SNAKE_CASE				( self:			int	,			__UpperCamelCase:			int   ):

						'''simple docstring'''





						__magic_name__				=     bin(__UpperCamelCase   )[2:]
						return res.zfill(self.size   )







	@property
	def 						_SCREAMING_SNAKE_CASE				( self:			str   ):

						'''simple docstring'''





						return self.format_bin(self.bitarray   )







	def 						_SCREAMING_SNAKE_CASE				( self:			str	,			__UpperCamelCase:			str   ):

						'''simple docstring'''





						__magic_name__				=     0b0
						for func in HASH_FUNCTIONS:
											__magic_name__				=     (
											    int.from_bytes(func(value.encode()   ).digest()	,			'little'   ) % self.size
											)
											res |= 2**position
						return res







	def 						_SCREAMING_SNAKE_CASE				( self:			Dict	,			__UpperCamelCase:			str   ):

						'''simple docstring'''





						return self.format_bin(self.hash_(__UpperCamelCase   )   )







	@property
	def 						_SCREAMING_SNAKE_CASE				( self:			Optional[int]   ):

						'''simple docstring'''





						__magic_name__				=     bin(self.bitarray   ).count('1'   )
						return (n_ones / self.size) ** len(__UpperCamelCase   )




