ó
    &k§iw  ã                   ó®  • S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJrJrJrJr  SS
KJrJrJrJr  SSKJrJrJrJr  SSKJrJr  SSK J!r!J"r"J#r#J$r$  SSK%J&r&  SSK'J(r(  SSK)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  \Rh                  S:X  a  \Rj                  r6O\R                  r6\4S jr7\4S jr8 " S S5      r9 " S S\95      r:S r;g)z•
requests.sessions
~~~~~~~~~~~~~~~~~

This module provides a Session object to manage and persist settings across
requests (cookies, auth, proxies).
é    N)ÚOrderedDict)Ú	timedeltaé   )Úto_native_string)ÚHTTPAdapter)Ú_basic_auth_str)ÚMappingÚ	cookielibÚurljoinÚurlparse)ÚRequestsCookieJarÚcookiejar_from_dictÚextract_cookies_to_jarÚmerge_cookies)ÚChunkedEncodingErrorÚContentDecodingErrorÚInvalidSchemaÚTooManyRedirects)Údefault_hooksÚdispatch_hook)ÚDEFAULT_REDIRECT_LIMITÚREDIRECT_STATIÚPreparedRequestÚRequest)Úcodes)ÚCaseInsensitiveDict)
ÚDEFAULT_PORTSÚdefault_headersÚget_auth_from_urlÚget_environ_proxiesÚget_netrc_authÚrequote_uriÚresolve_proxiesÚrewind_bodyÚshould_bypass_proxiesÚto_key_val_listÚwin32c                 ó<  • Uc  U $ U c  U$ [        U[        5      (       a  [        U [        5      (       d  U $ U" [        U5      5      nUR                  [        U 5      5        UR	                  5        VVs/ s H  u  pEUb  M
  UPM     nnnU H  nX7	 M     U$ s  snnf )zÜDetermines appropriate setting for a given request, taking into account
the explicit setting on that request, and the setting in the session. If a
setting is a dictionary, they will be merged together using `dict_class`
)Ú
isinstancer	   r&   ÚupdateÚitems)Úrequest_settingÚsession_settingÚ
dict_classÚmerged_settingÚkÚvÚ	none_keysÚkeys           Ú3/usr/lib/python3/dist-packages/requests/sessions.pyÚmerge_settingr5   =   s¢   € ð ÑØÐàÑØÐô 	�?¤G×,Ñ,´¸OÌW×1UÑ1UàÐá¤°Ó @ÓA€NØ×Ñœ/¨/Ó:Ô;ð "0×!5Ñ!5Ô!7ÔEÒ!7‘v˜¸1—Ñ!7€IÑEÛˆØÒñ ð Ðùó	 Fs   Á5	BÂBc                 ó‚   • Ub  UR                  S5      / :X  a  U $ U b  U R                  S5      / :X  a  U$ [        XU5      $ )z�Properly merges both requests and session hooks.

This is necessary because when request_hooks == {'response': []}, the
merge breaks Session hooks entirely.
Úresponse)Úgetr5   )Úrequest_hooksÚsession_hooksr.   s      r4   Úmerge_hooksr;   [   sM   € ð Ñ × 1Ñ 1°*Ó =ÀÓ CØÐàÑ × 1Ñ 1°*Ó =ÀÓ CØÐä˜°zÓBÐBó    c                   óH   • \ rS rSrS rS r      S
S jrS rS rS r	S	r
g)ÚSessionRedirectMixinéj   c                 ó~   • UR                   (       a,  UR                  S   nUR                  S5      n[        US5      $ g)z7Receives a Response. Returns a redirect URI or ``None``ÚlocationÚlatin1Úutf8N)Úis_redirectÚheadersÚencoder   )ÚselfÚresprA   s      r4   Úget_redirect_targetÚ(SessionRedirectMixin.get_redirect_targetk   s;   € ð ××Ø—|‘| JÑ/ˆHð  —‘ xÓ0ˆHÜ# H¨fÓ5Ð5Ør<   c                 óö  • [        U5      n[        U5      nUR                  UR                  :w  a  gUR                  S:X  a1  UR                  S;   a!  UR                  S:X  a  UR                  S;   a  gUR                  UR                  :g  nUR                  UR                  :g  n[        R
                  " UR                  S5      S4nU(       d!  UR                  U;   a  UR                  U;   a  gU=(       d    U$ )zFDecide whether Authorization header should be removed when redirectingTÚhttp)éP   NÚhttps)i»  NFN)r   ÚhostnameÚschemeÚportr   r8   )rG   Úold_urlÚnew_urlÚ
old_parsedÚ
new_parsedÚchanged_portÚchanged_schemeÚdefault_ports           r4   Úshould_strip_authÚ&SessionRedirectMixin.should_strip_auth   sØ   € ä˜gÓ&ˆ
Ü˜gÓ&ˆ
Ø×Ñ *×"5Ñ"5Ó5Øð ×Ñ Ó'Ø—‘ :Ó-Ø×!Ñ! WÓ,Ø—‘ ;Ó.àð "—‘¨*¯/©/Ñ9ˆØ#×*Ñ*¨j×.?Ñ.?Ñ?ˆÜ%×)Ò)¨*×*;Ñ*;¸TÓBÀDÐIˆæØ—‘ <Ó/Ø—‘ <Ó/àð ×-˜~Ð-r<   Nc	           
   +   ó8  #   • / n
U R                  U5      n[        UR                  5      R                  nU(       Ga'  UR	                  5       nU
R                  U5        U
SS Ul         UR                    [        UR                  5      U R                  :¼  a  [        SU R                   S3US9eUR!                  5         UR#                  S5      (       a;  [        UR                  5      nS	R%                  ['        UR(                  5      U/5      n[        U5      nUR                  S
:X  a  U(       a  UR+                  US9nOUR                  (       a  UR                  nUR-                  5       nUR.                  (       d   [1        UR                  [3        U5      5      nO[3        U5      n['        U5      Ul        U R5                  XÑ5        UR6                  [8        R:                  [8        R<                  4;  a.  SnU H  nUR>                  RA                  US5        M!     SUl!        UR>                  nURA                  SS5        [E        URF                  X!R                  5        [I        URF                  U RJ                  5        URM                  URF                  5        U RO                  X×5      nU RQ                  XÑ5        URR                  SL=(       a    SU;   =(       d    SU;   nU(       a  [U        U5        UnU(       a  Uv •  OOU RV                  " U4UUUUUSS.U	D6n[E        U RJ                  XÑR                  5        U R                  U5      nUv •  U(       a  GM&  gg! [        [        [        4 a    UR                  R                  SS9   GN!f = f7f)zBReceives a Response. Returns a generator of Responses or Requests.r   NF)Údecode_contentz	Exceeded z redirects.)r7   z//Ú:Ú )Úfragment)úContent-LengthzContent-TypeúTransfer-EncodingÚCookier`   ra   )ÚstreamÚtimeoutÚverifyÚcertÚproxiesÚallow_redirects),rI   r   Úurlr_   ÚcopyÚappendÚhistoryÚcontentr   r   ÚRuntimeErrorÚrawÚreadÚlenÚmax_redirectsr   ÚcloseÚ
startswithÚjoinr   rP   Ú_replaceÚgeturlÚnetlocr   r"   Úrebuild_methodÚstatus_coder   Útemporary_redirectÚpermanent_redirectrE   ÚpopÚbodyr   Ú_cookiesr   ÚcookiesÚprepare_cookiesÚrebuild_proxiesÚrebuild_authÚ_body_positionr$   Úsend)rG   rH   Úreqrc   rd   re   rf   rg   Úyield_requestsÚadapter_kwargsÚhistri   Úprevious_fragmentÚprepared_requestÚparsed_rurlÚparsedÚpurged_headersÚheaderrE   Ú
rewindables                       r4   Úresolve_redirectsÚ&SessionRedirectMixin.resolve_redirectsŸ   s%  é € ð ˆà×&Ñ& tÓ,ˆÜ$ S§W¡WÓ-×6Ñ6ÐßØ"Ÿx™x›zÐð �K‰K˜ÔØ  ˜8ˆDŒLð4Ø—’ô �4—<‘<Ó  D×$6Ñ$6Ó6Ü&Ø × 2Ñ 2Ð3°;Ð?È$ñð ð
 �J‰JŒLð �~‰~˜d×#Ñ#Ü& t§x¡xÓ0�Ø—h‘hÔ 0°×1CÑ1CÓ DÀcÐJÓK�ô ˜c“]ˆFØ�‰ "Ó$Ö):ØŸ™Ð2C˜ÐD‘Ø——Ø$*§O¡OÐ!Ø—-‘-“/ˆCð
 —=—=Ü˜dŸh™h¬°CÓ(8Ó9‘ä! #Ó&�ä#3°CÓ#8ÐÔ à×ÑÐ 0Ô7ð ×ÑÜ×(Ñ(Ü×(Ñ(ð(ó ð
 "Y�Û,�FØ$×,Ñ,×0Ñ0°¸Ö>ñ -à(,Ð Ô%à&×.Ñ.ˆGØ�K‰K˜ $Ô'ô
 #Ð#3×#<Ñ#<¸cÇ8Á8ÔLÜÐ*×3Ñ3°T·\±\ÔBØ×,Ñ,Ð-=×-FÑ-FÔGð ×*Ñ*Ð+;ÓEˆGØ×ÑÐ.Ô5ð
 *×8Ñ8ÀÐD÷ Ø  GÑ+×MÐ/BÀgÑ/Mð ö
 ÜÐ,Ô-ð #ˆCæØ“	à—y’yØð	à!Ø#Ø!ØØ#Ø$)ñ	ð %ñ	�ô ' t§|¡|Ð5EÇxÁxÔPð ×.Ñ.¨tÓ4�Ø’
÷O ‹cøô )Ô*>ÄÐMó 4Ø—‘—‘¨U�Ô3ð4üs1   ‚A&NÁ)M% Á5K+NÍ#NÍ%.NÎNÎNÎNc                 ó  • UR                   nUR                  nSU;   a.  U R                  UR                  R                  U5      (       a  US	 U R                  (       a  [        U5      OSnUb  UR                  U5        gg)zÑWhen being redirected we may want to strip authentication from the
request to avoid leaking credentials. This method intelligently removes
and reapplies authentication where possible to avoid credential loss.
ÚAuthorizationN)rE   ri   rY   ÚrequestÚ	trust_envr!   Úprepare_auth)rG   r‹   r7   rE   ri   Únew_auths         r4   rƒ   Ú!SessionRedirectMixin.rebuild_auth  s|   € ð
 #×*Ñ*ˆØ×"Ñ"ˆà˜gÓ%¨$×*@Ñ*@Ø×Ñ× Ñ  #÷+
ñ +
ð
 ˜Ð(ð +/¯.¯.”> #Ô&¸dˆØÑØ×)Ñ)¨(Õ3ð  r<   c                 óF  • UR                   n[        UR                  5      R                  n[	        XU R
                  5      nSU;   a  US	  [        XT   5      u  pgUR                  S5      (       d  U(       a  U(       a  [        Xg5      US'   U$ ! [         a    Su  pg NDf = f)ap  This method re-evaluates the proxy configuration by considering the
environment variables. If we are redirected to a URL covered by
NO_PROXY, we strip the proxy configuration. Otherwise, we set missing
proxy keys for this URL (in case they were stripped by a previous
redirect).

This method also replaces the Proxy-Authorization header where
necessary.

:rtype: dict
zProxy-Authorization©NNrN   )
rE   r   ri   rP   r#   r–   r   ÚKeyErrorrt   r   )rG   r‹   rg   rE   rP   Únew_proxiesÚusernameÚpasswords           r4   r‚   Ú$SessionRedirectMixin.rebuild_proxies.  s¥   € ð #×*Ñ*ˆÜÐ*×.Ñ.Ó/×6Ñ6ˆÜ%Ð&6ÀÇÁÓPˆà  GÓ+ØÐ-Ð.ð	,Ü!2°;Ñ3FÓ!GÑˆHð × Ñ  ×)Ñ)®h¾8Ü-<¸XÓ-PˆGÐ)Ñ*àÐøô ó 	,Ø!+ÑˆH‘hð	,ús   ÁB ÂB ÂB c                 ó  • UR                   nUR                  [        R                  :X  a  US:w  a  SnUR                  [        R                  :X  a  US:w  a  SnUR                  [        R
                  :X  a  US:X  a  SnX1l         g)zrWhen being redirected we may want to change the method of the request
based on certain specs or browser behavior.
ÚHEADÚGETÚPOSTN)Úmethodrz   r   Ú	see_otherÚfoundÚmoved)rG   r‹   r7   r¥   s       r4   ry   Ú#SessionRedirectMixin.rebuild_methodM  su   € ð "×(Ñ(ˆð ×Ñ¤5§?¡?Ó2°vÀÓ7GØˆFð ×Ñ¤5§;¡;Ó.°6¸VÓ3CØˆFð ×Ñ¤5§;¡;Ó.°6¸VÓ3CØˆFà"(Õr<   © )FNTNNF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rI   rY   r‘   rƒ   r‚   ry   Ú__static_attributes__rª   r<   r4   r>   r>   j   s7   † òò(.ðH ØØØØØôyòv4ò(õ>)r<   r>   c                   ó¾   • \ rS rSrSr/ SQrS rS rS rS r	              SS	 jr
S
 rS rS rSS jrSS jrSS jrS rS rS rS rS rS rS rS rSrg)ÚSessionid  aT  A Requests session.

Provides cookie persistence, connection-pooling, and configuration.

Basic Usage::

  >>> import requests
  >>> s = requests.Session()
  >>> s.get('https://httpbin.org/get')
  <Response [200]>

Or as a context manager::

  >>> with requests.Session() as s:
  ...     s.get('https://httpbin.org/get')
  <Response [200]>
)rE   r€   Úauthrg   ÚhooksÚparamsre   rf   Úadaptersrc   r–   rr   c                 ó^  • [        5       U l        S U l        0 U l        [	        5       U l        0 U l        SU l        SU l        S U l	        [        U l        SU l        [        0 5      U l        [        5       U l        U R#                  S[%        5       5        U R#                  S[%        5       5        g )NFTzhttps://zhttp://)r   rE   r²   rg   r   r³   r´   rc   re   rf   r   rr   r–   r   r€   r   rµ   Úmountr   ©rG   s    r4   Ú__init__ÚSession.__init__†  s›   € ô 'Ó(ˆŒð ˆŒ	ð
 ˆŒô #“_ˆŒ
ð
 ˆŒð ˆŒð ˆŒð ˆŒ	ô 4ˆÔð ˆŒô +¨2Ó.ˆŒô $›ˆŒØ�
‰
�:œ{›}Ô-Ø�
‰
�9œk›mÕ,r<   c                 ó   • U $ ©Nrª   r¸   s    r4   Ú	__enter__ÚSession.__enter__Ã  s   € Øˆr<   c                 ó$   • U R                  5         g r¼   )rs   )rG   Úargss     r4   Ú__exit__ÚSession.__exit__Æ  s   € Ø�
‰
�r<   c                 ó  • UR                   =(       d    0 n[        U[        R                  5      (       d  [	        U5      n[        [        [        5       U R                   5      U5      nUR                  nU R                  (       a-  U(       d&  U R                  (       d  [        UR                  5      n[        5       nUR                  UR                  R                  5       UR                  UR                  UR                   UR"                  [%        UR&                  U R&                  [(        S9[%        UR*                  U R*                  5      [%        X@R                  5      U[-        UR.                  U R.                  5      S9
  U$ )aS  Constructs a :class:`PreparedRequest <PreparedRequest>` for
transmission and returns it. The :class:`PreparedRequest` has settings
merged from the :class:`Request <Request>` instance and those of the
:class:`Session`.

:param request: :class:`Request` instance to prepare with this
    session's settings.
:rtype: requests.PreparedRequest
)r.   )
r¥   ri   ÚfilesÚdataÚjsonrE   r´   r²   r€   r³   )r€   r)   r
   Ú	CookieJarr   r   r   r²   r–   r!   ri   r   Úpreparer¥   ÚupperrÄ   rÅ   rÆ   r5   rE   r   r´   r;   r³   )rG   r•   r€   Úmerged_cookiesr²   Úps         r4   Úprepare_requestÚSession.prepare_requestÉ  s  € ð —/‘/×' Rˆô ˜'¤9×#6Ñ#6×7Ñ7Ü)¨'Ó2ˆGô 'ÜÔ+Ó-¨t¯|©|Ó<¸gó
ˆð
 �|‰|ˆØ�>�>¦$¨t¯y¯yÜ! '§+¡+Ó.ˆDäÓˆØ	�	‰	Ø—>‘>×'Ñ'Ó)Ø—‘Ø—-‘-Ø—‘Ø—‘Ü!Ø—‘ §¡Ô:Mñô ! §¡°·±Ó=Ü˜t§Y¡YÓ/Ø"Ü˜gŸm™m¨T¯Z©ZÓ8ð 	ñ 	
ð ˆr<   Nc                 ó.  • [        UR                  5       UUUU=(       d    0 UU=(       d    0 UUUS9
nU R                  U5      nU=(       d    0 nU R                  UR                  X½Xï5      nU	U
S.nUR                  U5        U R                  " U40 UD6nU$ )a±  Constructs a :class:`Request <Request>`, prepares it and sends it.
Returns :class:`Response <Response>` object.

:param method: method for the new :class:`Request` object.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary or bytes to be sent in the query
    string for the :class:`Request`.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
    object to send in the body of the :class:`Request`.
:param json: (optional) json to send in the body of the
    :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to send with the
    :class:`Request`.
:param cookies: (optional) Dict or CookieJar object to send with the
    :class:`Request`.
:param files: (optional) Dictionary of ``'filename': file-like-objects``
    for multipart encoding upload.
:param auth: (optional) Auth tuple or callable to enable
    Basic/Digest/Custom HTTP Auth.
:param timeout: (optional) How long to wait for the server to send
    data before giving up, as a float, or a :ref:`(connect timeout,
    read timeout) <timeouts>` tuple.
:type timeout: float or tuple
:param allow_redirects: (optional) Set to True by default.
:type allow_redirects: bool
:param proxies: (optional) Dictionary mapping protocol or protocol and
    hostname to the URL of the proxy.
:param hooks: (optional) Dictionary mapping hook name to one event or
    list of events, event must be callable.
:param stream: (optional) whether to immediately download the response
    content. Defaults to ``False``.
:param verify: (optional) Either a boolean, in which case it controls whether we verify
    the server's TLS certificate, or a string, in which case it must be a path
    to a CA bundle to use. Defaults to ``True``. When set to
    ``False``, requests will accept any TLS certificate presented by
    the server, and will ignore hostname mismatches and/or expired
    certificates, which will make your application vulnerable to
    man-in-the-middle (MitM) attacks. Setting verify to ``False``
    may be useful during local development or testing.
:param cert: (optional) if String, path to ssl client cert file (.pem).
    If Tuple, ('cert', 'key') pair.
:rtype: requests.Response
)
r¥   ri   rE   rÄ   rÅ   rÆ   r´   r²   r€   r³   )rd   rh   )r   rÉ   rÌ   Úmerge_environment_settingsri   r*   r…   )rG   r¥   ri   r´   rÅ   rE   r€   rÄ   r²   rd   rh   rg   r³   rc   re   rf   rÆ   r†   ÚprepÚsettingsÚsend_kwargsrH   s                         r4   r•   ÚSession.requestô  s¨   € ô~ Ø—<‘<“>ØØØØ—˜ØØ—<˜RØØØñ
ˆð ×#Ñ# CÓ(ˆà—-˜Rˆà×2Ñ2Ø�H‰H�g vó
ˆð Ø.ñ
ˆð 	×Ñ˜8Ô$Ø�yŠy˜Ñ- Ñ-ˆàˆr<   c                 óN   • UR                  SS5        U R                  " SU40 UD6$ )zÅSends a GET request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
rh   Tr£   ©Ú
setdefaultr•   ©rG   ri   Úkwargss      r4   r8   ÚSession.getQ  s+   € ð 	×ÑÐ+¨TÔ2Ø�|Š|˜E 3Ñ1¨&Ñ1Ð1r<   c                 óN   • UR                  SS5        U R                  " SU40 UD6$ )zÉSends a OPTIONS request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
rh   TÚOPTIONSrÕ   r×   s      r4   ÚoptionsÚSession.options\  s+   € ð 	×ÑÐ+¨TÔ2Ø�|Š|˜I sÑ5¨fÑ5Ð5r<   c                 óN   • UR                  SS5        U R                  " SU40 UD6$ )zÆSends a HEAD request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
rh   Fr¢   rÕ   r×   s      r4   ÚheadÚSession.headg  s+   € ð 	×ÑÐ+¨UÔ3Ø�|Š|˜F CÑ2¨6Ñ2Ð2r<   c                 ó.   • U R                   " SU4X#S.UD6$ )a�  Sends a POST request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
    object to send in the body of the :class:`Request`.
:param json: (optional) json to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
r¤   )rÅ   rÆ   ©r•   )rG   ri   rÅ   rÆ   rØ   s        r4   ÚpostÚSession.postr  s   € ð �|Š|˜F CÐH¨dÑHÀÑHÐHr<   c                 ó.   • U R                   " SU4SU0UD6$ )aE  Sends a PUT request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
    object to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
ÚPUTrÅ   râ   ©rG   ri   rÅ   rØ   s       r4   ÚputÚSession.put  s   € ð �|Š|˜E 3Ñ<¨TÐ<°VÑ<Ð<r<   c                 ó.   • U R                   " SU4SU0UD6$ )aG  Sends a PATCH request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
    object to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
ÚPATCHrÅ   râ   rç   s       r4   ÚpatchÚSession.patch‹  s   € ð �|Š|˜G SÑ>¨tÐ>°vÑ>Ð>r<   c                 ó*   • U R                   " SU40 UD6$ )zÈSends a DELETE request. Returns :class:`Response` object.

:param url: URL for the new :class:`Request` object.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
ÚDELETErâ   r×   s      r4   ÚdeleteÚSession.delete—  s   € ð �|Š|˜H cÑ4¨VÑ4Ð4r<   c                 ó˜  • UR                  SU R                  5        UR                  SU R                  5        UR                  SU R                  5        SU;  a#  [	        XR
                  U R                  5      US'   [        U[        5      (       a  [        S5      eUR                  SS5      nUR                  S5      nUR                  nU R                  UR                  S9n[        5       nUR                   " U40 UD6n[        5       U-
  n	[#        U	S	9Ul        ['        S
XX40 UD6nUR(                  (       a>  UR(                   H.  n
[+        U R,                  U
R.                  U
R0                  5        M0     [+        U R,                  XR0                  5        U(       a%  U R2                  " X�40 UD6nU V
s/ s H  oªPM     nn
O/ nU(       a(  UR5                  SU5        UR                  5       nXÈl        U(       d$   [7        U R2                  " X�4SS0UD65      Ul        U(       d  UR<                    U$ s  sn
f ! [:         a     N&f = f)z9Send a given PreparedRequest.

:rtype: requests.Response
rc   re   rf   rg   z#You can only send PreparedRequests.rh   T)ri   )Úsecondsr7   r   r‡   )rÖ   rc   re   rf   r#   rg   r–   r)   r   Ú
ValueErrorr}   r8   r³   Úget_adapterri   Úpreferred_clockr…   r   Úelapsedr   rl   r   r€   r•   ro   r‘   ÚinsertÚnextÚ_nextÚStopIterationrm   )rG   r•   rØ   rh   rc   r³   ÚadapterÚstartÚrr÷   rH   Úgenrl   s                r4   r…   ÚSession.send¡  sÿ  € ð 	×Ñ˜( D§K¡KÔ0Ø×Ñ˜( D§K¡KÔ0Ø×Ñ˜& $§)¡)Ô,Ø˜FÓ"Ü /°¿¹ÀtÇ~Á~Ó VˆF�9Ñô �gœw×'Ñ'ÜÐBÓCÐCð !Ÿ*™*Ð%6¸Ó=ˆØ—‘˜HÓ%ˆØ—‘ˆð ×"Ñ" w§{¡{Ð"Ð3ˆô  Ó!ˆð �LŠL˜Ñ+ FÑ+ˆô "Ó# eÑ+ˆÜ gÑ.ˆŒ	ô ˜* eÑ9°&Ñ9ˆð �9�9àŸ	œ	�Ü& t§|¡|°T·\±\À4Ç8Á8ÖLñ "ô 	˜tŸ|™|¨W·e±eÔ<ö à×(Ò(¨Ñ>°vÑ>ˆCÙ(+Ó,ª ’t©ˆGÐ,ˆGàˆGö à�N‰N˜1˜aÔ à—‘“ˆAØŒIö ðÜØ×*Ò*¨1ÑUÀdÐUÈfÑUó�”ö Ø�IŠIàˆùò1 -øô$ !ó Ùðús   Æ8H7Ç?#H< È<
I	ÉI	c                 ó  • U R                   (       aŸ  Ub  UR                  S5      OSn[        XS9nUR                  5        H  u  p‰UR	                  X‰5        M     USL d  UcN  [
        R                  R                  S5      =(       d(    [
        R                  R                  S5      =(       d    Un[        X R                  5      n[        X0R                  5      n[        X@R                  5      n[        XPR                  5      nX#XES.$ )zF
Check the environment and merge it with some settings.

:rtype: dict
NÚno_proxy)r  TÚREQUESTS_CA_BUNDLEÚCURL_CA_BUNDLE)rg   rc   re   rf   )r–   r8   r    r+   rÖ   ÚosÚenvironr5   rg   rc   re   rf   )
rG   ri   rg   rc   re   rf   r  Úenv_proxiesr0   r1   s
             r4   rÏ   Ú"Session.merge_environment_settingsî  sÓ   € ð �>�>à29Ñ2E�w—{‘{ :Ô.È4ˆHÜ-¨cÑEˆKØ#×)Ñ)Ö+‘�Ø×"Ñ" 1Ö(ñ ,ð
 ˜Š~ ¡ä—J‘J—N‘NÐ#7Ó8÷ Ü—z‘z—~‘~Ð&6Ó7÷àð ô   ¯©Ó6ˆÜ˜v§{¡{Ó3ˆÜ˜v§{¡{Ó3ˆÜ˜T§9¡9Ó-ˆà"ÀÑUÐUr<   c                 óÒ   • U R                   R                  5        H;  u  p#UR                  5       R                  UR                  5       5      (       d  M9  Us  $    [	        SU< 35      e)zf
Returns the appropriate connection adapter for the given URL.

:rtype: requests.adapters.BaseAdapter
z&No connection adapters were found for )rµ   r+   Úlowerrt   r   )rG   ri   Úprefixrü   s       r4   rõ   ÚSession.get_adapter  sT   € ð  $Ÿ}™}×2Ñ2Ö4‰OˆFØ�y‰y‹{×%Ñ% f§l¡l£n×5Ó5Ø’ñ  5ô
 ÐDÀSÁGÐLÓMÐMr<   c                 óf   • U R                   R                  5        H  nUR                  5         M     g)z+Closes all adapters and as such the sessionN)rµ   Úvaluesrs   )rG   r1   s     r4   rs   ÚSession.close  s"   € à—‘×%Ñ%Ö'ˆAØ�G‰GŽIò (r<   c                 óø   • X R                   U'   U R                    Vs/ s H  n[        U5      [        U5      :  d  M  UPM!     nnU H+  nU R                   R                  U5      U R                   U'   M-     gs  snf )zgRegisters a connection adapter to a prefix.

Adapters are sorted in descending order by prefix length.
N)rµ   rq   r}   )rG   r  rü   r0   Úkeys_to_mover3   s         r4   r·   ÚSession.mount  sd   € ð
 !(�‰�fÑØ#'§=¢=ÓI¢=˜a´C¸³F¼SÀ»[Ñ4HŸ¡=ˆÐIãˆCØ!%§¡×!2Ñ!2°3Ó!7ˆD�M‰M˜#Óò  ùò Js
   �A7½A7c           	      ó\   • U R                    Vs0 s H  o[        XS 5      _M     nnU$ s  snf r¼   )Ú	__attrs__Úgetattr)rG   ÚattrÚstates      r4   Ú__getstate__ÚSession.__getstate__*  s/   € Ø=A¿^º^ÓLº^°T”w˜t¨4Ó0Ò0¹^ˆÐLØˆùò Ms   �)c                 óN   • UR                  5        H  u  p#[        XU5        M     g r¼   )r+   Úsetattr)rG   r  r  Úvalues       r4   Ú__setstate__ÚSession.__setstate__.  s   € Ø Ÿ;™;ž=‰KˆDÜ�D Ö&ò )r<   )rµ   r²   rf   r€   rE   r³   rr   r´   rg   rc   r–   re   )NNNNNNNTNNNNNNr›   r¼   )r«   r¬   r­   r®   Ú__doc__r  r¹   r½   rÁ   rÌ   r•   r8   rÜ   rß   rã   rè   rì   rð   r…   rÏ   rõ   rs   r·   r  r  r¯   rª   r<   r4   r±   r±   d  s¢   † ñò$€Iò;-òzòò)ð^ ØØØØØØØØØØØØØô#[òz	2ò	6ò	3ôIô
=ô
?ò5òKòZVò>Nòò
	8òõ'r<   r±   c                  ó   • [        5       $ )a>  
Returns a :class:`Session` for context-management.

.. deprecated:: 1.0.0

    This method has been deprecated since version 1.0.0 and is only kept for
    backwards compatibility. New code should use :class:`~requests.sessions.Session`
    to create a session. This may be removed at a future date.

:rtype: Session
)r±   rª   r<   r4   Úsessionr!  3  s   € ô ‹9Ðr<   )<r  r  ÚsysÚtimeÚcollectionsr   Údatetimer   Ú_internal_utilsr   rµ   r   r²   r   Úcompatr	   r
   r   r   r€   r   r   r   r   Ú
exceptionsr   r   r   r   r³   r   r   Úmodelsr   r   r   r   Ústatus_codesr   Ú
structuresr   Úutilsr   r   r   r    r!   r"   r#   r$   r%   r&   ÚplatformÚperf_counterrö   r5   r;   r>   r±   r!  rª   r<   r4   Ú<module>r/     sÀ   ðñó 
Û 
Û Ý #Ý å -Ý !Ý !ß 9Ó 9÷ó ÷ó ÷ 0÷ó õ  Ý +÷÷ ÷ ð ‡<�<�7ÓØ×'Ñ'�Oà—i‘i€Oð @Kô ð< :Eô C÷w)ñ w)ôtL'Ð"ô L'ó^r<   