o
    ê}”e‹  ã                	   @   sÚ   d dl Z d dlZd dlZd dlZddlmZ ejee	f Z
	dde
deded	e	fd
d„Zde
d	e	fdd„Zde
d	e	fdd„Zej› ej› d� d¡Ze d¡ZejZe dej¡Zded	e	fdd„Zde	d	efdd„ZdS )é    Né   )ÚBadDataúutf-8ÚstrictÚsÚencodingÚerrorsÚreturnc                 C   s   t | tƒr|  ||¡} | S )N)Ú
isinstanceÚstrÚencode)r   r   r   © r   ú^/Users/abhinavbhinder/Documents/map/venv/lib/python3.10/site-packages/itsdangerous/encoding.pyÚ
want_bytes   s   
r   Ústringc                 C   s   t | ƒ} t | ¡ d¡S )z^Base64 encode a string of bytes or text. The resulting bytes are
    safe to use in URLs.
    ó   =)r   Úbase64Úurlsafe_b64encodeÚrstrip)r   r   r   r   Úbase64_encode   s   r   c              
   C   sX   t | ddd�} | dt| ƒ d  7 } zt | ¡W S  ttfy+ } ztdƒ|‚d}~ww )zOBase64 decode a URL-safe string of bytes or text. The result is
    bytes.
    ÚasciiÚignore)r   r   r   é   zInvalid base64-encoded dataN)r   Úlenr   Úurlsafe_b64decodeÚ	TypeErrorÚ
ValueErrorr   )r   Úer   r   r   Úbase64_decode   s   
€ÿr   z-_=r   z>Qz#_t.Callable[[bytes], _t.Tuple[int]]Únumc                 C   s   t | ƒ d¡S )Nó    )Ú_int_to_bytesÚlstrip)r   r   r   r   Úint_to_bytes1   s   r#   Úbytestrc                 C   s   t |  dd¡ƒd S )Né   r    r   )Ú_bytes_to_intÚrjust)r$   r   r   r   Úbytes_to_int5   s   r(   )r   r   )r   r   ÚstructÚtypingZ_tÚexcr   ÚUnionr   ÚbytesZ_t_str_bytesr   r   r   Úascii_lettersÚdigitsr   Z_base64_alphabetÚStructZ_int64_structÚpackr!   ÚcastÚunpackr&   Úintr#   r(   r   r   r   r   Ú<module>   s0    ÿÿÿÿ
þ	
