§
    êÐßiÇ  ã                  óœ   — d dl mZ d dlmZmZmZmZ ddlmZ ddlm	Z	m
Z
 g d¢Z G d„ d¦  «        Z G d	„ d
¦  «        Z G d„ d¦  «        ZdS )é    )Úannotations)ÚListÚOptionalÚSequenceÚTupleé   )Úframes)ÚExtensionNameÚExtensionParameter)Ú	ExtensionÚClientExtensionFactoryÚServerExtensionFactoryc                  ó6   — e Zd ZU dZded<   	 ddœdd„Zdd„ZdS )r   z%
    Base class for extensions.

    r
   ÚnameN)Úmax_sizeÚframeúframes.Framer   úOptional[int]Úreturnc               ó   — t           ‚)a)  
        Decode an incoming frame.

        Args:
            frame (Frame): incoming frame.
            max_size: maximum payload size in bytes.

        Returns:
            Frame: Decoded frame.

        Raises:
            PayloadTooBig: if decoding the payload exceeds ``max_size``.

        ©ÚNotImplementedError)Úselfr   r   s      ú`/var/www/html/crypto-bot/backend/venv/lib/python3.11/site-packages/websockets/extensions/base.pyÚdecodezExtension.decode   s
   € õ( "Ð!ó    c                ó   — t           ‚)zš
        Encode an outgoing frame.

        Args:
            frame (Frame): outgoing frame.

        Returns:
            Frame: Encoded frame.

        r   )r   r   s     r   ÚencodezExtension.encode+   s
   € õ "Ð!r   )r   r   r   r   r   r   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   © r   r   r   r      sh   € € € € € € ðð ð
 ÐÐÑØð #'ð	"ð "ð "ð "ð "ð "ð,"ð "ð "ð "ð "ð "r   r   c                  ó0   — e Zd ZU dZded<   	 dd„Zdd„ZdS )r   z:
    Base class for client-side extension factories.

    r
   r   r   úList[ExtensionParameter]c                ó   — t           ‚)z§
        Build parameters to send to the server for this extension.

        Returns:
            List[ExtensionParameter]: Parameters to send to the server.

        r   )r   s    r   Úget_request_paramsz)ClientExtensionFactory.get_request_paramsB   s
   € õ "Ð!r   ÚparamsúSequence[ExtensionParameter]Úaccepted_extensionsúSequence[Extension]r   c                ó   — t           ‚)aÈ  
        Process parameters received from the server.

        Args:
            params (Sequence[ExtensionParameter]): parameters received from
                the server for this extension.
            accepted_extensions (Sequence[Extension]): list of previously
                accepted extensions.

        Returns:
            Extension: An extension instance.

        Raises:
            NegotiationError: if parameters aren't acceptable.

        r   ©r   r)   r+   s      r   Úprocess_response_paramsz.ClientExtensionFactory.process_response_paramsL   s
   € õ* "Ð!r   N)r   r&   )r)   r*   r+   r,   r   r   )r   r    r!   r"   r#   r(   r/   r$   r   r   r   r   9   sY   € € € € € € ðð ð
 ÐÐÑØð"ð "ð "ð "ð"ð "ð "ð "ð "ð "r   r   c                  ó(   — e Zd ZU dZded<   	 dd
„ZdS )r   z:
    Base class for server-side extension factories.

    r
   r   r)   r*   r+   r,   r   ú*Tuple[List[ExtensionParameter], Extension]c                ó   — t           ‚)aŒ  
        Process parameters received from the client.

        Args:
            params (Sequence[ExtensionParameter]): parameters received from
                the client for this extension.
            accepted_extensions (Sequence[Extension]): list of previously
                accepted extensions.

        Returns:
            Tuple[List[ExtensionParameter], Extension]: To accept the offer,
            parameters to send to the client for this extension and an
            extension instance.

        Raises:
            NegotiationError: to reject the offer, if parameters received from
                the client aren't acceptable.

        r   r.   s      r   Úprocess_request_paramsz-ServerExtensionFactory.process_request_paramsm   s
   € õ0 "Ð!r   N)r)   r*   r+   r,   r   r1   )r   r    r!   r"   r#   r3   r$   r   r   r   r   d   sE   € € € € € € ðð ð
 ÐÐÑØð"ð "ð "ð "ð "ð "r   r   N)Ú
__future__r   Útypingr   r   r   r   Ú r	   r
   r   Ú__all__r   r   r   r$   r   r   ú<module>r8      s÷   ðØ "Ð "Ð "Ð "Ð "Ð "à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð LÐ
KÐ
K€ð*"ð *"ð *"ð *"ð *"ñ *"ô *"ð *"ðZ("ð ("ð ("ð ("ð ("ñ ("ô ("ð ("ðV!"ð !"ð !"ð !"ð !"ñ !"ô !"ð !"ð !"ð !"r   