__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

��HhD��	�`�SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKJ
r
 SSKJrJr SSKJr SSKJr SSKJrJrJrJr SS	KJrJrJrJrJrJr SS
KJ r! SSKJ"r"J#r#J$r$J%r%J&r&J'r'J(r( SSK)J*r* SS
K+J,r,J-r-J.r.J/r/ SSK0J1r1 Sr2\Rf"5r4SSS.r5SRm\Rn"S\"SS9S55r8\RrS:XaSr:Sr"Sr;Sr<SHSjr=Sr>Sr?\R�S 5rAS!rBS"rCS#rDS$rESHS%jrFS&rGS'rHS(rIS)rJS*rKS+rLS,rMS-rN\O"S.5rPS/rQS0rRS1rSS2rTS3rUS4rV\R�S55rWS6rXSIS7jrYS8rZSJS9jr[SKS:jr\S;r]S<r^S=R�S>5r`\`S?-ra\`S@-rbSArcSBrdSCreSDrfSErgSFrhSGrig)Lz�
requests.utils
~~~~~~~~~~~~~~

This module provides utility functions that are used within Requests
that are also useful for external consumption.
�N)�OrderedDict)�make_headers�	parse_url�)�certs��__version__)�_HEADER_VALIDATORS_BYTE�_HEADER_VALIDATORS_STR�HEADER_VALIDATORS�to_native_string)�Mapping�
basestring�bytes�
getproxies�getproxies_environment�
integer_types)�parse_http_list)�proxy_bypass�proxy_bypass_environment�quote�str�unquote�urlparse�
urlunparse��cookiejar_from_dict)�FileModeWarning�
InvalidHeader�
InvalidURL�UnrewindableBodyError)�CaseInsensitiveDict)z.netrc�_netrc�Pi�)�http�httpsz, z,\s*T)�accept_encodingzaccept-encoding�win32c�D�SSKnURURS5n[	URUS5S5nURUS5SnU(aU(dgURS5n[SU5nUHsnUS:XaSU;a g	URSS
5nURSS5nURS
S5n[R"XP[R5(dMs g	 g![a gf=f![[4a gf=f)NrFz;Software\Microsoft\Windows\CurrentVersion\Internet Settings�ProxyEnable�
ProxyOverride�;z<local>�.Tz\.�*z.*�?)�winreg�ImportError�OpenKey�HKEY_CURRENT_USER�int�QueryValueEx�OSError�
ValueError�split�filter�replace�re�match�I)�hostr0�internetSettings�proxyEnable�
proxyOverride�tests      �0/usr/lib/python3/dist-packages/requests/utils.py�proxy_bypass_registryrDLs!��	��
	�%�~�~��(�(�N� ��
�f�1�1�2B�M�R�ST�U�V�K�"�/�/�0@�/�R�ST�U�M��-��
&�+�+�C�0�
��t�]�3�
�!�D��y� ��d�?���<�<��U�+�D��<�<��U�+�D��<�<��T�*�D��x�x��B�D�D�)�)��"���C�	��	����$�	��	�s#�C<�AD�<
D	�D	�D�Dc�L�[5(a[U5$[U5$)z�Return True, if the host should be bypassed.

Checks proxy settings gathered from the environment, if specified,
or the registry.
)rrrD)r>s rCrrrs#��"�#�#�+�D�1�1�(��.�.�c�H�[US5(aUR5nU$)z/Returns an internal sequence dictionary update.�items)�hasattrrH)�ds rC�dict_to_sequencerK~s!���q�'���
�G�G�I���HrFc�@�SnSn[U[5(aURS5n[US5(a[	U5nO�[US5(a
URnOm[US5(a\UR5n[R"U5RnSUR;a[R"S[5 [US5(abUR!5n[US	5(a@Uc=UR#SS
5 UR!5nUR#U=(d S5 UcSn['SX-
5$![R[4a N�f=f![$a SnNAf=f![$a UbUnNVf=f)Nr�utf-8�__len__�len�fileno�ba%Requests has determined the content-length for this request using the binary size of the file: however, the file has been opened in text mode (i.e. without the 'b' flag in the mode). This may lead to an incorrect content-length. In Requests 3.0, support will be removed for files in text mode.�tell�seek�)�
isinstancer�encoderIrOrP�os�fstat�st_size�mode�warnings�warnr�io�UnsupportedOperation�AttributeErrorrRrSr6�max)�o�total_length�current_positionrPs    rC�	super_lenrd�s����L����!�S���
�H�H�W����q�)����1�v��	��E�	�	��u�u��	��H�	�	�	��X�X�Z�F��8�8�F�+�3�3�L��!�&�&� ��
�
�2�$�
��q�&���	%� �v�v�x���q�&�!�!�l�&:�	%��F�F�1�a�L�#$�6�6�8�L��F�F�+�0�q�1������q�,�1�2�2��e�'�'��8�	�
�		��X�%�#$�L�%��%�	0�
�'�#/� ��
	0�s6�8E�%F�
<E9�E6�5E6�9F�F�F�Fc�F�[RRS5nUbU4nO
S[5nSSKJnJn SnUHKn[RRU5n[RRU5(dMIUn O Ucg[U5n	U	Rn
U"U5RU
5nU(aUS(aSOSnX�US4$g![a  gf=f!U[4a U(aegf=f![[4a gf=f)z;Returns the Requests tuple auth for a given url from netrc.�NETRCNc3�,# �UH
nSU3v� M g7f)z~/N�)�.0�fs  rC�	<genexpr>�!get_netrc_auth.<locals>.<genexpr>�s���9�[��R��s�8�[�s�r)�NetrcParseError�netrcrrT)rW�environ�get�NETRC_FILESrnrm�path�
expanduser�KeyError�existsr�hostname�authenticatorsr6r1r_)
�url�raise_errors�
netrc_file�netrc_locationsrmrn�
netrc_pathrj�loc�rir>r#�login_is
             rC�get_netrc_authr��s'��������(�J���%�-��9�[�9��'
�0��
� �A�
��g�g�(�(��+���w�w�~�~�c�"�"� �
��!����
�c�]���{�{��
	��:�&�5�5�d�;�F��%�a�y�!�a�������3�3���'�
��	
��. ��)�	����	��
��(�
��
�s_�D
�C"�$"D
�
	D
�D
�,4C3�"
C0�,D
�/C0�0D
�3D
�D
�	D
�
D
�
D �D c��[USS5nU(aI[U[5(a3USS:wa)USS:wa[RRU5$gggg)z0Tries to guess the filename of the given object.�nameNr�<����>)�getattrrUrrWrr�basename)�objr�s  rC�guess_filenamer��sW���3���%�D��
�4��,�,��a��C��D��H�PS�O��w�w����%�%�ET��,�trFc��[RRU5(aU$[RRU5upU(a�[RRU5(dh[RRU5upU(dO?SR	X2/5nU(a&[RRU5(dMh[
R"U5(dU$[
R"U5nX$R5;aU$[R"5n[RR	XRRS5S5n[RRU5(d6[U5nURURU55 SSS5 U$U$!,(df   U$=f)z�Replace nonexistent paths that look like they refer to a member of a zip
archive with the location of an extracted copy of the target, or else
just return the provided path unchanged.
�/r�N)rWrrrur8�join�zipfile�
is_zipfile�ZipFile�namelist�tempfile�
gettempdir�atomic_open�write�read)rr�archive�member�prefix�zip_file�tmp�extracted_path�file_handlers        rC�extract_zipped_pathsr�sH��

�w�w�~�~�d������g�g�m�m�D�)�O�G�
�"�'�'�.�.��1�1��'�'�-�-��0����
����6�*�+��
�"�'�'�.�.��1�1����g�&�&������w�'�H�
�&�&�(�(����
�
�
�C��W�W�\�\�#�|�|�C�'8��'<�=�N�
�7�7�>�>�.�)�)�
��
(�L����x�}�}�V�4�5�)���>��)�
(���s�!G�
Gc#�T# �[R"[RR	U5S9up[R
"US5nUv� SSS5 [R"X 5 g!,(df   N%=f![a [R"U5 ef=f7f)z-Write a file to the disk in an atomic fashion)�dir�wbN)	r��mkstemprWrr�dirname�fdopenr:�
BaseException�remove)�filename�tmp_descriptor�tmp_name�tmp_handlers    rCr�r�+sz��� (�/�/�B�G�G�O�O�H�4M�N��N��
�Y�Y�~�t�
,����-�
�
�
�8�&�-�
,����
�	�	�(��
��s4�4B(�B�A2�B�1B(�2
B�<B�"B%�%B(c��Ucg[U[[[[45(a[S5e[
U5$)a�Take an object and test to see if it can be represented as a
dictionary. Unless it can not be represented as such, return an
OrderedDict, e.g.,

::

    >>> from_key_val_list([('key', 'val')])
    OrderedDict([('key', 'val')])
    >>> from_key_val_list('string')
    Traceback (most recent call last):
    ...
    ValueError: cannot encode objects that are not 2-tuples
    >>> from_key_val_list({'key': 'val'})
    OrderedDict([('key', 'val')])

:rtype: OrderedDict
N�+cannot encode objects that are not 2-tuples)rUrr�boolr4r7r��values rC�from_key_val_listr�8s9��$
�}���%�#�u�d�C�0�1�1��F�G�G��u��rFc���Ucg[U[[[[45(a[S5e[U[5(aUR5n[U5$)a�Take an object and test to see if it can be represented as a
dictionary. If it can be, return a list of tuples, e.g.,

::

    >>> to_key_val_list([('key', 'val')])
    [('key', 'val')]
    >>> to_key_val_list({'key': 'val'})
    [('key', 'val')]
    >>> to_key_val_list('string')
    Traceback (most recent call last):
    ...
    ValueError: cannot encode objects that are not 2-tuples

:rtype: list
Nr�)	rUrrr�r4r7rrH�listr�s rC�to_key_val_listr�SsP��"
�}���%�#�u�d�C�0�1�1��F�G�G��%��!�!����
����;�rFc��/n[U5H8nUSSUSSs=:XaS:XaO O[USS5nURU5 M: U$)a�Parse lists as described by RFC 2068 Section 2.

In particular, parse comma-separated lists where the elements of
the list may include quoted-strings.  A quoted-string could
contain a comma.  A non-quoted string could have quotes in the
middle.  Quotes are removed automatically after parsing.

It basically works like :func:`parse_set_header` just that items
may appear multiple times and case sensitivity is preserved.

The return value is a standard :class:`list`:

>>> parse_list_header('token, "quoted value"')
['token', 'quoted value']

To create a header from the :class:`list` again, use the
:func:`dump_header` function.

:param value: a string with a list header.
:return: :class:`list`
:rtype: list
Nrr��")�_parse_list_header�unquote_header_value�append)r��result�items   rC�parse_list_headerr�qsT��.�F�"�5�)�����8�t�B�C�y�'�C�'�'��Q�r�
�3�D��
�
�d��*��MrFc��0n[U5HKnSU;aSX'MURSS5up0USSUSSs=:XaS:XaO O[USS5nXU'MM U$)a"Parse lists of key, value pairs as described by RFC 2068 Section 2 and
convert them into a python dict:

>>> d = parse_dict_header('foo="is a fish", bar="as well"')
>>> type(d) is dict
True
>>> sorted(d.items())
[('bar', 'as well'), ('foo', 'is a fish')]

If there is no value for a key it will be `None`:

>>> parse_dict_header('key_without_value')
{'key_without_value': None}

To create a header from the :class:`dict` again, use the
:func:`dump_header` function.

:param value: a string with a dict header.
:return: :class:`dict`
:rtype: dict
�=Nrr�r�)r�r8r�)r�r�r�r�s    rC�parse_dict_headerr��sr��,�F�"�5�)���d�?��F�L���j�j��a�(�����!�9��b�c�
�)�c�)�(��q���5�E��t��*��MrFc��U(aNUSUSs=:XaS:Xa;O U$USSnU(a	USSS:wa"URSS5RS	S5$U$)
z�Unquotes a header value.  (Reversal of :func:`quote_header_value`).
This does not use the real unquoting but what browsers are actually
using for quoting.

:param value: the header value to unquote.
:rtype: str
rr�r�rNrTz\\�\z\")r:)r��is_filenames  rCr�r��sd��
��q��U�2�Y�-�#�-��L��a�����e�B�Q�i�6�1��=�=���.�6�6�u�c�B�B��LrFc�\�UVs0sHoRUR_M nnU$s snf)ztReturns a key/value dictionary from a CookieJar.

:param cj: CookieJar object to extract cookies from.
:rtype: dict
)r�r�)�cj�cookie�cookie_dicts   rC�dict_from_cookiejarr��s.��<>�>�2��;�;����,�2�K�>����?s� )c��[X5$)z�Returns a CookieJar from a key/value dictionary.

:param cj: CookieJar to insert cookies into.
:param cookie_dict: Dict of key/values to insert into CookieJar.
:rtype: CookieJar
r)r�r�s  rC�add_dict_to_cookiejarr��s���{�/�/rFc�Z�[R"S[5 [R"S[R
S9n[R"S[R
S9n[R"S5nUR
U5UR
U5-UR
U5-$)zdReturns encodings from given content string.

:param content: bytestring to extract encodings from.
z�In requests 3.0, get_encodings_from_content will be removed. For more information, please see the discussion on issue #2266. (This warning should only appear once.)z!<meta.*?charset=["\']*(.+?)["\'>])�flagsz+<meta.*?content=["\']*;?charset=(.+?)["\'>]z$^<\?xml.*?encoding=["\']*(.+?)["\'>])r[r\�DeprecationWarningr;�compiler=�findall)�content�
charset_re�	pragma_re�xml_res    rC�get_encodings_from_contentr��s���

�M�M�
1�	�
����@����M�J��
�
�I�QS�QU�QU�V�I�
�Z�Z�?�
@�F�	���7�#�
�
�
�G�
$�	%�
�.�.��
!�	"�rFc�P�URS5nUSR5USSp20nSnUHrnUR5nU(dMUSp�URS5n	U	S:wa*USU	RU5nXiS-SRU5nX�UR5'Mt X$4$)	z�Returns content type and parameters from given header

:param header: string
:return: tuple containing content type and dictionary of
     parameters
r,rrNz"' Tr�r�)r8�strip�find�lower)
�header�tokens�content_type�params�params_dict�items_to_strip�param�keyr��index_of_equalss
          rC�_parse_content_type_headerr��s����\�\�#�
�F�!�!�9�?�?�,�f�Q�R�j�&��K��N������
���5����#�j�j��o�O��"�$��,�_�-�3�3�N�C����1�3�4�:�:�>�J��',��	�	��$���$�$rFc��URS5nU(dg[U5upSU;aUSRS5$SU;agSU;agg)	zqReturns encodings from given HTTP Header Dict.

:param headers: dictionary to extract encoding from.
:rtype: str
zcontent-typeN�charsetz'"�textz
ISO-8859-1zapplication/jsonrM)rpr�r�)�headersr�r�s   rC�get_encoding_from_headersr�s^���;�;�~�.�L���5�l�C��L��F���i� �&�&�u�-�-�
�����\�)��*rFc#�# �URcUShv�N g[R"UR5"SS9nUH!nURU5nU(dMUv� M# URSSS9nU(aUv� ggNm7f)zStream decodes an iterator.Nr:��errorsrFT)�final)�encoding�codecs�getincrementaldecoder�decode)�iterator�r�decoder�chunk�rvs     rC�stream_decode_response_unicoder�.s~���	�z�z�������*�*�1�:�:�6�i�H�G���
�^�^�E�
"��
�2��H��
����4��	(�B�	���
�	�s�B�B�AB�&Bc#�# �SnUbUS::a[U5nU[U5:aXX!-v� X!-
nU[U5:aMgg7f)z Iterate over slices of a string.rN)rO)�string�slice_length�poss   rC�iter_slicesr�?sP���
�C���|�q�0��6�{��

��F��
��3�-�.�.������F��
�s�AA�Ac�H�[R"S[5 /n[UR5nU(a[URU5$[URUSS9$![a URU5 N3f=f![a URs$f=f)z�Returns the requested content back in unicode.

:param r: Response object to get unicode content from.

Tried:

1. charset from content-type
2. fall back and replace all unicode characters

:rtype: str
z�In requests 3.0, get_unicode_from_response will be removed. For more information, please see the discussion on issue #2266. (This warning should only appear once.)r:r�)
r[r\r�r�r�rr��UnicodeErrorr��	TypeError)r��tried_encodingsr�s   rC�get_unicode_from_responser�Is���
�M�M�
1�	�
��O�)����3�H��	-��q�y�y�(�+�+�
��1�9�9�h�y�9�9���	-��"�"�8�,�	-�����y�y���s#�A'�B�'B�B�B!� B!zBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~c��URS5n[S[U55HpnXSSn[U5S:XaNUR5(a9[	[US55nU[;aXAUSS-X'M\SX3X'MgSX3X'Mr S	RU5$![a [SUS35ef=f)
z�Un-escape any percent-escape sequences in a URI that are unreserved
characters. This leaves all reserved, illegal and non-ASCII bytes encoded.

:rtype: str
�%rrrT�z"Invalid percent-escape sequence: '�'N�)
r8�rangerO�isalnum�chrr4r7r �UNRESERVED_SETr�)�uri�parts�i�h�cs     rC�unquote_unreservedrvs���
�I�I�c�N�E�
�1�c�%�j�
!���H�Q�q�M���q�6�Q�;�1�9�9�;�;�
L���A�r�
�O���N�"��Q�x���|�+����u�x�j�>����5�8�*�~�E�H�"��7�7�5�>����
L� �#E�a�S��!J�K�K�
L�s�B,�,Cc�d�SnSn[[U5US9$![a [XS9s$f=f)z�Re-quote the given URI.

This function passes the given URI through an unquote/quote cycle to
ensure that it is fully and consistently quoted.

:rtype: str
z!#$%&'()*+,/:;=?@[]~z!#$&'()*+,/:;=?@[]~)�safe)rrr )r�safe_with_percent�safe_without_percents   rC�requote_urir�sG��/��0��	5��'��,�3D�E�E���5��S�4�4�	5�s��/�/c
�x�[R"S[R"U55SnUR	S5up4[R"S[R"[[
U5555Sn[R"S[R"U55SU-nX%-Xe-:H$)z�This function allows you to check if an IP belongs to a network subnet

Example: returns True if ip = 192.168.1.1 and net = 192.168.1.0/24
         returns False if ip = 192.168.1.1 and net = 192.168.100.0/24

:rtype: bool
z=Lrr�)�struct�unpack�socket�	inet_atonr8�dotted_netmaskr4)�ip�net�ipaddr�netaddr�bits�netmask�networks       rC�address_in_networkr�s����]�]�4��!1�!1�"�!5�
6�q�
9�F��I�I�c�N�M�G��m�m�D�&�"2�"2�>�#�d�)�3L�"M�N�q�Q�G��m�m�D�&�"2�"2�7�";�<�Q�?�'�I�G���'�"3�4�4rFc�t�SSSU-
-S-
-n[R"[R"SU55$)zuConverts mask from /xx format to xxx.xxx.xxx.xxx

Example: if mask is 24 function returns 255.255.255.0

:rtype: str
l��r� z>I)r�	inet_ntoar�pack)�maskrs  rCrr�s7����b�4�i��1�,�,�D����F�K�K��d�3�4�4rFc�R�[R"U5 g![a gf=f)z
:rtype: bool
FT)rrr6)�	string_ips rC�is_ipv4_addressr&�s.�������#�������s��
&�&c��URS5S:XaU[URS5S5nUS:dUS:�ag[R
"URS5S5 gg![a gf=f![a gf=f)zJ
Very simple check of the cidr format in no_proxy variable.

:rtype: bool
r�rFr rT)�countr4r8r7rrr6)�string_networkr#s  rC�
is_valid_cidrr*�s������C� �A�%�	��~�+�+�C�0��3�4�D��!�8�t�b�y��	����^�1�1�#�6�q�9�:�
����	��	���	��	�s#�A,�(A<�,
A9�8A9�<
B	�B	c#�Z# �USLnU(a2[RRU5nU[RU'Sv� U(a)Wc[RU	gU[RU'gg!U(a)Wc[RU	fU[RU'ff=f7f)z�Set the environment variable 'env_name' to 'value'

Save previous value, yield, and then restore the previous value stored in
the environment variable 'env_name'.

If 'value' is None, do nothingN)rWrorp)�env_namer��
value_changed�	old_values    rC�set_environr/�s������%�M���J�J�N�N�8�,�	�$��
�
�8��1�
��� ��J�J�x�(�'0��
�
�8�$�	��=�� ��J�J�x�(�'0��
�
�8�$�	�s�>B+�A6�1B+�62B(�(B+c�*�SnUnUcU"S5n[U5nURcgU(a�SURSS5RS55n[	UR5(aKUHDn[U5(a[
URU5(a gM2URU:XdMD g OpURnUR(aUS	UR3-
nUH;nURRU5(dURU5(dM; g [SU5 [UR5nSSS5 W(agg
![[R4a S
nN/f=f!,(df   N9=f)z@
Returns whether we should bypass proxies or not.

:rtype: bool
c��[RRU5=(d- [RRUR55$�N)rWrorp�upper)r�s rC�	get_proxy�(should_bypass_proxies.<locals>.get_proxys-���z�z�~�~�c�"�A�b�j�j�n�n�S�Y�Y�[�&A�ArFN�no_proxyTc3�6# �UHo(dMUv� M g7fr2rh)rir>s  rCrk�(should_bypass_proxies.<locals>.<genexpr>s���R�%I�T�T�D�D�%I�s�
�	� r�,�:F)rrvr:r8r&r*r�port�endswithr/rr�r�gaierror)	rxr6r4�no_proxy_arg�parsed�proxy_ip�host_with_portr>�bypasss	         rC�should_bypass_proxiesrD�s^��B�
�L����Z�(��
�c�]�F�
������S�X�%5�%5�c�2�%>�%D�%D�S�%I�R���6�?�?�+�+�$�� ��*�*�)�&�/�/�8�D�D�#�E��_�_��0� �%�$�_�_�N��{�{��A�f�k�k�]�"3�3�� ���?�?�+�+�D�1�1�^�5L�5L�T�5R�5R� �	!�
�Z��	.�	�!�&�/�/�2�F�
/�����
�6�?�?�+�	��F�	��	
/�	.�s*�:F�<E"�"F�>F�F�F�
Fc�6�[XS9(a0$[5$)z5
Return a dict of environment proxies.

:rtype: dict
�r6)rDr)rxr6s  rC�get_environ_proxiesrG4s���S�4��	��|�rFc�>�U=(d 0n[U5nURc+URURURS55$URS-UR-URSUR-S/nSnUHnXQ;dM
Xn U$ U$)z�Select a proxy for the url, if applicable.

:param url: The url being for the request
:param proxies: A dictionary of schemes or schemes and hosts to proxy URLs
N�allz://zall://)rrvrp�scheme)rx�proxies�urlparts�
proxy_keys�proxy�	proxy_keys      rC�select_proxyrP@s����m��G���}�H���� ��{�{�8�?�?�G�K�K��,>�?�?�	���%��(�"3�"3�3�����8�$�$�$�
�	�J�
�E��	����&�E���L� �
�LrFc�D�UbUO0nURn[U5RnURS5nUR	5nU(aO[X5S9(dA[
X5S9nURXGRS55nU(aURXH5 U$)a�This method takes proxy information from a request and configuration
input to resolve a mapping of target proxies. This will consider settings
such as NO_PROXY to strip proxy configurations.

:param request: Request or PreparedRequest
:param proxies: A dictionary of schemes or schemes and hosts to proxy URLs
:param trust_env: Boolean declaring whether to trust environment configs

:rtype: dict
r6rFrI)rxrrJrp�copyrDrG�
setdefault)	�requestrK�	trust_envrxrJr6�new_proxies�environ_proxiesrNs	         rC�resolve_proxiesrXZs���!�,�g�"�G�
�+�+�C�
�c�]�
!�
!�F��{�{�:�&�H��,�,�.�K��.�s�F�-�c�E���#�#�F�,?�,?��,F�G����"�"�6�1��rFc��US[3$)zC
Return a string representing the default user agent.

:rtype: str
r�r)r�s rC�default_user_agentrZus���V�1�[�M�"�"rFc�:�[[5[SSS.5$)z1
:rtype: requests.structures.CaseInsensitiveDict
z*/*z
keep-alive)z
User-AgentzAccept-Encoding�Accept�
Connection)r"rZ�DEFAULT_ACCEPT_ENCODINGrhrFrC�default_headersr_~s%���,�.�6��&�		
��rFc���/nSnURU5nU(dU$[R"SU5H�nURSS5upESURS50nURS5H9nURS5up�URU5XhRU5'M; UR	U5 M� U$![a USpTN�f=f![a  M8f=f)	z�Return a list of parsed link headers proxies.

i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg"

:rtype: list
z '"z, *<r,rrrxz<> '"r�)r�r;r8r7r�)	r��links�
replace_chars�valrxr��linkr�r�s	         rC�parse_header_linksre�s���
�E��M��K�K�
�&�E�����x�x���&��	"��)�)�C��+�K�C��s�y�y��*�+���\�\�#�&�E�
�"�[�[��-�
��.3�[�[��-G�D���=�)�*�
'�	���T��!'�$�L���	"��r��	"���
��
�s#�C�6C�
C�C�
C(�'C(��asciirT�c��USSnU[R[R4;agUSS[R:XagUSS[R[R
4;agUR
[5nUS:Xag	US:Xa"USSS2[:Xag
USSS2[:XagUS:XaUSS[:Xag
USS[:Xagg)z
:rtype: str
N�zutf-32rhz	utf-8-sigrTzutf-16rrMz	utf-16-berz	utf-16-lez	utf-32-bez	utf-32-le)
r��BOM_UTF32_LE�BOM_UTF32_BE�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BEr(�_null�_null2�_null3)�data�sample�	nullcounts   rC�guess_json_utfrv�s����"�1�X�F�
�&�%�%�v�':�':�;�;��
�b�q�z�V�_�_�$��
�b�q�z�f�)�)�6�+>�+>�?�?�����U�#�I��A�~���A�~��#�A�#�;�&� ���!�$�Q�$�<�6�!���A�~��"�1�:�����!�"�:����rFc��[U5nUup4pVpxn	URn
U
(dXzpzU(aSRXJ/5n
UcUnUcSn[X:USX�45$)z�Given a URL that may or may not have a scheme, prepend the given scheme.
Does not replace a present scheme with the one provided as an argument.

:rtype: str
�@r)r�netlocr�r)rx�
new_schemer@rJ�authr>r<rr�query�fragmentrys           rC�prepend_scheme_if_neededr~�sk���s�^�F�6<�3�F�$�d�8��]�]�F��������4�.�)��
�~����|����v�t�R��A�B�BrFc��[U5n[UR5[UR54nU$![[
4a SnU$f=f)zoGiven a url with authentication components, extract them into a tuple of
username,password.

:rtype: (str,str)
)rr)rr�username�passwordr_r�)rxr@r{s   rC�get_auth_from_urlr��sU���c�]�F������(�'�&�/�/�*B�C���K��
�I�&�����K��s�*9�A�Ac�<�Uup[XS5 [XS5 g)z�Verifies that header parts don't contain leading whitespace
reserved characters, or return characters.

:param header: tuple, in the format (name, value).
rrN)�_validate_header_part)r�r�r�s   rC�check_header_validityr�s���K�D��&��*��&��+rFc
� �[U[5(a
[UnO=[U[5(a
[UnO[SU<SUS[
U535eURU5(dUS:XaSOSn[SUSU<35eg)	Nz
Header part (z) from z# must be of type str or bytes, not rr�r�zTInvalid leading whitespace, reserved character(s), or return character(s) in header z: )rUrrrr
r�typer<)r��header_part�header_validator_index�	validator�header_kinds     rCr�r�s����+�s�#�#�*�+A�B�	�	�K��	'�	'�+�,B�C�	���K�?�'�&��:1�15�k�1B�0C�
E�
�	
�
�?�?�;�'�'� 6�!� ;�f����&�&1�]�"�[�O�
E�
�	
�(rFc�z�[U5upp4pVU(dX2p2URSS5Sn[XX4US45$)zK
Given a url remove the fragment and the authentication part.

:rtype: str
rxrr�r)r�rsplitr)rxrJryrrr�r|r}s       rC�
urldefragauthr�"sG��5=�S�M�1�F�D�%����
�]�]�3��
"�2�
&�F��v�t�U�B�?�@�@rFc���[URSS5nUb3[UR[5(aU"UR5 g[
S5e![
a [
S5ef=f)z^Move file pointer back to its recorded starting position
so it can be read again on redirect.
rSNz;An error occurred when rewinding request body for redirect.z+Unable to rewind request body for redirect.)r��bodyrU�_body_positionrr6r!)�prepared_request�	body_seeks  rC�rewind_bodyr�3sy���(�-�-�v�t�<�I�����'�'��"�"�	��&�5�5�6�$�$Q�R�R���	�'�M��
�	�s�A�A/)Fr2)T)zpython-requests)j�__doc__r��
contextlibr]rWr;rr�sysr�r[r��collectionsr�urllib3.utilrrrrr	�_internal_utilsr
rrr
�compatrrrrrrrr�rrrrrrr�cookiesr�
exceptionsrrr r!�
structuresr"rq�where�DEFAULT_CA_BUNDLE_PATH�
DEFAULT_PORTSr�r8r^�platformrDrKrdr�r�r��contextmanagerr�r�r�r�r�r�r�r�r�r�r�r�r�r��	frozensetrrrrrr&r*r/rDrGrPrXrZr_rerVrprqrrrvr~r�r�r�r�r�rhrFrC�<module>r�s�����	�	�	�
�
�
����#�0��$�����:����)���,�"��������c�*�
��)�)��H�H�W�l�4�8�9J�K�L���
�<�<�7��$�L	/�
�B3�J0
�f&�"�J���	��	��6�<�@�F�2�0��2%�2�2�"�$�P�M���
�05�,5�5���0���1��1�*:�z	��4�6#��"�L	�
�
�g���	����	�����@C�:
� ,�
�&A�"SrF

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 5.26 KB 0644
__version__.cpython-313.pyc File 541 B 0644
_internal_utils.cpython-313.pyc File 1.93 KB 0644
adapters.cpython-313.pyc File 26.72 KB 0644
api.cpython-313.pyc File 6.67 KB 0644
auth.cpython-313.pyc File 13.86 KB 0644
certs.cpython-313.pyc File 625 B 0644
compat.cpython-313.pyc File 2.01 KB 0644
cookies.cpython-313.pyc File 24.4 KB 0644
exceptions.cpython-313.pyc File 7.78 KB 0644
help.cpython-313.pyc File 4.21 KB 0644
hooks.cpython-313.pyc File 1.03 KB 0644
models.cpython-313.pyc File 34.9 KB 0644
packages.cpython-313.pyc File 1.1 KB 0644
sessions.cpython-313.pyc File 26.7 KB 0644
status_codes.cpython-313.pyc File 5.86 KB 0644
structures.cpython-313.pyc File 5.47 KB 0644
utils.cpython-313.pyc File 35.41 KB 0644
Filemanager