
    ]j                        d Z 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mZ dd	lmZmZmZ  ej2                  e      Zd
dgZg dZdZdZdZ dZ! G d d      Z" G d d      Z# G d de$e#      Z%y)zInternal module to help with normalizing botocore client args.

This module (and all function/classes within this module) should be
considered internal, and *not* a public API.

    N)Config)EndpointCreator)EndpointResolverBuiltins)EndpointRulesetResolver)RequestSigner)UserAgentStringregister_feature_id)$PRIORITY_ORDERED_SUPPORTED_PROTOCOLSensure_booleanis_s3_accelerate_urllegacyregional)zap-northeast-1z
ap-south-1zap-southeast-1zap-southeast-2
aws-globalzca-central-1zeu-central-1z
eu-north-1z	eu-west-1z	eu-west-2z	eu-west-3z	sa-east-1	us-east-1z	us-east-2z	us-west-1z	us-west-22   )when_supportedwhen_required)	preferreddisabledrequiredc                       e Zd Z	 d(dZ	 	 	 d)dZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd(dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(y)*ClientArgsCreatorNc                     || _         || _        || _        || _        || _        |t        j                         | _        y || _        y N)_event_emitter_response_parser_factory_loader_exceptions_factory_config_storer   from_environment_session_ua_creator)selfevent_emitter
user_agentresponse_parser_factoryloaderexceptions_factoryconfig_storeuser_agent_creators           7/root/env/lib/python3.12/site-packages/botocore/args.py__init__zClientArgsCreator.__init__V   sJ     ,(?%#5 )%'6'G'G'ID$'9D$    c                 <   | j                  |||	||||      }|d   }|d   }|d   }|d   }|d   }|d   }|d   j                  dd       }|d	   }|d
   }|d   }|d   }|d   }|d   }|d   }t        j                  | j                        }t	        |j
                  ||d   |d   |||
      }||d<   t        di |}t        |      }|j                  |||d   || j                  |j                  |j                  |j                  |j                  f||j                  |j                        } d| }!dt         j"                  j$                  i}"|j'                  |!|||"       t         j"                  j)                  |||"d         }#t         j*                  j-                  |      }$| j/                  |||||||| ||	|||||      }%| j0                  j3                  |      }&|r|j4                  nd }'|'|_        |#| |$|||| j8                  ||| j:                  |%|&dS )Nservice_nameparameter_validationendpoint_configprotocolconfig_kwargs	s3_configmetadata	partitionsocket_optionsconfigured_endpoint_urlsigning_regionregion_nameaccount_id_endpoint_modes3_disable_express_session_authauth_scheme_preferencesigning_namesignature_versions3endpoint_url)
r9   r@   verifyr%   max_pool_connectionsproxiestimeoutr6   client_certproxies_configzcreating-serializer.timestamp_precision)protocol_nameservice_modelserializer_kwargs)rG   )
serializerendpointresponse_parserr#   request_signerrI   r&   client_configr5   r'   endpoint_ruleset_resolverr)    )compute_client_argsgetcopyr   r   
service_idr   r   create_endpointr   rB   rC   connect_timeoutread_timeoutrE   rF   botocore	serializeTIMESTAMP_PRECISION_DEFAULTemitcreate_serializerparserscreate_parser_build_endpoint_resolverr!   with_client_configr$   _supplied_user_agentr   r   )(r"   rI   r9   	is_securer@   rA   credentialsscoped_configrO   endpoint_bridge
auth_tokenendpoints_ruleset_datapartition_data
final_argsr.   r/   r0   r1   r2   r3   r5   r6   r7   r8   endpoint_region_namer:   r;   r<   r#   signer
new_configendpoint_creatorrL   
event_namerJ   rK   rM   ruleset_resolverclient_ua_creatorsupplied_uas(                                           r*   get_client_argsz!ClientArgsCreator.get_client_argsj   s    --

 ".1)*@A$%67j)"?3{+	#J/33KF	#$45",-F"G()9:.}=#01K#L *7-+
' "//G!H		$"5"56$$N+/0
 (d,m,
*=9#33,(8$($A$A!+!@!@&&//1H1HI)"..%44 4 
 ,L>:
!8#5#5#Q#Q
 	"'/	 	 	
 ''99  12G H : 


 #**88B88" #$+"
& !44GG
 3@m..T*5
' % .*$*ll'""&":":)9"3
 	
r,   c                 R   |j                   }|j                  }	d}
|r|j                  sd}
n |r|j                  d      }|t	        |      }
| j                  |      }| j                  ||      }|t        d       | j                  ||||||      }|d   j                  dg       }| j                  j                  |      j                         }t        |d	   |d
   |      }d|v r|j                  d       d|v r|j                  d       |
|j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  |j0                  |j2                  |j4                  |j6                  |j8                  |j:                  |j<                  |j>                  |j@                  |jB                  |jB                  j                  d      nd        | jE                  |       | jG                  |       | jI                  |       | jK                  |       | jM                  |       | jO                  |       | jQ                  |       | jS                  ||       | jU                  ||       | jW                  ||       | jY                  |       | j                  |      }| j[                  |      }|rd|v r	|i }d|d<   ||
|||	||| j]                  ||      dS )NTFr/   )rO   r@   ENDPOINT_OVERRIDE)r.   r9   r@   rc   rf   r3   r4   tagsr9   r>   )r9   r>   r$   	dualstack)use_dualstack_endpointfips)use_fips_endpointdisable_s3_express_session_auth)rW   rX   rB   rC   rF   retriesrE   inject_host_prefixtcp_keepaliveuser_agent_extrauser_agent_appid"request_min_compression_size_bytesdisable_request_compressionclient_context_paramssigv4a_signing_region_setrequest_checksum_calculationresponse_checksum_validationr:   r<   r;   rx   )r.   r/   r7   r0   r1   r2   r3   r6   )/endpoint_prefixresolved_protocolr/   rS   r   compute_s3_config _compute_configured_endpoint_urlr	   _compute_endpoint_configr!   ra   	to_stringdictupdaterW   rX   rB   rC   rF   r|   rE   r}   r~   r   r   r   r   r   r   r   r   r:   r<   r?   _compute_retry_config_compute_connect_timeout _compute_user_agent_appid_config#_compute_request_compression_config)_compute_sigv4a_signing_region_set_config_compute_checksum_config(_compute_account_id_endpoint_mode_config_compute_inject_host_prefix&_compute_auth_scheme_preference_config!_compute_signature_version_config(_compute_s3_disable_express_session_auth_is_s3_service_compute_socket_options)r"   rI   rO   rf   r9   r@   rc   re   r.   r1   r/   	raw_valuer3   r7   r0   endpoint_variant_tagspreliminary_ua_stringr2   is_s3_services                      r*   rR   z%ClientArgsCreator.compute_client_args   s`    %44 22#!C!C#( %))*@AI$'5i'@$**=9	"&"G"G'% #H #
 #. 3477%#0+ 8 
 !0
 ; ? ? K !% 8 8 K K!

)+ 	 '6-.AB,

 //   =**  4 8$   - = =*77%2%G%G%--,;;%--)55#0#C#C+99!.!?!?!.!?!?!DD "==&3&I&I!;; ">> ">>)6)O)O'4'K'K %''3 "$$(()JKC ! #H 	""=1%%m4--m<00?66}E%%m455mD((F33=	
 	..}mL55mD**=9	++L9[,AA 	26I./ )$8'>. *""::}
 	
r,   c                 z    ||j                   dk(  r*| j                  j                  d      }|| |d<   y d|d<   y y )NUNSETdisable_host_prefix_injectionr}   T)_inject_host_prefixr   get_config_variable)r"   rO   r2   (configured_disable_host_prefix_injections       r*   r   z-ClientArgsCreator._compute_inject_host_prefixp  sf     !00G; ""663 5
 8C A@ ( 7;23 <r,   c                     ||S | j                  |      rt        j                  d       |S | j                  j	                  d      S )Nz"Ignoring configured endpoint URLs.r@   ) _ignore_configured_endpoint_urlsloggerdebugr   r   )r"   rO   r@   s      r*   r   z2ClientArgsCreator._compute_configured_endpoint_url  sF    #00?LL=>!!55nEEr,   c                 l    |r|j                   |j                   S | j                  j                  d      S )Nignore_configured_endpoint_urls)r   r   r   )r"   rO   s     r*   r   z2ClientArgsCreator._ignore_configured_endpoint_urls  s9    ==I @@@!!55-
 	
r,   c                     | j                   j                  d      }|G|j                  ;||j                  }|S |j                         }|j	                  |j                         |S )Nr?   )r   r   r?   rT   r   )r"   rO   s3_configurations      r*   r   z#ClientArgsCreator.compute_s3_config  sr    --AA$G $+#+'4'7'7$   (8'<'<'>$$++M,<,<=r,   c                 
    |dv S )a,  Whether the service is S3 or S3 Control.

        Note that throughout this class, service_name refers to the endpoint
        prefix, not the folder name of the service in botocore/data. For
        S3 Control, the folder name is 's3control' but the endpoint prefix is
        's3-control'.
        )r?   z
s3-controlrQ   )r"   r.   s     r*   r   z ClientArgsCreator._is_s3_service  s     333r,   c                     |||||d}|dk(  r | j                   dd|i|S |dk(  r | j                  di |S  | j                  di |S )N)r.   r9   r@   rc   rf   r?   r3   stsrQ   )_compute_s3_endpoint_config_compute_sts_endpoint_config_resolve_endpoint)r"   r.   r9   r@   rc   rf   r3   resolve_endpoint_kwargss           r*   r   z*ClientArgsCreator._compute_endpoint_config  s     )&(".#
 43433 #'>  5 4444O7NOO%t%%@(?@@r,   c                     | j                  |d   |      }|rd |d<    | j                  di |}| j                  ||d          |r|d   dk(  rd|d<   |S )Nr9   rf   r   r   rQ   )_should_force_s3_globalr   !_set_region_if_custom_s3_endpoint)r"   r3   r   force_s3_globalr0   s        r*   r   z-ClientArgsCreator._compute_s3_endpoint_config  s     66#M2I
 59#M20$00K3JK..45FG	
 }=M-8OM*r,   c                 X    d}|rd|v r|d   }| j                  |       |dv }|dk(  xr |S )Nr   us_east_1_regional_endpoint)r   N)_validate_s3_regional_config)r"   r9   r3   s3_regional_configis_global_regions        r*   r   z)ClientArgsCreator._should_force_s3_global  sK    %6)C!*+H!I--.@A&*==!X-B2BBr,   c                 T    |t         vr t        j                  j                  |      y )N)%s3_us_east_1_regional_endpoint_config)VALID_REGIONAL_ENDPOINTS_CONFIGrY   
exceptions+InvalidS3UsEast1RegionalEndpointConfigError)r"   
config_vals     r*   r   z.ClientArgsCreator._validate_s3_regional_config  s2    <<%%QQ6@ R   =r,   c                     t        |t              xr |j                         dv }t        |t              s'|s$t        j
                  j                  d| d      y y )N)truefalseInvalid value "z>" for s3_disable_express_session_auth. Value must be a boolean	error_msg)
isinstancestrlowerboolrY   r   InvalidConfigError)r"   r   string_bools      r*   )_validate_s3_disable_express_session_authz;ClientArgsCreator._validate_s3_disable_express_session_auth  sq     S1 
j6F6F6H M
 7
 *d+K%%88%j\ 2O O 9   5@+r,   c                 ^    |d   (|d   "|j                  d      }|d   |d<   |d   |d<   y y y )Nr8   r9   r?   resolve)r"   r0   rf   rL   s       r*   r   z3ClientArgsCreator._set_region_if_custom_s3_endpoint  sU     ,-5.6&..t4H089I0JO,--5m-DOM*	 7 6r,   c                      | j                   di |}| j                  |d   |d   |      r| j                  ||d          |S )Nr9   r@   rc   rQ   )r   _should_set_global_sts_endpoint_set_global_sts_endpoint)r"   r   r0   s      r*   r   z.ClientArgsCreator._compute_sts_endpoint_config  s\    0$00K3JK//#M2#N3

 ))!8!E r,   c                     |xr! |j                  di       j                  d      }|s|ry| j                         dk(  xr |t        v S )Nr4   rv   Fr   )rS   "_get_sts_regional_endpoints_configLEGACY_GLOBAL_STS_REGIONS)r"   r9   r@   r0   has_variant_tagss        r*   r   z1ClientArgsCreator._should_set_global_sts_endpoint  s[     + /B/B0

#f+ 	 +335A 988	
r,   c                     | j                   j                  d      }|sd}|t        vr t        j                  j                  |      |S )Nsts_regional_endpointsr   )sts_regional_endpoints_config)r   r   r   rY   r   &InvalidSTSRegionalEndpointsConfigError)r"   r   s     r*   r   z4ClientArgsCreator._get_sts_regional_endpoints_config%  s^    (,(:(:(N(N$)
% -,6))23 %%LL.K M   -,r,   c                 *    |rdnd}| d|d<   d|d<   y )Nhttpshttpz://sts.amazonaws.comr@   r   r8   rQ   )r"   r0   rc   schemes       r*   r   z*ClientArgsCreator._set_global_sts_endpoint4  s(    %6-3H4H*I',7()r,   c                 *    |j                  ||||      S r   r   )r"   r.   r9   r@   rc   rf   s         r*   r   z#ClientArgsCreator._resolve_endpoint9  s      &&+|Y
 	
r,   c                    t         j                  t         j                  dfg}|xr |j                  }|| j                  j                  d      }|r0|j                  t         j                  t         j                  df       |S )N   r~   )	socketIPPROTO_TCPTCP_NODELAYr~   r   r   append
SOL_SOCKETSO_KEEPALIVE)r"   re   rO   r6   client_keepalives        r*   r   z)ClientArgsCreator._compute_socket_optionsE  s|     "--v/A/A1EF(H]-H-H##11EE  !!6#4#4f6I6I1"MNr,   c                 H    | j                  |       | j                  |       y r   )_compute_retry_max_attempts_compute_retry_moder"   r2   s     r*   r   z'ClientArgsCreator._compute_retry_configT  s    ((7  /r,   c                     |j                  d      }|5d|v r|j                  dd        y d|v r|j                  d      }|dz   |d<   y | j                  j                  d      }||i }||d<   ||d<   y y )Nr|   total_max_attemptsmax_attemptsr   )rS   popr   r   )r"   r2   r|   valuer   s        r*   r   z-ClientArgsCreator._compute_retry_max_attemptsX  s      ##I.#w.ND1(N3 16	,- ))==nM#+2i(,8G()	 $r,   c                     |j                  d      }|i }||d<   nd|v ry | j                  j                  d      }|d}||d<   y )Nr|   mode
retry_moder   rS   r   r   )r"   r2   r|   r   s       r*   r   z%ClientArgsCreator._compute_retry_modex  s]    ##I.?G'.M)$w '';;LI
!J$r,   c                 r    |j                  d      }|y | j                  j                  d      }|r||d<   y y )NrW   r   )r"   r2   rW   s      r*   r   z*ClientArgsCreator._compute_connect_timeout  sL     (++,=>&,,@@
 />M+, r,   c                 
   |j                  d      }|j                  d      }|| j                  j                  d      }| j                  |      }||d<   || j                  j                  d      }nt	        |      }||d<   y )Nr   r   )rS   r   r   _validate_min_compression_sizer   )r"   r2   min_sizer   s       r*   r   z5ClientArgsCreator._compute_request_compression_config  s     $$%IJ $$%BC))==4H 66x@>F:;))==-H
 &h/H7?34r,   c                     |j                  d      }|| j                  j                  d      }|| j                  |       t	        |      |d<   y )Nr;   )rS   r   r   r   r   )r"   r2   disable_expresss      r*   r   z:ClientArgsCreator._compute_s3_disable_express_session_auth  s[    '++,MN""00DD1O
 &::?K;I<
78r,   c                 *   d}d}d| d}	 t        |      }||cxk  r|k  s-n | d| d	| d
}t        j
                  j                  |      |S # t        t        f$ r2 | dt        |       d}t        j
                  j                  |      w xY w)Nr   i   r   z)" for request_min_compression_size_bytes.z$ Value must be an integer. Received z	 instead.r   z Value must be between z and .)int
ValueError	TypeErrortyperY   r   r   )r"   r   min_allowed_min_sizemax_allowed_min_sizeerror_msg_basemsgs         r*   r   z0ClientArgsCreator._validate_min_compression_size  s     &hZ (2 2 		H8}H $xG3GG!""9'(.B-C1F  %%8838GG I& 	H!" # N+96  %%8838GG	Hs   A ABc                 L    t        |t              r|S |j                         dk(  S )Nr   )r   r   r   )r"   vals     r*   _ensure_booleanz!ClientArgsCreator._ensure_boolean  s"    c4 J99;&((r,   c                 l   |y | j                  |      xs i }|j                  }|dv s||}n|}| j                  ||||
||j                  |||	      }||j                  xs i }ni }| j                  |      r|j                  |       |||d<   ||j                  nd }t        |||||||	||	      S )N)r?   r   )	r9   r.   r3   rf   client_endpoint_urllegacy_endpoint_urlrd   r:   r;   r{   )	endpoint_ruleset_datari   rI   builtinsclient_contextr#   use_sslrequested_auth_schemer<   )	r   r   *compute_endpoint_resolver_builtin_defaultshostr   r   r   r>   r   )r"   rh   ri   rO   rI   rk   r9   r@   rL   rc   rf   r#   rd   r:   r;   r<   s3_config_rawservice_name_raweprv2_region_nameresolver_builtinsr  sig_versions                         r*   r`   z*ClientArgsCreator._build_endpoint_resolver  s   $ ") ..}=C(88 },0C 4 + KK))#+ , (#%=,K L 

 $*@@FBNN/0!!-0.:3 @A ( ++ 	
 '"8)'&)'"-#9

 
	
r,   c
                    |r|}
n|j                         s|}
nd }
|j                  dd      rd}n6| t        |      s|j                  d      dk7  }n|j                  d      dk(  }t        j                  |t        j
                  |
d u xr |j                  d      xs dt        j                  |
d u xr |j                  |      xs dt        j                  | j                  |d d       t        j                  | j                  ||      t        j                  |j                  dd      t        j                  |t        j                  |j                  dd	      t        j                   |j                  dd      t        j"                  |j                  d
d      t        j$                  |	t        j&                  |
t        j(                  |r|j+                  d      nd t        j,                  |iS )Nuse_accelerate_endpointFaddressing_stylevirtualpathrz   )r9   r@   r0   use_arn_regionT$s3_disable_multiregion_access_points
account_id)resolver_uses_builtin_datarS   r   EPRBuiltins
AWS_REGIONAWS_USE_FIPS$_resolve_endpoint_variant_config_varAWS_USE_DUALSTACK_resolve_use_dualstack_endpointAWS_STS_USE_GLOBAL_ENDPOINTr   AWS_S3_USE_GLOBAL_ENDPOINTr   AWS_S3_ACCELERATEAWS_S3_FORCE_PATH_STYLEAWS_S3_USE_ARN_REGIONAWS_S3CONTROL_USE_ARN_REGIONAWS_S3_DISABLE_MRAP#AWS_S3_DISABLE_EXPRESS_SESSION_AUTHSDK_ENDPOINT
ACCOUNT_IDget_deferred_propertyACCOUNT_ID_ENDPOINT_MODE)r"   r9   r.   r3   rf   r  r  rd   r:   r;   given_endpointforce_path_styles               r*   r  z<ClientArgsCreator.compute_endpoint_resolver_builtin_defaults!  s    0N !;;=0N!N ==2E:$ ,5I6
  )}}-?@IM(}}-?@FJ ""K$$$&  $HH' ))$&  $CC  3344 +!%$( 5  22,,[)D))9==)5, //1A--y}} $0 44imm %7 ++Y]]6. ;;/$$n""  %0$E$E% 002Jm7
 7	
r,   c                     |j                  d      }|| j                  j                  d      }|,t        |      t        kD  rt
        j                  dt               ||d<   y )Nr   zVThe configured value for user_agent_appid exceeds the maximum length of %d characters.)rS   r   r   lenUSERAGENT_APPID_MAXLENr   warning)r"   r2   r   s      r*   r   z2ClientArgsCreator._compute_user_agent_appid_config  sl    (,,-?@##11EE"  ($%(>>NN3&
 -=()r,   c                 j    |j                  d      }|| j                  j                  d      }||d<   y )Nr   r   )r"   r2   r   s      r*   r   z;ClientArgsCreator._compute_sigv4a_signing_region_set_config  sF    $1$5$5'%
! %,(,(:(:(N(N+)% 6O12r,   c                 d    | j                  |dt               | j                  |dt               y )Nr   )
config_keyvalid_optionsr   )_handle_checksum_config)VALID_REQUEST_CHECKSUM_CALCULATION_CONFIG)VALID_RESPONSE_CHECKSUM_VALIDATION_CONFIGr   s     r*   r   z*ClientArgsCreator._compute_checksum_config  s<    $$5C 	% 	

 	$$5C 	% 	
r,   c                    |j                  |      }|| j                  j                  |      }t        |t              r|j                         }||vr"t        j                  j                  |||      | j                  ||       |||<   y )N)r?  config_valuer@  )
rS   r   r   r   r   r   rY   r   InvalidChecksumConfigError%_register_checksum_config_feature_ids)r"   r2   r?  r@  r   s        r*   rA  z)ClientArgsCreator._handle_checksum_config  s     !!*-=&&:::FEeS!KKME%%%@@%"+ A  
 	225*E$)j!r,   c                     d }|dk(  rd|j                          }n|dk(  rd|j                          }|t        |       y y )Nr   FLEXIBLE_CHECKSUMS_REQ_r   FLEXIBLE_CHECKSUMS_RES_)upperr	   )r"   r   r?  checksum_config_feature_ids       r*   rG  z7ClientArgsCreator._register_checksum_config_feature_ids  s\    %)"77)%++-9 ' 99)%++-9 ' &1 :; 2r,   c           	      l   d}|j                  d      }|t        j                  u rd||<   y |j                  |      }|| j                  j	                  |      }t        |t              r|j                         }|t        vr.t        j                  j                  d| d| dt         d      |||<   y )	Nr:   r>   r   zThe configured value 'z' for 'z ' is invalid. Valid values are: r  r   )rS   rY   UNSIGNEDr   r   r   r   r   %VALID_ACCOUNT_ID_ENDPOINT_MODE_CONFIGr   r   )r"   r2   r?  r>   r:   s        r*   r   z:ClientArgsCreator._compute_account_id_endpoint_mode_config  s    /
 *--.AB 1 11(2M*%#0#4#4Z#@ #+'+'9'9'M'M($ .4'?'E'E'G$ %89 %%8823K2LGT^S_ `..S-TTUW 9  
 %=j!r,   c                    d}d}|r|j                   r|j                   }d}n| j                  j                  |      }|d ||<   y t        |t              s2t
        j                  j                  | dt        |       d| d      dj                  d	 |j                  d      D              }|rt        |      }|||<   y )
Nr<   FTz, must be a comma-delimited string. Received z
 instead: r  r   ,c              3      K   | ]6  }|j                         r$|j                  d d      j                  dd       8 yw)  	N)stripreplace).0items     r*   	<genexpr>zKClientArgsCreator._compute_auth_scheme_preference_config.<locals>.<genexpr>  s9      
zz| LLb!))$3
s   <>)r<   r   r   r   r   rY   r   r   r  joinsplitClientConfigString)r"   rO   r2   r?  set_in_config_objectr   s         r*   r   z8ClientArgsCreator._compute_auth_scheme_preference_config  s     .
$]AA!88E#' &&:::FE=(,M*%%%%%88!l #  $U}JugQ@ 9    
C(
 
  &u-E$)j!r,   c                 z    |r9|j                   r,|j                   }t        |t              rt        |      |d<   y y y y )Nr>   )r>   r   r   r]  )r"   rO   r2   r   s       r*   r   z3ClientArgsCreator._compute_signature_version_config  s>    ]<<!33E%%5G5N12 & ==r,   r   )NNN))__name__
__module____qualname__r+   rs   rR   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r`   r  r   r   r   rA  rG  r   r   r   rQ   r,   r*   r   r   U   s      :> #@
DB
H;&F	
 &4A0*CE

-8


09@%?@,
0)J
X^
@="O

*,<=<!*FOr,   r   c                       e Zd ZdZy)ConfigObjectWrapperz8Base class to mark values set via in-code Config object.N)r`  ra  rb  __doc__rQ   r,   r*   rd  rd    s    Br,   rd  c                         e Zd Zd fd	Z xZS )r]  c                 $    t         |   | |      S r   )super__new__)clsr   	__class__s     r*   ri  zClientConfigString.__new__  s    wsE**r,   r   )r`  ra  rb  ri  __classcell__)rk  s   @r*   r]  r]    s    + +r,   r]  )&re  rT   loggingr   botocore.exceptionsrY   botocore.parsersbotocore.serializebotocore.configr   botocore.endpointr   botocore.regionsr   r%  r   botocore.signersr   botocore.useragentr   r	   botocore.utilsr
   r   r   	getLoggerr`  r   r   r   r;  rB  rC  rO  r   rd  r   r]  rQ   r,   r*   <module>rx     s          " - D 4 * C  
		8	$ #  (  - )- )) %{O {O|	 	+1 +r,   