


'''simple docstring'''






import json
from typing import List, Optional, Tuple

from tokenizers import normalizers

from ...tokenization_utils_fast import PreTrainedTokenizerFast
from .tokenization_lxmert import LxmertTokenizer


a_   :      Optional[int]				    =      {"""vocab_file""": """vocab.txt""", """tokenizer_file""": """tokenizer.json"""}

a_   :      List[str]				    =      {
    """vocab_file""": {
        """unc-nlp/lxmert-base-uncased""": """https://huggingface.co/unc-nlp/lxmert-base-uncased/resolve/main/vocab.txt""",
    },
    """tokenizer_file""": {
        """unc-nlp/lxmert-base-uncased""": (
            """https://huggingface.co/unc-nlp/lxmert-base-uncased/resolve/main/tokenizer.json"""
        ),
    },
}

a_   :      List[Any]				    =      {
    """unc-nlp/lxmert-base-uncased""": 5_1_2,
}

a_   :      str				    =      {
    """unc-nlp/lxmert-base-uncased""": {"""do_lower_case""": True},
}




class 	a       (       lowerCamelCase__    ):
 _lowerCAmelCase	   =		VOCAB_FILES_NAMES
 _lowerCAmelCase	   =		PRETRAINED_VOCAB_FILES_MAP
 _lowerCAmelCase	   =		PRETRAINED_INIT_CONFIGURATION
 _lowerCAmelCase	   =		PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
 _lowerCAmelCase	   =		LxmertTokenizer
 def __init__(	self ,			__magic_name__=None ,			__magic_name__=None ,			__magic_name__=True ,			__magic_name__="[UNK]" ,			__magic_name__="[SEP]" ,			__magic_name__="[PAD]" ,			__magic_name__="[CLS]" ,			__magic_name__="[MASK]" ,			__magic_name__=True ,			__magic_name__=None ,			**__magic_name__ ,			)   ->							List[Any]:
      super().__init__(
          __magic_name__ ,			tokenizer_file=__magic_name__ ,			do_lower_case=__magic_name__ ,			unk_token=__magic_name__ ,			sep_token=__magic_name__ ,			pad_token=__magic_name__ ,			cls_token=__magic_name__ ,			mask_token=__magic_name__ ,			tokenize_chinese_chars=__magic_name__ ,			strip_accents=__magic_name__ ,			**__magic_name__ ,			)

      _a      =							json.loads(self.backend_tokenizer.normalizer.__getstate__()  )
      if (
          normalizer_state.get('lowercase' ,			__magic_name__  ) != do_lower_case
          or normalizer_state.get('strip_accents' ,			__magic_name__  ) != strip_accents
          or normalizer_state.get('handle_chinese_chars' ,			__magic_name__  ) != tokenize_chinese_chars
      ):
           _a      =							getattr(__magic_name__ ,			normalizer_state.pop('type'  )  )
           _a      =							do_lower_case
           _a      =							strip_accents
           _a      =							tokenize_chinese_chars
           _a      =							normalizer_class(**__magic_name__  )

      _a      =							do_lower_case
 def 							__UpperCAmelCase						(	self ,			__magic_name__ ,			__magic_name__=None  )   ->							Any:
      _a      =							[self.cls_token_id] + token_ids_a + [self.sep_token_id]

      if token_ids_a:
           output += token_ids_a + [self.sep_token_id]

      return output
 def 							__UpperCAmelCase						(	self ,			__magic_name__ ,			__magic_name__ = None  )   ->							Optional[int]:
      _a      =							[self.sep_token_id]
      _a      =							[self.cls_token_id]
      if token_ids_a is None:
           return len(cls + token_ids_a + sep  ) * [0]
      return len(cls + token_ids_a + sep  ) * [0] + len(token_ids_a + sep  ) * [1]




 def 							__UpperCAmelCase						(	self ,			__magic_name__ ,			__magic_name__ = None  )   ->							Dict:
      _a      =							self._tokenizer.model.save(__magic_name__ ,			name=__magic_name__  )
      return tuple(__magic_name__  )





'''simple docstring'''






def 		_A			(lowerCAmelCase__					:int						)				->					int:




     '''simple docstring'''



     assert (
         isinstance(lowerCAmelCase__			,  lowerCAmelCase__						) and number_of_steps > 0
     ), f'number_of_steps needs to be positive integer, your input {number_of_steps}'
     if number_of_steps == 1:
          return 1
     _a ,				_a      =							1, 1
     for _ in range(number_of_steps - 1						):
          _a ,				_a      =							current + previous, current
     return current


if __name__ == "__main__":
 import doctest

 doctest.testmod()

