§
    ÏÁ³g!  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlZd dlZddlmZ ddl	m
Z
mZmZ ddlmZmZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ dZ ej        d¦  «        Z dd„Z! G d„ de¦  «        Z"dS )é    )ÚannotationsNé   )ÚAutoBackend)ÚSOCKET_OPTIONÚAsyncNetworkBackendÚAsyncNetworkStream)ÚConnectErrorÚConnectTimeout)ÚOriginÚRequestÚResponse)Údefault_ssl_context)Ú	AsyncLock)ÚTraceé   )ÚAsyncHTTP11Connection)ÚAsyncConnectionInterfaceg      à?zhttpcore.connectionÚfactorÚfloatÚreturnútyping.Iterator[float]c              #  óR   K  — dV — t          j        ¦   «         D ]}| d|z  z  V — ŒdS )zÇ
    Generate a geometric sequence that has a ratio of 2 and starts with 0.

    For example:
    - `factor = 2`: `0, 2, 4, 8, 16, 32, 64, ...`
    - `factor = 3`: `0, 3, 6, 12, 24, 48, 96, ...`
    r   r   N)Ú	itertoolsÚcount)r   Úns     úX/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/httpcore/_async/connection.pyÚexponential_backoffr      sI   è è € ð €G€G€GÝŒ_ÑÔð ð ˆØ�q˜!‘t‰mÐÐÐÐðð ó    c                  ó’   — e Zd Z	 	 	 	 	 	 	 	 	 d1d2d„Zd3d„Zd4d„Zd5d „Zd6d!„Zd7d"„Zd7d#„Z	d7d$„Z
d7d%„Zd8d'„Zd8d(„Zd9d)„Z	 	 	 d:d;d0„ZdS )<ÚAsyncHTTPConnectionNTFr   Úoriginr   Ússl_contextússl.SSLContext | NoneÚkeepalive_expiryúfloat | NoneÚhttp1ÚboolÚhttp2ÚretriesÚintÚlocal_addressú
str | NoneÚudsÚnetwork_backendúAsyncNetworkBackend | NoneÚsocket_optionsú%typing.Iterable[SOCKET_OPTION] | Noner   ÚNonec                óô   — || _         || _        || _        || _        || _        || _        || _        || _        |	€t          ¦   «         n|	| _	        d | _
        d| _        t          ¦   «         | _        |
| _        d S )NF)Ú_originÚ_ssl_contextÚ_keepalive_expiryÚ_http1Ú_http2Ú_retriesÚ_local_addressÚ_udsr   Ú_network_backendÚ_connectionÚ_connect_failedr   Ú_request_lockÚ_socket_options)Úselfr!   r"   r$   r&   r(   r)   r+   r-   r.   r0   s              r   Ú__init__zAsyncHTTPConnection.__init__'   s†   € ð ˆŒØ'ˆÔØ!1ˆÔØˆŒØˆŒØˆŒØ+ˆÔØˆŒ	ð -Ð4�K‰MŒMˆM¸/ð 	Ôð =AˆÔØ%*ˆÔÝ&™[œ[ˆÔØ-ˆÔÐÐr   Úrequestr   r   c              ƒ  óº  K  — |                       |j        j        ¦  «        s$t          d|j        j        › d| j        › �¦  «        ‚	 | j        4 ƒd {V —† | j        €¡|                      |¦  «        ƒ d {V —†}|                     d¦  «        }|d uo| 	                    ¦   «         dk    }|s| j
        r+| j        s$ddlm}  || j        || j        ¬¦  «        | _        n!t          | j        || j        ¬¦  «        | _        	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   n# t           $ r}d| _        |‚d }~ww xY w| j                             |¦  «        ƒ d {V —†S )	NzAttempted to send request to z on connection to Ú
ssl_objectÚh2r   )ÚAsyncHTTP2Connection)r!   Ústreamr$   T)Úcan_handle_requestÚurlr!   ÚRuntimeErrorr4   r?   r=   Ú_connectÚget_extra_infoÚselected_alpn_protocolr8   r7   r(   rG   r6   r   ÚBaseExceptionr>   Úhandle_async_request)rA   rC   rH   rE   Úhttp2_negotiatedrG   Úexcs          r   rP   z(AsyncHTTPConnection.handle_async_requestE   sR  è è € Ø×&Ò& w¤{Ô'9Ñ:Ô:ð 	ÝØd°´Ô0BÐdÐdÐVZÔVbÐdÐdñô ð ð	ØÔ)ð ð ð ð ð ð ð ð ØÔ#Ð+Ø#'§=¢=°Ñ#9Ô#9Ð9Ð9Ð9Ð9Ð9Ð9�Fà!'×!6Ò!6°|Ñ!DÔ!D�Jà"¨$Ð.ð HØ&×=Ò=Ñ?Ô?À4ÒGð %ð (ð ¨D¬Kð ÀÄð Ø?Ð?Ð?Ð?Ð?Ð?à+?Ð+?Ø#'¤<Ø#)Ø-1Ô-Cð,ñ ,ô ,˜Ô(Ð(õ ,AØ#'¤<Ø#)Ø-1Ô-Cð,ñ ,ô ,˜Ô(ð ð%ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð øøõ. ð 	ð 	ð 	Ø#'ˆDÔ ØˆIøøøøð	øøøð Ô%×:Ò:¸7ÑCÔCÐCÐCÐCÐCÐCÐCÐCs=   ÁD" ÁB)DÃ>D" Ä
DÄD" ÄDÄD" Ä"
D:Ä,	D5Ä5D:r   c              ƒ  óÆ  K  — |j                              di ¦  «        }|j                              dd ¦  «        }|                     dd ¦  «        }| j        }t          t          ¬¦  «        }	 	 | j        €š| j        j                             d¦  «        | j        j	        | j
        || j        dœ}t          dt          ||¦  «        4 ƒd {V —†} | j        j        di |¤Žƒ d {V —†}	|	|_        d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   nq| j        || j        d	œ}t          d
t          ||¦  «        4 ƒd {V —†	 } | j        j        di |¤Žƒ d {V —†}	|	|_        d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   | j        j        dv r¿| j        €t)          ¦   «         n| j        }
| j        rddgndg}|
                     |¦  «         |
|p| j        j                             d¦  «        |dœ}t          dt          ||¦  «        4 ƒd {V —†} |	j        di |¤Žƒ d {V —†}	|	|_        d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   |	S # t0          t2          f$ r |dk    r‚ |dz  }t5          |¦  «        }t          dt          ||¦  «        4 ƒd {V —†}| j                             |¦  «        ƒ d {V —† d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   Y nw xY w�Œw)NÚtimeoutÚsni_hostnameÚconnect)r   TÚascii)ÚhostÚportr+   rT   r0   Úconnect_tcp)ÚpathrT   r0   Úconnect_unix_socket)ó   httpss   wsszhttp/1.1rF   )r"   Úserver_hostnamerT   Ú	start_tlsr   r   Úretry© )Ú
extensionsÚgetr9   r   ÚRETRIES_BACKOFF_FACTORr;   r4   rX   ÚdecoderY   r:   r@   r   Úloggerr<   rZ   Úreturn_valuer\   Úschemer5   r   r8   Úset_alpn_protocolsr_   r	   r
   ÚnextÚsleep)rA   rC   ÚtimeoutsrU   rT   Úretries_leftÚdelaysÚkwargsÚtracerH   r"   Úalpn_protocolsÚdelays                r   rL   zAsyncHTTPConnection._connecti   s¡  è è € ØÔ%×)Ò)¨)°RÑ8Ô8ˆØÔ)×-Ò-¨n¸dÑCÔCˆØ—,’,˜y¨$Ñ/Ô/ˆà”}ˆÝ$Õ,BÐCÑCÔCˆð4	=ð3=Ø”9Ð$à $¤Ô 1× 8Ò 8¸Ñ AÔ AØ $¤Ô 1Ø)-Ô)<Ø#*Ø*.Ô*>ðð �Fõ  % ]µF¸GÀVÑLÔLð 4ð 4ð 4ð 4ð 4ð 4ð 4ÐPUØ'H tÔ'<Ô'HÐ'RÐ'RÈ6Ð'RÐ'RÐ!RÐ!RÐ!RÐ!RÐ!RÐ!R˜Ø-3˜Ô*ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4øð
 !%¤	Ø#*Ø*.Ô*>ðð �Fõ
  %Ø-­v°wÀñ ô  ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4àØ'P tÔ'<Ô'Pð (ð (Ø$ð(ð (ð "ð "ð "ð "ð "ð "˜ð .4˜Ô*ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð ”<Ô&Ð*<Ð<Ð<ð  Ô,Ð4õ ,Ñ-Ô-Ð-à!Ô.ð  ð
 <@¼;Ð%X j°$Ð%7Ð%7ÈZÈL�NØ×2Ò2°>ÑBÔBÐBð (3Ø+7ð ,=Øœ<Ô,×3Ò3°GÑ<Ô<Ø#*ð	ð �Fõ  % [µ&¸'À6ÑJÔJð 4ð 4ð 4ð 4ð 4ð 4ð 4ÈeØ'7 vÔ'7Ð'AÐ'A¸&Ð'AÐ'AÐ!AÐ!AÐ!AÐ!AÐ!AÐ!A˜Ø-3˜Ô*ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð �øÝ ¥.Ð1ð =ð =ð =Ø 1Ò$Ð$ØØ Ñ!�Ý˜V™œ�Ý  ­&°'¸6ÑBÔBð =ð =ð =ð =ð =ð =ð =ÀeØÔ/×5Ò5°eÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =øøð=øøøñ]4	=s¥   Á-AI Ã
 C<Ã*I Ã<
DÄI Ä	DÄ
1I Ä< E.ÅI Å.
E8Å8I Å;E8Å<BI ÈH;È)I È;
IÉI ÉIÉ	I ÉA	KÊ!K
Ê8KË

K	ËKËK	ËKËKc                ó   — || j         k    S ©N)r4   )rA   r!   s     r   rI   z&AsyncHTTPConnection.can_handle_request§   s   € Ø˜œÒ%Ð%r   c              ƒ  óÞ   K  — | j         �ct          dt          d i ¦  «        4 ƒd {V —† | j                              ¦   «         ƒ d {V —† d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S d S )NÚclose)r=   r   rf   Úaclose©rA   s    r   rw   zAsyncHTTPConnection.acloseª   s  è è € ØÔÐ'Ý˜W¥f¨d°BÑ7Ô7ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ØÔ&×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0ð (Ð's   § AÁ
A$Á'A$c                ó�   — | j         €'| j        o| j        j        dk    p| j         o| j         S | j                              ¦   «         S )Nr]   )r=   r8   r4   rh   r7   r>   Úis_availablerx   s    r   rz   z AsyncHTTPConnection.is_available¯   sW   € ØÔÐ#ð
 ”ð -Ø”\Ô(¨HÒ4ÐG¸D¼K¸ð-àÔ,Ð,ðð
 Ô×,Ò,Ñ.Ô.Ð.r   c                óP   — | j         €| j        S | j                              ¦   «         S rt   )r=   r>   Úhas_expiredrx   s    r   r|   zAsyncHTTPConnection.has_expired»   s)   € ØÔÐ#ØÔ'Ð'ØÔ×+Ò+Ñ-Ô-Ð-r   c                óP   — | j         €| j        S | j                              ¦   «         S rt   )r=   r>   Úis_idlerx   s    r   r~   zAsyncHTTPConnection.is_idleÀ   s)   € ØÔÐ#ØÔ'Ð'ØÔ×'Ò'Ñ)Ô)Ð)r   c                óP   — | j         €| j        S | j                              ¦   «         S rt   )r=   r>   Ú	is_closedrx   s    r   r€   zAsyncHTTPConnection.is_closedÅ   s)   € ØÔÐ#ØÔ'Ð'ØÔ×)Ò)Ñ+Ô+Ð+r   Ústrc                óX   — | j         €| j        rdndS | j                              ¦   «         S )NzCONNECTION FAILEDÚ
CONNECTING)r=   r>   Úinforx   s    r   r„   zAsyncHTTPConnection.infoÊ   s4   € ØÔÐ#Ø*.Ô*>ÐPÐ&Ð&ÀLÐPØÔ×$Ò$Ñ&Ô&Ð&r   c                óL   — d| j         j        › d|                      ¦   «         › d�S )Nú<z [z]>)Ú	__class__Ú__name__r„   rx   s    r   Ú__repr__zAsyncHTTPConnection.__repr__Ï   s(   € Ø=�4”>Ô*Ð=Ð=¨d¯iªi©k¬kÐ=Ð=Ð=Ð=r   c              ƒ  ó
   K  — | S rt   ra   rx   s    r   Ú
__aenter__zAsyncHTTPConnection.__aenter__Õ   s   è è € Øˆr   Úexc_typeútype[BaseException] | NoneÚ	exc_valueúBaseException | NoneÚ	tracebackútypes.TracebackType | Nonec              ƒ  ó>   K  — |                       ¦   «         ƒ d {V —† d S rt   )rw   )rA   rŒ   rŽ   r�   s       r   Ú	__aexit__zAsyncHTTPConnection.__aexit__Ø   s.   è è € ð �kŠk‰mŒmÐÐÐÐÐÐÐÐÐr   )	NNTFr   NNNN)r!   r   r"   r#   r$   r%   r&   r'   r(   r'   r)   r*   r+   r,   r-   r,   r.   r/   r0   r1   r   r2   )rC   r   r   r   )rC   r   r   r   )r!   r   r   r'   )r   r2   )r   r'   )r   r�   )r   r    )NNN)rŒ   r�   rŽ   r�   r�   r‘   r   r2   )rˆ   Ú
__module__Ú__qualname__rB   rP   rL   rI   rw   rz   r|   r~   r€   r„   r‰   r‹   r“   ra   r   r   r    r    &   sP  € € € € € ð .2Ø)-ØØØØ$(ØØ6:Ø@Dð.ð .ð .ð .ð .ð<"Dð "Dð "Dð "DðH<=ð <=ð <=ð <=ð|&ð &ð &ð &ð0ð 0ð 0ð 0ð

/ð 
/ð 
/ð 
/ð.ð .ð .ð .ð
*ð *ð *ð *ð
,ð ,ð ,ð ,ð
'ð 'ð 'ð 'ð
>ð >ð >ð >ðð ð ð ð
 04Ø*.Ø04ð	ð ð ð ð ð ð r   r    )r   r   r   r   )#Ú
__future__r   r   ÚloggingÚsslÚtypesÚtypingÚ_backends.autor   Ú_backends.baser   r   r   Ú_exceptionsr	   r
   Ú_modelsr   r   r   Ú_sslr   Ú_synchronizationr   Ú_tracer   Úhttp11r   Ú
interfacesr   rd   Ú	getLoggerrf   r   r    ra   r   r   ú<module>r¥      su  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€Ø €€€à (Ð (Ð (Ð (Ð (Ð (Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø &Ð &Ð &Ð &Ð &Ð &Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0àÐ ð 
ˆÔ	Ð0Ñ	1Ô	1€ð
ð 
ð 
ð 
ðxð xð xð xð xÐ2ñ xô xð xð xð xr   