Ë
    (üàg  ã                   ó\   — d dl mZ d dlmZ ddlmZ d„ ZdZdZdZ	dZ
 G d	„ d
e«      Zdd„Zy)é    )Úlong_to_bytes)Úbchré   )ÚTurboSHAKE128c                 óR   — | dk(  ryt        | «      }|t        t        |«      «      z   S )Nr   ó    )r   r   Úlen)ÚxÚSs     úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/Hash/KangarooTwelve.pyÚ_length_encoder   $   s)   € ØˆA‚vØä�aÓ€AØŒt”C˜“F‹|ÑÐó    é   é   é   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zdd„Zy)ÚK12_XOFzeA KangarooTwelve hash object.
    Do not instantiate directly.
    Use the :func:`new` function.
    c                 ó  — |d k(  rd}|t        t        |«      «      z   | _        t        | _        d | _        t        j                  d¬«      | _        d| _	        d | _
        d| _        d| _        |r| j                  |«       y y )Nr   r   ©Údomainr   )r   r	   Ú_customÚ	SHORT_MSGÚ_stateÚ_paddingr   ÚnewÚ_hash1Ú_length1Ú_hash2Ú_length2Ú_ctrÚupdate©ÚselfÚdataÚcustoms      r   Ú__init__zK12_XOF.__init__9   sy   € à�TŠ>ØˆFà¤¬s°6«{Ó ;Ñ;ˆŒÜˆŒØˆŒô $×'Ñ'¨qÔ1ˆŒØˆŒð ˆŒØˆŒð ˆŒ	áØ�K‰K˜Õð r   c                 ó¦  — | j                   t        k(  rt        d«      ‚| j                   t        k(  rb| j                  t        |«      z   }|t        | j                  «      z   dk  r$|| _        | j                  j                  |«       | S t        | _         | j                   t        k(  �rt        |«      }| j                  dk  sJ ‚t        t        |«      d| j                  z
  «      }| j                  j                  |d| «       | xj                  |z  c_        | j                  dk  r| S | j                  dk(  sJ ‚d}| j                  j                  |«       | xj                  dz  c_        t        j                  d¬«      | _        d| _        d	| _        t"        | _         | j                  ||d «      S | j                   t"        k(  sJ ‚d}t        |«      }t        |«      }||k  rêt        |dz   | j                  z
  |«      }| j                  j                  ||| «       | xj                  ||z
  z  c_        |}| j                  dk(  r�| j                  j%                  d
«      }	| j                  j                  |	«       | xj                  d
z  c_        | j                  j'                  «        d| _        | xj                   d	z  c_        ||k  rŒê| S )a
  Hash the next piece of data.

        .. note::
            For better performance, submit chunks with a length multiple of 8192 bytes.

        Args:
            data (byte string/byte array/memoryview): The next chunk of the
              message to hash.
        z/You cannot call 'update' after the first 'read'i    Ns          é   é   r   r   r   é    )r   Ú	SQUEEZINGÚ	TypeErrorr   r   r	   r   r   r!   ÚLONG_MSG_S0Ú
memoryviewÚminr   r   r   r   r    ÚLONG_MSG_SXÚreadÚ_reset)
r#   r$   Únext_lengthÚdata_memÚdtcÚdividerÚindexÚlen_dataÚ	new_indexÚcv_is
             r   r!   zK12_XOF.updateQ   sY  € ð �;‰;œ)Ò#ÜÐMÓNÐNà�;‰;œ)Ò#ØŸ-™-¬#¨d«)Ñ3ˆKàœS §¡Ó.Ñ.°$Ò6Ø +�”Ø—‘×"Ñ" 4Ô(Ø�ô &ˆDŒKà�;‰;œ+Ó%Ü! $Ó'ˆHØ—=‘= 4Ò'Ð(Ð'Ü”c˜$“i ¨¯©Ñ!5Ó6ˆCØ�K‰K×Ñ˜x¨¨˜~Ô.Ø�MŠM˜SÑ �Mà�}‰}˜tÒ#Ø�ð —=‘= DÒ(Ð)Ð(à+ˆGØ�K‰K×Ñ˜wÔ'Ø�MŠM˜QÑ�Mä'×+Ñ+°4Ô8ˆDŒKØˆDŒMØˆDŒIä%ˆDŒKØ—;‘;˜x¨¨˜~Ó.Ð.ð �{‰{œkÒ)Ð*Ð)ØˆÜ�t“9ˆô ˜dÓ#ˆØ�hÒä˜E D™L¨4¯=©=Ñ8¸(ÓCˆIØ�K‰K×Ñ˜x¨¨iÐ8Ô9Ø�MŠM˜Y¨Ñ.Ñ.�MØˆEà�}‰} Ò$Ø—{‘{×'Ñ'¨Ó+�Ø—‘×"Ñ" 4Ô(Ø—’ Ñ#•Ø—‘×"Ñ"Ô$Ø !�”Ø—	’	˜Q‘•	ð �hÓð ˆr   c                 ó   — d}| j                   t        k(  r7| j                  j                  | j                  «       d| _        t        | _         | j                   t        k(  r2| j                  | j                  «       d}| j                   t        k(  sJ ‚| j                   t        k(  rõ|s| j                  | j                  «       | j                  dkD  r�| j                  j                  d«      }| j                  j                  |«       | xj                  dz  c_        | j                  j                  «        d| _	        | xj                  dz  c_        t        | j                  dz
  «      dz   }| j                  j                  |«       d| _        t        | _         | j
                  | j                  _        | j                  j                  |«      S )	ad  
        Produce more bytes of the digest.

        .. 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
        Fé   Tr   r*   r   s   ÿÿé   )r   r   r   r!   r   r   r+   r-   r0   r   r   r1   r   r2   r    r   Ú_domain)r#   ÚlengthÚcustom_was_consumedr:   Útrailers        r   r1   zK12_XOF.readš   sO  € ð $Ðà�;‰;œ)Ò#Ø�K‰K×Ñ˜tŸ|™|Ô,Ø ˆDŒMÜ#ˆDŒKà�;‰;œ+Ò%Ø�K‰K˜Ÿ™Ô%Ø"&ÐØ—;‘;¤+Ò-Ð.Ð-à�;‰;œ+Ò%Ù&Ø—‘˜DŸL™LÔ)ð �}‰}˜qÒ Ø—{‘{×'Ñ'¨Ó+�Ø—‘×"Ñ" 4Ô(Ø—’ Ñ#•Ø—‘×"Ñ"Ô$Ø !�”Ø—	’	˜Q‘•	ä$ T§Y¡Y°¡]Ó3°kÑAˆGØ�K‰K×Ñ˜wÔ'à ˆDŒMÜ#ˆDŒKà"Ÿm™mˆ�‰ÔØ�{‰{×Ñ Ó'Ð'r   Nc                 ó&   —  t        | «      ||«      S )N)Útyper"   s      r   r   zK12_XOF.newË   s   € ØŒt�D‹z˜$ Ó'Ð'r   )Nr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   r!   r1   r   © r   r   r   r   3   s   „ ñò
ò0GòR/(ôb(r   r   Nc                 ó   — t        | |«      S )ag  Return a fresh instance of a KangarooTwelve 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 byte string.

    :Return: A :class:`K12_XOF` object
    )r   )r$   r%   s     r   r   r   Ï   s   € ô �4˜Ó Ð r   )NN)ÚCrypto.Util.numberr   ÚCrypto.Util.py3compatr   Ú r   r   r   r-   r0   r+   Úobjectr   r   rH   r   r   ú<module>rN      s?   ðõ> -Ý &å òð €	Ø€Ø€Ø€	ôY(ˆfô Y(ôx!r   