

from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_a:      int								=     logging.get_logger(__name__)

_a:      Optional[Any]								=     {
    """squeezebert/squeezebert-uncased""": (
        """https://huggingface.co/squeezebert/squeezebert-uncased/resolve/main/config.json"""
    ),
    """squeezebert/squeezebert-mnli""": """https://huggingface.co/squeezebert/squeezebert-mnli/resolve/main/config.json""",
    """squeezebert/squeezebert-mnli-headless""": (
        """https://huggingface.co/squeezebert/squeezebert-mnli-headless/resolve/main/config.json"""
    ),
}

class   __UpperCamelCase      (   lowercase  ):
	SCREAMING_SNAKE_CASE__      			=       SQUEEZEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP
	SCREAMING_SNAKE_CASE__      			=       'squeezebert'




	def __init__(						self		:  List[str]						,		lowerCAmelCase		:  Union[str, Any]=30_522						,		lowerCAmelCase		:  int=768						,		lowerCAmelCase		:  Optional[int]=12						,		lowerCAmelCase		:  Dict=12						,		lowerCAmelCase		:  Tuple=3_072						,		lowerCAmelCase		:  str="gelu"						,		lowerCAmelCase		:  Optional[int]=0.1						,		lowerCAmelCase		:  List[Any]=0.1						,		lowerCAmelCase		:  Tuple=512						,		lowerCAmelCase		:  int=2						,		lowerCAmelCase		:  int=0.02						,		lowerCAmelCase		:  Union[str, Any]=1e-12						,		lowerCAmelCase		:  Any=0						,		lowerCAmelCase		:  List[str]=768						,		lowerCAmelCase		:  Dict=4						,		lowerCAmelCase		:  List[Any]=4						,		lowerCAmelCase		:  Union[str, Any]=4						,		lowerCAmelCase		:  int=1						,		lowerCAmelCase		:  List[str]=4						,		lowerCAmelCase		:  Any=4						,		**lowerCAmelCase		:  Dict						,		):


		'''simple docstring'''







		super().__init__(pad_token_id=lowerCAmelCase						,		**lowerCAmelCase							)

		UpperCAmelCase_    			=     vocab_size
		UpperCAmelCase_    			=     hidden_size
		UpperCAmelCase_    			=     num_hidden_layers
		UpperCAmelCase_    			=     num_attention_heads
		UpperCAmelCase_    			=     hidden_act
		UpperCAmelCase_    			=     intermediate_size
		UpperCAmelCase_    			=     hidden_dropout_prob
		UpperCAmelCase_    			=     attention_probs_dropout_prob
		UpperCAmelCase_    			=     max_position_embeddings
		UpperCAmelCase_    			=     type_vocab_size
		UpperCAmelCase_    			=     initializer_range
		UpperCAmelCase_    			=     layer_norm_eps
		UpperCAmelCase_    			=     embedding_size
		UpperCAmelCase_    			=     q_groups
		UpperCAmelCase_    			=     k_groups
		UpperCAmelCase_    			=     v_groups
		UpperCAmelCase_    			=     post_attention_groups
		UpperCAmelCase_    			=     intermediate_groups
		UpperCAmelCase_    			=     output_groups


class   __UpperCamelCase      (   lowercase  ):




	@property
	def  __A   (						self		:  Any							):


		'''simple docstring'''







		if self.task == "multiple-choice":
			UpperCAmelCase_    			=     {0: "batch", 1: "choice", 2: "sequence"}
		else:
			UpperCAmelCase_    			=     {0: "batch", 1: "sequence"}
		return OrderedDict(
		    [
		        ("input_ids", dynamic_axis),
		        ("attention_mask", dynamic_axis),
		        ("token_type_ids", dynamic_axis),
		    ]							)


def  __lowerCAmelCase (  A      ):
	UpperCAmelCase_    			=     len(A      )

	# Set the gap value to be decreased by a factor of 1.3
	# after each iteration
	UpperCAmelCase_    			=     1.3

	# Continue sorting until the gap is 1
	while gap > 1:
		# Decrease the gap value
		UpperCAmelCase_    			=     int(gap / shrink      )

		# Sort the elements using insertion sort
		for i in range(A    ,       len(A      )      ):
			UpperCAmelCase_    			=     collection[i]
			UpperCAmelCase_    			=     i
			while j >= gap and collection[j - gap] > temp:
				UpperCAmelCase_    			=     collection[j - gap]
				j -= gap
			UpperCAmelCase_    			=     temp

	return collection


if __name__ == "__main__":
				import doctest

				doctest.testmod()