
    Ǆg                    @   d dl mZ d dlZd dlZd dlZd dlZddlmZ 	 d	 	 	 	 	 	 	 ddZ	ddZ
ddZej                   ej                   dj                  d	      Z ej                   d
      Zej$                  Z ej(                  dej*                        ZddZddZy)    )annotationsN   )BadDatac                J    t        | t              r| j                  ||      } | S )N)
isinstancestrencode)sencodingerrorss      ]/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/itsdangerous/encoding.py
want_bytesr      s#     !SHHXv&H    c                `    t        |       } t        j                  |       j                  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)strings    r   base64_encoder      s*     F##F+22488r   c                    t        | dd      } | dt        |        dz  z  z  } 	 t        j                  |       S # t        t
        f$ r}t        d      |d}~ww xY 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   es     r   base64_decoder       se     BF
ds6{lQ&''F<''//z" <34!;<s   : A	AAz-_=r   z>Qzt.Callable[[bytes], tuple[int]]c                6    t        |       j                  d      S )N    )_int_to_byteslstrip)nums    r   int_to_bytesr&   1   s    $$W--r   c                >    t        | j                  dd            d   S )N   r"   r   )_bytes_to_intrjust)bytestrs    r   bytes_to_intr,   5   s    q'23A66r   )zutf-8strict)r
   str | bytesr   r   r   r   returnbytes)r   r.   r/   r0   )r%   intr/   r0   )r+   r0   r/   r1   )
__future__r   r   r   structtypingtexcr   r   r   r    ascii_lettersdigitsr	   _base64_alphabetStruct_int64_structpackr#   castunpackr)   r&   r,    r   r   <module>r@      s    "      <D!58
9
< **+FMM?#>EEgN d#""8-:N:NO.7r   