



'''simple docstring'''





import argparse
import logging
import pickle
from collections import Counter


logging.basicConfig(
    format='%(asctime)s - %(levelname)s - %(name)s - %(message)s', datefmt='%m/%d/%Y %H:%M:%S', level=logging.INFO
)
__snake_case       :	Union[str, Any]            =logging.getLogger(__name__)

if __name__ == "__main__":
							__snake_case       :	Union[str, Any]            =argparse.ArgumentParser(
							    description='Token Counts for smoothing the masking probabilities in MLM (cf XLM/word2vec)'
							)
							parser.add_argument(
							    '--data_file', type=str, default='data/dump.bert-base-uncased.pickle', help='The binarized dataset.'
							)
							parser.add_argument(
							    '--token_counts_dump', type=str, default='data/token_counts.bert-base-uncased.pickle', help='The dump file.'
							)
							parser.add_argument('--vocab_size', default=3_0_5_2_2, type=int)
							__snake_case       :	List[Any]            =parser.parse_args()

							logger.info(f"""Loading data from {args.data_file}""")
							with open(args.data_file, 'rb') as fp:
														__snake_case       :	List[Any]            =pickle.load(fp)

							logger.info('Counting occurrences for MLM.')
							__snake_case       :	List[str]            =Counter()
							for tk_ids in data:
														counter.update(tk_ids)
							__snake_case       :	Dict            =[0] * args.vocab_size
							for k, v in counter.items():
														__snake_case       :	Optional[int]            =v

							logger.info(f"""Dump to {args.token_counts_dump}""")
							with open(args.token_counts_dump, 'wb') as handle:
														pickle.dump(counts, handle, protocol=pickle.HIGHEST_PROTOCOL)






from __future__ import annotations






def 			lowerCAmelCase__	(					lowerCamelCase_	:	int):





				'''simple docstring'''

				lowerCAmelCase__  :       Optional[int]				=  str(lowerCamelCase_)
				return len(lowerCamelCase_) == 9 and set(lowerCamelCase_) == set('''123456789''')






def 			lowerCAmelCase__	(					):





				'''simple docstring'''

				for base_num in range(9999 ,4999 ,-1):
								lowerCAmelCase__  :       Union[str, Any]				=  100002 * base_num
								if is_9_pandigital(lowerCamelCase_):
												return candidate

				for base_num in range(333 ,99 ,-1):
								lowerCAmelCase__  :       Any				=  1002003 * base_num
								if is_9_pandigital(lowerCamelCase_):
												return candidate

				return None


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

