






from collections import Counter
from timeit import timeit





def    __lowerCAmelCase   (    __snake_case = ""       ,			):
     return sum(c % 2 for c in Counter(input_str.replace(" "       ,			""							).lower()							).values()							) < 2





def    __lowerCAmelCase   (    __snake_case = ""							):
     if len(__snake_case							) == 0:
          return True
     __lowerCAmelCase             =       input_str.replace(" "       ,			""							).lower()
     # character_freq_dict: Stores the frequency of every character in the input string
     __lowerCAmelCase             =       {}

     for character in lower_case_input_str:
          __lowerCAmelCase             =       character_freq_dict.get(__snake_case       ,			0							) + 1
     __lowerCAmelCase             =       0

     for character_count in character_freq_dict.values():
          if character_count % 2:
               odd_char += 1
     if odd_char > 1:
          return False
     return True





def    __lowerCAmelCase   (    __snake_case = ""							):
     print("\nFor string = "       ,			__snake_case       ,			":"							)
     print(
         "> can_string_be_rearranged_as_palindrome_counter()"       ,			"\tans ="       ,			can_string_be_rearranged_as_palindrome_counter(__snake_case							)       ,			"\ttime ="       ,			timeit(
             "z.can_string_be_rearranged_as_palindrome_counter(z.check_str)"       ,			setup="import __main__ as z"       ,			)       ,			"seconds"       ,			)
     print(
         "> can_string_be_rearranged_as_palindrome()"       ,			"\tans ="       ,			can_string_be_rearranged_as_palindrome(__snake_case							)       ,			"\ttime ="       ,			timeit(
             "z.can_string_be_rearranged_as_palindrome(z.check_str)"       ,			setup="import __main__ as z"       ,			)       ,			"seconds"       ,			)


if __name__ == "__main__":
 lowerCamelCase      :       int    =						input(
     '''Enter string to determine if it can be rearranged as a palindrome or not: '''
 ).strip()
 benchmark(check_str)
 lowerCamelCase      :       Dict    =						can_string_be_rearranged_as_palindrome_counter(check_str)
 print(F'''{check_str} can {'' if status else 'not '}be rearranged as a palindrome''')














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


lowerCamelCase      :       Optional[int]    =						logging.get_logger(__name__)

lowerCamelCase      :       Optional[Any]    =						{
    '''google/pegasus-large''': '''https://huggingface.co/google/pegasus-large/resolve/main/config.json''',
    # See all PEGASUS models at https://huggingface.co/models?filter=pegasus
}



class 				_UpperCamelCase      (a_      ):
      snake_case_	=				"""pegasus"""
      snake_case_	=				["""past_key_values"""]
      snake_case_	=				{"""num_attention_heads""": """encoder_attention_heads""", """hidden_size""": """d_model"""}


      def __init__(						self       ,    __UpperCamelCase=5_0_2_6_5       ,    __UpperCamelCase=1_0_2_4       ,    __UpperCamelCase=1_2       ,    __UpperCamelCase=4_0_9_6       ,    __UpperCamelCase=1_6       ,    __UpperCamelCase=1_2       ,    __UpperCamelCase=4_0_9_6       ,    __UpperCamelCase=1_6       ,    __UpperCamelCase=0.0       ,    __UpperCamelCase=0.0       ,    __UpperCamelCase=True       ,    __UpperCamelCase=True       ,    __UpperCamelCase="gelu"       ,    __UpperCamelCase=1_0_2_4       ,    __UpperCamelCase=0.1       ,    __UpperCamelCase=0.0       ,    __UpperCamelCase=0.0       ,    __UpperCamelCase=0.0_2       ,    __UpperCamelCase=0       ,    __UpperCamelCase=False       ,    __UpperCamelCase=0       ,    __UpperCamelCase=1       ,    __UpperCamelCase=1       ,    **__UpperCamelCase       ,    )->						Tuple:
           __lowerCAmelCase             =       vocab_size
           __lowerCAmelCase             =       max_position_embeddings
           __lowerCAmelCase             =       d_model
           __lowerCAmelCase             =       encoder_ffn_dim
           __lowerCAmelCase             =       encoder_layers
           __lowerCAmelCase             =       encoder_attention_heads
           __lowerCAmelCase             =       decoder_ffn_dim
           __lowerCAmelCase             =       decoder_layers
           __lowerCAmelCase             =       decoder_attention_heads
           __lowerCAmelCase             =       dropout
           __lowerCAmelCase             =       attention_dropout
           __lowerCAmelCase             =       activation_dropout
           __lowerCAmelCase             =       activation_function
           __lowerCAmelCase             =       init_std
           __lowerCAmelCase             =       encoder_layerdrop
           __lowerCAmelCase             =       decoder_layerdrop
           __lowerCAmelCase             =       use_cache
           __lowerCAmelCase             =       encoder_layers
           __lowerCAmelCase             =       scale_embedding  # scale factor will be sqrt(d_model) if True
           super().__init__(
               pad_token_id=__UpperCamelCase       ,    eos_token_id=__UpperCamelCase       ,    is_encoder_decoder=__UpperCamelCase       ,    decoder_start_token_id=__UpperCamelCase       ,    forced_eos_token_id=__UpperCamelCase       ,    **__UpperCamelCase       ,    )


      @property
      def 			__UpperCAmelCase		(						self						)->						int:
           return self.encoder_attention_heads


      @property
      def 			__UpperCAmelCase		(						self						)->						int:
           return self.d_model






