o
    [h                     @   s   d dl Z d dlZd dlZddlmZ ddlmZ dddZd	d
 Zdd Z	ej
ej d dZedZejZejZdd Zdd ZdS )    N   )	text_type)BadDatautf-8strictc                 C   s   t | tr| ||} | S )N)
isinstancer   encode)sencodingerrors r   |/home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/itsdangerous/encoding.py
want_bytes	   s   
r   c                 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stringr   r   r   base64_encode   s   r   c              	   C   sL   t | ddd} | dt|  d  7 } zt| W S  ttfy%   tdw )zOBase64 decode a URL-safe string of bytes or text. The result is
    bytes.
    asciiignore)r
   r   r      zInvalid base64-encoded data)r   lenr   urlsafe_b64decode	TypeError
ValueErrorr   r   r   r   r   base64_decode   s   r   z-_=r   z>Qc                 C   s   t | dS )N    )_int_to_byteslstrip)numr   r   r   int_to_bytes,   s   r"   c                 C   s   t | ddd S )N   r   r   )_bytes_to_intrjust)Zbytestrr   r   r   bytes_to_int0   s   r&   )r   r   )r   r   structZ_compatr   excr   r   r   r   ascii_lettersdigitsr   Z_base64_alphabetStructZ_int64_structpackr   unpackr$   r"   r&   r   r   r   r   <module>   s    

