


"""simple docstring"""
from functools import reduce

__SCREAMING_SNAKE_CASE							:      str						=      (
    '73167176531330624919225119674426574742355349194934'
    '96983520312774506326239578318016984801869478851843'
    '85861560789112949495459501737958331952853208805511'
    '12540698747158523863050715693290963295227443043557'
    '66896648950445244523161731856403098711121722383113'
    '62229893423380308135336276614282806444486645238749'
    '30358907296290491560440772390713810515859307960866'
    '70172427121883998797908792274921901699720888093776'
    '65727333001053367881220235421809751254540594752243'
    '52584907711670556013604839586446706324415722155397'
    '53697817977846174064955149290862569321978468622482'
    '83972241375657056057490261407972968652414535100474'
    '82166370484403199890008895243450658541227588666881'
    '16427171479924442928230863465674813919123162824586'
    '17866458359124566529476545682848912883142607690042'
    '24219022671055626321111109370544217506941658960408'
    '07198403850962455444362981230987879927244284909188'
    '84580156166097919133875499200524063689912560717606'
    '05886116467109405077541002256983155200055935729725'
    '71636269561882670428252483600823257530420752963450'
)







def   _a			( _SCREAMING_SNAKE_CASE = N			)      ->			int:
							return max(
							    # mypy cannot properly interpret reduce
							    int(reduce(lambda _SCREAMING_SNAKE_CASE			,	_SCREAMING_SNAKE_CASE			: str(int(_SCREAMING_SNAKE_CASE			) * int(_SCREAMING_SNAKE_CASE			)			)			,	n[i : i + 13]			)			)
							    for i in range(len(_SCREAMING_SNAKE_CASE			) - 12			)			)


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







"""simple docstring"""
import shutil
import tempfile
import unittest

from transformers import ClapFeatureExtractor, ClapProcessor, RobertaTokenizer, RobertaTokenizerFast
from transformers.testing_utils import require_sentencepiece, require_torchaudio

from .test_feature_extraction_clap import floats_list





@require_torchaudio
@require_sentencepiece
class        __A       (unittest.TestCase):





							'''simple docstring'''

							def 						lowerCAmelCase    (			self							: Dict    )   ->List[Any]:



														"""simple docstring"""



														snake_case_          =						"""laion/clap-htsat-unfused"""
														snake_case_          =						tempfile.mkdtemp()



							def 						lowerCAmelCase    (			self							: List[str]						,    **UpperCAmelCase_							: Tuple    )   ->str:



														"""simple docstring"""



														return RobertaTokenizer.from_pretrained(self.checkpoint						,    **UpperCAmelCase_    )



							def 						lowerCAmelCase    (			self							: Optional[Any]						,    **UpperCAmelCase_							: Any    )   ->Optional[Any]:



														"""simple docstring"""



														return ClapFeatureExtractor.from_pretrained(self.checkpoint						,    **UpperCAmelCase_    )



							def 						lowerCAmelCase    (			self							: str    )   ->Any:



														"""simple docstring"""



														shutil.rmtree(self.tmpdirname    )



							def 						lowerCAmelCase    (			self							: Tuple    )   ->Optional[int]:



														"""simple docstring"""



														snake_case_          =						self.get_tokenizer()
														snake_case_          =						self.get_feature_extractor()

														snake_case_          =						ClapProcessor(tokenizer=UpperCAmelCase_						,    feature_extractor=UpperCAmelCase_    )

														processor.save_pretrained(self.tmpdirname    )
														snake_case_          =						ClapProcessor.from_pretrained(self.tmpdirname    )

														self.assertEqual(processor.tokenizer.get_vocab()						,    tokenizer.get_vocab()    )
														self.assertIsInstance(processor.tokenizer						,    UpperCAmelCase_    )

														self.assertEqual(processor.feature_extractor.to_json_string()						,    feature_extractor.to_json_string()    )
														self.assertIsInstance(processor.feature_extractor						,    UpperCAmelCase_    )



							def 						lowerCAmelCase    (			self							: int    )   ->List[str]:



														"""simple docstring"""



														snake_case_          =						ClapProcessor(tokenizer=self.get_tokenizer()						,    feature_extractor=self.get_feature_extractor()    )
														processor.save_pretrained(self.tmpdirname    )

														snake_case_          =						self.get_tokenizer(bos_token="""(BOS)"""						,    eos_token="""(EOS)"""    )
														snake_case_          =						self.get_feature_extractor(do_normalize=UpperCAmelCase_						,    padding_value=1.0    )

														snake_case_          =						ClapProcessor.from_pretrained(
														    self.tmpdirname						,    bos_token="""(BOS)"""						,    eos_token="""(EOS)"""						,    do_normalize=UpperCAmelCase_						,    padding_value=1.0    )

														self.assertEqual(processor.tokenizer.get_vocab()						,    tokenizer_add_kwargs.get_vocab()    )
														self.assertIsInstance(processor.tokenizer						,    UpperCAmelCase_    )

														self.assertEqual(processor.feature_extractor.to_json_string()						,    feature_extractor_add_kwargs.to_json_string()    )
														self.assertIsInstance(processor.feature_extractor						,    UpperCAmelCase_    )



							def 						lowerCAmelCase    (			self							: str    )   ->Dict:



														"""simple docstring"""



														snake_case_          =						self.get_feature_extractor()
														snake_case_          =						self.get_tokenizer()

														snake_case_          =						ClapProcessor(tokenizer=UpperCAmelCase_						,    feature_extractor=UpperCAmelCase_    )

														snake_case_          =						floats_list((3, 1_000)    )

														snake_case_          =						feature_extractor(UpperCAmelCase_						,    return_tensors="""np"""    )
														snake_case_          =						processor(audios=UpperCAmelCase_						,    return_tensors="""np"""    )

														for key in input_feat_extract.keys():
																					self.assertAlmostEqual(input_feat_extract[key].sum()						,    input_processor[key].sum()						,    delta=1E-2    )



							def 						lowerCAmelCase    (			self							: Union[str, Any]    )   ->Optional[int]:



														"""simple docstring"""



														snake_case_          =						self.get_feature_extractor()
														snake_case_          =						self.get_tokenizer()

														snake_case_          =						ClapProcessor(tokenizer=UpperCAmelCase_						,    feature_extractor=UpperCAmelCase_    )

														snake_case_          =						"""This is a test string"""

														snake_case_          =						processor(text=UpperCAmelCase_    )

														snake_case_          =						tokenizer(UpperCAmelCase_    )

														for key in encoded_tok.keys():
																					self.assertListEqual(encoded_tok[key]						,    encoded_processor[key]    )



							def 						lowerCAmelCase    (			self							: Optional[int]    )   ->Tuple:



														"""simple docstring"""



														snake_case_          =						self.get_feature_extractor()
														snake_case_          =						self.get_tokenizer()

														snake_case_          =						ClapProcessor(tokenizer=UpperCAmelCase_						,    feature_extractor=UpperCAmelCase_    )

														snake_case_          =						[[1, 4, 5, 8, 1, 0, 8], [3, 4, 3, 1, 1, 8, 9]]

														snake_case_          =						processor.batch_decode(UpperCAmelCase_    )
														snake_case_          =						tokenizer.batch_decode(UpperCAmelCase_    )

														self.assertListEqual(UpperCAmelCase_						,    UpperCAmelCase_    )



							def 						lowerCAmelCase    (			self							: List[str]    )   ->Union[str, Any]:



														"""simple docstring"""



														snake_case_          =						self.get_feature_extractor()
														snake_case_          =						self.get_tokenizer()

														snake_case_          =						ClapProcessor(tokenizer=UpperCAmelCase_						,    feature_extractor=UpperCAmelCase_    )

														self.assertListEqual(
														    processor.model_input_names[2:]						,    feature_extractor.model_input_names						,    msg="""`processor` and `feature_extractor` model input names do not match"""						,    )



