






from collections import namedtuple

UpperCAmelCase_					:		Union[str, Any]           = namedtuple('''from_to''', '''from_ to''')

UpperCAmelCase_					:		Tuple           = {
    '''atm''': from_to(1, 1),
    '''pascal''': from_to(0.0_00_00_98, 10_13_25),
    '''bar''': from_to(0.98_69_23, 1.0_13_25),
    '''kilopascal''': from_to(0.00_98_69_23, 1_01.3_25),
    '''megapascal''': from_to(9.8_69_23, 0.10_13_25),
    '''psi''': from_to(0.06_80_46, 14.69_59),
    '''inHg''': from_to(0.0_33_42_11, 29.92_13),
    '''torr''': from_to(0.00_13_15_79, 7_60),
}

def   SCREAMING_SNAKE_CASE_				(				__magic_name__   :    Optional[Any]      ,     __magic_name__   :    List[Any]      ,     __magic_name__   :    int   )						->     Any:






	"""simple docstring"""



	if from_type not in PRESSURE_CONVERSION:
		raise ValueError(
		    f"""Invalid 'from_type' value: {from_type!r}  Supported values are:\n"""
		    + """, """.join(UpperCAmelCase_   )   )
	if to_type not in PRESSURE_CONVERSION:
		raise ValueError(
		    f"""Invalid 'to_type' value: {to_type!r}.  Supported values are:\n"""
		    + """, """.join(UpperCAmelCase_   )   )
	return (
	    value * PRESSURE_CONVERSION[from_type].from_ * PRESSURE_CONVERSION[to_type].to
	)


if __name__ == "__main__":
	import doctest

	doctest.testmod()






from __future__ import annotations

import sys
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    if n < 0:
        raise ValueError("""Negative arguments are not supported"""		)
    return _fib(UpperCAmelCase_		)[0]
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    if n == 0:  # (F(0), F(1))
        return (0, 1)

    # F(2n) = F(n)[2F(n+1) − F(n)]
    # F(2n+1) = F(n+1)^2+F(n)^2
    a__			,		a__  			=							_fib(n // 2		)
    a__  			=							a * (b * 2 - a)
    a__  			=							a * a + b * b
    return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
 SCREAMING_SNAKE_CASE_    :       Dict       =							int(sys.argv[1])
 print(F"fibonacci({n}) is {fibonacci(n)}")






