Ë
    CØïiÜÍ  ã                   óŽ  — d dl 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mZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ d dl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 m!Z!m"Z"m#Z#m$Z$m%Z% d dl&Z&d
dl'm(Z(m)Z) d
dl*m+Z+ d
dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d
dl7m8Z8 d
dl9m:Z:m;Z;m<Z< d
dl)m=Z=m>Z>m?Z?m@Z@mAZA d
dlBmCZC d
dlDmEZE 	 d dlFZFeFjŽ                  ZGdZJerd
dlKmLZL d
dl9mMZM d
dlNmOZO  G d„ d«      ZP G d„ d«      ZQ G d„ d«      ZR G d„ d«      ZS G d„ d «      ZT G d!„ d"eS«      ZU G d#„ d$eS«      ZV G d%„ d&eS«      ZWy# eH$ r dZFeIZGY Œuw xY w)'é    N)ÚdefaultdictÚdeque)Úsuppress)Ú
HTTPStatus)ÚSimpleCookie)ÚcycleÚislice)Ú	monotonic)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚDefaultDictÚDictÚIteratorÚListÚLiteralÚOptionalÚSetÚTupleÚTypeÚUnionÚcasté   )ÚhdrsÚhelpers)ÚAbstractResolver)
ÚClientConnectionErrorÚClientConnectorCertificateErrorÚClientConnectorErrorÚClientConnectorSSLErrorÚClientHttpProxyErrorÚClientProxyConnectionErrorÚServerFingerprintMismatchÚUnixClientConnectorErrorÚcert_errorsÚ
ssl_errors)ÚResponseHandler)ÚClientRequestÚFingerprintÚ_merge_ssl_params)Úceil_timeoutÚget_running_loopÚis_ip_addressÚnoopÚsentinel)ÚEventResultOrError)ÚDefaultResolver)ÚBaseConnectorÚTCPConnectorÚUnixConnectorÚNamedPipeConnector)ÚClientTimeout)ÚConnectionKey)ÚTracec                   ó:   — e Zd ZdZdee   ddfd„Zdefd„Zdd„Zy)	Ú_DeprecationWaiter©Ú
_awaitableÚ_awaitedÚ	awaitableÚreturnNc                 ó    — || _         d| _        y ©NFr=   )Úselfr@   s     úK/var/www/html/aiagents/fe/lib/python3.12/site-packages/aiohttp/connector.pyÚ__init__z_DeprecationWaiter.__init__K   s   € Ø#ˆŒØˆ�ó    c                 óD   — d| _         | j                  j                  «       S ©NT)r?   r>   Ú	__await__©rD   s    rE   rJ   z_DeprecationWaiter.__await__O   s   € ØˆŒØ�‰×(Ñ(Ó*Ð*rG   c                 óR   — | j                   st        j                  dt        «       y y )NzDConnector.close() is a coroutine, please use await connector.close())r?   ÚwarningsÚwarnÚDeprecationWarningrK   s    rE   Ú__del__z_DeprecationWaiter.__del__S   s"   € Ø�}Š}Ü�M‰Mð5ä"õð rG   ©rA   N)	Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   rF   rJ   rP   © rG   rE   r<   r<   H   s/   „ Ø*€Ið )¨C¡.ð °Tó ð+˜3ó +ôrG   r<   c            
       ó"  — e Zd ZdZdZdddddedej                  ddf
d	„Zde	fd
„Z
efdeddfd„Zedej                  fd„«       Zedeej"                     fd„«       Zedee   fd„«       Zdeg df   ddfd„Zdd„Zdd„Zdd„Zedefd„«       Zy)Ú
ConnectionNÚ	connectorr4   Úkeyr9   ÚprotocolÚlooprA   c                 óÆ   — || _         || _        || _        || _        g | _        |j                  «       r.t        j                  t        j                  d«      «      | _
        y y )Nr   )Ú_keyÚ
_connectorÚ_loopÚ	_protocolÚ
_callbacksÚ	get_debugÚ	tracebackÚextract_stackÚsysÚ	_getframeÚ_source_traceback)rD   rY   rZ   r[   r\   s        rE   rF   zConnection.__init__a   sR   € ð ˆŒ	Ø#ˆŒØˆŒ
Ø4<ˆŒØ46ˆŒà�>‰>ÔÜ%.×%<Ñ%<¼S¿]¹]È1Ó=MÓ%NˆDÕ"ð rG   c                 ó"   — d| j                   › d�S )NzConnection<ú>)r^   rK   s    rE   Ú__repr__zConnection.__repr__q   s   € Ø˜TŸY™Y˜K qÐ)Ð)rG   Ú	_warningsc                 ól  — | j                   �¨d| i} |j                  d| ›�t        fi |¤Ž | j                  j	                  «       ry | j
                  j                  | j                  | j                   d¬«       | ddœ}| j                  �| j                  |d<   | j                  j                  |«       y y )NÚsourcezUnclosed connection T©Úshould_closezUnclosed connection)Úclient_connectionÚmessageÚsource_traceback)
ra   rN   ÚResourceWarningr`   Ú	is_closedr_   Ú_releaser^   rh   Úcall_exception_handler)rD   rl   ÚkwargsÚcontexts       rE   rP   zConnection.__del__t   s¦   € Ø�>‰>Ð%Ø Ð%ˆFØˆI�N‰NÐ1°$°Ð:¼OÑVÈvÒVØ�z‰z×#Ñ#Ô%Øà�O‰O×$Ñ$ T§Y¡Y°·±ÈTÐ$ÔRà,0Ð=RÑSˆGØ×%Ñ%Ð1Ø.2×.DÑ.D�Ð*Ñ+Ø�J‰J×-Ñ-¨gÕ6ð &rG   c                 óR   — t        j                  dt        d¬«       | j                  S )Nz%connector.loop property is deprecatedé   )Ú
stacklevel)rM   rN   rO   r`   rK   s    rE   r\   zConnection.loop‚   s#   € ä�‰Ø3Ô5GÐTUõ	
ð �z‰zÐrG   c                 óH   — | j                   €y | j                   j                  S ©N)ra   Ú	transportrK   s    rE   r   zConnection.transport‰   s   € à�>‰>Ð!ØØ�~‰~×'Ñ'Ð'rG   c                 ó   — | j                   S r~   )ra   rK   s    rE   r[   zConnection.protocol�   s   € à�~‰~ÐrG   Úcallbackc                 ó@   — |�| j                   j                  |«       y y r~   )rb   Úappend)rD   r�   s     rE   Úadd_callbackzConnection.add_callback“   s   € ØÐØ�O‰O×"Ñ" 8Õ,ð  rG   c                 ó–   — | j                   d d  g c}| _         |D ]!  }t        t        «      5   |«        d d d «       Œ# y # 1 sw Y   Œ.xY wr~   )rb   r   Ú	Exception)rD   Ú	callbacksÚcbs      rE   Ú_notify_releasezConnection._notify_release—   sO   € Ø%)§_¡_±QÐ%7¸Ð"ˆ	�4”?àò 	ˆBÜœ)Ó$ñ Ù”÷ð ñ	÷ð ús	   ¬?¿A	c                 ó°   — | j                  «        | j                  �:| j                  j                  | j                  | j                  d¬«       d | _        y y )NTro   )r‰   ra   r_   rv   r^   rK   s    rE   ÚclosezConnection.closež   sE   € Ø×ÑÔà�>‰>Ð%Ø�O‰O×$Ñ$ T§Y¡Y°·±ÈTÐ$ÔRØ!ˆD�Nð &rG   c                 óØ   — | j                  «        | j                  �N| j                  j                  | j                  | j                  | j                  j
                  ¬«       d | _        y y )Nro   )r‰   ra   r_   rv   r^   rp   rK   s    rE   ÚreleasezConnection.release¥   sV   € Ø×ÑÔà�>‰>Ð%Ø�O‰O×$Ñ$Ø—	‘	˜4Ÿ>™>¸¿¹×8SÑ8Sð %ô ð "ˆD�Nð	 &rG   c                 óX   — | j                   d u xs | j                   j                  «        S r~   )ra   Úis_connectedrK   s    rE   ÚclosedzConnection.closed®   s&   € à�~‰~ Ð%ÒJ¨T¯^©^×-HÑ-HÓ-JÐ)JÐJrG   rQ   )rR   rS   rT   rh   Ú
_transportr)   ÚasyncioÚAbstractEventLooprF   Ústrrk   rM   r   rP   Úpropertyr\   r   Ú	Transportr   r[   r   r„   r‰   r‹   r�   Úboolr�   rV   rG   rE   rX   rX   \   s"  „ àÐØ€JðOà"ðOð ðOð "ð	Oð
 ×'Ñ'ðOð 
óOð *˜#ó *ð (0ñ 7 ð 7°Dó 7ð ð�g×/Ñ/ò ó ðð ð(˜8 G×$5Ñ$5Ñ6ò (ó ð(ð
 ð˜( ?Ñ3ò ó ðð- X¨b°$¨hÑ%7ð -¸Dó -óó"ó"ð ðK˜ò Kó ñKrG   rX   c                   ó   — e Zd ZdZdd„Zy)Ú_TransportPlaceholderz.placeholder for BaseConnector.connect functionNc                  ó   — y r~   rV   rK   s    rE   r‹   z_TransportPlaceholder.close¶   s   € ØrG   rQ   )rR   rS   rT   Ú__doc__r‹   rV   rG   rE   r™   r™   ³   s
   „ Ù8ôrG   r™   c                   ó  — e Zd ZdZdZdZdZeddddddd	œd
ee	de
f   dededededeej                     de
ddfd„Zefdeddfd„Zd9d„Zdeddfd„Zd9d„Z	 	 	 d:deee      dee   dee   ddfd„Zedefd„«       Zedefd„«       Zedefd„«       Zd;d „Zd!d"d#e ddfd$„Z!d;d%„Z"de#d   fd&„Z$d;d'„Z%edefd(„«       Z&d!d"defd)„Z'd*e(d+e)d,   d-d.de*fd/„Z+d!d"dee    fd0„Z,d;d1„Z-d!d"d2e ddfd3„Z.dd4œd!d"d5e d6eddfd7„Z/d*e(d+e)d,   d-d.de fd8„Z0y)<r4   a\  Base connector class.

    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    enable_cleanup_closed - Enables clean-up closed ssl transports.
                            Disabled by default.
    timeout_ceil_threshold - Trigger ceiling of timeout values when
                             it's above timeout_ceil_threshold.
    loop - Optional event loop.
    TNg       @Féd   r   é   ©Úkeepalive_timeoutÚforce_closeÚlimitÚlimit_per_hostÚenable_cleanup_closedr\   Útimeout_ceil_thresholdr    r¡   r¢   r£   r¤   r\   r¥   rA   c                óˆ  — |r|�|t         urt        d«      ‚|t         u rd}t        |«      }|| _        d| _        |j                  «       r-t        j                  t        j                  d«      «      | _
        i | _        || _        || _        t        «       | _        t!        t        «      | _        t%        t&        |«      | _        || _        t!        t,        «      | _        || _        t3        j4                  t6        |¬«      | _        t;        «       | _        d | _        d | _         | | _!        g | _"        | jG                  «        y )Nz6keepalive_timeout cannot be set if force_close is Trueg      .@Fr   ©r\   )$r1   Ú
ValueErrorr.   Ú_timeout_ceil_thresholdÚ_closedrc   rd   re   rf   rg   rh   Ú_connsÚ_limitÚ_limit_per_hostÚsetÚ	_acquiredr   Ú_acquired_per_hostr   ÚfloatÚ_keepalive_timeoutÚ_force_closer   Ú_waitersr`   Ú	functoolsÚpartialr)   Ú_factoryr   ÚcookiesÚ_cleanup_handleÚ_cleanup_closed_handleÚ_cleanup_closed_disabledÚ_cleanup_closed_transportsÚ_cleanup_closed)rD   r    r¡   r¢   r£   r¤   r\   r¥   s           rE   rF   zBaseConnector.__init__Ï   s'  € ñ Ø Ð,Ð1BÌ(Ñ1RÜ ØOóð ð !¤HÑ,Ø$(Ð!ä Ó%ˆØ'=ˆÔ$àˆŒØ�>‰>ÔÜ%.×%<Ñ%<¼S¿]¹]È1Ó=MÓ%NˆDÔ"àPRˆŒØˆŒØ-ˆÔÜ/2«uˆŒô œÓð 	Ôô #'¤uÐ.?Ó"@ˆÔØ'ˆÔô $¤EÓ*ˆŒàˆŒ
Ü!×)Ñ)¬/ÀÔEˆŒä#“~ˆŒð ?CˆÔð FJˆÔ#Ø,AÐ(AˆÔ%ØMOˆÔ'Ø×ÑÕrG   rl   c                 óx  — | j                   ry | j                  sy | j                  j                  «       D �cg c]  }t        |«      ‘Œ }}| j	                  «        d| i} |j
                  d| ›�t        fi |¤Ž | |ddœ}| j                  �| j                  |d<   | j                  j                  |«       y c c}w )Nrn   zUnclosed connector zUnclosed connector)rY   Úconnectionsrr   rs   )
rª   r«   ÚvaluesÚreprÚ_closerN   rt   rh   r`   rw   )rD   rl   ÚcÚconnsrx   ry   s         rE   rP   zBaseConnector.__del__  s°   € Ø�<Š<ØØ�{Š{Øà"&§+¡+×"4Ñ"4Ó"6Ö7˜Q”�a•Ð7ˆÐ7à�‰Œà˜DÐ!ˆØˆ	�‰Ð,¨T¨HÐ5´ÑQÈ&ÒQàØ Ø+ñ
ˆð
 ×!Ñ!Ð-Ø*.×*@Ñ*@ˆGÐ&Ñ'Ø�
‰
×)Ñ)¨'Õ2ùò 8s   ·B7c                 ó:   — t        j                  dt        «       | S )NzH"with Connector():" is deprecated, use "async with Connector():" instead)rM   rN   rO   rK   s    rE   Ú	__enter__zBaseConnector.__enter__  s   € Ü�‰ð4äô	
ð
 ˆrG   Úexcc                 ó$   — | j                  «        y r~   )rÂ   )rD   rÇ   s     rE   Ú__exit__zBaseConnector.__exit__#  s   € Ø�‰�rG   c              ƒ   ó   K  — | S ­wr~   rV   rK   s    rE   Ú
__aenter__zBaseConnector.__aenter__&  s   è ø€ Øˆùs   ‚Úexc_typeÚ	exc_valueÚexc_tracebackc              ƒ   ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr~   )r‹   )rD   rÌ   rÍ   rÎ   s       rE   Ú	__aexit__zBaseConnector.__aexit__)  s   è ø€ ð �j‰j‹l×Òús   ‚–—c                 ó   — | j                   S )z1Ultimately close connection on releasing if True.)r³   rK   s    rE   r¡   zBaseConnector.force_close1  s   € ð × Ñ Ð rG   c                 ó   — | j                   S )z‘The total number for simultaneous connections.

        If limit is 0 the connector has no limit.
        The default limit size is 100.
        )r¬   rK   s    rE   r¢   zBaseConnector.limit6  s   € ð �{‰{ÐrG   c                 ó   — | j                   S )z¡The limit for simultaneous connections to the same endpoint.

        Endpoints are the same if they are have equal
        (host, port, is_ssl) triple.
        )r­   rK   s    rE   r£   zBaseConnector.limit_per_host?  s   € ð ×#Ñ#Ð#rG   c                 ój  — | j                   r!| j                   j                  «        d| _         | j                  j                  «       }| j                  }| j
                  �ri }||z
  }| j
                  j                  «       D ]è  \  }}g }|D ]Ô  \  }}	|j                  «       rn|	|z
  dk  rR|j                  }
|j                  «        |j                  sŒG| j                  rŒT| j                  j                  |
«       Œp|j                  ||	f«       Œ„|j                  }
|j                  «        |j                  sŒ­| j                  rŒº| j                  j                  |
«       ŒÖ |sŒä|||<   Œê || _        | j
                  r4t        j                  | d|| j                  | j                   ¬«      | _         yy)zCleanup unused transports.Nr   Ú_cleanup©r¥   )r¹   Úcancelr`   Útimer²   r«   Úitemsr�   r   r‹   Úis_sslr»   r¼   rƒ   r   Úweakref_handler©   )rD   ÚnowÚtimeoutr¿   ÚdeadlinerZ   rÄ   ÚaliveÚprotoÚuse_timer   s              rE   rÕ   zBaseConnector._cleanupH  su  € à×ÒØ× Ñ ×'Ñ'Ô)ð $(ˆDÔ à�j‰j�o‰oÓˆØ×)Ñ)ˆà�;‹;ØˆKØ˜W‘}ˆHØ"Ÿk™k×/Ñ/Ó1ò -‘
��UØ�Ø',ò N‘O�E˜8Ø×)Ñ)Ô+Ø# hÑ.°Ò2Ø(-¯©˜IØ!ŸK™KœMØ"Ÿz›z°$×2OÓ2OØ $× ?Ñ ?× FÑ FÀyÕ Qà!ŸL™L¨%°Ð):Õ;à$)§O¡O˜	ØŸ™œØŸ:›:¨d×.KÓ.KØ ×;Ñ;×BÑBÀ9ÕMðNò Ø',�K Ò$ð%-ð( &ˆDŒKà�;Š;Ü#*×#9Ñ#9ØØØØ—
‘
Ø'+×'CÑ'Cô$ˆDÕ ð rG   rZ   r9   Úvalc                 ór   — | j                   }||vry ||   }|j                  |«       |s| j                   |= y y r~   )r°   Úremove)rD   rZ   râ   Úacquired_per_hostrÄ   s        rE   Ú_drop_acquired_per_hostz%BaseConnector._drop_acquired_per_hostu  sH   € ð !×3Ñ3ÐØÐ'Ñ'ØØ! #Ñ&ˆØ�‰�SÔÙØ×'Ñ'¨Ñ,ð rG   c                 ó:  — | j                   r| j                   j                  «        | j                  D ]  }|€Œ|j                  «        Œ g | _        | j                  s>t        j                  | d| j                  | j                  | j                  ¬«      | _         yy)z~Double confirmation for transport close.

        Some broken ssl servers may leave socket open without proper close.
        Nr½   rÖ   )
rº   r×   r¼   Úabortr»   r   rÛ   Ú_cleanup_closed_periodr`   r©   )rD   r   s     rE   r½   zBaseConnector._cleanup_closed€  sŽ   € ð
 ×&Ò&Ø×'Ñ'×.Ñ.Ô0à×8Ñ8ò 	"ˆIØÑ$Ø—‘Õ!ð	"ð +-ˆÔ'à×,Ò,Ü*1×*@Ñ*@ØØ!Ø×+Ñ+Ø—
‘
Ø'+×'CÑ'Cô+ˆDÕ'ð -rG   c                 óH   — | j                  «        t        t        «       «      S )zClose all opened transports.)rÂ   r<   r0   rK   s    rE   r‹   zBaseConnector.close—  s   € à�‰ŒÜ!¤$£&Ó)Ð)rG   c                 óÊ  — | j                   ry d| _         	 | j                  j                  «       rx	 | j                  j	                  «        | j
                  j	                  «        | j                  j	                  «        d | _        | j                  j	                  «        d | _	        y | j                  r| j                  j                  «        | j                  r| j                  j                  «        | j                  j                  «       D ]  }|D ]  \  }}|j                  «        Œ Œ | j
                  D ]  }|j                  «        Œ | j                  D ]  }|€Œ|j                  «        Œ 	 | j                  j	                  «        | j
                  j	                  «        | j                  j	                  «        d | _        | j                  j	                  «        d | _	        y # | j                  j	                  «        | j
                  j	                  «        | j                  j	                  «        d | _        | j                  j	                  «        d | _	        w xY wrI   )rª   r`   ru   r«   Úclearr¯   r´   r¹   r¼   rº   r×   rÀ   r‹   rè   )rD   Údatarà   Út0r   s        rE   rÂ   zBaseConnector._closeœ  sà  € Ø�<Š<ØàˆŒð	/Ø�z‰z×#Ñ#Ô%Øð, �K‰K×ÑÔØ�N‰N× Ñ Ô"Ø�M‰M×ÑÔ!Ø#'ˆDÔ Ø×+Ñ+×1Ñ1Ô3Ø*.ˆDÕ'ð1 ×#Ò#Ø×$Ñ$×+Ñ+Ô-ð ×*Ò*Ø×+Ñ+×2Ñ2Ô4àŸ™×*Ñ*Ó,ò "�Ø!%ò "‘I�E˜2Ø—K‘K•Mñ"ð"ð Ÿ™ò �Ø—‘•ðð "×<Ñ<ò &�	ØÑ(Ø—O‘OÕ%ñ&ð
 �K‰K×ÑÔØ�N‰N× Ñ Ô"Ø�M‰M×ÑÔ!Ø#'ˆDÔ Ø×+Ñ+×1Ñ1Ô3Ø*.ˆDÕ'øð �K‰K×ÑÔØ�N‰N× Ñ Ô"Ø�M‰M×ÑÔ!Ø#'ˆDÔ Ø×+Ñ+×1Ñ1Ô3Ø*.ˆDÕ'ús   –G* Â(B7G* Å G* Ç*A8I"c                 ó   — | j                   S )z;Is connector closed.

        A readonly property.
        )rª   rK   s    rE   r�   zBaseConnector.closedÁ  s   € ð �|‰|ÐrG   c                 ó¼  — | j                   rz| j                   t        | j                  «      z
  }| j                  rJ|dkD  rE|| j                  v r7| j                  j                  |«      }|€J ‚| j                  t        |«      z
  }|S | j                  rG|| j                  v r9| j                  j                  |«      }|€J ‚| j                  t        |«      z
  }|S d}|S )zå
        Return number of available connections.

        The limit, limit_per_host and the connection key are taken into account.

        If it returns less than 1 means that there are no connections
        available.
        r   r   )r¬   Úlenr¯   r­   r°   Úget)rD   rZ   Ú	availableÚacquireds       rE   Ú_available_connectionsz$BaseConnector._available_connectionsÉ  sã   € ð �;Š;àŸ™¤c¨$¯.©.Ó&9Ñ9ˆIð ×$Ò$Ø ’MØ˜4×2Ñ2Ñ2à×2Ñ2×6Ñ6°sÓ;�ØÐ+Ð+Ð+Ø ×0Ñ0´3°x³=Ñ@�	ð Ðð ×!Ò! c¨T×-DÑ-DÑ&Dà×.Ñ.×2Ñ2°3Ó7ˆHØÐ'Ð'Ð'Ø×,Ñ,¬s°8«}Ñ<ˆIð Ðð ˆIàÐrG   ÚreqÚtracesr:   rÝ   r8   c              ƒ   óÖ  K  — |j                   }| j                  |«      }|dk  s|| j                  v r±| j                  j	                  «       }| j                  |   j                  |«       |r|D ]  }|j                  «       ƒ d{  –—†  Œ 	 |ƒ d{  –—†  	 || j                  v r| j                  |   s| j                  |= 	 |r|D ]  }|j                  «       ƒ d{  –—†  Œ | j                  |«      }	|	�€t        t        t        «       «      }
| j                  j!                  |
«       | j"                  |   j!                  |
«       |r|D ]  }|j%                  «       ƒ d{  –—†  Œ 	 | j'                  |||«      ƒ d{  –—† }	| j(                  r|	j+                  «        t-        d«      ‚	 | j(                  s.| j                  j                  |
«       | j/                  ||
«       	 |r¿|D ]  }|j3                  «       ƒ d{  –—†  Œ nŸ|r�t        t        t        «       «      }
| j                  j!                  |
«       | j"                  |   j!                  |
«       |D ]  }|j5                  «       ƒ d{  –—†  Œ | j                  j                  |
«       | j/                  ||
«       | j                  j!                  |	«       | j"                  |   j!                  |	«       t7        | ||	| j                  «      S 7 �Œu7 �Œk# t        $ rF}|| j                  v r1	 | j                  |   j                  |«       |‚# t        $ r Y |‚w xY w|‚d}~ww xY w# || j                  v r| j                  |   s| j                  |= w w w xY w7 �Œ¦7 �Œ#7 �Œ# t        $ rK | j(                  s=| j                  j                  |
«       | j/                  ||
«       | j1                  «        ‚ w xY w7 �Œá7 �Œq­w)z'Get from pool or create new connection.r   NzConnector is closed.)Úconnection_keyrõ   r´   r`   Úcreate_futurerƒ   Úsend_connection_queued_startÚBaseExceptionrä   r¨   Úsend_connection_queued_endÚ_getr   r)   r™   r¯   Úaddr°   Úsend_connection_create_startÚ_create_connectionrª   r‹   r   ræ   Ú_release_waiterÚsend_connection_create_endÚsend_connection_reuseconnrX   )rD   rö   r÷   rÝ   rZ   ró   ÚfutÚtraceÚerà   Úplaceholders              rE   ÚconnectzBaseConnector.connectê  sž  è ø€ ð × Ñ ˆØ×/Ñ/°Ó4ˆ	ð ˜Š>˜S D§M¡MÑ1Ø—*‘*×*Ñ*Ó,ˆCð �M‰M˜#Ñ×%Ñ% cÔ*áØ#ò ?�EØ×<Ñ<Ó>×>Ñ>ð?ð+Ø—	‘	ð ˜$Ÿ-™-Ñ'°·±¸cÒ0BØŸ™ cÑ*áØ#ò =�EØ×:Ñ:Ó<×<Ñ<ð=ð —	‘	˜#“ˆØ‰=ÜœÔ0EÓ0GÓHˆKØ�N‰N×Ñ˜{Ô+Ø×#Ñ# CÑ(×,Ñ,¨[Ô9áØ#ò ?�EØ×<Ñ<Ó>×>Ñ>ð?ðCØ"×5Ñ5°c¸6À7ÓK×K�Ø—<’<Ø—K‘K”MÜ/Ð0FÓGÐGð  ð —|’|Ø—N‘N×)Ñ)¨+Ô6Ø×0Ñ0°°kÕBáØ#ò =�EØ×:Ñ:Ó<×<Ñ<ñ=ñ ä"¤?Ô4IÓ4KÓL�Ø—‘×"Ñ" ;Ô/Ø×'Ñ'¨Ñ,×0Ñ0°Ô=Ø#ò <�EØ×9Ñ9Ó;×;Ñ;ð<à—‘×%Ñ% kÔ2Ø×,Ñ,¨S°+Ô>à�‰×Ñ˜5Ô!Ø×Ñ Ñ$×(Ñ(¨Ô/Ü˜$  U¨D¯J©JÓ7Ð7ðA ?ùð úÜ ò 	Ø˜$Ÿ-™-Ñ'ðØŸ™ cÑ*×1Ñ1°#Ô6ð �øô &ò Øà�ðúð �ûð	ûð ˜$Ÿ-™-Ñ'°·±¸cÒ0BØŸ™ cÑ*ð 1CÐ'úð
 =ùð ?ùð Lúô !ò Ø—|’|Ø—N‘N×)Ñ)¨+Ô6Ø×0Ñ0°°kÔBØ×(Ñ(Ô*Øðúð =ùð <ûsä   ‚BO)ÂK:ÂO)ÂL  ÂK=ÂL  ÂAO)ÃNÃBO)Å#NÅ$O)Å+N ÆN	Æ+N Æ.AO)ÈO#ÈA2O)É5O&É6BO)Ë=L  Ì 	MÌ	M
ÌL8Ì6M
Ì8	MÍM
ÍMÍM
Í
MÍM Í.N Î O)ÎO)Î	N ÎAO Ï O)Ï&O)c                 ód  — 	 | j                   |   }| j                  j                  «       }|rè|j	                  «       \  }}|j                  «       rs||z
  | j                  kD  rP|j                  }|j                  «        |j                  rˆ| j                  s|| j                  j                  |«       n`|s| j                   |= |S |j                  }|j                  «        |j                  r'| j                  s| j                  j                  |«       |rŒè| j                   |= y # t        $ r Y y w xY wr~   )r«   ÚKeyErrorr`   rØ   Úpopr�   r²   r   r‹   rÚ   r»   r¼   rƒ   )rD   rZ   rÄ   Út1rà   rî   r   s          rE   rþ   zBaseConnector._get=  sÿ   € ð	Ø—K‘K Ñ$ˆEð �Z‰Z�_‰_ÓˆÙØŸ	™	›‰IˆE�2Ø×!Ñ!Ô#Ø˜‘7˜T×4Ñ4Ò4Ø %§¡�IØ—K‘K”Mà—z’z¨$×*GÒ*GØ×7Ñ7×>Ñ>¸yÕIá à ŸK™K¨Ð,Ø �Là!ŸO™O�	Ø—‘”Ø—:’: d×&CÒ&CØ×3Ñ3×:Ñ:¸9ÔEò% ð* �K‰K˜ÐØøô5 ò 	Ùð	ús   ‚D# Ä#	D/Ä.D/c                 óV  — | j                   syt        | j                   j                  «       «      }t        j                  |«       |D ]_  }| j                  |«      dk  rŒ| j                   |   }|sŒ*|j                  «       }|j                  «       s|j                  d«        y|rŒ6Œa y)z¼
        Iterates over all waiters until one to be released is found.

        The one to be released is not finished and
        belongs to a host that has available connections.
        Nr   )	r´   ÚlistÚkeysÚrandomÚshufflerõ   ÚpopleftÚdoneÚ
set_result)rD   ÚqueuesrZ   ÚwaitersÚwaiters        rE   r  zBaseConnector._release_waiter\  s”   € ð �}Š}Øô �d—m‘m×(Ñ(Ó*Ó+ˆÜ�‰�vÔàò 		ˆCØ×*Ñ*¨3Ó/°!Ò3Øà—m‘m CÑ(ˆGÚØ Ÿ™Ó*�Ø—{‘{”}Ø×%Ñ% dÔ+Ùó	 ñ		rG   rà   c                 ó¸   — | j                   ry 	 | j                  j                  |«       | j                  ||«       | j	                  «        y # t
        $ r Y y w xY wr~   )rª   r¯   rä   ræ   r  r  )rD   rZ   rà   s      rE   Ú_release_acquiredzBaseConnector._release_acquiredv  sW   € Ø�<Š<àð	#Ø�N‰N×!Ñ! %Ô(Ø×(Ñ(¨¨eÔ4ð × Ñ Õ"øô ò 	ñ ð	ús   �-A Á	AÁAro   r[   rp   c                ód  — | j                   ry | j                  ||«       | j                  rd}|s|j                  rR|j                  }|j                  «        |j                  r)| j                  s| j                  j                  |«       y y y | j                  j                  |«      }|€g x}| j                  |<   |j                  || j                  j                  «       f«       | j                  €>t        j                   | d| j"                  | j                  | j$                  ¬«      | _        y y )NTrÕ   rÖ   )rª   r  r³   rp   r   r‹   rÚ   r»   r¼   rƒ   r«   rò   r`   rØ   r¹   r   rÛ   r²   r©   )rD   rZ   r[   rp   r   rÄ   s         rE   rv   zBaseConnector._release…  s  € ð �<Š<àà×Ñ˜s HÔ-à×ÒØˆLá˜8×0Ò0Ø ×*Ñ*ˆIØ�N‰NÔà�zŠz $×"?Ò"?Ø×/Ñ/×6Ñ6°yÕAð #@ˆzð —K‘K—O‘O CÓ(ˆEØˆ}Ø+-Ð-�˜Ÿ™ CÑ(Ø�L‰L˜( D§J¡J§O¡OÓ$5Ð6Ô7à×#Ñ#Ð+Ü'.×'=Ñ'=ØØØ×+Ñ+Ø—J‘JØ+/×+GÑ+Gô(�Õ$ð ,rG   c              ƒ   ó   K  — t        «       ‚­wr~   )ÚNotImplementedError)rD   rö   r÷   rÝ   s       rE   r  z BaseConnector._create_connectionª  s   è ø€ ô "Ó#Ð#ùs   ‚)rA   r4   )NNNrQ   )1rR   rS   rT   r›   rª   rh   ré   r1   r   Úobjectr±   r—   Úintr   r’   r“   rF   rM   r   rP   rÆ   rÉ   rË   r   rü   r   rÐ   r•   r¡   r¢   r£   rÕ   r)   ræ   r½   r   r‹   rÂ   r�   rõ   r*   r   rX   r	  rþ   r  r  rv   r  rV   rG   rE   r4   r4   º   sŸ  „ ñð €GØÐð !Ðð
 9AØ!ØØØ&+Ø48Ø()ò5ð ! ¨¨uÐ!4Ñ5ð5ð ð	5ð
 ð5ð ð5ð  $ð5ð �w×0Ñ0Ñ1ð5ð !&ð5ð 
ó5ðn (0ñ 3 ð 3°Dó 3ó*ð˜Sð  Tó óð
 37Ø-1Ø15ñ	à˜4 Ñ.Ñ/ðð ˜MÑ*ðð   Ñ.ð	ð
 
óð ð!˜Tò !ó ð!ð ð�sò ó ðð ð$ ò $ó ð$ó+ðZ	-Ø"ð	-Ø)8ð	-à	ó	-óð.*�y ‘ó *ó
#/ðJ ð˜ò ó ðð¨/ð ¸có ðBQ8Ø ðQ8Ø*.¨w©-ðQ8ØBQðQ8à	óQ8ðf˜ð ¨H°_Ñ,Eó ó>ð4# _ð #¸_ð #ÐQUó #ð( #ò#àð#ð "ð#ð
 ð#ð 
ó#ðJ$Ø ð$Ø*.¨w©-ð$ØBQð$à	ô$rG   r4   c                   óÈ   — e Zd Zddee   ddfd„Zdedefd„Zde	e
ef   deee
ef      ddfd	„Zde	e
ef   ddfd
„Zdd„Zde	e
ef   deee
ef      fd„Zde	e
ef   defd„Zy)Ú_DNSCacheTableNÚttlrA   c                 ó.   — i | _         i | _        || _        y r~   )Ú	_addrs_rrÚ_timestampsÚ_ttl)rD   r"  s     rE   rF   z_DNSCacheTable.__init__±  s   € ØVXˆŒØ9;ˆÔØˆ�	rG   Úhostc                 ó   — || j                   v S r~   )r$  )rD   r'  s     rE   Ú__contains__z_DNSCacheTable.__contains__¶  s   € Ø�t—~‘~Ð%Ð%rG   rZ   Úaddrsc                 ó’   — t        |«      t        |«      f| j                  |<   | j                  �t	        «       | j
                  |<   y y r~   )r   rñ   r$  r&  r
   r%  )rD   rZ   r*  s      rE   rÿ   z_DNSCacheTable.add¹  s>   € Ü$ U›|¬S°«ZÐ8ˆ�‰�sÑà�9‰9Ð Ü$-£KˆD×Ñ˜SÒ!ð !rG   c                 óŽ   — | j                   j                  |d «       | j                  �| j                  j                  |d «       y y r~   )r$  r  r&  r%  ©rD   rZ   s     rE   rä   z_DNSCacheTable.remove¿  s;   € Ø�‰×Ñ˜3 Ô%à�9‰9Ð Ø×Ñ× Ñ   dÕ+ð !rG   c                 ól   — | j                   j                  «        | j                  j                  «        y r~   )r$  rì   r%  rK   s    rE   rì   z_DNSCacheTable.clearÅ  s$   € Ø�‰×ÑÔØ×Ñ×ÑÕ rG   c                 ój   — | j                   |   \  }}t        t        ||«      «      }t        |«       |S r~   )r$  r  r	   Únext)rD   rZ   r\   Úlengthr*  s        rE   Ú
next_addrsz_DNSCacheTable.next_addrsÉ  s1   € Ø—~‘~ cÑ*‰ˆˆfÜ”V˜D &Ó)Ó*ˆäˆTŒ
ØˆrG   c                 ój   — | j                   €y| j                  |   | j                   z   t        «       k  S rC   )r&  r%  r
   r-  s     rE   Úexpiredz_DNSCacheTable.expiredÐ  s0   € Ø�9‰9ÐØà×Ñ Ñ$ t§y¡yÑ0´9³;Ñ>Ð>rG   r~   rQ   )rR   rS   rT   r   r±   rF   r  r—   r)  r   r”   r  r   r   r   rÿ   rä   rì   r2  r4  rV   rG   rE   r!  r!  °  s¾   „ ñ˜H U™Oð °tó ð
& ð &¨Dó &ð0�u˜S #˜X‘ð 0¨t°D¸¸c¸±NÑ/Cð 0Èó 0ð,˜%  S ™/ð ,¨dó ,ó!ð˜e C¨ H™oð °$°t¸CÀ¸H±~Ñ2Fó ð?˜5  c ™?ð ?¨tô ?rG   r!  c            !       ó„  ‡ — e Zd ZdZdddddddddeddddddd	œd
edee   dedee   dedee	   de
ded   ee	f   deeeef      dee   de
deef   dededededeej&                     def ˆ fd„Zded   fˆ fd„Zedefd„«       Zedefd„«       Z	 d;dee   d ee   ddfd!„Z	 d<ded ed"eed#      deeeef      fd$„Zd%ed"ed#   d&d'de fd(„Z!e" e#jH                  d«      d)ede	fd*„«       «       Z%d%edee	   fd+„Z&d%eded,   fd-„Z'e(d.œd/ed%ed&d'd0e)e*   d1edeejV                  e f   fd2„Z,d=d3„Z-d>d4„Z.defd5„Z/d6ejV                  d%eddfd7„Z0e(fd6ejV                  d%ed&d'd0e)e*   deejb                  e f   f
d8„Z2e(d.œd%ed"ed#   d&d'd0e)e*   deejV                  e f   f
d9„Z3d%ed"ed#   d&d'deejb                  e f   fd:„Z4ˆ xZ5S )?r5   a/  TCP connector.

    verify_ssl - Set to True to check ssl certifications.
    fingerprint - Pass the binary sha256
        digest of the expected certificate in DER format to verify
        that the certificate the server presents matches. See also
        https://en.wikipedia.org/wiki/Transport_Layer_Security#Certificate_pinning
    resolver - Enable DNS lookups and use this
        resolver
    use_dns_cache - Use memory cache for DNS lookups.
    ttl_dns_cache - Max seconds having cached a DNS entry, None forever.
    family - socket address family
    local_addr - local tuple of (host, port) to bind socket to

    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    enable_cleanup_closed - Enables clean-up closed ssl transports.
                            Disabled by default.
    loop - Optional event loop.
    TNé
   r   Fr�   rž   )Ú
verify_sslÚfingerprintÚuse_dns_cacheÚttl_dns_cacheÚfamilyÚssl_contextÚsslÚ
local_addrÚresolverr    r¡   r¢   r£   r¤   r\   r¥   r7  r8  r9  r:  r;  r<  r=  r>  r?  r    r¡   r¢   r£   r¤   r\   r¥   c          	      óð   •— t         ‰| �  |
||||||¬«       t        ||||«      | _        |	€t	        | j
                  ¬«      }	|	| _        || _        t        |¬«      | _	        i | _
        || _        || _        y )NrŸ   r§   )r"  )ÚsuperrF   r,   Ú_sslr3   r`   Ú	_resolverÚ_use_dns_cacher!  Ú_cached_hostsÚ_throttle_dns_eventsÚ_familyÚ_local_addr)rD   r7  r8  r9  r:  r;  r<  r=  r>  r?  r    r¡   r¢   r£   r¤   r\   r¥   Ú	__class__s                    €rE   rF   zTCPConnector.__init__ð  s‡   ø€ ô( 	‰ÑØ/Ø#ØØ)Ø"7ØØ#9ð 	ô 	
ô & c¨:°{ÀKÓPˆŒ	ØÐÜ&¨D¯J©JÔ7ˆHØ!ˆŒà+ˆÔÜ+°Ô>ˆÔØOQˆÔ!ØˆŒØ%ˆÕrG   rA   c                 ó~   •— | j                   j                  «       D ]  }|j                  «        Œ t        ‰| �  «       S )zClose all ongoing DNS calls.)rF  rÀ   r×   rA  r‹   )rD   ÚevrI  s     €rE   r‹   zTCPConnector.close  s8   ø€ à×+Ñ+×2Ñ2Ó4ò 	ˆBØ�I‰I�Kð	ô ‰w‰}‹ÐrG   c                 ó   — | j                   S )zSocket family like AF_INET.)rG  rK   s    rE   r;  zTCPConnector.family   s   € ð �|‰|ÐrG   c                 ó   — | j                   S )z%True if local DNS caching is enabled.)rD  rK   s    rE   r9  zTCPConnector.use_dns_cache%  s   € ð ×"Ñ"Ð"rG   r'  Úportc                 óš   — |� |�| j                   j                  ||f«       y|€|�t        d«      ‚| j                   j                  «        y)z8Remove specified host/port or clear all dns local cache.Nz5either both host and port or none of them are allowed)rE  rä   r¨   rì   )rD   r'  rN  s      rE   Úclear_dns_cachezTCPConnector.clear_dns_cache*  sP   € ð Ð Ð 0Ø×Ñ×%Ñ% t¨T lÕ3ØÐ Ð!1ÜÐWÓXÐXà×Ñ×$Ñ$Õ&rG   r÷   r:   c              ƒ   óþ  K  — t        |«      r|||| j                  dddœgS | j                  sv|r |D ]  }|j                  |«      ƒ d {  –—†  Œ | j                  j                  ||| j                  ¬«      ƒ d {  –—† }|r |D ]  }|j                  |«      ƒ d {  –—†  Œ |S ||f}|| j                  v rZ| j                  j                  |«      s?| j                  j                  |«      }|r |D ]  }|j                  |«      ƒ d {  –—†  Œ |S || j                  v rK| j                  |   }|r |D ]  }|j                  |«      ƒ d {  –—†  Œ |j                  «       ƒ d {  –—†  �nt        | j                  «      | j                  |<   |r |D ]  }|j                  |«      ƒ d {  –—†  Œ 	 |r |D ]  }|j                  |«      ƒ d {  –—†  Œ | j                  j                  ||| j                  ¬«      ƒ d {  –—† }	|r |D ]  }|j                  |«      ƒ d {  –—†  Œ | j                  j!                  ||	«       | j                  |   j#                  «        	 | j                  j'                  |«       | j                  j                  |«      S 7 �ŒI7 �Œ7 �Œý7 �Œ”7 �ŒV7 �Œ?7 Œý7 ŒÜ7 Œ¬7 ŒŽ# t$        $ r%}
| j                  |   j#                  |
¬«       ‚ d }
~
ww xY w# | j                  j'                  |«       w xY w­w)Nr   )Úhostnamer'  rN  r;  rà   Úflags)r;  )rÇ   )r/   rG  rD  Úsend_dns_resolvehost_startrC  ÚresolveÚsend_dns_resolvehost_endrE  r4  r2  Úsend_dns_cache_hitrF  Úwaitr2   r`   Úsend_dns_cache_missrÿ   r®   rü   r  )rD   r'  rN  r÷   r  ÚresrZ   ÚresultÚeventr*  r  s              rE   Ú_resolve_hostzTCPConnector._resolve_host5  s  è ø€ ô ˜Ôð !%Ø Ø Ø"Ÿl™lØØñð	ð 	ð ×"Ò"áØ#ò A�EØ×:Ñ:¸4Ó@×@Ñ@ðAð Ÿ™×.Ñ.¨t°TÀ$Ç,Á,Ð.ÓO×OˆCáØ#ò ?�EØ×8Ñ8¸Ó>×>Ñ>ð?ð ˆJà�Tˆlˆà�4×%Ñ%Ñ%°×0BÑ0B×0JÑ0JÈ3Ô0Oà×'Ñ'×2Ñ2°3Ó7ˆFáØ#ò 9�EØ×2Ñ2°4Ó8×8Ñ8ð9àˆMà�$×+Ñ+Ñ+à×-Ñ-¨cÑ2ˆEÙØ#ò 9�EØ×2Ñ2°4Ó8×8Ñ8ð9à—*‘*“,×Òô .@ÀÇ
Á
Ó-KˆD×%Ñ% cÑ*ÙØ#ò :�EØ×3Ñ3°DÓ9×9Ñ9ð:ð3áØ!'ò E˜Ø#×>Ñ>¸tÓD×DÑDðEð #Ÿn™n×4Ñ4°T¸4ÈÏÉÐ4ÓU×U�ÙØ!'ò C˜Ø#×<Ñ<¸TÓB×BÑBðCð ×"Ñ"×&Ñ& s¨EÔ2Ø×)Ñ)¨#Ñ.×2Ñ2Õ4ð ×)Ñ)×-Ñ-¨cÔ2à×!Ñ!×,Ñ,¨SÓ1Ð1ðo AùàOùð ?ùð 9ùð 9ùØùð :øð
 EøàUøð Cùô !ò ð ×)Ñ)¨#Ñ.×2Ñ2°qÐ2Ô9Øûð	ûð ×)Ñ)×-Ñ-¨cÕ2üsç   ‚AK=Á	JÁ
1K=Á;JÁ<K=ÂJÂA+K=ÄJÄA K=ÅJÅ	K=Å"J!Å#AK=Æ&J$Æ'K=Æ.J, Ç	J&Ç
1J, Ç;J(Ç<J, ÈJ*È?J, É7K=ÊK=ÊK=ÊK=ÊK=Ê!K=Ê$K=Ê&J, Ê(J, Ê*J, Ê,	KÊ5 KËKËK ËK:Ë:K=rö   rÝ   r8   c              ƒ   óª   K  — |j                   r | j                  |||«      ƒ d{  –—† \  }}|S | j                  |||«      ƒ d{  –—† \  }}|S 7 Œ)7 Œ­w)zcCreate connection.

        Has same keyword arguments as BaseEventLoop.create_connection.
        N)ÚproxyÚ_create_proxy_connectionÚ_create_direct_connection)rD   rö   r÷   rÝ   Ú_rà   s         rE   r  zTCPConnector._create_connection�  s]   è ø€ ð �9Š9Ø!×:Ñ:¸3ÀÈÓP×P‰HˆAˆuð ˆð "×;Ñ;¸CÀÈÓQ×Q‰HˆAˆuàˆð	 QøàQús!   ‚#A¥A¦AÁAÁ
AÁAÚverifiedc                 ó  — | rt        j                  «       S t        j                  t         j                  «      }|xj                  t         j
                  z  c_        |xj                  t         j                  z  c_        d|_        t         j                  |_	        	 |xj                  t         j                  z  c_        |j                  «        |S # t        $ r.}t        j                  dj                  |«      «       Y d }~ŒDd }~ww xY w)NFz‡{!s}: The Python interpreter is compiled against OpenSSL < 1.0.0. Ref: https://docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSION)r=  Úcreate_default_contextÚ
SSLContextÚPROTOCOL_TLS_CLIENTÚoptionsÚOP_NO_SSLv2ÚOP_NO_SSLv3Úcheck_hostnameÚ	CERT_NONEÚverify_modeÚOP_NO_COMPRESSIONÚAttributeErrorrM   rN   ÚformatÚset_default_verify_paths)rc  Ú
sslcontextÚattr_errs      rE   Ú_make_ssl_contextzTCPConnector._make_ssl_context�  sÌ   € ñ Ü×-Ñ-Ó/Ð/äŸ™¬×(?Ñ(?Ó@ˆJØ×Ò¤#§/¡/Ñ1ÕØ×Ò¤#§/¡/Ñ1ÕØ(-ˆJÔ%Ü%(§]¡]ˆJÔ"ðØ×"Ò"¤c×&;Ñ&;Ñ;Õ"ð ×/Ñ/Ô1ØÐøô "ò Ü—‘ð-÷ .4©V°HÓ-=÷	ñ ûðús   Â#C Ã	D	Ã$DÄD	c                 óT  — |j                  «       r˜t        €t        d«      ‚|j                  }t        |t        j                  «      r|S |�| j                  d«      S | j                  }t        |t        j                  «      r|S |�| j                  d«      S | j                  d«      S y)a*  Logic to get the correct SSL context

        0. if req.ssl is false, return None

        1. if ssl_context is specified in req, use it
        2. if _ssl_context is specified in self, use it
        3. otherwise:
            1. if verify_ssl is not specified in req, use self.ssl_context
               (will generate a default context according to self.verify_ssl)
            2. if verify_ssl is True in req, generate a default SSL context
            3. if verify_ssl is False in req, generate a SSL context that
               won't verify
        NzSSL is not supported.FT)rÚ   r=  ÚRuntimeErrorÚ
isinstancerf  rt  rB  )rD   rö   rr  s      rE   Ú_get_ssl_contextzTCPConnector._get_ssl_context¦  sš   € ð �:‰:Œ<Üˆ{Ü"Ð#:Ó;Ð;ØŸ™ˆJÜ˜*¤c§n¡nÔ5Ø!Ð!ØÐ%à×-Ñ-¨eÓ4Ð4ØŸ™ˆJÜ˜*¤c§n¡nÔ5Ø!Ð!ØÐ%à×-Ñ-¨eÓ4Ð4Ø×)Ñ)¨$Ó/Ð/àrG   r+   c                 ó|   — |j                   }t        |t        «      r|S | j                  }t        |t        «      r|S y r~   )r=  rw  r+   rB  )rD   rö   Úrets      rE   Ú_get_fingerprintzTCPConnector._get_fingerprintÇ  s5   € Ø�g‰gˆÜ�cœ;Ô'ØˆJØ�i‰iˆÜ�cœ;Ô'ØˆJØrG   ©Úclient_errorÚargsr}  rx   c             �   ó$  K  — 	 t        |j                  |j                  ¬«      4 ƒd {  –—†   | j                  j                  |i |¤Žƒ d {  –—† cd d d «      ƒd {  –—†  S 7 Œ97 Œ7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w# t
        $ r}t        |j                  |«      |‚d }~wt        $ r}t        |j                  |«      |‚d }~wt        $ r@}|j                  €t        |t        j                  «      r‚  ||j                  |«      |‚d }~ww xY w­w©N©Úceil_threshold)r-   Úsock_connectr‚  r`   Úcreate_connectionr'   r    rù   r(   r"   ÚOSErrorÚerrnorw  r’   ÚTimeoutError)rD   rö   rÝ   r}  r~  rx   rÇ   s          rE   Ú_wrap_create_connectionz$TCPConnector._wrap_create_connectionÐ  s  è ø€ ð	AÜ#Ø×$Ñ$°W×5KÑ5Kô÷ Kñ Kð :˜TŸZ™Z×9Ñ9¸4ÐJÀ6ÑJ×J÷K÷ Kò Køð KøðKø÷ K÷ Kñ Kûô ò 	TÜ1°#×2DÑ2DÀcÓJÐPSÐSûÜò 	LÜ)¨#×*<Ñ*<¸cÓBÈÐKûÜò 	AØ�y‰yÐ ¤Z°´W×5IÑ5IÔ%JØÙ˜s×1Ñ1°3Ó7¸SÐ@ûð	Aüs£   ‚D„%A> ©A#ªA> ­ A)ÁA%ÁA)ÁA> ÁA'ÁA> Á"DÁ#A> Á%A)Á'A> Á)A;Á/A2Á0A;Á7A> Á:DÁ;A> Á>	DÂBÂDÂ*CÃDÃ;DÄDÄDc                 ó†   — |j                  «       sy|j                  }|€J ‚|j                  dk7  ry| j                  «        y)zóRaise a :py:exc:`RuntimeError` on missing ``start_tls()``.

        It is necessary for TLS-in-TLS so that it is possible to
        send HTTPS queries through HTTPS proxies.

        This doesn't affect regular HTTP requests, though.
        NÚhttps)rÚ   r_  ÚschemeÚ_check_loop_for_start_tls)rD   rö   Ú	proxy_urls      rE   Ú_fail_on_no_start_tlsz"TCPConnector._fail_on_no_start_tlsæ  sB   € ð �z‰zŒ|Øà—I‘Iˆ	ØÐ$Ð$Ð$Ø×Ñ˜wÒ&Øà×&Ñ&Õ(rG   c                 ól   — 	 | j                   j                   y # t        $ r}t        d«      |‚d }~ww xY w)Na¶  An HTTPS request is being sent through an HTTPS proxy. This needs support for TLS in TLS but it is not implemented in your runtime for the stdlib asyncio.

Please upgrade to Python 3.11 or higher. For more details, please see:
* https://bugs.python.org/issue37179
* https://github.com/python/cpython/pull/28073
* https://docs.aiohttp.org/en/stable/client_advanced.html#proxy-support
* https://github.com/aio-libs/aiohttp/discussions/6044
)r`   Ú	start_tlsro  rv  )rD   Úattr_excs     rE   rŒ  z&TCPConnector._check_loop_for_start_tlsø  s<   € ð	Ø�J‰J× Ó øÜò 	Üð	Kóð ðûð	ús   ‚ ™	3¢.®3c                 óD   — 	 | j                  «        y# t        $ r Y yw xY w)NTF)rŒ  rv  rK   s    rE   Ú_loop_supports_start_tlsz%TCPConnector._loop_supports_start_tls	  s,   € ð	Ø×*Ñ*Ô,ð øô ò 	Ùð	ús   ‚ “	žÚunderlying_transportc                 ó¦   — |j                   j                  j                  dk7  ryt        |dd«      }|ryt	        j
                  dt        | d¬«       y)z6Issue a warning if the requested URL has HTTPS scheme.rŠ  NÚ_start_tls_compatibleFa  An HTTPS request is being sent through an HTTPS proxy. This support for TLS in TLS is known to be disabled in the stdlib asyncio (Python <3.11). This is why you'll probably see an error in the log below.

It is possible to enable it via monkeypatching. For more details, see:
* https://bugs.python.org/issue37179
* https://github.com/python/cpython/pull/28073

You can temporarily patch this as follows:
* https://docs.aiohttp.org/en/stable/client_advanced.html#proxy-support
* https://github.com/aio-libs/aiohttp/discussions/6044
é   )rn   r|   )Úrequest_infoÚurlr‹  ÚgetattrrM   rN   ÚRuntimeWarning)rD   r”  rö   Úasyncio_supports_tls_in_tlss       rE   Ú_warn_about_tls_in_tlsz#TCPConnector._warn_about_tls_in_tls  s\   € ð ×Ñ×Ñ×&Ñ&¨'Ò1Øä&-Ø Ø#Øó'
Ð#ñ 'Øä�‰ð
Gô Øð ö!	
rG   c              ƒ   ó2  K  — | j                  «       }t        t        j                  | j	                  |«      «      }	 t        |j                  |j                  ¬«      4 ƒd{  –—†  	 | j                  j                  ||||j                  xs |j                  |j                  ¬«      ƒ d{  –—† }ddd«      ƒd{  –—†  €d} ||j                  t!        |«      «      ‚|j#                  |«       ||fS 7 Œ”7 ŒK# t        $ r |j                  «        ‚ w xY w7 Œ[# 1 ƒd{  –—†7  sw Y   ŒkxY w# t$        $ r}	t'        |j                  |	«      |	‚d}	~	wt(        $ r}	t+        |j                  |	«      |	‚d}	~	wt         $ r@}	|	j,                  €t/        |	t0        j2                  «      r‚  ||j                  |	«      |	‚d}	~	wt4        $ rN}
t7        d|j                  ›d|j8                  d›d|j:                  ›d	|j                  xs d
› d|
›d�«      |
‚d}
~
ww xY w­w)z$Wrap the raw TCP transport with TLS.r�  N)Úserver_hostnameÚssl_handshake_timeoutz:Failed to start TLS (possibly caused by closing transport)z2Cannot initialize a TLS-in-TLS connection to host ú:Údz4 through an underlying connection to an HTTPS proxy z ssl:Údefaultz [ú])r·   r   r=  rf  rx  r-   rƒ  r‚  r`   r�  rŸ  r'  Útotalrü   r‹   rù   r…  Úconnection_mader'   r    r(   r"   r†  rw  r’   r‡  Ú	TypeErrorr   rN  r_  )rD   r”  rö   rÝ   r}  Ú	tls_protorr  Útls_transportÚmsgrÇ   Útype_errs              rE   Ú_start_tls_connectionz"TCPConnector._start_tls_connection6  s  è ø€ ð —M‘M“Oˆ	ô œ#Ÿ.™.¨$×*?Ñ*?ÀÓ*DÓEˆ
ð+	Ü#Ø×$Ñ$°W×5KÑ5Kô÷ ñ ðØ*.¯*©*×*>Ñ*>Ø,Ø!Ø"Ø(+×(;Ñ(;Ò(G¸s¿x¹xØ.5¯m©mð +?ó +÷ %�M÷	÷ ðJ Ð$ØR�Ù" 3×#5Ñ#5´w¸s³|ÓDÐDØ×%Ñ%Øôð ˜iÐ'Ð'ðYøð%ùô %ò ð )×.Ñ.Ô0Øðúðø÷ ÷ ñ ûô" ò 	TÜ1°#×2DÑ2DÀcÓJÐPSÐSûÜò 	LÜ)¨#×*<Ñ*<¸cÓBÈÐKûÜò 	AØ�y‰yÐ ¤Z°´W×5IÑ5IÔ%JØÙ˜s×1Ñ1°3Ó7¸SÐ@ûÜò 
	ô
 (ØDØ—8‘8�,˜a §¡¨˜|ð ,%Ø%(§Y¡Y M°°s·w±wÒ7KÀ)Ð6Lð MØ�<˜qð"óð
 ðûð
	üsº   ‚:H½%D0 Á"C7Á#D0 Á&DÁ(AC;Â-C9Â.C;Â2D0 Â=DÂ>D0 Ã5HÃ7D0 Ã9C;Ã;DÄDÄD0 ÄD-Ä!D$Ä"D-Ä)D0 Ä0	HÄ9EÅHÅE3Å3HÅ?;F:Æ:HÇA	HÈHÈHc             ƒ   ó²  K  — | j                  |«      }| j                  |«      }|j                  j                  }|€J ‚|j	                  d«      r|j                  d«      dz   }|j                  }|€J ‚t        j                  | j                  |||¬«      | j                  ¬«      }		 t        j                  |	«      ƒ d {  –—† }
d }|
D ]¡  }|d   }|d   }|r"|j(                  xs |d   j                  d«      nd }	 | j+                  | j,                  |||||d	   |d
   |d   || j.                  ||¬«      ƒ d {  –—† \  }}|j1                  «       r|r	 |j3                  |«       ||fc S  |€J ‚|‚7 Œ²# t        j                  $ r dd„}|	j                  |«       ‚ t        $ rC}|j                  €t!        |t        j"                  «      r‚ t%        |j&                  |«      |‚d }~ww xY w7 Œ±# t$        $ r}|}Y d }~�Œ6d }~ww xY w# t4        $ rD}|j7                  «        | j8                  s| j:                  j=                  |«       |}Y d }~�Œ†d }~ww xY w­w)Nz..ú.)r÷   r§   c                 óŠ   — t        t        t        j                  «      5  | j	                  «        d d d «       y # 1 sw Y   y xY wr~   )r   r†   r’   ÚCancelledErrorr[  )r  s    rE   Údrop_exceptionz>TCPConnector._create_direct_connection.<locals>.drop_exception”  s0   € Üœi¬×)?Ñ)?Ó@ñ !Ø—J‘J”L÷!÷ !ñ !ús	   Ÿ9¹Ar'  rN  rR  r;  rà   rS  )	rÝ   r=  r;  rà   rS  rŸ  r>  rö   r}  )r  z$asyncio.Future[List[Dict[str, Any]]]rA   N)rx  r{  r™  Úraw_hostÚendswithÚrstriprN  r’   Úensure_futurer]  r`   Úshieldr°  Úadd_done_callbackr…  r†  rw  r‡  r!   rù   rŸ  rˆ  r·   rH  rÚ   Úcheckr%   r‹   r»   r¼   rƒ   )rD   rö   r÷   rÝ   r}  rr  r8  r'  rN  Úhost_resolvedÚhostsr±  rÇ   Úlast_excÚhinforŸ  Útransprà   s                     rE   ra  z&TCPConnector._create_direct_connectionv  s  è ø€ ð ×*Ñ*¨3Ó/ˆ
Ø×+Ñ+¨CÓ0ˆà�w‰w×ÑˆØÐÐÐð �=‰=˜ÔØ—;‘;˜sÓ# cÑ)ˆDØ�x‰xˆØÐÐÐÜ×-Ñ-Ø×Ñ˜t T°&ÐÓ9ÀÇ
Á
ô
ˆð	Iô "Ÿ.™.¨Ó7×7ˆEð  )-ˆàò ,	ˆEØ˜‘=ˆDØ˜‘=ˆDñ ð ×$Ñ$Ò9¨¨jÑ(9×AÑAÀ#ÔFàð ðØ&*×&BÑ&BØ—M‘MØØØ#Ø"Ø  ™?Ø ™.Ø ™.Ø$3Ø#×/Ñ/ØØ!-ð 'Có '÷ !‘�˜ð$ �z‰zŒ|¡ðØ×%Ñ% fÔ-ð ˜5�=Ò ðS,	ðV Ð'Ð'Ð'ØˆNð} 8ùÜ×%Ñ%ò 	ó!ð ×+Ñ+¨NÔ;ØÜò 	IØ�y‰yÐ ¤Z°´W×5IÑ5IÔ%JØô ' s×'9Ñ'9¸3Ó?ÀSÐHûð	Iúð,!ùô (ò Ø�Ýûðûô 1ò Ø—L‘L”NØ×8Ò8Ø×7Ñ7×>Ñ>¸vÔFØ"�HÝûðüs¢   ‚B%IÂ(E5 Ã E3ÃE5 Ã7IÃ==G.Ä:G,Ä;G.ÅIÅHÅ&IÅ3E5 Å51G)Æ&>G$Ç$G)Ç)IÇ,G.Ç.	HÇ7G?Ç9IÇ?HÈIÈ	IÈ9IÉ	IÉIÉIc              ƒ   ó@  K  — | j                  |«       | j                  «       }i }|j                  �|j                  }|j                  t        j
                     |t        j
                  <   |j                  }|€J ‚t        t        j                  |||j                  | j                  |j                  ¬«      }| j                  |g |t        ¬«      ƒ d {  –—† \  }}	|	j                  «        |j                  j                  t        j                   d «      }
|
�K|j#                  «       s|
|j                  t        j$                  <   n|
|j                  t        j$                  <   |j#                  «       �r|r| j'                  ||«       t        j(                  |_        |j,                  |_        t/        j0                  |j2                  d d d ¬«      }t5        | ||	| j                  «      }|j7                  |«      ƒ d {  –—† }	 |j8                  }|€J ‚|j;                  || j<                  ¬«       |j?                  |«      ƒ d {  –—† }d |_        d |_         	 |jB                  dk7  re|jD                  }|€tG        |jB                  «      jH                  }tK        |jL                  |jN                  |jB                  ||j                  ¬«      ‚|s0|jQ                  dd ¬«      }|€tS        d	«      ‚|jU                  «       }|s|jY                  «        	 |sT| j[                  |«      }| j]                  | j^                  |||j`                  |¬
«      ƒ d {  –—† |jY                  «        S | jc                  |||¬«      ƒ d {  –—† |jY                  «        S ||	fS 7 �ŒÃ7 �Œ�7 �ŒY# tV        $ r |jY                  «        ‚ w xY w# |s|jY                  «        w w xY w7 Œƒ7 ŒY# tV        $ r" |jY                  «        |jY                  «        ‚ w xY w# |jY                  «        w xY w­w)N)ÚheadersÚauthr\   r=  r|  )r_  Ú
proxy_authÚproxy_headers_hash)Úread_until_eofr¥   éÈ   )Ústatusrr   r¿  Úsocket)r£  z)Transport does not expose socket instance)rÝ   r=  ÚsockrŸ  rö   )rö   rÝ   )2rŽ  r“  Úproxy_headersr¿  r   ÚHOSTr_  r*   ÚMETH_GETrÁ  r`   r=  ra  r$   r¡   r  ÚAUTHORIZATIONrÚ   ÚPROXY_AUTHORIZATIONr�  ÚMETH_CONNECTÚmethodr™  ÚattrÚevolverù   rX   Úsendra   Úset_response_paramsr©   Ústartr‘   rÅ  Úreasonr   Úphraser#   r˜  ÚhistoryÚget_extra_inforv  Úduprü   r‹   rx  rˆ  r·   r'  r¬  )rD   rö   r÷   rÝ   Úruntime_has_start_tlsr¿  r™  Ú	proxy_reqr   rà   rÀ  rZ   ÚconnÚ
proxy_respr[   Úresprr   Úrawsockrr  s                      rE   r`  z%TCPConnector._create_proxy_connectionÑ  sÒ  è ø€ ð 	×"Ñ" 3Ô'Ø $× =Ñ =Ó ?Ðà"$ˆØ×ÑÐ(Ø×'Ñ'ˆGØ Ÿ[™[¬¯©Ñ3ˆ”—	‘	Ñà�i‰iˆØˆÐˆÜ!Ü�M‰MØØØ—‘Ø—‘Ø—‘ô
ˆ	ð "&×!?Ñ!?Ø�r˜7Ô1Kð "@ó "
÷ 
Ñˆ	�5ð 	×ÑÔà× Ñ ×$Ñ$¤T×%7Ñ%7¸Ó>ˆØÐØ—:‘:”<Ø8<�—‘œD×4Ñ4Ò5à>B�	×!Ñ!¤$×":Ñ":Ñ;à�:‰:�<Ù$Ø×+Ñ+¨I°sÔ;ô  $×0Ñ0ˆIÔØŸG™GˆIŒMÜ—+‘+Ø×"Ñ"¨$¸4ÐTXôˆCô ˜d C¨°·
±
Ó;ˆDØ(Ÿ~™~¨dÓ3×3ˆJðE#ØŸ>™>�ØÐ+Ð+Ð+ð
 ×,Ñ,Ø#8Ø+/×+GÑ+Gð -ô ð (×-Ñ-¨dÓ3×3�ð "&�”Ø"&�”ð*Ø—{‘{ cÒ)Ø"&§+¡+˜Ø"˜?Ü&0°·±Ó&=×&DÑ&D˜GÜ2Ø&×3Ñ3Ø ŸL™LØ#'§;¡;Ø$+Ø$(§L¡Lôð ñ 1Ø"+×":Ñ":¸8ÈTÐ":Ó"R˜Ø"˜?Ü".Ø Kó#ð ð #*§+¡+£-˜ñ 1Ø!Ÿ™Õ)á,à!%×!6Ñ!6°sÓ!;�JØ!%×!=Ñ!=ØŸ™Ø 'Ø&Ø$Ø(+¯©Øð ">ó "÷ ð" × Ñ Õ"ð "×7Ñ7ð ØØ#ð 8ó ÷ ð × Ñ Õ"à˜%ÐÐðW
ùðF 4ùð 4úô8 %ò ð —O‘OÔ%Øðûñ 1Ø!Ÿ™Õ)ð 1úðøðùôc !ò Ø× Ñ Ô"Ø—
‘
”Øðûðr × Ñ Õ"üs²   ‚CPÃNÃD(PÇ>NÇ?PÈAO ÉNÉO É
P	 ÉB&N! Ë?AP	 ÍOÍP	 ÍPÍ(P	 Í?OÎ P	 ÎPÎPÎO Î!N<Î<N? Î?OÏP	 ÏP	 Ï+PÐP	 Ð	PÐP)NNr~   )rö   r*   rA   NrQ   )6rR   rS   rT   r›   r1   r—   r   Úbytesr  rf  r   r   r+   r   r”   r   r±   r  r’   r“   rF   r   r‹   r•   r;  r9  rP  r   r   r   r]  r*   r)   r  Ústaticmethodrµ   Ú	lru_cachert  rx  r{  r!   r   r†   r–   rˆ  rŽ  rŒ  r“  r�  ÚBaseTransportr¬  ra  r`  Ú__classcell__©rI  s   @rE   r5   r5   ×  sý  ø„ ñð6  Ø'+Ø"Ø')ØØ,0ØDHØ04Ø/3Ø8@Ø!ØØØ&+Ø48Ø()ò%'&ð ð'&ð ˜e‘_ð	'&ð
 ð'&ð   ‘}ð'&ð ð'&ð ˜jÑ)ð'&ð �4˜ ™¨°jÐ@ÑAð'&ð ˜U 3¨ 8™_Ñ-ð'&ð Ð+Ñ,ð'&ð !  u¨fÐ!4Ñ5ð'&ð ð'&ð ð'&ð ð'&ð   $ð!'&ð" �w×0Ñ0Ñ1ð#'&ð$ !&õ%'&ðR�y ‘õ ð ð˜ò ó ðð ð#˜tò #ó ð#ð
 AEñ	'Ø˜S‘Mð	'Ø08¸±ð	'à	ó	'ð GKñJ2ØðJ2Ø"ðJ2Ø,4°T¸'±]Ñ,CðJ2à	ˆd�3˜�8‰nÑ	óJ2ðXØ ðØ*.¨w©-ðØBQðà	óð Ø€Y×Ñ˜Óð Dð ¨Zò ó ó ðð* Mð °h¸zÑ6Jó ðB Mð °h¸}Ñ6Mó ð )=òAàðAð ðAð !ð	Að
 ˜9‘oðAð ðAð 
ˆw× Ñ  /Ð1Ñ	2óAó,)ó$ð"¨$ó ð#
à%×/Ñ/ð#
ð ð#
ð 
ó	#
ðT )=ñ>(à%×/Ñ/ð>(ð ð>(ð !ð	>(ð
 ˜9‘oð>(ð 
ˆw×$Ñ$ oÐ5Ñ	6ó>(ðL )=òYàðYð �W‘ðYð !ð	Yð ˜9‘oðYð 
ˆw× Ñ  /Ð1Ñ	2óYðvB Ø ðB Ø*.¨w©-ðB ØBQðB à	ˆw×$Ñ$ oÐ5Ñ	6÷B rG   r5   c                   ó¦   ‡ — e Zd ZdZdedddfdededeee	df   d	e
d
e
deej                     ddfˆ fd„Zedefd„«       Zdeded   dddefd„Zˆ xZS )r6   a�  Unix socket connector.

    path - Unix socket path.
    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    loop - Optional event loop.
    Fr�   r   NÚpathr¡   r    r¢   r£   r\   rA   c                 ó<   •— t         ‰| �  |||||¬«       || _        y )N©r¡   r    r¢   r£   r\   )rA  rF   Ú_path©rD   ræ  r¡   r    r¢   r£   r\   rI  s          €rE   rF   zUnixConnector.__init__b  s/   ø€ ô 	‰ÑØ#Ø/ØØ)Øð 	ô 	
ð ˆ�
rG   c                 ó   — | j                   S )zPath to unix socket.©ré  rK   s    rE   ræ  zUnixConnector.patht  ó   € ð �z‰zÐrG   rö   r÷   r:   rÝ   r8   c              ƒ   óæ  K  — 	 t        |j                  |j                  ¬«      4 ƒd {  –—†  | j                  j	                  | j
                  | j                  «      ƒ d {  –—† \  }}d d d «      ƒd {  –—†  |S 7 ŒQ7 Œ7 Œ
# 1 ƒd {  –—†7  sw Y   S xY w# t        $ rN}|j                  €t        |t        j                  «      r‚ t        | j                  |j                  |«      |‚d }~ww xY w­wr€  )r-   rƒ  r‚  r`   Úcreate_unix_connectionr·   ré  r…  r†  rw  r’   r‡  r&   ræ  rù   ©rD   rö   r÷   rÝ   rb  rà   rÇ   s          rE   r  z UnixConnector._create_connectiony  sß   è ø€ ð
	XÜ#Ø×$Ñ$°W×5KÑ5Kô÷ ñ ð "&§¡×!BÑ!BØ—M‘M 4§:¡:ó"÷ ‘��5÷÷ ð ˆðøðøðø÷ ÷ ð ð ˆûô ò 	XØ�y‰yÐ ¤Z°´W×5IÑ5IÔ%JØÜ*¨4¯9©9°c×6HÑ6HÈ#ÓNÐTWÐWûð	XüsŒ   ‚C1„%B ©A;ªB ­4BÁ!A=Á"BÁ)B Á4A?Á5B Á9C1Á;B Á=BÁ?B ÂBÂB
ÂBÂB ÂC1ÂB Â	C.Â A	C)Ã)C.Ã.C1©rR   rS   rT   r›   r1   r”   r—   r   r  r±   r  r   r’   r“   rF   r•   ræ  r*   r   r)   r  rã  rä  s   @rE   r6   r6   V  s½   ø„ ñ	ð "Ø8@ØØØ48ñàðð ðð ! ¨°Ð!4Ñ5ð	ð
 ðð ðð �w×0Ñ0Ñ1ðð 
õð$ ð�cò ó ððØ ðØ*.¨w©-ðØBQðà	÷rG   r6   c                   ó¦   ‡ — e Zd ZdZdedddfdededeee	df   d	e
d
e
deej                     ddfˆ fd„Zedefd„«       Zdeded   dddefd„Zˆ xZS )r7   aþ  Named pipe connector.

    Only supported by the proactor event loop.
    See also: https://docs.python.org/3/library/asyncio-eventloop.html

    path - Windows named pipe path.
    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    loop - Optional event loop.
    Fr�   r   Nræ  r¡   r    r¢   r£   r\   rA   c                 óš   •— t         ‰| �  |||||¬«       t        | j                  t        j
                  «      st        d«      ‚|| _        y )Nrè  z9Named Pipes only available in proactor loop under windows)rA  rF   rw  r`   r’   ÚProactorEventLooprv  ré  rê  s          €rE   rF   zNamedPipeConnector.__init__š  sZ   ø€ ô 	‰ÑØ#Ø/ØØ)Øð 	ô 	
ô Ø�J‰Jœ×1Ñ1ô
ô ØNóð ð ˆ�
rG   c                 ó   — | j                   S )zPath to the named pipe.rì  rK   s    rE   ræ  zNamedPipeConnector.path²  rí  rG   rö   r÷   r:   rÝ   r8   c              ƒ   ó(  K  — 	 t        |j                  |j                  ¬«      4 ƒd {  –—†  | j                  j	                  | j
                  | j                  «      ƒ d {  –—† \  }}t        j                  d«      ƒ d {  –—†  d d d «      ƒd {  –—†  t        t         «      S 7 Œ|7 ŒF7 Œ(7 Œ# 1 ƒd {  –—†7  sw Y   Œ*xY w# t        $ rC}|j                  €t        |t        j                  «      r‚ t        |j                  |«      |‚d }~ww xY w­w)Nr�  r   )r-   rƒ  r‚  r`   Úcreate_pipe_connectionr·   ré  r’   Úsleepr…  r†  rw  r‡  r!   rù   r   r)   rð  s          rE   r  z%NamedPipeConnector._create_connection·  só   è ø€ ð	IÜ#Ø×$Ñ$°W×5KÑ5Kô÷ 
'ñ 
'ð "&§¡×!BÑ!BØ—M‘M 4§:¡:ó"÷ ‘��5ô —m‘m AÓ&×&Ð&÷
'÷ 
'ô$ ”O UÓ+Ð+ð%
'øðøð 'øð
'ø÷ 
'÷ 
'ñ 
'ûô ò 	IØ�y‰yÐ ¤Z°´W×5IÑ5IÔ%JØÜ& s×'9Ñ'9¸3Ó?ÀSÐHûð	Iüs‘   ‚D„%C ©B&ªC ­4B.Á!B(Á"B.ÂB*ÂB.ÂC ÂB,ÂC ÂDÂ&C Â(B.Â*B.Â,C Â.C Â4B7Â5C Â<C Ã	DÃ>D
Ä
DÄDrñ  rä  s   @rE   r7   r7   ‹  s½   ø„ ñð" "Ø8@ØØØ48ñàðð ðð ! ¨°Ð!4Ñ5ð	ð
 ðð ðð �w×0Ñ0Ñ1ðð 
õð0 ð�cò ó ðð,Ø ð,Ø*.¨w©-ð,ØBQð,à	÷,rG   r7   )Xr’   rµ   r  rf   rd   rM   Úcollectionsr   r   Ú
contextlibr   Úhttpr   Úhttp.cookiesr   Ú	itertoolsr   r	   rØ   r
   Útypesr   Útypingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rÏ  Ú r   r   Úabcr   Úclient_exceptionsr   r    r!   r"   r#   r$   r%   r&   r'   r(   Úclient_protor)   Úclient_reqrepr*   r+   r,   r-   r.   r/   r0   r1   Úlocksr2   r?  r3   r=  rf  ÚImportErrorr  Ú__all__Úclientr8   r9   Útracingr:   r<   rX   r™   r4   r!  r5   r6   r7   rV   rG   rE   ú<module>r
     s  ðÛ Û Û Û 
Û Û ß *Ý Ý Ý %ß #Ý Ý ÷÷ ÷ ÷ ñ ó$ ç Ý !÷÷ ÷ õ *ß HÑ Hß RÕ RÝ %Ý %ðÛà—‘€Jð S€ñ Ý%Ý,Ý÷ñ ÷(TKñ TK÷nñ ÷s$ñ s$÷l$?ñ $?ôN|	 �=ô |	 ô~2�Mô 2ôjB,˜õ B,øðc* ò Ø
€CØ‚Jðús   Â>D8 Ä8	EÅE