



from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


a_								=       logging.get_logger(__name__)

a_								=       {
    """shi-labs/nat-mini-in1k-224""": """https://huggingface.co/shi-labs/nat-mini-in1k-224/resolve/main/config.json""",
    # See all Nat models at https://huggingface.co/models?filter=nat
}



class 			__lowerCAmelCase  (						lowerCAmelCase__	,						lowerCAmelCase__ ):
 lowerCAmelCase__							       =	"""nat"""

 lowerCAmelCase__							       =	{
     """num_attention_heads""": """num_heads""",
     """num_hidden_layers""": """num_layers""",
 }




 def __init__(    self						,					__UpperCAmelCase=4						,					__UpperCAmelCase=3						,					__UpperCAmelCase=64						,					__UpperCAmelCase=[3, 4, 6, 5]						,					__UpperCAmelCase=[2, 4, 8, 16]						,					__UpperCAmelCase=7						,					__UpperCAmelCase=3.0						,					__UpperCAmelCase=True						,					__UpperCAmelCase=0.0						,					__UpperCAmelCase=0.0						,					__UpperCAmelCase=0.1						,					__UpperCAmelCase="gelu"						,					__UpperCAmelCase=0.02						,					__UpperCAmelCase=1E-5						,					__UpperCAmelCase=0.0						,					__UpperCAmelCase=None						,					__UpperCAmelCase=None						,					**__UpperCAmelCase						,					):



    '''simple docstring'''
    super().__init__(**__UpperCAmelCase					)

    __lowerCamelCase    				=     patch_size
    __lowerCamelCase    				=     num_channels
    __lowerCamelCase    				=     embed_dim
    __lowerCamelCase    				=     depths
    __lowerCamelCase    				=     len(__UpperCAmelCase					)
    __lowerCamelCase    				=     num_heads
    __lowerCamelCase    				=     kernel_size
    __lowerCamelCase    				=     mlp_ratio
    __lowerCamelCase    				=     qkv_bias
    __lowerCamelCase    				=     hidden_dropout_prob
    __lowerCamelCase    				=     attention_probs_dropout_prob
    __lowerCamelCase    				=     drop_path_rate
    __lowerCamelCase    				=     hidden_act
    __lowerCamelCase    				=     layer_norm_eps
    __lowerCamelCase    				=     initializer_range
    # we set the hidden_size attribute in order to make Nat work with VisionEncoderDecoderModel
    # this indicates the channel dimension after the last stage of the model
    __lowerCamelCase    				=     int(embed_dim * 2 ** (len(__UpperCAmelCase					) - 1)					)
    __lowerCamelCase    				=     layer_scale_init_value
    __lowerCamelCase    				=     ['''stem'''] + [F"""stage{idx}""" for idx in range(1						,					len(__UpperCAmelCase					) + 1					)]
    __lowerCamelCase				,__lowerCamelCase    				=     get_aligned_output_features_output_indices(
        out_features=__UpperCAmelCase						,					out_indices=__UpperCAmelCase						,					stage_names=self.stage_names					)











def 		a__      (		_UpperCamelCase      :			str				):
   if not all(x.isalpha() for x in string				):
      raise ValueError('''String must only contain alphabetic characters.'''				)

   __lowerCamelCase    				=     sorted(string.lower()				)
   return len(_UpperCamelCase				) == len(set(_UpperCamelCase				)				)


if __name__ == "__main__":
  a_								=       input("""Enter a string """).strip()

  a_								=       is_isogram(input_str)
  print(f"{input_str} is {'an' if isogram else 'not an'} isogram.")






