a XC?h��@spgd�ZddlZddlZddlmZddlmZe�ZejZ ej Z dd�Z dZ ddd �Z dd d �Zdd d �ZdS))�choice� randbelow�randbits� SystemRandom� token_bytes� token_hex� token_urlsafe�compare_digest�N)r)rcCs|dkrtd��t�|�S)Nr zUpper bound must be positive.)� ValueError�_sysrandZ _randbelow)Zexclusive_upper_bound�r �,/opt/alt/python39/lib64/python3.9/secrets.pyrsr� cCs|dur t}t�|�S)N)�DEFAULT_ENTROPYr Z randbytes��nbytesr r r r"s rcCst�t|���d�S)N�ascii)�binasciiZhexlifyr�decoderr r r r0s rcCst|�}t�|��d��d�S)N�=r)r�base64Zurlsafe_b64encode�rstripr)r�tokr r r r=s r)N)N)N)�__all__rrZhmacrZrandomrr Z getrandbitsrrrrrrrr r r r � s