import functools
import operator

from ...configuration_utils import PretrainedConfig
from ...utils import logging


SCREAMING_SNAKE_CASE			:						str				  =		logging.get_logger(__name__)

SCREAMING_SNAKE_CASE			:						str				  =		{
    """asapp/sew-d-tiny-100k""": """https://huggingface.co/asapp/sew-d-tiny-100k/resolve/main/config.json""",
    # See all SEW-D models at https://huggingface.co/models?filter=sew-d
}
class  A_			(							a_			):
  _SCREAMING_SNAKE_CASE     					=      """sew-d"""

  def __init__(		self			:   List[Any]  ,				__SCREAMING_SNAKE_CASE			:   List[str]=32  ,				__SCREAMING_SNAKE_CASE			:   Tuple=7_68  ,				__SCREAMING_SNAKE_CASE			:   Optional[Any]=12  ,				__SCREAMING_SNAKE_CASE			:   Dict=12  ,				__SCREAMING_SNAKE_CASE			:   str=30_72  ,				__SCREAMING_SNAKE_CASE			:   int=2  ,				__SCREAMING_SNAKE_CASE			:   List[str]=5_12  ,				__SCREAMING_SNAKE_CASE			:   Optional[Any]=2_56  ,				__SCREAMING_SNAKE_CASE			:   Any=True  ,				__SCREAMING_SNAKE_CASE			:   List[str]=True  ,				__SCREAMING_SNAKE_CASE			:   Optional[Any]=("p2c", "c2p")  ,				__SCREAMING_SNAKE_CASE			:   List[Any]="layer_norm"  ,				__SCREAMING_SNAKE_CASE			:   Optional[int]="gelu_python"  ,				__SCREAMING_SNAKE_CASE			:   Dict=0.1  ,				__SCREAMING_SNAKE_CASE			:   List[str]=0.1  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=0.1  ,				__SCREAMING_SNAKE_CASE			:   Any=0.0  ,				__SCREAMING_SNAKE_CASE			:   Tuple=0.1  ,				__SCREAMING_SNAKE_CASE			:   List[str]=0.02  ,				__SCREAMING_SNAKE_CASE			:   List[str]=1E-7  ,				__SCREAMING_SNAKE_CASE			:   Optional[int]=1E-5  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]="group"  ,				__SCREAMING_SNAKE_CASE			:   str="gelu"  ,				__SCREAMING_SNAKE_CASE			:   Tuple=(64, 1_28, 1_28, 1_28, 1_28, 2_56, 2_56, 2_56, 2_56, 5_12, 5_12, 5_12, 5_12)  ,				__SCREAMING_SNAKE_CASE			:   List[Any]=(5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1)  ,				__SCREAMING_SNAKE_CASE			:   Tuple=(10, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1)  ,				__SCREAMING_SNAKE_CASE			:   Any=False  ,				__SCREAMING_SNAKE_CASE			:   Tuple=1_28  ,				__SCREAMING_SNAKE_CASE			:   List[Any]=16  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=True  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=0.05  ,				__SCREAMING_SNAKE_CASE			:   Dict=10  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=2  ,				__SCREAMING_SNAKE_CASE			:   List[str]=0.0  ,				__SCREAMING_SNAKE_CASE			:   Optional[Any]=10  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=0  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]="mean"  ,				__SCREAMING_SNAKE_CASE			:   List[str]=False  ,				__SCREAMING_SNAKE_CASE			:   Tuple=False  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=2_56  ,				__SCREAMING_SNAKE_CASE			:   Union[str, Any]=0  ,				__SCREAMING_SNAKE_CASE			:   Any=1  ,				__SCREAMING_SNAKE_CASE			:   int=2  ,				**__SCREAMING_SNAKE_CASE			:   List[Any]  ,				):
   super().__init__(**__SCREAMING_SNAKE_CASE  ,				pad_token_id=__SCREAMING_SNAKE_CASE  ,				bos_token_id=__SCREAMING_SNAKE_CASE  ,				eos_token_id=__SCREAMING_SNAKE_CASE							)
   __a							=	hidden_size
   __a							=	feat_extract_norm
   __a							=	feat_extract_activation
   __a							=	list(__SCREAMING_SNAKE_CASE							)
   __a							=	list(__SCREAMING_SNAKE_CASE							)
   __a							=	list(__SCREAMING_SNAKE_CASE							)
   __a							=	conv_bias
   __a							=	num_conv_pos_embeddings
   __a							=	num_conv_pos_embedding_groups
   __a							=	len(self.conv_dim							)
   __a							=	num_hidden_layers
   __a							=	intermediate_size
   __a							=	squeeze_factor
   __a							=	max_position_embeddings
   __a							=	position_buckets
   __a							=	share_att_key
   __a							=	relative_attention
   __a							=	norm_rel_ebd
   __a							=	list(__SCREAMING_SNAKE_CASE							)
   __a							=	hidden_act
   __a							=	num_attention_heads
   __a							=	hidden_dropout
   __a							=	attention_dropout
   __a							=	activation_dropout
   __a							=	feat_proj_dropout
   __a							=	final_dropout
   __a							=	layer_norm_eps
   __a							=	feature_layer_norm_eps
   __a							=	initializer_range
   __a							=	vocab_size

   if (
       (len(self.conv_stride							) != self.num_feat_extract_layers)
       or (len(self.conv_kernel							) != self.num_feat_extract_layers)
       or (len(self.conv_dim							) != self.num_feat_extract_layers)
   ):
    raise ValueError(
        "Configuration for convolutional layers is incorrect."
        "It is required that `len(config.conv_dim)` == `len(config.conv_stride)` == `len(config.conv_kernel)`,"
        f"""but is `len(config.conv_dim) = {len(self.conv_dim							)}`, `len(config.conv_stride)"""
        f"""= {len(self.conv_stride							)}`, `len(config.conv_kernel) = {len(self.conv_kernel							)}`."""							)

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

   # ctc loss
   __a							=	ctc_loss_reduction
   __a							=	ctc_zero_infinity

   # sequence classification
   __a							=	use_weighted_layer_sum
   __a							=	classifier_proj_size

  @property
  def 		_UpperCAmelCase (		self			:   List[Any]							):
   return functools.reduce(operator.mul  ,				self.conv_stride  ,				1							)



def 	__A		(      _A				,					_A       ):



 """simple docstring"""


 return x if y == 0 else greatest_common_divisor(_A				,					x % y       )



def 	__A		(      _A				,					_A       ):



 """simple docstring"""


 return (x * y) // greatest_common_divisor(_A				,					_A       )



def 	__A		(      _A = 20       ):



 """simple docstring"""


 __a							=	1
 for i in range(1				,					n + 1       ):
  __a							=	lcm(_A				,					_A       )
 return g


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


