



"""simple docstring"""







UpperCAmelCase:  Optional[Any]			     =				{
    """0000""": """0""",
    """0001""": """1""",
    """0010""": """2""",
    """0011""": """3""",
    """0100""": """4""",
    """0101""": """5""",
    """0110""": """6""",
    """0111""": """7""",
    """1000""": """8""",
    """1001""": """9""",
    """1010""": """a""",
    """1011""": """b""",
    """1100""": """c""",
    """1101""": """d""",
    """1110""": """e""",
    """1111""": """f""",
}


def  __SCREAMING_SNAKE_CASE (  __UpperCAmelCase      ):
		_lowercase				: Any     =   str(__UpperCAmelCase      ).strip()

		# Exceptions
		if not binary_str:
				raise ValueError("""Empty string was passed to the function"""      )
		_lowercase				: Tuple     =   binary_str[0] == """-"""
		_lowercase				: List[str]     =   binary_str[1:] if is_negative else binary_str
		if not all(char in """01""" for char in binary_str      ):
				raise ValueError("""Non-binary value was passed to the function"""      )

		_lowercase				: Any     =   (
		    """0""" * (4 * (divmod(len(__UpperCAmelCase      )   ,				4      )[0] + 1) - len(__UpperCAmelCase      )) + binary_str
		)

		_lowercase				: Union[str, Any]     =   []
		for x in range(0   ,				len(__UpperCAmelCase      )   ,				4      ):
				hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]      )
		_lowercase				: str     =   """0x""" + """""".join(__UpperCAmelCase      )

		return "-" + hexadecimal_str if is_negative else hexadecimal_str


if __name__ == "__main__":
		from doctest import testmod

		testmod()











"""simple docstring"""


import math




def 					a			(  UpperCamelCase_				:					int		)	->		str:
 if number == 0:
  __A						:							Dict      =						'Zero'
  return words
 else:
  __A						:							List[str]      =						math.logaa(UpperCamelCase_		)
  __A						:							Union[str, Any]      =						digits + 1
  __A						:							List[str]      =						{}
  __A						:							int      =						''
  __A						:							Any      =						'One'
  __A						:							Tuple      =						'Two'
  __A						:							Any      =						'Three'
  __A						:							Any      =						'Four'
  __A						:							Optional[Any]      =						'Five'
  __A						:							List[Any]      =						'Six'
  __A						:							List[Any]      =						'Seven'
  __A						:							Dict      =						'Eight'
  __A						:							Union[str, Any]      =						'Nine'

  __A						:							List[Any]      =						{}
  __A						:							Tuple      =						''
  __A						:							List[Any]      =						'Twenty'
  __A						:							Optional[Any]      =						'Thirty'
  __A						:							Any      =						'Forty'
  __A						:							Optional[int]      =						'Fifty'
  __A						:							Dict      =						'Sixty'
  __A						:							Dict      =						'Seventy'
  __A						:							Optional[Any]      =						'Eighty'
  __A						:							Any      =						'Ninety'

  __A						:							int      =						{}
  __A						:							List[str]      =						'Ten'
  __A						:							Optional[Any]      =						'Eleven'
  __A						:							Dict      =						'Twelve'
  __A						:							Union[str, Any]      =						'Thirteen'
  __A						:							Union[str, Any]      =						'Fourteen'
  __A						:							Dict      =						'Fifteen'
  __A						:							str      =						'Sixteen'
  __A						:							str      =						'Seventeen'
  __A						:							Union[str, Any]      =						'Eighteen'
  __A						:							Union[str, Any]      =						'Nineteen'

  __A						:							Optional[Any]      =						{}
  __A						:							Optional[int]      =						'Hundred,'
  __A						:							Union[str, Any]      =						'Thousand,'
  __A						:							Union[str, Any]      =						'Lakh,'
  __A						:							Union[str, Any]      =						'Crore,'

  __A						:							Optional[Any]      =						number
  __A						:							Optional[Any]      =						''
  __A						:							List[str]      =						0
  __A						:							List[str]      =						int(UpperCamelCase_		)
  while counter < digits:
   __A						:							Any      =						temp_num % 1_0
   if counter % 2 == 0:
    __A						:							Optional[Any]      =						''
    if counter in placevalue and current != 0:
     __A						:							Union[str, Any]      =						placevalue[counter]
    if counter == 2:
     __A						:							Dict      =						singles[current] + addition + words
    elif counter == 0:
     if ((temp_num % 1_0_0) // 1_0) == 1:
      __A						:							Any      =						teens[current] + addition + words
      __A						:							int      =						temp_num // 1_0
      counter += 1
     else:
      __A						:							Optional[Any]      =						singles[current] + addition + words

    else:
     __A						:							str      =						doubles[current] + addition + words

   else:
    if counter == 1:
     if current == 1:
      __A						:							List[Any]      =						teens[number % 1_0] + words
     else:
      __A						:							Union[str, Any]      =						''
      if counter in placevalue:
       __A						:							int      =						placevalue[counter]
      __A						:							Optional[Any]      =						doubles[current] + addition + words
    else:
     __A						:							Any      =						''
     if counter in placevalue:
      if current == 0 and ((temp_num % 1_0_0) // 1_0) == 0:
       __A						:							Optional[int]      =						''
      else:
       __A						:							Optional[int]      =						placevalue[counter]
     if ((temp_num % 1_0_0) // 1_0) == 1:
      __A						:							Dict      =						teens[current] + addition + words
      __A						:							Any      =						temp_num // 1_0
      counter += 1
     else:
      __A						:							List[str]      =						singles[current] + addition + words
   counter += 1
   __A						:							Dict      =						temp_num // 1_0
 return words


if __name__ == "__main__":
   import doctest

   doctest.testmod()





