ó
    Ú°›j=D  ã                   ó   • S SK r S SKrS SK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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  S SKJrJrJr  \R:                  " \5      r\" 5       r Sr!Sr"S r# " S S5      r$ " S S5      r%g)é    N)Úparsers)Úcreate_request_object)Úget_current_datetime)ÚHTTPClientErrorÚInvalidConfigError)Úget_global_history_recorder)Úfirst_non_none_response)Úhandle_checksum_body)ÚURLLib3Session)ÚStreamingBody)Úget_environ_proxiesÚis_valid_endpoint_urlÚis_valid_ipv6_endpoint_urlé<   é
   c                 óh  • U R                   U R                  SUR                  0S.nUS   S:¼  a  U R                  US'   U$ UR                  (       a  U R
                  US'   U$ UR                  (       a/  US   R                  S5      n[        U R
                  U5      US'   U$ U R                  US'   U$ )a‘  Convert an HTTP response object to a request dict.

This converts the HTTP response object to a dictionary.

:type http_response: botocore.awsrequest.AWSResponse
:param http_response: The HTTP response from an AWS service request.

:rtype: dict
:return: A response dictionary which will contain the following keys:
    * headers (dict)
    * status_code (int)
    * body (string or file-like object)

Úoperation_name)ÚheadersÚstatus_codeÚcontextr   é,  Úbodyr   zcontent-length)	r   r   ÚnameÚcontentÚhas_event_stream_outputÚrawÚhas_streaming_outputÚgetr   )Úhttp_responseÚoperation_modelÚresponse_dictÚlengths       ÚN/home/mande/repo/quber/.venv/lib/python3.13/site-packages/botocore/endpoint.pyÚconvert_to_response_dictr$   +   sÏ   € ð  !×(Ñ(Ø$×0Ñ0à˜o×2Ñ2ð
ñ€Mð �]Ñ# sÓ*Ø -× 5Ñ 5ˆ�fÑð Ðð 
×	0×	0Ø -× 1Ñ 1ˆ�fÑð Ðð 
×	-×	-Ø˜yÑ)×-Ñ-Ð.>Ó?ˆÜ -¨m×.?Ñ.?ÀÓ Hˆ�fÑð Ðð !.× 5Ñ 5ˆ�fÑØÐó    c                   ó�   • \ rS rSrSr  SS jrS rS rS rSS jr	S	 r
S
 rS rS rSS jrS rS rS rS r  SS jrS rSrg)ÚEndpointéM   a  
Represents an endpoint for a particular service in a specific
region.  Only an endpoint can make requests.

:ivar service: The Service object that describes this endpoints
    service.
:ivar host: The fully qualified endpoint hostname.
:ivar session: The session object.
Nc                 óÞ   • X l         X0l        Xl        [        R                  " 5       U l        Uc  [        R                  " 5       nX@l        XPl	        U R                  c  [        5       U l	        g g ©N)Ú_endpoint_prefixÚ_event_emitterÚhostÚ	threadingÚLockÚ_lockr   ÚResponseParserFactoryÚ_response_parser_factoryÚhttp_sessionr   )Úselfr-   Úendpoint_prefixÚevent_emitterÚresponse_parser_factoryr3   s         r#   Ú__init__ÚEndpoint.__init__X   s`   € ð !0ÔØ+ÔØŒ	Ü—^’^Ó%ˆŒ
Ø"Ñ*Ü&-×&CÒ&CÓ&EÐ#Ø(?Ô%Ø(ÔØ×ÑÑ$Ü .Ó 0ˆDÕð %r%   c                 ó:   • U R                    SU R                   S3$ )NÚ(Ú))r+   r-   ©r4   s    r#   Ú__repr__ÚEndpoint.__repr__k   s    € Ø×'Ñ'Ð(¨¨$¯)©)¨°AÐ6Ð6r%   c                 ó8   • U R                   R                  5         g r*   )r3   Úcloser=   s    r#   rA   ÚEndpoint.closen   s   € Ø×Ñ×ÑÕ!r%   c                 óR   • [         R                  SUU5        U R                  X!5      $ )Nz%Making request for %s with params: %s)ÚloggerÚdebugÚ_send_request)r4   r    Úrequest_dicts      r#   Úmake_requestÚEndpoint.make_requestq   s*   € Ü�‰Ø3ØØô	
ð
 ×!Ñ! ,Ó@Ð@r%   c                 óN  • [        U5      nU(       a�  [        UR                  UR                  /5      Ul        UR
                  R                  R                  5       nSU SUR                   3nU R                  R                  UUUR                  S9  U R                  U5      nU$ )Nzrequest-created.Ú.)Úrequestr   )r   Úanyr   r   Ústream_outputÚservice_modelÚ
service_idÚ	hyphenizer   r,   ÚemitÚprepare_request)r4   Úparamsr    rL   rP   Ú
event_nameÚprepared_requests          r#   Úcreate_requestÚEndpoint.create_requesty   s©   € Ü'¨Ó/ˆÞÜ$'à#×8Ñ8Ø#×;Ñ;ðó%ˆGÔ!ð )×6Ñ6×AÑA×KÑKÓMˆJØ+¨J¨<°q¸×9MÑ9MÐ8NÐOˆJØ×Ñ×$Ñ$ØØØ.×3Ñ3ð %ñ ð
  ×/Ñ/°Ó8ÐØÐr%   c                 óŠ   • UR                  5        H/  u  p#[        U[        5      (       d  M  UR                  S5      X'   M1     g )Nzutf-8)ÚitemsÚ
isinstanceÚstrÚencode)r4   r   ÚkeyÚvalues       r#   Ú_encode_headersÚEndpoint._encode_headersŒ   s1   € à!Ÿ-™-ž/‰JˆCÜ˜%¤×%Ó%Ø$Ÿ|™|¨GÓ4�“ò *r%   c                 óX   • U R                  UR                  5        UR                  5       $ r*   )r`   r   Úprepare©r4   rL   s     r#   rS   ÚEndpoint.prepare_request’   s!   € Ø×Ñ˜WŸ_™_Ô-Ø�‰Ó Ð r%   c                 ó´   • [        5       n[        R                  R                  US5      nXQ-
  nU[        R                  " US9-   U-   nUR	                  S5      $ )Nz%a, %d %b %Y %H:%M:%S %Z)Úsecondsz%Y%m%dT%H%M%SZ)r   ÚdatetimeÚstrptimeÚ	timedeltaÚstrftime)r4   Úresponse_received_timestampÚdate_headerÚread_timeoutÚlocal_timestampÚdate_conversionÚestimated_skewÚttls           r#   Ú_calculate_ttlÚEndpoint._calculate_ttl–   sg   € ô /Ó0ˆÜ"×+Ñ+×4Ñ4ØÐ3ó
ˆð )ÑFˆàÜ× Ò ¨Ñ6ñ7àñð 	ð
 �|‰|Ð,Ó-Ð-r%   c                 ó  • US   R                   R                  S5      nUR                  S5      nU(       a*  U(       d"   [        5       nU R                  UUU5      US'   g g g ! [         a    [
        R                  SSS9   g f = f)Nr   ÚDateÚhas_streaming_inputrr   z9Exception received when updating retries context with TTLT©Úexc_info)r   r   r   rs   Ú	ExceptionrD   rE   )r4   Úretries_contextrn   Úsuccess_responseÚresponse_date_headerrw   rl   s          r#   Ú_set_ttlÚEndpoint._set_ttl¥   s’   € Ø/°Ñ2×:Ñ:×>Ñ>¸vÓFÐØ-×1Ñ1Ð2GÓHÐÞÖ(;ðÜ.BÓ.DÐ+Ø)-×)<Ñ)<Ø/Ø(Ø ó*� Ò&ð )<Ðøô ó Ü—‘ØOØ!ð ó ðús   ¿ A" Á"BÂBc                 óø   • UR                  S0 5      nX$S'   SU;  a!  [        [        R                  " 5       5      US'   U(       a6  UR	                  S5      nUc  US   R
                  nU R                  XEU5        g g )NÚretriesÚattemptzinvocation-idrn   Úclient_config)Ú
setdefaultr\   ÚuuidÚuuid4r   rn   r~   )r4   r   r‚   r|   r{   rn   s         r#   Ú_update_retries_contextÚ Endpoint._update_retries_context¶   st   € Ø!×,Ñ,¨Y¸Ó;ˆØ%,˜	Ñ"Ø /Ó1Ü/2´4·:²:³<Ó/@ˆO˜OÑ,æØ"Ÿ;™; ~Ó6ˆLØÑ#Ø& Ñ7×DÑD�Ø�M‰M˜/Ð9IÕJð	 r%   c                 óÆ  • SnUS   nU R                  XC5        U R                  X5      nU R                  XRU5      u  pgU R                  UUUUU5      (       ah  US-  nU R                  XCU5        UR	                  5         U R                  X5      nU R                  XRU5      u  pgU R                  UUUUU5      (       a  Mh  Ub  SUS   ;   a  US-
  nUUS   S   S'   Ub  UeU$ )Né   r   ÚResponseMetadataÚRetryAttempts)r‡   rW   Ú_get_responseÚ_needs_retryÚreset_stream)	r4   rG   r    Úattemptsr   rL   r|   Ú	exceptionÚtotal_retriess	            r#   rF   ÚEndpoint._send_requestÂ   s/  € ØˆØ˜yÑ)ˆØ×$Ñ$ WÔ7Ø×%Ñ% lÓDˆØ&*×&8Ñ&8Ø gó'
Ñ#Ðð ×ÑØØØØØ÷
ñ 
ð ˜‰MˆHØ×(Ñ(¨Ð<LÔMð
 × Ñ Ô"à×)Ñ)¨,ÓHˆGØ*.×*<Ñ*<Ø¨'ó+Ñ'Ðð! ×ÑØØØØØ÷
ó 
ð( Ñ(Ø"Ð&6°qÑ&9Ó9ð % q™LˆMàð ˜QÑÐ 2Ñ3°OÑDð Ñ ØˆOà#Ð#r%   c                 ó  • U R                  XU5      u  pES S UUS.nUb  Uu  pxX†S'   [        Xr5      US'   UR                  R                  R	                  5       n	U R
                  R                  " SU	 SUR                   340 UD6  XE4$ )N)r!   Úparsed_responser   r‘   r•   r!   zresponse-received.rK   )Ú_do_get_responser$   rO   rP   rQ   r,   rR   r   )
r4   rL   r    r   r|   r‘   Úkwargs_to_emitr   r•   rP   s
             r#   r�   ÚEndpoint._get_responseë   s·   € ð '+×&;Ñ&;Ø gó'
Ñ#Ðð "Ø#ØØ"ñ	
ˆð Ñ'Ø-=Ñ*ˆMØ0?Ð,Ñ-Ü.FØó/ˆN˜?Ñ+ð %×2Ñ2×=Ñ=×GÑGÓIˆ
Ø×Ñ× Ò Ø   ¨A¨o×.BÑ.BÐ-CÐDñ	
àò	
ð  Ð*Ð*r%   c           	      ób  •  [         R                  SU5        [        R                  SUR                  UR
                  UR                  UR                  UR                  S.5        UR                  R                  R                  5       nSU SUR                   3nU R                  R                  XQS9n[        U5      nUc  U R!                  U5      n['        Xr5      n	[)        UU	UU5        U	R+                  5       n
UR,                  U
S
'   [        R                  SU
5        UR                  R.                  n0 nU R                  R                  SU SUR                   3UU	US9  U R0                  R3                  U5      nUR5                  X’R6                  5      nUR9                  U5        UR:                  S:¼  a  U R=                  U	UUU5        [        R                  SU5        X~4S 4$ ! ["         a  nS U4s S nA$ S nAf[$         a"  n[         R                  SSS	9  S U4s S nA$ S nAff = f)NzSending http request: %sÚHTTP_REQUEST)Úmethodr   Ú	streamingÚurlr   zbefore-send.rK   )rL   z-Exception received when sending HTTP request.Trx   rœ   ÚHTTP_RESPONSEzbefore-parse.)r    r!   Úcustomized_response_dictr   ÚPARSED_RESPONSE)rD   rE   Úhistory_recorderÚrecordr›   r   rw   r�   r   rO   rP   rQ   r   r,   rR   r	   Ú_sendr   rz   r$   r
   Úcopyr   Úresolved_protocolr2   Úcreate_parserÚparseÚoutput_shapeÚupdater   Ú_add_modeled_error_fields)r4   rL   r    r   rP   rU   Ú	responsesr   Úer!   Úhttp_response_record_dictÚprotocolrŸ   Úparserr•   s                  r#   r–   ÚEndpoint._do_get_response  s<  € ð	Ü�L‰LÐ3°WÔ=Ü×#Ñ#Øà%Ÿn™nØ&Ÿ™Ø!0×!DÑ!DØ"Ÿ;™;Ø#ŸL™Lñô	ð )×6Ñ6×AÑA×KÑKÓMˆJØ'¨
 |°1°_×5IÑ5IÐ4JÐKˆJØ×+Ñ+×0Ñ0°Ð0ÐMˆIÜ3°IÓ>ˆMØÑ$Ø $§
¡
¨7Ó 3�ô 1Øó
ˆô 	ØØØØô		
ð %2×$6Ñ$6Ó$8Ð!à×0Ñ0ð 	" +Ñ.ô 	×Ñ Ð1JÔKà"×0Ñ0×BÑBˆØ#%Ð Ø×Ñ× Ñ Ø˜J˜< q¨×)=Ñ)=Ð(>Ð?Ø+Ø'Ø%=ð	 	!ñ 	
ð ×.Ñ.×<Ñ<¸XÓFˆØ Ÿ,™,Ø×7Ñ7ó
ˆð 	×ÑÐ7Ô8ð ×$Ñ$¨Ó+Ø×*Ñ*ØØØØô	ô 	×ÑÐ 1°?ÔCØÐ/°Ð5Ð5øôe ó 	Ø˜!�9ÕûÜó 	Ü�L‰LØ?È$ð ñ ð ˜!�9Õûð		ús0   ‚CG, Ç,
H.Ç6G?Ç9H.Ç?H.ÈH)È#H.È)H.c                 óÔ   • UR                  S0 5      R                  S5      nUc  g UR                  nUR                  U5      nUc  g UR                  X5      nUR	                  U5        g )NÚErrorÚCode)r   rO   Úshape_for_error_coder§   r©   )	r4   r!   r•   r    r¯   Ú
error_coderO   Úerror_shapeÚmodeled_parses	            r#   rª   Ú"Endpoint._add_modeled_error_fieldsN  sj   € ð %×(Ñ(¨°"Ó5×9Ñ9¸&ÓAˆ
ØÑØØ'×5Ñ5ˆØ#×8Ñ8¸ÓDˆØÑØØŸ™ ]Ó@ˆà×Ñ˜}Õ-r%   c           
      ó.  • UR                   R                  R                  5       nSU SUR                   3nU R                  R                  UUU UUUUS9n[        U5      n	U	b  U	SL a  g[        R                  SU	5        [        R                  " U	5        g)Nzneeds-retry.rK   )ÚresponseÚendpointÚ	operationr�   Úcaught_exceptionrG   Fz3Response received to retry, sleeping for %s secondsT)rO   rP   rQ   r   r,   rR   r	   rD   rE   ÚtimeÚsleep)
r4   r�   r    rG   rº   r½   rP   rU   r«   Úhandler_responses
             r#   rŽ   ÚEndpoint._needs_retry`  s«   € ð %×2Ñ2×=Ñ=×GÑGÓIˆ
Ø# J <¨q°×1EÑ1EÐ0FÐGˆ
Ø×'Ñ'×,Ñ,ØØØØ%ØØ-Ø%ð -ð 
ˆ	ô 3°9Ó=ÐØÑ#Ð'7¸5Ò'@Øô �L‰LØEØ ôô �JŠJÐ'Ô(Ør%   c                 ó8   • U R                   R                  U5      $ r*   )r3   Úsendrd   s     r#   r£   ÚEndpoint._send€  s   € Ø× Ñ ×%Ñ% gÓ.Ð.r%   )r+   r,   r0   r2   r-   r3   )NNr*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r8   r>   rA   rH   rW   r`   rS   rs   r~   r‡   rF   r�   r–   rª   rŽ   r£   Ú__static_attributes__© r%   r#   r'   r'   M   sm   † ñð !%Øô1ò&7ò"òAô ò&5ò!ò.òô"
Kò'$òR+ò8E6òN.ð. Øôõ@/r%   r'   c            	       óH   • \ rS rSrS rSS\\\SSSS4	S jrS r	S r
S rSrg)	ÚEndpointCreatori„  c                 ó   • Xl         g r*   ©r,   )r4   r6   s     r#   r8   ÚEndpointCreator.__init__…  s   € Ø+Õr%   Nc           
      ó.  • [        U5      (       d  [        U5      (       d  [        SU 35      eU	c  U R                  U5      n	UR                  n[
        R                  SXÖ5        U" UU	U R                  U5      UU
UUS9n[        UUU R                  UUS9$ )NzInvalid endpoint: zSetting %s timeout as %s)ÚtimeoutÚproxiesÚverifyÚmax_pool_connectionsÚsocket_optionsÚclient_certÚproxies_config)r5   r6   r7   r3   )
r   r   Ú
ValueErrorÚ_get_proxiesr5   rD   rE   Ú_get_verify_valuer'   r,   )r4   rO   Úregion_nameÚendpoint_urlrÔ   r7   rÒ   rÕ   Úhttp_session_clsrÓ   rÖ   r×   rØ   r5   r3   s                  r#   Úcreate_endpointÚEndpointCreator.create_endpointˆ  s¯   € ô %Ø÷
ñ 
ä,¨\×:Ñ:ÜÐ1°,°Ð@ÓAÐAà‰?Ø×'Ñ'¨Ó5ˆGØ'×7Ñ7ˆä�‰Ð/°ÔJÙ'ØØØ×)Ñ)¨&Ó1Ø!5Ø)Ø#Ø)ñ
ˆô ØØ+Ø×-Ñ-Ø$;Ø%ñ
ð 	
r%   c                 ó   • [        U5      $ r*   )r   )r4   r�   s     r#   rÚ   ÚEndpointCreator._get_proxies³  s   € ô # 3Ó'Ð'r%   c                 óˆ   • Ub  U R                  U5      $ U R                  [        R                  R                  SS5      5      $ )NÚREQUESTS_CA_BUNDLET)Ú_validate_verify_valueÚosÚenvironr   ©r4   rÔ   s     r#   rÛ   Ú!EndpointCreator._get_verify_value¸  sC   € ð ÑØ×.Ñ.¨vÓ6Ð6ð ×*Ñ*Ü�J‰J�N‰NÐ/°Ó6ó
ð 	
r%   c                 ól   • [        U[        5      (       a  UR                  5       (       d	  [        SS9eU$ )Nz»Invalid CA bundle: the configured value (ca_bundle, AWS_CA_BUNDLE, REQUESTS_CA_BUNDLE, or verify) resolved to an empty or whitespace-only string. Provide a valid path to a CA bundle file.)Ú	error_msg)r[   r\   Ústripr   rè   s     r#   rå   Ú&EndpointCreator._validate_verify_valueÇ  s2   € Ü�fœc×"Ñ"¨6¯<©<¯>©>Ü$ð0ñð ð ˆr%   rÏ   )rÅ   rÆ   rÇ   rÈ   r8   ÚDEFAULT_TIMEOUTÚMAX_POOL_CONNECTIONSr   rß   rÚ   rÛ   rå   rÊ   rË   r%   r#   rÍ   rÍ   „  s9   † ò,ð Ø $ØØ1Ø'ØØØØô)
òV(ò

õ
r%   rÍ   )&rh   Úloggingræ   r.   r¾   r…   Úbotocorer   Úbotocore.awsrequestr   Úbotocore.compatr   Úbotocore.exceptionsr   r   Úbotocore.historyr   Úbotocore.hooksr	   Úbotocore.httpchecksumr
   Úbotocore.httpsessionr   Úbotocore.responser   Úbotocore.utilsr   r   r   Ú	getLoggerrÅ   rD   r¡   rî   rï   r$   r'   rÍ   rË   r%   r#   Ú<module>rü      sƒ   ðó Û Û 	Û Û Û å Ý 5Ý 0ß CÝ 8Ý 2Ý 6Ý /Ý +÷ñ ð 
×	Ò	˜8Ó	$€Ù.Ó0Ð Ø€ØÐ ò÷Dt/ñ t/÷n	Mò Mr%   