
    h                         % S SK r S SKrS SKrS SKrS SKrS SKJr   " S S5      r\" 5       r\S-  \	S'    \R                  " 5       rS\4S jrS\S	\S\4S
 jrg! \ a    Sr Nf = f)    N)Anyc                       \ rS rSrSS\S-  4S jjrS\\-  SS4S jrS\\-  SS4S jrSS	 jr	S\
4S
 jrS\
4S jrS\
4S jrS\
S\
S\
4S jrSrg)EntropyPool   Nseedc                 f   SU l         S U l        SU l        [        R                  " 5       U l        [        R                  " 5       U l        SU l	        [        SU R                  -  5      U l        Ub3  U R                  U5        SU l        [        R                  " 5       U l        g SU l        SU l        g )Nr          TF)
pool_indexdigest	next_byte	threadingLocklockhashlibsha1hashhash_len	bytearraypool_stirseededosgetpidseed_pid)selfr   s     `C:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\dns/entropy.py__init__EntropyPool.__init__    s    (,NN$	LLN	edmm34	JJtDKIIKDMDKDM    entropyreturnc                     U H_  nU R                   U R                  :X  a  SU l         US-  nU R                  U R                   ==   U-  ss'   U =R                   S-  sl         Ma     g )Nr         )r   r   r   )r   r!   cbs       r   r   EntropyPool._stir0   sR    A$--/"#DAIIdoo&!+&OOq O r    c                 r    U R                      U R                  U5        S S S 5        g ! , (       d  f       g = fN)r   r   )r   r!   s     r   stirEntropyPool.stir8   s    YYJJw YYs   (
6c                 4   U R                   (       a#  U R                  [        R                  " 5       :w  a\   [        R                  " S5      nSU l         [        R                  " 5       U l        S U l        [        W5      nU R                  U5        g g ! [
         a{     [        SSS5       nUR                  S5      nS S S 5         M{  ! , (       d  f        N= f! [
         a0    [        [        R                  " 5       5      R                  5       n  Nf = ff = f)N   z/dev/urandomrbr   T)r   r   r   r   urandom	Exceptionopenreadstrtimeencoder   r   r   )r   r   rs      r   _maybe_seedEntropyPool._maybe_seed<   s    {{dmmryy{:5zz"~ DKIIKDMDKT?DJJt ;  55ndA6! vvbz 7666  5tyy{+224D5	5sG   B 
DC*C<C
C	CC6DDDDc                    U R                      U R                  5         U R                  b  U R                  U R                  :X  ax  U R
                  R                  [        U R                  5      5        [        U R
                  R                  5       5      U l        U R                  U R                  5        SU l        U R                  U R                     nU =R                  S-  sl        S S S 5        U$ ! , (       d  f       W$ = f)Nr   r%   )r   r8   r   r   r   r   updatebytesr   r   r   )r   values     r   random_8EntropyPool.random_8L   s    YY{{"dnn&E		  tyy!12'		(8(8(:;

4;;'!"KK/ENNaN   Y s   CC55
Dc                 J    U R                  5       S-  U R                  5       -   $ )N   )r>   r   s    r   	random_16EntropyPool.random_16X   s    }}$t}}66r    c                 J    U R                  5       S-  U R                  5       -   $ )N   )rC   rB   s    r   	random_32EntropyPool.random_32[   s     ~~%'$..*:::r    firstlastc                     X!-
  S-   nUS:  a  [        S5      eUS:  a  U R                  nSnO#US:  a  U R                  nSnOU R                  nSnXU" 5       -  US-   -  -   $ )	Nr%   l        ztoo bigrF   l    rA   i  r$   )
ValueErrorrG   rC   r>   )r   rI   rJ   sizerandmaxs         r   random_betweenEntropyPool.random_between^   sq    |a*Y''%<>>DCCZ>>DC==DCdf}q111r    )	r   r   r   r   r   r   r   r   r   r*   )r"   N)__name__
__module____qualname____firstlineno__r<   r   r   r   r+   r8   intr>   rC   rG   rP   __static_attributes__ r    r   r   r      s    UT\  !UY. !4 ! EI-  $   
# 
73 7;3 ;2C 2s 2s 2r    r   system_randomr"   c                  d    [         b  [         R                  SS5      $ [        R                  5       $ )Nr   rF   )rY   	randranger   rC   rX   r    r   rC   rC   w   s(     &&q%00~~r    rI   rJ   c                 j    [         b  [         R                  XS-   5      $ [        R                  X5      $ )Nr%   )rY   r[   r   rP   )rI   rJ   s     r   betweenr]   ~   s.     &&uQh77""5//r    )r   r   randomr   r5   typingr   r   r   __annotations__SystemRandomrY   r1   rV   rC   r]   rX   r    r   <module>rb      s   $  	    Q2 Q2h }Tz '')M
 3  03 0c 0c 0  Ms   A A%$A%