U
    #i!                     @   s*   d Z ddlmZ dgZG dd deZdS )zpasslib.crypto._blowfish.unrolled - unrolled loop implementation of bcrypt,
autogenerated by _gen_files.py

currently this override the encipher() and expand() methods
with optimized versions, and leaves the other base.py methods alone.
    )BlowfishEnginer   c                   @   s   e Zd Zdd Zdd ZdS )r   c                 C   s  | j \}}}}}}}	}
}}}}}}}}}}| j\}}}}||N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d? d@  A ||d@   d@ |A N }||A |fS )zBblowfish encipher a single 64-bit block encoded as two 32-bit ints                PS)selflrp0p1p2p3p4p5p6p7p8p9p10p11p12p13p14p15p16p17S0S1S2S3 r$   i/var/www/html/me.goteku.com/backend/venv/lib/python3.8/site-packages/passlib/crypto/_blowfish/unrolled.pyencipher   s           ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
zBlowfishEngine.encipherc                 C   sd-  | j | j }}|\}}}}|d |d A }|d |d A }	|d |d A }
|d |d A }|d |d A }|d |d A }|d |d A }|d |d A }|d	 |d	 A }|d
 |d
 A }|d |d A }|d |d A }|d |d A }|d |d A }|d |d A }|d |d A }|d |d A }|d |d A }|d }}|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}	\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}
}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \}}\}}||	|
|||||||||||||||f|dd< |D ]}d}|dk (r||N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |	A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |
A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }|||d?  ||d? d@   ||d	? d@  A ||d@   d@ |A N }||A |f \||< ||d < \}}|d7 }(qڐ(qdS )z*unrolled version of blowfish key expansionr                        r   	   
                  r      r   r   r   N   r   )r   Z	key_wordsr	   r
   r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   boxjr$   r$   r%   expandY   s,	   	
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
       

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
$zBlowfishEngine.expandN)__name__
__module____qualname__r&   r9   r$   r$   r$   r%   r      s   DN)__doc__Zpasslib.crypto._blowfish.baser   Z_BlowfishEngine__all__r$   r$   r$   r%   <module>   s   
