




from typing import Callable, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...utils import logging


UpperCamelCase__         =      logging.get_logger(__name__)

UpperCamelCase__         =      {
    """microsoft/xprophetnet-large-wiki100-cased""": (
        """https://huggingface.co/microsoft/xprophetnet-large-wiki100-cased/resolve/main/config.json"""
    ),
}
class       a__   ( snake_case__				):
      _a							:   str =   """xlm-prophetnet"""
      _a							:   Dict =   ["""past_key_values"""]
      _a							:   Any =   {
          """num_attention_heads""": """num_encoder_attention_heads""",
      }






      def __init__(       self		,      _A = 0.1		,      _A = "gelu"		,      _A = 3_0_5_2_2		,      _A = 1_0_2_4		,      _A = 4_0_9_6		,      _A = 1_2		,      _A = 1_6		,      _A = 4_0_9_6		,      _A = 1_2		,      _A = 1_6		,      _A = 0.1		,      _A = 0.1		,      _A = 5_1_2		,      _A = 0.02		,      _A = True		,      _A = True		,      _A = 0		,      _A = 2		,      _A = 3_2		,      _A = 1_2_8		,      _A = False		,      _A = 0.0		,      _A = True		,      _A = 0		,      _A = 1		,      _A = 2		,      **_A		,      ):




           """simple docstring"""



           __lowerCAmelCase           =	vocab_size
           __lowerCAmelCase           =	hidden_size
           __lowerCAmelCase           =	encoder_ffn_dim
           __lowerCAmelCase           =	num_encoder_layers
           __lowerCAmelCase           =	num_encoder_attention_heads
           __lowerCAmelCase           =	decoder_ffn_dim
           __lowerCAmelCase           =	num_decoder_layers
           __lowerCAmelCase           =	num_decoder_attention_heads
           __lowerCAmelCase           =	max_position_embeddings
           __lowerCAmelCase           =	init_std  # Normal(0, this parameter)
           __lowerCAmelCase           =	activation_function

           # parameters for xlmprophetnet
           __lowerCAmelCase           =	ngram
           __lowerCAmelCase           =	num_buckets
           __lowerCAmelCase           =	relative_max_distance
           __lowerCAmelCase           =	disable_ngram_loss
           __lowerCAmelCase           =	eps

           # 3 Types of Dropout
           __lowerCAmelCase           =	attention_dropout
           __lowerCAmelCase           =	activation_dropout
           __lowerCAmelCase           =	dropout

           __lowerCAmelCase           =	use_cache

           super().__init__(
               pad_token_id=_A		,      bos_token_id=_A		,      eos_token_id=_A		,      is_encoder_decoder=_A		,      add_cross_attention=_A		,      decoder_start_token_id=_A		,      **_A		,      )






      @property
      def     __SCREAMING_SNAKE_CASE(       self      ):




           """simple docstring"""



           return self.num_encoder_layers + self.num_decoder_layers






      @num_hidden_layers.setter
      def     __SCREAMING_SNAKE_CASE(       self		,      _A      ):




           """simple docstring"""



           raise NotImplementedError(
               "This model does not support the setting of `num_hidden_layers`. Please set `num_encoder_layers` and"
               " `num_decoder_layers`."      )










import enum
import shutil
import sys


UpperCamelCase__      ,     UpperCamelCase__         =      shutil.get_terminal_size()

UpperCamelCase__         =      {"""UP""": """A""", """DOWN""": """B""", """RIGHT""": """C""", """LEFT""": """D"""}
class       a__   ( enum.Enum				):
						_a							:   Any =   0
						_a							:   Dict =   1







def      _a				(						SCREAMING_SNAKE_CASE_							:    Tuple				,				SCREAMING_SNAKE_CASE_							:    Dict=""					):
					sys.stdout.write(str(SCREAMING_SNAKE_CASE_					) + end					)
					sys.stdout.flush()







def      _a				(						SCREAMING_SNAKE_CASE_							:    Any				,				SCREAMING_SNAKE_CASE_							:    Union[str, Any]				,				SCREAMING_SNAKE_CASE_							:    str=""					):
					forceWrite(F"""\u001b[{color}m{content}\u001b[0m"""				,				SCREAMING_SNAKE_CASE_					)







def      _a				(						):
					forceWrite("\r"					)







def      _a				(						SCREAMING_SNAKE_CASE_							:    int				,				SCREAMING_SNAKE_CASE_							:    str					):
					forceWrite(F"""\033[{num_lines}{CURSOR_TO_CHAR[direction.upper()]}"""					)







def      _a				(						):
					forceWrite(" " * TERMINAL_WIDTH					)
					reset_cursor()







def      _a				(						):
					reset_cursor()
					forceWrite("-" * TERMINAL_WIDTH					)




