




import argparse
import os

import torch

from transformers import (
    XLNetConfig,
    XLNetForQuestionAnswering,
    XLNetForSequenceClassification,
    XLNetLMHeadModel,
    load_tf_weights_in_xlnet,
)
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


SCREAMING_SNAKE_CASE__       :      Optional[int]  =   {
    'cola': 2,
    'mnli': 3,
    'mrpc': 2,
    'sst-2': 2,
    'sts-b': 1,
    'qqp': 2,
    'qnli': 2,
    'rte': 2,
    'wnli': 2,
}


logging.set_verbosity_info()

def      A      (      _SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE=None    )	-> Optional[Any]:
       # Initialise PyTorch model
       lowerCamelCase   :      str			 =					XLNetConfig.from_json_file(_SCREAMING_SNAKE_CASE    )

       lowerCamelCase   :      Any			 =					finetuning_task.lower() if finetuning_task is not None else ""
       if finetuning_task in GLUE_TASKS_NUM_LABELS:
              print(f'''Building PyTorch XLNetForSequenceClassification model from configuration: {config}'''    )
              lowerCamelCase   :      Dict			 =					finetuning_task
              lowerCamelCase   :      int			 =					GLUE_TASKS_NUM_LABELS[finetuning_task]
              lowerCamelCase   :      int			 =					XLNetForSequenceClassification(_SCREAMING_SNAKE_CASE    )
       elif "squad" in finetuning_task:
              lowerCamelCase   :      Tuple			 =					finetuning_task
              lowerCamelCase   :      Dict			 =					XLNetForQuestionAnswering(_SCREAMING_SNAKE_CASE    )
       else:
              lowerCamelCase   :      Union[str, Any]			 =					XLNetLMHeadModel(_SCREAMING_SNAKE_CASE    )

       # Load weights from tf checkpoint
       load_tf_weights_in_xlnet(_SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE    )

       # Save pytorch-model
       lowerCamelCase   :      List[str]			 =					os.path.join(_SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE    )
       lowerCamelCase   :      List[str]			 =					os.path.join(_SCREAMING_SNAKE_CASE ,_SCREAMING_SNAKE_CASE    )
       print(f'''Save PyTorch model to {os.path.abspath(_SCREAMING_SNAKE_CASE    )}'''    )
       torch.save(model.state_dict() ,_SCREAMING_SNAKE_CASE    )
       print(f'''Save configuration file to {os.path.abspath(_SCREAMING_SNAKE_CASE    )}'''    )
       with open(_SCREAMING_SNAKE_CASE ,"w" ,encoding="utf-8"    ) as f:
              f.write(config.to_json_string()    )


if __name__ == "__main__":
       SCREAMING_SNAKE_CASE__       :      Any  =   argparse.ArgumentParser()
       # Required parameters
       parser.add_argument(
           '--tf_checkpoint_path', default=None, type=str, required=True, help='Path to the TensorFlow checkpoint path.'
       )
       parser.add_argument(
           '--xlnet_config_file',
           default=None,
           type=str,
           required=True,
           help=(
               'The config json file corresponding to the pre-trained XLNet model. \n'
               'This specifies the model architecture.'
           ),
       )
       parser.add_argument(
           '--pytorch_dump_folder_path',
           default=None,
           type=str,
           required=True,
           help='Path to the folder to store the PyTorch model or dataset/vocab.',
       )
       parser.add_argument(
           '--finetuning_task',
           default=None,
           type=str,
           help='Name of a task on which the XLNet TensorFlow model was fine-tuned',
       )
       SCREAMING_SNAKE_CASE__       :      Dict  =   parser.parse_args()
       print(args)

       convert_xlnet_checkpoint_to_pytorch(
           args.tf_checkpoint_path, args.xlnet_config_file, args.pytorch_dump_folder_path, args.finetuning_task
       )












from math import sqrt

def      A      (      _SCREAMING_SNAKE_CASE = 100_0000    )	-> int:
       lowerCamelCase   :      int			 =					0
       lowerCamelCase   :      int			 =					0
       lowerCamelCase   :      int

       while num_cuboids <= limit:
              max_cuboid_size += 1
              for sum_shortest_sides in range(2 ,2 * max_cuboid_size + 1    ):
                     if sqrt(sum_shortest_sides**2 + max_cuboid_size**2    ).is_integer():
                            num_cuboids += (
                                min(_SCREAMING_SNAKE_CASE ,sum_shortest_sides // 2    )
                                - max(1 ,sum_shortest_sides - max_cuboid_size    )
                                + 1
                            )

       return max_cuboid_size


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






