'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


_A			:      str					      =				{
    '''configuration_layoutlmv2''': ['''LAYOUTLMV2_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''LayoutLMv2Config'''],
    '''processing_layoutlmv2''': ['''LayoutLMv2Processor'''],
    '''tokenization_layoutlmv2''': ['''LayoutLMv2Tokenizer'''],
}

try:
 if not is_tokenizers_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      Union[str, Any]					      =				['''LayoutLMv2TokenizerFast''']

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      List[Any]					      =				['''LayoutLMv2FeatureExtractor''']
 _A			:      Any					      =				['''LayoutLMv2ImageProcessor''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      Tuple					      =				[
     '''LAYOUTLMV2_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''LayoutLMv2ForQuestionAnswering''',
     '''LayoutLMv2ForSequenceClassification''',
     '''LayoutLMv2ForTokenClassification''',
     '''LayoutLMv2Layer''',
     '''LayoutLMv2Model''',
     '''LayoutLMv2PreTrainedModel''',
 ]

if TYPE_CHECKING:
 from .configuration_layoutlmva import LAYOUTLMV2_PRETRAINED_CONFIG_ARCHIVE_MAP, LayoutLMvaConfig
 from .processing_layoutlmva import LayoutLMvaProcessor
 from .tokenization_layoutlmva import LayoutLMvaTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_layoutlmva_fast import LayoutLMvaTokenizerFast

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_layoutlmva import LayoutLMvaFeatureExtractor, LayoutLMvaImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_layoutlmva import (
      LAYOUTLMV2_PRETRAINED_MODEL_ARCHIVE_LIST,
      LayoutLMvaForQuestionAnswering,
      LayoutLMvaForSequenceClassification,
      LayoutLMvaForTokenClassification,
      LayoutLMvaLayer,
      LayoutLMvaModel,
      LayoutLMvaPreTrainedModel,
  )
else:
 import sys

 _A			:      str					      =				_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







'''simple docstring'''

def      UpperCamelCase_						(					snake_case_       :       int						,		snake_case_       :       int      )					->     str:






 '''simple docstring'''

 if a < 0 or b < 0:
  raise ValueError("""the value of both inputs must be positive"""      )

 __lowerCAmelCase											=						str(bin(snake_case_      )      )[2:]  # remove the leading "0b"
 __lowerCAmelCase											=						str(bin(snake_case_      )      )[2:]  # remove the leading "0b"

 __lowerCAmelCase											=						max(len(snake_case_      )						,		len(snake_case_      )      )

 return "0b" + "".join(
     str(int(char_a == """1""" and char_b == """1"""      )      )
     for char_a, char_b in zip(a_binary.zfill(snake_case_      )						,		b_binary.zfill(snake_case_      )      )      )


if __name__ == "__main__":
 import doctest

 doctest.testmod()






