



from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

__A       =						typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
__A       =						typing.Union[np.floataa, int, float]  # noqa: UP007



def 	__a					(   lowerCAmelCase_       : Vector      ,lowerCAmelCase_       : Vector    )				->			VectorOut:






						'''simple docstring'''



						return np.sqrt(np.sum((np.asarray(lowerCAmelCase_    ) - np.asarray(lowerCAmelCase_    )) ** 2    )    )



def 	__a					(   lowerCAmelCase_       : Vector      ,lowerCAmelCase_       : Vector    )				->			VectorOut:






						'''simple docstring'''



						return sum((va - va) ** 2 for va, va in zip(lowerCAmelCase_      ,lowerCAmelCase_    )    ) ** (1 / 2)


if __name__ == "__main__":



	def 	__a					(   )				->			None:






							'''simple docstring'''



							from timeit import timeit

							print("""Without Numpy"""    )
							print(
							    timeit(
							        """euclidean_distance_no_np([1, 2, 3], [4, 5, 6])"""      ,number=1_00_00      ,globals=globals()      ,)    )
							print("""With Numpy"""    )
							print(
							    timeit(
							        """euclidean_distance([1, 2, 3], [4, 5, 6])"""      ,number=1_00_00      ,globals=globals()      ,)    )



	benchmark()









__A       =						6_5521



def 	__a					(   lowerCAmelCase_       : str    )				->			int:






						'''simple docstring'''



						UpperCAmelCase_=       1
						UpperCAmelCase_=       0
						for plain_chr in plain_text:
												UpperCAmelCase_=       (a + ord(lowerCAmelCase_    )) % MOD_ADLER
												UpperCAmelCase_=       (b + a) % MOD_ADLER
						return (b << 16) | a




