
    [Th                       d dl Z d dlZd dlmZmZ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 ddlmZmZ  ej0                  d      Z	 dgdeeeef   ef   deeeef      deeef   fdZ	 dgdeeeef   ef   deeeef      deeef   fdZ	 dgdeeeef   ef   deeeef      deeef   fdZ	 dgdeeeef   ef   deeeef      deeef   fdZ 	 dgdeeeef   ef   deeeef      deeef   fdZ!	 dgdeeeef   ef   deeeef      deeef   fdZ"	 dgdeeeef   ef   deeeef      deeef   fdZ#	 dgdeeeef   ef   deeeef      deeef   fdZ$	 dgdeeeef   ef   deeeef      deeef   fdZ%	 dgdeeeef   ef   deeeef      deeef   fdZ&	 dgdeeeef   ef   deeeef      deeef   fdZ'	 dgdeeeef   ef   deeeef      deeef   fdZ(	 dgdeeeef   ef   deeeef      deeef   fdZ)	 dgdeeeef   ef   deeeef      deeef   fdZ*	 dgdeeeef   ef   deeeef      deeef   fd Z+	 dgdeeeef   ef   deeeef      deeef   fd!Z,	 dgdeeeef   ef   deeeef      deeef   fd"Z-	 dgdeeeef   ef   deeeef      deeef   fd#Z.	 dgdeeeef   ef   deeeef      deeef   fd$Z/	 dgdeeeef   ef   deeeef      deeef   fd%Z0	 dgdeeeef   ef   deeeef      deeef   fd&Z1	 dgdeeeef   ef   deeeef      deeef   fd'Z2	 dgdeeeef   ef   deeeef      deeef   fd(Z3	 dgdeeeef   ef   deeeef      deeef   fd)Z4	 dgdeeeef   ef   deeeef      deeef   fd*Z5	 dgdeeeef   ef   deeeef      deeef   fd+Z6	 dgd,edeeeef   ef   deeeef      deeef   fd-Z7	 dgd,edeeeef   ef   deeeef      deeef   fd.Z8	 dgd,edeeeef   ef   deeeef      deeef   fd/Z9	 dgdeeeef   ef   deeeef      deeef   fd0Z:	 dgd,edeeeef   ef   deeeef      deeef   fd1Z;	 dgdeeeef   ef   deeeef      deeef   fd2Z<	 dgd,edeeeef   ef   deeeef      deeef   fd3Z=	 dgd,edeeeef   ef   deeeef      deeef   fd4Z>	 dgdeeeef   ef   deeeef      deeef   fd5Z?	 dgd,edeeeef   ef   deeeef      deeef   fd6Z@	 dgd,edeeeef   ef   deeeef      deeef   fd7ZA	 dgd,edeeeef   ef   deeeef      deeef   fd8ZB	 dgdeeeef   ef   deeeef      deeef   fd9ZC	 dgdeeeef   ef   deeeef      deeef   fd:ZD	 dgd,edeeeef   ef   deeeef      deeef   fd;ZE	 dgdeeeef   ef   deeeef      deeef   fd<ZF	 dgdeeeef   ef   deeeef      deeef   fd=ZG	 dgdeeeef   ef   deeeef      deeef   fd>ZH	 dgd,edeeeef   ef   deeeef      deeef   fd?ZI	 dgd,edeeeef   ef   deeeef      deeef   fd@ZJ	 dgd,edeeeef   ef   deeeef      deeef   fdAZK	 dgdeeeef   ef   deeeef      deeef   fdBZL	 dgdeeeef   ef   deeeef      deeef   fdCZM	 dgd,edeeeef   ef   deeeef      deeef   fdDZN	 dgdeeeef   ef   deeeef      deeef   fdEZO	 dgdeeeef   ef   deeeef      deeef   fdFZP	 dgdeeeef   ef   deeeef      deeef   fdGZQ	 dgdeeeef   ef   deeeef      deeef   fdHZR	 dgdeeeef   ef   deeeef      deeef   fdIZS	 dgdeeeef   ef   deeeef      deeef   fdJZT	 dgdeeeef   ef   deeeef      deeef   fdKZU	 dgdeeeef   ef   deeeef      deeef   fdLZV	 dgdeeeef   ef   deeeef      deeef   fdMZW	 dgdeeeef   ef   deeeef      deeef   fdNZX	 dgdeeeef   ef   deeeef      deeef   fdOZY	 dgdeeeef   ef   deeeef      deeef   fdPZZ	 dgdeeeef   ef   deeeef      deeef   fdQZ[	 dgdeeeef   ef   deeeef      deeef   fdRZ\	 dgdeeeef   ef   deeeef      deeef   fdSZ]	 dgdeeeef   ef   deeeef      deeef   fdTZ^	 dgdeeeef   ef   deeeef      deeef   fdUZ_	 dgdeeeef   ef   deeeef      deeef   fdVZ`	 dgdeeeef   ef   deeeef      deeef   fdWZa	 dgdeeeef   ef   deeeef      deeef   fdXZb	 dgdeeeef   ef   deeeef      deeef   fdYZc	 dgdeeeef   ef   deeeef      deeef   fdZZd	 dgdeeeef   ef   deeeef      deeef   fd[Ze	 dgdeeeef   ef   deeeef      deeef   fd\Zf	 dgdeeeef   ef   deeeef      deeef   fd]Zg	 dgdeeeef   ef   deeeef      deeef   fd^Zh G d_ d`e	j                        Zj G da dbe	j                        Zkdceddej                  demeeeef   f   fdeZndceddej                  demeeeef   f   fdfZpy)h    N)AnyOptionalUnion)	urlencode   )_api_module)_common)_extra_utils)_transformers)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.batchesfrom_objectparent_objectreturnc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nfps
end_offset	endOffsetstart_offsetstartOffsetgetvsetvr   r   	to_objects      Y/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/google/genai/batches.py_VideoMetadata_to_mldevr!   %   s     !)	+w+UGT+w78	+~&2[M4l^#DE	+'(4]OT+7G%HI	    c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Ndisplay_name6display_name parameter is not supported in Gemini API.data	mime_typemimeTyper   
ValueErrorr   r   s      r    _Blob_to_mldevr+   6   sw     !)	+'(4
M
NN	+x ,VHd;9:	+}%1ZL${[M"BC	r"   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr$   r%   file_urifileUrir'   r(   r)   r   s      r    _FileData_to_mldevr/   G   sw     !)	+'(4
M
NN	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nidargsnamer   r   s      r    _FunctionCall_to_mldevr5   X        !)	+v*TFDtf56	+x ,VHd;9:	+x ,VHd;9:	r"   c           
      R   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nvideo_metadatavideoMetadatathoughtinline_data
inlineData	file_datafileDatathought_signaturethoughtSignaturefunction_callfunctionCallcode_execution_resultcodeExecutionResultexecutable_codeexecutableCodefunction_responsefunctionResponsetext)r   r   r!   r+   r/   r5   r   s      r    _Part_to_mldevrJ   i   s    !)	+()*6	/019	
 
+	{#/YKkI;!?@	+'3	tK-99E 
+}%1	4k];YG 
++,-9	[./0 
+()5	tK/1BCYO 
+/01=	[234 
+)*+7%&[;L:M(NO	++,-9	[./0 
+x ,VHd;9:	r"   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w Npartsrole)r   r   rJ   r   r   r   items       r    _Content_to_mldevrQ      s     !)	+y!-		 [7)4	
 4+	
 
+x ,VHd;9:		
   A)c                 "   i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | d	g      t        |d	gt        | d	g             t        | d
g      t        |d
gt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d g      t        |d!gt        | d g             t        | d"g      t        |d"gt        | d"g             t        | d#g      t        |d#gt        | d#g             t        | d$g      t        |d$gt        | d$g             |S )%Nadditional_propertiesz?additional_properties parameter is not supported in Gemini API.defsz.defs parameter is not supported in Gemini API.refz-ref parameter is not supported in Gemini API.any_ofanyOfdefaultdescriptionenumexampleformatitems	max_itemsmaxItems
max_length	maxLengthmax_propertiesmaxPropertiesmaximum	min_itemsminItems
min_length	minLengthmin_propertiesminPropertiesminimumnullablepattern
propertiesproperty_orderingpropertyOrderingrequiredtitletyper)   r   s      r    _Schema_to_mldevru      s    !)	+/01=
I  
+x ,
E
FF	+w+
D
EE	+z".WItK(<=	+	{#/YKkI;!?@	+'3]OT+%GH	+x ,VHd;9:	+	{#/YKkI;!?@	+z".XJ[8* =>	+y!-WItK';<	+}%1ZL${[M"BC	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+}%1ZL${[M"BC	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+
|$0ZL${ZL"AB	+	{#/YKkI;!?@	+~&2\ND|n$EF	++,-9	[./0 
+
|$0ZL${ZL"AB	+y!-WItK';<	+x ,VHd;9:	r"   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nmethodz0method parameter is not supported in Gemini API.category	thresholdr)   r   s      r    _SafetySetting_to_mldevrz     sv     !)	+z".
G
HH	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r"   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             |S )
NbehaviorrZ   r4   
parametersparameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemar   r   s      r    _FunctionDeclaration_to_mldevr   ,  s1    !)	+
|$0ZL${ZL"AB	+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	+012>	 [345 
+
|$0ZL${ZL"AB	+./0<	[123 
r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N
start_time	startTimeend_timeendTimer   r   s      r    _Interval_to_mldevr   Q  s[     !)	+~&2[M4l^#DE	+
|$0YKkJ<!@A	r"   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        d      |S )Ntime_range_filtertimeRangeFilterexclude_domainsz9exclude_domains parameter is not supported in Gemini API.)r   r   r   r*   r   s      r    _GoogleSearch_to_mldevr   _  sk     !)	++,-9	4.A-BCYO 
+)*+7
C  
r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nmodedynamic_thresholddynamicThresholdr   r   s      r     _DynamicRetrievalConfig_to_mldevr   s  sg     !)	+x ,VHd;9:	++,-9	[./0 
r"   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S )Ndynamic_retrieval_configdynamicRetrievalConfig)r   r   r   r   s      r    _GoogleSearchRetrieval_to_mldevr     sK     !)	+234@	!"(9:;Y	
 
r"   c                 
    i }|S N r   s      r    _UrlContext_to_mldevr     s     !)	r"   c                 V    i }t        | dg      t        |dgt        | dg             |S )Nenvironmentr   r   s      r    _ToolComputerUse_to_mldevr     s5     !)	+'3]OT+%GH	r"   c                    i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        d      t        | dg      #t        |dgt	        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | d	g      t        d
      t        | dg      t        d      t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S c c}w )Nfunction_declarationsfunctionDeclarations	retrievalz3retrieval parameter is not supported in Gemini API.google_searchgoogleSearchgoogle_search_retrievalgoogleSearchRetrievalenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.google_mapsz5google_maps parameter is not supported in Gemini API.url_context
urlContextcomputer_usecomputerUsecode_executioncodeExecution)r   r   r   r*   r   r   r   r   rO   s       r    _Tool_to_mldevr     s    !)	+/01=	  [+B*CD	
 *$	:	
 
+}%1
J
KK	+()5	tK/1BCYO 
+123?	 !'89:I	
 
+/01=
I  
+'3
L
MM	+'3	T+?K 
+'(4	!~./	
 
+()*6_%tK:J9K'LM	i	
s   E1c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   allowed_function_namesallowedFunctionNamesr   r   s      r    _FunctionCallingConfig_to_mldevr     sg     !)	+x ,VHd;9:	+012>	 [345 
r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nlatitude	longituder   r   s      r    _LatLng_to_mldevr     s[     !)	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r"   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nlat_lnglatLnglanguage_codelanguageCode)r   r   r   r   s      r    _RetrievalConfig_to_mldevr   
  sl     !)	+	{#/	
kI;7C 
+()5^$d;8I&JK	r"   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S )Nfunction_calling_configfunctionCallingConfigretrieval_configretrievalConfig)r   r   r   r   r   s      r    _ToolConfig_to_mldevr     s     !)	+123?	 !'89:I	
 
+*+,8	!123Y	
 
r"   c                 V    i }t        | dg      t        |dgt        | dg             |S )N
voice_name	voiceNamer   r   s      r    _PrebuiltVoiceConfig_to_mldevr   6  s5     !)	+~&2[M4l^#DE	r"   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S )Nprebuilt_voice_configprebuiltVoiceConfig)r   r   r   r   s      r    _VoiceConfig_to_mldevr   A  sK     !)	+/01=	%678)	
 
r"   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S )Nspeakervoice_configvoiceConfig)r   r   r   r   s      r    _SpeakerVoiceConfig_to_mldevr   R  sk     !)	+	{#/YKkI;!?@	+'(4	d;0@A9M 
r"   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nspeaker_voice_configsspeakerVoiceConfigs)r   r   r   rO   s       r    !_MultiSpeakerVoiceConfig_to_mldevr   d  sb     !)	+/01=	 [+B*CD	
 )y9	
 
	
   Ac           
         i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr   r   multi_speaker_voice_configmultiSpeakerVoiceConfigr   r   )r   r   r   r   r   s      r    _SpeechConfig_to_mldevr   v  s     !)	+'(4	d;0@A9M 
+456B	"#);<=y	
 
+()5^$d;8I&JK	r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Ninclude_thoughtsincludeThoughtsthinking_budgetthinkingBudgetr   r   s      r    _ThinkingConfig_to_mldevr     sl     !)	+*+,8%&[;M:N(O 
+)*+7%&[;L:M(NO	r"   
api_clientc                 b	   i }t        |dg      6t        |dgt        t        j                  t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      7t        |dgt        t        j                  | t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        d      t        |dg      t        d      t        |d g      1t        |d!gt        |d g      D cg c]  }t        ||       c}       t        |d"g      Yt        |d"gt        j                  | t        |d"g            D cg c]"  }t        t        j                  | |      |      $ c}       t        |d#g      #t        |d$gt        t        |d#g      |             t        |d%g      t        d&      t        |d'g      -t        |d(gt        j                  | t        |d'g                   t        |d)g      t        |d*gt        |d)g             t        |d+g      t        |d,gt        |d+g             t        |d-g      6t        |d.gt        t        j                  t        |d-g            |             t        |d/g      t        d0      t        |d1g      #t        |d2gt!        t        |d1g      |             |S c c}w c c}w )3Nsystem_instructionsystemInstructiontemperaturetop_ptopPtop_ktopKcandidate_countcandidateCountmax_output_tokensmaxOutputTokensstop_sequencesstopSequencesresponse_logprobsresponseLogprobslogprobspresence_penaltypresencePenaltyfrequency_penaltyfrequencyPenaltyseedresponse_mime_typeresponseMimeTyperesponse_schemaresponseSchemar   r   routing_configz8routing_config parameter is not supported in Gemini API.model_selection_configz@model_selection_config parameter is not supported in Gemini API.safety_settingssafetySettingstoolstool_config
toolConfiglabelsz0labels parameter is not supported in Gemini API.cached_contentcachedContentresponse_modalitiesresponseModalitiesmedia_resolutionmediaResolutionspeech_configspeechConfigaudio_timestampz9audio_timestamp parameter is not supported in Gemini API.thinking_configthinkingConfig)r   r   rQ   t	t_contentru   t_schemar*   rz   t_toolsr   t_toolr   t_cached_content_namer   t_speech_configr   r   r   r   r   rP   s        r    _GenerateContentConfig_to_mldevr    sk   
 !)	+,-.:	KK[+?*@ABI	
 
+'3]OT+%GH	+y!-VHd;	:;	+y!-VHd;	:;	+)*+7%&[;L:M(NO	++,-9%&[;N:O(P 
+()*6_%tK:J9K'LM	++,-9	[./0 
+
|$0ZL${ZL"AB	+*+,8%&[;M:N(O 
++,-9	[./0 
+x ,VHd;9:	+,-.:	[/01 
+)*+7	JJz46G5H#IJ	
 
+./0<	[123 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $D)4	
 
+y!-		 		*d;	.JK	
 188J5yA	
 
+'3	T+?K 
+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5	d;0ABCY	
 
+)*+7
C  
+)*+7	 012I	
 
M	
	
s   R''R,c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |ddgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      %t        |ddgt        | t        |dg      |             |S c c}w )NmodelrequestcontentsconfiggenerationConfig)r   r   r  t_model
t_contentsrQ   r  r  s        r    _InlinedRequest_to_mldevr  K  s    
 !)	+y!-	G			*d;	:; 
+
|$0	J T+
|%DE	
 dI.	
 
+z".	&''[8*5y	
 
	
s   6Cc                 p   i }t        |dg      t        d      t        |dg      t        d      t        |dg      t        d      t        |dg      t        |dgt        |dg             t        |d	g      3t        |d
d
gt        |d	g      D cg c]  }t        | ||       c}       |S c c}w )Nr]   z0format parameter is not supported in Gemini API.gcs_uriz1gcs_uri parameter is not supported in Gemini API.bigquery_uriz6bigquery_uri parameter is not supported in Gemini API.	file_namefileNameinlined_requestsrequests)r   r*   r   r  r  s        r    _BatchJobSource_to_mldevr'  n  s    
 !)	+z".
G
HH	+	{#/
H
II	+'(4
M
NN	+}%1ZL${[M"BC	+*+,8	Z  [+=*>?	
 %ZyA	
 
	
s   B3c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        d      |S )Nr$   batchdisplayNamedestz.dest parameter is not supported in Gemini API.r   r   r*   r   s      r    _CreateBatchJobConfig_to_mldevr-    s\     !)	+'(4	- [>*+ 
+x ,
E
FF	r"   c                 l   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      9t        |ddgt	        | t        j
                  | t        |dg            |             t        |dg      #t        |dgt        t        |dg      |             |S Nr  _urlsrcr)  inputConfigr  )r   r   r  r  r'  t_batch_job_sourcer-  r   r   r   r   s       r    "_CreateBatchJobParameters_to_mldevr5    s    
 !)	+y!-				*d;	:; 
+w+	-    T+w-GH	
 
+z".	
&xj)9	
 
r"   c                 T   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | d	g      t        d
      |S )N	task_type
requests[]taskTypers   output_dimensionalityoutputDimensionalityr'   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r,  r   s      r    _EmbedContentConfig_to_mldevr=    s     !)	+}%1	z"[;-( 
+y!-w/kG91MN	+/01=	-.[234 
+}%1
J
KK	+()5
N
OO	r"   c                     i }t        |dg      .t        |g dt        j                  | t        |dg                   t        |dg      #t        |dgt	        t        |dg      |             |S )Nr  )r8  r  contentr  )r   r   r  t_contents_for_embedr=  r4  s       r    _EmbedContentBatch_to_mldevrA    s{    
 !)	+
|$0,	z4j\+JK 
+z".	
$T+z%BIN 
r"   c                     i }t        |dg      t        |dgt        |dg             t        |dg      $t        |dgt        | t        |dg      |             |S )Nr#  r%  r&  )r   r   rA  r4  s       r    "_EmbeddingsBatchJobSource_to_mldevrC    sr    
 !)	+}%1[M4k]#CD	+*+,8	#[+=*>?	
 
r"   c                 X    i }t        | dg      t        |ddgt        | dg             |S )Nr$   r)  r*  r   r   s      r    (_CreateEmbeddingsBatchJobConfig_to_mldevrE    sA     !)	+'(4	- [>*+ 
r"   c                 D   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      %t        |ddgt	        | t        |dg      |             t        |dg      #t        |dgt        t        |dg      |             |S r/  )r   r   r  r  rC  rE  r4  s       r    ,_CreateEmbeddingsBatchJobParameters_to_mldevrG     s    
 !)	+y!-				*d;	:; 
+w+	- *[5'2I	
 
+z".	
0xj)9	
 
r"   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S Nr4   r0  r  r   r   r  t_batch_job_namer4  s       r    _GetBatchJobParameters_to_mldevrL  B  r    
 !)	+x ,		:tK&'BC 
+z".XJ[8* =>	r"   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rI  rJ  r4  s       r    "_CancelBatchJobParameters_to_mldevrO  U  rM  r"   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      |S )N	page_size_querypageSize
page_token	pageTokenfilterz0filter parameter is not supported in Gemini API.r,  r   s      r    _ListBatchJobsConfig_to_mldevrW  h  s     !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".
G
HH	r"   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S Nr  )r   r   rW  r   s      r    !_ListBatchJobsParameters_to_mldevrZ    sC     !)	+z".	
%d;
&CYO 
r"   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rI  rJ  r4  s       r    "_DeleteBatchJobParameters_to_mldevr\    rM  r"   c                 R   i }t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        d
      t        | dg      t        d      |S )Nr]   instancesFormatr!  	gcsSourceurisr"  bigquerySourceinputUrir#  2file_name parameter is not supported in Vertex AI.r%  z9inlined_requests parameter is not supported in Vertex AI.r,  r   s      r    _BatchJobSource_to_vertexrd    s     !)	+z".&'kH:)FG	+	{#/[&)4i[+IJ	+'(4	:&[>*+ 
+}%1
I
JJ	+*+,8
C  
r"   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        d
      t        | dg      t        d      t        | dg      t        d      |S )Nr]   predictionsFormatr!  gcsDestinationoutputUriPrefixr"  bigqueryDestination	outputUrir#  rc  inlined_responsesz:inlined_responses parameter is not supported in Vertex AI.inlined_embed_content_responseszHinlined_embed_content_responses parameter is not supported in Vertex AI.r,  r   s      r    _BatchJobDestination_to_vertexrm    s     !)	+z".()4hZ+HI	+	{#/	,-[9+& 
+'(4	,[>*+ 
+}%1
I
JJ	++,-9
D  
+9:;G
	 
 
r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      6t        |dgt        t        j                  t        | dg            |             |S )Nr$   r*  r+  outputConfig)r   r   rm  r  t_batch_job_destinationr   s      r    _CreateBatchJobConfig_to_vertexrq    sz     !)	+'(4kN;K)LM	+x ,	&%%d;&ABI	
 
r"   c                 f   i }t        |dg      -t        |dgt        j                  | t        |dg                   t        |dg      7t        |dgt	        t        j
                  | t        |dg            |             t        |dg      #t        |dgt        t        |dg      |             |S )Nr  r1  r2  r  )r   r   r  r  rd  r3  rq  r4  s       r    #_CreateBatchJobParameters_to_vertexrs    s    
 !)	+y!-					*d;	:; 
+w+	!  T+w-GH	
 
+z".	
'xj)9	
 
r"   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rI  rJ  r4  s       r     _GetBatchJobParameters_to_vertexru    rM  r"   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rI  rJ  r4  s       r    #_CancelBatchJobParameters_to_vertexrw  1  rM  r"   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )NrQ  rR  rS  rT  rU  rV  r   r   s      r    _ListBatchJobsConfig_to_vertexry  D  s     !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	r"   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S rY  )r   r   ry  r   s      r    "_ListBatchJobsParameters_to_vertexr{  \  sF     !)	+z".	
&xj)9	
 
r"   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rI  rJ  r4  s       r    #_DeleteBatchJobParameters_to_vertexr}  m  rM  r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   r   r   r   r   r   r   s      r    _VideoMetadata_from_mldevr    s     !)	+w+UGT+w78	+}%1\ND{m$DE	+'3^$d;&HI	r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr&   r(   r'   r   r   s      r    _Blob_from_mldevr    s[     !)	+x ,VHd;9:	+
|$0[M4j\#BC	r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr.   r-   r(   r'   r   r   s      r    _FileData_from_mldevr    s[     !)	+	{#/ZL${YK"@A	+
|$0[M4j\#BC	r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r1   r   r   s      r    _FunctionCall_from_mldevr    r6   r"   c           
      R   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr9   r8   r:   r<   r;   r>   r=   r@   r?   rB   rA   rD   rC   rF   rE   rH   rG   rI   )r   r   r  r  r  r  r   s      r    _Part_from_mldevr    s    !)	+()5	!/0)	
 
+	{#/YKkI;!?@	+~&2	kL>:IF 
+
|$0	T+
|<iH 
+*+,8	[-./ 
+'(4	 ~./	
 
+-./;	 ![012 
+()*6&'k<L;M)NO	+*+,8	[-./ 
+x ,VHd;9:	r"   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w rL   )r   r   r  rO   s       r    _Content_from_mldevr    s     !)	+y!-		 [7)4	
 T9-	
 
+x ,VHd;9:		
rR   c                 V    i }t        | dg      t        |dgt        | dg             |S )NcitationSources	citationsr   r   s      r    _CitationMetadata_from_mldevr    s9     !)	+)*+7[M46G5H#IJ	r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )NretrievedUrlretrieved_urlurlRetrievalStatusurl_retrieval_statusr   r   s      r    _UrlMetadata_from_mldevr  &  sj     !)	+'(4_%tK.9I'JK	+,-.:	 [/01 
r"   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )NurlMetadataurl_metadata)r   r   r  rO   s       r    _UrlContextMetadata_from_mldevr  8  s^     !)	+'3	 [=/:	
 $D)4	
 
	
r   c           
      >   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |d	gt	        t        | dg      |             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr?  citationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasonurlContextMetadataurl_context_metadataavgLogprobsavg_logprobsgroundingMetadatagrounding_metadataindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratings)r   r   r  r  r  r   s      r    _Candidate_from_mldevr  J  s    !)	+	{#/	Dyk:IF 
+*+,8	$123Y	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+,-.:	 &345y	
 
+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5%&[?:K(LM	r"   c                    i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             |S c c}w )NsdkHttpResponsesdk_http_response
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idusageMetadatausage_metadata)r   r   r  rO   s       r    #_GenerateContentResponse_from_mldevr    s3    !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 "$	2	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	%	
s   Dc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Ndetailscodemessager   r   s      r    _JobError_from_mldevr         !)	+	{#/YKkI;!?@	+x ,VHd;9:	+	{#/YKkI;!?@	r"   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S Nr   error)r   r   r  r  r   s      r    _InlinedResponse_from_mldevr    sz     !)	+
|$0	+zl+Y	
 
+y!-		T+y99E 
r"   c                 V    i }t        | dg      t        |dgt        | dg             |S )Nvaluesr   r   s      r    _ContentEmbedding_from_mldevr    s5     !)	+z".XJ[8* =>	r"   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )N	embeddingr  r  )r   r   r  r   s      r    &_SingleEmbedContentResponse_from_mldevr    sl     !)	+}%1	${m,i	
 
+~&2]OT+~%FG	r"   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S r  )r   r   r  r  r   s      r    '_InlinedEmbedContentResponse_from_mldevr    sz     !)	+
|$0	.zl+Y	
 
+y!-		T+y99E 
r"   c                 l   i }t        | dg      t        |dgt        | dg             t        | ddg      2t        |dgt        | ddg      D cg c]  }t        ||       c}       t        | ddg      	 2t        |dgt        | ddg      D cg c]  }t        ||       c}       |S c c}w c c}w )NresponsesFiler#  inlinedResponsesrk  inlinedEmbedContentResponsesrl  )r   r   r  r  rO   s       r    _BatchJobDestination_from_mldevr    s     !)	+()5[M4o5F#GH	+*,>?@L	 02DE	
 (i8	
	 ;79KLM 		*+ /1CD	
 4D)D	

 
1	
	
s   B,B1c                    i }t        | dg      t        |dgt        | dg             t        | ddg      t        |dgt        | ddg             t        | ddg      -t        |dgt        j                  t        | ddg                   t        | ddg      t        |dgt        | ddg             t        | ddg      t        |d	gt        | ddg             t        | dd
g      t        |dgt        | dd
g             t        | ddg      t        |dgt        | ddg             t        | ddg      7t        |dgt	        t        j
                  t        | ddg            |             |S )Nr4   metadatar*  r$   state
createTimecreate_timer   r   
updateTimeupdate_timer  outputr+  )r   r   r  t_job_stater  t_recv_batch_job_destinationr   s      r    _BatchJob_from_mldevr  /  s    !)	+x ,VHd;9:	+
M23?	[:}56 
+
G,-9			d;W(=>? 
+
L12>	[:|45 
+
I./;ZL${Z4K"LM	+
L12>	[:|45 
+
G,-9WItK*g1FGH	+
H-.:	'**[:x"89 		
	 
r"   c                 (   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr  r  nextPageTokennext_page_token
operations
batch_jobs)r   r   r  rO   s       r    !_ListBatchJobsResponse_from_mldevr  h  s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+~&2	 [<.9	
 !y1	
 
	
   3Bc           
      N   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S Nr  r  r4   doner  )r   r   r  r   s      r    _DeleteResourceJob_from_mldevr    s     !)	+)*+7'(${=N<O*P 
+x ,VHd;9:	+x ,VHd;9:	+y!-		T+y99E 
r"   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  r   r   s      r    _JobError_from_vertexr    r  r"   c           	          i }t        | dg      t        |dgt        | dg             t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             |S )	Nr^  r]   r_  r`  r!  ra  rb  r"  r   r   s      r    _BatchJobSource_from_vertexr    s     !)	+)*+7XJ[3D2E FG	+V,-9YKkK3H!IJ	+(*56B	[+Z89 
r"   c           	          i }t        | dg      t        |dgt        | dg             t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             |S )	Nrf  r]   rg  rh  r!  ri  rj  r"  r   r   s      r     _BatchJobDestination_from_vertexr    s     !)	++,-9XJ[3F2G HI	+(*;<=I	[+->?@ 
+-{;<H	[0+>? 
r"   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      6t        |dgt        t        j                  t        | dg            |             |S )Nr4   r*  r$   r  r  r  r  r   r   r   r   r  r  r  r2  r1  ro  r+  )r   r   r  r  r  r  r  r  r   s      r    _BatchJob_from_vertexr    s    !)	+x ,VHd;9:	+'3^$d;&HI	+y!-WIq}}T+y-IJK	+y!-		d;	:IF 
+~&2]OT+~%FG	+}%1\ND{m$DE	+	{#/ZL${YK"@A	+~&2]OT+~%FG	+y!-WItK';<	+'3	#}o.		
 
+'(4	(**4n=M+NO	
 
r"   c                 (   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr  r  r  r  batchPredictionJobsr  )r   r   r  rO   s       r    "_ListBatchJobsResponse_from_vertexr    s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+-./;	 [+@*AB	
 "$	2	
 
	
r  c           
      N   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S r  )r   r   r  r   s      r    _DeleteResourceJob_from_vertexr  /  s     !)	+)*+7'(${=N<O*P 
+x ,VHd;9:	+x ,VHd;9:	+y!-		d;	:IF 
r"   c            	          e Zd Zddddee   deej                  ej                  f   deej                     dej                  fdZddddee   dej                  deej                     dej                  fdZdd	d
edeej                     dej                  fdZdd	d
edeej"                     ddfdZdd	deej&                     dej(                  fdZdd	d
edeej,                     dej.                  fdZdd	dedej                  deej                     dej                  fdZdd	dedej                  deej                     dej                  fdZdd	deej&                     deej                     fdZy)BatchesNr  r  r  r1  r  r   c                   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }| j                  j1                  |       |S Nr  r1  r  r0  r  {model}:batchGenerateContentrR  ?r  post r   kwargs)r   _CreateBatchJobParameters_api_clientvertexairs  get
format_mapr5  r   popr  http_optionsr	   convert_to_dictencode_unserializable_typesr  bodyjsonloadsr  r  BatchJob_from_response
model_dump_verify_responseselfr  r1  r  parameter_modelrequest_dictrequest_url_dictpathquery_paramsr  r   response_dictreturn_values                r    _createzBatches._createK  s    55O   8


Ol &))&1	$//0@A$7


Ol &))&1	-889IJ-##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  +M:m +=9m>>00'A'A'C 1 L 	%%l3r"   c                   t        j                  |||      }| j                  j                  rt	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  st'        |      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S Nr  z=This method is only supported in the Gemini Developer client.r0  {model}:asyncBatchEmbedContentrR  r  r  r  r  r  )r   #_CreateEmbeddingsBatchJobParametersr   r  r*   rG  r  r  r   r  r  r  r	   r  r  r  r  r	  r
  r  r  r  r  r  r  s                r    _create_embeddingszBatches._create_embeddings  s    ??O   
I  B


Ol &))&1	/::;KL/##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM$$*=9m>>00'A'A'C 1 L 	%%l3r"   r  r4   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	|	j                   sd
nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S )a6  Gets a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = client.batches.get(name='123456789')
      print(f"Batch job: {batch_job.name}, state {batch_job.state}")
    r4   r  r0  batchPredictionJobs/{name}batches/{name}rR  r  r  Nr  r  r  )r   _GetBatchJobParametersr   r  ru  r  r  rL  r   r  r  r  r	   r  r  r  r  r	  r
  r  r  r  r  r  r  r  r4   r  r  r  r  r  r  r  r   r  r  s               r    r  zBatches.get  s   , 22O   5


Ol &))&1	+667GH+4


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  +M:m +=9m>>00'A'A'C 1 L 	%%l3r"   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	y)
a  Cancels a batch job.

    Only available for batch jobs that are running or pending.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Usage:

    .. code-block:: python

      client.batches.cancel(name='123456789')
    r   r0  !batchPredictionJobs/{name}:cancelbatches/{name}:cancelrR  r  r  Nr  )r   _CancelBatchJobParametersr   r  rw  r  r  rO  r   r  r  r  r	   r  r  r  
r  r4   r  r  r  r  r  r  r  r   s
             r    cancelzBatches.cancel	  sY   . 55O   8


Ol &))&1	2==>NO27


Ol &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLHr"   c                (   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }|j                   sd	nt#        j$                  |j                         }	| j                  j                  rt'        |	      }	nt)        |	      }	t         j*                  j-                  |	|j/                         
      }
t        j0                  |j2                        |
_        | j                  j7                  |
       |
S Nr  r0  r  batchesrR  r  r  r  r  r  headers)r   _ListBatchJobsParametersr   r  r{  r  r  rZ  r   r  r  r  r	   r  r  r  r  r	  r
  r  r  ListBatchJobsResponser  r  HttpResponser/  r  r  r  r  r  r  r  r  r  r  r   r  r  s              r    _listzBatches._list_	  s    44O   7Hl%))&1	$//0@A$6Gl%))&1	##$45##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  8Gm 8Fm..=='A'A'C > L &+%7%7  &L" 	%%l3r"   c                V   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||      }	|	j                   sd
nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S )a  Deletes a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the client.

    Returns:
      A DeleteResourceJob object that shows the status of the deletion.

    Usage:

    .. code-block:: python

      client.batches.delete(name='123456789')
    r   r0  r!  r"  rR  r  r  Ndeleter  r  r.  )r   _DeleteBatchJobParametersr   r  r}  r  r  r\  r   r  r  r  r	   r  r  r  r  r	  r
  r  r  DeleteResourceJobr  r  r2  r/  r  r  r$  s               r    r6  zBatches.delete	  s   . 55O   8


Ol &))&1	+667GH+7


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  4]Cm 4MBm**99'A'A'C : L &+%7%7  &L" 	%%l3r"   c                0   t        j                  | j                  |      }t        j                  |||      }d}|j
                  ,|j
                  j                  |j
                  j                  }| j                  j                  r4t        j                  ||j
                        }| j                  |||      S |j                  | j                  |||      S t        | j                  |      \  }}| j                  j                  d|||      }|j                  sdnt        j                   |j                        }	t#        |	      }	t        j$                  j'                  |	|j)                               }
| j                  j+                  |
       |
S )a  Creates a batch job.

    Args:
      model (str): The model to use for the batch job.
      src: The source of the batch job. Currently Vertex AI supports GCS URI(-s)
        or BigQuery URI. Example: "gs://path/to/input/data" or
        "bq://projectId.bqDatasetId.bqTableId". Gemini Developer API supports
        List of inlined_request, or file name. Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = client.batches.create(
          model="gemini-2.0-flash-001",
          src="gs://path/to/input/data",
      )
      print(batch_job.state)
    r  Nr  r  r  )r  r3  r   r   r  r  r  r  r
   format_destinationr  r%  -_create_inlined_generate_content_request_dictr  r  r	  r
  r  r  r  r  r  r  r  r1  r  r  r  r  r  r   r  r  s              r    createzBatches.create	  sn   < 

t//
5C 55O 15L*""//;$++88l  ..sO4J4JKf\\3v\>>				%\\3v\>>F/D, ''lLH 'mmBHMM1JM(7M>>00'A'A'C 1 L 	%%l3r"   c                *   ddl }|j                  dt        j                  d       t	        j
                  | j                  |      }t        j                  |||      }d}|j                  ,|j                  j                  |j                  j                  }| j                  j                  rt        d      |j                  | j                  |||      S t        | j                  |      \  }}| j                  j!                  d|||      }	|	j"                  sd	nt%        j&                  |	j"                        }
t)        |
      }
t        j*                  j-                  |
|j/                         
      }| j                  j1                  |       |S )a]  **Experimental** Creates an embedding batch job.

    Args:
      model (str): The model to use for the batch job.
      src: Gemini Developer API supports List of inlined_request, or file name.
        Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = client.batches.create_embeddings(
          model="text-embedding-004",
          src="files/my_embedding_input",
      )
      print(batch_job.state)
    r   NJbatches.create_embeddings() is experimental and may change without notice.   rx   
stacklevelr  5Vertex AI does not support batches.create_embeddings.r  r  r  )warningswarnr	   ExperimentalWarningr  t_embedding_batch_job_sourcer   r   r  r  r  r  r*   r%  r  &_create_inlined_embedding_request_dictr  r  r	  r
  r  r  r  r  r  r  r  r1  r  rD  r  r  r  r  r   r  r  s               r    create_embeddingszBatches.create_embeddings4
  sw   8 MM	,,	   
(
()9)93
?C ??O 15L*""//;$++88l  NOO				%$$5c&$II?/D, ''lLH 'mmBHMM1JM(7M>>00'A'A'C 1 L 	%%l3r"   c                ~    |t        j                         }t        d| j                  | j                  |      |      S )a  Lists batch jobs.

    Args:
      config (ListBatchJobsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of batch jobs. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python

      batch_jobs = client.batches.list(config={"page_size": 10})
      for batch_job in batch_jobs:
        print(f"Batch job: {batch_job.name}, state {batch_job.state}")
    r  r  )r   ListBatchJobsConfigr   r4  r  r  s     r    listzBatches.list
  s?    ( ~((*f



&
!	 r"   )__name__
__module____qualname__r   strr   r   BatchJobSourceUnionBatchJobSourceUnionDictCreateBatchJobConfigOrDictr  r  EmbeddingsBatchJobSourceOrDict$CreateEmbeddingsBatchJobConfigOrDictr  GetBatchJobConfigOrDictr  CancelBatchJobConfigOrDictr*  ListBatchJobsConfigOrDictr1  r4  DeleteBatchJobConfigOrDictr8  r6  r=  rJ  r   rN  r   r"   r    r  r  I  s`   
 ";?B c]B **E,I,IIJ	B
 u778B ~~BN "EI: c]: //	:
 uAAB: ~~:z MQNN"*5+H+H"IN~~Nh <@	B B u778	B
 BJ DH8 ? ?@8""8| <@	S S u778	S
 St <@D D ((	D
 u778D ~~DV FJI I //	I
 uAABI ~~IX DH ? ?@U^^r"   r  c            	          e Zd Zddddee   deej                  ej                  f   deej                     dej                  fdZddddee   dej                  deej                     dej                  fdZdd	d
edeej                     dej                  fdZdd	d
edeej"                     ddfdZdd	deej&                     dej(                  fdZdd	d
edeej,                     dej.                  fdZdd	dedej                  deej                     dej                  fdZdd	dedej                  deej                     dej                  fdZdd	deej&                     deej                     fdZy)AsyncBatchesNr  r  r1  r  r   c                *  K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d {   }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }| j                  j1                  |       |S 7 wr  )r   r  r   r  rs  r  r  r5  r   r  r  r  r	   r  r  async_requestr  r	  r
  r  r  r  r  r  r  r  s                r    r  zAsyncBatches._create
  s     55O   8


Ol &))&1	$//0@A$7


Ol &))&1	-889IJ-##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  +M:m +=9m>>00'A'A'C 1 L 	%%l3#s   E$H&H'B+Hc                  K   t        j                  |||      }| j                  j                  rt	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d {   }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  st'        |      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S 7 wr  )r   r  r   r  r*   rG  r  r  r   r  r  r  r	   r  r  r_  r  r	  r
  r  r  r  r  r  r  s                r    r  zAsyncBatches._create_embeddings
  s     ??O   
I  B


Ol &))&1	/::;KL/##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM$$*=9m>>00'A'A'C 1 L 	%%l3s   D1G3G4BGr  r4   c                (  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	|	j                   sd
nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S 7 w)a@  Gets a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = await client.aio.batches.get(name='123456789')
      print(f"Batch job: {batch_job.name}, state {batch_job.state}")
    r   r0  r!  r"  rR  r  r  Nr  r  r  )r   r#  r   r  ru  r  r  rL  r   r  r  r  r	   r  r  r_  r  r	  r
  r  r  r  r  r  r  r$  s               r    r  zAsyncBatches.get  s    , 22O   5


Ol &))&1	+667GH+4


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  +M:m +=9m>>00'A'A'C 1 L 	%%l3#s   E#H%H&B+Hc                  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	y7 w)
a  Cancels a batch job.

    Only available for batch jobs that are running or pending.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the Vertex AI client. Or
          "batches/abc" using the Gemini Developer AI client.

    Usage:

    .. code-block:: python

      await client.aio.batches.cancel(name='123456789')
    r   r0  r&  r'  rR  r  r  Nr  )r   r(  r   r  rw  r  r  rO  r   r  r  r  r	   r  r  r_  r)  s
             r    r*  zAsyncBatches.cancelq  sg    . 55O   8


Ol &))&1	2==>NO27


Ol &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H s   E#E-%E+&E-c                D  K   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }|j                   sd	nt#        j$                  |j                         }	| j                  j                  rt'        |	      }	nt)        |	      }	t         j*                  j-                  |	|j/                         
      }
t        j0                  |j2                        |
_        | j                  j7                  |
       |
S 7 ϭwr,  )r   r0  r   r  r{  r  r  rZ  r   r  r  r  r	   r  r  r_  r  r	  r
  r  r  r1  r  r  r2  r/  r  r  r3  s              r    r4  zAsyncBatches._list  s     44O   7Hl%))&1	$//0@A$6Gl%))&1	##$45##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  8Gm 8Fm..=='A'A'C > L &+%7%7  &L" 	%%l3's   EH HCH c                r  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d	|||       d{   }	|	j                   sd
nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S 7 ϭw)a  Deletes a batch job.

    Args:
      name (str): A fully-qualified BatchJob resource name or ID.
        Example: "projects/.../locations/.../batchPredictionJobs/456" or "456"
          when project and location are initialized in the client.

    Returns:
      A DeleteResourceJob object that shows the status of the deletion.

    Usage:

    .. code-block:: python

      await client.aio.batches.delete(name='123456789')
    r   r0  r!  r"  rR  r  r  Nr6  r  r  r.  )r   r7  r   r  r}  r  r  r\  r   r  r  r  r	   r  r  r_  r  r	  r
  r  r  r8  r  r  r2  r/  r  r  r$  s               r    r6  zAsyncBatches.delete  s    . 55O   8


Ol &))&1	+667GH+7


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  4]Cm 4MBm**99'A'A'C : L &+%7%7  &L" 	%%l3's   E#H7%H5&CH7c                t  K   t        j                  | j                  |      }t        j                  |||      }d}|j
                  ,|j
                  j                  |j
                  j                  }| j                  j                  r<t        j                  ||j
                        }| j                  |||       d{   S |j                  | j                  |||       d{   S t        | j                  |      \  }}| j                  j                  d|||       d{   }|j                  sdnt        j                   |j                        }	t#        |	      }	t        j$                  j'                  |	|j)                               }
| j                  j+                  |
       |
S 7 7 7 w)a  Creates a batch job asynchronously.

    Args:
      model (str): The model to use for the batch job.
      src: The source of the batch job. Currently Vertex AI supports GCS URI(-s)
        or BigQuery URI. Example: "gs://path/to/input/data" or
        "bq://projectId.bqDatasetId.bqTableId". Gemini Develop API supports List
        of inlined_request, or file name. Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = await client.aio.batches.create(
          model="gemini-2.0-flash-001",
          src="gs://path/to/input/data",
      )
    r  Nr  r  r  )r  r3  r   r   r  r  r  r  r
   r:  r  r%  r;  r_  r  r	  r
  r  r  r  r  r  r<  s              r    r=  zAsyncBatches.createF  s    : 

t//
5C 55O 15L*""//;$++88l  ..sO4J4JKf<<eV<DDD				%<<eV<DDDF/D, %%33lL H 'mmBHMM1JM(7M>>00'A'A'C 1 L 	%%l3) EDs7   C F8F2'F8*F4+>F8)F6*B	F84F86F8c                Z  K   ddl }|j                  dt        j                  d       t	        j
                  | j                  |      }t        j                  |||      }d}|j                  ,|j                  j                  |j                  j                  }| j                  j                  rt        d      |j                  | j                  |||       d{   S t        | j                  |      \  }}| j                  j!                  d|||       d{   }	|	j"                  sd	nt%        j&                  |	j"                        }
t)        |
      }
t        j*                  j-                  |
|j/                         
      }| j                  j1                  |       |S 7 7 w)ao  **Experimental** Creates an asynchronously embedding batch job.

    Args:
      model (str): The model to use for the batch job.
      src: Gemini Developer API supports inlined_requests, or file name.
        Example: "files/file_name".
      config (CreateBatchJobConfig): Optional configuration for the batch job.

    Returns:
      A BatchJob object that contains details about the batch job.

    Usage:

    .. code-block:: python

      batch_job = await client.aio.batches.create_embeddings(
          model="text-embedding-004",
          src="files/my_embedding_input",
      )
      print(batch_job.state)
    r   Nr?  r@  rA  r  rC  r  r  r  )rD  rE  r	   rF  r  rG  r   r   r  r  r  r  r*   r%  r  rH  r_  r  r	  r
  r  r  r  r  r  rI  s               r    rJ  zAsyncBatches.create_embeddings  s    8 MM	,,	   
(
()9)93
?C ??O 15L*""//;$++88l  NOO				%**C*OOO?/D, %%33lL H 'mmBHMM1JM(7M>>00'A'A'C 1 L 	%%l3% Ps%   CF+F' >F+F)B	F+)F+c                   K   |t        j                         }t        d| j                  | j                  |       d{   |      S 7 	w)a(  Lists batch jobs asynchronously.

    Args:
      config (ListBatchJobsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of batch jobs. When iterating over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python

      batch_jobs = await client.aio.batches.list(config={'page_size': 5})
      print(f"current page: {batch_jobs.page}")
      await batch_jobs_pager.next_page()
      print(f"next page: {batch_jobs_pager.page}")
    Nr  r  )r   rL  r   r4  rM  s     r    rN  zAsyncBatches.list  sK     * ~((*f

jjj''	  	(s   =AA	 
A)rO  rP  rQ  r   rR  r   r   rS  rT  rU  r  r  rV  rW  r  rX  r  rY  r*  rZ  r1  r4  r[  r8  r6  r=  rJ  r   rN  r   r"   r    r]  r]  
  s`   
 ";?B c]B **E,I,IIJ	B
 u778B ~~BN "EI: c]: //	:
 uAAB: ~~:z MQPP"*5+H+H"IP~~Pl <@	B B u778	B
 BJ DH: ? ?@:"":@ <@	S S u778	S
 St <@C C ((	C
 u778C ~~CT FJI I //	I
 uAABI ~~IX DH ? ?@%..!r"   r]  clientr  c                    t        | |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j	                  dd        t        j                  |      }t        j                  |      }g }|j                  d      }|rgt        |t              rW|j                  d      }|rDt        |t              r4|j                  d      }	|	r!t        |	t              r|	j                  d      }g }
|rP|D ]K  }|j                  d	      r'|j	                  d	      }|d
   j                  d	|i       |
j                  |       M |
|d   d   d   d<   ||fS )Nr0  r  rR  r  r  r)  r2  r&  r   r  )r5  r  r  r   r  r	   r  r  
isinstancedictupdateappend)rh  r  r  r  r  r  r&  
batch_dictinput_config_dictrequests_dictnew_requestsreqvalues                r    r;  r;    s   
 "Do", "%%f-)445EFD)D!!(+,V1Y|,-.D8T"((6,44\B, ((*Jz40"}5Z(94@'++J7m	:mT: $$Z0, 	$	%+,I2E:;#	  w&z2 
|	r"   c                    |j                   }t        |t        j                        st	        d| d      t        | |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        |j                  di       j                  d	i       j                  d
i       j                  dd        t        j                  |      }t        j                  |      }g }|j                  d      }|rgt        |t              rW|j                  d	      }	|	rDt        |	t              r4|	j                  d
      }
|
r!t        |
t              r|
j                  d
      }g }|rS|D ]N  }t        |j                               D ]  }|dk7  s	|j                  |      |d   |<   ! |j!                  |       P ||d   d	   d
   d
<   ||fS )NzInvalid batch job source: .r0  r  rR  r  r  r)  r2  r&  r  )r1  rj  r   EmbeddingsBatchJobSourcer*   rG  r  r  r   r  r	   r  r  rk  rN  keysrm  )rh  r  r1  r  r  r  r  r&  rn  ro  rp  rq  rr  ks                 r    rH  rH  !  s    	#	C77	8
1#a8
99 "No", "%%f-+667GHD+D!!(+,V1Y|,-.D8T"7B##M26:::rJNN ((6,44\B,((*Jz40"}5Z(94@'++J7m	:mT: $$Z0, CHHJ )!	>!ggaj#i.
) #	  w&z2 
|	r"   r   )qr	  loggingtypingr   r   r   urllib.parser   r  r   r	   r
   r   r  r   r   r   r   r   r   r   pagersr   r   	getLoggerloggerrk  rR  objectr!   r+   r/   r5   rJ   rQ   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r'  r-  r5  r=  rA  rC  rE  rG  rL  rO  rW  rZ  r\  rd  rm  rq  rs  ru  rw  ry  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  
BaseModuler  r]  r  tupler;  r  rH  r   r"   r    <module>r     s  $   ' ' "       & . . % 
		1	2
 /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3AtCH~v-.ADcN+A 
#s(^AL /3tCH~v-.DcN+ 
#s(^. /3VtCH~v-.VDcN+V 
#s(^Vv /3tCH~v-.DcN+ 
#s(^& /3"tCH~v-."DcN+" 
#s(^"N /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^, /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3=tCH~v-.=DcN+= 
#s(^=D /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^: /3tCH~v-.DcN+ 
#s(^& /3ggtCH~v-.g DcN+g 
#s(^	gZ /3  tCH~v-.  DcN+  
#s(^	 L /3tCH~v-. DcN+ 
#s(^	B /3tCH~v-.DcN+ 
#s(^, /3!!tCH~v-.! DcN+! 
#s(^	!L /3tCH~v-.DcN+ 
#s(^F /3tCH~v-. DcN+ 
#s(^	4 /3tCH~v-. DcN+ 
#s(^	. /3tCH~v-.DcN+ 
#s(^& /3tCH~v-. DcN+ 
#s(^	J /3tCH~v-. DcN+ 
#s(^	, /3tCH~v-. DcN+ 
#s(^	* /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^$ /3tCH~v-. DcN+ 
#s(^	* /3tCH~v-.DcN+ 
#s(^> /3$tCH~v-.$DcN+$ 
#s(^$R /3tCH~v-.DcN+ 
#s(^0 /3  tCH~v-.  DcN+  
#s(^	 L /3tCH~v-. DcN+ 
#s(^	, /3tCH~v-. DcN+ 
#s(^	* /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^( /3tCH~v-. DcN+ 
#s(^	* /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^& /3CtCH~v-.CDcN+C 
#s(^CP /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^( /37tCH~v-.7DcN+7 
#s(^7x /3 tCH~v-. DcN+  
#s(^ J /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^, /3tCH~v-.DcN+ 
#s(^4 /3%tCH~v-.%DcN+% 
#s(^%T /36tCH~v-.6DcN+6 
#s(^6v /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^6 /37tCH~v-.7DcN+7 
#s(^7x /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^4Q	k$$ Q	hU	;)) U	p)),1,K,K)
3S#X)X22>>2 3S#X2r"   