


'''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

__snake_case          =  logging.get_logger(__name__)

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

# fmt: off
__snake_case          =  [
    1, 2, 7, 8, 9, 10, 14, 25,
    26, 27, 28, 29, 31, 58, 59, 60, 61, 62,
    63, 90, 91, 92, 93, 357, 366, 438, 532, 685,
    705, 796, 930, 1058, 1220, 1267, 1279, 1303, 1343, 1377,
    1391, 1635, 1782, 1875, 2162, 2361, 2488, 3467, 4008, 4211,
    4600, 4808, 5299, 5855, 6329, 7203, 9609, 9959, 10563, 10786,
    11420, 11709, 11907, 13163, 13697, 13700, 14808, 15306, 16410, 16791,
    17992, 19203, 19510, 20724, 22305, 22935, 27007, 30109, 30420, 33409,
    34949, 40283, 40493, 40549, 47282, 49146, 50257, 50359, 50360, 50361
]
__snake_case          =  [
    1, 2, 7, 8, 9, 10, 14, 25,
    26, 27, 28, 29, 31, 58, 59, 60, 61, 62,
    63, 90, 91, 92, 93, 359, 503, 522, 542, 873,
    893, 902, 918, 922, 931, 1350, 1853, 1982, 2460, 2627,
    3246, 3253, 3268, 3536, 3846, 3961, 4183, 4667, 6585, 6647,
    7273, 9061, 9383, 10428, 10929, 11938, 12033, 12331, 12562, 13793,
    14157, 14635, 15265, 15618, 16553, 16604, 18362, 18956, 20075, 21675,
    22520, 26130, 26161, 26435, 28279, 29464, 31650, 32302, 32470, 36865,
    42863, 47425, 49870, 50254, 50258, 50360, 50361, 50362
]
class      lowercase			(							__lowerCamelCase      ):

		"""simple docstring"""

		_a									=       'whisper'
		_a									=       ['past_key_values']
		_a									=       {'num_attention_heads': 'encoder_attention_heads', 'hidden_size': 'd_model'}




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

							'''simple docstring'''


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

							# Audio Classification-specific parameters. Feel free to ignore for other classes.
							UpperCamelCase__     :str							      =				classifier_proj_size
							UpperCamelCase__     :Tuple							      =				use_weighted_layer_sum

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

							UpperCamelCase__     :int							      =				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      lowercase			(							__lowerCamelCase      ):

		"""simple docstring"""

		@property
		def 					lowerCAmelCase__       (	self							):

							'''simple docstring'''


							UpperCamelCase__     :Dict							      =				OrderedDict(
							    [
							        ('''input_features''', {0: '''batch''', 1: '''feature_size''', 2: '''encoder_sequence'''}),
							    ]							)
							if self.use_past:
												UpperCamelCase__     :int							      =				{0: '''batch'''}
							else:
												UpperCamelCase__     :Any							      =				{0: '''batch''', 1: '''decoder_sequence'''}

							if self.use_past:
												self.fill_with_past_key_values_(SCREAMING_SNAKE_CASE_					,     direction='''inputs'''							)

							return common_inputs




		def 					lowerCAmelCase__       (	self					,     UpperCamelCase_					,     UpperCamelCase_ = -1					,     UpperCamelCase_ = -1					,     UpperCamelCase_ = False					,     UpperCamelCase_ = None					,     UpperCamelCase_ = 22050					,     UpperCamelCase_ = 5.0					,     UpperCamelCase_ = 220					,     ):

							'''simple docstring'''


							UpperCamelCase__     :List[str]							      =				OrderedDict()
							UpperCamelCase__     :Optional[int]							      =				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__     :Dict							      =				encoder_sequence_length // 2 if self.use_past else seq_length

							UpperCamelCase__     :Tuple							      =				super().generate_dummy_inputs(
							    preprocessor.tokenizer					,     SCREAMING_SNAKE_CASE_					,     SCREAMING_SNAKE_CASE_					,     SCREAMING_SNAKE_CASE_					,     SCREAMING_SNAKE_CASE_							)

							UpperCamelCase__     :List[str]							      =				encoder_inputs.pop('''input_features'''							)
							UpperCamelCase__     :str							      =				decoder_inputs.pop('''decoder_input_ids'''							)

							if "past_key_values" in decoder_inputs:
												UpperCamelCase__     :str							      =				decoder_inputs.pop('''past_key_values'''							)

							return dummy_inputs




		@property
		def 					lowerCAmelCase__       (	self							):

							'''simple docstring'''


							return 1e-3



'''simple docstring'''
import sys

__snake_case							   =  (
    '''73167176531330624919225119674426574742355349194934'''
    '''96983520312774506326239578318016984801869478851843'''
    '''85861560789112949495459501737958331952853208805511'''
    '''12540698747158523863050715693290963295227443043557'''
    '''66896648950445244523161731856403098711121722383113'''
    '''62229893423380308135336276614282806444486645238749'''
    '''30358907296290491560440772390713810515859307960866'''
    '''70172427121883998797908792274921901699720888093776'''
    '''65727333001053367881220235421809751254540594752243'''
    '''52584907711670556013604839586446706324415722155397'''
    '''53697817977846174064955149290862569321978468622482'''
    '''83972241375657056057490261407972968652414535100474'''
    '''82166370484403199890008895243450658541227588666881'''
    '''16427171479924442928230863465674813919123162824586'''
    '''17866458359124566529476545682848912883142607690042'''
    '''24219022671055626321111109370544217506941658960408'''
    '''07198403850962455444362981230987879927244284909188'''
    '''84580156166097919133875499200524063689912560717606'''
    '''05886116467109405077541002256983155200055935729725'''
    '''71636269561882670428252483600823257530420752963450'''
)


def     a   (    __a     )						->			int:



					'''simple docstring'''






					UpperCamelCase__     :Tuple							      =				1
					for digit in s:
										product *= int(__a     )
					return product


def     a   (    __a = N     )						->			int:



					'''simple docstring'''






					UpperCamelCase__     :Tuple							      =				-sys.maxsize - 1
					UpperCamelCase__     :Dict							      =				n[:13]
					UpperCamelCase__     :Dict							      =				13
					while cur_index < len(__a     ) - 13:
										if int(n[cur_index]     ) >= int(substr[0]     ):
															UpperCamelCase__     :Dict							      =				substr[1:] + n[cur_index]
															cur_index += 1
										else:
															UpperCamelCase__     :List[str]							      =				max(__a				,      str_eval(__a     )     )
															UpperCamelCase__     :Union[str, Any]							      =				n[cur_index : cur_index + 13]
															cur_index += 13
					return largest_product


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