





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

SCREAMING_SNAKE_CASE_						   =       logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_						   =       {
    """openai/whisper-base""": """https://huggingface.co/openai/whisper-base/resolve/main/config.json""",
}

# fmt: off
SCREAMING_SNAKE_CASE_						   =       [
    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
]
SCREAMING_SNAKE_CASE_						   =       [
    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 		UpperCamelCase__ (      lowerCAmelCase_   ):



     '''simple docstring'''

     __snake_case    :	Tuple			=			"whisper"
     __snake_case    :	str			=			["past_key_values"]
     __snake_case    :	List[str]			=			{"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}






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




           '''simple docstring'''


           SCREAMING_SNAKE_CASE		=						vocab_size
           SCREAMING_SNAKE_CASE		=						num_mel_bins
           SCREAMING_SNAKE_CASE		=						d_model
           SCREAMING_SNAKE_CASE		=						encoder_layers
           SCREAMING_SNAKE_CASE		=						encoder_attention_heads
           SCREAMING_SNAKE_CASE		=						decoder_layers
           SCREAMING_SNAKE_CASE		=						decoder_attention_heads
           SCREAMING_SNAKE_CASE		=						decoder_ffn_dim
           SCREAMING_SNAKE_CASE		=						encoder_ffn_dim
           SCREAMING_SNAKE_CASE		=						dropout
           SCREAMING_SNAKE_CASE		=						attention_dropout
           SCREAMING_SNAKE_CASE		=						activation_dropout
           SCREAMING_SNAKE_CASE		=						activation_function
           SCREAMING_SNAKE_CASE		=						init_std
           SCREAMING_SNAKE_CASE		=						encoder_layerdrop
           SCREAMING_SNAKE_CASE		=						decoder_layerdrop
           SCREAMING_SNAKE_CASE		=						use_cache
           SCREAMING_SNAKE_CASE		=						encoder_layers
           SCREAMING_SNAKE_CASE		=						scale_embedding  # scale factor will be sqrt(d_model) if True
           SCREAMING_SNAKE_CASE		=						max_source_positions
           SCREAMING_SNAKE_CASE		=						max_target_positions

           # Audio Classification-specific parameters. Feel free to ignore for other classes.
           SCREAMING_SNAKE_CASE		=						classifier_proj_size
           SCREAMING_SNAKE_CASE		=						use_weighted_layer_sum

           # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
           SCREAMING_SNAKE_CASE		=						apply_spec_augment
           SCREAMING_SNAKE_CASE		=						mask_time_prob
           SCREAMING_SNAKE_CASE		=						mask_time_length
           SCREAMING_SNAKE_CASE		=						mask_time_min_masks
           SCREAMING_SNAKE_CASE		=						mask_feature_prob
           SCREAMING_SNAKE_CASE		=						mask_feature_length
           SCREAMING_SNAKE_CASE		=						mask_feature_min_masks

           SCREAMING_SNAKE_CASE		=						median_filter_width

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

class 		UpperCamelCase__ (      lowerCAmelCase_   ):



     '''simple docstring'''

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




           '''simple docstring'''


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

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

           return common_inputs






     def 				SCREAMING_SNAKE_CASE__  (							self						:    str						,lowerCamelCase__						:    Union["PreTrainedTokenizerBase", "FeatureExtractionMixin"]						,lowerCamelCase__						:    int = -1						,lowerCamelCase__						:    int = -1						,lowerCamelCase__						:    bool = False						,lowerCamelCase__						:    Optional["TensorType"] = None						,lowerCamelCase__						:    int = 22050						,lowerCamelCase__						:    float = 5.0						,lowerCamelCase__						:    int = 220						,)     ->		Mapping[str, Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE		=						OrderedDict()
           SCREAMING_SNAKE_CASE		=						OnnxConfig.generate_dummy_inputs(
               self						,preprocessor=preprocessor.feature_extractor						,batch_size=lowerCamelCase__						,framework=lowerCamelCase__						,sampling_rate=lowerCamelCase__						,time_duration=lowerCamelCase__						,frequency=lowerCamelCase__						,)
           SCREAMING_SNAKE_CASE		=						encoder_inputs["""input_features"""].shape[2]
           SCREAMING_SNAKE_CASE		=						encoder_sequence_length // 2 if self.use_past else seq_length

           SCREAMING_SNAKE_CASE		=						super().generate_dummy_inputs(
               preprocessor.tokenizer						,lowerCamelCase__						,lowerCamelCase__						,lowerCamelCase__						,lowerCamelCase__       )

           SCREAMING_SNAKE_CASE		=						encoder_inputs.pop("""input_features"""       )
           SCREAMING_SNAKE_CASE		=						decoder_inputs.pop("""decoder_input_ids"""       )

           if "past_key_values" in decoder_inputs:
                 SCREAMING_SNAKE_CASE		=						decoder_inputs.pop("""past_key_values"""       )

           return dummy_inputs






     @property
     def 				SCREAMING_SNAKE_CASE__  (							self						:    Tuple       )     ->		float:




           '''simple docstring'''


           return 1e-3









from collections import defaultdict
from math import gcd



def    __lowercase   (      _SCREAMING_SNAKE_CASE = 1_50_00_00	) ->   int:


      '''simple docstring'''


      SCREAMING_SNAKE_CASE		=						defaultdict(_SCREAMING_SNAKE_CASE	)
      SCREAMING_SNAKE_CASE		=						2
      while 2 * euclid_m * (euclid_m + 1) <= limit:
            for euclid_n in range((euclid_m % 2) + 1 ,						_SCREAMING_SNAKE_CASE ,						2	):
                  if gcd(_SCREAMING_SNAKE_CASE ,						_SCREAMING_SNAKE_CASE	) > 1:
                        continue
                  SCREAMING_SNAKE_CASE		=						2 * euclid_m * (euclid_m + euclid_n)
                  for perimeter in range(_SCREAMING_SNAKE_CASE ,						limit + 1 ,						_SCREAMING_SNAKE_CASE	):
                        frequencies[perimeter] += 1
            euclid_m += 1
      return sum(1 for frequency in frequencies.values() if frequency == 1	)


if __name__ == "__main__":
      print(F'''{solution() = }''')


