ó
    Ú°›jO[  ã                   ó¼  • S SK r S SKrS SKJr  S SKrS SKJrJr  S SK	J
r
Jr  S SKrS SKJrJrJrJrJrJrJr  S SKJr  \R0                  " \5      r " S S\5      r " S	 S
5      r " S S\\5      r " S S\\5      r " S S\
5      r " S S\5      r  S"S jr!S r"S r# " S S5      r$ " S S5      r% " S S5      r& " S S5      r' " S S5      r( " S  S!\5      r)g)#é    N)ÚMapping)ÚHTTPConnectionÚVerifiedHTTPSConnection)ÚHTTPConnectionPoolÚHTTPSConnectionPool)ÚHTTPHeadersÚHTTPResponseÚMutableMappingÚ	urlencodeÚurlparseÚurlsplitÚ
urlunsplit)ÚUnseekableStreamErrorc                   ó    • \ rS rSrS rS rSrg)ÚAWSHTTPResponseé%   c                 ód   • UR                  S5      U l        [        R                  " U /UQ70 UD6  g )NÚstatus_tuple)ÚpopÚ_status_tupler	   Ú__init__©ÚselfÚargsÚkwargss      ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/botocore/awsrequest.pyr   ÚAWSHTTPResponse.__init__(   s+   € Ø#ŸZ™Z¨Ó7ˆÔÜ×Ò˜dÐ4 TÒ4¨VÓ4ó    c                 ór   • U R                   b  U R                   nS U l         U$ [        R                  " U 5      $ ©N)r   r	   Ú_read_status)r   r   s     r   r!   ÚAWSHTTPResponse._read_status,   s8   € Ø×ÑÑ)Ø×-Ñ-ˆLØ!%ˆDÔØÐä×,Ò,¨TÓ2Ð2r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r!   Ú__static_attributes__© r   r   r   r   %   s   † ò5õ3r   r   c                   ó|   ^ • \ rS rSrSrU 4S jrU 4S jrSU 4S jjrS rSS jr	S r
S	 rS
 rU 4S jrS rSrU =r$ )ÚAWSConnectioné5   aÜ  Mixin for HTTPConnection that supports Expect 100-continue.

This when mixed with a subclass of httplib.HTTPConnection (though
technically we subclass from urllib3, which subclasses
httplib.HTTPConnection) and we only override this class to support Expect
100-continue, which we need for S3.  As far as I can tell, this is
general purpose enough to not be specific to S3, but I'm being
tentative and keeping it in botocore because I've only tested
this against AWS services.

c                 ór   >• [         TU ]  " U0 UD6  U R                  U l        SU l        SU l        SU l        g ©NF)Úsuperr   Úresponse_classÚ_original_response_clsÚ_response_receivedÚ_expect_header_setÚ_send_called)r   r   r   Ú	__class__s      €r   r   ÚAWSConnection.__init__B   s=   ø€ Ü‰Ò˜$Ð) &Ò)Ø&*×&9Ñ&9ˆÔ#ð #(ˆÔØ"'ˆÔØ!ˆÕr   c                 ón   >• [         TU ]  5         SU l        SU l        SU l        U R
                  U l        g r-   )r.   Úcloser1   r2   r3   r0   r/   )r   r4   s    €r   r7   ÚAWSConnection.closeO   s2   ø€ Ü‰‰Œà"'ˆÔØ"'ˆÔØ!ˆÔØ"×9Ñ9ˆÕr   c                 óÄ   >• Uc  0 nSU l         U R                  U l        UR                  SS5      S:X  a  SU l        OSU l        [
        TU ]  " XX4/UQ70 UD6nSU l        U$ )NFÚExpectr   s   100-continueT)r1   r0   r/   Úgetr2   r.   Úrequest)	r   ÚmethodÚurlÚbodyÚheadersr   r   Úrvalr4   s	           €r   r<   ÚAWSConnection.requestW   sm   ø€ Ø‰?ØˆGØ"'ˆÔØ"×9Ñ9ˆÔØ�;‰;�x Ó%¨Ó8Ø&*ˆDÕ#à&+ˆDÔ#Ü‰wŠ˜v¨DÐK¸DÒKÀFÑKˆØ"'ˆÔØˆr   c                 óÎ   • / nU HK  n[        U[        5      (       a"  UR                  UR                  S5      5        M:  UR                  U5        MM     SR	                  U5      nU$ )Núutf-8ó   
)Ú
isinstanceÚstrÚappendÚencodeÚjoin)r   Úmixed_bufferÚbytes_bufferÚchunkÚmsgs        r   Ú_convert_to_bytesÚAWSConnection._convert_to_bytesd   sZ   € ð ˆÛ!ˆEÜ˜%¤×%Ñ%Ø×#Ñ# E§L¡L°Ó$9Ö:à×#Ñ# EÖ*ñ	 "ð
 �l‰l˜<Ó(ˆØˆ
r   c                 ó  • U R                   R                  S5        U R                  U R                   5      nU R                   S S 2	 [        U[        5      (       a  XA-  nS nU R                  U5        U R                  (       ak  [        R                  S5        [        R                  R                  U R                  S5      (       a  U R                  U5        g [        R                  S5        Ub  U R                  U5        g g )N)r   r   z"Waiting for 100 Continue response.é   zCNo response seen from server, continuing to send the response body.)Ú_bufferÚextendrO   rF   ÚbytesÚsendr2   ÚloggerÚdebugÚurllib3ÚutilÚwait_for_readÚsockÚ_handle_expect_response)r   Úmessage_bodyr   r   rN   s        r   Ú_send_outputÚAWSConnection._send_outputq   sÌ   € Ø�‰×Ñ˜JÔ'Ø×$Ñ$ T§\¡\Ó2ˆØ�L‰LšˆOô �l¤E×*Ñ*ØÑˆCØˆLØ�	‰	�#ŒØ×"×"ô �L‰LÐ=Ô>ä�|‰|×)Ñ)¨$¯)©)°Q×7Ñ7Ø×,Ñ,¨\Ô:Øô —‘ð.ôð Ñ#ð �I‰I�lÕ#ð $r   c                 óF   • S nUS:w  a  UR                  5       nUS:w  a  M  g g )NrE   )Úreadline)r   ÚfpÚcurrents      r   Ú_consume_headersÚAWSConnection._consume_headers—   s&   € ð ˆØ˜Ó Ø—k‘k“mˆGð ˜× r   c                 ó˜  • U R                   R                  SS5      n UR                  5       nUR                  S S5      nU R	                  U5      (       a8  U R                  U5        [        R                  S5        U R                  U5        O˜[        U5      S:X  a‰  US   R                  S5      (       ap  [        R                  S5        US   R                  S5      [        US	   5      US   R                  S5      4n[        R                  " [        US
9nX`l        SU l        UR%                  5         g ! UR%                  5         f = f)NÚrbr   é   z5100 Continue response seen, now sending request body.é   ó   HTTP/zOReceived a non 100 Continue response from the server, NOT sending request body.ÚasciirR   )r   T)r\   Úmakefilerb   ÚsplitÚ_is_100_continue_statusre   rW   rX   Ú_send_message_bodyÚlenÚ
startswithÚdecodeÚintÚ	functoolsÚpartialr   r/   r1   r7   )r   r^   rc   Úmaybe_status_lineÚpartsr   r/   s          r   r]   Ú%AWSConnection._handle_expect_response£   s  € ð �Y‰Y×Ñ  aÓ(ˆð%	Ø "§¡£ÐØ%×+Ñ+¨D°!Ó4ˆEØ×+Ñ+Ð,=×>Ñ>Ø×%Ñ% bÔ)Ü—‘ØKôð ×'Ñ'¨Õ5Ü�U“˜q“ U¨1¡X×%8Ñ%8¸×%BÑ%Bô —‘ðAôð
 ˜!‘H—O‘O GÓ,Ü˜˜a™“MØ˜!‘H—O‘O GÓ,ð �ô
 "+×!2Ò!2Ü#°,ñ"�ð '5Ô#Ø*.�Ô'à�H‰H�JøˆB�H‰H�Jús   žDD7 Ä7E	c                 ó.   • Ub  U R                  U5        g g r    )rV   )r   r^   s     r   rp   Ú AWSConnection._send_message_bodyÏ   s   € ØÑ#Ø�I‰I�lÕ#ð $r   c                 ó    >• U R                   (       a.  U R                  (       d  [        R                  S5        SU l        g [        TU ]  U5      $ )Nz?send() called, but response already received. Not sending data.T)r1   r3   rW   rX   r.   rV   )r   rG   r4   s     €r   rV   ÚAWSConnection.sendÓ   sD   ø€ Ø×"×"Ø×$×$ô —‘ð(ôð !%ˆDÔØÜ‰w‰|˜CÓ Ð r   c                 ó–   • UR                  S S5      n[        U5      S:¬  =(       a#    US   R                  S5      =(       a    US   S:H  $ )Nri   r   rk   rR   s   100)rn   rq   rr   )r   rw   rx   s      r   ro   Ú%AWSConnection._is_100_continue_statusá   sN   € Ø!×'Ñ'¨¨aÓ0ˆô �‹J˜!‰O÷ #Ø�a‘×#Ñ# HÓ-÷#à�a‘˜FÑ"ð	
r   )r2   r0   r1   r3   r/   ©NNr    )r#   r$   r%   r&   Ú__doc__r   r7   r<   rO   r_   re   r]   rp   rV   ro   r'   Ú__classcell__)r4   s   @r   r*   r*   5   sA   ø† ñ
õ"õ:÷òô$$òL
$ò*òX$õ!÷
ð 
r   r*   c                   ó   • \ rS rSrSrSrg)ÚAWSHTTPConnectionéë   z6An HTTPConnection that supports 100 Continue behavior.r(   N©r#   r$   r%   r&   r�   r'   r(   r   r   r„   r„   ë   s   † Ü@r   r„   c                   ó   • \ rS rSrSrSrg)ÚAWSHTTPSConnectionéï   z7An HTTPSConnection that supports 100 Continue behavior.r(   Nr†   r(   r   r   rˆ   rˆ   ï   s   † ÜAr   rˆ   c                   ó   • \ rS rSr\rSrg)ÚAWSHTTPConnectionPooléó   r(   N)r#   r$   r%   r&   r„   ÚConnectionClsr'   r(   r   r   r‹   r‹   ó   s   † Ø%ƒMr   r‹   c                   ó   • \ rS rSr\rSrg)ÚAWSHTTPSConnectionPoolé÷   r(   N)r#   r$   r%   r&   rˆ   r�   r'   r(   r   r   r�   r�   ÷   s   † Ø&ƒMr   r�   c                 ó  • U nUb	  US   nX5S'   UR                  S5      n[        XS   U5      nUS   (       a<  [        R                  R                  nU" US   5      n	SU;  a	  USU	 3-  nOUSU	 3-  nXtS	'   X$S
'   Uc  0 US
'   gg)a  
This method prepares a request dict to be created into an
AWSRequestObject. This prepares the request dict by adding the
url and the user agent to the request dict.

:type request_dict: dict
:param request_dict:  The request dict (created from the
    ``serialize`` module).

:type user_agent: string
:param user_agent: The user agent to use for this request.

:type endpoint_url: string
:param endpoint_url: The full endpoint url, which contains at least
    the scheme, the hostname, and optionally any path components.
Nr@   z
User-AgentÚhost_prefixÚurl_pathÚquery_stringÚ?Ú&r>   Úcontext)r;   Ú_urljoinÚbotocoreÚutilsÚpercent_encode_sequence)
Úrequest_dictÚendpoint_urlr—   Ú
user_agentÚrr@   r’   r>   r›   Úencoded_query_strings
             r   Úprepare_request_dictr¡   û   s¶   € ð& 	€AØÑØ�I‘,ˆØ *�ÑØ—%‘%˜Ó&€KÜ
�< :¡°Ó
<€CØˆ×ô #+§.¡.×"HÑ"HÐÙ6°q¸Ñ7HÓIÐØ�c‹>Ø�QÐ+Ð,Ð-Ñ-‰Cà�QÐ+Ð,Ð-Ñ-ˆCØ€e�HØ€i�LØ�Øˆˆ)Šð r   c           	      ón   • U n[        US   US   US   US   UR                  S5      S9nUS   Ul        U$ )a+  
This method takes a request dict and creates an AWSRequest object
from it.

:type request_dict: dict
:param request_dict:  The request dict (created from the
    ``prepare_request_dict`` method).

:rtype: ``botocore.awsrequest.AWSRequest``
:return: An AWSRequest object based on the request_dict.

r=   r>   r?   r@   Ú	auth_path)r=   r>   Údatar@   r£   r—   )Ú
AWSRequestr;   r—   )rœ   rŸ   Úrequest_objects      r   Úcreate_request_objectr§   $  sO   € ð 	€AÜØ�‰{Øˆe‰HØˆv‰YØ�)‘Ø—%‘%˜Ó$ñ€Nð ˜y™\€NÔØÐr   c                 ó*  • [        U 5      nU(       a  US:X  a  US   (       d  SnOIUS   nOCUS   R                  S5      (       a"  UR                  S5      (       a  US   S S U-   nOUS   U-   nUS   nUb  X%-   n[        US   XTUS   US   45      nU$ )NÚ/ri   éÿÿÿÿrR   r   rj   é   )r   Úendswithrr   r   )r�   r“   r’   ÚpÚnew_pathÚ
new_netlocÚreconstructeds          r   r˜   r˜   =  s®   € Ü�Ó€Aö �x 3“ð ��tØ‰Hà˜‘t‰HØ	
ˆ1‰�‰�s×	Ñ	 × 3Ñ 3°C× 8Ñ 8Ø�Q‘4˜˜�9˜xÑ'‰à�Q‘4˜(‘?ˆà�1‘€JØÑØ Ñ-ˆ
ä  !¡ j¸A¸a¹DÀ!ÀAÁ$ÐGÓH€MØÐr   c                   ó@   • \ rS rSrSrS rS rSS jrS rS r	S	 r
S
rg)ÚAWSRequestPrepareriY  aÊ  
This class performs preparation on AWSRequest objects similar to that of
the PreparedRequest class does in the requests library. However, the logic
has been boiled down to meet the specific use cases in botocore. Of note
there are the following differences:
    This class does not heavily prepare the URL. Requests performed many
    validations and corrections to ensure the URL is properly formatted.
    Botocore either performs these validations elsewhere or otherwise
    consistently provides well formatted URLs.

    This class does not heavily prepare the body. Body preperation is
    simple and supports only the cases that we document: bytes and
    file-like objects to determine the content-length. This will also
    additionally prepare a body that is a dict to be url encoded params
    string as some signers rely on this. Finally, this class does not
    support multipart file uploads.

    This class does not prepare the method, auth or cookies.
c                 óÊ   • UR                   nU R                  U5      nU R                  U5      nU R                  X5      nUR                  nUR
                  n[        X#XTXg5      $ r    )r=   Ú_prepare_urlÚ_prepare_bodyÚ_prepare_headersÚstream_outputr—   ÚAWSPreparedRequest)r   Úoriginalr=   r>   r?   r@   r·   r—   s           r   ÚprepareÚAWSRequestPreparer.preparen  se   € Ø—‘ˆØ×Ñ Ó)ˆØ×!Ñ! (Ó+ˆØ×'Ñ'¨Ó7ˆØ ×.Ñ.ˆØ×"Ñ"ˆä!Ø˜¨ó
ð 	
r   c                 óV  • UR                   nUR                  (       a‹  [        U5      nUR                  (       a  SOSn[	        UR                  [
        5      (       a$  [        UR                  R                  5       5      nOUR                  n[        USS9nUR                  X&45      nU$ )Nr–   r•   T©Údoseq)
r>   Úparamsr   ÚqueryrF   r   ÚlistÚitemsr   rJ   )r   r¹   r>   Ú	url_partsÚdelimÚparams_to_encoder¿   s          r   r´   ÚAWSRequestPreparer._prepare_urlz  s}   € Ø�l‰lˆØ�?�?Ü  ›ˆIØ$Ÿ?Ÿ?‘C°ˆEÜ˜(Ÿ/™/¬7×3Ñ3Ü#'¨¯©×(=Ñ(=Ó(?Ó#@Ñ à#+§?¡?Ð ÜÐ/°tÑ<ˆFØ—*‘*˜c˜]Ó+ˆCØˆ
r   Nc                 ó  • [        UR                  R                  5       5      nSU;   d  SU;   a  U$ UR                  S;  aJ  U R	                  U5      nUb  [        U5      US'   U$ [        U5      n[        R                  SU5        SUS'   U$ )NzTransfer-EncodingzContent-Length)ÚGETÚHEADÚOPTIONSz Failed to determine length of %sÚchunked)	ÚHeadersDictr@   rÂ   r=   Ú_determine_content_lengthrG   ÚtyperW   rX   )r   r¹   Úprepared_bodyr@   ÚlengthÚ	body_types         r   r¶   Ú#AWSRequestPreparer._prepare_headers‡  s˜   € Ü˜h×.Ñ.×4Ñ4Ó6Ó7ˆð  'Ó)Ð-=ÀÓ-HØˆNð �?‰?Ð"<Ó<Ø×3Ñ3°MÓBˆFØÑ!Ü,/°«K�Ð(Ñ)ð ˆô	 ! Ó/�	Ü—‘Ð?ÀÔKØ/8�Ð+Ñ,àˆr   c                 ó¨   • Uu  p#[        U[        5      (       a  UR                  S5      n[        U[        5      (       a  UR                  S5      nX#4$ ©NrD   )rF   rG   rI   )r   ÚitemÚkeyÚvalues       r   Ú_to_utf8ÚAWSRequestPreparer._to_utf8œ  sG   € Ø‰
ˆÜ�cœ3×ÑØ—*‘*˜WÓ%ˆCÜ�eœS×!Ñ!Ø—L‘L Ó)ˆEØˆzÐr   c                 óÒ   • UR                   nUS:X  a  Sn[        U[        5      (       a8  UR                  5        Vs/ s H  o0R	                  U5      PM     nn[        USS9nU$ s  snf )z"Prepares the given HTTP body data.r   NTr½   )r¤   rF   ÚdictrÂ   rØ   r   )r   r¹   r?   rÕ   r¿   s        r   rµ   Ú AWSRequestPreparer._prepare_body¤  s\   € à�}‰}ˆØ�3‹;ØˆDä�dœD×!Ñ!Ø6:·j±j´lÓC²l¨d—m‘m DÖ)±lˆFÐCÜ˜V¨4Ñ0ˆDàˆùò Ds   ¼A$c                 ó@   • [         R                  R                  U5      $ r    )r™   rš   Údetermine_content_length©r   r?   s     r   rÍ   Ú,AWSRequestPreparer._determine_content_length°  s   € Ü�~‰~×6Ñ6°tÓ<Ð<r   r(   r    )r#   r$   r%   r&   r�   rº   r´   r¶   rØ   rµ   rÍ   r'   r(   r   r   r²   r²   Y  s%   † ñò(

òôò*ò
õ=r   r²   c                   óJ   • \ rS rSrSr\r       SS jrS r\	S 5       r
Srg)	r¥   i´  zýRepresents the elements of an HTTP request.

This class was originally inspired by requests.models.Request, but has been
boiled down to meet the specific use cases in botocore. That being said this
class (even in requests) is effectively a named-tuple.
Nc                 ó  • U R                  5       U l        Uc  0 OUnXl        X l        [	        5       U l        X@l        XPl        X`l        Xpl	        Ub'  UR                  5        H  u  p‰X�R
                  U'   M     0 U l        g r    )Ú_REQUEST_PREPARER_CLSÚ_request_preparerr=   r>   r   r@   r¤   r¿   r£   r·   rÂ   r—   )
r   r=   r>   r@   r¤   r¿   r£   r·   rÖ   r×   s
             r   r   ÚAWSRequest.__init__¾  sw   € ð "&×!;Ñ!;Ó!=ˆÔð ‘~‘¨6ˆàŒØŒÜ"“}ˆŒØŒ	ØŒØ"ŒØ*ÔàÑØ%Ÿm™mžo‘
�Ø$)—‘˜SÓ!ñ .ð ˆ�r   c                 ó8   • U R                   R                  U 5      $ )z>Constructs a :class:`AWSPreparedRequest <AWSPreparedRequest>`.)rä   rº   ©r   s    r   rº   ÚAWSRequest.prepareâ  s   € à×%Ñ%×-Ñ-¨dÓ3Ð3r   c                 ó†   • U R                  5       R                  n[        U[        5      (       a  UR	                  S5      nU$ rÔ   )rº   r?   rF   rG   rI   rß   s     r   r?   ÚAWSRequest.bodyæ  s3   € à�|‰|‹~×"Ñ"ˆÜ�dœC× Ñ Ø—;‘;˜wÓ'ˆDØˆr   )	rä   r£   r—   r¤   r@   r=   r¿   r·   r>   )NNNNNNF)r#   r$   r%   r&   r�   r²   rã   r   rº   Úpropertyr?   r'   r(   r   r   r¥   r¥   ´  sE   † ñð /Ðð ØØØØØØô"òH4ð ñó ór   r¥   c                   ó0   • \ rS rSrSr SS jrS rS rSrg)	r¸   iî  aÃ  A data class representing a finalized request to be sent over the wire.

Requests at this stage should be treated as final, and the properties of
the request should not be modified.

:ivar method: The HTTP Method
:ivar url: The full url
:ivar headers: The HTTP headers to send.
:ivar body: The HTTP body.
:ivar stream_output: If the response for this request should be streamed.
:ivar context: The request context from the originating ``AWSRequest``.
Nc                 óL   • Xl         X l        X0l        X@l        XPl        X`l        g r    )r=   r>   r@   r?   r·   r—   )r   r=   r>   r@   r?   r·   r—   s          r   r   ÚAWSPreparedRequest.__init__ü  s#   € ð ŒØŒØŒØŒ	Ø*ÔØ�r   c                 óf   • SnXR                   U R                  U R                  U R                  4-  $ )NzD<AWSPreparedRequest stream_output=%s, method=%s, url=%s, headers=%s>)r·   r=   r>   r@   )r   Úfmts     r   Ú__repr__ÚAWSPreparedRequest.__repr__  s2   € ðð 	ð ×(Ñ(¨$¯+©+°t·x±xÀÇÁÐNÑNÐNr   c                 óf  • [         [        [        4nU R                  b  [	        U R                  U5      (       a  g [
        R                  SU R                  5        U R                  R                  S5        g! [         a.  n[
        R                  SU5        [        U R                  S9eSnAff = f)a  Resets the streaming body to it's initial position.

If the request contains a streaming body (a streamable file-like object)
seek to the object's initial position to ensure the entire contents of
the object is sent. This is a no-op for static bytes-like body types.
NzRewinding stream: %sr   zUnable to rewind stream: %s)Ústream_object)
rU   rG   Ú	bytearrayr?   rF   rW   rX   ÚseekÚ	Exceptionr   )r   Únon_seekable_typesÚes      r   Úreset_streamÚAWSPreparedRequest.reset_stream  sˆ   € ô $¤S¬)Ð4ÐØ�9‰9Ñ¤
¨4¯9©9Ð6H× IÑ IØð	AÜ�L‰LÐ/°·±Ô;Ø�I‰I�N‰N˜1ÕøÜó 	AÜ�L‰LÐ6¸Ô:Ü'°d·i±iÑ@Ð@ûð	Aús   ¼;A8 Á8
B0Â)B+Â+B0)r?   r—   r@   r=   r·   r>   r    )	r#   r$   r%   r&   r�   r   rñ   rú   r'   r(   r   r   r¸   r¸   î  s   † ñð BFôòOõAr   r¸   c                   ó>   • \ rS rSrSrS r\S 5       r\S 5       rSr	g)ÚAWSResponsei%  a‡  A data class representing an HTTP response.

This class was originally inspired by requests.models.Response, but has
been boiled down to meet the specific use cases in botocore. This has
effectively been reduced to a named tuple.

:ivar url: The full url.
:ivar status_code: The status code of the HTTP response.
:ivar headers: The HTTP headers received.
:ivar body: The HTTP response body.
c                 óV   • Xl         X l        [        U5      U l        X@l        S U l        g r    )r>   Ústatus_coderÌ   r@   ÚrawÚ_content)r   r>   rÿ   r@   r   s        r   r   ÚAWSResponse.__init__2  s%   € ØŒØ&ÔÜ" 7Ó+ˆŒØŒàˆ�r   c                 ó¢   • U R                   c7  SR                  U R                  R                  5       5      =(       d    SU l         U R                   $ )z!Content of the response as bytes.r   )r  rJ   r   Ústreamrç   s    r   ÚcontentÚAWSResponse.content:  s:   € ð �=‰=Ñ ð
  ŸH™H T§X¡X§_¡_Ó%6Ó7×>¸3ˆDŒMà�}‰}Ðr   c                 óÎ   • [         R                  R                  U R                  5      nU(       a  U R                  R                  U5      $ U R                  R                  S5      $ )zêContent of the response as a proper text type.

Uses the encoding type provided in the reponse headers to decode the
response content into a proper text type. If the encoding is not
present in the headers, UTF-8 is used as a default.
rD   )r™   rš   Úget_encoding_from_headersr@   r  rs   )r   Úencodings     r   ÚtextÚAWSResponse.textG  sI   € ô —>‘>×;Ñ;¸D¿L¹LÓIˆÞØ—<‘<×&Ñ& xÓ0Ð0à—<‘<×&Ñ& wÓ/Ð/r   )r  r@   r   rÿ   r>   N)
r#   r$   r%   r&   r�   r   rë   r  r
  r'   r(   r   r   rý   rý   %  s4   † ñ
òð ñ
ó ð
ð ñ0ó ó0r   rý   c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	Ú
_HeaderKeyiV  c                 ó:   • Xl         UR                  5       U l        g r    )Ú_keyÚlowerÚ_lower©r   rÖ   s     r   r   Ú_HeaderKey.__init__W  s   € ØŒ	Ø—i‘i“kˆ�r   c                 ó,   • [        U R                  5      $ r    )Úhashr  rç   s    r   Ú__hash__Ú_HeaderKey.__hash__[  s   € Ü�D—K‘KÓ Ð r   c                 ób   • [        U[        5      =(       a    U R                  UR                  :H  $ r    )rF   r  r  )r   Úothers     r   Ú__eq__Ú_HeaderKey.__eq__^  s!   € Ü˜%¤Ó,×L°·±ÀÇÁÑ1LÐLr   c                 ó   • U R                   $ r    )r  rç   s    r   Ú__str__Ú_HeaderKey.__str__a  s   € Ø�y‰yÐr   c                 ó,   • [        U R                  5      $ r    )Úreprr  rç   s    r   rñ   Ú_HeaderKey.__repr__d  s   € Ü�D—I‘I‹Ðr   )r  r  N)
r#   r$   r%   r&   r   r  r  r  rñ   r'   r(   r   r   r  r  V  s   † ò"ò!òMòõr   r  c                   óH   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rSrg)rÌ   ih  z9A case-insenseitive dictionary to represent HTTP headers.c                 ó6   • 0 U l         U R                  " U0 UD6  g r    )Ú_dictÚupdater   s      r   r   ÚHeadersDict.__init__k  s   € ØˆŒ
Ø�Š�TÐ$˜VÓ$r   c                 ó2   • X R                   [        U5      '   g r    ©r$  r  )r   rÖ   r×   s      r   Ú__setitem__ÚHeadersDict.__setitem__o  s   € Ø&+�
‰
”:˜c“?Ò#r   c                 ó2   • U R                   [        U5         $ r    r(  r  s     r   Ú__getitem__ÚHeadersDict.__getitem__r  s   € Ø�z‰zœ* S›/Ñ*Ð*r   c                 ó0   • U R                   [        U5      	 g r    r(  r  s     r   Ú__delitem__ÚHeadersDict.__delitem__u  s   € Ø�J‰J”z #“Ñ'r   c                 ó(   • S U R                    5       $ )Nc              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr    )rG   )Ú.0rÖ   s     r   Ú	<genexpr>Ú'HeadersDict.__iter__.<locals>.<genexpr>y  s   é € Ð/¢J˜S”�C—�¢Jùs   ‚©r$  rç   s    r   Ú__iter__ÚHeadersDict.__iter__x  s   € Ù/ D§J¢JÓ/Ð/r   c                 ó,   • [        U R                  5      $ r    )rq   r$  rç   s    r   Ú__len__ÚHeadersDict.__len__{  s   € Ü�4—:‘:‹Ðr   c                 ó,   • [        U R                  5      $ r    )r   r$  rç   s    r   rñ   ÚHeadersDict.__repr__~  s   € Ü�D—J‘JÓÐr   c                 ó4   • [        U R                  5       5      $ r    )rÌ   rÂ   rç   s    r   ÚcopyÚHeadersDict.copy�  s   € Ü˜4Ÿ:™:›<Ó(Ð(r   r6  N)r#   r$   r%   r&   r�   r   r)  r,  r/  r7  r:  rñ   r?  r'   r(   r   r   rÌ   rÌ   h  s-   † ÙCò%ò,ò+ò(ò0òò õ)r   rÌ   r€   )*ru   ÚloggingÚcollections.abcr   Úurllib3.utilrY   Úurllib3.connectionr   r   Úurllib3.connectionpoolr   r   Úbotocore.utilsr™   Úbotocore.compatr   r	   r
   r   r   r   r   Úbotocore.exceptionsr   Ú	getLoggerr#   rW   r   r*   r„   rˆ   r‹   r�   r¡   r§   r˜   r²   r¥   r¸   rý   r  rÌ   r(   r   r   Ú<module>rJ     sï   ðó Û Ý #ã ß Fß Jã ÷÷ ñ õ 6à	×	Ò	˜8Ó	$€ô3�lô 3÷ s
ñ s
ôlA˜ ~ô AôB˜Ð(?ô Bô&Ð.ô &ô'Ð0ô 'ð
 :>ô&òRò2÷8X=ñ X=÷v7ñ 7÷t4Añ 4A÷n.0ñ .0÷bñ ô$)�.õ )r   