






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


lowercase  							= logging.get_logger(__name__)

lowercase  							= {
    "google/reformer-crime-and-punishment": (
        "https://huggingface.co/google/reformer-crime-and-punishment/resolve/main/config.json"
    ),
    "google/reformer-enwik8": "https://huggingface.co/google/reformer-enwik8/resolve/main/config.json",
}




class 			UpperCamelCase_				(      snake_case_    ):



	'''simple docstring'''




	lowerCAmelCase													=			'''reformer'''
	lowerCAmelCase													=			['''past_buckets_states''']
	lowerCAmelCase													=			{}




	def __init__(	self	,      a=64	,      a=["local", "lsh", "local", "lsh", "local", "lsh"]	,      a=1.0	,      a=True	,      a=[64, 64]	,      a=[64, 1_92]	,      a=0	,      a=2	,      a=5_12	,      a=None	,      a="relu"	,      a=0.05	,      a=2_56	,      a=0.02	,      a=False	,      a=1E-12	,      a=1	,      a=0	,      a=0.05	,      a=64	,      a=64	,      a=0.0	,      a=1	,      a=0	,      a=40_96	,      a=12	,      a=None	,      a=1	,      a=0	,      a=3_20	,      a=False	,      a=True	,      a=None	,      **a	,      )	->   Optional[Any]:
								snake_case_           =							hash_seed
								snake_case_           =							vocab_size
								snake_case_           =							attention_head_size
								snake_case_           =							hidden_size
								snake_case_           =							num_attention_heads
								snake_case_           =							num_hashes
								snake_case_           =							len(a )
								snake_case_           =							tuple(a ) if isinstance(a	,      a ) else num_buckets
								snake_case_           =							lsh_attn_chunk_length
								snake_case_           =							local_attn_chunk_length
								snake_case_           =							lsh_num_chunks_after
								snake_case_           =							lsh_num_chunks_before
								snake_case_           =							local_num_chunks_after
								snake_case_           =							local_num_chunks_before
								snake_case_           =							hidden_act
								snake_case_           =							feed_forward_size
								snake_case_           =							hidden_dropout_prob
								snake_case_           =							lsh_attention_probs_dropout_prob
								snake_case_           =							local_attention_probs_dropout_prob
								snake_case_           =							max_position_embeddings
								snake_case_           =							initializer_range
								snake_case_           =							layer_norm_eps
								snake_case_           =							axial_pos_embds
								snake_case_           =							tuple(a )
								snake_case_           =							tuple(a )
								snake_case_           =							axial_norm_std
								snake_case_           =							chunk_size_lm_head
								snake_case_           =							attn_layers
								snake_case_           =							use_cache
								snake_case_           =							classifier_dropout
								super().__init__(
								    pad_token_id=a	,      eos_token_id=a	,      is_decoder=a	,      tie_word_embeddings=a	,      **a	,      )













def 						__UpperCAmelCase      (					a_):
							return 1 if input_a == 0 else 0





def 						__UpperCAmelCase      (					):
							assert not_gate(0) == 1
							assert not_gate(1) == 0


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





