a
XC?h� � @ sp g d �Z ddlZddlZddlmZ ddlmZ e� ZejZ ej
Z
dd� ZdZddd �Z
dd
d�Zddd
�ZdS ))�choice� randbelow�randbits�SystemRandom�token_bytes� token_hex�
token_urlsafe�compare_digest� N)r )r c C s | dkrt d��t�| �S )Nr zUpper bound must be positive.)�
ValueError�_sysrandZ
_randbelow)Zexclusive_upper_bound� r �,/opt/alt/python39/lib64/python3.9/secrets.pyr s r � c C s | d u rt } t�| �S )N)�DEFAULT_ENTROPYr Z randbytes��nbytesr r r
r " s
r c C s t �t| ���d�S )N�ascii)�binasciiZhexlifyr �decoder r r r
r 0 s r c C s t | �}t�|��d��d�S )N� =r )r �base64Zurlsafe_b64encode�rstripr )r �tokr r r
r = s
r )N)N)N)�__all__r r Zhmacr Zrandomr r Zgetrandbitsr r r r r r r r r r r
�