403Webshell
Server IP : 74.208.236.52  /  Your IP : 216.73.217.98
Web Server : Apache
System : Linux infong527 4.4.400-icpu-115 #2 SMP Mon Jul 6 08:15:05 UTC 2026 x86_64
User : u44043973 ( 5404757)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/mercurial/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/mercurial/__pycache__/url.cpython-313.pyc
�

6�h�e���SSKJr SSKrSSKrSSKrSSKJr SSKJr SSK	J
r
JrJr
JrJrJrJrJr SSKJrJr \R,r\R.r\R0r\R2rS&Sjr"S	S
5r"SS\R85rS
r\"\S5r"SS\R@5rSr!"SS\RD5r#"SS\#5r$\(a:S'Sjr%"SS\R@5r&"SS\RN\RP5r("SS\RR5r)"SS\RT5r*Sr+"SS \RX5r-"S!S"\RX5r./r/S(S#jr0S)S$jr1S%r2g)*�)�annotationsN�)�_)�hex)�encoding�error�httpconnection�	keepalive�pycompat�sslutil�urllibcompat�util)�
stringutil�urlutilc��URSS5nURSS5nURSS5nU(aURSS5nU$)	aReplace special characters "&", "<" and ">" to HTML-safe sequences.
If the optional flag quote is true, the quotation mark character (")
is also translated.

This is the same as cgi.escape in Python, but always operates on
bytes, whereas cgi.escape in Python 3 only works on unicodes.
�&s&amp;�<s&lt;�>s&gt;�"s&quot;)�replace)�s�quotes  �//usr/lib/python3/dist-packages/mercurial/url.py�escaper'sL��	
�	�	�$��!�A�	�	�	�$�� �A�	�	�	�$�� �A��
�I�I�d�I�&���H�c�2�\rSrSrSrSrSrSrSrSr	g)	�passwordmgr�7c��XlX lg�N)�ui�passwddb)�selfr!r"s   r�__init__�passwordmgr.__init__8s���� �
rc�:�URRXX45$r )r"�add_password)r#�realm�uri�user�passwds     rr'�passwordmgr.add_password<s���}�}�)�)�%�d�C�Crc�j�[U[S5[45(de[U[5(deURR	X5nUupE[
R"U5[
R"U5pTU(aDU(a=URXE5 [
R"U5[
R"U54$U(aU(dk[R"URX$5nU(aCUupxURS5URS5pTURRSU-5 U(aU(Gd�[R"[
R"U55n	SU	lURR#5(d?[$R&"[)S5[R*"[-U	55-5eURR/[)S5[R*"[-U	55-5 URR/[)S5[
R"U5-5 U(a(URR/[)S5U-5 O#URR1[)S5SS	9nU(dURR35nUcg
URR5XXE5 URXE5 [
R"U5[
R"U54$)Nsusernamespassword�#using auth.%s.* for authentication
s"http authorization required for %ss#http authorization required for %s
s
realm: %s
s	user: %s
suser:)�default)NN)�
isinstance�type�strr"�find_user_passwordr�bytesurl�_writedebug�strurl�httpconnectionmod�readauthforurir!�get�debugr�url�query�interactiver�Abortr�hidepassword�bytes�write�prompt�getpassr')
r#r(�authuri�authinfor*r+�res�group�auth�us
          rr3�passwordmgr.find_user_password?sB���%�$�t�*�c�!2�3�3�3�3��'�3�'�'�'�'��=�=�3�3�E�C������(�(��.��0A�0A�&�0I�f��F����T�*��O�O�D�)�8�?�?�6�+B�C�C��6�#�2�2�4�7�7�G�J�C��!���#�x�x��4�d�h�h�{�6K�f����
�
�E��M�N��6����H�-�-�g�6�7�A��A�G��7�7�&�&�(�(��k�k��;�<��*�*�5��8�4�5���

�G�G�M�M��9�:��&�&�u�Q�x�0�1�
�
�G�G�M�M�!�N�+�h�.?�.?��.F�F�G�����
�
�a�
�.��5�6��w�w�~�~�a��k�4�~�@��������*���<���
�
�"�"�5�4�@�����&�����%�x���v�'>�?�?rc��[S5nURRX1U=(a S[U5-=(d S4-5 g)N� http auth: user %s, password %s
�*�not set)rr!r:�len)r#r*r+�msgs    rr5�passwordmgr._writedebugps8���4�5�����
�
�c�6�#@�d�S��[�.@�#N�J�O�O�Prc�:�URRSU5$r )r"r3)r#rDs  r�find_stored_password� passwordmgr.find_stored_passwordts���}�}�/�/��g�>�>r)r"r!N)
�__name__�
__module__�__qualname__�__firstlineno__r$r'r3r5rS�__static_attributes__�rrrr7s��!�D�/@�bQ�?rrc� �\rSrSrSrSrSrg)�proxyhandler�xc�N�URSS5=(d [RRS5nU(Ga�UR	S5(dUR	S5(dSU-S-n[
R"U5nUR(d.URSS5UlURSS5UlS	S
/nURURSS5Vs/sHoUR5PM sn5 UR[RRSS
5RS5Vs/sH8nUR5(dMUR5R5PM: sn5 URSS5(a/UlOX@l[!U5nX"S.nUR#S[
R$"['U55-5 O0n[(R*R-X5 Xlgs snfs snf)Ns
http_proxyshostshttp:shttps:shttp://�/suserspasswds	localhosts	127.0.0.1snosno_proxyr�,salways)�http�httpssproxying through %s
)�configr�environr9�
startswithrr;r*r+�extend�
configlist�lower�split�strip�
configbool�no_listr2r:r?r@�urlreqr\r$r!)r#r!�proxyurl�proxyrl�p�proxiess       rr$�proxyhandler.__init__ys����9�9�]�G�4�
��8H�8H�8L�8L��9
��
��#�#�H�-�-��1D�1D�Y�1O�1O�%��0�4�7���K�K��)�E��:�:��Y�Y�}�g�>��
�!�y�y��	�B���$�\�2�G��N�N�$&�M�M�-��$G�H�$G�q����$G�H�
�
�N�N�&�-�-�1�1�+�s�C�I�I�$�O��O���w�w�y�&�A�G�G�I�O�O�%�O��
��}�}�]�I�6�6�!���&���5�z�H�'�;�G��H�H�(�7�+?�+?��e��+M�M�
��G����$�$�T�3����5I��s�-H�	H"�&"H"c��[R"[R"U55R	S5SnUR
HnnXE:Xa gUR
S5(aURUSS5(a gUR
S5(dMSURUSS5(dMn g [RRXX#5$)N�:rs*.��.r)rr4r
�gethostrirlre�endswithrmr\�
proxy_open)r#�reqro�type_�host�es      rry�proxyhandler.proxy_open�s���� � ��!5�!5�c�!:�;�A�A�$�G��J�����A��y���|�|�E�"�"�t�}�}�Q�q�r�U�';�';���|�|�D�!�!�d�m�m�A�a�b�E�&:�&:��
��"�"�-�-�d��F�Fr)rlr!N)rUrVrWrXr$ryrYrZrrr\r\xs��.�`
Grr\c�^�U4SjnU$)Nc��>�[U[R5(a7URS5 [R
"U5HnT"X5 M
 gT"X5 g�Nr)r0r7�httpsendfile�seekr�
filechunkiter)r#�data�chunk�orgsends   �r�	_sendfile� _gen_sendfile.<locals>._sendfile�sI����d�-�:�:�;�;��I�I�a�L��+�+�D�1����$�2�
�D�rrZ)r�r�s` r�
_gen_sendfiler��s��� ��r�httpshandlerc�L�\rSrSr\"\RR5rSrg)r	��rZN)	rUrVrWrXr�r
�HTTPConnection�sendrYrZrrr	r	�s����1�1�6�6�7�Drr	c�d�URnU(aUSSS;aSU-nSnO[R"U5nSnU(dU[R"U5:Xa�[R
"[R"U55nU(dURS:Xa�SRURUR=(d S/5UlURR5Ul
URRUR R"5 gSUlSUl
g)	N�)zhttp://zhttps:/zhttps://TFshttpsrts443)�_tunnel_hostr
�getselector�
getfullurlrr;rr4�scheme�joinr|�port�realhostport�headers�copy�update�parent�
addheaders)�handler�hrz�tunnel_host�
new_tunnelrIs      r�_generic_start_transactionr��s����"�"�K���r��?�"8�8�$�{�2�K��
�"�.�.�s�3���
��[�L�$;�$;�C�$@�@��K�K��)�)�+�6�7������X�-�!�Y�Y�������1A�6�'C�D�A�N����(�(�*�A�I�
�I�I���W�^�^�6�6�7���A�N��A�Irc� �\rSrSrSrSrSrg)�httphandler��c�.�UR[U5$r )�do_openr	)r#rzs  r�	http_open�httphandler.http_open�s���|�|�N�C�0�0rc�Z�[XU5 [RRXU5$r )r�r
�HTTPHandler�_start_transaction�r#r�rzs   rr��httphandler._start_transaction�s%��"�4�C�0��$�$�7�7���E�ErrZN)rUrVrWrXr�r�rYrZrrr�r��s
��1�Frr�c�8^�\rSrSrSrU4SjrU4SjrSrU=r$)�logginghttphandler��z%HTTP(S) handler that logs socket I/O.c�J>�[TU]"U0UD6 XlX lX0lgr )�superr$�_logfh�_logname�
_observeropts)r#�logfh�name�observeropts�args�kwargs�	__class__s      �rr$�logginghttphandler.__init__�s%���
���$�)�&�)����
�)�rc�>^^^�URmURmURm"UUU4SjSU5n[TU]"U/UQ70UD6$)Nc�0>^�\rSrSrUUUU4SjrSrU=r$)�9logginghttphandler.do_open.<locals>.logginghttpconnection�c�r>�[TU]5 [R"TURT40TD6Ulgr )r��connectr�makeloggingsocket�sock)r#r�r�r�r�s ����rr��Alogginghttphandler.do_open.<locals>.logginghttpconnection.connect�s2������!� �2�2��D�I�I�x��3@���	r)r�)rUrVrWrXr�rY�
__classcell__)r�r�r�r�s@���r�logginghttpconnectionr��s
���
�
rr�)r�r�r�r�r�)	r#�
http_classr�r�r�r�r�r�r�s	     @@@�rr��logginghttphandler.do_open�sM��������=�=���*�*�
�	�	�J�	��w��4�F�t�F�v�F�Fr)r�r�r�)	rUrVrWrX�__doc__r$r�rYr��r�s@rr�r��s���/�*�G�Grr��httpsconnectionc�.^	�URnUVs0sHVnUR5RS5(dM)[R"U5[R"X5_MX nnUR
nUR
SU-5 UR5HnUR
SU-5 M UR
S5 URURURS9m	T	R5upgnU[R:waO[[U	4SjS55 MCUS:Xa*[[T	R R"S55 gUR%5 ['S	XxR)54-5es snf)
Nzproxy-sCONNECT %s HTTP/1.0
s%s: %s
s
)�methodc�T>�TRR5R5$r )�fp�readlinerj)rFs�r�<lambda>�&_generic_proxytunnel.<locals>.<lambda>%s���c�f�f�o�o�/�5�5�7rr��zTunnel connection failed: %d %s)r�rhrer�bytestrr�r��items�response_classr��_method�_read_status�httplib�CONTINUE�list�iterr�r��close�OSErrorrj)
r#r��x�proxyheadersr��header�version�status�reasonrFs
         @r�_generic_proxytunnelr�sZ����,�,���
����w�w�y�#�#�H�-�
>�H���Q���!1�!1�'�*�!=�=��	�
�
�(�(���	�	�,�|�;�<�"�(�(�*�F��I�I�m�f�,�-�+��	�	�'���!�!�$�)�)�D�L�L�!�A���&)�&6�&6�&8�#�G�V���)�)�)����7��=�>���S�=���c�f�f�o�o�w�/�0��J�J�L��1�V�\�\�^�4L�L��
��E
s
�(F�1Fc��\rSrSr\R
r\Rr	\
"\R5r\R"\R5rSSjrSrSrg)r�i0Nc�f�[RR"XU/UQ70UD6 X0lX@lgr )r
r�r$�key_file�	cert_file)r#r|r�r�r�r�r�s       rr$�httpsconnection.__init__7s.��
�$�$�-�-�d�$�P��P��P�$�M�&�Nrc���[R"URUR4UR5UlURnURnU(a [U5 URSS5Sn[R"UR
URURURUS9Ul[R"UR
5 g)Nrtrr)r!�serverhostname)�socket�create_connectionr|r��timeoutr�r�r��rsplitr�
wrapsocketr�r�r!�validatesocket)r#r|r�s   rr��httpsconnection.connectDs����0�0����D�I�I�&�����D�I��9�9�D��,�,�L��$�T�*�#�*�*�4��3�A�6���*�*��	�	��
�
�����7�7�#��D�I�
�"�"�4�9�9�-r)r�r�r�)NNN)rUrVrWrXr
�HTTPResponser�r��
HTTPS_PORT�default_portr��safesendr��wrapgetresponser��getresponser$r�rYrZrrr�r�0sS��"�/�/���)�)���Y�/�/�0���/�/��0F�0F�G��
���	'�	.rc�4�\rSrSrSSjrSrSrSSjrSrg)	r�iWNc���[RRXS9 [RRU5 Xl[
UR
UR
R5Ulg)N�r�)	r
�KeepAliveHandlerr$rmr�r!r�httppasswordmgrdb�pwmgr)r#r!r�s   rr$�httpshandler.__init__XsN���&�&�/�/��/�F����(�(��.��G�$�T�W�W�d�g�g�.G�.G�H�D�Jrc�Z�[XU5 [RRXU5$r )r�r
r�r�r�s   rr��httpshandler._start_transaction^s%��&�t��4��-�-�@�@��#�N�Nrc�P�[R"U5nURRU5up4[R
"URX#5nU(a)UupgXplURRSU-5 OSUlURURU5$)Nr.)r
r�rrSr7r8r!rHr:r��_makeconnection)r#rzr;r*�passwordrFrGrHs        r�
https_open�httpshandler.https_openbs����)�)�#�.�C�!�Z�Z�<�<�S�A�N�D�#�2�2�4�7�7�C�F�C��!��� �	����
�
�E��M�N� ��	��<�<�� 4� 4�c�:�:rc�H�SnSn[U5S:�aUSn[U5S:�aUSnUSSnUR(a>SUR;a.SUR;aURSnURSn[XXV/UQ70UD6nURUlU$)Nrrruskeyscert)rOrHr�r!)r#r|r�r�r��keyfile�certfile�conns        rr�httpshandler._makeconnectionps����G��H��4�y�A�~��q�'���4�y�A�~���7�����8�D��y�y�V�t�y�y�0�W��	�	�5I��)�)�F�+���9�9�W�-��"��G��04��8>��D��g�g�D�G��Kr)rHrr!r )	rUrVrWrXr$r�rrrYrZrrr�r�Ws��	I�	O�	;�	rc�&�\rSrSrSrSrSrSrg)�httpdigestauthhandleri�c�Z�[RR"U/UQ70UD6 SUlgr )rmrr$�retried_req�r#r�r�s   rr$�httpdigestauthhandler.__init__�s(���$�$�-�-�d�D�T�D�V�D���rc��gr rZ�r#s r�reset_retry_count�'httpdigestauthhandler.reset_retry_count����	
rc�z�X0RLa
X0lSUl[RR	XX#U5$r�)r�retriedrmr�http_error_auth_reqed�r#�auth_headerr|rzr�s     rr�+httpdigestauthhandler.http_error_auth_reqed�s;���&�&�&�"���D�L��+�+�A�A��t�'�
�	
r)rrN)rUrVrWrXr$rrrYrZrrrr�s�� �
�
rrc�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�httpbasicauthhandleri�c�h�SUl[RR"U/UQ70UD6 SUlgr )rHrmr!r$rrs   rr$�httpbasicauthhandler.__init__�s/����	��#�#�,�,�T�C�D�C�F�C���rc�t�UR(a&URURUR5 U$r �rH�add_unredirected_headerr�r#�requests  r�http_request�!httpbasicauthhandler.http_request��(���9�9��+�+�D�,<�,<�d�i�i�H��rc�t�UR(a&URURUR5 U$r r%r's  r�
https_request�"httpbasicauthhandler.https_request�r+rc��gr rZrs rr�&httpbasicauthhandler.reset_retry_count�rrc�z�X0RLa
X0lSUl[RR	XX#U5$r�)rrrmr!rrs     rr�*httpbasicauthhandler.http_error_auth_reqed�s;���&�&�&�"���D�L��*�*�@�@��t�'�
�	
rc��URRU[R"U55upEUb�S[R
"U5[R
"U54-nS[R"[R"U5R55-nURURS5U:XagXplURURU5 URRU5$g)Ns%s:%szBasic %s)r+r3r
r�rr4r6�base64�	b64encoderj�
get_headerrrHr&r��open)r#r|rzr(r*�pw�rawrHs        r�retry_http_basic_auth�*httpbasicauthhandler.retry_http_basic_auth�s����;�;�1�1��<�*�*�3�/�
����>��h�/�/��5�x�7H�7H��7L�M�M�C������0@�0@��0E�0K�0K�0M� N�N�D��~�~�d�.�.��5��=���I��'�'��(8�(8�$�?��;�;�#�#�C�(�(�r)rHrrN)rUrVrWrXr$r)r-rrr:rYrZrrr!r!�s �� �
��
�
�
rr!c��URSS5nU(dg[R"U5n[RR	[
R"U55nUR5 U$![RRa=nUR[S5U[R"U54-5 SnAgSnAff=f)Nsauths
cookiefiles?(error loading cookie file %s: %s; continuing without cookies)
)
rcr�
expandpath�	cookielib�MozillaCookieJarr�fsdecode�load�	LoadError�warnrr�forcebytestr)r!�
cookiefile�	cookiejarr}s    r�load_cookiejarrG�s������7�M�2�J�������,�J�

��N�N�3�3����j�)�
�	�	��������>�>�#�#�
�
���
��
��:�2�2�1�5�6�	
7�	
�	
��
�s�AA7�7C�3C
�
Cc��\rSrSrSr\rSrg)�readlinehandleri�c�<�"SSUR5nX2lU$)Nc��\rSrSrSSjrSrg)�7readlinehandler.http_response.<locals>.readlineresponsei�c��Sn/nUR5nU(dU$URU5 U[U5-
nU(aX!:�aU$MJr�)r��appendrO)r#�sizehint�totalr��lines     r�	readlines�Areadlinehandler.http_response.<locals>.readlineresponse.readlines�sX��������=�=�?�D���
��	�K�K��%��S��Y�&�E��E�$5����rrZN)r)rUrVrWrXrRrYrZrr�readlineresponserL�s��
rrTr�)r#r(�responserTs    r�
http_response�readlinehandler.http_response�s!��	�x�1�1�	�.���rrZN)rUrVrWrXrV�https_responserYrZrrrIrI�s���$#�NrrIc�V�\rSrSr\R
\RS.rSrSr	\	r
Srg)�
digesthandleri�)ssha256ssha512c��SU;a[R"[S55eURS5up#X R;a"[R"[S5U-5eX0lURU"5Ulg)Nrtsinvalid digest specifications unsupported digest algorithm: %s)rr>rri�digest_algorithms�_digest�_hasher)r#�digest�algo�checksums    rr$�digesthandler.__init__so���v���+�+�a� ?�@�A�A����d�+����-�-�-��+�+�a� C�D�t�K�L�L����-�-�d�3�5��rc���"SSUR5nX2lURUlSUlURR	5UlSUlSUlU$)Nc�V^�\rSrSrSrSU4SjjrU4SjrU4SjrU4SjrSr	U=r
$)	�3digesthandler.http_response.<locals>.digestresponsei
c��URRU5 U=R[U5-
slUR(a�[URR
55nX R:waa[R"[S5[R"UR5[R"U5UR4-5egg)Ns7file with digest %s expected, but %s found for %d bytes)
r^r��_digest_consumedrO�_digest_finishedrr_r]r�
SecurityErrorrrr�)r#r�r_s   r�
_digest_input�Adigesthandler.http_response.<locals>.digestresponse._digest_inputs������#�#�D�)��%�%��T��2�%��(�(� ����!4�!4�!6�7�F����-�#�1�1�� Z��!)� 0� 0���� >� (� 0� 0�� 8� $� 5� 5���	�	�.�)rc�>�U=RS-
sl[TU]	U5nU=RS-slURS:XaURU5 U$�Nrr)�_digest_recursion_levelr��readrj)r#�amtr�r�s   �rro�8digesthandler.http_response.<locals>.digestresponse.readsT����,�,��1�,��w�|�C�(���,�,��1�,��/�/�1�4��&�&�t�,��rc�>�U=RS-
sl[TU]	5nU=RS-slURS:XaURU5 U$rm)rnr�r�rj)r#r�r�s  �rr��<digesthandler.http_response.<locals>.digestresponse.readline$sS����,�,��1�,��w�'�)���,�,��1�,��/�/�1�4��&�&�t�,��rc��>�U=RS-
sl[TU]	U5nU=RS-slURS:XaURUSU5 U$rm)rnr��readintorj)r#�dest�gotr�s   �rru�<digesthandler.http_response.<locals>.digestresponse.readinto,s[����,�,��1�,��g�&�t�,���,�,��1�,��/�/�1�4��&�&�t�D�S�z�2��
rc�.>�SUl[TU]	5$)NT)rhr�r�)r#r�s �r�_close_conn�?digesthandler.http_response.<locals>.digestresponse._close_conn4s���(,��%��w�}��&r)rhr )rUrVrWrXrjror�rurzrYr�r�s@r�digestresponsere
s!���
�"
�
�
�
'�
'rr|rF)r�r]rgr^r�rnrh)r#r(rUr|s    rrV�digesthandler.http_response	s[��,	'�X�/�/�,	'�\,���<�<���$%��!��<�<�,�,�.���+,��(�$)��!��r)r]r^N)rUrVrWrX�hashlib�sha256�sha512r\r$rVrXrYrZrrrZrZ�s,���>�>��>�>���
6�6�p#�NrrZc	��UR[SS5n/n	U(a$U	R[X4U=(d 0US95 OU	R[	US95 [
(aU	R[
XS95 U	R[U55 [XR5n
UbmUup�p�U
RUS5unnX�:wdU(aU
RX�X�5 URSX�=(a S[U5-=(d S4-5 U	R[U
5[!U
545 U	R["Vs/sHnU"X
5PM
 sn5 U	R[$R'[)U5S95 U	R[+55 U(aU	R[-U55 [$R."U	6nSUlSUlSUlU(d7S	[6R8"5-nS
[:R<"U54/UlOS
[:R<"U54/UlU(aUR>RS5 U$s snf)a
construct an opener suitable for urllib2
authinfo will be added to the password manager

The opener can be configured to log socket events if the various
``logging*`` arguments are specified.

``loggingfh`` denotes a file object to log events to.
``loggingname`` denotes the name of the to print when logging.
``loggingopts`` is a dict of keyword arguments to pass to the constructed
``util.socketobserver`` instance.

``sendaccept`` allows controlling whether the ``Accept`` request header
is sent. The header is sent by default.
shttpstimeoutr�rrLrMrN)rFs"mercurial/proto-1.0 (Mercurial %s)z
User-agent)�Acceptzapplication/mercurial-0.1) �
configwith�floatrNr�r��	has_httpsr�r\rrrSr'r:rOrfr!r�handlerfuncsrm�httpcookieprocessorrGrIrZ�buildopener�
requestscount�sentbytescount�receivedbytescountrr�r�sysstrr�)r!rE�	useragent�	loggingfh�loggingname�loggingopts�
sendacceptr_r��handlers�passmgrr(�urisr*r+�	saveduser�	savedpassr��opener�agents                    rr�r�Gs��2�m�m�E�7�J�7�G��H��������(9�r�7�
�	
�	����G�4�5��y������-�	
�
�O�O�L��$�%��"�2�2�3�G���$,�!��T�&�;�;�D��G�D��	�9����� � ��d�;�
���0��2��s�6�{� 2�@�j�A�
B�	
�

�O�O�	�g�	&�(=�g�(F�G��
�O�O�\�:�\��Q�r�^�\�:�;��O�O�F�.�.���9K�.�L�M��O�O�O�%�&�
����
�f�-�.�
�
�
��
*�F��F���F�� !�F��"�5�����F��*�H�O�O�E�,B�C�D���*�H�O�O�I�,F�G�H������� � �!H�I��M��Q;s�I=c���[R"U5nUR(a2URR5UlUR	5upOl[
R"[
R"U55nS[R"[R[R"U555-nSn[XX4S9R[R"U5U5$)Nsfile://)r�r_)rr;r�rhrEr�normpath�abspathrr4rm�pathname2urlr@r�r7r6)r!�url_r�r�r_rIrE�paths        rr7r7�s������D��A��x�x��8�8�>�>�#���������h��}�}�T�\�\�$�/�0���H�-�-����� 1� 1�$� 7�8�
�
�����"�:�E�J�J������t��rc�Z^�URm"U4SjSUR5nXlg)z�Wrap a response object with common error handlers.

This ensures that any I/O from any consumer raises the appropriate
error and messaging.
c�&>�\rSrSrSU4SjjrSrg)�!wrapresponse.<locals>.readerproxyi�Nc�>�T"U5$![RasnUR(a4[UR5nURU-n[S5XC4-nO[S5n[R"U[S5S9eSnAf[Ra/n[R"[S5U-[S5S9eSnAff=f)NsBHTTP request error (incomplete response; expected %d bytes got %d)s(HTTP request error (incomplete response)svthis may be an intermittent network failure; if the error persists, consider contacting the network or server operator)�hintsHTTP request error (%s))	r��IncompleteRead�expectedrO�partialrr�PeerTransportError�
HTTPException)r#�sizer}rwrPrP�origreads      �rro�&wrapresponse.<locals>.readerproxy.read�s����
���~�%���)�)�
��:�:��a�i�i�.�C��J�J��,�E��5����%�C�
�G�H�C��.�.���6������(�(�
��.�.��0�1�A�5��6�����
�s!��C�A.B
�
C�$*C�CrZr )rUrVrWrXrorY)r�s�r�readerproxyr��s
���	�	rr�N)ror�)�respr�r�s  @r�wrapresponser��s&����y�y�H� �d�n�n� �D!�Nrr )r#r�)NNN�sNTN)NTN)3�
__future__rr4r~r��i18nr�noder�rrr	r7r
rrr
r�utilsrrr��stringio�urlerrrmrrr\r��hasattrr�r�r�r�r�r�r�r�r�r�rr!rG�basehandlerrIrZr�r�r7r�rZrr�<module>r�s}��#�
��
���	�	�	��
�,�,���=�=��	
����	
����

� >?�>?�B;G�6�&�&�;G�|�
�F�N�+�	�8�Y�-�-�8��,F�)�'�'�F�G��G�2
�&�P%.�)�2�2�%.�N-�y�1�1�6�3F�3F�-�`
�F�8�8�
�*.�6�6�6�.�b
�*#�f�(�(�#�,I#�F�&�&�I#�X��
�������b�J
� *!r

Youez - 2016 - github.com/yon3zu
LinuXploit