





_snake_case    :       dict[str, float]		       =    {
    "km/h": 1.0,
    "m/s": 3.6,
    "mph": 1.60_93_44,
    "knot": 1.8_52,
}

_snake_case    :       dict[str, float]		       =    {
    "km/h": 1.0,
    "m/s": 0.2_77_77_77_78,
    "mph": 0.6_21_37_11_92,
    "knot": 0.5_39_95_68_03,
}

def     a_       (					lowerCAmelCase_ :     float,      lowerCAmelCase_ :     str,      lowerCAmelCase_ :     str      ):
   if unit_to not in speed_chart or unit_from not in speed_chart_inverse:
      __lowerCAmelCase				      =      (
          F"""Incorrect 'from_type' or 'to_type' value: {unit_from!r}, {unit_to!r}\n"""
          F"""Valid values are: {", ".join(lowerCAmelCase_      )}"""
      )
      raise ValueError(lowerCAmelCase_      )
   return round(speed * speed_chart[unit_from] * speed_chart_inverse[unit_to],      3      )


if __name__ == "__main__":
     import doctest

     doctest.testmod()



from __future__ import annotations

def a__       (			A_,	A_   ):






  '''simple docstring'''





  if b == 0:
    return (1, 0)
  ((__magic_name__)	,       (__magic_name__))								=			extended_euclid(A_,	a % b   )
  __magic_name__								=			a // b
  return (y, x - k * y)

def a__       (			A_,	A_,	A_,	A_   ):






  '''simple docstring'''





  ((__magic_name__)	,       (__magic_name__))								=			extended_euclid(A_,	A_   )
  __magic_name__								=			na * na
  __magic_name__								=			ra * x * na + ra * y * na
  return (n % m + m) % m

def a__       (			A_,	A_   ):






  '''simple docstring'''





  ((__magic_name__)	,       (__magic_name__))								=			extended_euclid(A_,	A_   )
  if b < 0:
    __magic_name__								=			(b % n + n) % n
  return b

def a__       (			A_,	A_,	A_,	A_   ):






  '''simple docstring'''





  __magic_name__	,       __magic_name__								=			invert_modulo(A_,	A_   ), invert_modulo(A_,	A_   )
  __magic_name__								=			na * na
  __magic_name__								=			ra * x * na + ra * y * na
  return (n % m + m) % m


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

    testmod(name='chinese_remainder_theorem', verbose=True)
    testmod(name='chinese_remainder_theorem2', verbose=True)
    testmod(name='invert_modulo', verbose=True)
    testmod(name='extended_euclid', verbose=True)

