
    Ng7                     \   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Zd dlZd dlZd dl	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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$m%Z%m&Z& d dl'm(Z( dd	l)m*Z*m+Z+m,Z,m-Z-m.Z. dd
l/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9 ddl:m;Z; ddl+m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF ddl,mGZGmHZHmIZImJZJmKZK ddlLmMZM ddlNmOZO ddlPmQZQmRZRmSZSmTZTmUZUmVZV 	 d dlWZWd dlWmXZX n# eY$ r dZWeZZXY nw xY wdZ[erddl\m]Z] ddl^m_Z_ ddl`maZa  ejb        d          Zc ejb        d          ZddeefdZf e!jg        ddd           G d d                      Zh G d  d!e          Zi G d" d#ei          Zj G d$ d%          ZkeWeWjX        elek emd          fZnnel emd          fZnd&e d'elekf         d(eel         d)ed'         d*eeo         de d'elekf         f
d+Zp eqd,          Zr G d- d.e          Zsd/eed0eedelfd1Zt G d2 d3          Zu e2d4          Zv G d5 d6e?          ZwdS )7    N)md5sha1sha256)CookieErrorMorselSimpleCookie)MappingProxyTypeTracebackType)TYPE_CHECKINGAnyCallableDictIterableListMapping
NamedTupleOptionalTupleTypeUnion)CIMultiDictCIMultiDictProxy	MultiDictMultiDictProxy)URL   )hdrshelpershttp	multipartpayload)AbstractStreamWriter)ClientConnectionErrorClientOSErrorClientResponseErrorContentTypeError
InvalidURLServerFingerprintMismatch
HAS_BROTLI)FormData)	_SENTINELBaseTimerContext	BasicAuthHeadersMixin	TimerNoopbasicauth_from_netrcnetrc_from_envnoopreifyset_exception
set_result)SERVER_SOFTWAREHttpVersionHttpVersion10HttpVersion11StreamWriter)client_logger)StreamReader)DEFAULT_JSON_DECODERJSONDecoderLooseCookiesLooseHeadersQuery
RawHeaders)
SSLContext)ClientRequestClientResponseRequestInfoFingerprint)ClientSession)
Connection)Tracez[^-!#$%&'*+.^_`|~0-9a-zA-Z]z!^application/(?:[\w.+-]+?\+)?jsonreturnc                      t           rdndS )Nzgzip, deflate, brzgzip, deflater)        Q/var/www/html/ai-engine/env/lib/python3.11/site-packages/aiohttp/client_reqrep.py_gen_default_accept_encodingrQ   `   s    ",A/ArO   T)auto_attribsfrozenslotsc                   F    e Zd ZU ee         ed<   ded<   ee         ed<   dS )ContentDispositiontypezMappingProxyType[str, str]
parametersfilenameN)__name__
__module____qualname__r   str__annotations__rN   rO   rP   rV   rV   d   s>         
3-,,,,smrO   rV   c                   8    e Zd ZU eed<   eed<   ded<   eed<   dS )_RequestInfourlmethodCIMultiDictProxy[str]headersreal_urlN)rZ   r[   r\   r   r^   r]   rN   rO   rP   r`   r`   k   s7         	HHHKKK$$$$MMMMMrO   r`   c                   .    e Zd Zefdededddedd f
dZdS )	rG   ra   rb   rd   rc   re   rL   c                 V    t                               | ||||t          u r|n|f          S )zuCreate a new RequestInfo instance.

        For backwards compatibility, the real_url parameter is optional.
        )tuple__new__r,   )clsra   rb   rd   re   s        rP   ri   zRequestInfo.__new__t   s6     }}#vwx9/D/D(S
 
 	
rO   N)rZ   r[   r\   r,   r   r]   ri   rN   rO   rP   rG   rG   r   sb         "
 

 
 )	

 
 

 
 
 
 
 
rO   rG   c                   `    e Zd ZeeedZdeddfdZe	defd            Z
dej        ddfdZdS )	rH   )          fingerprintrL   Nc                     t          |          }| j                            |          }|st          d          |t          u s	|t
          u rt          d          || _        || _        d S )Nzfingerprint has invalid lengthz8md5 and sha1 are insecure and not supported. Use sha256.)lenHASHFUNC_BY_DIGESTLENget
ValueErrorr   r   	_hashfunc_fingerprint)selfro   	digestlenhashfuncs       rP   __init__zFingerprint.__init__   st    $$	-11)<< 	Y=>>>__D 0 0WXXX!'rO   c                     | j         S N)rv   rw   s    rP   ro   zFingerprint.fingerprint         rO   	transportc                 L   |                     d          sd S |                     d          }|                    d          }|                     |                                          }|| j        k    r/|                     d          ^}}}t          | j        |||          d S )N
sslcontext
ssl_objectT)binary_formpeername)get_extra_infogetpeercertru   digestrv   r(   )rw   r   sslobjcertgothostport_s           rP   checkzFingerprint.check   s    ''55 	F)),77!!d!33nnT""))++$###&55jAAND$+D,=sD$OOO $#rO   )rZ   r[   r\   r   r   r   rr   bytesrz   propertyro   asyncio	Transportr   rN   rO   rP   rH   rH      s         (E (d ( ( ( ( !U ! ! ! X!Pw0 PT P P P P P PrO   rH   sslrD   
verify_sslssl_contextro   c                    | d} |3|s1t          j        dt          d           | durt          d          d} |1t          j        dt          d           | durt          d          |} |>t          j        dt          d           | durt          d          t	          |          } t          | t                    s"t          d	                    |                     | S )
NTz/verify_ssl is deprecated, use ssl=False instead   
stacklevelzNverify_ssl, ssl_context, fingerprint and ssl parameters are mutually exclusiveFz2ssl_context is deprecated, use ssl=context insteadzCfingerprint is deprecated, use ssl=Fingerprint(fingerprint) insteadzFssl should be SSLContext, bool, Fingerprint or None, got {!r} instead.)	warningswarnDeprecationWarningrt   rH   
isinstanceSSL_ALLOWED_TYPES	TypeErrorformat)r   r   r   ro   s       rP   _merge_ssl_paramsr      sJ    {j=	
 	
 	
 	

 d??4  
 C@	
 	
 	
 	

 d??4  
 CQ	
 	
 	
 	

 d??4  
 k**Cc,-- 
  &s
 
 	
 JrO   )httpswssc                       e Zd ZU eed<   ee         ed<   eed<   ee	ee
f         ed<   ee         ed<   ee         ed<   ee         ed<   dS )	ConnectionKeyr   r   is_sslr   proxy
proxy_authproxy_headers_hashN)rZ   r[   r\   r]   r^   r   intboolr   rD   rH   r   r.   rN   rO   rP   r   r      s          III
3-LLL	z4,	----C=#### %%%%%rO   r   response_content_typeexpected_content_typec                 N    |dk    rt                               |           d uS || v S )Napplication/json)json_rematch)r   r   s     rP   _is_expected_content_typer      s4      222}}2334?? $999rO   c            0          e Zd ZU ej        ej        ej        ej        hZej	        ej
        ej        hZe                    e                              ej        h          Zej        dej         e            iZdZeed<   dZdZdZdZdZed         ed<   ddddddej        ddddddddddddddd	d
ede de!dee"         dee#e                  dedee$         dee%         dej&        de'ee(df         dee(         de(dee)j*                 dee+d                  dee          dee%         dee,         ded         de'e-e(e.f         dee"         d ee/d!                  d"e(d#ee         f.d$Z0dJd%e1d&dfd'Z2e3d&e4d         fd(            Z5e3d&ed)         fd*            Z6e6j7        dKd,            Z6d&e(fd-Z8e3d&e'd.e(e.f         fd/            Z9e3d&e:fd0            Z;e3d&efd1            Z<e3d&ee=         fd2            Z>e3d&e?fd3            Z@de d&dfd4ZAde'ej&        ef         d&dfd5ZBdee"         d&dfd6ZCdee#e                  d&dfd7ZDdee$         d&dfd8ZEded&dfd9ZFdLd:ZGdMdee%         d"e(d&dfd;ZHded&dfd<ZIdMd=e(d&dfd>ZJdee          dee%         dee"         d&dfd?ZKd+eLd@dAd&dfdBZMdNdCZNdLdDZOdLdEZPd
ede dFeQd&dfdGZRd
ede ddHd&dfdIZSdS )OrE   z*/*rO   bodyNzCIMultiDict[None]_skip_auto_headersFT)paramsrd   skip_auto_headersdatacookiesauthversioncompresschunked	expect100loopresponse_classr   r   timersessionr   proxy_headerstraces	trust_envserver_hostnamerb   ra   r   rd   r   r   r   r   r   r   r   r   r   r   rF   r   r   r   r   rI   r   r   r   rK   r   r   c                J   |t          j                    }t                              |          x}r(t	          d|d|                                d          t          |          t          u s
J |            | t          |          t          u s
J |            t          r|J || _	        |r|
                    |          }|| _        |j        r|                    d           n|| _        |                                | _        || _        |
| _        || _        d | _        |t*          }n|}|| _        ||nt/                      | _        ||nd| _        || _        |                                r+t9          j        t=          j        d                    | _         | !                    |	           | "                    |           | #                    |           | $                    |           | %                    |           | &                    |           | '                    ||           | (                    |||           | )                    |           || j        | j*        vr| +                                 | ,                    |           |g n|| _-        d S )Nz+Method cannot contain non-token characters z (found at least )Tr   ).r   get_event_loop_CONTAINS_CONTROL_CHAR_REsearchrt   grouprW   r   r   _sessionextend_queryoriginal_urlraw_fragmentwith_fragmentra   upperrb   r   r   r   lengthrF   r   r0   _timer_sslr   	get_debug	tracebackextract_stacksys	_getframe_source_tracebackupdate_versionupdate_hostupdate_headersupdate_auto_headersupdate_cookiesupdate_content_encodingupdate_authupdate_proxyupdate_body_from_dataGET_METHODSupdate_transfer_encodingupdate_expect_continue_traces)rw   rb   ra   r   rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   real_response_classs                             rP   rz   zClientRequest.__init__  s   6 <)++D-44V<<<5 	6f 6 6#(;;==6 6 6  
 CyyC;;#%%%u%%%  	'&&& 	+""6**C.1.>G3$$T***Cllnn 	!"0"04G$0eeikk?CC	.>> 	O%.%<S]1=M=M%N%ND"G$$$G$$$  !2333G$$$$$T***y)))%];;;""4(((t{$2BBB))+++##I...#^rrrO   r   rL   c                     d | _         d S r|   _ClientRequest__writerrw   r   s     rP   __reset_writerzClientRequest.__reset_writerh      rO   c                 ,    | j         pt                      S r|   )r   r   r}   s    rP   r   zClientRequest.skip_auto_headersk  s    &7+--7rO   asyncio.Task[None]c                     | j         S r|   r   r}   s    rP   _writerzClientRequest._writero  
    }rO   writerc                     | j         | j                             | j                   || _         |                    | j                   d S r|   )r   remove_done_callback_ClientRequest__reset_writeradd_done_callbackrw   r   s     rP   r   zClientRequest._writers  sG    =$M..t/BCCC  !455555rO   c                 (    | j         j        t          v S r|   )ra   scheme_SSL_SCHEMESr}   s    rP   r   zClientRequest.is_sslz  s    x,..rO   rD   c                     | j         S r|   )r   r}   s    rP   r   zClientRequest.ssl}  
    yrO   c           
          | j         x}r/t          t          |                                                    }nd }| j        }t                              t          |j        pd|j        |j	        t          v | j        | j        | j        |f          S )N )r   hashrh   itemsra   ri   r   raw_hostr   r   r   r   r   r   )rw   r   hra   s       rP   connection_keyzClientRequest.connection_key  s     ..= 	#E-*=*=*?*?$@$@AAAAAh}}"
l*	

 
 	
rO   c                 &    | j         j        }|J |S r|   )ra   r  )rw   rets     rP   r   zClientRequest.host  s    h
rO   c                     | j         j        S r|   )ra   r   r}   s    rP   r   zClientRequest.port  s    x}rO   c                     t          | j                  }t                              t          | j        | j        || j        f          S r|   )r   rd   rh   ri   rG   ra   rb   r   )rw   rd   s     rP   request_infozClientRequest.request_info  s>    )9$,)G)G
 }}$(DK$:KL
 
 	
rO   c                     |j         st          |          |j        s|j        r*t	          j        |j        pd|j        pd          | _        dS dS )z8Update destination host, port and connection type (ssl).r  N)	r  r'   raw_userraw_passwordr   r.   userpasswordr   )rw   ra   s     rP   r   zClientRequest.update_host  sc     | 	"S//! < 	N3+ 	N)#(.b#,:L"MMDIII	N 	NrO   c                 :   t          |t                    r~d |                    dd          D             }	 t          j        t          |d                   t          |d                             }n!# t          $ r t          d|           dw xY w|| _        dS )zdConvert request version to two elements tuple.

        parser HTTP version '1.1' => (1, 1)
        c                 6    g | ]}|                                 S rN   )strip).0parts     rP   
<listcomp>z0ClientRequest.update_version.<locals>.<listcomp>  s     @@@$@@@rO   .r   r   z#Can not parse http version number: N)r   r]   splitr   r8   r   rt   r   )rw   r   vs      rP   r   zClientRequest.update_version  s    
 gs## 	@@'--Q*?*?@@@A*3qt99c!A$ii@@    C'CC  s   ;A3 3Bc                 `   t                      | _        | j        j        }|J || j        t          j        <   |sdS t          |t          t          t          f          r|
                                }|D ]9\  }}|t          j        v r|| j        |<   | j                            ||           :dS )zUpdate request headers.N)r   rd   ra   host_port_subcomponentr   HOSTr   dictr   r   r  HOST_ALLadd)rw   rd   r   keyvalues        rP   r   zClientRequest.update_headers  s    )4 x. "&TY 	Fgni@AA 	&mmooG! 	- 	-JCdm##$)S!!  e,,,,	- 	-rO   c                    |_t          d t          |          D                       | _        | j                                        }|                    | j                   n| j        }| j                                        D ]\  }}||vr
|| j        |<   t          j	        |vrt          | j        t          j	        <   d S d S )Nc              3      K   | ]}|d fV  	d S r|   rN   )r  hdrs     rP   	<genexpr>z4ClientRequest.update_auto_headers.<locals>.<genexpr>  s7       2 2 #d2 2 2 2 2 2rO   )r   sortedr   rd   copyextendDEFAULT_HEADERSr  r   
USER_AGENTr7   )rw   r   used_headersr$  vals        rP   r   z!ClientRequest.update_auto_headers  s    (&1 2 2'-.?'@'@2 2 2 ' 'D#  <,,..L 78888  <L,2244 	( 	(HC,&&$'S!?,..,;DL))) /.rO   c                    |sdS t                      }t          j        | j        v rJ|                    | j                            t          j        d                     | j        t          j        = t          |t                    r|                                }n|}|D ]r\  }}t          |t                    rS|                    |j
        t                                }|                    |j
        |j        |j                   |||<   m|||<   s|                    dd                                          | j        t          j        <   dS )zUpdate request cookies header.Nr  ;)headersep)r   r   COOKIErd   loadrs   r   r   r  r   r   setr!  coded_valueoutputr  )rw   r   citer_cookiesnamer!  mrsl_vals          rP   r   zClientRequest.update_cookies  s     	FNN;$,&&FF4<##DK44555T[)gw'' 	#"==??LL"L' 	  	 KD%%((   99UY99UYU5FGGG"$$$%HHBCH$@$@$F$F$H$HT[!!!rO   c                 (   |s	d| _         dS | j                            t          j                  r| j         rt          d          dS | j         rCt          | j         t                    sd| _         | j         | j        t          j        <   d| _        dS dS )zSet request content encoding.Nz9compress can not be set if Content-Encoding header is setdeflateT)	r   rd   rs   r   CONTENT_ENCODINGrt   r   r]   r   )rw   r   s     rP   r   z%ClientRequest.update_content_encoding  s     	 DMF<D122 		 }  O    ] 	 dmS11 * )26-DL./DLLL		  	 rO   c                    | j                             t          j        d                                          }d|v r| j        rt          d          dS | j        r8t          j        | j         v rt          d          d| j         t          j        <   dS t          j        | j         vr5t          t          | j
                            | j         t          j        <   dS dS )z!Analyze transfer-encoding header.r  r   zDchunked can not be set if "Transfer-Encoding: chunked" header is setz6chunked can not be set if Content-Length header is setN)rd   rs   r   TRANSFER_ENCODINGlowerr   rt   CONTENT_LENGTHr]   rq   r   )rw   tes     rP   r   z&ClientRequest.update_transfer_encoding  s    \d4b99??AA??|  D    \ 		H"dl22 L   4=DL/000"$,6647DI4G4GT0111 76rO   c                    || j         }|g|re| j        j        Yt                      }t	          j        t                    5  t          || j        j                  }ddd           n# 1 swxY w Y   |dS t          |t          j
                  st          d          |                                | j        t          j        <   dS )zSet basic auth.Nz%BasicAuth() tuple is required instead)r   ra   r   r2   
contextlibsuppressLookupErrorr1   r   r   r.   r   encoderd   r   AUTHORIZATION)rw   r   r   	netrc_objs       rP   r   zClientRequest.update_auth0  s   <9D<I<$(-*C&((I$[11 F F+Itx}EEF F F F F F F F F F F F F F F<F$ 122 	ECDDD+/;;==T'(((s   A((A,/A,c                    |d S t          |t                    r
 |            }	 t          j                            |d           }n,# t          j        $ r  t          |                      }Y nw xY w|| _        | j        sEt          j	        | j
        vr2|j        x}"t          |          | j
        t          j	        <   nd| _        |j
        sJ | j
        }| j        }|j
                                        D ]\  }}||v s|||v r|||<   d S )N)dispositionT)r   r+   r!   PAYLOAD_REGISTRYrs   rE  r   r   r   r@  rd   sizer]   r   r  )rw   r   rL  rd   skip_headersr   r!  s          rP   r   z#ClientRequest.update_body_from_data@  sB   <F dH%% 	466D	$+//$/GGDD" 	$ 	$ 	$!8D>>##DDD	$ 	 | 	$ 34< G G	!.47IIT011# |,.,,,.. 	! 	!JCg~~,":sl?R?R GCLL	! 	!s   !A &A0/A0expectc                     |rd| j         t          j        <   nBt          j        | j         v r/| j         t          j                                                 dk    rd}|r | j                                        | _        d S d S )Nz100-continueT)rd   r   EXPECTr?  r   create_future	_continue)rw   rN  s     rP   r   z$ClientRequest.update_expect_continue_  sz     	(6DL%%K4<''T[)//11^CCF 	7!Y4466DNNN	7 	7rO   c                    || _         |d | _        d | _        d S |r)t          |t          j                  st          d          || _        |+t          |t          t          f          st          |          }|| _        d S )Nz,proxy_auth must be None or BasicAuth() tuple)
r   r   r   r   r   r.   rt   r   r   r   )rw   r   r   r   s       rP   r   zClientRequest.update_proxyk  s     
="DO!%DF 	MjW5FGG 	MKLLL$$ZI~6.
 .
$ (66M*rO   connrJ   c                   K   | j         '|                                 d{V  | j          d{V  |j        }|J 	 t          | j        t
          j                  r!| j                            |           d{V  nSt          | j        t          t          f          r| j        f| _        | j        D ]}|                    |           d{V  |
                                 d{V  |                                 dS # t          $ ra}|}|j        dupt          |t          j                   }|rt!          |j        d| j                  }t%          |||           Y d}~dS d}~wt          j        $ r |                                  t*          $ r,}t%          |t-          d|          |           Y d}~dS d}~ww xY w)z-Support coroutines that yields bytes objects.NzCan not write request body for z4Failed to send bytes into the underlying connection )rR  drainprotocolr   r   r!   Payloadwriter   	bytearray	write_eofstart_timeoutOSErrorerrnor   TimeoutErrorr$   ra   r5   CancelledErrorclose	Exceptionr#   )rw   r   rT  rW  chunkunderlying_excreraised_excexc_is_not_timeouts           rP   write_byteszClientRequest.write_bytes  sp     
 >%,,..       .       =###$	%$)W_55 .ioof----------di%);<< -!%DI!Y . .E ,,u----------6 ""$$$$$$$$$""$$$$$7  	B 	B 	B)L!/!5T!A " 4J J F " ,"(CdhCC   
 (L.AAAAAAAAA% 	 	 	JJLLL 	 	 	%T4TT          	s%   BD   
G
AE&&0G!F==Gc                 X  K   | j         t          j        k    r"| j        j        }|J | d| j        j         }n<| j        r)|                                 st          | j                  }n| j        j	        }|j
        }|J t          || j        | j        r%t          j        | j        | j         | j                  nd | j        r%t          j        | j        | j         | j                  nd           }| j        r|                    | j                   | j        |                                 | j         | j        v rA| j        t          j        | j        vr't          j        | j        vrd| j        t          j        <   | j        }t          j        | j        vrK|j        j        r |t<          k    rd| j        t          j        <   n|t>          k    rd| j        t          j        <   | j          d| d|j          d|j!         }|"                    || j                   d {V  | j#        s| j$        |j%        r|| &                    ||          }tN          j(        d	k    rtS          j*        || j        d
          }	n| j        +                    |          }	|	,                                rd }	n2|	| _-        n*|.                                 |/                                 d }	| j0        }
|
J  |
| j         | j1        |	| j$        | j2        | j3        | j        | j        | j4        	  	        | _5        | j5        S )N:)on_chunk_senton_headers_sentzapplication/octet-streamra  z
keep-alive z HTTP/r  )r      T)r   eager_start)r   continue100r   r  r   r   r   )6rb   r   METH_CONNECTra   host_subcomponentr   r   r   r]   raw_path_qsrW  r;   r   r   	functoolspartial_on_chunk_request_sent_on_headers_request_sentr   enable_compressionr   enable_chunkingPOST_METHODSr   CONTENT_TYPErd   r   
CONNECTION
_connectorforce_closer:   r9   majorminorwrite_headersr   rR  writing_pausedrg  r   version_infor   Taskcreate_taskdoner   r\  set_eofr   r   r   r  r   response)rw   rT  connect_hostpathrW  r   r  status_linecorotaskr   s              rP   sendzClientRequest.send  sG     
 ;$+++85L+++"44TX]44DDZ 	( 	(tx==DD8'D=###I <	!$"=t{DHUUU <	!$"?dhWWW
 
 
 = 	5%%dm444<#""$$$ K4,,,'/$D,CCC!55.HDL*+L?$,..* =%%4;DL1m##0<T_- FFtFF17FFQWFF"";=========9 	2h6M2##FD11D7** |DtydKKKy,,T22yy{{ $# ""$$$NND,)))&K+*<M

 

 

 }rO   c                    K   | j         f	 | j          d {V  d S # t          j        $ rD t          j        dk    r*t          j                    x}r|                                r Y d S Y d S Y d S w xY wd S N)r      )r   r   r`  r   r  current_task
cancellingrw   r  s     rP   ra  zClientRequest.close  s      =$m#########)   $//!(!5!7!77 0)) 0 	 0//////// %$s    A	A-,A-c                     | j         Z| j                                        s| j                                          | j                             | j                   d | _         d S d S r|   )r   r   	is_closedcancelr   r   r}   s    rP   	terminatezClientRequest.terminate  s`    =$9&&(( '$$&&&M..t/BCCC DMMM	 %$rO   rc  c                 X   K   | j         D ]}|                    |||           d {V   d S r|   )r   send_request_chunk_sent)rw   rb   ra   rc  traces        rP   ru  z$ClientRequest._on_chunk_request_sent%  sR      \ 	D 	DE//UCCCCCCCCCC	D 	DrO   zCIMultiDict[str]c                 X   K   | j         D ]}|                    |||           d {V   d S r|   )r   send_request_headers)rw   rb   ra   rd   r  s        rP   rv  z&ClientRequest._on_headers_request_sent)  sT       \ 	C 	CE,,VS'BBBBBBBBBB	C 	CrO   r|   )r   r   rL   NrL   N)F)rT  rJ   rL   rF   )TrZ   r[   r\   r   METH_GET	METH_HEADMETH_OPTIONS
METH_TRACEr   
METH_PATCH	METH_POSTMETH_PUTry  unionMETH_DELETEALL_METHODSACCEPTACCEPT_ENCODINGrQ   r)  r   r   r^   r   r  r   rR  r   r   r   r:   r]   r   rB   rA   r   r@   r.   r8   r   r   r   AbstractEventLoopr   r-   rD   rH   r   rz   objectr   r   r   r   r   setterr   r   r   r  r   r   r   rG   r  r   r   r   r   r   r   r   r   r   r   r   r"   rg  r  ra  r  r   ru  rv  rN   rO   rP   rE   rE      s        	K OT^T]CL##L11779I8JKKK 	U::<<O D#OOODHHI8<!45<<< *.59*.$($($6+/"&48;?#*.,0-14804*.)-3M8 M8 M8M8 M8
 M8 ,'M8 $HSM2M8 M8 ,'M8 y!M8 !M8 T4(M8 $M8 M8 w01M8  !&6!78!M8" }#M8$ Y'%M8& ()'M8( /*)M8* :t[01+M8,  --M8. g'/M80 1M82 "#3M8 M8 M8 M8^  $     8;t#4 8 8 8 X8 "67    X ^6 6 6 ^6/ / / / / U<{:;    X 
 
 
 
 X
& c    X
 hsm    X 
k 
 
 
 X
Ns Nt N N N NeD,<c,A&B t    -h|&< - - - - -2<Xhsm5L <QU < < < <&Ih|&< I I I I I2 C  D        $H H H H,9 9 3 9 9QU 9 9 9 9 !# !$ ! ! ! !>
7 
7T 
7d 
7 
7 
7 
7+}+ Y'+  -	+
 
+ + + +,/%*/%2>/%	/% /% /% /%b^ ^ ^ ^@
 
 
 
! ! ! !D3 DS D DSW D D D DCC #C.@C	C C C C C CrO   rE   Connection closedc                   Z   e Zd ZU dZee         ed<   dZeed<   dZ	ee
         ed<   dZeed<   dZee         ed<   dZee
         ed<   dZed	         ed
<   dZeed<   dZed         ed<   dZee         ed<   dZed         ed<   dZeej                 ed<   dZed         ed<   dZdZdZd Z e!d ege
f         ed<   dZ"ed         ed<   de
de#ddded         de$d e%d!e&d"         d#e'j(        d$dd%dfd&Z)d[d'e*d%dfd(Z+e,d%ed         fd)            Z-e-j.        ded         d%dfd*            Z-e,d%efd+            Z/e/j.        d,ed%dfd-            Z/e0d%e#fd.            Z1e0d%e#fd/            Z2e0d%e#fd0            Z3e0d%e
fd1            Z4e0d\d3            Z5e0d%efd4            Z6e0d%e%fd5            Z7e0d%ee8         fd6            Z9e:fd7e;d%dfd8Z<d%e
fd9Z=e,d%ed         fd:            Z>e0d%ed	         fd;            Z?e0d]d=            Z@d^d?ZAd_d@ZBe,d%eCfdA            ZDd_dBZEd%e;fdCZFe,d%eCfdD            ZGd_dEZHd_dFZId_dGZJd_dHZKd_dIZLd_dJZMd%efdKZNd%e
fdLZOd`dNee
         dOe
d%e
fdPZPdeQdQdRdNee
         dSeRdTee
         d%e;fdUZSdadVZTdWeeUeV                  dXeeV         dYeeW         d%dfdZZXdS )brF   Nr   statusreasoncontent_body_headersrN   )rF   ._history_raw_headersrJ   _connection_cookieszasyncio.Future[bool]rR  r   rI   r   TFc                      dS )Nutf-8rN   )r   s    rP   <lambda>zClientResponse.<lambda>N  s    G rO   _resolve_charsetr   _ClientResponse__writerrb   ra   r   zOptional[asyncio.Task[None]]ro  r   r  r   rK   r   r   rL   c                   t          |          t          u sJ || _        || _        |j        r|                    d           n|| _        ||| _        ||| _        || _	        ||nt                      | _        i | _        || _        || _        |	|	| _        |	j        | _        |                                r-t%          j        t)          j        d                    | _        d S d S )Nr   )rW   r   rb   	_real_urlr   r   _urlr   rR  _request_infor0   r   _cacher   _loopr   r  r   r   r   r   r   r   )
rw   rb   ra   r   ro  r   r  r   r   r   s
             rP   rz   zClientResponse.__init__R  s     CyyC/2/?HC%%d+++S	!DL"(DN)$0eeikk&(
 #DM$+$<D!>> 	O%.%<S]1=M=M%N%ND"""	O 	OrO   r   c                     d | _         d S r|   r  r   s     rP   r   zClientResponse.__reset_writery  r   rO   c                     | j         S )zThe writer task for streaming data.

        _writer is only provided for backwards compatibility
        for subclasses that may need to access it.
        r  r}   s    rP   r   zClientResponse._writer|  s     }rO   c                     | j         | j                             | j                   || _         |dS |                                r	d| _         dS |                    | j                   dS )z'Set the writer task for streaming data.N)r  r   _ClientResponse__reset_writerr  r   r   s     rP   r   zClientResponse._writer  sn     =$M..t/BCCC>F;;== 	: DMMM$$T%899999rO   c                 D    | j         t                      | _         | j         S r|   )r  r   r}   s    rP   r   zClientResponse.cookies  s    = (NNDM}rO   r   c                     || _         d S r|   )r  )rw   r   s     rP   r   zClientResponse.cookies  s    rO   c                     | j         S r|   )r  r}   s    rP   ra   zClientResponse.url  r   rO   c                 H    t          j        dt          d           | j        S )NzDeprecated, use .url #1654   r   )r   r   r   r  r}   s    rP   url_objzClientResponse.url_obj  s$    24FSTUUUUyrO   c                     | j         S r|   )r  r}   s    rP   re   zClientResponse.real_url  s
    ~rO   c                 6    | j         j        J | j         j        S r|   )r  r   r}   s    rP   r   zClientResponse.host  s    y~)))y~rO   rc   c                     | j         S r|   )r  r}   s    rP   rd   zClientResponse.headers  r   rO   c                     | j         S r|   )r  r}   s    rP   raw_headerszClientResponse.raw_headers  r~   rO   c                     | j         S r|   )r  r}   s    rP   r  zClientResponse.request_info  s    !!rO   c                     | j                             t          j                  }|d S t	          j        |          \  }}t          |          }t	          j        |          }t          |||          S r|   )	r  rs   r   CONTENT_DISPOSITIONr    parse_content_dispositionr	   content_disposition_filenamerV   )rw   rawdisposition_type
params_dctr   rY   s         rP   content_dispositionz"ClientResponse.content_disposition  sj    m 899;4'0'J3'O'O$*!*--9&AA!"2FHEEErO   	_warningsc                 P   | j         rd S | j        | j                                         |                                  | j                                        rOd| i} |j        d| t          fi | | dd}| j        r
| j        |d<   | j        	                    |           d S d S d S )NsourcezUnclosed response zUnclosed response)client_responsemessagesource_traceback)
_closedr  release_cleanup_writerr  r   r   ResourceWarningr   call_exception_handler)rw   r  kwargscontexts       rP   __del__zClientResponse.__del__  s    < 	F'$$&&&  """z##%% ;"D)	<D<<oXXQWXXX.2?RSS) I262HG./
11'::::: ('; ;rO   c                 j   t          j                    }t          | j                  }| j        r/| j                            dd                              d          }nd}t          d                    || j	        |          |           t          | j
        |           |                                S )NasciibackslashreplaceNonez<ClientResponse({}) [{} {}]>)file)ioStringIOr]   ra   r  rF  decodeprintr   r  rd   getvalue)rw   outascii_encodable_urlascii_encodable_reasons       rP   __repr__zClientResponse.__repr__  s    kmm!$(mm; 	,%)[%7%7+& &fWoo #" &,"*11#T[2H  		
 	
 	
 	
 	dl%%%%||~~rO   c                     | j         S r|   )r  r}   s    rP   
connectionzClientResponse.connection  s    rO   c                     | j         S )z2A sequence of of responses, if redirects occurred.)r  r}   s    rP   historyzClientResponse.history  s     }rO   /MultiDictProxy[MultiDictProxy[Union[str, URL]]]c           	      j   d                     | j                            dg                     }|st          t	                                S t	                      }t          j        d|          D ]5}t          j        d|          }||                                \  }}|                    d          dd          }t	                      }|D ]T}	t          j        d|	t
          j	                  }|%|                                \  }
}}}|
                    |
|           U|                    d|          }
|
                    d	| j                             t          |                               |
                    t          |
          t          |                     7t          |          S )
Nz, linkz	,(?=\s*<)z\s*<(.*)>(.*)r.  r   z%^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$relra   )joinrd   getallr   r   rer  r   groupsMr  rs   ra   r   r]   )rw   	links_strlinksr,  r   ra   
params_strr   r  paramr   r   r!  s                rP   r  zClientResponse.links  s}   IIdl11&"==>>	 	/!)++...<EKK8L)44 	6 	6CH-s33E}#llnnOC%%c**122.F/8{{D % %!I5RTRVWW=#(<<>> Qqe$$$$((5#&&CHHUDHMM#c((33444IIc#hht 4 45555e$$$rO   r  c           	        K   d| _         |j        | _        || _        | j        5  	 	 | j        }|                                 d{V \  }}nE# t          j        $ r3}t          | j	        | j
        |j        |j        |j                  |d}~ww xY w|j        dk     s|j        dk    s|j        dk    rn$| j        t          | j        d           d| _        	 ddd           n# 1 swxY w Y    |j        | j                   |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        || _        | j                            t4          j        d          x}r\t9                      }|D ]D}	 |                    |           # t<          $ r}t?          j         d	|           Y d}~=d}~ww xY w|| _!        | S )
zStart response processing.FTNr  r  rd   d      e   rN   z!Can not load response cookies: %s)"r  rW  	_protocolr  r   readr   HttpProcessingErrorr%   r  r  coder  rd   rR  r6   on_eof_response_eofr   r  r  r  r  r  r  r  r   
SET_COOKIEr   r2  r   r<   warningr  )	rw   r  rW  r  r!   exccookie_hdrsr   r$  s	            rP   startzClientResponse.start  s]     #,%[ 	* 	**
#~H-5]]__'<'<'<'<'<'<$GWW/   -)"x # #    <#%%););w|s?R?R>-t~t444%)DN'* !	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*. 	t)*** ln  #/  ,--dorBBB; 	$"nnG" T TTLL%%%%" T T T!)*MsSSSSSSSST#DMsM   C$$AC$B.B		BA	C$$C(+C(F
G !F;;G c                     | j         rd S | j        o| j        j        }|	|j        rd S d| _         |                                  |                                  d S NT)r  r  rW  upgradedr  _release_connection)rw   rW  s     rP   r  zClientResponse._response_eofJ  sj    < 	F #A(8(AH$5F  """""rO   c                     | j         S r|   )r  r}   s    rP   closedzClientResponse.closedW  s
    |rO   c                    | j         s|                                  d| _        | j        | j                                        rd S |                                  | j        "| j                                         d | _        d S d S r  )	_released_notify_contentr  r  r  r  r  ra  r}   s    rP   ra  zClientResponse.close[  s    ~ 	#  """:!5!5!7!7F'""$$$#D ('rO   c                     | j         s|                                  d| _        |                                  |                                  t                      S r  )r   r!  r  r  r  r3   r}   s    rP   r  zClientResponse.releaseh  sR    ~ 	#  """  """vvrO   c                     d| j         k    S )zReturns ``True`` if ``status`` is less than ``400``, ``False`` if not.

        This is **not** a check for ``200 OK`` but a check that the response
        status is under 400.
        i  )r  r}   s    rP   okzClientResponse.okr  s     T[  rO   c                     | j         sQ| j        J | j        s|                                  t	          | j        | j        | j        | j        | j                  d S )Nr
  )	r$  r  _in_contextr  r%   r  r  r  rd   r}   s    rP   raise_for_statuszClientResponse.raise_for_status{  so    w 	;*** # %!{   	 	rO   c                       j         H j        " j                                          d  _         d S  j                             fd           d S d S )Nc                 ,                                     S r|   )r  )frw   s    rP   r  z4ClientResponse._release_connection.<locals>.<lambda>  s    $:R:R:T:T rO   )r  r  r  r   r}   s   `rP   r  z"ClientResponse._release_connection  se    '}$ ((***#'   //0T0T0T0TUUUUU ('rO   c                    K   | j         ^	 | j          d {V  nO# t          j        $ r= t          j        dk    r*t          j                    x}r|                                r Y nw xY w|                                  d S r  )r  r   r`  r   r  r  r  r  r  s     rP   _wait_releasedzClientResponse._wait_released  s      =$m########)   $//!(!5!7!77 0)) 0  	  """""    A	A%$A%c                 T    | j         | j                                          d | _        d S r|   )r  r  r   r}   s    rP   r  zClientResponse._cleanup_writer  s)    =$M  """rO   c                 x    | j         }|r)|                                t          |t                     d| _        d S r  )r  	exceptionr5   _CONNECTION_CLOSED_EXCEPTIONr   )rw   r  s     rP   r!  zClientResponse._notify_content  s?    , 	Aw((**2'#?@@@rO   c                    K   | j         ^	 | j          d {V  nO# t          j        $ r= t          j        dk    r*t          j                    x}r|                                r Y nw xY w|                                  d S r  )r  r   r`  r   r  r  r  r  r  s     rP   wait_for_closezClientResponse.wait_for_close  s      =$m########)   $//!(!5!7!77 0)) 0  	r-  c                   K   | j         	 | j                                         d{V | _         | j        D ].}|                    | j        | j        | j                    d{V  /n9# t          $ r |                                   w xY w| j	        rt          d          | j        o| j        j        }||j        s|                                  d{V  | j         S )zRead response payload.Nr  )r  r  r  r   send_response_chunk_receivedrb   ra   BaseExceptionra  r   r#   r  rW  r  r,  )rw   r  rW  s      rP   r  zClientResponse.read  s-     :#'<#4#4#6#6666666
!\  E<<TXtz          !   

 ^ 	='(;<<<#A(8(A8#4%%'''''''''zs   AA& & Bc                    | j                             t          j        d                                          }t          j        |          }|j                            d          }|rPt          j	        t          t                    5  t          j        |          j        cd d d            S # 1 swxY w Y   |j        dk    r|j        dk    s|j        dk    rdS | j        t%          d          |                     | | j                  S )Nr  charsetapplicationjsonrdapr  z7Cannot compute fallback encoding of a not yet read body)rd   rs   r   rz  r?  r   parse_mimetyperX   rC  rD  rE  rt   codecslookupr8  rW   subtyper  RuntimeErrorr  )rw   ctypemimetypeencodings       rP   get_encodingzClientResponse.get_encoding  s;     !2B77==??)%00&**955 	4$[*== 4 4}X..34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 =M))&&(*:f*D*D 7:I   $$T4:666s   B--B14B1strictrC  errorsc                    K   | j         |                                  d{V  ||                                 }| j                             ||          S )z!Read response payload and decode.N)rF  )r  r  rD  r  )rw   rC  rF  s      rP   textzClientResponse.text  s`      :))++((**Hz  & 999rO   r   )rC  loadscontent_typerI  rJ  c                  K   | j         |                                  d{V  |rr| j                            t          j        d                                          }t          ||          s+t          | j	        | j
        | j        d|z  | j                  | j                                         }|sdS ||                                 } ||                    |                    S )zRead and decodes JSON response.Nr  z3Attempt to decode JSON with unexpected mimetype: %sr
  )r  r  rd   rs   r   rz  r?  r   r&   r  r  r  r  rD  r  )rw   rC  rI  rJ  rA  strippeds         rP   r:  zClientResponse.json  s       :))++ 	L$$T%6;;AACCE,ULAA 	&%L;MPUU L    :##%% 	4((**HuX__X..///rO   c                    K   d| _         | S r  )r&  r}   s    rP   
__aenter__zClientResponse.__aenter__  s      rO   exc_typeexc_valexc_tbc                 t   K   d| _         |                                  |                                  d {V  d S )NF)r&  r  r3  )rw   rO  rP  rQ  s       rP   	__aexit__zClientResponse.__aexit__  sI       ! 	!!###########rO   r|   )rL   rc   )rL   r  )r  rJ   rL   rF   r  )NrE  )rL   rF   )YrZ   r[   r\   r   r   r8   r^   r  r   r  r]   r  r=   r  r   r  r   r  r   r  rC   r  r  r   rR  r   r   StackSummaryr   r  r   r&  r  r   r  r   r-   rG   r   r   r  rz   r  r  r   r   r  r   r4   ra   r  re   r   rd   r  r  rV   r  r   r   r  r  r  r  r  r  r  r   r  ra  r  r$  r'  r  r,  r  r!  r3  r  rD  rH  r>   r?   r:  rN  r   r6  r
   rS  rN   rO   rP   rF   rF   3  s!         &*GXk")))FC FHSM    G\   !E8E?!!!&*Hs#***-/He)*///#L*###*.K,'...'+Hh|$+++26Ix./666:>x	 67>>>*.Hh'... GIKASASh 0%8#=>SSS/3Hh+,333%O%O %O
 /%O 45%O  %O "%O W%O '%O !%O 
%O %O %O %ON  $     "67    X ^:h';< : : : : ^:     X
 ^ |         ^  S    U     U #    U c    U    U !Z ! ! ! U! "k " " " U" FX.@%A F F F UF (0 ; ; ;D ; ; ; ; #    $  H\2       X  45    U !% !% !% U!%F4 4 4 4l# # # #     X$ $ $ $     !D ! ! ! X!   $V V V V# # # #   
      E    (7c 7 7 7 7.: :8C= : :TW : : : : #'1&80 0 0 3-0 	0
 sm0 
0 0 0 0B   $4./$ -($ '	$
 
$ $ $ $ $ $rO   rF   )xr   r=  rC  rs  r  r  r   r   r   hashlibr   r   r   http.cookiesr   r   r   typesr	   r
   typingr   r   r   r   r   r   r   r   r   r   r   r   attr	multidictr   r   r   r   yarlr   r  r   r   r   r    r!   abcr"   client_exceptionsr#   r$   r%   r&   r'   r(   compression_utilsr*   formdatar+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   logr<   streamsr=   typedefsr>   r?   r@   rA   rB   rC   r   rD   ImportErrorr  __all__clientrI   	connectorrJ   tracingrK   compiler   r   r]   rQ   srV   r`   rG   rH   r   rW   r   r   r   	frozensetr   r   r   rE   r1  rF   rN   rO   rP   <module>rk     s             				 				 



      % % % % % % % % % % : : : : : : : : : : 1 1 1 1 1 1 1 1                             N N N N N N N N N N N N       5 5 5 5 5 5 5 5 5 5 5 5 5 5 % % % % % %                * ) ) ) ) )                                                   ! ! ! ! ! !               JJJ   
CJJJ
 L  %%%%%%%%%%%% 'BJ'EFF 
"*9
:
:Bc B B B B T$d333       43    :   
 
 
 
 
, 
 
 
$P P P P P P P P@ ?{DDJJGttDzz*4	|T;.	/44 ,'4 %	4
 <{*+4 4 4 4n y)**	& 	& 	& 	& 	&J 	& 	& 	&::7::	: : : :rC rC rC rC rC rC rC rCj  545HII l$ l$ l$ l$ l$\ l$ l$ l$ l$ l$s   (
C3 3	C?>C?