Ë
    £ªð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j8                  e«      Z e«       ZdZ dZ!d„ Z" G d„ d«      Z# G d„ d«      Z$y)é    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                 óR  — | j                   | j                  d|j                  idœ}|d   dk\  r| j                  |d<   |S |j                  r| j
                  |d<   |S |j                  r/|d   j                  d«      }t        | j
                  |«      |d<   |S | 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       úh/var/www/acinvestment.org/public_html/aci/backend/venv/lib/python3.12/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                   ó€   — 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y)Ú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        «       | _	        y y ©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   sj   € ð !0ˆÔØ+ˆÔØˆŒ	Ü—^‘^Ó%ˆŒ
Ø"Ð*Ü&-×&CÑ&CÓ&EÐ#Ø(?ˆÔ%Ø(ˆÔØ×ÑÐ$Ü .Ó 0ˆDÕð %r$   c                 ó:   — | j                   › d| j                  › d�S )Nú(ú))r)   r+   ©r2   s    r"   Ú__repr__zEndpoint.__repr__k   s    € Ø×'Ñ'Ð(¨¨$¯)©)¨°AÐ6Ð6r$   c                 ó8   — | j                   j                  «        y r(   )r1   Úcloser:   s    r"   r=   zEndpoint.closen   s   € Ø×Ñ×ÑÕ!r$   c                 óT   — t         j                  d||«       | j                  ||«      S )Nz%Making request for %s with params: %s)ÚloggerÚdebugÚ_send_request)r2   r   Úrequest_dicts      r"   Úmake_requestzEndpoint.make_requestq   s,   € Ü�‰Ø3ØØô	
ð
 ×!Ñ! ,°Ó@Ð@r$   c                 óJ  — t        |«      }|r„t        |j                  |j                  g«      |_        |j
                  j                  j                  «       }d|› d|j                  › �}| j                  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Ñ8Ø#×;Ñ;ðó%ˆGÔ!ð )×6Ñ6×AÑA×KÑKÓMˆJØ+¨J¨<°q¸×9MÑ9MÐ8NÐOˆJØ×Ñ×$Ñ$ØØØ.×3Ñ3ð %ô ð
  ×/Ñ/°Ó8ÐØÐr$   c                 ó~   — |j                  «       D ]*  \  }}t        |t        «      sŒ|j                  d«      ||<   Œ, y )Nzutf-8)ÚitemsÚ
isinstanceÚstrÚencode)r2   r   ÚkeyÚvalues       r"   Ú_encode_headerszEndpoint._encode_headersŒ   s7   € à!Ÿ-™-›/ò 	5‰JˆC�Ü˜%¤Õ%Ø$Ÿ|™|¨GÓ4�˜’ñ	5r$   c                 óX   — | j                  |j                  «       |j                  «       S r(   )rY   r   Úprepare©r2   rF   s     r"   rM   zEndpoint.prepare_request’   s!   € Ø×Ñ˜WŸ_™_Ô-Ø�‰Ó Ð r$   c                 óº   — t        «       }t        j                  j                  |d«      }||z
  }|t        j                  |¬«      z   |z   }|j	                  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–   sj   € ô /Ó0ˆÜ"×+Ñ+×4Ñ4ØÐ3ó
ˆð )Ð+FÑFˆàÜ× Ñ ¨Ô6ñ7àñð 	ð
 �|‰|Ð,Ó-Ð-r$   c                 óü   — |d   j                   j                  d«      }|j                  d«      }|r%|s"	 t        «       }| j                  |||«      |d<   y y y # t        $ r t
        j                  dd¬«       Y y w xY w)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ÐØ-×1Ñ1Ð2GÓHÐÙÑ(;ðÜ.BÓ.DÐ+Ø)-×)<Ñ)<Ø/Ø(Ø ó*� Ò&ð )<Ðøô ò Ü—‘ØOØ!ð ö ðús   µ A Á A;Á:A;c                 óÄ   — |j                  di «      }||d<   d|vr t        t        j                  «       «      |d<   |r#|d   j                  }| j                  |||«       y y )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¶   sd   € Ø!×,Ñ,¨Y¸Ó;ˆØ%,ˆ˜	Ñ"Ø /Ñ1Ü/2´4·:±:³<Ó/@ˆO˜OÑ,áØ" ?Ñ3×@Ñ@ˆLØ�M‰M˜/¨<Ð9IÕJð r$   c                 ó¸  — d}|d   }| j                  ||«       | j                  ||«      }| j                  |||«      \  }}| j                  |||||«      rf|dz  }| j                  |||«       |j	                  «        | j                  ||«      }| j                  |||«      \  }}| j                  |||||«      rŒf|�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À   s5  € ØˆØ˜yÑ)ˆØ×$Ñ$ W¨hÔ7Ø×%Ñ% l°OÓDˆØ&*×&8Ñ&8Ø�_ gó'
Ñ#Ð˜)ð ×ÑØØØØØô
ð ˜‰MˆHØ×(Ñ(¨°(Ð<LÔMð
 × Ñ Ô"à×)Ñ)¨,¸ÓHˆGØ*.×*<Ñ*<Ø˜¨'ó+Ñ'Ð˜ið! ×ÑØØØØØõ
ð( Ð(Ø"Ð&6°qÑ&9Ñ9ð % q™LˆMàð ˜QÑÐ 2Ñ3°OÑDð Ð ØˆOà#Ð#r$   c                 ó  — | j                  |||«      \  }}d d ||dœ}|�|\  }}||d<   t        ||«      |d<   |j                  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Ñ2×=Ñ=×GÑGÓIˆ
Ø ˆ×Ñ× Ñ Ø   ¨A¨o×.BÑ.BÐ-CÐDñ	
àò	
ð   Ð*Ð*r$   c           	      ót  — 	 t         j                  d|«       t        j                  d|j                  |j
                  |j                  |j                  |j                  dœ«       |j                  j                  j                  «       }d|› d|j                  › �}| j                  j                  ||¬«      }t        |«      }|€| j!                  |«      }t'        ||«      }	t)        ||	||«       |	j+                  «       }
|j,                  |
d
<   t        j                  d|
«       |j                  j.                  }i }| j                  j                  d|› d|j                  › �||	|¬«       | j0                  j3                  |«      }|j5                  |	|j6                  «      }|j9                  |«       |j:                  dk\  r| j=                  |	|||«       t        j                  d|«       ||fd fS # t"        $ r}d |fcY d }~S d }~wt$        $ r%}t         j                  dd¬	«       d |fcY d }~S d }~ww xY w)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  sD  € ð	Ü�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°ÀWÐ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G4 Ç4	H7Ç=HÈ H7ÈH7ÈH2È,H7È2H7c                 óÒ   — |j                  di «      j                  d«      }|€y |j                  }|j                  |«      }|€y |j                  ||«      }|j	                  |«       y )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  sl   € ð %×(Ñ(¨°"Ó5×9Ñ9¸&ÓAˆ
ØÐØØ'×5Ñ5ˆØ#×8Ñ8¸ÓDˆØÐØØŸ™ ]°KÓ@ˆà×Ñ˜}Õ-r$   c           	      ó&  — |j                   j                  j                  «       }d|› d|j                  › �}| j                  j                  ||| ||||¬«      }t        |«      }	|	€yt        j                  d|	«       t        j                  |	«       y)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Ñ2×=Ñ=×GÑGÓIˆ
Ø# J <¨q°×1EÑ1EÐ0FÐGˆ
Ø×'Ñ'×,Ñ,ØØØØ%ØØ-Ø%ð -ó 
ˆ	ô 3°9Ó=ÐØÐ#Øô �L‰LØEØ ôô �J‰JÐ'Ô(Ør$   c                 ó8   — | j                   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   sm   „ ñð !%Øó1ò&7ò"òAó ò&5ò!ò.òó"Kò'$òR+ò8E6òN.ð. Øóó@/r$   r&   c            	       ó8   — e Zd Zd„ Zddeeeddddf	d„Zd„ Zd„ Z	y)ÚEndpointCreatorc                 ó   — || _         y r(   )r*   )r2   r4   s     r"   r6   zEndpointCreator.__init__ƒ  s
   € Ø+ˆÕr$   Nc           	      ó&  — t        |«      st        |«      st        d|› �«      ‚|	€| j                  |«      }	|j                  }t
        j                  d||«        |||	| j                  |«      ||
||¬«      }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©   € ô %Øô
ä,¨\Ô:ÜÐ1°,°Ð@ÓAÐAàˆ?Ø×'Ñ'¨Ó5ˆGØ'×7Ñ7ˆä�‰Ð/°À'ÔJÙ'ØØØ×)Ñ)¨&Ó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                  j                  dd«      S )NÚREQUESTS_CA_BUNDLET)ÚosÚenvironr   )r2   r¾   s     r"   rÅ   z!EndpointCreator._get_verify_value¶  s'   € ð ÐØˆMô �z‰z�~‰~Ð2°DÓ9Ð9r$   )
r³   r´   rµ   r6   ÚDEFAULT_TIMEOUTÚMAX_POOL_CONNECTIONSr
   rÉ   rÄ   rÅ   r·   r$   r"   r¹   r¹   ‚  s4   „ ò,ð Ø $ØØ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Ý 0Ý /Ý 8Ý 2Ý 6Ý /Ý +÷ñ ð 
ˆ×	Ñ	˜8Ó	$€Ù.Ó0Ð Ø€ØÐ ò÷Dr/ñ r/÷j	?:ò ?:r$   