
from collections import OrderedDict
from typing import Mapping

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


_lowerCamelCase	:    Any          =      logging.get_logger(__name__)

_lowerCamelCase	:    Dict          =      {
    '''google/bigbird-roberta-base''': '''https://huggingface.co/google/bigbird-roberta-base/resolve/main/config.json''',
    '''google/bigbird-roberta-large''': '''https://huggingface.co/google/bigbird-roberta-large/resolve/main/config.json''',
    '''google/bigbird-base-trivia-itc''': '''https://huggingface.co/google/bigbird-base-trivia-itc/resolve/main/config.json''',
    # See all BigBird models at https://huggingface.co/models?filter=big_bird
}




class        SCREAMING_SNAKE_CASE__					(     UpperCAmelCase ):





	'''simple docstring'''



	_UpperCAmelCase	:		Dict          = "big_bird"



	def __init__(  self     :   Dict      ,  lowercase     :   Optional[Any]=50_358      ,  lowercase     :   int=768      ,  lowercase     :   Tuple=12      ,  lowercase     :   Union[str, Any]=12      ,  lowercase     :   Tuple=3_072      ,  lowercase     :   Any="gelu_new"      ,  lowercase     :   int=0.1      ,  lowercase     :   str=0.1      ,  lowercase     :   Dict=4_096      ,  lowercase     :   Optional[Any]=2      ,  lowercase     :   Optional[int]=0.02      ,  lowercase     :   List[str]=1E-12      ,  lowercase     :   List[str]=True      ,  lowercase     :   Dict=0      ,  lowercase     :   Any=1      ,  lowercase     :   Optional[int]=2      ,  lowercase     :   Optional[Any]=66      ,  lowercase     :   Tuple="block_sparse"      ,  lowercase     :   Dict=True      ,  lowercase     :   Tuple=False      ,  lowercase     :   str=64      ,  lowercase     :   Tuple=3      ,  lowercase     :   Tuple=None      ,  **lowercase     :   Optional[Any]      ,  ):


				'''simple docstring'''


				super().__init__(
				    pad_token_id=lowercase      ,  bos_token_id=lowercase      ,  eos_token_id=lowercase      ,  sep_token_id=lowercase      ,  **lowercase      ,  )

				_snake_case          =      vocab_size
				_snake_case          =      max_position_embeddings
				_snake_case          =      hidden_size
				_snake_case          =      num_hidden_layers
				_snake_case          =      num_attention_heads
				_snake_case          =      intermediate_size
				_snake_case          =      hidden_act
				_snake_case          =      hidden_dropout_prob
				_snake_case          =      attention_probs_dropout_prob
				_snake_case          =      initializer_range
				_snake_case          =      type_vocab_size
				_snake_case          =      layer_norm_eps
				_snake_case          =      use_cache

				_snake_case          =      rescale_embeddings
				_snake_case          =      attention_type
				_snake_case          =      use_bias
				_snake_case          =      block_size
				_snake_case          =      num_random_blocks
				_snake_case          =      classifier_dropout




class        SCREAMING_SNAKE_CASE__					(     UpperCAmelCase ):





	'''simple docstring'''



	@property
	def 			A							(  self     :   Dict     ):


				'''simple docstring'''


				if self.task == "multiple-choice":
							_snake_case          =      {0: 'batch', 1: 'choice', 2: 'sequence'}
				else:
							_snake_case          =      {0: 'batch', 1: 'sequence'}
				return OrderedDict(
				    [
				        ('input_ids', dynamic_axis),
				        ('attention_mask', dynamic_axis),
				    ]     )

from functools import lru_cache






@lru_cache
def 	a_		(	__lowercase       :     int			)			->  int:
			if num < 0:
						raise ValueError('Number should not be negative.'			)

			return 1 if num in (0, 1) else num * factorial(num - 1			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()