Ë
    $Æ%h!  ã                  óþ   — 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"y)é    )ÚannotationsNé   )ÚAutoBackend)ÚSOCKET_OPTIONÚAsyncNetworkBackendÚAsyncNetworkStream)ÚConnectErrorÚConnectTimeout)ÚOriginÚRequestÚResponse)Údefault_ssl_context)Ú	AsyncLock)ÚTraceé   )ÚAsyncHTTP11Connection)ÚAsyncConnectionInterfaceg      à?zhttpcore.connectionc              #  óZ   K  — d–— t        j                  «       D ]  }| d|z  z  –— Œ y­w)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)ÚfactorÚns     úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/httpcore/_async/connection.pyÚexponential_backoffr      s1   è ø€ ð ‚GÜ�_‰_Óò ˆØ�q˜!‘t‰mÓñùs   ‚)+c                  óÈ   — e Zd Z	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 dd„Zy)ÚAsyncHTTPConnectionNc                óâ   — || _         || _        || _        || _        || _        || _        || _        || _        |	€
t        «       n|	| _	        d | _
        d| _        t        «       | _        |
| _        y )NF)Ú_originÚ_ssl_contextÚ_keepalive_expiryÚ_http1Ú_http2Ú_retriesÚ_local_addressÚ_udsr   Ú_network_backendÚ_connectionÚ_connect_failedr   Ú_request_lockÚ_socket_options)ÚselfÚoriginÚssl_contextÚkeepalive_expiryÚhttp1Úhttp2ÚretriesÚlocal_addressÚudsÚnetwork_backendÚsocket_optionss              r   Ú__init__zAsyncHTTPConnection.__init__'   sz   € ð ˆŒØ'ˆÔØ!1ˆÔØˆŒØˆŒØˆŒØ+ˆÔØˆŒ	ð -Ð4ŒKŒM¸/ð 	Ôð =AˆÔØ%*ˆÔÜ&›[ˆÔØ-ˆÕó    c              ƒ  ó(  K  — | j                  |j                  j                  «      s/t        d|j                  j                  › d| j                  › �«      ‚	 | j
                  4 ƒd {  –—†  | j                  €¯| j                  |«      ƒ d {  –—† }|j                  d«      }|d uxr |j                  «       dk(  }|s| j                  r7| j                  s+ddlm}  || j                  || j                  ¬«      | _        n't        | j                  || j                  ¬«      | _        d d d «      ƒd {  –—†  | j                  j%                  |«      ƒ d {  –—† S 7 Œò7 ŒÏ7 Œ+# 1 ƒd {  –—†7  sw Y   Œ;xY w# t         $ r}d| _        |‚d }~ww xY w7 Œ9­w)	NzAttempted to send request to z on connection to Ú
ssl_objectÚh2r   )ÚAsyncHTTP2Connection)r,   Ústreamr.   T)Úcan_handle_requestÚurlr,   ÚRuntimeErrorr   r)   r'   Ú_connectÚget_extra_infoÚselected_alpn_protocolr"   r!   r0   r;   r    r   ÚBaseExceptionr(   Úhandle_async_request)r+   Úrequestr<   r9   Úhttp2_negotiatedr;   Úexcs          r   rD   z(AsyncHTTPConnection.handle_async_requestE   sy  è ø€ Ø×&Ñ& w§{¡{×'9Ñ'9Ô:ÜØ/°·±×0BÑ0BÐ/CÐCUÐVZ×VbÑVbÐUcÐdóð ð	Ø×)Ñ)÷ ñ Ø×#Ñ#Ð+Ø#'§=¡=°Ó#9×9�Fà!'×!6Ñ!6°|Ó!D�Jà"¨$Ð.ò HØ&×=Ñ=Ó?À4ÑGð %ñ (¨D¯KªKÀÇÂÝ?á+?Ø#'§<¡<Ø#)Ø-1×-CÑ-Cô,˜Õ(ô ,AØ#'§<¡<Ø#)Ø-1×-CÑ-Cô,˜Ô(÷%÷ ð6 ×%Ñ%×:Ñ:¸7ÓC×CÐCð7øà9øðø÷ ÷ ñ ûô. ò 	Ø#'ˆDÔ ØˆIûð	úð Dús‘   ‚AFÁE6 Á(EÁ)E6 Á,!E!ÂEÂBE!Ä(E6 Ä3EÄ4E6 Ä8FÅFÅFÅE6 ÅE!ÅE6 Å!E3Å'E*Å(E3Å/E6 Å6	FÅ?	FÆFÆFc              ƒ  ó¶  K  — |j                   j                  di «      }|j                   j                  dd «      }|j                  dd «      }| j                  }t        t        ¬«      }	 	 | j
                  €ª| j                  j                  j                  d«      | j                  j                  | j                  || j                  dœ}t        dt        ||«      4 ƒd {  –—† } | j                  j                  di |¤Žƒ d {  –—† }	|	|_        d d d «      ƒd {  –—†  np| j
                  || j                  dœ}t        d	t        ||«      4 ƒd {  –—† } | j                  j"                  di |¤Žƒ d {  –—† }	|	|_        d d d «      ƒd {  –—†  | j                  j$                  d
v rÁ| j&                  €
t)        «       n| j&                  }
| j*                  rddgndg}|
j-                  |«       |
|xs% | j                  j                  j                  d«      |dœ}t        dt        ||«      4 ƒd {  –—† } 	j.                  di |¤Žƒ d {  –—† }	|	|_        d d d «      ƒd {  –—†  |	S 	S 7 �ŒŒ7 �Œk7 �ŒW# 1 ƒd {  –—†7  sw Y   ŒöxY w7 �Œ97 �Œ7 �Œ# 1 ƒd {  –—†7  sw Y   �ŒxY w7 Œv7 Œ^7 ŒI# 1 ƒd {  –—†7  sw Y   	S xY w# t0        t2        f$ r€ |dk  r‚ |dz  }t5        |«      }t        dt        |«      4 ƒd {  –—†7  }| j                  j7                  |«      ƒ d {  –—†7   d d d «      ƒd {  –—†7   n# 1 ƒd {  –—†7  sw Y   nxY wY nw xY w�Œï­w)NÚtimeoutÚsni_hostnameÚconnect)r   Úascii)ÚhostÚportr2   rI   r5   Úconnect_tcp)ÚpathrI   r5   Úconnect_unix_socket)ó   httpss   wsszhttp/1.1r:   )r-   Úserver_hostnamerI   Ú	start_tlsr   r   Úretry© )Ú
extensionsÚgetr#   r   ÚRETRIES_BACKOFF_FACTORr%   r   rM   ÚdecoderN   r$   r*   r   Úloggerr&   rO   Úreturn_valuerQ   Úschemer   r   r"   Úset_alpn_protocolsrT   r	   r
   ÚnextÚsleep)r+   rE   ÚtimeoutsrJ   rI   Úretries_leftÚdelaysÚkwargsÚtracer<   r-   Úalpn_protocolsÚdelays                r   r@   zAsyncHTTPConnection._connecti   sA  è ø€ Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ×)Ñ)×-Ñ-¨n¸dÓCˆØ—,‘,˜y¨$Ó/ˆà—}‘}ˆÜ$Ô,BÔCˆàð3=Ø—9‘9Ð$à $§¡× 1Ñ 1× 8Ñ 8¸Ó AØ $§¡× 1Ñ 1Ø)-×)<Ñ)<Ø#*Ø*.×*>Ñ*>ñ�Fô  % ]´F¸GÀVÓL÷ 4ð 4ÐPUØ'H t×'<Ñ'<×'HÑ'HÑ'RÈ6Ñ'R×!R˜Ø-3˜Ô*÷4÷ 4ð 4ð
 !%§	¡	Ø#*Ø*.×*>Ñ*>ñ�Fô
  %Ø-¬v°wÀó ÷ 4ð 4àØ'P t×'<Ñ'<×'PÑ'Pñ (Ø$ñ(÷ "˜ð .4˜Ô*÷4÷ 4ð —<‘<×&Ñ&Ð*<Ñ<ð  ×,Ñ,Ð4ô ,Ô-à!×.Ñ.ð  ð
 <@¿;º; j°$Ñ%7ÈZÈL�NØ×2Ñ2°>ÔBð (3Ø+7ò ,=ØŸ<™<×,Ñ,×3Ñ3°GÓ<Ø#*ñ	�Fô  % [´&¸'À6ÓJ÷ 4ð 4ÈeØ'7 v×'7Ñ'7Ñ'A¸&Ñ'A×!A˜Ø-3˜Ô*÷4÷ 4ð ��v�ðG4ùØ!Rùð4ù÷ 4÷ 4ñ 4úð4ùð"ùð4ù÷ 4÷ 4ò 4úð.4øØ!Aøð4ø÷ 4÷ 4ð 4ð �ûÜ ¤.Ð1ò =Ø 1Ò$ØØ Ñ!�Ü˜V›�Ü  ¬&°'¸6ÓB÷ =ñ =ÀeØ×/Ñ/×5Ñ5°eÓ<×<Ñ<÷=÷ =÷ =÷ =ó =üð=úñ] ùsŽ  ‚A(MÁ+A5K Ã I,Ã!K Ã$ I5ÄI/ÄI5ÄK ÄI2Ä5K ÅJ
ÅK Å JÅ5JÅ6JÆK ÆJÆB%K È2J)È3K È6J/ÉJ+ÉJ/ÉK É#J-É$K É)MÉ*K É+MÉ,K É/I5É2K É5JÉ;I>É<JÊK ÊJÊK ÊJ&ÊJÊJ&Ê!	K Ê+J/Ê-K Ê/KÊ5J8Ê6KÊ=K ËMËK Ë;MÌ LÌMÌL<Ì$L'Ì%L<Ì*MÌ5L8Ì6MÌ<M	ÍMÍM	Í
MÍMÍMÍMc                ó    — || j                   k(  S ©N)r   )r+   r,   s     r   r=   z&AsyncHTTPConnection.can_handle_request§   s   € Ø˜Ÿ™Ñ%Ð%r7   c              ƒ  óö   K  — | j                   �Nt        dt        d i «      4 ƒd {  –—†  | j                   j                  «       ƒ d {  –—†  d d d «      ƒd {  –—†  y y 7 Œ87 Œ7 Œ
# 1 ƒd {  –—†7  sw Y   y xY w­w)NÚclose)r'   r   r[   Úaclose©r+   s    r   rl   zAsyncHTTPConnection.acloseª   su   è ø€ Ø×ÑÐ'Ü˜W¤f¨d°BÓ7÷ 0ñ 0Ø×&Ñ&×-Ñ-Ó/×/Ð/÷0÷ 0ð 0ð (ð0øØ/øð0ø÷ 0÷ 0ñ 0üsV   ‚#A9¥A¦A9©A$ÁA ÁA$ÁA9ÁA"ÁA9Á A$Á"A9Á$A6Á*A-Á+A6Á2A9c                óØ   — | j                   €E| j                  xr7 | j                  j                  dk(  xs | j                   xr | j
                   S | j                   j                  «       S )NrR   )r'   r"   r   r]   r!   r(   Úis_availablerm   s    r   ro   z AsyncHTTPConnection.is_available¯   sf   € Ø×ÑÐ#ð
 —‘ò -Ø—\‘\×(Ñ(¨HÑ4ÒG¸D¿K¹K¸ò-à×,Ñ,Ð,ðð
 ×Ñ×,Ñ,Ó.Ð.r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Úhas_expiredrm   s    r   rq   zAsyncHTTPConnection.has_expired»   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×+Ñ+Ó-Ð-r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Úis_idlerm   s    r   rs   zAsyncHTTPConnection.is_idleÀ   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×'Ñ'Ó)Ð)r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Ú	is_closedrm   s    r   ru   zAsyncHTTPConnection.is_closedÅ   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×)Ñ)Ó+Ð+r7   c                ón   — | j                   €| j                  rdS dS | j                   j                  «       S )NzCONNECTION FAILEDÚ
CONNECTING)r'   r(   Úinform   s    r   rx   zAsyncHTTPConnection.infoÊ   s7   € Ø×ÑÐ#Ø*.×*>Ò*>Ð&ÐPÀLÐPØ×Ñ×$Ñ$Ó&Ð&r7   c                óX   — d| j                   j                  › d| j                  «       › d�S )Nú<z [z]>)Ú	__class__Ú__name__rx   rm   s    r   Ú__repr__zAsyncHTTPConnection.__repr__Ï   s(   € Ø�4—>‘>×*Ñ*Ð+¨2¨d¯i©i«k¨]¸"Ð=Ð=r7   c              ƒ  ó   K  — | S ­wri   rV   rm   s    r   Ú
__aenter__zAsyncHTTPConnection.__aenter__Õ   s   è ø€ Øˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wri   )rl   )r+   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú	__aexit__zAsyncHTTPConnection.__aexit__Ø   s   è ø€ ð �k‰k‹m×Òús   ‚–—)	NNTFr   NNNN)r,   r   r-   zssl.SSLContext | Noner.   zfloat | Noner/   Úboolr0   r…   r1   Úintr2   ú
str | Noner3   r‡   r4   zAsyncNetworkBackend | Noner5   z%typing.Iterable[SOCKET_OPTION] | NoneÚreturnÚNone)rE   r   rˆ   r   )rE   r   rˆ   r   )r,   r   rˆ   r…   )rˆ   r‰   )rˆ   r…   )rˆ   Ústr)rˆ   r   )NNN)r�   ztype[BaseException] | Noner‚   zBaseException | Nonerƒ   ztypes.TracebackType | Nonerˆ   r‰   )r|   Ú
__module__Ú__qualname__r6   rD   r@   r=   rl   ro   rq   rs   ru   rx   r}   r   r„   rV   r7   r   r   r   &   s   „ ð .2Ø)-ØØØØ$(ØØ6:Ø@Dð.àð.ð +ð.ð 'ð	.ð
 ð.ð ð.ð ð.ð "ð.ð ð.ð 4ð.ð >ð.ð 
ó.ó<"DóH<=ó|&ó0ó

/ó.ó
*ó
,ó
'ó
>óð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
ôr7   r   )r   Úfloatrˆ   ztyping.Iterator[float])#Ú
__future__r   r   ÚloggingÚsslÚtypesÚtypingÚ_backends.autor   Ú_backends.baser   r   r   Ú_exceptionsr	   r
   Ú_modelsr   r   r   Ú_sslr   Ú_synchronizationr   Ú_tracer   Úhttp11r   Ú
interfacesr   rY   Ú	getLoggerr[   r   r   rV   r7   r   ú<module>r�      sg   ðÝ "ã Û Û 
Û Û å (ß SÑ Sß 6ß /Ñ /Ý &Ý (Ý Ý )Ý 0àÐ ð 
ˆ×	Ñ	Ð0Ó	1€ó
ôxÐ2õ xr7   