Ë
    `QbjO  ã                  ó`   — d dl mZ d dlZd dlZd dlZd dlZddlmZ ddgZdZ	dd„Z
dd	„Zdd
„Zy)é    )ÚannotationsNé   )Ú	BytesLikeÚ
accept_keyÚ
apply_maskz$258EAFA5-E914-47DA-95CA-C5AB0DC85B11c                 ór   — t        j                  d«      } t        j                  | «      j	                  «       S )zB
    Generate a random key for the Sec-WebSocket-Key header.

    é   )ÚsecretsÚtoken_bytesÚbase64Ú	b64encodeÚdecode)Úkeys    úC/var/www/html/venv/lib/python3.12/site-packages/websockets/utils.pyÚgenerate_keyr      s.   € ô
 ×
Ñ
˜bÓ
!€CÜ×Ñ˜CÓ ×'Ñ'Ó)Ð)ó    c                ó¸   — t        j                  | t        z   j                  «       «      j	                  «       }t        j                  |«      j                  «       S )z
    Compute the value of the Sec-WebSocket-Accept header.

    Args:
        key: Value of the Sec-WebSocket-Key header.

    )ÚhashlibÚsha1ÚGUIDÚencodeÚdigestr   r   r   )r   r   s     r   r   r      sB   € ô �<‰<˜œt™×+Ñ+Ó-Ó.×5Ñ5Ó7€DÜ×Ñ˜DÓ!×(Ñ(Ó*Ð*r   c                ó°  — t        |«      dk7  rt        d«      ‚t        | t        «      r| j                  st        | «      } t        j                  | t        j                  «      }|t        | «      dz  z  |dt        | «      dz   z   }t        j                  |t        j                  «      }||z  j                  t        | «      t        j                  «      S )z
    Apply masking to the data of a WebSocket message.

    Args:
        data: Data to mask.
        mask: 4-bytes mask.

    é   zmask must contain 4 bytesN)ÚlenÚ
ValueErrorÚ
isinstanceÚ
memoryviewÚc_contiguousÚbytesÚintÚ
from_bytesÚsysÚ	byteorderÚto_bytes)ÚdataÚmaskÚdata_intÚmask_repeatedÚmask_ints        r   r   r   &   s¦   € ô ˆ4ƒy�A‚~ÜÐ4Ó5Ð5ô �$œ
Ô#¨D×,=Ò,=Ü�T‹{ˆä�~‰~˜d¤C§M¡MÓ2€HØœC ›I¨™NÑ+¨d°?´S¸³YÀ±]Ð.CÑC€MÜ�~‰~˜m¬S¯]©]Ó;€HØ�xÑ×)Ñ)¬#¨d«)´S·]±]ÓCÐCr   )ÚreturnÚstr)r   r,   r+   r,   )r&   r   r'   zbytes | bytearrayr+   r    )Ú
__future__r   r   r   r
   r#   Útypingr   Ú__all__r   r   r   r   © r   r   ú<module>r1      s:   ðÝ "ã Û Û Û 
å ð ˜Ð
&€ð .€ó*ó	+ôDr   