+
    '(j                         ^ RI HtHt ^ RIHtHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt R tR tR tR t ! R	 R
]4      tR tRR ltR# )    )bchrconcat_buffers)VoidPointerSmartPointercreate_string_bufferget_raw_bufferc_size_tc_uint8_ptrc_ubyte)long_to_bytes)_raw_keccak_libc                    V ^R,          8  d   V ^ 8  g   Q hV ^ 8X  d   ^MV P                  4       ^,           ^,          p\        V4      \        V 4      ,           # )z2Left encode function as defined in NIST SP 800-185  )
bit_lengthr   r   xnums   & J/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/Hash/cSHAKE128.py_left_encoder   +   sN     dOQ'& Av!ALLNQ.14C9}Q'''    c                    V ^R,          8  d   V ^ 8  g   Q hV ^ 8X  d   ^MV P                  4       ^,           ^,          p\        V 4      \        V4      ,           # )z3Right encode function as defined in NIST SP 800-185r   )r   r   r   r   s   & r   _right_encoder   6   sN     dOQ'& Av!ALLNQ.14Cd3i''r   c                    \        V 4      ^,          pV^R,          8  d   \        R4      h\        \        V4      V 4      # )z4Encode string function as defined in NIST SP 800-185r   z$String too large to encode in cSHAKE)len
ValueErrorr   r   )r   bitlens   & r   _encode_strr   A   s;     VaZF!t)?@@,v.22r   c                    \        \        V4      V 4      pV\        V4      V,          ,
          V,          pVRV,          ,           # )z2Zero pad byte string as defined in NIST SP 800-185    )r   r   r   )r   lengthto_padnpads   &&  r   _bytepadr#   K   s>     L0!4F S[6))V3DGdN""r   c                   6   a  ] tR t^Wt o RtR tR tR tRtV t	R# )
cSHAKE_XOFzQA cSHAKE hash object.
Do not instantiate directly.
Use the :func:`new` function.
c                H   \        4       pV'       g	   V'       d>   \        V4      \        V4      ,           p\        VR V,
          ^,          4      p^V n        M	Rp^V n        \        P
                  ! VP                  4       \        V^,          4      \        ^4      4      pV'       d   \        RV,          4      h\        VP                  4       \        P                  4      V n        RV n        V'       d   V P                  V4       V'       d   V P                  V4       R# R# )i@  Nz#Error %d while instantiating cSHAKEF)r   r   r#   _paddingr   keccak_init
address_ofr	   r   r   r   getkeccak_destroy_state_is_squeezingupdate)	selfdatacustomcapacityfunctionstateprefix_unpadprefixresults	   &&&&&    r   __init__cSHAKE_XOF.__init__]   s    X&x0;v3FFLlTH_q,@AF DMF DM ,,U-=-=-?-5hk-B-4R[: B%& ' '"599;#2#A#AC"KKKK r   c           	         V P                   '       d   \        R4      h\        P                  ! V P                  P                  4       \        V4      \        \        V4      4      4      pV'       d   \        RW P                  3,          4      hV # )zContinue hashing of a message by consuming the next chunk of data.

Args:
    data (byte string/byte array/memoryview): The next chunk of the message being hashed.
z/You cannot call 'update' after the first 'read'z Error %d while updating %s state)r-   	TypeErrorr   keccak_absorbr,   r*   r
   r	   r   r   name)r/   r0   r7   s   && r   r.   cSHAKE_XOF.updatex   sw     MNN ..t{{/@/:4/@/7D	/BD ? &		23 4 4r   c                    RV n         \        V4      p\        P                  ! V P                  P                  4       V\        V4      \        V P                  4      4      pV'       d   \        RW0P                  3,          4      h\        V4      # )a   
Compute the next piece of XOF output.

.. note::
    You cannot use :meth:`update` anymore after the first call to
    :meth:`read`.

Args:
    length (integer): the amount of bytes this method must return

:return: the next piece of XOF output (of the given length)
:rtype: byte string
Tz!Error %d while extracting from %s)r-   r   r   keccak_squeezer,   r*   r	   r   r'   r   r=   r   )r/   r    bfrr7   s   &&  r   readcSHAKE_XOF.read   s|     ""6* //0A03080@070FH @ &		23 4 4 c""r   )r-   r'   r,   N)
__name__
__module____qualname____firstlineno____doc__r8   r.   rB   __static_attributes____classdictcell__)__classdict__s   @r   r%   r%   W   s     
6$# #r   r%   c                     \        WR V4      # )   r%   )r0   r1   r3   s   &&&r   _newrO      s    dC22r   Nc                    \        WRR4      # )aR  Return a fresh instance of a cSHAKE128 object.

Args:
   data (bytes/bytearray/memoryview):
    Optional.
    The very first chunk of the message to hash.
    It is equivalent to an early call to :meth:`update`.
   custom (bytes):
    Optional.
    A customization bytestring (``S`` in SP 800-185).

:Return: A :class:`cSHAKE_XOF` object
rM   r   rN   )r0   r1   s   &&r   newrQ      s      dC--r   )NN)Crypto.Util.py3compatr   r   Crypto.Util._raw_apir   r   r   r   r	   r
   r   Crypto.Util.numberr   Crypto.Hash.keccakr   r   r   r   r#   objectr%   rO   rQ    r   r   <module>rX      sN   > 78 8 8
 - .((3	#L# L#^3
.r   