



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


__snake_case						:Any      		=     logging.get_logger(__name__)

__snake_case						:Tuple      		=     {
    '''microsoft/markuplm-base''': '''https://huggingface.co/microsoft/markuplm-base/resolve/main/config.json''',
    '''microsoft/markuplm-large''': '''https://huggingface.co/microsoft/markuplm-large/resolve/main/config.json''',
}

class     _A       (	__UpperCAmelCase    ):
       UpperCamelCase__  :    Optional[int]											=						'''markuplm'''



       def __init__(		self							:     str     ,		__SCREAMING_SNAKE_CASE							:     List[str]=30_522     ,		__SCREAMING_SNAKE_CASE							:     Optional[Any]=768     ,		__SCREAMING_SNAKE_CASE							:     List[Any]=12     ,		__SCREAMING_SNAKE_CASE							:     Dict=12     ,		__SCREAMING_SNAKE_CASE							:     List[Any]=3_072     ,		__SCREAMING_SNAKE_CASE							:     Optional[Any]="gelu"     ,		__SCREAMING_SNAKE_CASE							:     List[Any]=0.1     ,		__SCREAMING_SNAKE_CASE							:     int=0.1     ,		__SCREAMING_SNAKE_CASE							:     Union[str, Any]=512     ,		__SCREAMING_SNAKE_CASE							:     Tuple=2     ,		__SCREAMING_SNAKE_CASE							:     Optional[Any]=0.02     ,		__SCREAMING_SNAKE_CASE							:     Any=1E-12     ,		__SCREAMING_SNAKE_CASE							:     List[str]=0     ,		__SCREAMING_SNAKE_CASE							:     Tuple=0     ,		__SCREAMING_SNAKE_CASE							:     str=2     ,		__SCREAMING_SNAKE_CASE							:     Any=256     ,		__SCREAMING_SNAKE_CASE							:     List[str]=1_024     ,		__SCREAMING_SNAKE_CASE							:     int=216     ,		__SCREAMING_SNAKE_CASE							:     Any=1_001     ,		__SCREAMING_SNAKE_CASE							:     str=32     ,		__SCREAMING_SNAKE_CASE							:     Union[str, Any]=50     ,		__SCREAMING_SNAKE_CASE							:     Optional[int]="absolute"     ,		__SCREAMING_SNAKE_CASE							:     List[Any]=True     ,		__SCREAMING_SNAKE_CASE							:     List[Any]=None     ,		**__SCREAMING_SNAKE_CASE							:     Optional[Any]     ,		):


           '''simple docstring'''

           super().__init__(
               pad_token_id=__SCREAMING_SNAKE_CASE     ,		bos_token_id=__SCREAMING_SNAKE_CASE     ,		eos_token_id=__SCREAMING_SNAKE_CASE     ,		**__SCREAMING_SNAKE_CASE     ,		)
           __a						       =				vocab_size
           __a						       =				hidden_size
           __a						       =				num_hidden_layers
           __a						       =				num_attention_heads
           __a						       =				hidden_act
           __a						       =				intermediate_size
           __a						       =				hidden_dropout_prob
           __a						       =				attention_probs_dropout_prob
           __a						       =				max_position_embeddings
           __a						       =				type_vocab_size
           __a						       =				initializer_range
           __a						       =				layer_norm_eps
           __a						       =				position_embedding_type
           __a						       =				use_cache
           __a						       =				classifier_dropout
           # additional properties
           __a						       =				max_depth
           __a						       =				max_xpath_tag_unit_embeddings
           __a						       =				max_xpath_subs_unit_embeddings
           __a						       =				tag_pad_id
           __a						       =				subs_pad_id
           __a						       =				xpath_unit_hidden_size






from functools import lru_cache


@lru_cache
def    a__       (						__UpperCamelCase ):
      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()


