



"""simple docstring"""
from collections import OrderedDict
from typing import TYPE_CHECKING, Any, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxSeqaSeqConfigWithPast
from ...utils import logging


if TYPE_CHECKING:
      from ...feature_extraction_utils import FeatureExtractionMixin
      from ...tokenization_utils_base import PreTrainedTokenizerBase
      from ...utils import TensorType

A:     Optional[int]										=	logging.get_logger(__name__)

A:     List[str]										=	{
    "openai/whisper-base": "https://huggingface.co/openai/whisper-base/resolve/main/config.json",
}

# fmt: off
A:     Dict										=	[
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_7, 3_6_6, 4_3_8, 5_3_2, 6_8_5,
    7_0_5, 7_9_6, 9_3_0, 1_0_5_8, 1_2_2_0, 1_2_6_7, 1_2_7_9, 1_3_0_3, 1_3_4_3, 1_3_7_7,
    1_3_9_1, 1_6_3_5, 1_7_8_2, 1_8_7_5, 2_1_6_2, 2_3_6_1, 2_4_8_8, 3_4_6_7, 4_0_0_8, 4_2_1_1,
    4_6_0_0, 4_8_0_8, 5_2_9_9, 5_8_5_5, 6_3_2_9, 7_2_0_3, 9_6_0_9, 9_9_5_9, 1_0_5_6_3, 1_0_7_8_6,
    1_1_4_2_0, 1_1_7_0_9, 1_1_9_0_7, 1_3_1_6_3, 1_3_6_9_7, 1_3_7_0_0, 1_4_8_0_8, 1_5_3_0_6, 1_6_4_1_0, 1_6_7_9_1,
    1_7_9_9_2, 1_9_2_0_3, 1_9_5_1_0, 2_0_7_2_4, 2_2_3_0_5, 2_2_9_3_5, 2_7_0_0_7, 3_0_1_0_9, 3_0_4_2_0, 3_3_4_0_9,
    3_4_9_4_9, 4_0_2_8_3, 4_0_4_9_3, 4_0_5_4_9, 4_7_2_8_2, 4_9_1_4_6, 5_0_2_5_7, 5_0_3_5_9, 5_0_3_6_0, 5_0_3_6_1
]
A:     Optional[int]										=	[
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_9, 5_0_3, 5_2_2, 5_4_2, 8_7_3,
    8_9_3, 9_0_2, 9_1_8, 9_2_2, 9_3_1, 1_3_5_0, 1_8_5_3, 1_9_8_2, 2_4_6_0, 2_6_2_7,
    3_2_4_6, 3_2_5_3, 3_2_6_8, 3_5_3_6, 3_8_4_6, 3_9_6_1, 4_1_8_3, 4_6_6_7, 6_5_8_5, 6_6_4_7,
    7_2_7_3, 9_0_6_1, 9_3_8_3, 1_0_4_2_8, 1_0_9_2_9, 1_1_9_3_8, 1_2_0_3_3, 1_2_3_3_1, 1_2_5_6_2, 1_3_7_9_3,
    1_4_1_5_7, 1_4_6_3_5, 1_5_2_6_5, 1_5_6_1_8, 1_6_5_5_3, 1_6_6_0_4, 1_8_3_6_2, 1_8_9_5_6, 2_0_0_7_5, 2_1_6_7_5,
    2_2_5_2_0, 2_6_1_3_0, 2_6_1_6_1, 2_6_4_3_5, 2_8_2_7_9, 2_9_4_6_4, 3_1_6_5_0, 3_2_3_0_2, 3_2_4_7_0, 3_6_8_6_5,
    4_2_8_6_3, 4_7_4_2_5, 4_9_8_7_0, 5_0_2_5_4, 5_0_2_5_8, 5_0_3_6_0, 5_0_3_6_1, 5_0_3_6_2
]



class    SCREAMING_SNAKE_CASE__						(				UpperCAmelCase__				):
   __lowerCAmelCase						:     Union[str, Any]		=		'whisper'
   __lowerCAmelCase						:     Any		=		['past_key_values']
   __lowerCAmelCase						:     Any		=		{'num_attention_heads': 'encoder_attention_heads', 'hidden_size': 'd_model'}

   def __init__(     self   ,  _SCREAMING_SNAKE_CASE=51865   ,  _SCREAMING_SNAKE_CASE=80   ,  _SCREAMING_SNAKE_CASE=6   ,  _SCREAMING_SNAKE_CASE=4   ,  _SCREAMING_SNAKE_CASE=6   ,  _SCREAMING_SNAKE_CASE=4   ,  _SCREAMING_SNAKE_CASE=1536   ,  _SCREAMING_SNAKE_CASE=1536   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=50257   ,  _SCREAMING_SNAKE_CASE=True   ,  _SCREAMING_SNAKE_CASE=True   ,  _SCREAMING_SNAKE_CASE="gelu"   ,  _SCREAMING_SNAKE_CASE=256   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=0.02   ,  _SCREAMING_SNAKE_CASE=False   ,  _SCREAMING_SNAKE_CASE=1500   ,  _SCREAMING_SNAKE_CASE=448   ,  _SCREAMING_SNAKE_CASE=50256   ,  _SCREAMING_SNAKE_CASE=50256   ,  _SCREAMING_SNAKE_CASE=50256   ,  _SCREAMING_SNAKE_CASE=None   ,  _SCREAMING_SNAKE_CASE=[220, 50256]   ,  _SCREAMING_SNAKE_CASE=False   ,  _SCREAMING_SNAKE_CASE=256   ,  _SCREAMING_SNAKE_CASE=False   ,  _SCREAMING_SNAKE_CASE=0.05   ,  _SCREAMING_SNAKE_CASE=10   ,  _SCREAMING_SNAKE_CASE=2   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=10   ,  _SCREAMING_SNAKE_CASE=0   ,  _SCREAMING_SNAKE_CASE=7   ,  **_SCREAMING_SNAKE_CASE   ,  )						->   List[Any]:





    '''simple docstring'''




    UpperCAmelCase			:      Union[str, Any]			=			vocab_size
    UpperCAmelCase			:      int			=			num_mel_bins
    UpperCAmelCase			:      Tuple			=			d_model
    UpperCAmelCase			:      List[str]			=			encoder_layers
    UpperCAmelCase			:      List[Any]			=			encoder_attention_heads
    UpperCAmelCase			:      List[str]			=			decoder_layers
    UpperCAmelCase			:      int			=			decoder_attention_heads
    UpperCAmelCase			:      Tuple			=			decoder_ffn_dim
    UpperCAmelCase			:      List[Any]			=			encoder_ffn_dim
    UpperCAmelCase			:      Optional[Any]			=			dropout
    UpperCAmelCase			:      List[str]			=			attention_dropout
    UpperCAmelCase			:      List[str]			=			activation_dropout
    UpperCAmelCase			:      List[Any]			=			activation_function
    UpperCAmelCase			:      Tuple			=			init_std
    UpperCAmelCase			:      str			=			encoder_layerdrop
    UpperCAmelCase			:      Dict			=			decoder_layerdrop
    UpperCAmelCase			:      Any			=			use_cache
    UpperCAmelCase			:      Any			=			encoder_layers
    UpperCAmelCase			:      Tuple			=			scale_embedding  # scale factor will be sqrt(d_model) if True
    UpperCAmelCase			:      Any			=			max_source_positions
    UpperCAmelCase			:      List[str]			=			max_target_positions

    # Audio Classification-specific parameters. Feel free to ignore for other classes.
    UpperCAmelCase			:      Dict			=			classifier_proj_size
    UpperCAmelCase			:      Optional[int]			=			use_weighted_layer_sum

    # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
    UpperCAmelCase			:      Optional[Any]			=			apply_spec_augment
    UpperCAmelCase			:      Optional[Any]			=			mask_time_prob
    UpperCAmelCase			:      List[str]			=			mask_time_length
    UpperCAmelCase			:      Optional[int]			=			mask_time_min_masks
    UpperCAmelCase			:      Dict			=			mask_feature_prob
    UpperCAmelCase			:      str			=			mask_feature_length
    UpperCAmelCase			:      List[str]			=			mask_feature_min_masks

    UpperCAmelCase			:      List[str]			=			median_filter_width

    super().__init__(
        pad_token_id=_SCREAMING_SNAKE_CASE   ,  bos_token_id=_SCREAMING_SNAKE_CASE   ,  eos_token_id=_SCREAMING_SNAKE_CASE   ,  is_encoder_decoder=_SCREAMING_SNAKE_CASE   ,  decoder_start_token_id=_SCREAMING_SNAKE_CASE   ,  suppress_tokens=_SCREAMING_SNAKE_CASE   ,  begin_suppress_tokens=_SCREAMING_SNAKE_CASE   ,  **_SCREAMING_SNAKE_CASE   ,  )



class    SCREAMING_SNAKE_CASE__						(				UpperCAmelCase__				):

   @property
   def 			SCREAMING_SNAKE_CASE  (     self		)						->   Mapping[str, Mapping[int, str]]:





    '''simple docstring'''




    UpperCAmelCase			:      List[str]			=			OrderedDict(
        [
            ("""input_features""", {0: """batch""", 1: """feature_size""", 2: """encoder_sequence"""}),
        ]		)
    if self.use_past:
     UpperCAmelCase			:      List[Any]			=			{0: """batch"""}
    else:
     UpperCAmelCase			:      Tuple			=			{0: """batch""", 1: """decoder_sequence"""}

    if self.use_past:
     self.fill_with_past_key_values_(_SCREAMING_SNAKE_CASE   ,  direction="""inputs"""		)

    return common_inputs

   def 			SCREAMING_SNAKE_CASE  (     self   ,  _SCREAMING_SNAKE_CASE   ,  _SCREAMING_SNAKE_CASE = -1   ,  _SCREAMING_SNAKE_CASE = -1   ,  _SCREAMING_SNAKE_CASE = False   ,  _SCREAMING_SNAKE_CASE = None   ,  _SCREAMING_SNAKE_CASE = 22050   ,  _SCREAMING_SNAKE_CASE = 5.0   ,  _SCREAMING_SNAKE_CASE = 220   ,  )						->   Mapping[str, Any]:





    '''simple docstring'''




    UpperCAmelCase			:      str			=			OrderedDict()
    UpperCAmelCase			:      List[str]			=			OnnxConfig.generate_dummy_inputs(
        self   ,  preprocessor=preprocessor.feature_extractor   ,  batch_size=_SCREAMING_SNAKE_CASE   ,  framework=_SCREAMING_SNAKE_CASE   ,  sampling_rate=_SCREAMING_SNAKE_CASE   ,  time_duration=_SCREAMING_SNAKE_CASE   ,  frequency=_SCREAMING_SNAKE_CASE   ,  )
    UpperCAmelCase			:      int			=			encoder_inputs["""input_features"""].shape[2]
    UpperCAmelCase			:      List[Any]			=			encoder_sequence_length // 2 if self.use_past else seq_length

    UpperCAmelCase			:      str			=			super().generate_dummy_inputs(
        preprocessor.tokenizer   ,  _SCREAMING_SNAKE_CASE   ,  _SCREAMING_SNAKE_CASE   ,  _SCREAMING_SNAKE_CASE   ,  _SCREAMING_SNAKE_CASE		)

    UpperCAmelCase			:      Tuple			=			encoder_inputs.pop("""input_features"""		)
    UpperCAmelCase			:      Dict			=			decoder_inputs.pop("""decoder_input_ids"""		)

    if "past_key_values" in decoder_inputs:
     UpperCAmelCase			:      Dict			=			decoder_inputs.pop("""past_key_values"""		)

    return dummy_inputs




   @property
   def 			SCREAMING_SNAKE_CASE  (     self		)						->   float:





    '''simple docstring'''




    return 1E-3





"""simple docstring"""
def    _snake_case		(		UpperCamelCase		:	int    ,	UpperCamelCase		:	int		):
 return 1 if input_a == input_a else 0

def    _snake_case		(		):
 assert xnor_gate(0    ,	0		) == 1
 assert xnor_gate(0    ,	1		) == 0
 assert xnor_gate(1    ,	0		) == 0
 assert xnor_gate(1    ,	1		) == 1


if __name__ == "__main__":
      print(xnor_gate(0, 0))
      print(xnor_gate(0, 1))
      print(xnor_gate(1, 0))
      print(xnor_gate(1, 1))
