



import warnings
from typing import List, Optional, Union

from ...image_utils import ImageInput
from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding, PaddingStrategy, PreTokenizedInput, TextInput, TruncationStrategy
from ...utils import TensorType







class 		snake_case						(	SCREAMING_SNAKE_CASE_  ):



   '''simple docstring'''






   snake_case_					: Union[str, Any]          =		["""image_processor""", """tokenizer"""]
   snake_case_					: str          =		"""FlavaImageProcessor"""
   snake_case_					: Dict          =		("""BertTokenizer""", """BertTokenizerFast""")

   def __init__(					self							:			int				,		lowerCAmelCase							:			Any=None				,		lowerCAmelCase							:			Optional[int]=None				,		**lowerCAmelCase							:			List[Any])				->				Optional[Any]:

    """simple docstring"""







    _snake_case    :  Tuple					=					None
    if "feature_extractor" in kwargs:
     warnings.warn(
         """The `feature_extractor` argument is deprecated and will be removed in v5, use `image_processor`"""
         """ instead."""				,		lowerCAmelCase				,		)
     _snake_case    :  int					=					kwargs.pop("""feature_extractor""")

    _snake_case    :  List[str]					=					image_processor if image_processor is not None else feature_extractor
    if image_processor is None:
     raise ValueError("""You need to specify an `image_processor`.""")
    if tokenizer is None:
     raise ValueError("""You need to specify a `tokenizer`.""")

    super().__init__(lowerCAmelCase				,		lowerCAmelCase)
    _snake_case    :  Dict					=					self.image_processor

   def __call__(					self							:			Optional[int]				,		lowerCAmelCase							:			Optional[ImageInput] = None				,		lowerCAmelCase							:			Optional[Union[TextInput, PreTokenizedInput, List[TextInput], List[PreTokenizedInput]]] = None				,		lowerCAmelCase							:			bool = True				,		lowerCAmelCase							:			Union[bool, str, PaddingStrategy] = False				,		lowerCAmelCase							:			Union[bool, str, TruncationStrategy] = False				,		lowerCAmelCase							:			Optional[int] = None				,		lowerCAmelCase							:			int = 0				,		lowerCAmelCase							:			Optional[int] = None				,		lowerCAmelCase							:			Optional[bool] = None				,		lowerCAmelCase							:			Optional[bool] = None				,		lowerCAmelCase							:			Optional[bool] = None				,		lowerCAmelCase							:			Optional[bool] = None				,		lowerCAmelCase							:			bool = False				,		lowerCAmelCase							:			bool = False				,		lowerCAmelCase							:			bool = False				,		lowerCAmelCase							:			bool = False				,		lowerCAmelCase							:			bool = True				,		lowerCAmelCase							:			Optional[Union[str, TensorType]] = None				,		**lowerCAmelCase							:			Any				,		)				->				Optional[Any]:

    """simple docstring"""







    if text is None and images is None:
     raise ValueError("""You have to specify either text or images. Both cannot be none.""")

    if text is not None:
     _snake_case    :  Optional[Any]					=					self.tokenizer(
         text=lowerCAmelCase				,		add_special_tokens=lowerCAmelCase				,		padding=lowerCAmelCase				,		truncation=lowerCAmelCase				,		max_length=lowerCAmelCase				,		stride=lowerCAmelCase				,		pad_to_multiple_of=lowerCAmelCase				,		return_token_type_ids=lowerCAmelCase				,		return_attention_mask=lowerCAmelCase				,		return_overflowing_tokens=lowerCAmelCase				,		return_special_tokens_mask=lowerCAmelCase				,		return_offsets_mapping=lowerCAmelCase				,		return_length=lowerCAmelCase				,		verbose=lowerCAmelCase				,		return_tensors=lowerCAmelCase				,		**lowerCAmelCase				,		)
    if images is not None:
     _snake_case    :  str					=					self.image_processor(
         lowerCAmelCase				,		return_image_mask=lowerCAmelCase				,		return_codebook_pixels=lowerCAmelCase				,		return_tensors=lowerCAmelCase				,		**lowerCAmelCase				,		)

    if text is not None and images is not None:
     encoding.update(lowerCAmelCase)
     return encoding
    elif text is not None:
     return encoding
    else:
     return BatchEncoding(data=dict(**lowerCAmelCase)				,		tensor_type=lowerCAmelCase)

   def      UpperCamelCase_  (					self							:			Tuple				,		*lowerCAmelCase							:			Tuple				,		**lowerCAmelCase							:			int)				->				Union[str, Any]:

    """simple docstring"""







    return self.tokenizer.batch_decode(*lowerCAmelCase				,		**lowerCAmelCase)

   def      UpperCamelCase_  (					self							:			Optional[Any]				,		*lowerCAmelCase							:			Optional[Any]				,		**lowerCAmelCase							:			List[str])				->				int:

    """simple docstring"""







    return self.tokenizer.decode(*lowerCAmelCase				,		**lowerCAmelCase)

   @property
   def      UpperCamelCase_  (					self							:			str)				->				Union[str, Any]:

    """simple docstring"""







    _snake_case    :  Any					=					self.tokenizer.model_input_names
    _snake_case    :  Optional[Any]					=					self.image_processor.model_input_names
    return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names))

   @property
   def      UpperCamelCase_  (					self							:			Any)				->				List[str]:

    """simple docstring"""







    warnings.warn(
        """`feature_extractor_class` is deprecated and will be removed in v5. Use `image_processor_class` instead."""				,		lowerCAmelCase				,		)
    return self.image_processor_class


   @property
   def      UpperCamelCase_  (					self							:			List[str])				->				Dict:

    """simple docstring"""







    warnings.warn(
        """`feature_extractor` is deprecated and will be removed in v5. Use `image_processor` instead."""				,		lowerCAmelCase				,		)
    return self.image_processor





import sys

a__    =	(
    """73167176531330624919225119674426574742355349194934"""
    """96983520312774506326239578318016984801869478851843"""
    """85861560789112949495459501737958331952853208805511"""
    """12540698747158523863050715693290963295227443043557"""
    """66896648950445244523161731856403098711121722383113"""
    """62229893423380308135336276614282806444486645238749"""
    """30358907296290491560440772390713810515859307960866"""
    """70172427121883998797908792274921901699720888093776"""
    """65727333001053367881220235421809751254540594752243"""
    """52584907711670556013604839586446706324415722155397"""
    """53697817977846174064955149290862569321978468622482"""
    """83972241375657056057490261407972968652414535100474"""
    """82166370484403199890008895243450658541227588666881"""
    """16427171479924442928230863465674813919123162824586"""
    """17866458359124566529476545682848912883142607690042"""
    """24219022671055626321111109370544217506941658960408"""
    """07198403850962455444362981230987879927244284909188"""
    """84580156166097919133875499200524063689912560717606"""
    """05886116467109405077541002256983155200055935729725"""
    """71636269561882670428252483600823257530420752963450"""
)



def       lowercase       (   SCREAMING_SNAKE_CASE__       :	str = N				)  ->     int:
 _snake_case    :  int					=					-sys.maxsize - 1
 for i in range(len(SCREAMING_SNAKE_CASE__				) - 12				):
  _snake_case    :  Optional[int]					=					1
  for j in range(13				):
   product *= int(n[i + j]				)
  if product > largest_product:
   _snake_case    :  List[str]					=					product
 return largest_product


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