






import copy
import os
from typing import Dict, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...utils import add_start_docstrings, logging
from ..auto import AutoConfig


__A  							=  logging.get_logger(__name__)


__A  							=  {
    "suno/bark-small": "https://huggingface.co/suno/bark-small/resolve/main/config.json",
    "suno/bark": "https://huggingface.co/suno/bark/resolve/main/config.json",
}

__A  							=  "\n    This is the configuration class to store the configuration of a [`{model}`]. It is used to instantiate the model\n    according to the specified arguments, defining the model architecture. Instantiating a configuration with the\n    defaults will yield a similar configuration to that of the Bark [suno/bark](https://huggingface.co/suno/bark)\n    architecture.\n\n    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the\n    documentation from [`PretrainedConfig`] for more information.\n\n    Args:\n        block_size (`int`, *optional*, defaults to 1024):\n            The maximum sequence length that this model might ever be used with. Typically set this to something large\n            just in case (e.g., 512 or 1024 or 2048).\n        input_vocab_size (`int`, *optional*, defaults to 10_048):\n            Vocabulary size of a Bark sub-model. Defines the number of different tokens that can be represented by the\n            `inputs_ids` passed when calling [`{model}`]. Defaults to 10_048 but should be carefully thought with\n            regards to the chosen sub-model.\n        output_vocab_size (`int`, *optional*, defaults to 10_048):\n            Output vocabulary size of a Bark sub-model. Defines the number of different tokens that can be represented\n            by the: `output_ids` when passing forward a [`{model}`]. Defaults to 10_048 but should be carefully thought\n            with regards to the chosen sub-model.\n        num_layers (`int`, *optional*, defaults to 12):\n            Number of hidden layers in the given sub-model.\n        num_heads (`int`, *optional*, defaults to 12):\n            Number of attention heads for each attention layer in the Transformer architecture.\n        hidden_size (`int`, *optional*, defaults to 768):\n            Dimensionality of the \"intermediate\" (often named feed-forward) layer in the architecture.\n        dropout (`float`, *optional*, defaults to 0.0):\n            The dropout probability for all fully connected layers in the embeddings, encoder, and pooler.\n        bias (`bool`, *optional*, defaults to `True`):\n            Whether or not to use bias in the linear layers and layer norm layers.\n        initializer_range (`float`, *optional*, defaults to 0.02):\n            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.\n        use_cache (`bool`, *optional*, defaults to `True`):\n            Whether or not the model should return the last key/values attentions (not used by all models).\n"



class 							_A (    UpperCamelCase							):
    """simple docstring"""

    lowerCamelCase  :       Optional[Any]   =   'bark_module'
    lowerCamelCase  :       Tuple   =   ['past_key_values']

    lowerCamelCase  :       Dict   =   {
        'num_attention_heads': 'num_heads',
        'num_hidden_layers': 'num_layers',
        'vocab_size': 'input_vocab_size',
        'window_size': 'block_size',
    }



    def __init__(							self			:    str   ,    __SCREAMING_SNAKE_CASE			:    List[Any]=1024   ,    __SCREAMING_SNAKE_CASE			:    List[Any]=10048   ,    __SCREAMING_SNAKE_CASE			:    List[Any]=10048   ,    __SCREAMING_SNAKE_CASE			:    Tuple=12   ,    __SCREAMING_SNAKE_CASE			:    Any=12   ,    __SCREAMING_SNAKE_CASE			:    Optional[Any]=768   ,    __SCREAMING_SNAKE_CASE			:    Tuple=0.0   ,    __SCREAMING_SNAKE_CASE			:    str=True   ,    __SCREAMING_SNAKE_CASE			:    List[Any]=0.02   ,    __SCREAMING_SNAKE_CASE			:    List[Any]=True   ,    **__SCREAMING_SNAKE_CASE			:    Union[str, Any]   ,    )			->       Optional[Any]:
           __UpperCAmelCase    							=block_size
           __UpperCAmelCase    							=input_vocab_size
           __UpperCAmelCase    							=output_vocab_size
           __UpperCAmelCase    							=num_layers
           __UpperCAmelCase    							=num_heads
           __UpperCAmelCase    							=hidden_size
           __UpperCAmelCase    							=dropout
           __UpperCAmelCase    							=bias
           __UpperCAmelCase    							=use_cache
           __UpperCAmelCase    							=initializer_range

           super().__init__(**__SCREAMING_SNAKE_CASE			)



    @classmethod
    def _a       (							cls			:    List[Any]   ,    __SCREAMING_SNAKE_CASE			:    Union[str, os.PathLike]   ,    __SCREAMING_SNAKE_CASE			:    Optional[Union[str, os.PathLike]] = None   ,    __SCREAMING_SNAKE_CASE			:    bool = False   ,    __SCREAMING_SNAKE_CASE			:    bool = False   ,    __SCREAMING_SNAKE_CASE			:    Optional[Union[str, bool]] = None   ,    __SCREAMING_SNAKE_CASE			:    str = "main"   ,    **__SCREAMING_SNAKE_CASE			:    Union[str, Any]   ,    )			->       "PretrainedConfig":
           __UpperCAmelCase    							=cache_dir
           __UpperCAmelCase    							=force_download
           __UpperCAmelCase    							=local_files_only
           __UpperCAmelCase    							=revision

           cls._set_token_in_kwargs(__SCREAMING_SNAKE_CASE   ,    __SCREAMING_SNAKE_CASE			)

           __UpperCAmelCase							,   __UpperCAmelCase    							=cls.get_config_dict(__SCREAMING_SNAKE_CASE   ,    **__SCREAMING_SNAKE_CASE			)

           # get the config dict if we are loading from Bark
           if config_dict.get("""model_type"""			) == "bark":
                  __UpperCAmelCase    							=config_dict[f'''{cls.model_type}_config''']

           if "model_type" in config_dict and hasattr(cls   ,    """model_type"""			) and config_dict["model_type"] != cls.model_type:
                  logger.warning(
                      f'''You are using a model of type {config_dict["model_type"]} to instantiate a model of type '''
                      f'''{cls.model_type}. This is not supported for all configurations of models and can yield errors.'''			)

           return cls.from_dict(__SCREAMING_SNAKE_CASE   ,    **__SCREAMING_SNAKE_CASE			)




@add_start_docstrings(
    BARK_SUBMODELCONFIG_START_DOCSTRING.format(config='BarkSemanticConfig'				,				model='BarkSemanticModel'							)				,				'\n    Example:\n\n    ```python\n    >>> from transformers import BarkSemanticConfig, BarkSemanticModel\n\n    >>> # Initializing a Bark sub-module style configuration\n    >>> configuration = BarkSemanticConfig()\n\n    >>> # Initializing a model (with random weights) from the suno/bark style configuration\n    >>> model = BarkSemanticModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```'				,				)
class 							_A (    UpperCamelCase							):
    """simple docstring"""

    lowerCamelCase  :       Any   =   'semantic'




@add_start_docstrings(
    BARK_SUBMODELCONFIG_START_DOCSTRING.format(config='BarkCoarseConfig'				,				model='BarkCoarseModel'							)				,				'\n    Example:\n\n    ```python\n    >>> from transformers import BarkCoarseConfig, BarkCoarseModel\n\n    >>> # Initializing a Bark sub-module style configuration\n    >>> configuration = BarkCoarseConfig()\n\n    >>> # Initializing a model (with random weights) from the suno/bark style configuration\n    >>> model = BarkCoarseModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```'				,				)
class 							_A (    UpperCamelCase							):
    """simple docstring"""

    lowerCamelCase  :       Union[str, Any]   =   'coarse_acoustics'




@add_start_docstrings(
    BARK_SUBMODELCONFIG_START_DOCSTRING.format(config='BarkFineConfig'				,				model='BarkFineModel'							)				,				'\n        n_codes_total (`int`, *optional*, defaults to 8):\n            The total number of audio codebooks predicted. Used in the fine acoustics sub-model.\n        n_codes_given (`int`, *optional*, defaults to 1):\n            The number of audio codebooks predicted in the coarse acoustics sub-model. Used in the acoustics\n            sub-models.\n    Example:\n\n    ```python\n    >>> from transformers import BarkFineConfig, BarkFineModel\n\n    >>> # Initializing a Bark sub-module style configuration\n    >>> configuration = BarkFineConfig()\n\n    >>> # Initializing a model (with random weights) from the suno/bark style configuration\n    >>> model = BarkFineModel(configuration)\n\n    >>> # Accessing the model configuration\n    >>> configuration = model.config\n    ```'				,				)
class 							_A (    UpperCamelCase							):
    """simple docstring"""

    lowerCamelCase  :       Union[str, Any]   =   'fine_acoustics'



    def __init__(							self			:    List[str]   ,    __SCREAMING_SNAKE_CASE			:    Union[str, Any]=True   ,    __SCREAMING_SNAKE_CASE			:    int=8   ,    __SCREAMING_SNAKE_CASE			:    Optional[int]=1   ,    **__SCREAMING_SNAKE_CASE			:    int			)			->       List[Any]:
           __UpperCAmelCase    							=n_codes_total
           __UpperCAmelCase    							=n_codes_given

           super().__init__(tie_word_embeddings=__SCREAMING_SNAKE_CASE   ,    **__SCREAMING_SNAKE_CASE			)




class 							_A (    UpperCamelCase							):
    """simple docstring"""

    lowerCamelCase  :       Tuple   =   'bark'
    lowerCamelCase  :       Dict   =   True



    def __init__(							self			:    str   ,    __SCREAMING_SNAKE_CASE			:    Dict = None   ,    __SCREAMING_SNAKE_CASE			:    Dict = None   ,    __SCREAMING_SNAKE_CASE			:    Dict = None   ,    __SCREAMING_SNAKE_CASE			:    Dict = None   ,    __SCREAMING_SNAKE_CASE			:    Union[str, Any]=0.02   ,    **__SCREAMING_SNAKE_CASE			:    str   ,    )			->       Dict:
           if semantic_config is None:
                  __UpperCAmelCase    							={}
                  logger.info("""semantic_config is None. initializing the semantic model with default values."""			)

           if coarse_acoustics_config is None:
                  __UpperCAmelCase    							={}
                  logger.info("""coarse_acoustics_config is None. initializing the coarse model with default values."""			)

           if fine_acoustics_config is None:
                  __UpperCAmelCase    							={}
                  logger.info("""fine_acoustics_config is None. initializing the fine model with default values."""			)

           if codec_config is None:
                  __UpperCAmelCase    							={}
                  logger.info("""codec_config is None. initializing the codec model with default values."""			)

           __UpperCAmelCase    							=BarkSemanticConfig(**__SCREAMING_SNAKE_CASE			)
           __UpperCAmelCase    							=BarkCoarseConfig(**__SCREAMING_SNAKE_CASE			)
           __UpperCAmelCase    							=BarkFineConfig(**__SCREAMING_SNAKE_CASE			)
           __UpperCAmelCase    							=AutoConfig.for_model(**__SCREAMING_SNAKE_CASE			)

           __UpperCAmelCase    							=initializer_range

           super().__init__(**__SCREAMING_SNAKE_CASE			)



    @classmethod
    def _a       (							cls			:    Optional[Any]   ,    __SCREAMING_SNAKE_CASE			:    BarkSemanticConfig   ,    __SCREAMING_SNAKE_CASE			:    BarkCoarseConfig   ,    __SCREAMING_SNAKE_CASE			:    BarkFineConfig   ,    __SCREAMING_SNAKE_CASE			:    AutoConfig   ,    **__SCREAMING_SNAKE_CASE			:    int   ,    )			->       Any:
           return cls(
               semantic_config=semantic_config.to_dict()   ,    coarse_acoustics_config=coarse_acoustics_config.to_dict()   ,    fine_acoustics_config=fine_acoustics_config.to_dict()   ,    codec_config=codec_config.to_dict()   ,    **__SCREAMING_SNAKE_CASE   ,    )



    def _a       (							self			:    Optional[int]			)			->       int:
           __UpperCAmelCase    							=copy.deepcopy(self.__dict__			)

           __UpperCAmelCase    							=self.semantic_config.to_dict()
           __UpperCAmelCase    							=self.coarse_acoustics_config.to_dict()
           __UpperCAmelCase    							=self.fine_acoustics_config.to_dict()
           __UpperCAmelCase    							=self.codec_config.to_dict()

           __UpperCAmelCase    							=self.__class__.model_type
           return output












from collections import defaultdict







def 			lowercase__  (				A_:	int = 5		)  ->							int:







       """simple docstring"""






       __UpperCAmelCase    							=defaultdict(A_		)
       __UpperCAmelCase    							=0

       while True:
              __UpperCAmelCase    							=get_digits(A_		)
              freqs[digits].append(A_		)

              if len(freqs[digits]		) == max_base:
                     __UpperCAmelCase    							=freqs[digits][0] ** 3
                     return base

              num += 1







def 			lowercase__  (				A_:	int		)  ->							str:







       """simple docstring"""






       return "".join(sorted(str(num**3		)		)		)


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




