
    [Fi                     4   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 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
l0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z: ddl;m<Z< ddl,m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZE ddl-mFZFmGZGmHZHmIZImJZJ ddlKmLZL ddlMmNZN ddlOmPZPmQZQmRZRmSZSmTZT 	 d dlUZUd dlUmVZV dZYerddlZm[Z[ ddl\m]Z] ddl^m_Z_  ej                  d      Za ej                  d      ZbdecfdZd e"j                  ddd       G d d             Zf e"j                  ddd       G d  d!             Zg G d" d#      ZheUeUj                  eieh ejd      fZkn ejd      Zkd$e d%ed&   ehdf   d'eei   d(ed%   d)eel   de d%ed&   ehdf   f
d*Zm e"j                  ddd+       G d, d-             Znd.ecd/ecdeifd0Zo G d1 d2      Zp G d3 d4e?      Zqy# eW$ r dZUeXZVY (w xY w)5    N)md5sha1sha256)CookieErrorMorselSimpleCookie)MappingProxyTypeTracebackType)TYPE_CHECKINGAnyCallableDictIterableListLiteralMappingOptionalTupleTypeUnioncast)CIMultiDictCIMultiDictProxy	MultiDictMultiDictProxy)URL   )hdrshelpershttp	multipartpayload)AbstractStreamWriter)ClientConnectionErrorClientOSErrorClientResponseErrorContentTypeError
InvalidURLServerFingerprintMismatch
HAS_BROTLI)FormData)	BaseTimerContext	BasicAuthHeadersMixin	TimerNoopbasicauth_from_netrcnetrc_from_envnoopreify
set_result)SERVER_SOFTWAREHttpVersionHttpVersion10HttpVersion11StreamWriter)client_logger)StreamReader)DEFAULT_JSON_DECODERJSONDecoderLooseCookiesLooseHeaders
RawHeaders)
SSLContext)ClientRequestClientResponseRequestInfoFingerprint)ClientSession)
Connection)Tracez[^-!#$%&'*+.^_`|~0-9a-zA-Z]z!^application/(?:[\w.+-]+?\+)?jsonreturnc                      t         rdS dS )Nzgzip, deflate, brzgzip, deflater*        g/var/www/html/BankruptcyAI-uat/bankruptcy-ai/venv/lib/python3.12/site-packages/aiohttp/client_reqrep.py_gen_default_accept_encodingrO   ^   s    ",A/ArM   T)auto_attribsfrozenslotsc                   8    e Zd ZU ee   ed<   ded<   ee   ed<   y)ContentDispositiontypezMappingProxyType[str, str]
parametersfilenameN)__name__
__module____qualname__r   str__annotations__rL   rM   rN   rT   rT   b   s    
3-,,smrM   rT   c                       e Zd ZU eed<   eed<   ded<    ej                         Zeed<   ej                  defd       Z
y)	rE   urlmethodCIMultiDictProxy[str]headersreal_urlrJ   c                     | j                   S N)r^   selfs    rN   real_url_defaultzRequestInfo.real_url_defaultp   s    xxrM   N)rX   rY   rZ   r   r\   r[   attribrb   defaultrg   rL   rM   rN   rE   rE   i   sC    	HK$$DGGIHc#  rM   rE   c                   b    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y)	rF   )          fingerprintrJ   Nc                     t        |      }| j                  j                  |      }|st        d      |t        u s|t
        u rt        d      || _        || _        y )Nzfingerprint has invalid lengthz8md5 and sha1 are insecure and not supported. Use sha256.)lenHASHFUNC_BY_DIGESTLENget
ValueErrorr   r   	_hashfunc_fingerprint)rf   ro   	digestlenhashfuncs       rN   __init__zFingerprint.__init__|   s`    $	--11)<=>>_D 0M  "'rM   c                     | j                   S rd   )rv   re   s    rN   ro   zFingerprint.fingerprint          rM   	transportc                 "   |j                  d      sy |j                  d      }|j                  d      }| j                  |      j                         }|| j                  k7  r,|j                  d      ^}}}t        | j                  |||      y )N
sslcontext
ssl_objectT)binary_formpeername)get_extra_infogetpeercertru   digestrv   r)   )rf   r|   sslobjcertgothostport_s           rN   checkzFingerprint.check   s    ''5)),7!!d!3nnT"))+$###&55jAND$+D,=,=sD$OO $rM   )rX   rY   rZ   r   r   r   rr   bytesry   propertyro   asyncio	Transportr   rL   rM   rN   rF   rF   u   s]    
(E 
(d 
( !U ! !Pw00 PT PrM   rF   sslrB   F
verify_sslssl_contextro   c                 ~   |-|s+t        j                  dt        d       | t        d      d} |+t        j                  dt        d       | t        d      |} |4t        j                  dt        d       | t        d      t	        |      } t        | t              st        dj                  |             | S )	Nz/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   rF   
isinstanceSSL_ALLOWED_TYPES	TypeErrorformat)r   r   r   ro   s       rN   _merge_ssl_paramsr      s     j=	

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

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

 ?4 
 k*Cc,-  &s
 	
 JrM   )rP   rR   rQ   c                       e Zd ZU eed<   ee   ed<   eed<   ee	de
d   ef   ed<   ee   ed<   ee   ed<   ee   ed	<   y)
ConnectionKeyr   r   is_sslNFr   proxy
proxy_authproxy_headers_hash)rX   rY   rZ   r[   r\   r   intboolr   rB   r   rF   r   r.   rL   rM   rN   r   r      sO     I
3-L	z4<	==C=## %rM   r   response_content_typeexpected_content_typec                 B    |dk(  rt         j                  |       d uS || v S )Napplication/json)json_rematch)r   r   s     rN   _is_expected_content_typer      s.      22}}234?? $999rM   c            0          e Zd Zej                  ej
                  ej                  ej                  hZej                  ej                  ej                  hZej                  e      j                  ej                  h      Zej                   dej"                   e       iZdZdZdZdZdZdd e       dddej6                  ddddddddddddddddededeeeef      d	ee    d
e!e   de"dee#   dee$   dejJ                  dee   dee&   de&dee'jP                     dee)d      dee   dee$   dee*   ded   de+e,e-d   e.df   dee    dee/d      de&dee   f.d Z0dGd!e1d"dfd#Z2e3d"ed$   fd%       Z4e4jj                  d&ed$   d"dfd'       Z4d"e&fd(Z6e3d"e+d)de-d   e.f   fd*       Z7e3d"e8fd+       Z9e3d"efd,       Z:e3d"ee;   fd-       Z<e3d"e=fd.       Z>ded"dfd/Z?de+ejJ                  ef   d"dfd0Z@d	ee    d"dfd1ZAd
e!e   d"dfd2ZBdee#   d"dfd3ZCde"d"dfd4ZDdHd5ZEdIdee$   de&d"dfd6ZFd7e"d"dfd8ZGdId9e&d"dfd:ZHdee   dee$   dee    d"dfd;ZId"e&fd<ZJd&eKd=d>d"dfd?ZLdJd@ZMdHdAZNdHdBZOdededCePd"dfdDZQdeded	dEd"dfdFZRy)KrC   z*/*rM   NF)paramsra   skip_auto_headersdatacookiesauthversioncompresschunked	expect100loopresponse_classr   r   timersessionr   proxy_headerstraces	trust_envserver_hostnamer_   r^   r   ra   r   r   r   r   r   r   r   r   r   r   rD   r   r   r   r   rG   r   r   r   rI   r   r   c                   |t        j                         }t        j                  |      }|rt	        d|d      t        |t              sJ |       t        |t        t        d       f      sJ |       t        d|      | _	        |rRt        |j                        }|j                  |      }|j                  |j                         |j                  |      }|| _        |j                  d       | _        |j#                         | _        || _        |
| _        || _        d | _        |t.        }n|}|| _        ||n	t3               | _        || _        || _        |j;                         r-t=        j>                  tA        jB                  d            | _"        | jG                  |	       | jI                  |       | jK                  |       | jM                  |       | jO                  |       | jQ                  |       | jS                  ||       | jU                  |||       | jW                  |       || j$                  | jX                  vr| j[                          | j]                  |       |g }|| _/        y )Nz+Method cannot contain non-token characters z# (found at least {match.group()!r})rG   r   )0r   get_event_loop_CONTAINS_CONTROL_CHAR_REsearchrt   r   r   rU   r   _sessionr   query
with_queryextendoriginal_urlwith_fragmentr^   upperr_   r   r   r   lengthrD   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)rf   r_   r^   r   ra   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   qurl2real_response_classs                               rN   ry   zClientRequest.__init__  s4   6 <))+D)008=fZ H5 5 
 #s#(S(#%#tDz!23:U:3 _g6#))$A>>&)DHHTZZ ..#C$$T*lln 	!"0"04G$0eik	.>>%.%<%<S]]1=M%ND"G$G$  !23G$$$T*y)%];""4(t{{$2B2BB))+##I.>FrM   r   rJ   c                     d | _         y rd   _ClientRequest__writerrf   r   s     rN   __reset_writerzClientRequest.__reset_writerU  	    rM   asyncio.Task[None]c                     | j                   S rd   r   re   s    rN   _writerzClientRequest._writerX      }}rM   writerc                     | j                   %| j                   j                  | j                         || _         ||j                  | j                         y y rd   )r   remove_done_callback_ClientRequest__reset_writeradd_done_callbackrf   r   s     rN   r   zClientRequest._writer\  J    ==$MM..t/B/BC$$T%8%89 rM   c                 2    | j                   j                  dv S )N)httpswss)r^   schemere   s    rN   r   zClientRequest.is_ssld  s    xx"222rM   rB   c                     | j                   S rd   )r   re   s    rN   r   zClientRequest.sslg      yyrM   c           	         | j                   }|r*t        t        d |j                         D                    }nd }t	        | j
                  | j                  | j                         | j                  | j                  | j                  |      S )Nc              3   *   K   | ]  \  }}||f  y wrd   rL   ).0kvs      rN   	<genexpr>z/ClientRequest.connection_key.<locals>.<genexpr>o  s     )STQ1a&)Ss   )r   hashtupleitemsr   r   r   r   r   r   r   )rf   r   hs      rN   connection_keyzClientRequest.connection_keyk  so    **#E)S]=P=P=R)S$STAAIIIIKKMHHJJOO
 	
rM   c                 :    | j                   j                  }|J |S rd   )r^   raw_host)rf   rets     rN   r   zClientRequest.host|  s     hh
rM   c                 .    | j                   j                  S rd   )r^   r   re   s    rN   r   zClientRequest.port  s    xx}}rM   c                     t        | j                        }t        | j                  | j                  || j
                        S rd   )r   ra   rE   r^   r_   r   )rf   ra   s     rN   request_infozClientRequest.request_info  s/    )9$,,)G488T[['4;L;LMMrM   c                     |j                   st        |      |j                  |j                  }}|r t	        j
                  ||xs d      | _        yy)z8Update destination host, port and connection type (ssl). N)r  r(   userpasswordr   r.   r   )rf   r^   usernamer  s       rN   r   zClientRequest.update_host  sH     ||S/! !XXs||())(HNCDI rM   c                 <   t        |t              rd|j                  dd      D cg c]  }|j                          }}	 t	        j
                  t        |d         t        |d               }|| _        y|| _        yc c}w # t        $ r t        d|       dw xY w)zdConvert request version to two elements tuple.

        parser HTTP version '1.1' => (1, 1)
        .r   r   z#Can not parse http version number: N)	r   r[   splitstripr    r7   r   rt   r   )rf   r   partr   s       rN   r   zClientRequest.update_version  s    
 gs#*1--Q*?@$@A@**3qt9c!A$i@
 w A   9'Cs   A=.B Bc                    t               | _        t        t        | j                  j
                        }t        j                  |      rd| d}|j                  d      }| j                  j                  ?| j                  j                         s%|dt        | j                  j                        z   z  }|| j                  t        j                  <   |rut        |t        t        t         f      r|j#                         }|D ]D  \  }}|j%                         dk(  r|| j                  |<   )| j                  j'                  ||       F yy)zUpdate request headers.[]r  N:r   )r   ra   r   r[   r^   r  r   is_ipv6_addressrstripr   is_default_portr   HOSTr   dictr   r   r  loweradd)rf   ra   netlockeyvalues        rN   r   zClientRequest.update_headers  s    )4 c488,,-""6*]Fs#88==$TXX-E-E-GcC...F"(TYY'D.)#DE!--/% 1
U99;&((-DLL%LL$$S%01	 rM   c                    t        d t        |      D              | _        | j                  j	                         }|j                  | j                         | j                  j                         D ]&  \  }}||vs| j                  j                  ||       ( t        j                  |vr"t        | j                  t        j                  <   y y )Nc              3   $   K   | ]  }|d f 
 y wrd   rL   )r   hdrs     rN   r   z4ClientRequest.update_auto_headers.<locals>.<genexpr>  s      -
S$K-
s   )r   sortedr   ra   copyr   DEFAULT_HEADERSr  r   r   
USER_AGENTr6   )rf   r   used_headersr&  vals        rN   r   z!ClientRequest.update_auto_headers  s    !, -
#)*;#<-
 "
 ||((*D223,,224 	+HC,&  c*	+ ??,.,;DLL) /rM   c                    |syt               }t        j                  | j                  v rT|j	                  | j                  j                  t        j                  d             | j                  t        j                  = t        |t              r|j                         }n|}|D ]u  \  }}t        |t              r[|j                  |j                  t                     }|j                  |j                  |j                  |j                         |||<   q|||<   w |j                  dd      j                         | j                  t        j                  <   y)zUpdate request cookies header.Nr  ;)headersep)r   r   COOKIEra   loadrs   r   r   r  r   r"  setr#  coded_valueoutputr  )rf   r   citer_cookiesnamer#  mrsl_vals          rN   r   zClientRequest.update_cookies  s    N;;$,,&FF4<<##DKK45T[[)gw'"==?L"L' 	 KD%%( 99UYY9UYYU5F5FG"$$	  %&HHBCH$@$F$F$HT[[!rM   c                 f   |y| j                   j                  t        j                  d      j	                         }|r| j
                  rt        d      y| j
                  rPt        | j
                  t              sd| _        | j
                  | j                   t        j                  <   d| _	        yy)zSet request content encoding.Nr  z9compress can not be set if Content-Encoding header is setdeflateT)
ra   rs   r   CONTENT_ENCODINGr  r   rt   r   r[   r   )rf   r   encs      rN   r   z%ClientRequest.update_content_encoding  s    <llt44b9??A}} R   ]]dmmS1 )26--DLL../DL	 rM   c                    | j                   j                  t        j                  d      j	                         }d|v r| j
                  rt        d      y| j
                  rEt        j                  | j                   v rt        d      d| j                   t        j                  <   yt        j                  | j                   vr:t        t        | j                              | j                   t        j                  <   yy)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)ra   rs   r   TRANSFER_ENCODINGr  r   rt   CONTENT_LENGTHr[   rq   body)rf   tes     rN   r   z&ClientRequest.update_transfer_encoding  s    \\d44b9??A?|| D   \\""dll2 O  4=DLL//0""$,,647DII4GT001 7rM   c                    || j                   }|d|rb| j                  j                  Lt               }t	        j
                  t              5  t        || j                  j                        }ddd       |yt        |t        j                        st        d      |j                         | j                  t        j                  <   y# 1 sw Y   ]xY w)zSet basic auth.Nz%BasicAuth() tuple is required instead)r   r^   r   r2   
contextlibsuppressLookupErrorr1   r   r   r.   r   encodera   r   AUTHORIZATION)rf   r   r   	netrc_objs       rN   r   zClientRequest.update_auth  s    <99D<I$((--*C&(I$$[1 F+Itxx}}EF<$ 1 12CDD+/;;=T''(F Fs   !C		CrA  c                    |y t        |t              r |       }	 t        j                  j	                  |d       }|| _        | j                  stt        j                  | j                  vrX|j                  }|d| _        nBt        j                  | j                  vr&t        |      | j                  t        j                  <   |j                  sJ |j                  j                         D ]2  \  }}|| j                  v r|| j                  v r$|| j                  |<   4 y # t        j
                  $ r  t        |             }Y w xY w)N)dispositionT)r   r,   r"   PAYLOAD_REGISTRYrs   rF  rA  r   r   r@  ra   sizer[   r  r   )rf   rA  rM  r"  r#  s        rN   r   z#ClientRequest.update_body_from_data  s!   < dH%6D	$++//$/GD 	 ||""$,,6yy<#'DL**$,,><?IT%8%89 ||| LL..0 	&LS%dll"d,,, %DLL	&# "" 	$!8D>#D	$s   !D" "#E	E	expectc                    |rd| j                   t        j                  <   n=| j                   j                  t        j                  d      j	                         dk(  rd}|r | j
                  j                         | _        y y )Nz100-continuer  T)ra   r   EXPECTrs   r  r   create_future	_continue)rf   rN  s     rN   r   z$ClientRequest.update_expect_continue>  s^    (6DLL%\\dkk2.446.HF!YY446DN rM   c                 |    |r%t        |t        j                        st        d      || _        || _        || _        y )Nz,proxy_auth must be None or BasicAuth() tuple)r   r   r.   rt   r   r   r   )rf   r   r   r   s       rN   r   zClientRequest.update_proxyG  s8     jW5F5FGKLL
$*rM   c                    | j                   t        k  ry| j                   t        k(  r.| j                  j                  t        j
                        dk(  ryy| j                  j                  t        j
                        dk(  ryy)NF
keep-aliveTclose)r   r8   ra   rs   r   
CONNECTIONre   s    rN   
keep_alivezClientRequest.keep_aliveS  s_    <<-'<<=(||0L@\\doo.'9rM   connrH   c                 F  K   | j                   -	 |j                          d{    | j                    d{    |j                  }|J 	 t        | j                  t        j                        r$| j                  j                  |       d{    n\t        | j                  t        t        f      r| j                  f| _        | j                  D ]  }|j                  |       d{     |j                          d{    |j                          y7 7 # t        j                  $ r Y yw xY w7 7 N7 6# t        $ r}|j                  ,t        |t        j                         r|j#                  |       nGt%        |j                  d| j&                  z        }||_        ||_        |j#                  |       Y d}~yY d}~yd}~wt        j                  $ r |j                          d{  7   Y yt,        $ r}|j#                  |       Y d}~yd}~ww xY ww)z-Support coroutines that yields bytes objects.Nz!Can not write request body for %s)rR  drainr   CancelledErrorprotocolr   rA  r"   Payloadwriter   	bytearray	write_eofstart_timeoutOSErrorerrnoTimeoutErrorset_exceptionr%   r^   __context__	__cause__	Exception)rf   r   rY  r]  chunkexcnew_excs          rN   write_byteszClientRequest.write_bytesa  s    
 >>%lln$$nn$$ ==###	%$))W__5iioof---dii%);<!%DI!YY .E ,,u---." ""$$$""$A %$))  . .  %  		0yy ZW5I5I%J&&s+'IIBTXXM '*#$'!&&w// , %% 	%""$$$ 	(""3''	(s   H!D DD DD H!AD= D7AD= *D9+D= 1H!D;H!D D D41H!3D44H!7D= 9D= ;H!=	HA:G
 
H!
)H3G64H9H!;HHH!HH!c                 v  K   | j                   t        j                  k(  rQ| j                  j                  }|J t        j                  |      rd| d}| d| j                  j                   }nz| j                  r&| j                         st        | j                        }nH| j                  j                  }| j                  j                  r|d| j                  j                  z   z  }|j                  }|J t        || j                  t!        j"                  | j$                  | j                   | j                        t!        j"                  | j&                  | j                   | j                              }| j(                  r|j+                  | j(                         | j,                  |j/                          | j                   | j0                  v rUt        j2                  | j4                  vr9t        j2                  | j6                  vrd| j6                  t        j2                  <   | j6                  j9                  t        j:                        }|s;| j=                         r| j>                  t@        k(  rd}n| j>                  tB        k(  rd}||| j6                  t        j:                  <   d	jE                  | j                   || j>                  
      }|jG                  || j6                         d {    | j                  jI                  | jK                  ||            | _&        | jN                  }|J  || j                   | jP                  | jL                  | jR                  | jT                  | jV                  | jX                  | j                  | jZ                  	      | _.        | j\                  S 7 w)Nr  r  r  ?)on_chunk_senton_headers_sentzapplication/octet-streamrU  rV  z {0} {1} HTTP/{v.major}.{v.minor})r   )r   continue100r   r  r   r   r   )/r_   r   METH_CONNECTr^   r  r   r  r   r   r   r[   raw_pathraw_query_stringr]  r:   r   	functoolspartial_on_chunk_request_sent_on_headers_request_sentr   enable_compressionr   enable_chunkingPOST_METHODSCONTENT_TYPEr   ra   rs   rW  rX  r   r8   r9   r   write_headerscreate_taskrm  r   r   r   rR  r   r  r   r   response)	rf   rY  connect_hostpathr]  r   
connectionstatus_liner   s	            rN   sendzClientRequest.send  s    
 ;;$+++88,,L+++&&|4!"<.2"^1TXX]]O4DZZtxx=D88$$Dxx((dhh7777==###II#++++T[[$(( &----t{{DHH	
 ==%%dmm4<<#""$ KK4,,,!!)?)??!!5.HDLL**+ \\%%doo6
 <<=0!-J<<=0!(J!,6DLL) 9??KK @ 
 "";===yy,,T-=-=fd-KL,,)))&KK<<++**<<MM

 }}# 	>s   K4N96N77CN9c                    K   | j                   At        j                  t        j                        5  | j                    d {    d d d        y y 7 # 1 sw Y   y xY wwrd   )r   rD  rE  r   r\  re   s    rN   rV  zClientRequest.close  sS     <<#$$W%;%;< #ll""# # $"# #s.   0AAAA
AAAAc                     | j                   a| j                  j                         s| j                   j                          | j                   j	                  | j
                         d | _         y y rd   )r   r   	is_closedcancelr   r   re   s    rN   	terminatezClientRequest.terminate  sP    <<#99&&(##%LL--d.A.ABDL	 $rM   rj  c                 h   K   | j                   D ]  }|j                  |||       d {     y 7 wrd   )r   send_request_chunk_sent)rf   r_   r^   rj  traces        rN   rx  z$ClientRequest._on_chunk_request_sent  s6     \\ 	DE//UCCC	DC   &202zCIMultiDict[str]c                 h   K   | j                   D ]  }|j                  |||       d {     y 7 wrd   )r   send_request_headers)rf   r_   r^   ra   r  s        rN   ry  z&ClientRequest._on_headers_request_sent  s8      \\ 	CE,,VS'BBB	CBr  rd   rJ   N)F)rY  rH   rJ   rD   )SrX   rY   rZ   r   METH_GET	METH_HEADMETH_OPTIONS
METH_TRACEr   
METH_PATCH	METH_POSTMETH_PUTr|  unionMETH_DELETEALL_METHODSACCEPTACCEPT_ENCODINGrO   r)  rA  r   r  r   rR  	frozensetr    r9   r[   r   r   r   r@   r   r   r?   r.   r7   r   r   AbstractEventLoopr   r-   r   rB   r   rF   r   ry   objectr   r   r   setterr   r   r   r  r   r   r   rE   r  r   r   r   r   r   r   r   r   r   r   r   rX  r#   rm  r  rV  r  r   rx  ry  rL   rM   rN   rC   rC      s   	K OOT^^T]]CL##L1779I9I8JKK 	U:<O
 DDHHI /3*.+4;*.$($($6$6"&"&48;?#*.,0-1DH04*.)-3QQ Q
 c*+Q ,'Q $C=Q Q ,'Q y!Q !!Q 3-Q $Q Q w001Q  !&6!78!Q" }#Q$ Y'%Q& ()'Q( /*)Q* :wu~{D@A+Q,  --Q. g'/Q0 1Q2 "#3Qf $  "67   ^^:h';< : : :3 3 U<wu~{JK   
 
 
  c  
 hsm   Nk N N	Ds 	Dt 	DeD,<,<c,A&B t 1h|&< 1 12<Xc] <t <Ih|&< I I2 C  D  "H,9 3 9 9QU 9  &#  &$  &D7T 7d 7
+}
+ Y'
+  -	
+
 

+D '%*'%2>'%	'%ROb#
 D3 DS D DSW DCC #C.@C	CrM   rC   c                      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d<   dZdZeej(                     ed<   d	Zd
ZdZ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dIdeddfdZ e!ded   fd       Z"e"jF                  ded   ddfd       Z"e$defd       Z%e$defd       Z&e$defd        Z'e$de
fd!       Z(e$dJd"       Z)e$defd#       Z*e$defd$       Z+e$dee,   fd%       Z-e.fd&e/ddfd'Z0de
fd(Z1e!ded)   fd*       Z2e$de3d+   fd,       Z4e$dKd-       Z5dLd.Z6dMd/Z7e!de8fd0       Z9dMd1Z:de/fd2Z;e!de8fd3       Z<dMd4Z=dMd5Z>dMd6Z?dMd7Z@dMd8ZAdMd9ZBdeCfd:ZDde
fd;ZEdNd<ee
   d=e
de
fd>ZFdeGd?d@d<ee
   dAeHdBee
   de/fdCZIdOdDZJdEeeKeL      dFeeL   dGeeM   ddfdHZNy)PrD   Nr   statusreasoncontent_headers_raw_headersr   TFr_   r^   r   r   rr  zasyncio.Future[bool]r   r  r   rI   r   r   rG   rJ   c                   t        |t              sJ || _        t               | _        || _        |j                  d       | _        d | _        || _	        || _
        d| _        d| _        || _        ||n	t               | _        i | _        || _        || _        |	| _        |		d | _        n|	j(                  | _        |j+                         r.t-        j.                  t1        j2                  d            | _        y y )NTrL   c                       y)Nutf-8rL   )r   s    rN   <lambda>z)ClientResponse.__init__.<locals>.<lambda>.  s    rM   r   )r   r   r_   r   r   	_real_urlr   _url_bodyr   rR  _closed_history_request_infor0   r   _cacher   _loopr   _resolve_charsetr   r   r   r   r   r   )
rf   r_   r^   r   rr  r   r  r   r   r   s
             rN   ry   zClientResponse.__init__  s     #s####~%%d+	
5;$46)$0eik&(
18 ? # ! %,$<$<D!>>%.%<%<S]]1=M%ND" rM   r   c                     d | _         y rd   _ClientResponse__writerr   s     rN   r   zClientResponse.__reset_writer4  r   rM   c                     | j                   S rd   r  re   s    rN   r   zClientResponse._writer7  r   rM   c                     | j                   %| j                   j                  | j                         || _         ||j                  | j                         y y rd   )r  r   _ClientResponse__reset_writerr   r   s     rN   r   zClientResponse._writer;  r   rM   c                     | j                   S rd   )r  re   s    rN   r^   zClientResponse.urlC  r   rM   c                 R    t        j                  dt        d       | j                  S )NzDeprecated, use .url #1654   r   )r   r   r   r  re   s    rN   url_objzClientResponse.url_objG  s    24FSTUyyrM   c                     | j                   S rd   )r  re   s    rN   rb   zClientResponse.real_urlL  s    ~~rM   c                 ^    | j                   j                  J | j                   j                  S rd   )r  r   re   s    rN   r   zClientResponse.hostP  s$    yy~~)))yy~~rM   c                     | j                   S rd   )r  re   s    rN   ra   zClientResponse.headersU  r   rM   c                     | j                   S rd   )r  re   s    rN   raw_headerszClientResponse.raw_headersY  r{   rM   c                     | j                   S rd   )r  re   s    rN   r  zClientResponse.request_info]  s    !!!rM   c                     | j                   j                  t        j                        }|y t	        j
                  |      \  }}t        |      }t	        j                  |      }t        |||      S rd   )	r  rs   r   CONTENT_DISPOSITIONr!   parse_content_dispositionr	   content_disposition_filenamerT   )rf   rawdisposition_type
params_dctr   rW   s         rN   content_dispositionz"ClientResponse.content_dispositiona  sd    mm 8 89;'0'J'J3'O$*!*-99&A!"2FHEErM   	_warningsc                 v   | j                   ry | j                  | j                  j                          | j                          | j                  j                         r[d| i} |j                  d| t        fi | | dd}| j                  r| j                  |d<   | j                  j                  |       y y y )NsourcezUnclosed response zUnclosed response)client_responsemessagesource_traceback)
r  _connectionrelease_cleanup_writerr  r   r   ResourceWarningr   call_exception_handler)rf   r  kwargscontexts       rN   __del__zClientResponse.__del__k  s    <<'$$&  "zz##%"D)	!3D8<oXQWX.2?RS))262H2HG./

11': &	 (rM   c                 f   t        j                         }t        | j                        }| j                  r,| j                  j                  dd      j                  d      }nd}t        dj                  || j                  |      |       t        | j                  |       |j                         S )NasciibackslashreplaceNonez<ClientResponse({}) [{} {}]>)file)ioStringIOr[   r^   r  rG  decodeprintr   r  ra   getvalue)rf   outascii_encodable_urlascii_encodable_reasons       rN   __repr__zClientResponse.__repr__{  s    kkm!$((m;;%)[[%7%7+&fWo # &,"*11#T[[2H 		
 	dll%||~rM   rH   c                     | j                   S rd   )r  re   s    rN   r  zClientResponse.connection  s    rM   )rD   .c                     | j                   S )z2A sequence of of responses, if redirects occurred.)r  re   s    rN   historyzClientResponse.history  s     }}rM   c           	         dj                  | j                  j                  dg             }|st        t	                     S t	               }t        j                  d|      D ]  }t        j                  d|      }||j                         \  }}|j                  d      dd  }t	               }|D ]Q  }	t        j                  d|	t
        j                        }|+|j                         \  }
}}}|j                  |
|       S |j                  d|      }
|j                  d	| j                  j                  t        |                   |j                  t        |
      t        |              t        |      S )
Nz, linkz	,(?=\s*<)z\s*<(.*)>(.*)r.  r   z%^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$relr^   )joinra   getallr   r   rer  r   groupsMr   rs   r^   r   r[   )rf   	links_strlinksr,  r   r^   
params_strr   r  paramr"  r   r#  s                rN   r  zClientResponse.links  s@   IIdll11&"=>	!)+..<EK88L)4 	6CHH-s3E}#llnOC%%c*12.F/8{D %!I5RTRVRVW=#(<<> Qqe$% ((5#&CHHUDHHMM#c(34IIc#ht 45/	62 e$$rM   c           	      4  K   d| _         |j                  | _        || _        | j                  5  	 	 | j                  }|j                          d{   \  }}|j                  dk  s|j                  dkD  s|j                  dk(  rn*| j                  t        | j                  d       d| _        	 ddd        j                   | j"                         j$                  | _        |j                  | _        |j(                  | _        |j                  | _        |j,                  | _        || _        | j                  j3                  t4        j6                  d      D ]  }	 | j8                  j;                  |         | S 7 .# t        j                  $ rH}t        | j                  | j                  |j                  |j                  |j                        |d}~ww xY w# 1 sw Y   0xY w# t<        $ r }t?        j@                  d	|       Y d}~d}~ww xY ww)
zStart response processing.FTNr  r  ra   d      e   rL   z!Can not load response cookies: %s)!r  r]  	_protocolr  r   readr    HttpProcessingErrorr&   r  r  coder  ra   rR  r5   on_eof_response_eofr   r  r  r  r  r  r  r  r   
SET_COOKIEr   r2  r   r;   warning)rf   r  r]  r  r"   rk  r&  s          rN   startzClientResponse.start  s    #,,%[[ 	*
#~~H-5]]_'<$GW <<#%);w||s?R>>-t~~t4%)DN'  !	*. 	t))* llnn  #//  <<&&t; 	PCP!!#&	P
 M (=// -))"xx # # 	* 	*R  P%%&I3OOPs~   ,HGFE>FAG1B-HG,:H>FGAGGGG)$H,	H5HHHHc                     | j                   ry | j                  G| j                  j                  !| j                  j                  j                  ry | j	                          d| _         | j                          y NT)r  r  r]  upgraded_release_connectionr  re   s    rN   r  zClientResponse._response_eof  sc    <<'   ))5$$--66$$&rM   c                     | j                   S rd   )r  re   s    rN   closedzClientResponse.closed  s    ||rM   c                     | j                   s| j                          d| _        | j                  | j                  j	                         ry | j                          | j                          y r  )	_released_notify_contentr  r  r  r  r	  re   s    rN   rV  zClientResponse.close  sP    ~~  "::!5!5!7  "rM   c                     | j                   s| j                          d| _        | j                          | j	                          t               S r  )r  r  r  r  r	  r3   re   s    rN   r  zClientResponse.release  s;    ~~  "  "vrM   c                      d| j                   kD  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  re   s    rN   okzClientResponse.ok  s     T[[  rM   c                     | j                   s`| j                  J | j                          t        | j                  | j
                  | j                  | j                  | j                        y )Nr  )r  r  r  r&   r  r  r  ra   re   s    rN   raise_for_statuszClientResponse.raise_for_status!  sY    ww;;***LLN%!!{{ 	 rM   c                       j                   M j                  " j                   j                          d  _         y  j                  j                   fd       y y )Nc                 $    j                         S rd   )r	  )frf   s    rN   r  z4ClientResponse._release_connection.<locals>.<lambda>4  s    9Q9Q9S rM   )r  r   r  r   re   s   `rN   r	  z"ClientResponse._release_connection.  sK    '||#  ((*#' ../ST (rM   c                 p   K   | j                   | j                    d {    | j                          y 7 wrd   )r   r	  re   s    rN   _wait_releasedzClientResponse._wait_released6  s.     <<#,,  "    646c                 ^    | j                   | j                   j                          d | _        y rd   )r   r  r   re   s    rN   r  zClientResponse._cleanup_writer;  s#    <<#LL!rM   c                     | j                   }|r*|j                         |j                  t        d             d| _        y )NConnection closedT)r  	exceptionrf  r$   r  )rf   r  s     rN   r  zClientResponse._notify_content@  s8    ,,w((*2!!"78K"LMrM   c                 p   K   | j                   | j                    d {    | j                          y 7 wrd   )r   r  re   s    rN   wait_for_closezClientResponse.wait_for_closeF  s+     <<#,, r  c                   K   | j                   s	 | j                  j                          d{   | _         | j                  D ];  }|j	                  | j
                  | j                  | j                          d{    = n| j                  rt        d      | j                          d{    | j                   S 7 7 D# t        $ r | j                           w xY w7 2w)zRead response payload.Nr  )r  r  r  r   send_response_chunk_receivedr_   r^   BaseExceptionrV  r  r$   r  )rf   r  s     rN   r  zClientResponse.readK  s     ::#'<<#4#4#66
!\\ E<<TXXtzz   ^^'(;<<!!###zz 7 ! 

 	$sK   C!C B=AC :B?;C +C!,C-C!=C ?C CC!c                 4   | j                   j                  t        j                  d      j	                         }t        j                  |      }|j                  j                  d      }|rBt        j                  t              5  t        j                  |      j                  cd d d        S |j                  dk(  r|j                  dk(  s|j                  dk(  ry| j                   t#        d      | j%                  | | j                         S # 1 sw Y   jxY w)Nr  charsetapplicationjsonrdapr  z7Cannot compute fallback encoding of a not yet read body)ra   rs   r   r}  r  r   parse_mimetyperV   rD  rE  rF  codecslookupr8  rU   subtyper  RuntimeErrorr  )rf   ctypemimetypeencodings       rN   get_encodingzClientResponse.get_encoding]  s      !2!2B7==?))%0&&**95$$[1 4}}X.334 4 ==M)&(*:*:f*D ::I  $$T4::664 4s   DDr/  errorsc                    K   | j                   | j                          d{    || j                         }| j                   j                  ||      S 7 3w)z!Read response payload and decode.N)r1  )r  r  r0  r  )rf   r/  r1  s      rN   textzClientResponse.textt  sY     ::))+((*Hzz  V ! 
 	
 s    AA4Ar   )r/  loadscontent_typer4  r5  c                  K   | j                   | j                          d{    |rt| j                  j                  t        j
                  d      j                         }t        ||      s0t        | j                  | j                  d|z  | j                        | j                   j                         }|sy|| j                         } ||j                  |            S 7 w)zRead and decodes JSON response.Nr  z3Attempt to decode JSON with unexpected mimetype: %s)r  ra   )r  r  ra   rs   r   r}  r  r   r'   r  r  r  r0  r  )rf   r/  r4  r5  r-  strippeds         rN   r&  zClientResponse.json  s      ::))+LL$$T%6%6;AACE,ULA&%%LLPSXX LL  ::##%((*HX__X.//+ s    C%C#CC%c                    K   | S wrd   rL   re   s    rN   
__aenter__zClientResponse.__aenter__  s     s   exc_typeexc_valexc_tbc                 `   K   | j                          | j                          d {    y 7 wrd   )r  r  )rf   r:  r;  r<  s       rN   	__aexit__zClientResponse.__aexit__  s#      	!!###s   $.,.rd   )rJ   r`   )rJ   z/MultiDictProxy[MultiDictProxy[Union[str, URL]]])r  rH   rJ   rD   r  )Nstrict)rJ   rD   )OrX   rY   rZ   r   r   r7   r\   r  r   r  r[   r  r<   r  r   r  rA   r  r   r   StackSummaryr  r  r  r   r-   rE   r   r   r  ry   r  r  r   r   r  r4   r^   r  rb   r   ra   r  r  rT   r  r   r   r  r  r  r   r  r  r  r  r   r  rV  r  r  r  r	  r  r  r  r  r   r  r0  r3  r=   r>   r&  r9  r   r"  r
   r>  rL   rM   rN   rD   rD     s    &*GXk")FC FHSM  G\ &*Hs#*#L*#K:>x	 6 67> GIH*O*O *O
 %*O 45*O  *O "*O W*O ''*O !*O 
*OX $  "67   ^^:h';< : : : S      #   c     !Z ! ! "k " " FX.@%A F F (0 ; ;D ; # $  H\2     45   !% !%F1f$   	#  !D ! !U#


E $7c 7.

8C= 

 

TW 

 #'1&80 3-0 	0
 sm0 
0@
$4./
$ -(
$ '	
$
 

$rM   rD   )rr   r)  rD  rv  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   r   rh   	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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   logr;   streamsr<   typedefsr=   r>   r?   r@   rA   r   rB   ImportErrorr  __all__clientrG   	connectorrH   tracingrI   compiler   r   r[   rO   srT   rE   rF   r   rU   r   r   r   r   r   rC   rD   rL   rM   rN   <module>rU     sS       	 	 
   % % : : 1      N N  5 5 %  * 
 
 
   !  L %% 'BJJ'EF 
"**9
:Bc B T$d3  4 T$d3  4P PD ?{DJGT
2	|WU^[$>	?22 ,'2 %	2
 <d:;2j Td3	& 	& 4	&::7::	:HC HCV{$\ {$M  
CJs   $
H
 
	HH