§
    ÏÁ³g«g  ã                   ó¼  — d dl mZmZmZmZmZmZmZmZm	Z	 ddl
mZmZmZmZmZmZmZ ddlmZmZmZ ddlmZmZ ddlmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) dd	l*m+Z+m,Z, g d
¢Z- G d„ de)e)¬¦  «        Z. G d„ de)e)¬¦  «        Z/dZ0de	eef         de1fd„Z2de3de	eef         dee4e	ed         ee5         f         f         fd„Z6 G d„ d¦  «        Z7dS )é    )	ÚAnyÚCallableÚcastÚDictÚListÚOptionalÚTupleÚTypeÚUnioné   )ÚConnectionClosedÚDataÚEndOfMessageÚEventÚInformationalResponseÚRequestÚResponse)Úget_comma_headerÚhas_expect_100_continueÚset_comma_header)ÚREADERSÚReadersType)ÚReceiveBuffer)
Ú_SWITCH_CONNECTÚ_SWITCH_UPGRADEÚCLIENTÚConnectionStateÚDONEÚERRORÚMIGHT_SWITCH_PROTOCOLÚ	SEND_BODYÚSERVERÚSWITCHED_PROTOCOL)ÚLocalProtocolErrorÚRemoteProtocolErrorÚSentinel)ÚWRITERSÚWritersType)Ú
ConnectionÚ	NEED_DATAÚPAUSEDc                   ó   — e Zd ZdS )r*   N©Ú__name__Ú
__module__Ú__qualname__© ó    úM/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/h11/_connection.pyr*   r*   (   ó   € € € € € Ø€Dr2   r*   )Ú	metaclassc                   ó   — e Zd ZdS )r+   Nr-   r1   r2   r3   r+   r+   ,   r4   r2   r+   i @  ÚeventÚreturnc                 ój   — t          | j        d¦  «        }d|v rdS t          | dd¦  «        dk     rdS dS )Nó
   connectionó   closeFÚhttp_versionó   1.1T)r   ÚheadersÚgetattr)r7   Ú
connections     r3   Ú_keep_aliverA   H   sD   € Ý! %¤-°Ñ?Ô?€JØ�:ÐÐØˆuÝˆu�n fÑ-Ô-°Ò6Ð6ØˆuØˆ4r2   Úrequest_methodr1   c                 ó´  — t          |¦  «        t          t          fv sJ ‚t          |¦  «        t          u r9|j        dv s!| dk    s| dk    rd|j        cxk    rdk     rn ndS |j        dk    sJ ‚t	          |j        d¦  «        }|r|dgk    sJ ‚d	S t	          |j        d
¦  «        }|rdt          |d         ¦  «        ffS t          |¦  «        t          u rdS dS )N)éÌ   i0  ó   HEADó   CONNECTéÈ   é,  )úcontent-length)r   ó   transfer-encodingó   chunked)Úchunkedr1   ó   content-lengthrI   r   )úhttp/1.0r1   )Útyper   r   Ústatus_coder   r>   Úint)rB   r7   Útransfer_encodingsÚcontent_lengthss       r3   Ú_body_framingrT   Q   s"  € õ �‰;Œ;�7¥HÐ-Ð-Ð-Ð-Ð-õ ˆE�{„{•hÐÐàÔ Ð+Ð+Ø Ò(Ð(Ø *Ò,Ð,°¸Ô8IÐ1OÐ1OÒ1OÐ1OÈCÒ1OÐ1OÐ1OÐ1OÐ1Oà+Ð+ð Ô  CÒ'Ð'Ð'Ð'õ *¨%¬-Ð9MÑNÔNÐØð Ø! j \Ò1Ð1Ð1Ð1Øˆõ ' u¤}Ð6GÑHÔH€OØð >Ø ¥3 °qÔ'9Ñ#:Ô#:Ð"<Ð=Ð=õ ˆE�{„{•gÐÐØ'Ð'àÐr2   c                   óþ  — e Zd ZdZefdee         deddfd„Ze	de
ee         ee         f         fd„¦   «         Ze	dee         fd„¦   «         Ze	dee         fd	„¦   «         Ze	defd
„¦   «         Zd d„Zdee         ddfd„Zdedeee                  fd„Zdee         deddfd„Zdee         dee         deeef         deedef                  fd„Z	 d!de
ee         ee         f         dee         ddfd„Ze	deeef         fd„¦   «         Zdeddfd„Z deeee!         ee"         f         fd„Z#deeee!         ee"         f         fd„Z$dedee         fd„Z%dedee&e                  fd„Z'd d„Z(de)de)fd„Z*dS )"r)   aB  An object encapsulating the state of an HTTP connection.

    Args:
        our_role: If you're implementing a client, pass :data:`h11.CLIENT`. If
            you're implementing a server, pass :data:`h11.SERVER`.

        max_incomplete_event_size (int):
            The maximum number of bytes we're willing to buffer of an
            incomplete event. In practice this mostly sets a limit on the
            maximum size of the request/response line + headers. If this is
            exceeded, then :meth:`next_event` will raise
            :exc:`RemoteProtocolError`.

    Úour_roleÚmax_incomplete_event_sizer8   Nc                 óê  — || _         |t          t          fvr"t          d                     |¦  «        ¦  «        ‚|| _        |  |t          u rt          | _        nt          | _        t          ¦   «         | _        |  	                    | j        d t          ¦  «        | _        |  	                    | j        d t          ¦  «        | _        t          ¦   «         | _        d| _        d | _        d | _        d| _        d S )Nz#expected CLIENT or SERVER, not {!r}F)Ú_max_incomplete_event_sizer   r"   Ú
ValueErrorÚformatrV   Ú
their_roler   Ú_cstateÚ_get_io_objectr'   Ú_writerr   Ú_readerr   Ú_receive_bufferÚ_receive_buffer_closedÚtheir_http_versionÚ_request_methodÚ"client_is_waiting_for_100_continue)ÚselfrV   rW   s      r3   Ú__init__zConnection.__init__›   sá   € ð
 +DˆÔ'à�F¥FÐ+Ð+Ð+ÝÐB×IÒIÈ(ÑSÔSÑTÔTÐTØ ˆŒØÐ'Ø•vÐÐÝ$ˆDŒOˆOå$ˆDŒOÝ&Ñ(Ô(ˆŒð ×*Ò*¨4¬=¸$ÅÑHÔHˆŒØ×*Ò*¨4¬?¸DÅ'ÑJÔJˆŒõ  -™œˆÔð ',ˆÔ#ð 48ˆÔØ04ˆÔð 38ˆÔ/Ð/Ð/r2   c                 ó4   — t          | j        j        ¦  «        S )z‰A dictionary like::

           {CLIENT: <client state>, SERVER: <server state>}

        See :ref:`state-machine` for details.

        )Údictr]   Ústates©rf   s    r3   rj   zConnection.statesÂ   s   € õ �D”LÔ'Ñ(Ô(Ð(r2   c                 ó0   — | j         j        | j                 S )zjThe current state of whichever role we are playing. See
        :ref:`state-machine` for details.
        )r]   rj   rV   rk   s    r3   Ú	our_statezConnection.our_stateÍ   s   € ð
 Œ|Ô" 4¤=Ô1Ð1r2   c                 ó0   — | j         j        | j                 S )znThe current state of whichever role we are NOT playing. See
        :ref:`state-machine` for details.
        )r]   rj   r\   rk   s    r3   Útheir_statezConnection.their_stateÔ   s   € ð
 Œ|Ô" 4¤?Ô3Ð3r2   c                 ó,   — | j         t          u o| j        S ©N)r\   r   re   rk   s    r3   Ú!they_are_waiting_for_100_continuez,Connection.they_are_waiting_for_100_continueÛ   s   € àŒ¥&Ð(ÐT¨TÔ-TÐTr2   c                 ó´   — t          | j        j        ¦  «        }| j                             ¦   «          d| _        | j        rJ ‚|                      |¦  «         dS )a�  Attempt to reset our connection state for a new request/response
        cycle.

        If both client and server are in :data:`DONE` state, then resets them
        both to :data:`IDLE` state in preparation for a new request/response
        cycle on this same connection. Otherwise, raises a
        :exc:`LocalProtocolError`.

        See :ref:`keepalive-and-pipelining`.

        N)ri   r]   rj   Ústart_next_cyclerd   re   Ú_respond_to_state_changes)rf   Ú
old_statess     r3   rt   zConnection.start_next_cycleß   s]   € õ ˜$œ,Ô-Ñ.Ô.ˆ
ØŒ×%Ò%Ñ'Ô'Ð'Ø#ˆÔð Ô:Ð:Ð:Ð:Ø×&Ò& zÑ2Ô2Ð2Ð2Ð2r2   Úrolec                 ó–   — t          | j        j        ¦  «        }| j                             |¦  «         |                      |¦  «         d S rq   )ri   r]   rj   Úprocess_errorru   )rf   rw   rv   s      r3   Ú_process_errorzConnection._process_erroró   sD   € Ý˜$œ,Ô-Ñ.Ô.ˆ
ØŒ×"Ò" 4Ñ(Ô(Ð(Ø×&Ò& zÑ2Ô2Ð2Ð2Ð2r2   r7   c                 óà   — t          |¦  «        t          u r|j        dk    rt          S t          |¦  «        t          u r/t
          | j        j        v rd|j        cxk    rdk     r
n nt
          S d S )Née   rG   rH   )rO   r   rP   r   r   r   r]   Úpending_switch_proposals)rf   r7   s     r3   Ú_server_switch_eventzConnection._server_switch_eventø   sx   € Ý�‰;Œ;Õ/Ð/Ð/°EÔ4EÈÒ4LÐ4LÝ"Ð"Ý�‰;Œ;�(Ð"Ð"å 4¤<Ô#HÐHÐHØ˜5Ô,Ð2Ð2Ò2Ð2¨sÒ2Ð2Ð2Ð2Ð2å&Ð&Øˆtr2   c                 óÌ  — t          | j        j        ¦  «        }|t          u rtt	          |¦  «        t
          u r^|j        dk    r| j                             t          ¦  «         t          |j
        d¦  «        r| j                             t          ¦  «         d }|t          u r|                      |¦  «        }| j                             |t	          |¦  «        |¦  «         t	          |¦  «        t
          u r|j        | _        || j        u r\t	          |¦  «        t
          t"          t$          fv r9t'          t(          t
          t"          t$          f         |¦  «        }|j        | _        t	          |¦  «        t
          t"          fv rMt/          t'          t(          t
          t"          f         |¦  «        ¦  «        s| j                             ¦   «          t	          |¦  «        t
          u rt3          |¦  «        rd| _        t	          |¦  «        t$          t"          fv rd| _        |t          u r$t	          |¦  «        t6          t8          fv rd| _        |                      ||¦  «         d S )NrF   s   upgradeTF)ri   r]   rj   r   rO   r   ÚmethodÚprocess_client_switch_proposalr   r   r>   r   r"   r~   Úprocess_eventrd   r\   r   r   r   r   r<   rc   rA   Úprocess_keep_alive_disabledr   re   r   r   ru   )rf   rw   r7   rv   Úserver_switch_events        r3   Ú_process_eventzConnection._process_event  s  € õ ˜$œ,Ô-Ñ.Ô.ˆ
Ø•6ˆ>ˆ>�d 5™kœk­WÐ4Ð4ØŒ|˜zÒ)Ð)Ø”×;Ò;½OÑLÔLÐLÝ ¤¨zÑ:Ô:ð MØ”×;Ò;½OÑLÔLÐLØ"ÐØ•6ˆ>ˆ>Ø"&×";Ò";¸EÑ"BÔ"BÐØŒ×"Ò" 4­¨e©¬Ð6IÑJÔJÐJõ �‰;Œ;�'Ð!Ð!Ø#(¤<ˆDÔ à�4”?Ð"Ð"¥t¨E¡{¤{ÝÝÝ!ð7
ð (
ð (
õ
 ��w­Õ2GÐGÔHÈ%ÑPÔPˆEØ&+Ô&8ˆDÔ#õ �‰;Œ;�7¥HÐ-Ð-Ð-µkÝ••w¥Ð(Ô)¨5Ñ1Ô1ñ7
ô 7
Ð-ð ŒL×4Ò4Ñ6Ô6Ð6õ �‰;Œ;�'Ð!Ð!Õ&=¸eÑ&DÔ&DÐ!Ø6:ˆDÔ3Ý�‰;Œ;Õ0µ(Ð;Ð;Ð;Ø6;ˆDÔ3Ø•6ˆ>ˆ>�d 5™kœk­dµLÐ-AÐAÐAØ6;ˆDÔ3à×&Ò& z°5Ñ9Ô9Ð9Ð9Ð9r2   Úio_dict.c                 ó2  — | j         j        |         }|t          u rft          t	          t
          | j        ¦  «        t	          t          t          t          f         |¦  «        ¦  «        \  }} |t                   |         |Ž S | 
                    ||f¦  «        S rq   )r]   rj   r!   rT   r   Úbytesrd   r   r   r   Úget)rf   rw   r7   r†   ÚstateÚframing_typeÚargss          r3   r^   zConnection._get_io_object4  sŒ   € ð ”Ô# DÔ)ˆØ•IÐÐõ "/Ý•U˜DÔ0Ñ1Ô1µ4½½gÅxÐ>OÔ8PÐRWÑ3XÔ3Xñ"ô "ÑˆL˜$ð 4�7�9Ô% lÔ3°TÐ:Ð:ð —;’;  e˜}Ñ-Ô-Ð-r2   rv   c                 óú   — | j         || j                 k    r&|                      | j        |t          ¦  «        | _        | j        || j                 k    r(|                      | j        |t          ¦  «        | _        d S d S rq   )	rm   rV   r^   r'   r_   ro   r\   r   r`   )rf   rv   r7   s      r3   ru   z$Connection._respond_to_state_changesJ  so   € ð Œ>˜Z¨¬Ô6Ò6Ð6Ø×.Ò.¨t¬}¸eÅWÑMÔMˆDŒLØÔ˜z¨$¬/Ô:Ò:Ð:Ø×.Ò.¨t¬ÀÅwÑOÔOˆDŒLˆLˆLð ;Ð:r2   c                 ó8   — t          | j        ¦  «        | j        fS )ab  Data that has been received, but not yet processed, represented as
        a tuple with two elements, where the first is a byte-string containing
        the unprocessed data itself, and the second is a bool that is True if
        the receive connection was closed.

        See :ref:`switching-protocols` for discussion of why you'd want this.
        )rˆ   ra   rb   rk   s    r3   Útrailing_datazConnection.trailing_dataU  s   € õ �dÔ*Ñ+Ô+¨TÔ-HÐIÐIr2   Údatac                 óh   — |r(| j         rt          d¦  «        ‚| xj        |z  c_        dS d| _         dS )aØ  Add data to our internal receive buffer.

        This does not actually do any processing on the data, just stores
        it. To trigger processing, you have to call :meth:`next_event`.

        Args:
            data (:term:`bytes-like object`):
                The new data that was just received.

                Special case: If *data* is an empty byte-string like ``b""``,
                then this indicates that the remote side has closed the
                connection (end of file). Normally this is convenient, because
                standard Python APIs like :meth:`file.read` or
                :meth:`socket.recv` use ``b""`` to indicate end-of-file, while
                other failures to read are indicated using other mechanisms
                like raising :exc:`TimeoutError`. When using such an API you
                can just blindly pass through whatever you get from ``read``
                to :meth:`receive_data`, and everything will work.

                But, if you have an API where reading an empty string is a
                valid non-EOF condition, then you need to be aware of this and
                make sure to check for such strings and avoid passing them to
                :meth:`receive_data`.

        Returns:
            Nothing, but after calling this you should call :meth:`next_event`
            to parse the newly received data.

        Raises:
            RuntimeError:
                Raised if you pass an empty *data*, indicating EOF, and then
                pass a non-empty *data*, indicating more data that somehow
                arrived after the EOF.

                (Calling ``receive_data(b"")`` multiple times is fine,
                and equivalent to calling it once.)

        z(received close, then received more data?TN)rb   ÚRuntimeErrorra   )rf   r�   s     r3   Úreceive_datazConnection.receive_data`  sP   € ðN ð 	/ØÔ*ð OÝ"Ð#MÑNÔNÐNØÐ Ô  DÑ(Ð Ô Ð Ð à*.ˆDÔ'Ð'Ð'r2   c                 óf  — | j         }|t          u r| j        rt          S |t          u s	|t
          u rt          S | j        €J ‚|                      | j        ¦  «        }|€K| j        sD| j        r=t          | j        d¦  «        r| j         	                    ¦   «         }nt          ¦   «         }|€t          }|S )NÚread_eof)ro   r   ra   r+   r    r#   r`   rb   Úhasattrr•   r   r*   )rf   rŠ   r7   s      r3   Ú_extract_next_receive_eventz&Connection._extract_next_receive_eventŽ  sÀ   € ð Ô ˆð
 •Dˆ=ˆ=˜TÔ1ˆ=ÝˆMØÕ)Ð)Ð)¨UÕ6GÐ-GÐ-GÝˆMØŒ|Ð'Ð'Ð'Ø—’˜TÔ1Ñ2Ô2ˆØˆ=ØÔ'ð /¨DÔ,Gð /õ
 ˜4œ<¨Ñ4Ô4ð /Ø œL×1Ò1Ñ3Ô3�E�Eå,Ñ.Ô.�EØˆ=ÝˆEØˆr2   c                 ó:  — | j         t          u rt          d¦  «        ‚	 |                      ¦   «         }|t          t
          fvr.|                      | j        t          t          |¦  «        ¦  «         |t          u rDt          | j        ¦  «        | j        k    rt          dd¬¦  «        ‚| j        rt          d¦  «        ‚|S # t          $ rP}|                      | j        ¦  «         t!          |t"          ¦  «        r|                     ¦   «          n‚ Y d}~dS d}~ww xY w)aF  Parse the next event out of our receive buffer, update our internal
        state, and return it.

        This is a mutating operation -- think of it like calling :func:`next`
        on an iterator.

        Returns:
            : One of three things:

            1) An event object -- see :ref:`events`.

            2) The special constant :data:`NEED_DATA`, which indicates that
               you need to read more data from your socket and pass it to
               :meth:`receive_data` before this method will be able to return
               any more events.

            3) The special constant :data:`PAUSED`, which indicates that we
               are not in a state where we can process incoming data (usually
               because the peer has finished their part of the current
               request/response cycle, and you have not yet called
               :meth:`start_next_cycle`). See :ref:`flow-control` for details.

        Raises:
            RemoteProtocolError:
                The peer has misbehaved. You should close the connection
                (possibly after sending some kind of 4xx response).

        Once this method returns :class:`ConnectionClosed` once, then all
        subsequent calls will also return :class:`ConnectionClosed`.

        If this method raises any exception besides :exc:`RemoteProtocolError`
        then that's a bug -- if it happens please file a bug report!

        If this method raises any exception then it also sets
        :attr:`Connection.their_state` to :data:`ERROR` -- see
        :ref:`error-handling` for discussion.

        z+Can't receive data when peer state is ERRORzReceive buffer too longi¯  )Úerror_status_hintz#peer unexpectedly closed connectionN)ro   r   r%   r—   r*   r+   r…   r\   r   r   Úlenra   rY   rb   ÚBaseExceptionrz   Ú
isinstancer$   Ú!_reraise_as_remote_protocol_error)rf   r7   Úexcs      r3   Ú
next_eventzConnection.next_eventª  sD  € ðP Ô�uÐ$Ð$Ý%Ð&SÑTÔTÐTð	Ø×4Ò4Ñ6Ô6ˆEØ�Y­Ð/Ð/Ð/Ø×#Ò# D¤OµT½%ÀÑ5GÔ5GÑHÔHÐHØ�	Ð!Ð!Ý�tÔ+Ñ,Ô,¨tÔ/NÒNÐNõ .Ø1ÀSðñ ô ð ð Ô.ð Uõ .Ð.SÑTÔTÐTØˆLøÝð 	ð 	ð 	Ø×Ò ¤Ñ0Ô0Ð0Ý˜#Õ1Ñ2Ô2ð Ø×5Ò5Ñ7Ô7Ð7Ð7àð 8Ð7Ð7Ð7Ð7Ð7øøøøð	øøøs   ŸB C  Ã 
DÃ
ADÄDc                 ó^   — |                       |¦  «        }|€dS d                     |¦  «        S )a³  Convert a high-level event into bytes that can be sent to the peer,
        while updating our internal state machine.

        Args:
            event: The :ref:`event <events>` to send.

        Returns:
            If ``type(event) is ConnectionClosed``, then returns
            ``None``. Otherwise, returns a :term:`bytes-like object`.

        Raises:
            LocalProtocolError:
                Sending this event at this time would violate our
                understanding of the HTTP/1.1 protocol.

        If this method raises any exception then it also sets
        :attr:`Connection.our_state` to :data:`ERROR` -- see
        :ref:`error-handling` for discussion.

        Nr2   )Úsend_with_data_passthroughÚjoin)rf   r7   Ú	data_lists      r3   ÚsendzConnection.sendë  s4   € ð* ×3Ò3°EÑ:Ô:ˆ	ØÐØ�4à—8’8˜IÑ&Ô&Ð&r2   c                 óz  — | j         t          u rt          d¦  «        ‚	 t          |¦  «        t          u r|                      |¦  «        }| j        }|                      | j        |¦  «         t          |¦  «        t          u rdS |€J ‚g } |||j
        ¦  «         |S #  |                      | j        ¦  «         ‚ xY w)ah  Identical to :meth:`send`, except that in situations where
        :meth:`send` returns a single :term:`bytes-like object`, this instead
        returns a list of them -- and when sending a :class:`Data` event, this
        list is guaranteed to contain the exact object you passed in as
        :attr:`Data.data`. See :ref:`sendfile` for discussion.

        z'Can't send data when our state is ERRORN)rm   r   r$   rO   r   Ú&_clean_up_response_headers_for_sendingr_   r…   rV   r   Úappendrz   )rf   r7   Úwriterr£   s       r3   r¡   z%Connection.send_with_data_passthrough  sÑ   € ð Œ>�UÐ"Ð"Ý$Ð%NÑOÔOÐOð	Ý�E‰{Œ{�hÐ&Ð&Ø×CÒCÀEÑJÔJ�ð ”\ˆFØ×Ò ¤¨uÑ5Ô5Ð5Ý�E‰{Œ{Õ.Ð.Ð.Ø�tð Ð)Ð)Ð)Ø)+�	Ø��u˜iÔ.Ñ/Ô/Ð/Ø Ð øð	Ø×Ò ¤Ñ.Ô.Ð.Øøøøs   ŸA#B ÂB ÂB:c                 ó:   — |                       | j        ¦  «         dS )záNotify the state machine that we failed to send the data it gave
        us.

        This causes :attr:`Connection.our_state` to immediately become
        :data:`ERROR` -- see :ref:`error-handling` for discussion.

        N)rz   rV   rk   s    r3   Úsend_failedzConnection.send_failed'  s    € ð 	×Ò˜DœMÑ*Ô*Ð*Ð*Ð*r2   Úresponsec                 óˆ  — t          |¦  «        t          u sJ ‚|j        }d}t          t          | j        ¦  «        }|dk    rd}t          ||¦  «        \  }}|dv rTt          |dg ¦  «        }| j        �| j        dk     rt          |dg ¦  «        }| j        dk    rd}nt          |dd	g¦  «        }| j	        j
        r|ret          t          |d
¦  «        ¦  «        }|                     d¦  «         |                     d¦  «         t          |d
t          |¦  «        ¦  «        }t          ||j        |j        |j        ¬¦  «        S )NFrE   s   GET)rL   rN   rM   r=   rJ   TrK   r:   s
   keep-aliver;   )r>   rP   r<   Úreason)rO   r   r>   r   rˆ   rd   rT   r   rc   r]   Ú
keep_aliveÚsetr   ÚdiscardÚaddÚsortedrP   r<   r­   )rf   r«   r>   Ú
need_closeÚmethod_for_choosing_headersr‹   Ú_r@   s           r3   r¦   z1Connection._clean_up_response_headers_for_sending@  sl  € Ý�H‰~Œ~¥Ð)Ð)Ð)Ð)àÔ"ˆØˆ
õ '+­5°$Ô2FÑ&GÔ&GÐ#Ø&¨'Ò1Ð1Ø*0Ð'Ý'Ð(CÀXÑNÔN‰ˆ�aØÐ2Ð2Ð2õ ' wÐ0AÀ2ÑFÔFˆGØÔ&Ð.°$Ô2IÈFÒ2RÐ2Rõ
 +¨7Ð4HÈ"ÑMÔM�ð
 Ô'¨7Ò2Ð2Ø!%�Jøå*¨7Ð4HÈ:È,ÑWÔW�àŒ|Ô&ð 	S¨*ð 	SåÕ-¨g°}ÑEÔEÑFÔFˆJØ×Ò˜}Ñ-Ô-Ð-Ø�NŠN˜8Ñ$Ô$Ð$Ý& w°½vÀjÑ?QÔ?QÑRÔRˆGåØØ Ô,Ø!Ô.Ø”?ð	
ñ 
ô 
ð 	
r2   )r8   Nrq   )+r.   r/   r0   Ú__doc__Ú!DEFAULT_MAX_INCOMPLETE_EVENT_SIZEr
   r&   rQ   rg   Úpropertyr   rj   rm   ro   Úboolrr   rt   rz   r   r   r~   r…   r   r   r(   r   r   r^   ru   r	   rˆ   r�   r“   r*   r+   r—   rŸ   r¤   r   r¡   rª   r   r¦   r1   r2   r3   r)   r)   ‹   sž  € € € € € ðð ð$ *Kð%8ð %8à�x”.ð%8ð $'ð%8ð 
ð	%8ð %8ð %8ð %8ðN ð)˜˜T (œ^¨T°(¬^Ð;Ô<ð )ð )ð )ñ „Xð)ð ð2˜4 œ>ð 2ð 2ð 2ñ „Xð2ð ð4˜T (œ^ð 4ð 4ð 4ñ „Xð4ð ðU°4ð Uð Uð Uñ „XðUð3ð 3ð 3ð 3ð(3 4¨¤>ð 3°dð 3ð 3ð 3ð 3ð
	¨%ð 	°H¸TÀ(¼^Ô4Lð 	ð 	ð 	ð 	ð.: 4¨¤>ð .:¸%ð .:ÀDð .:ð .:ð .:ð .:ð`.à�8Œnð.ð ˜Œð.ð �{ KÐ/Ô0ð	.ð
 
�(˜3 ˜8Ô$Ô	%ð.ð .ð .ð .ð2 "&ð	Pð 	Pà˜˜hœ¨¨h¬Ð7Ô8ð	Pð ˜Œð	Pð 
ð		Pð 	Pð 	Pð 	Pð ðJ˜u U¨D [Ô1ð Jð Jð Jñ „XðJð,/ ð ,/¨4ð ,/ð ,/ð ,/ð ,/ð\à	ˆu�d˜9”o t¨F¤|Ð3Ô	4ðð ð ð ð8?˜E %¨¨i¬¸$¸v¼,Ð"FÔGð ?ð ?ð ?ð ?ðB'˜%ð ' H¨U¤Oð 'ð 'ð 'ð 'ð6°ð ¸(À4ÈÄ;Ô:Oð ð ð ð ðB+ð +ð +ð +ð29
¸xð 9
ÈHð 9
ð 9
ð 9
ð 9
ð 9
ð 9
r2   r)   N)8Útypingr   r   r   r   r   r   r	   r
   r   Ú_eventsr   r   r   r   r   r   r   Ú_headersr   r   r   Ú_readersr   r   Ú_receivebufferr   Ú_stater   r   r   r   r   r   r    r!   r"   r#   Ú_utilr$   r%   r&   Ú_writersr'   r(   Ú__all__r*   r+   r·   r¹   rA   rˆ   ÚstrrQ   rT   r)   r1   r2   r3   ú<module>rÄ      så  ðð QÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ Pðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð RÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 +Ð *Ð *Ð *Ð *Ð *Ð *Ð *ð 0Ð
/Ð
/€ð	ð 	ð 	ð 	ð 	� Hð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ˆX ð 	ñ 	ô 	ð 	ð %.Ð !ð�u˜W hÐ.Ô/ð °Dð ð ð ð ð0 Øð0 Ø"'¨°Ð(9Ô":ð0 à
ˆ3��e˜B”i  s¤Ð+Ô,Ð,Ô-ð0 ð 0 ð 0 ð 0 ðtn
ð n
ð n
ð n
ð n
ñ n
ô n
ð n
ð n
ð n
r2   