

import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp
def 	a (     )       -> str:





      """simple docstring"""



      _lowercase      			=ArgumentParser(
          description=(
              'PyTorch TPU distributed training launch helper utility that will spawn up multiple distributed processes'
          )	)

      # Optional arguments for the launch helper
      parser.add_argument('--num_cores' ,  type=A__ ,  default=1 ,  help='Number of TPU cores to use (1 or 8).'	)

      # positional
      parser.add_argument(
          'training_script' ,  type=A__ ,  help=(
              'The full path to the single TPU training '
              'program/script to be launched in parallel, '
              'followed by all the arguments for the '
              'training script'
          ) ,  )

      # rest from the training program
      parser.add_argument('training_script_args' ,  nargs=A__	)

      return parser.parse_args()
def 	a (     )       -> Optional[Any]:





      """simple docstring"""



      _lowercase      			=parse_args()

      # Import training_script as a module.
      _lowercase      			=Path(args.training_script	)
      sys.path.append(str(script_fpath.parent.resolve()	)	)
      _lowercase      			=script_fpath.stem
      _lowercase      			=importlib.import_module(A__	)

      # Patch sys.argv
      _lowercase      			=[args.training_script] + args.training_script_args + ['--tpu_num_cores', str(args.num_cores	)]

      xmp.spawn(mod._mp_fn ,  args=() ,  nprocs=args.num_cores	)


if __name__ == "__main__":
  main()





import sys

lowercase_   							=  (
    '73167176531330624919225119674426574742355349194934'
    '96983520312774506326239578318016984801869478851843'
    '85861560789112949495459501737958331952853208805511'
    '12540698747158523863050715693290963295227443043557'
    '66896648950445244523161731856403098711121722383113'
    '62229893423380308135336276614282806444486645238749'
    '30358907296290491560440772390713810515859307960866'
    '70172427121883998797908792274921901699720888093776'
    '65727333001053367881220235421809751254540594752243'
    '52584907711670556013604839586446706324415722155397'
    '53697817977846174064955149290862569321978468622482'
    '83972241375657056057490261407972968652414535100474'
    '82166370484403199890008895243450658541227588666881'
    '16427171479924442928230863465674813919123162824586'
    '17866458359124566529476545682848912883142607690042'
    '24219022671055626321111109370544217506941658960408'
    '07198403850962455444362981230987879927244284909188'
    '84580156166097919133875499200524063689912560717606'
    '05886116467109405077541002256983155200055935729725'
    '71636269561882670428252483600823257530420752963450'
)
def 	a (     A__      :  str = N	)       -> int:





      """simple docstring"""



      _lowercase      			=-sys.maxsize - 1
      for i in range(len(A__	) - 12	):
            _lowercase      			=1
            for j in range(13	):
                  product *= int(n[i + j]	)
            if product > largest_product:
                  _lowercase      			=product
      return largest_product


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


