"""simple docstring"""




from math import isclose, sqrt





def 							SCREAMING_SNAKE_CASE					(      _lowerCamelCase						:	List[Any]      ,_lowerCamelCase						:	List[Any]      ,_lowerCamelCase						:	Dict     )	->				Dict:
  _lowerCAmelCase						:	Optional[int]        =					point_y / 4 / point_x
  _lowerCAmelCase						:	str        =					2 * normal_gradient / (1 + normal_gradient * normal_gradient)
  _lowerCAmelCase						:	Union[str, Any]        =					(1 - normal_gradient * normal_gradient) / (
      1 + normal_gradient * normal_gradient
  )
  _lowerCAmelCase						:	Any        =					(sa - ca * incoming_gradient) / (ca + sa * incoming_gradient)

  # to find the next point, solve the simultaeneous equations:
  # y^2 + 4x^2 = 100
  # y - b = m * (x - a)
  # ==> A x^2 + B x + C = 0
  _lowerCAmelCase						:	Optional[Any]        =					outgoing_gradient**2 + 4
  _lowerCAmelCase						:	Optional[int]        =					2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
  _lowerCAmelCase						:	Tuple        =					(point_y - outgoing_gradient * point_x) ** 2 - 100

  _lowerCAmelCase						:	int        =					(
      -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term     )
  ) / (2 * quadratic_term)
  _lowerCAmelCase						:	str        =					(
      -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term     )
  ) / (2 * quadratic_term)

  # two solutions, one of which is our input point
  _lowerCAmelCase						:	Optional[int]        =					x_minus if isclose(__lowerCamelCase      ,__lowerCamelCase     ) else x_plus
  _lowerCAmelCase						:	List[str]        =					point_y + outgoing_gradient * (next_x - point_x)

  return next_x, next_y, outgoing_gradient





def 							SCREAMING_SNAKE_CASE					(      _lowerCamelCase						:	List[Any] = 1.4      ,_lowerCamelCase						:	Optional[Any] = -9.6     )	->				Dict:
  _lowerCAmelCase						:	int        =					0
  _lowerCAmelCase						:	float        =					first_x_coord
  _lowerCAmelCase						:	float        =					first_y_coord
  _lowerCAmelCase						:	float        =					(10.1 - point_y) / (0.0 - point_x)

  while not (-0.01 <= point_x <= 0.01 and point_y > 0):
    _lowerCAmelCase						:	Tuple        =					next_point(__lowerCamelCase      ,__lowerCamelCase      ,__lowerCamelCase     )
    num_reflections += 1

  return num_reflections


if __name__ == "__main__":
     print(F"""{solution() = }""")



"""simple docstring"""




import socket





def 							SCREAMING_SNAKE_CASE					(      )	->				str:
  _lowerCAmelCase						:	Optional[int]        =					socket.socket(socket.AF_INET      ,socket.SOCK_STREAM     )
  _lowerCAmelCase						:	Optional[int]        =					socket.gethostname()
  _lowerCAmelCase						:	Tuple        =					12312

  sock.connect((host, port)     )
  sock.send(b"""Hello server!"""     )

  with open("""Received_file"""      ,"""wb"""     ) as out_file:
    print("""File opened"""     )
    print("""Receiving data..."""     )
    while True:
      _lowerCAmelCase						:	List[Any]        =					sock.recv(1024     )
      if not data:
        break
      out_file.write(_lowerCamelCase     )

  print("""Successfully received the file"""     )
  sock.close()
  print("""Connection closed"""     )


if __name__ == "__main__":
     main()




