from collections import OrderedDict
from typing import Mapping

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


UpperCAmelCase							   =      logging.get_logger(__name__)

UpperCAmelCase							   =      {
    """google/mobilebert-uncased""": """https://huggingface.co/google/mobilebert-uncased/resolve/main/config.json"""
}






class 							_SCREAMING_SNAKE_CASE(   snake_case__	):
   UpperCamelCase_				:						List[str] 			=   MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP
   UpperCamelCase_				:						List[str] 			=   'mobilebert'
   def __init__(    self							,     lowerCAmelCase_=3_05_22							,     lowerCAmelCase_=5_12							,     lowerCAmelCase_=24							,     lowerCAmelCase_=4							,     lowerCAmelCase_=5_12							,     lowerCAmelCase_="relu"							,     lowerCAmelCase_=0.0							,     lowerCAmelCase_=0.1							,     lowerCAmelCase_=5_12							,     lowerCAmelCase_=2							,     lowerCAmelCase_=0.02							,     lowerCAmelCase_=1e-12							,     lowerCAmelCase_=0							,     lowerCAmelCase_=1_28							,     lowerCAmelCase_=True							,     lowerCAmelCase_=True							,     lowerCAmelCase_=1_28							,     lowerCAmelCase_=False							,     lowerCAmelCase_=True							,     lowerCAmelCase_=4							,     lowerCAmelCase_="no_norm"							,     lowerCAmelCase_=True							,     lowerCAmelCase_=None							,     **lowerCAmelCase_							,     )	->List[str]:
        super().__init__(pad_token_id=lowerCAmelCase_							,     **lowerCAmelCase_    )

        a  :    str				=						vocab_size
        a  :    List[Any]				=						hidden_size
        a  :    Optional[int]				=						num_hidden_layers
        a  :    Any				=						num_attention_heads
        a  :    Union[str, Any]				=						hidden_act
        a  :    str				=						intermediate_size
        a  :    Optional[Any]				=						hidden_dropout_prob
        a  :    Optional[Any]				=						attention_probs_dropout_prob
        a  :    Dict				=						max_position_embeddings
        a  :    Any				=						type_vocab_size
        a  :    List[str]				=						initializer_range
        a  :    Any				=						layer_norm_eps
        a  :    Tuple				=						embedding_size
        a  :    Any				=						trigram_input
        a  :    List[Any]				=						use_bottleneck
        a  :    Dict				=						intra_bottleneck_size
        a  :    List[str]				=						use_bottleneck_attention
        a  :    List[Any]				=						key_query_shared_bottleneck
        a  :    List[Any]				=						num_feedforward_networks
        a  :    List[str]				=						normalization_type
        a  :    List[str]				=						classifier_activation

        if self.use_bottleneck:
             a  :    Tuple				=						intra_bottleneck_size
        else:
             a  :    Union[str, Any]				=						hidden_size

        a  :    Optional[int]				=						classifier_dropout






class 							_SCREAMING_SNAKE_CASE(   snake_case__	):
   @property
   def _lowercase(    self    )	->Mapping[str, Mapping[int, str]]:
        if self.task == "multiple-choice":
             a  :    str				=						{0: '''batch''', 1: '''choice''', 2: '''sequence'''}
        else:
             a  :    int				=						{0: '''batch''', 1: '''sequence'''}
        return OrderedDict(
            [
                ('''input_ids''', dynamic_axis),
                ('''attention_mask''', dynamic_axis),
                ('''token_type_ids''', dynamic_axis),
            ]    )
def 	UpperCAmelCase       (		lowerCAmelCase_       )	->	int:
     return 1 if input_a == 0 else 0







def 	UpperCAmelCase       (		)	->	None:
     assert not_gate(0       ) == 1
     assert not_gate(1       ) == 0


if __name__ == "__main__":
  print(not_gate(0))
  print(not_gate(1))