§
    ªeîicA  ã                   ó,  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZ  ej        e¦  «        Z e¦   «         ZdZ dZ!d„ Z" G d„ d¦  «        Z# G d„ d¦  «        Z$dS )é    N)Úparsers)Úcreate_request_object)Úget_current_datetime)ÚHTTPClientError)Ú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                 ó  — | j         | j        d|j        idœ}|d         dk    r| j        |d<   nW|j        r| j        |d<   nE|j        r4|d                              d¦  «        }t          | j        |¦  «        |d<   n
| j        |d<   |S )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       úU/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/botocore/endpoint.pyÚconvert_to_response_dictr#   +   s·   € ð  !Ô(Ø$Ô0à˜oÔ2ð
ðð €Mð �]Ô# sÒ*Ð*Ø -Ô 5ˆ�fÑÐØ	Ô	0ð 6Ø -Ô 1ˆ�fÑÐØ	Ô	-ð 6Ø˜yÔ)×-Ò-Ð.>Ñ?Ô?ˆÝ -¨mÔ.?ÀÑ HÔ Hˆ�fÑÐà -Ô 5ˆ�fÑØÐó    c                   ó‚   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd„ Zdd„Zd„ Z	d	„ Z
d
„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	 	 dd„Zd„ ZdS )ÚEndpointa,  
    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                 óÞ   — || _         || _        || _        t          j        ¦   «         | _        |€t          j        ¦   «         }|| _        || _	        | j	        €t          ¦   «         | _	        d S d S ©N)Ú_endpoint_prefixÚ_event_emitterÚhostÚ	threadingÚLockÚ_lockr   ÚResponseParserFactoryÚ_response_parser_factoryÚhttp_sessionr
   )Úselfr+   Úendpoint_prefixÚevent_emitterÚresponse_parser_factoryr1   s         r"   Ú__init__zEndpoint.__init__X   st   € ð !0ˆÔØ+ˆÔØˆŒ	Ý”^Ñ%Ô%ˆŒ
Ø"Ð*Ý&-Ô&CÑ&EÔ&EÐ#Ø(?ˆÔ%Ø(ˆÔØÔÐ$Ý .Ñ 0Ô 0ˆDÔÐÐð %Ð$r$   c                 ó&   — | j         › d| j        › d�S )Nú(ú))r)   r+   ©r2   s    r"   Ú__repr__zEndpoint.__repr__k   s   € ØÔ'Ð6Ð6¨$¬)Ð6Ð6Ð6Ð6r$   c                 ó8   — | j                              ¦   «          d S r(   )r1   Úcloser:   s    r"   r=   zEndpoint.closen   s   € ØÔ×ÒÑ!Ô!Ð!Ð!Ð!r$   c                 óf   — t                                d||¦  «         |                      ||¦  «        S )Nz%Making request for %s with params: %s)ÚloggerÚdebugÚ_send_request)r2   r   Úrequest_dicts      r"   Úmake_requestzEndpoint.make_requestq   s9   € Ý�ŠØ3ØØñ	
ô 	
ð 	
ð
 ×!Ò! ,°Ñ@Ô@Ð@r$   c                 ó,  — t          |¦  «        }|rmt          |j        |j        g¦  «        |_        |j        j                             ¦   «         }d|› d|j        › �}| j	         
                    |||j        ¬¦  «         |                      |¦  «        }|S )Nzrequest-created.ú.)Úrequestr   )r   Úanyr   r   Ústream_outputÚservice_modelÚ
service_idÚ	hyphenizer   r*   ÚemitÚprepare_request)r2   Úparamsr   rF   rJ   Ú
event_nameÚprepared_requests          r"   Úcreate_requestzEndpoint.create_requesty   s³   € Ý'¨Ñ/Ô/ˆØð 	Ý$'à#Ô8Ø#Ô;ðñ%ô %ˆGÔ!ð )Ô6ÔA×KÒKÑMÔMˆJØO¨JÐOÐO¸Ô9MÐOÐOˆJØÔ×$Ò$ØØØ.Ô3ð %ñ ô ð ð
  ×/Ò/°Ñ8Ô8ÐØÐr$   c                 ó”   — |                      ¦   «         D ]2\  }}t          |t          ¦  «        r|                     d¦  «        ||<   Œ3d S )Nzutf-8)ÚitemsÚ
isinstanceÚstrÚencode)r2   r   ÚkeyÚvalues       r"   Ú_encode_headerszEndpoint._encode_headersŒ   sO   € à!Ÿ-š-™/œ/ð 	5ð 	5‰JˆC�Ý˜%¥Ñ%Ô%ð 5Ø$Ÿ|š|¨GÑ4Ô4�˜‘øð	5ð 	5r$   c                 ó^   — |                       |j        ¦  «         |                     ¦   «         S r(   )rY   r   Úprepare©r2   rF   s     r"   rM   zEndpoint.prepare_request’   s(   € Ø×Ò˜Wœ_Ñ-Ô-Ð-Ø�ŠÑ Ô Ð r$   c                 óÈ   — t          ¦   «         }t          j                             |d¦  «        }||z
  }|t          j        |¬¦  «        z   |z   }|                     d¦  «        S )Nz%a, %d %b %Y %H:%M:%S %Z)Úsecondsz%Y%m%dT%H%M%SZ)r   ÚdatetimeÚstrptimeÚ	timedeltaÚstrftime)r2   Úresponse_received_timestampÚdate_headerÚread_timeoutÚlocal_timestampÚdate_conversionÚestimated_skewÚttls           r"   Ú_calculate_ttlzEndpoint._calculate_ttl–   su   € õ /Ñ0Ô0ˆÝ"Ô+×4Ò4ØÐ3ñ
ô 
ˆð )Ð+FÑFˆàÝÔ ¨Ð6Ñ6Ô6ñ7àñð 	ð
 �|Š|Ð,Ñ-Ô-Ð-r$   c                 ó,  — |d         j                              d¦  «        }|                     d¦  «        }|rZ|sZ	 t          ¦   «         }|                      |||¦  «        |d<   d S # t          $ r  t
                               dd¬¦  «         Y d S w xY wd S d S )Nr   ÚDateÚhas_streaming_inputri   z9Exception received when updating retries context with TTLT©Úexc_info)r   r   r   rj   Ú	Exceptionr?   r@   )r2   Úretries_contextre   Úsuccess_responseÚresponse_date_headerrm   rc   s          r"   Ú_set_ttlzEndpoint._set_ttl¥   sÞ   € Ø/°Ô2Ô:×>Ò>¸vÑFÔFÐØ-×1Ò1Ð2GÑHÔHÐØð 	Ð(;ð 	ðÝ.BÑ.DÔ.DÐ+Ø)-×)<Ò)<Ø/Ø(Ø ñ*ô *� Ñ&Ð&Ð&øõ
 ð ð ð Ý—’ØOØ!ð ñ ô ð ð ð ð ðøøøð	ð 	ð 	ð 	s   »(A% Á%&BÂBc                 óÚ   — |                      di ¦  «        }||d<   d|vr#t          t          j        ¦   «         ¦  «        |d<   |r&|d         j        }|                      |||¦  «         d S d S )NÚretriesÚattemptzinvocation-idÚclient_config)Ú
setdefaultrU   ÚuuidÚuuid4re   rt   )r2   r   rw   rr   rq   re   s         r"   Ú_update_retries_contextz Endpoint._update_retries_context¶   sƒ   € Ø!×,Ò,¨Y¸Ñ;Ô;ˆØ%,ˆ˜	Ñ"Ø /Ð1Ð1Ý/2µ4´:±<´<Ñ/@Ô/@ˆO˜OÑ,àð 	KØ" ?Ô3Ô@ˆLØ�MŠM˜/¨<Ð9IÑJÔJÐJÐJÐJð	Kð 	Kr$   c                 ó  — d}|d         }|                       ||¦  «         |                      ||¦  «        }|                      |||¦  «        \  }}|                      |||||¦  «        ry|dz  }|                       |||¦  «         |                     ¦   «          |                      ||¦  «        }|                      |||¦  «        \  }}|                      |||||¦  «        °y|� d|d         v r|dz
  }||d         d         d<   |�|‚|S )Né   r   ÚResponseMetadataÚRetryAttempts)r|   rQ   Ú_get_responseÚ_needs_retryÚreset_stream)	r2   rB   r   Úattemptsr   rF   rr   Ú	exceptionÚtotal_retriess	            r"   rA   zEndpoint._send_requestÀ   sn  € ØˆØ˜yÔ)ˆØ×$Ò$ W¨hÑ7Ô7Ð7Ø×%Ò% l°OÑDÔDˆØ&*×&8Ò&8Ø�_ gñ'
ô '
Ñ#Ð˜)ð ×ÒØØØØØñ
ô 
ð 	ð ˜‰MˆHØ×(Ò(¨°(Ð<LÑMÔMÐMð
 × Ò Ñ"Ô"Ð"à×)Ò)¨,¸ÑHÔHˆGØ*.×*<Ò*<Ø˜¨'ñ+ô +Ñ'Ð˜ið! ×ÒØØØØØñ
ô 
ð 	ð( Ð(Ø"Ð&6°qÔ&9Ð9Ð9ð % q™LˆMàð ˜QÔÐ 2Ô3°OÑDð Ð ØˆOà#Ð#r$   c                 ó  — |                       |||¦  «        \  }}d d ||dœ}|�|\  }}||d<   t          ||¦  «        |d<   |j        j                             ¦   «         }	 | j        j        d|	› d|j        › �fi |¤Ž ||fS )N)r    Úparsed_responser   r…   rˆ   r    zresponse-received.rE   )Ú_do_get_responser#   rI   rJ   rK   r*   rL   r   )
r2   rF   r   r   rr   r…   Úkwargs_to_emitr   rˆ   rJ   s
             r"   r�   zEndpoint._get_responseé   sÙ   € ð '+×&;Ò&;Ø�_ gñ'
ô '
Ñ#Ð˜)ð "Ø#ØØ"ð	
ð 
ˆð Ð'Ø-=Ñ*ˆM˜?Ø0?ˆNÐ,Ñ-Ý.FØ˜ñ/ô /ˆN˜?Ñ+ð %Ô2Ô=×GÒGÑIÔIˆ
Ø ˆÔÔ ØD ÐDÐD¨oÔ.BÐDÐDð	
ð 	
àð	
ð 	
ð 	
ð   Ð*Ð*r$   c           	      ód  — 	 t                                d|¦  «         t                               d|j        |j        |j        |j        |j        dœ¦  «         |j	        j
                             ¦   «         }d|› d|j        › �}| j                             ||¬¦  «        }t          |¦  «        }|€|                      |¦  «        }nM# t"          $ r}d |fcY d }~S d }~wt$          $ r*}t                                dd¬	¦  «         d |fcY d }~S d }~ww xY wt'          ||¦  «        }	t)          ||	||¦  «         |	                     ¦   «         }
|j        |
d
<   t                               d|
¦  «         |j	        j        }i }| j                             d|› d|j        › �||	|¬¦  «         | j                             |¦  «        }|                     |	|j        ¦  «        }|                     |¦  «         |j        dk    r|                      |	|||¦  «         t                               d|¦  «         ||fd fS )NzSending http request: %sÚHTTP_REQUEST)Úmethodr   Ú	streamingÚurlr   zbefore-send.rE   )rF   z-Exception received when sending HTTP request.Trn   rŽ   ÚHTTP_RESPONSEzbefore-parse.)r   r    Úcustomized_response_dictr   ÚPARSED_RESPONSE)r?   r@   Úhistory_recorderÚrecordr�   r   rm   r�   r   rI   rJ   rK   r   r*   rL   r   Ú_sendr   rp   r#   r	   Úcopyr   Úresolved_protocolr0   Úcreate_parserÚparseÚoutput_shapeÚupdater   Ú_add_modeled_error_fields)r2   rF   r   r   rJ   rO   Ú	responsesr   Úer    Úhttp_response_record_dictÚprotocolr‘   Úparserrˆ   s                  r"   r‰   zEndpoint._do_get_response  s¿  € ð	Ý�LŠLÐ3°WÑ=Ô=Ð=Ý×#Ò#Øà%œnØ&œØ!0Ô!DØ"œ;Ø#œLðð ñ	ô 	ð 	ð )Ô6ÔA×KÒKÑMÔMˆJØK¨
ÐKÐK°_Ô5IÐKÐKˆJØÔ+×0Ò0°ÀWÐ0ÑMÔMˆIÝ3°IÑ>Ô>ˆMØÐ$Ø $§
¢
¨7Ñ 3Ô 3�øøÝð 	ð 	ð 	Ø˜!�9ÐÐÐÐÐÐøøøøÝð 	ð 	ð 	Ý�LŠLØ?È$ð ñ ô ð ð ˜!�9ÐÐÐÐÐÐøøøøð		øøøõ 1Ø˜?ñ
ô 
ˆõ 	ØØØØñ		
ô 	
ð 	
ð %2×$6Ò$6Ñ$8Ô$8Ð!àÔ0ð 	" +Ñ.õ 	×Ò Ð1JÑKÔKÐKà"Ô0ÔBˆØ#%Ð ØÔ× Ò Ø?˜JÐ?Ð?¨Ô)=Ð?Ð?Ø+Ø'Ø%=ð	 	!ñ 	
ô 	
ð 	
ð Ô.×<Ò<¸XÑFÔFˆØ Ÿ,š,Ø˜?Ô7ñ
ô 
ˆð 	×ÒÐ7Ñ8Ô8Ð8ð Ô$¨Ò+Ð+Ø×*Ò*ØØØØñ	ô ð õ 	×ÒÐ 1°?ÑCÔCÐCØ˜Ð/°Ð5Ð5s0   ‚CC Ã
DÃCÃDÃDÃ%D
ÄDÄ
Dc                 óö   — |                      di ¦  «                              d¦  «        }|€d S |j        }|                     |¦  «        }|€d S |                     ||¦  «        }|                     |¦  «         d S )NÚErrorÚCode)r   rI   Úshape_for_error_coder™   r›   )	r2   r    rˆ   r   r¡   Ú
error_coderI   Úerror_shapeÚmodeled_parses	            r"   rœ   z"Endpoint._add_modeled_error_fieldsL  s…   € ð %×(Ò(¨°"Ñ5Ô5×9Ò9¸&ÑAÔAˆ
ØÐØˆFØ'Ô5ˆØ#×8Ò8¸ÑDÔDˆØÐØˆFØŸš ]°KÑ@Ô@ˆà×Ò˜}Ñ-Ô-Ð-Ð-Ð-r$   c           	      ó"  — |j         j                             ¦   «         }d|› d|j        › �}| j                             ||| ||||¬¦  «        }t          |¦  «        }	|	€dS t                               d|	¦  «         t          j
        |	¦  «         dS )Nzneeds-retry.rE   )ÚresponseÚendpointÚ	operationr„   Úcaught_exceptionrB   Fz3Response received to retry, sleeping for %s secondsT)rI   rJ   rK   r   r*   rL   r   r?   r@   ÚtimeÚsleep)
r2   r„   r   rB   rª   r­   rJ   rO   r�   Úhandler_responses
             r"   r‚   zEndpoint._needs_retry^  s¶   € ð %Ô2Ô=×GÒGÑIÔIˆ
ØG JÐGÐG°Ô1EÐGÐGˆ
ØÔ'×,Ò,ØØØØ%ØØ-Ø%ð -ñ 
ô 
ˆ	õ 3°9Ñ=Ô=ÐØÐ#Ø�5õ �LŠLØEØ ñô ð õ ŒJÐ'Ñ(Ô(Ð(Ø�4r$   c                 ó6   — | j                              |¦  «        S r(   )r1   Úsendr\   s     r"   r•   zEndpoint._send~  s   € ØÔ ×%Ò% gÑ.Ô.Ð.r$   )NNr(   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r6   r;   r=   rC   rQ   rY   rM   rj   rt   r|   rA   r�   r‰   rœ   r‚   r•   © r$   r"   r&   r&   M   s?  € € € € € ðð ð !%Øð1ð 1ð 1ð 1ð&7ð 7ð 7ð"ð "ð "ðAð Að Að ð  ð  ð  ð&5ð 5ð 5ð!ð !ð !ð.ð .ð .ðð ð ð"Kð Kð Kð Kð'$ð '$ð '$ðR+ð +ð +ð8E6ð E6ð E6ðN.ð .ð .ð. Øðð ð ð ð@/ð /ð /ð /ð /r$   r&   c            	       ó:   — e Zd Zd„ Zddeeeddddf	d„Zd„ Zd„ Z	dS )ÚEndpointCreatorc                 ó   — || _         d S r(   )r*   )r2   r4   s     r"   r6   zEndpointCreator.__init__ƒ  s   € Ø+ˆÔÐÐr$   Nc           	      óR  — t          |¦  «        s!t          |¦  «        st          d|› �¦  «        ‚|	€|                      |¦  «        }	|j        }t
                               d||¦  «          |||	|                      |¦  «        ||
||¬¦  «        }t          ||| j	        ||¬¦  «        S )NzInvalid endpoint: zSetting %s timeout as %s)ÚtimeoutÚproxiesÚverifyÚmax_pool_connectionsÚsocket_optionsÚclient_certÚproxies_config)r3   r4   r5   r1   )
r   r   Ú
ValueErrorÚ_get_proxiesr3   r?   r@   Ú_get_verify_valuer&   r*   )r2   rI   Úregion_nameÚendpoint_urlr¾   r5   r¼   r¿   Úhttp_session_clsr½   rÀ   rÁ   rÂ   r3   r1   s                  r"   Úcreate_endpointzEndpointCreator.create_endpoint†  sà   € õ %Øñ
ô 
ð 	Bå,¨\Ñ:Ô:ð	Bõ Ð@°,Ð@Ð@ÑAÔAÐAàˆ?Ø×'Ò'¨Ñ5Ô5ˆGØ'Ô7ˆå�ŠÐ/°À'ÑJÔJÐJØ'Ð'ØØØ×)Ò)¨&Ñ1Ô1Ø!5Ø)Ø#Ø)ð
ñ 
ô 
ˆõ ØØ+ØÔ-Ø$;Ø%ð
ñ 
ô 
ð 	
r$   c                 ó    — t          |¦  «        S r(   )r   )r2   r�   s     r"   rÄ   zEndpointCreator._get_proxies±  s   € õ # 3Ñ'Ô'Ð'r$   c                 óJ   — |�|S t           j                             dd¦  «        S )NÚREQUESTS_CA_BUNDLET)ÚosÚenvironr   )r2   r¾   s     r"   rÅ   z!EndpointCreator._get_verify_value¶  s(   € ð ÐØˆMõ Œz�~Š~Ð2°DÑ9Ô9Ð9r$   )
r³   r´   rµ   r6   ÚDEFAULT_TIMEOUTÚMAX_POOL_CONNECTIONSr
   rÉ   rÄ   rÅ   r·   r$   r"   r¹   r¹   ‚  ss   € € € € € ð,ð ,ð ,ð Ø $ØØ1Ø'ØØØØð)
ð )
ð )
ð )
ðV(ð (ð (ð
:ð :ð :ð :ð :r$   r¹   )%r_   ÚloggingrÍ   r,   r®   rz   Úbotocorer   Úbotocore.awsrequestr   Úbotocore.compatr   Úbotocore.exceptionsr   Úbotocore.historyr   Úbotocore.hooksr   Úbotocore.httpchecksumr	   Úbotocore.httpsessionr
   Úbotocore.responser   Úbotocore.utilsr   r   r   Ú	getLoggerr³   r?   r“   rÏ   rÐ   r#   r&   r¹   r·   r$   r"   ú<module>rÝ      sµ  ðð €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø /Ð /Ð /Ð /Ð /Ð /Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø /Ð /Ð /Ð /Ð /Ð /Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€Ø.Ð.Ñ0Ô0Ð Ø€ØÐ ðð ð ðDr/ð r/ð r/ð r/ð r/ñ r/ô r/ð r/ðj	?:ð ?:ð ?:ð ?:ð ?:ñ ?:ô ?:ð ?:ð ?:ð ?:r$   