§
    Ìtºf‹G  ã                   óà   — d dl Z d dlmZmZmZmZmZ dZ G d„ de¦  «        Z	 G d„ dee	¦  «        Z
 G d„ d	ee	¦  «        Z G d
„ dee	¦  «        Z G d„ dee	¦  «        Z G d„ dee	¦  «        ZdS )é    N)ÚPerMessageCompressOfferÚPerMessageCompressOfferAcceptÚPerMessageCompressResponseÚ PerMessageCompressResponseAcceptÚPerMessageCompress)ÚPerMessageBzip2MixinÚPerMessageBzip2OfferÚPerMessageBzip2OfferAcceptÚPerMessageBzip2ResponseÚPerMessageBzip2ResponseAcceptÚPerMessageBzip2c                   ó    — e Zd ZdZdZ	 g d¢ZdS )r   z)
    Mixin class for this extension.
    zpermessage-bzip2)	é   é   é   é   é   é   é   é   é	   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚEXTENSION_NAMEÚ!COMPRESS_LEVEL_PERMISSIBLE_VALUES© ó    ú`/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/websocket/compress_bzip2.pyr   r   -   s9   € € € € € ðð ð (€Nðð )DÐ(CÐ(CÐ%ðð r   r   c                   óF   — e Zd ZdZed„ ¦   «         Z	 	 d
d„Zd„ Zd„ Zd„ Z	d	S )r	   zu
    Set of extension parameters for `permessage-bzip2` WebSocket extension
    offered by a client to a server.
    c                 ó  — d}d}|D ]ò}t          ||         ¦  «        dk    rt          d|›d| j        ›d�¦  «        ‚||         d         }|dk    r%|durt          d	|›d
|›d| j        ›d�¦  «        ‚d}Œo|dk    rc	 t          |¦  «        }n##  t          d	|›d
|›d| j        ›d�¦  «        ‚xY w|t          j        vrt          d	|›d
|›d| j        ›d�¦  «        ‚|}ŒØt          d|›d| j        ›d�¦  «        ‚ | ||¦  «        }|S )aQ  
        Parses a WebSocket extension offer for `permessage-bzip2` provided by a client to a server.

        :param params: Output from :func:`autobahn.websocket.WebSocketProtocol._parseExtensionsHeader`.
        :type params: list

        :returns: object -- A new instance of :class:`autobahn.compress.PerMessageBzip2Offer`.
        Fr   r   ú,multiple occurrence of extension parameter 'ú' for extension 'ú'Úclient_max_compress_levelTú#illegal extension parameter value 'ú' for parameter 'ú' of extension 'Úserver_max_compress_levelúillegal extension parameter '©ÚlenÚ	Exceptionr   Úintr   r   )ÚclsÚparamsÚaccept_max_compress_levelÚrequest_max_compress_levelÚpÚvalÚoffers          r    ÚparsezPerMessageBzip2Offer.parseC   sï  € ð %*Ð!Ø%&Ð"ð ð 	qð 	qˆAå�6˜!”9‰~Œ~ Ò!Ð!Ý�iÐhiÐhiÐhiÐknÔk}Ðk}Ðk}Ð ~ÑÔÐà˜”)˜A”,ˆCàÐ/Ò/Ð/à˜d�?�?Ý#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  Rà04Ð-Ð-àÐ1Ò1Ð1ðRÝ˜c™(œ(�C�CøðRÝ#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  RøøøØÕ2ÔTÐTÐTÝ#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  Rà14Ð.Ð.õ  �iÐYZÐYZÐYZÐ\_Ô\nÐ\nÐ\nÐ oÑpÔpÐpà�Ð-Ø.ñ0ô 0ˆàˆs   Á=BÂ B-Tr   c                 óâ   — t          |¦  «        t          k    rt          dt          |¦  «        z  ¦  «        ‚|| _        |dk    r#|| j        vrt          d|›d| j        ›�¦  «        ‚|| _        dS )a_  
        Constructor.

        :param accept_max_compress_level: Iff true, client accepts "maximum compression level" parameter.
        :type accept_max_compress_level: bool
        :param request_max_compress_level: Iff non-zero, client requests given "maximum compression level" - must be 1-9.
        :type request_max_compress_level: int
        z-invalid type %s for accept_max_compress_levelr   úinvalid value ú5 for request_max_compress_level - permissible values N)ÚtypeÚboolr.   r2   r   r3   )Úselfr2   r3   s      r    Ú__init__zPerMessageBzip2Offer.__init__q   s¬   € õ Ð)Ñ*Ô*­dÒ2Ð2ÝÐKÍdÐSlÑNmÔNmÑmÑnÔnÐnà)BˆÔ&à%¨Ò*Ð*Ð/IÐQUÔQwÐ/wÐ/wÝ�)ð  jDð  jDð  jDð  FJô  Flð  Flð  mñ  nô  nð  nà*DˆÔ'Ð'Ð'r   c                 ó\   — | j         }| j        r|dz  }| j        dk    r|d| j        z  z  }|S )úŸ
        Returns the WebSocket extension configuration string as sent to the server.

        :returns: PMCE configuration string.
        :rtype: str
        z; client_max_compress_levelr   ú; server_max_compress_level=%d©r   r2   r3   ©r=   Úpmce_strings     r    Úget_extension_stringz)PerMessageBzip2Offer.get_extension_string†   sI   € ð Ô)ˆØÔ)ð 	9ØÐ8Ñ8ˆKØÔ*¨aÒ/Ð/ØÐ;¸dÔ>]Ñ]Ñ]ˆKØÐr   c                 ó,   — | j         | j        | j        dœS )úŽ
        Returns a JSON serializable object representation.

        :returns: JSON serializable representation.
        :rtype: dict
        )Ú	extensionr2   r3   rB   ©r=   s    r    Ú__json__zPerMessageBzip2Offer.__json__”   s(   € ð "Ô0Ø-1Ô-KØ.2Ô.MðOð Oð 	Or   c                 ó(   — d| j         ›d| j        ›d�S )úª
        Returns Python object representation that can be eval'ed to reconstruct the object.

        :returns: Python string representation.
        :rtype: str
        z1PerMessageBzip2Offer(accept_max_compress_level = ú, request_max_compress_level = ú))r2   r3   rI   s    r    Ú__repr__zPerMessageBzip2Offer.__repr__Ÿ   sH   € € ð koô  kIð  kIð  kIð  KOô  Kjð  Kjð  Kjð  kð  	kr   N)Tr   )
r   r   r   r   Úclassmethodr7   r>   rE   rJ   rO   r   r   r    r	   r	   =   s�   € € € € € ðð ð
 ð+ð +ñ „[ð+ð\ ,0Ø,-ðEð Eð Eð Eð*ð ð ð	Oð 	Oð 	Oðkð kð kð kð kr   r	   c                   ó0   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd„ ZdS )	r
   zk
    Set of parameters with which to accept an `permessage-bzip2` offer
    from a client by a server.
    r   Nc                 óÂ  — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|| _        |dk    r#|| j        vrt          d|›d| j        ›�¦  «        ‚|dk    r|j        st          d|z  ¦  «        ‚|| _        |�K|| j        vrt          d|›d| j        ›�¦  «        ‚|j        dk    r||j        k    rt          d|z  ¦  «        ‚|| _        dS )	aî  
        Constructor.

        :param offer: The offer being accepted.
        :type offer: Instance of :class:`autobahn.compress.PerMessageBzip2Offer`.
        :param request_max_compress_level: Iff non-zero, server requests given "maximum compression level" - must be 1-9.
        :type request_max_compress_level: int
        :param compress_level: Override server ("server-to-client direction") compress level (this must be compatible with offer).
        :type compress_level: int
        zinvalid type %s for offerr   r9   r:   zOinvalid value %s for request_max_compress_level - feature unsupported by clientNú) for compress_level - permissible values zJinvalid value %s for compress_level - client requested lower maximum value)	Ú
isinstancer	   r.   r;   r6   r   r2   r3   Úcompress_level)r=   r6   r3   rU   s       r    r>   z#PerMessageBzip2OfferAccept.__init__¯   sc  € õ ˜%Õ!5Ñ6Ô6ð 	GÝÐ7½$¸u¹+¼+ÑEÑFÔFÐFàˆŒ
à%¨Ò*Ð*Ð/IÐQUÔQwÐ/wÐ/wÝ�)ð  jDð  jDð  jDð  FJô  Flð  Flð  mñ  nô  nð  nà%¨Ò*Ð*°5Ô3RÐ*ÝÐmð  qKñ  Kñ  Lô  Lð  Là*DˆÔ'àÐ%Ø TÔ%KÐKÐKÝ�iÐaoÐaoÐaoÐquô  rXð  rXð  !Yñ  Zô  Zð  ZàÔ/°1Ò4Ð4¸È%ÔJjÒ9jÐ9jÝÐ lÐo}Ñ }Ñ~Ô~Ð~à,ˆÔÐÐr   c                 óˆ   — | j         }| j        j        dk    r|d| j        j        z  z  }| j        dk    r|d| j        z  z  }|S )r@   r   rA   z; client_max_compress_level=%d)r   r6   r3   rC   s     r    rE   z/PerMessageBzip2OfferAccept.get_extension_stringÓ   sX   € ð Ô)ˆØŒ:Ô0°AÒ5Ð5ØÐ;¸d¼jÔ>cÑcÑcˆKØÔ*¨aÒ/Ð/ØÐ;¸dÔ>]Ñ]Ñ]ˆKØÐr   c                 ó\   — | j         | j                             ¦   «         | j        | j        dœS )rG   )rH   r6   r3   rU   )r   r6   rJ   r3   rU   rI   s    r    rJ   z#PerMessageBzip2OfferAccept.__json__á   s6   € ð "Ô0Øœ×,Ò,Ñ.Ô.Ø.2Ô.MØ"&Ô"5ð7ð 7ð 	7r   c                 ó\   — d| j                              ¦   «         ›d| j        ›d| j        ›d�S )rL   zPerMessageBzip2Accept(offer = rM   ú, compress_level = rN   )r6   rO   r3   rU   rI   s    r    rO   z#PerMessageBzip2OfferAccept.__repr__í   st   € € ð mqÔlv×lÒlñ  mBô  mBð  mBð  mBð  DHô  Dcð  Dcð  Dcð  eiô  exð  exð  exð  yð  	yr   )r   N)r   r   r   r   r>   rE   rJ   rO   r   r   r    r
   r
   ©   sm   € € € € € ðð ð -.Ø $ð"-ð "-ð "-ð "-ðHð ð ð
7ð 
7ð 
7ðyð yð yð yð yr   r
   c                   ó:   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ ZdS )r   zG
    Set of parameters for `permessage-bzip2` responded by server.
    c                 ó�  — d}d}|D �]1}t          ||         ¦  «        dk    rt          d|›d| j        ›d�¦  «        ‚||         d         }|dk    rc	 t          |¦  «        }n##  t          d|›d|›d	| j        ›d�¦  «        ‚xY w|t          j        vrt          d|›d|›d	| j        ›d�¦  «        ‚|}Œ®|d
k    rd	 t          |¦  «        }n##  t          d|›d|›d	| j        ›d�¦  «        ‚xY w|t          j        vrt          d|›d|›d	| j        ›d�¦  «        ‚|}�Œt          d|›d| j        ›d�¦  «        ‚ | ||¦  «        }|S )aa  
        Parses a WebSocket extension response for `permessage-bzip2` provided by a server to a client.

        :param params: Output from :func:`autobahn.websocket.WebSocketProtocol._parseExtensionsHeader`.
        :type params: list

        :returns: A new instance of :class:`autobahn.compress.PerMessageBzip2Response`.
        :rtype: obj
        r   r   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   )r0   r1   r&   r*   r4   r5   Úresponses          r    r7   zPerMessageBzip2Response.parseü   s[  € ð %&Ð!Ø$%Ð!àð 	qñ 	qˆAå�6˜!”9‰~Œ~ Ò!Ð!Ý�iÐhiÐhiÐhiÐknÔk}Ðk}Ðk}Ð ~ÑÔÐà˜”)˜A”,ˆCàÐ/Ò/Ð/ðRÝ˜c™(œ(�C�CøðRÝ#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  RøøøØÕ2ÔTÐTÐTÝ#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  Rà03Ð-Ð-àÐ1Ò1Ð1ðRÝ˜c™(œ(�C�CøðRÝ#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  RøøøØÕ2ÔTÐTÐTÝ#˜)ÐuxÐuxÐuxÐz{Ðz{Ðz{ð  ~Aô  ~Pð  ~Pð  ~Pð  %Qñ  Rô  Rð  Rà03Ð-Ñ-õ  �iÐYZÐYZÐYZÐ\_Ô\nÐ\nÐ\nÐ oÑpÔpÐpà�3Ð0Ø0ñ2ô 2ˆàˆs   ÁA#Á# BÂ<CÃ C,c                 ó"   — || _         || _        d S ©N©r&   r*   )r=   r&   r*   s      r    r>   z PerMessageBzip2Response.__init__,  s   € ð *CˆÔ&Ø)BˆÔ&Ð&Ð&r   c                 ó,   — | j         | j        | j        dœS )rG   )rH   r&   r*   )r   r&   r*   rI   s    r    rJ   z PerMessageBzip2Response.__json__2  s(   € ð "Ô0Ø-1Ô-KØ-1Ô-KðMð Mð 	Mr   c                 ó(   — d| j         ›d| j        ›d�S )rL   z4PerMessageBzip2Response(client_max_compress_level = ú, server_max_compress_level = rN   r_   rI   s    r    rO   z PerMessageBzip2Response.__repr__=  sH   € € ð mqô  mKð  mKð  mKð  MQô  Mkð  Mkð  Mkð  lð  	lr   N)	r   r   r   r   rP   r7   r>   rJ   rO   r   r   r    r   r   ÷   sr   € € € € € ðð ð ð-ð -ñ „[ð-ð^Cð Cð Cð	Mð 	Mð 	Mðlð lð lð lð lr   r   c                   ó(   — e Zd ZdZ	 dd„Zd„ Zd„ ZdS )r   zn
    Set of parameters with which to accept an `permessage-bzip2` response
    from a server by a client.
    Nc                 ó$  — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|| _        |�K|| j        vrt          d|›d| j        ›�¦  «        ‚|j        dk    r||j        k    rt          d|z  ¦  «        ‚|| _        dS )a@  

        :param response: The response being accepted.
        :type response: Instance of :class:`autobahn.compress.PerMessageBzip2Response`.
        :param compress_level: Override client ("client-to-server direction") compress level (this must be compatible with response).
        :type compress_level: int
        zinvalid type %s for responseNr9   rS   r   zJinvalid value %s for compress_level - server requested lower maximum value)rT   r   r.   r;   r\   r   r&   rU   )r=   r\   rU   s      r    r>   z&PerMessageBzip2ResponseAccept.__init__M  sÂ   € õ ˜(Õ$;Ñ<Ô<ð 	MÝÐ:½TÀ(¹^¼^ÑKÑLÔLÐLà ˆŒàÐ%Ø TÔ%KÐKÐKÝ�iÐaoÐaoÐaoÐquô  rXð  rXð  !Yñ  Zô  Zð  ZàÔ1°QÒ6Ð6¸>ÈHÔLnÒ;nÐ;nÝÐ lÐo}Ñ }Ñ~Ô~Ð~à,ˆÔÐÐr   c                 óP   — | j         | j                             ¦   «         | j        dœS )rG   )rH   r\   rU   )r   r\   rJ   rU   rI   s    r    rJ   z&PerMessageBzip2ResponseAccept.__json__e  s0   € ð "Ô0Ø œM×2Ò2Ñ4Ô4Ø"&Ô"5ð7ð 7ð 	7r   c                 óL   — d| j                              ¦   «         ›d| j        ›d�S )rL   z)PerMessageBzip2ResponseAccept(response = rY   rN   )r\   rO   rU   rI   s    r    rO   z&PerMessageBzip2ResponseAccept.__repr__p  sD   € € ð W[ÔVc×VlÒVlÑVnÔVnÐVnÐVnÐptô  qDð  qDð  qDð  Eð  	Er   r^   )r   r   r   r   r>   rJ   rO   r   r   r    r   r   G  sZ   € € € € € ðð ð !%ð-ð -ð -ð -ð0	7ð 	7ð 	7ðEð Eð Eð Eð Er   r   c                   óx   — e Zd ZdZdZed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ ZdS )r   z;
    `permessage-bzip2` WebSocket extension processor.
    r   c                 ód   —  | ||j         j        |j        �|j        n|j         j        ¦  «        }|S r^   )r\   r*   rU   r&   ©r0   Ú	is_serverÚacceptÚpmces       r    Úcreate_from_response_acceptz+PerMessageBzip2.create_from_response_accept€  s@   € àˆs�9Ø”?Ô<Ø,2Ô,AÐ,M�6Ô(Ð(ÐSYÔSbÔS|ñ~ô ~ˆð ˆr   c                 óZ   —  | ||j         �|j         n|j        j        |j        ¦  «        }|S r^   )rU   r6   r3   ri   s       r    Úcreate_from_offer_acceptz(PerMessageBzip2.create_from_offer_accept‡  s<   € àˆs�9Ø,2Ô,AÐ,M�6Ô(Ð(ÐSYÔS_ÔSzØÔ4ñ6ô 6ˆð ˆr   c                 ó€   — || _         d | _        d | _        |dk    r|n| j        | _        |dk    r|n| j        | _        d S )Nr   )Ú	_isServerÚ_compressorÚ_decompressorÚDEFAULT_COMPRESS_LEVELr*   r&   )r=   rj   r*   r&   s       r    r>   zPerMessageBzip2.__init__Ž  sc   € ð #ˆŒØˆÔØ!ˆÔàF_ÐcdÒFdÐFdÐ)BÐ)BÐjnô  kFˆÔ&ØF_ÐcdÒFdÐFdÐ)BÐ)BÐjnô  kFˆÔ&Ð&Ð&r   c                 ó8   — | j         | j        | j        | j        dœS )N)rH   ÚisServerr*   r&   )r   rq   r*   r&   rI   s    r    rJ   zPerMessageBzip2.__json__™  s+   € Ø!Ô0Ø œNØ-1Ô-KØ-1Ô-KðMð Mð 	Mr   c                 ó8   — d| j         ›d| j        ›d| j        ›d�S )NzPerMessageBzip2(isServer = rb   z, client_max_compress_level = rN   )rq   r*   r&   rI   s    r    rO   zPerMessageBzip2.__repr__Ÿ  s`   € € Øswô  tBð  tBð  tBð  DHô  Dbð  Dbð  Dbð  dhô  dBð  dBð  dBð  Cð  	Cr   c                 ó´   — | j         r)| j        € t          j        | j        ¦  «        | _        d S d S | j        € t          j        | j        ¦  «        | _        d S d S r^   )rq   rr   Úbz2ÚBZ2Compressorr*   r&   rI   s    r    Ústart_compress_messagez&PerMessageBzip2.start_compress_message¢  si   € ØŒ>ð 	UØÔÐ'Ý#&Ô#4°TÔ5SÑ#TÔ#T�Ô Ð Ð ð (Ð'ð ÔÐ'Ý#&Ô#4°TÔ5SÑ#TÔ#T�Ô Ð Ð ð (Ð'r   c                 ó6   — | j                              |¦  «        S r^   )rr   Úcompress©r=   Údatas     r    Úcompress_message_dataz%PerMessageBzip2.compress_message_dataª  s   € ØÔ×(Ò(¨Ñ.Ô.Ð.r   c                 óF   — | j                              ¦   «         }d | _         |S r^   )rr   Úflushr~   s     r    Úend_compress_messagez$PerMessageBzip2.end_compress_message­  s%   € ØÔ×%Ò%Ñ'Ô'ˆð  ˆÔàˆr   c                 óH   — | j         €t          j        ¦   «         | _         d S d S r^   )rs   ry   ÚBZ2DecompressorrI   s    r    Ústart_decompress_messagez(PerMessageBzip2.start_decompress_message¶  s*   € ØÔÐ%Ý!$Ô!4Ñ!6Ô!6ˆDÔÐÐð &Ð%r   c                 ó6   — | j                              |¦  «        S r^   )rs   Ú
decompressr~   s     r    Údecompress_message_dataz'PerMessageBzip2.decompress_message_dataº  s   € ØÔ!×,Ò,¨TÑ2Ô2Ð2r   c                 ó   — d | _         d S r^   )rs   rI   s    r    Úend_decompress_messagez&PerMessageBzip2.end_decompress_message½  s   € Ø!ˆÔÐÐr   N)r   r   r   r   rt   rP   rm   ro   r>   rJ   rO   r{   r€   rƒ   r†   r‰   r‹   r   r   r    r   r   z  sí   € € € € € ðð ð Ðàðð ñ „[ðð ðð ñ „[ðð	Fð 	Fð 	FðMð Mð MðCð Cð CðUð Uð Uð/ð /ð /ðð ð ð7ð 7ð 7ð3ð 3ð 3ð"ð "ð "ð "ð "r   r   )ry   Ú autobahn.websocket.compress_baser   r   r   r   r   Ú__all__Úobjectr   r	   r
   r   r   r   r   r   r    ú<module>r�      s½  ðð6 €
€
€
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð€ðð ð ð ð ˜6ñ ô ð ð ikð ikð ikð ikð ikÐ2Ð4Hñ ikô ikð ikðXKyð Kyð Kyð Kyð KyÐ!>Ð@Tñ Kyô Kyð Kyð\Mlð Mlð Mlð Mlð MlÐ8Ð:Nñ Mlô Mlð Mlð`0Eð 0Eð 0Eð 0Eð 0EÐ$DÐFZñ 0Eô 0Eð 0EðfD"ð D"ð D"ð D"ð D"Ð(Ð*>ñ D"ô D"ð D"ð D"ð D"r   