
    עi                    .   d dl Z d dlZd dlmZmZmZ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 ddlmZ ddlmZ ddlmZmZ  ej>                  d      Z deddfdZ!deddfdZ"deddfdZ#	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ'	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ(	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ)	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ*	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ+	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd Z,	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd!Z-	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd"Z.	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd#Z/	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd$Z0	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd%Z1	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d&Z2	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d'Z3	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd(Z4	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd)Z5	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d*Z6	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d+Z7	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd,Z8	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd-Z9	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd.Z:	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d/Z;	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd0Z<	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd1Z=	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd2Z>	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d3Z?	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d4Z@	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd5ZA	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd6ZB	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd7ZC	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd8ZD	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd9ZE	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd:ZF	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd;ZG	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d<ZH	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d=ZI	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d>ZJ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d?ZK	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd@ZL	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdAZM	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdBZN	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdCZO	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dDZP	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dEZQ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdFZR	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdGZS	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdHZT	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdIZU	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdJZV	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdKZW	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dLZX	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dMZY	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdNZZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdOZ[	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdPZ\	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdQZ]	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdRZ^	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdSZ_	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdTZ`	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdUZa	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdVZb	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdWZc	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dXZd	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dYZe	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZZf	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd[Zg	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd\Zh	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd]Zi	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd^Zj	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd_Zk	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd`Zl	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdaZm	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dbZn	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dcZo	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
ddZp	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
deZq	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdfZr	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdgZs	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdhZt	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdiZu	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdjZv	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdkZw	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdlZx	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdmZy	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dnZz	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdoZ{	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdpZ|	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdqZ}	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdrZ~	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdsZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdtZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fduZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdvZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dwZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdxZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdyZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdzZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd{Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd|Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd}Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd~Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ G d dej0                        Z G d dej0                        Zy)    N)AnyAsyncIterator	AwaitableIteratorOptionalUnion)	urlencode   )_api_module)_base_transformers)_common)_extra_utils)
_mcp_utils)_transformers)errors)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.models
enum_valuereturnc                 <    | t        dg      v rt        |  d      y )N	ALLOW_ALL+ enum value is not supported in Gemini API.set
ValueErrorr   s    T/sites/domain-asset-master/.venv/lib/python3.12/site-packages/google/genai/models.py(_PersonGeneration_to_mldev_enum_validater"   (   s)    3}%%

|#NO
PP &    c                 <    | t        dg      v rt        |  d      y )N
BLOCK_NONEr   r   r    s    r!   )_SafetyFilterLevel_to_mldev_enum_validater&   -   s)    3~&&

|#NO
PP 'r#   c                 <    | t        dg      v rt        |  d      y )NSTYLEr   r   r    s    r!   4_VideoGenerationReferenceType_to_mldev_enum_validater)   2   s*     3y>!

|#NO
PP "r#   from_objectparent_objectroot_objectc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ndatadisplay_name6display_name parameter is not supported in Gemini API.	mime_typemimeTypegetvsetvr   r*   r+   r,   	to_objects       r!   _Blob_to_mldevr8   9   sw    
 !)	+x ,VHd;9:	+'(4
M
NN	+}%1ZL${[M"BC	r#   c           
      >   i }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             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )NcontentcitationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasongroundingMetadatagrounding_metadataavgLogprobsavg_logprobsindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratingsurlContextMetadataurl_context_metadata)r4   r5   _CitationMetadata_from_mldevr*   r+   r,   r7   items        r!   _Candidate_from_mldevrO   K   s   
 !)	+	{#/YKkI;!?@	+*+,8	$123Y	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	++,-9	[./0 
+'3^$d;&HI	+y!-WItK';<	+()*6&'k<L;M)NO	+()5	{_,=>?$? 
+,-.:	 [/01 
 	@s   "	Fc                 |    i }t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NcitationSources	citationsr4   r5   rM   s        r!   rL   rL      sQ    
 !)	+)*+7	{->,?@A$A 
 	Bs   	9
api_clientc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       |S c c}w )Nmodel_urlcontents)r4   r5   tt_model
t_contentsrT   r*   r+   r,   r7   rN   s         r!   "_ComputeTokensParameters_to_vertexr]      s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
 	Is   5	Bc                     i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NsdkHttpResponsesdk_http_response
tokensInfotokens_inforS   rM   s        r!   "_ComputeTokensResponse_from_vertexrc      s}    
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
 	=s   	Ac                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	truncatedr>   rS   r6   s       r!   '_ContentEmbeddingStatistics_from_vertexrf      s[    
 !)	+}%1[M4k]#CD	+'3]OT+%GH	r#   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nvalues
statistics)r4   r5   rf   r6   s       r!   _ContentEmbedding_from_vertexrj      sn    
 !)	+z".XJ[8* =>	+~&2	/|n-y+	
 
r#   c                     i }t        | dg      2t        |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)r4   r5   _Part_to_mldevrM   s        r!   _Content_to_mldevro      s    
 !)	+y!-		 [7)4	
 4K8	
 
+x ,VHd;9:		
s   A*c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Ncontrol_typecontrolType enable_control_image_computationcomputeControlrS   r6   s       r!   !_ControlReferenceConfig_to_vertexru      si    
 !)	+'(4]OT+7G%HI	+:;<H	[=>? 
r#   c                     i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      |S )Nsystem_instructionz<system_instruction parameter is not supported in Gemini API.toolsz/tools parameter is not supported in Gemini API.generation_configz;generation_config parameter is not supported in Gemini API.)r4   r   r6   s       r!   _CountTokensConfig_to_mldevrz     sp    
 !)	+,-.:
F  
+y!-
F
GG	++,-9
E  
r#   c                 f   i }t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      2t        |dgt        | dg      D cg c]  }t	        |||       c}       t        | dg      $t        |dgt        t        | dg      ||             |S c c}w )Nrw   systemInstructionrx   ry   generationConfig)r4   r5   rY   	t_content_Tool_to_vertex_GenerationConfig_to_vertexrM   s        r!   _CountTokensConfig_to_vertexr   %  s    
 !)	+,-.:		D';&<=> 
+y!-		 [7)4	
 D)[9	
 
++,-9	#234i	
 
	
s    B.c                 x   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |dgt        j                  t        |dg            D cg c]  }t        |||       c}       t        |dg      t        t        |dg      ||       |S c c}w NrV   rW   rX   config)r4   r5   rY   rZ   r[   ro   rz   r\   s         r!   _CountTokensParameters_to_mldevr   I  s     !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI{;	
 
+z".[8*%y+ 
	
s   5B7c                 b   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       t        |dg      t        t        |dg      ||       |S c c}w r   )r4   r5   rY   rZ   r[   r   r\   s         r!    _CountTokensParameters_to_vertexr   i  s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
+z". [8*%y+ 
 	Is   5	B,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`   totalTokenstotal_tokenscachedContentTokenCountcached_content_token_countrS   r6   s       r!   _CountTokensResponse_from_mldevr     s    
 !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	+123?	%&[456 
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   rS   r6   s       r!    _CountTokensResponse_from_vertexr     sg    
 !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S NrV   rW   namer4   r5   rY   rZ   rT   r*   r+   r,   r7   s        r!   _DeleteModelParameters_to_mldevr     J     !)	+y!-				*d;	:; 
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!    _DeleteModelParameters_to_vertexr     r   r#   c                 V    i }t        | dg      t        |dgt        | dg             |S Nr_   r`   rS   r6   s       r!   _DeleteModelResponse_from_mldevr     @    
 !)	+)*+7'(${=N<O*P 
r#   c                 V    i }t        | dg      t        |dgt        | dg             |S r   rS   r6   s       r!    _DeleteModelResponse_from_vertexr     r   r#   c                 6   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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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dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g d t        | dg             |S )!Noutput_gcs_uri
parameters
storageUrinegative_promptnegativePromptnumber_of_imagessampleCountaspect_ratioaspectRatioguidance_scaleguidanceScaleseedsafety_filter_levelsafetySettingperson_generationpersonGenerationinclude_safety_attributesincludeSafetyAttributesinclude_rai_reasonincludeRaiReasonlanguageoutput_mime_typer   outputOptionsr2   output_compression_qualityr   r   compressionQualityadd_watermarkaddWatermarklabels	edit_modeeditMode
base_steps)r   
editConfig	baseStepsrS   r6   s       r!   _EditImageConfig_to_vertexr     sO   
 !)	+()*6	|$[+,- 
+)*+7	'([,-. 
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5	~&[?+, 
+z".
Dxj$AB	+}%1	z"[;-( 
+~&21[<.) 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      3t        |ddgt        |dg      D cg c]  }t	        |||       c}       t        |dg      t        t        |dg      ||       |S c c}w )NrV   rW   promptinstances[0]reference_imagesreferenceImagesr   )r4   r5   rY   rZ   _ReferenceImageAPI_to_vertexr   r\   s         r!   _EditImageParameters_to_vertexr   f  s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+*+,8	*+ [+=*>?	
 )y+F	
 
+z".[8*%y+ 
	
s   
Cc                     i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w Nr_   r`   predictionsgenerated_imagesr4   r5   _GeneratedImage_from_vertexrM   s        r!   _EditImageResponse_from_vertexr         
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (iE	
 
	
   A*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[]taskTypetitleoutput_dimensionalityoutputDimensionalityr1   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r3   r6   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      }|d}|dk(  r(t        | dg      Ft        |ddgt        | dg             n+|dk(  r&t        | dg      t        |dgt        | dg             t        |dg      }|d}|dk(  r(t        | dg      Ft        |ddgt        | dg             n+|dk(  r&t        | dg      t        |dgt        | dg             t        |dg      }|d}|dk(  r(t        | dg      Ft        |d	d
gt        | dg             n+|dk(  r&t        | dg      t        |d
gt        | dg             t        |dg      }|d}|dk(  r't        | dg      t        |ddgt        | dg             t        |dg      }|d}|dk(  r)t        | dg      t        |d	dgt        | dg             |S |dk(  r&t        | dg      t        |dgt        | dg             |S )Nembedding_api_typePREDICTr   instances[]EMBED_CONTENTr   r   r   r   r   r1   r2   r   autoTruncaterS   )r*   r+   r,   r7   discriminators        r!   _EmbedContentConfig_to_vertexr     s   
 !){%9$:;-MiK+'3

+
&
{[M
*
 'K+'3
=:,[;-(HI{%9$:;-MiK'#/

-14gY3O 'K'#/
=7)T+y%AB{%9$:;-MiK123?

/
0
{45
6
 'K123?

!
"
{45
6 {%9$:;-MiK+'3

*
%
{[M
* {%9$:;-MiK/*+7


(
{_-
. 
 'K/*+7

.)4o=N+O 
r#   c                 2   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      <t        |ddgt        j                  | t        |dg            D cg c]  }| c}       t        |dg      +t        t        j                  t        |dg            ||       t        |dg      t        t        |dg      ||       t        |ddgt        j                  | t        |dg                   |S c c}w )NrV   rW   rX   r   r:   r   )r4   r5   rY   rZ   t_contents_for_embedro   r~   r   r\   s         r!   '_EmbedContentParametersPrivate_to_mldevr     s+    !)	+y!-				*d;	:; 
+
|$0	y! ..Dzl;	
 	
	 
+	{#/	Dyk23Y 
+z". [8*%y+ Wii
Dwi89
 
/	
s   7	Dc                 0   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      }|d}|dk(  rIt        |dg      <t        |ddgt        j                  | t        |dg            D cg c]  }| c}       t        |dg      }|d}|dk(  r9t        |dg      ,t        |dgt        j
                  t        |dg                   t        |d	g      t        t        |d	g      ||       |S c c}w )
NrV   rW   r   r   rX   r   r:   r   r   )r4   r5   rY   rZ   r   r~   r   )rT   r*   r+   r,   r7   r   rN   s          r!   (_EmbedContentParametersPrivate_to_vertexr   ?  sB    !)	+y!-				*d;	:; {%9$:;-MiK*&2

)
$ 00d;= 	 {%9$:;-Mo%K)%1
9yk1;;tK)/M#NO	+z".![8*%y+ 
)s   	Dc                    i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )Nr_   r`   
embeddingsmetadatarS   rM   s        r!    _EmbedContentResponse_from_mldevr   l  s    
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
+
|$0ZL${ZL"AB	 	=s   	Bc                    i }t        | dg      t        |dgt        | dg             t        | ddg      3t        |dgt        | ddg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             t        |dg      dk(  rat        | dg      }t        | d	g      }t        | d
g      }|r8i }|r|j                  d      r|d   |d<   |r||d
<   ||d<   t        |dg|g       |S c c}w )Nr_   r`   zpredictions[]r   r   r   r   	embeddingusageMetadatare   promptTokenCountr>   ri   )r4   r5   rj   get)	r*   r+   r,   r7   rN   r   usage_metadatare   statss	            r!   !_EmbedContentResponse_from_vertexr     sJ   
 !)	+)*+7'(${=N<O*P 
+67C	 [?L*IJ	
 *$	;G	
 
+
|$0ZL${ZL"AB	+,-./A[;-0I+'89N[;-0Ie	N../AB-.@Am	&k %i
9|nyk2	-	
s   Dc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nendpointr   deployedModelIddeployed_model_idrS   r6   s       r!   _Endpoint_from_vertexr     sf    
 !)	+
|$0VHd;=>	+)*+7'(${=N<O*P 
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/   r0   file_urifileUrir1   r2   r4   r   r5   r6   s       r!   _FileData_to_mldevr     sw    
 !)	+'(4
M
NN	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	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      t        | dg      t        d      |S )Nidargsr   partial_argsz6partial_args parameter is not supported in Gemini API.will_continuez7will_continue parameter is not supported in Gemini API.r3   r6   s       r!   _FunctionCall_to_mldevr    s    
 !)	+v*TFDtf56	+x ,VHd;9:	+x ,VHd;9:	+'(4
M
NN	+()5
N
O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      t        d      |S )Nallowed_function_namesallowedFunctionNamesmodestream_function_call_argumentszHstream_function_call_arguments parameter is not supported in Gemini API.r3   r6   s       r!   _FunctionCallingConfig_to_mldevr    s    
 !)	+012>	 [345 
+x ,VHd;9:	+89:F
	 
 
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
      |S )Ndescriptionr   r   parameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemabehaviorz1behavior parameter is not supported in Vertex AI.r3   r6   s       r!   _FunctionDeclaration_to_vertexr     s&   
 !)	+'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 
+
|$0
H
II	r#   c                 
   i }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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        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      2t        |d!gt        |d g      D cg c]  }t        |||       c}       t        |d"g      Zt        |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      ,t        |d.gt        j                  t        |d-g                   t        |d/g      t        d0      t        |d1g      t        |d2gt        |d1g             t        |d3g      $t        |d4gt        t        |d3g      ||             t        |d5g      t        |d6gt        |d5g             t        |d7g      t        d8      |S c c}w c c}w )9Nrw   r|   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frequencyPenaltyr   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safetySettingsrx   tool_config
toolConfigr   0labels 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image_configimageConfigenable_enhanced_civic_answersenableEnhancedCivicAnswersmodel_armor_configz<model_armor_config parameter is not supported in Gemini API.)r4   r5   ro   rY   r~   t_schemar   _SafetySetting_to_mldevt_tools_Tool_to_mldevt_tool_ToolConfig_to_mldevt_cached_content_namet_speech_config_ImageConfig_to_mldevr\   s         r!   _GenerateContentConfig_to_mldevrL  &  s    !)	+,-.:	KK[+?*@AB	
 
+'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		

:tK2C1DEF 
+./0<	[123 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $D)[A	
 
+y!-		 		*d;	.JK	
 188J5y+N	
 
+'3	}o.	;	
 
+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7
C  
+)*+7%&[;L:M(NO	+'(4	~./K	
 
+789E	%&[:;< 
+,-.:
F  
k	
	
s   S<(Tc                 :
   i }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      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        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      D cg c]  }| c}       t        |d"g      Zt        |d"gt        j
                  | t        |d"g            D cg c]#  }t        t        j                  | |      ||      % 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        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        j                  t        |d,g                   t        |d.g      t        |d/gt        |d.g             t        |d0g      t        |d1gt        |d0g             t        |d2g      $t        |d3gt        t        |d2g      ||             t        |d4g      t        d5      t        |d6g      t        |d7gt        |d6g             |S c c}w c c}w )8Nrw   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,  routingConfigr-  modelConfigr.  r/  rx   r0  r1  r   r3  r4  r5  r6  r7  r8  r9  r:  r;  audioTimestampr<  r=  r>  r?  r@  Fenable_enhanced_civic_answers parameter is not supported in Vertex AI.rB  modelArmorConfig)r4   r5   rY   r~   rC  rE  r   rG  rI  rJ  _ImageConfig_to_vertexr   r\   s         r!    _GenerateContentConfig_to_vertexrT    s    !)	+,-.:		D';&<=> 
+'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		

:tK2C1DEF 
+./0<	[123 
+()*6_%tK:J9K'LM	+012>	[345 
+)*+7	{->,?@A$A 
+y!-		 		*d;	.JK	
 AHHZ6	;O	
 
+'3[=/(JK	+z".
Dxj$AB	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7%&[;L:M(NO	+)*+7%&[;L:M(NO	+'(4	~./K	
 
+789E
P  
+,-.:	[/01 
U 	B	
s   	T(Tc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |dgt        j                  t        |dg            D cg c]  }t        |||       c}       t        |dg      %t        |dgt        | t        |dg      ||             |S c c}w NrV   rW   rX   r   r}   )r4   r5   rY   rZ   r[   ro   rL  r\   s         r!   #_GenerateContentParameters_to_mldevrW    s     !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI{;	
 
+z".	'[8*5y+	
 
	
s   5Cc                 |   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       t        |dg      %t        |dgt        | t        |dg      ||             |S c c}w rV  )r4   r5   rY   rZ   r[   rT  r\   s         r!   $_GenerateContentParameters_to_vertexrY    s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
+z".	([8*5y+	
 
 	Is   5	B9c                    i }t        | dg      t        |dgt        | dg             t        | dg      2t        |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 )Nr_   r`   
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idr   r   )r4   r5   rO   rM   s        r!   #_GenerateContentResponse_from_mldevrb    s5   
 !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 "$	;?	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	%	
s   Dc                 D   i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| 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             t        | dg      t        |dgt        | dg             |S c c}w )Nr_   r`   r[  
createTimecreate_timer\  r]  r^  r_  r`  ra  r   r   rS   rM   s        r!   $_GenerateContentResponse_from_vertexrf    sH   
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
+~&2]OT+~%FG	+'(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      t        | dg      t        d      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      0t        t        | dg             t        |ddgt        | dg             t        | dg      0t	        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dgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dd gt        | dg             t        | d!g      t        d"      |S )#Nr   8output_gcs_uri parameter is not supported in Gemini API.r   z9negative_prompt parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   .seed parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   r   r   r   r   r   r   z7add_watermark parameter is not supported in Gemini API.r   r2  
image_sizesampleImageSizeenhance_promptz8enhance_prompt parameter is not supported in Gemini API.)r4   r   r5   r&   r"   r6   s       r!   _GenerateImagesConfig_to_mldevrm    s   
 !)	+()*6
O
PP	+)*+7
C  
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,
E
FF	+-./;-[012 		'[012 
++,-9,[./0 		)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5
N
OO	+z".
G
HH	+~&2	()[<.) 
+()*6
O
PP	r#   c                 6   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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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dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             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             |S )!Nr   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   rj  rk  rl  enhancePromptrS   r6   s       r!   _GenerateImagesConfig_to_vertexrp    sY   
 !)	+()*6	|$[+,- 
+)*+7	'([,-. 
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5	~&[?+, 
+z".
Dxj$AB	+~&2	()[<.) 
+()*6	'[+,- 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      t	        t        |dg      ||       |S NrV   rW   r   r   r   )r4   r5   rY   rZ   rm  r   s        r!   "_GenerateImagesParameters_to_mldevrs    s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z"."[8*%y+ 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      t	        t        |dg      ||       |S rr  )r4   r5   rY   rZ   rp  r   s        r!   #_GenerateImagesParameters_to_vertexru    s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".#[8*%y+ 
r#   c                 @   i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      $t        |dgt        t        | dg      ||             |S c c}w Nr_   r`   r   r   positivePromptSafetyAttributes!positive_prompt_safety_attributes)r4   r5   _GeneratedImage_from_mldev_SafetyAttributes_from_mldevrM   s        r!   "_GenerateImagesResponse_from_mldevr|  4  s    
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 'tYD	
 
+89:F	,-$?@A	
 
#	
   Bc                 @   i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      $t        |dgt        t        | dg      ||             |S c c}w rw  )r4   r5   r   _SafetyAttributes_from_vertexrM   s        r!   #_GenerateImagesResponse_from_vertexr  W  s    
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (iE	
 
+89:F	,-%?@A	
 
#	
r}  c                 j   i }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d	gt        | dg             t        | d
g      t        d      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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dgt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t	        |||       c}       t        | dg      t        d      t        | d g      t        d!      |S c c}w )"Nnumber_of_videosr   r   r   rh  fpsz-fps parameter is not supported in Gemini API.duration_secondsdurationSecondsr   ri  r   r   
resolutionr   r   pubsub_topicz6pubsub_topic parameter is not supported in Gemini API.r   r   rl  ro  generate_audioz8generate_audio parameter is not supported in Gemini API.
last_framer   	lastFramer   r   maskz.mask parameter is not supported in Gemini API.compression_qualityz=compression_quality parameter is not supported in Gemini API.)r4   r5   r   _Image_to_mldev'_VideoGenerationReferenceImage_to_mldevrM   s        r!   _GenerateVideosConfig_to_mldevr  z  s   
 !)	+*+,8	}%[-./ 
+()*6
O
PP	+w+
D
EE	+*+,8	()[-./ 
+x ,
E
FF	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4
M
NN	+)*+7	'([,-. 
+()*6	'[+,- 
+()*6
O
PP	+~&2	%|n-y+	
 
+*+,8	*+
 [+=*>?		
  4i	
	 
+x ,
E
FF	+-./;
G  
!	
s   #H0c                 R   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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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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dgt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t        |||       c}       t        | dg      %t        |ddgt	        t        | dg      ||             t        | dg      t        |ddgt        | dg             |S c c}w )Nr  r   r   r   r   r  r  r  r   r   r   r  r   r   r  pubsubTopicr   r   rl  ro  r  generateAudior  r   r  r   r   r  r  r   )r4   r5   _Image_to_vertex(_VideoGenerationReferenceImage_to_vertex_VideoGenerationMask_to_vertexrM   s        r!   _GenerateVideosConfig_to_vertexr    sn   
 !)	+*+,8	}%[-./ 
+()*6	|$[+,- 
+w+u-tK%/IJ	+*+,8	()[-./ 
+x ,v.[6(0KL	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4	}%[>*+ 
+)*+7	'([,-. 
+()*6	'[+,- 
+()*6	'[+,- 
+~&2	%|n-y+	
 
+*+,8	*+
 [+=*>?		
  5i	
	 
+x ,	 &vh'K	
 
+-./;	+,[012 
1	
s   .J$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dg      %t        |dgt        t        | ddg      ||             t        | ddg      %t        |dgt        t        | ddg      ||             |S )Nr   r   doneerrorr  generateVideoResponseresult)r4   r5   "_GenerateVideosResponse_from_mldevr6   s       r!   #_GenerateVideosOperation_from_mldevr  \  s-   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
$;<=I	*z+BCD	
 
+
$;<=I	
*z+B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        t        | dg      ||             t        | dg      $t        |dgt        t        | dg      ||             |S )Nr   r   r  r  r  r  )r4   r5   #_GenerateVideosResponse_from_vertexr6   s       r!   $_GenerateVideosOperation_from_vertexr    s   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
|$0	+zl+Y	
 
+
|$0	
+zl+Y	
 
r#   c                 *   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      %t        |ddgt        t        |dg      ||             t        |dg      t        t        |dg      ||       t        |dg      t        t        |dg      ||       |S 	NrV   rW   r   r   imagevideosourcer   )r4   r5   rY   rZ   r  _Video_to_mldev_GenerateVideosSource_to_mldevr  r   s        r!   "_GenerateVideosParameters_to_mldevr    s7    !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	![7)4iM 
+y!-	![7)4iM 
+z"."[8*%y+ 
+z"."[8*%y+ 
r#   c                 *   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      %t        |ddgt        t        |dg      ||             t        |dg      t        t        |dg      ||       t        |dg      t        t        |dg      ||       |S r  )r4   r5   rY   rZ   r  _Video_to_vertex_GenerateVideosSource_to_vertexr  r   s        r!   #_GenerateVideosParameters_to_vertexr    s7    !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	!kG95y+N 
+y!-	!kG95y+N 
+z".#[8*%y+ 
+z".#[8*%y+ 
r#   c                 *   i }t        | dg      2t        |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             |S c c}w )NgeneratedSamplesgenerated_videosraiMediaFilteredCountrai_media_filtered_countraiMediaFilteredReasonsrai_media_filtered_reasons)r4   r5   _GeneratedVideo_from_mldevrM   s        r!   r  r  	  s    
 !)	+*+,8	 [+=*>?	
 'tYD	
 
+/01=	#$[234 
+123?	%&[456 
)	
   Bc                 *   i }t        | dg      2t        |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             |S c c}w )Nvideosr  r  r  r  r  )r4   r5   _GeneratedVideo_from_vertexrM   s        r!   r  r  '	  s    
 !)	+z".	 [8*5	
 (iE	
 
+/01=	#$[234 
+123?	%&[456 
)	
r  c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S Nr   r   r  r  )r4   r5   r  r  r6   s       r!   r  r  H	  s    
 !)	+z".14hZ3P 
+y!-	![7)4iM 
+y!-	![7)4iM 
r#   c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S r  )r4   r5   r  r  r6   s       r!   r  r  d	  s    
 !)	+z".14hZ3P 
+y!-	!kG95y+N 
+y!-	!kG95y+N 
r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )N_selfr  r   )r4   r5   _Image_from_vertexrM   s        r!   _GeneratedImageMask_from_vertexr  	  s    
 !)	+y!-	wi()[	
 
+z".H:kH:1NOO 
  Ps   	A*c           
         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      ||             |S )Nr  r  raiFilteredReasonrai_filtered_reasonsafety_attributes)r4   r5   _Image_from_mldevr{  r6   s       r!   rz  rz  	  s    
 !)	+y!-		${WI6	;O 
++,-9	[./0 
+y!-	$wi()[	
 
r#   c           
      f   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        | dg             |S )Nr  r  r  r  r  r   enhanced_prompt)r4   r5   r  r  r6   s       r!   r   r   	  s    
 !)	+y!-		wi()[	
 
++,-9	[./0 
+y!-	%wi()[	
 
+z".&'kH:)FG	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  )r4   r5   _Video_from_mldevr6   s       r!   r  r  	  sE    
 !)	+y!-		${WI6	;O 
r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  r  )r4   r5   _Video_from_vertexr6   s       r!   r  r  	  sH    
 !)	+y!-		wi()[	
 
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             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+      |S ),Nr-  rO  r  r  r;  rP  r  r  enable_affective_dialogenableAffectiveDialogr&  r'  r#  r  r  r7  r8  r$  r%  r!  r"  r(  r)  r5  r6  r*  r+  r,  rN  r   r9  r:  r  r   r  r<  r=  r  r  r  r  r@  rQ  r3   r6   s       r!   r   r   	  s   
 !)	+012>	[345 
+./0<	[123 
+)*+7%&[;L:M(NO	+)*+7%&[;L:M(NO	+123?	 ![456 
++,-9	[./0 
+
|$0ZL${ZL"AB	++,-9%&[;N:O(P 
+*+,8%&[;M:N(O 
+*+,8%&[;M:N(O 
++,-9	[./0 
+,-.:	[/01 
+-./;	[012 
+)*+7%&[;L:M(NO	+()*6_%tK:J9K'LM	+x ,VHd;9:	+()5^$d;8I&JK	+()*6_%tK:J9K'LM	+'3]OT+%GH	+)*+7%&[;L:M(NO	+y!-VHd;	:;	+y!-VHd;	:;	+789E
P  
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!   _GetModelParameters_to_mldevr  p
  r   r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!   _GetModelParameters_to_vertexr  
  r   r#   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Nauth_configz5auth_config parameter is not supported in Gemini API.enable_widgetenableWidgetr   r6   s       r!   _GoogleMaps_to_mldevr  
  sS    
 !)	+'3
L
MM	+()5^$d;8I&JK	r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )	Nsearch_typessearchTypesexclude_domainsz9exclude_domains parameter is not supported in Gemini API.blocking_confidencez=blocking_confidence parameter is not supported in Gemini API.time_range_filtertimeRangeFilterr3   r6   s       r!   _GoogleSearch_to_mldevr  
  s    
 !)	+'(4]OT+7G%HI	+)*+7
C  
+-./;
G  
++,-9%&[;N:O(P 
r#   c                 b   i }t        | dg      t        |dg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      t        d
      t        | dg      t        d      |S )Nr   r   rj  	imageSizer   z;person_generation parameter is not supported in Gemini API.prominent_peoplez:prominent_people parameter is not supported in Gemini API.r   z:output_mime_type parameter is not supported in Gemini API.r   zDoutput_compression_quality parameter is not supported in Gemini API.r3   r6   s       r!   rK  rK  
  s    
 !)	+'(4]OT+7G%HI	+~&2[M4l^#DE	++,-9
E  
+*+,8
D  
+*+,8
D  
+456B
N  
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
dgt        | d	g             t        | dg      t        |d
dgt        | dg             |S )Nr   r   rj  r  r   r   r  prominentPeopler   imageOutputOptionsr2   r   r   rS   r6   s       r!   rS  rS  
  s)   
 !)	+'(4]OT+7G%HI	+~&2[M4l^#DE	++,-9	[./0 
+*+,8%&[;M:N(O 
+*+,8	z*[-./ 
+456B	34[789 
r#   c           
          i }t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NbytesBase64Encodedimage_bytesr2   r1   r4   r5   base_tt_bytesr6   s       r!   r  r    so    
 !)	+,-.:	tK*>)?@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        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NgcsUrigcs_urir  r  r2   r1   r  r6   s       r!   r  r    s    
 !)	+z".YKkH:!>?	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r#   c           
          i }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             |S )Nr  z1gcs_uri parameter is not supported in Gemini API.r  r  r1   r2   )r4   r   r5   r  r  r6   s       r!   r  r  2  s    
 !)	+	{#/
H
II	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c           
         i }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        | dg             |S )Nr  r  r  r  r1   r2   r  r6   s       r!   r  r  H  s    
 !)	+	{#/XJ[9+ >?	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c                 j   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d	gt        j                  | t        |dg                   |S 
N	page_size_querypageSize
page_token	pageTokenfilter
query_baserW   
models_urlr4   r5   rY   t_models_urlr   s        r!   _ListModelsConfig_to_mldevr  ^       !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	+~&2		z4l^#DE 
r#   c                 j   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d	gt        j                  | t        |dg                   |S r  r  r   s        r!   _ListModelsConfig_to_vertexr    r  r#   c                 V    i }t        |dg      t        | t        |dg      ||       |S Nr   )r4   r  r   s        r!   _ListModelsParameters_to_mldevr    s:     !)	+z".Dxj19k 
r#   c                 V    i }t        |dg      t        | t        |dg      ||       |S r  )r4   r  r   s        r!   _ListModelsParameters_to_vertexr    s:     !)	+z".Dxj19k 
r#   c                 P   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Et        |dgt        j                  t        | dg            D cg c]  }t	        |||       c}       |S c c}w Nr_   r`   nextPageTokennext_page_tokenr  models)r4   r5   rY   t_extract_models_Model_from_mldevrM   s        r!   _ListModelsResponse_from_mldevr    s    
 !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 dI{;	
 
	
   B#c                 P   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Et        |dgt        j                  t        | dg            D cg c]  }t	        |||       c}       |S c c}w r  )r4   r5   rY   r
  _Model_from_vertexrM   s        r!   _ListModelsResponse_from_vertexr    s    
 !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 tY<	
 
	
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	mask_modemaskModesegmentation_classesmaskClassesmask_dilationdilationrS   r6   s       r!   _MaskReferenceConfig_to_vertexr    s    
 !)	+}%1ZL${[M"BC	+./0<M?D7M6N$O 
+()5ZL${_4E"FG	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             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 )Nr   displayNamer/   r  versionr  tuned_model_infoinputTokenLimitinput_token_limitoutputTokenLimitoutput_token_limitsupportedGenerationMethodssupported_actionsr  maxTemperaturemax_temperaturer  r  r  r  thinkingrS   r6   s       r!   r  r    s)   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+	{#/YKkI;!?@	+y!-'(${WI*FG	+)*+7'(${=N<O*P 
+*+,8	[-./ 
+456B	[789 
+'3]OT+%GH	+()*6&'k<L;M)NO	+x ,WItK&:;	+x ,WItK&:;	+
|$0ZL${ZL"AB	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      2t        |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        t        | d
g      ||             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w c c}w )Nr   r  r/   r  	versionIdr  deployedModels	endpointsr   r  r  defaultCheckpointIddefault_checkpoint_idcheckpoints)r4   r5   r   _TunedModelInfo_from_vertexrM   s        r!   r  r  B  s   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+}%1YKkK=!AB	+()*6	 [+;*<=	
 "$	;?	
 
+z".XJ[8* =>	+y!-	#wi()[	
 
+-./;	 ![012 
+'3	{]O<=$= 
A	
: 	>s   ?F;	F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        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 )Nr7  r8  code_execution_resultcodeExecutionResultexecutable_codeexecutableCode	file_datafileDatafunction_callfunctionCallfunction_responsefunctionResponseinline_data
inlineDatatextthoughtthought_signaturethoughtSignaturevideo_metadatavideoMetadata)r4   r5   r   r  r8   r6   s       r!   rn   rn   {  s'   
 !)	+*+,8%&[;M:N(O 
+/01=	[234 
+)*+7%&[;L:M(NO	+}%1	{m,i	
 
+()5	/0)[	
 
++,-9	[./0 
+'3	}o.	;	
 
+x ,VHd;9:	+	{#/YKkI;!?@	++,-9	[./0 
+()*6_%tK:J9K'LM	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nproduct_imager  r4   r5   r  r6   s       r!   _ProductImage_to_vertexrD    sJ    
 !)	+()5		/0)[	
 
r#   c                 b   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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dgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rl  ro  r   rS   r6   s       r!   _RecontextImageConfig_to_vertexrF    s#   
 !)	+*+,8	}%[-./ 
+~&2	{#[<.) 
+()*6	|$[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+()5	~&[?+, 
+*+,83[-./ 
+456B=[789 
+()*6	'[+,- 
+z".
Dxj$AB	r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       t        |dg      t        t        |dg      ||       |S NrV   rW   r  r   )r4   r5   rY   rZ   _RecontextImageSource_to_vertexrF  r   s        r!   #_RecontextImageParameters_to_vertexrJ  &  s     !)	+y!-				*d;	:; 
+z".#[8*%y+ 
+z".#[8*%y+ 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   r   r   rM   s        r!   #_RecontextImageResponse_from_vertexrL  A  s`    
 !)	+'3	 [=/:	
 (iE	
 
	
   Ac                 F   i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |g dt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   r   person_image)r   personImager  product_imagesproductImages)r4   r5   r  rD  rM   s        r!   rI  rI  T  s    
 !)	+z".14hZ3P 
+'(40~./K	
 
+()*6	) [+;*<=	
 $D)[A	
 
	
s   Bc           
      `   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        | 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        | dg             |S )Nreference_imagereferenceImagereference_idreferenceIdreference_typereferenceTypemask_image_configmaskImageConfigcontrol_image_configcontrolImageConfigstyle_image_configstyleImageConfigsubject_image_configsubjectImageConfig)r4   r5   r  r  ru   r6   s       r!   r   r   u  s   
 !)	+)*+7	012I{	
 
+'(4]OT+7G%HI	+()*6_%tK:J9K'LM	++,-9	&234i	
 
+./0<	)567K	
 
+,-.:	[/01 
+./0<	[123 
r#   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S NsafetyAttributes
categoriesscorescontentTypecontent_typerS   r6   s       r!   r{  r{        
 !)	+*L9:F	[-|<= 
+*H56BH:tK2Dh1OP 
+'3^$d;&HI	r#   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S rc  rS   r6   s       r!   r  r    ri  r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ncategorymethodz0method parameter is not supported in Gemini API.	thresholdr3   r6   s       r!   rD  rD    sv    
 !)	+
|$0ZL${ZL"AB	+z".
G
HH	+}%1[M4k]#CD	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  rC  r6   s       r!   _ScribbleImage_to_vertexrp    sE    
 !)	+y!-		kG95y+N 
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             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gt        | dg             |S )Nr	  r   max_predictionsmaxPredictionsconfidence_thresholdconfidenceThresholdr  maskDilationbinary_color_thresholdbinaryColorThresholdr   rS   r6   s       r!   _SegmentImageConfig_to_vertexry    s/   
 !)	+x ,v.[6(0KL	+)*+7	'([,-. 
+./0<	,-[123 
+()5	~&[?+, 
+012>	-.[345 
+z".
Dxj$AB	r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       t        |dg      t        t        |dg      ||       |S rH  )r4   r5   rY   rZ   _SegmentImageSource_to_vertexry  r   s        r!   !_SegmentImageParameters_to_vertexr|  +  s     !)	+y!-				*d;	:; 
+z".![8*%y+ 
+z".![8*%y+ 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   generated_masks)r4   r5   r  rM   s        r!   !_SegmentImageResponse_from_vertexr  F  s`    
 !)	+'3	 [=/:	
 ,D)[I	
 
	
rM  c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S )Nr   r   r  scribble_imagescribble)r4   r5   r  rp  r6   s       r!   r{  r{  Y  s    
 !)	+z".14hZ3P 
+y!-	!kG95y+N 
+()*6	$ /019k	
 
r#   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nretrieval_configretrievalConfigfunction_calling_configfunctionCallingConfig)r4   r5   r  r6   s       r!   rH  rH  w  s    
 !)	+*+,8%&[;M:N(O 
+123?	 !'8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             t        | dg      $t        |dgt        t        | dg      ||             t        | d	g      t        |d
gt        | d	g             t        | dg      t        d      t        | dg      't        |dgt        | dg      D cg c]  }| c}       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      D cg c]  }| c}       |S c c}w c c}w )N	retrievalz3retrieval parameter is not supported in Gemini API.computer_usecomputerUsefile_search
fileSearchgoogle_searchgoogleSearchcode_executioncodeExecutionenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.function_declarationsfunctionDeclarationsgoogle_maps
googleMapsgoogle_search_retrievalgoogleSearchRetrievalurl_context
urlContextmcp_servers
mcpServers)r4   r   r5   r  r  rM   s        r!   rF  rF    s   
 !)	+}%1
J
KK	+'(4]OT+7G%HI	+'3\ND}o$FG	+()5	/0)[	
 
+()*6_%tK:J9K'LM	+/01=
I  
+/01=	 {-D,EFG$G 
+'3	}o.	;	
 
+123?	 ![456 
+'3\ND}o$FG	+'3	{]O<=$= 
; 	H4 	>s   :	F=+	Gc                 R   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             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      2t        |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      |S c c}w )Nr  r  r  r  z4file_search parameter is not supported in Vertex AI.r  r  r  r  r  enterpriseWebSearchr  r  r  r  r  r  r  r  r  z4mcp_servers parameter is not supported in Vertex AI.)r4   r5   r   r  rM   s        r!   r   r     s   
 !)	+}%1[M4k]#CD	+'(4]OT+7G%HI	+'3
K
LL	+()5^$d;8I&JK	+()*6_%tK:J9K'LM	+/01=	[234 
+/01=	  [+B*CD	
 +4KH	
 
+'3\ND}o$FG	+123?	 ![456 
+'3\ND}o$FG	+'3
K
LL	-	
s   =F$c           	          i }t        | ddg      	 t        |dgt        | ddg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   z&google-vertex-llm-tuning-base-model-id
base_modelrd  re  
updateTimeupdate_timerS   r6   s       r!   r-  r-    s    
 !)
;#KLM 		[8%MNO 
+~&2]OT+~%FG	+~&2]OT+~%FG	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*  rS   r6   s       r!   _UpdateModelConfig_to_mldevr  &      
 !)	+'(4kN;K)LM	+'3kM?)KL	+/01=	[234 
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  rS   r6   s       r!   _UpdateModelConfig_to_vertexr  =  r  r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       |S )NrV   rW   r   r   )r4   r5   rY   rZ   r  r   s        r!   _UpdateModelParameters_to_mldevr  T  ss     !)	+y!-				*d;	:; 
+z".[8*%y+ 
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       |S )NrV   rW   r   )r4   r5   rY   rZ   r  r   s        r!    _UpdateModelParameters_to_vertexr  j  ss     !)	+y!-				*d;	:; 
+z". [8*%y+ 
r#   c                 b   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d	gt        | dg             t        | d
g      t        |g dt        | d
g             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             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             |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   enhance_input_image)r   upscaleConfigenhanceInputImageimage_preservation_factor)r   r  imagePreservationFactorr   r   r   r	  rS   r6   s       r!    _UpscaleImageAPIConfig_to_vertexr    s    
 !)	+()*6	|$[+,- 
+-./;	'[012 
++,-9	)*[./0 
+,-.:	)*[/01 
+*+,83[-./ 
+456B=[789 
+-./;<[012 
+345AB[678 
+z".
Dxj$AB	+*+,8	}%[-./ 
+x ,v.[6(0KL	r#   c                 |   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        |g dt        |dg             t        |dg      t        t        |dg      ||       |S )NrV   rW   r  r   upscale_factor)r   r  upscaleFactorr   )r4   r5   rY   rZ   r  r  r   s        r!   $_UpscaleImageAPIParameters_to_vertexr    s     !)	+y!-				*d;	:; 
+y!-	!kG95y+N 
+()*68[+,- 
+z".$[8*%y+ 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w r   r   rM   s        r!   !_UpscaleImageResponse_from_vertexr    r   r   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  rC  r6   s       r!   r  r    sk    
 !)	+y!-		kG95y+N 
+}%1ZL${[M"BC	r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      /t        t        | dg             t        |dgt        | dg             |S Nr  rX  rY  )r4   r5   r  r)   r6   s       r!   r  r    s    
 !)	+y!-		[7)4iM 
+()*68[+,- 	_%tK:J9K'LM	r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S r  rC  r6   s       r!   r  r  4  sp    
 !)	+y!-		kG95y+N 
+()*6_%tK:J9K'LM	r#   c           
         i }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        | dg             |S )NuriencodedVideovideo_bytesencodingr1   r  r6   s       r!   r  r  G  s    
 !)	+w+UGT+w78	+'(4	tK.)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        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r2   r1   r  r6   s       r!   r  r  ]  s    
 !)	+z".UGT+z:;	+,-.:	tK*>)?@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        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r1   r  r  r6   s       r!   r  r  s  s    
 !)	+w+UGT+w78	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c           
         i }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        | dg             |S )Nr  r  r  r  r1   r2   r  r6   s       r!   r  r    s    
 !)	+w+XJ[5' :;	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c                   	   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deej                     fdZddddd	dedeeej                  ej                  f      d
eeej                  ej                  f      deej                      deej"                     dej$                  fdZdddededeej(                     dej*                  fdZdddededeej0                     deej2                     dej4                  f
dZdddedej8                  dedeej:                     dej<                  f
dZdddedej@                  deejB                     dejD                  fdZ#dddedejH                  deejJ                     dejL                  fdZ'dddedeejP                     dejR                  fdZ*dddeejV                     dejX                  fdZ-dddedeej\                     dejR                  fdZ/dddedeej`                     dejb                  fdZ2dddedeej                  ej                  f   deejf                     dejh                  fdZ5dddedeej                  ej                  f   deejl                     dejn                  fdZ8dddddddedee   deej8                     deejr                     deejt                     deejv                     dejx                  fdZ=dddedeej                  ej                  f   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ej                     fd"Z@dddededeej(                     dej*                  fd#ZAdddededeej0                     deej2                     dej4                  f
d$ZBdddedej8                  dedeej                     dej<                  f
d%ZDdddddddedee   deej8                     deejr                     deejt                     deejv                     dejx                  fd&ZEdddeejV                     deFejR                     fd'Zy)(ModelsNr   rV   rX   r   r   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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|||	      }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  si nt)        j*                  |
j&                        }| j                  j                  rt-        |d |      }| j                  j                  st/        |d |      }t         j"                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j%                  |       |S NrV   rX   r   rW   z{model}:generateContentr  ?r   postshould_return_http_response)r`   r  kwargsheaders)r   _GenerateContentParameters_api_clientvertexairY  r   
format_maprW  r	   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestgetattrGenerateContentResponse_verify_responsebodyjsonloadsrf  rb  _from_response
model_dumpHttpResponser  r`   selfrV   rX   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr  r  return_valueresponse_dicts                r!   _generate_contentzModels._generate_content  si    66O   9


OT?l &))&1	(334DE(8


OT?l &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH g-t 22XNl
''5&mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L &+%7%7  &L" 	%%l3r#   c             #     K   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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                  |      }|t        |dd       rt!        d      | j                  j#                  d	|||	      D ]  }
|
j$                  si nt'        j(                  |
j$                        }| j                  j                  rt+        |d |      }| j                  j                  st-        |d |      }t         j.                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j;                  |       |  y w)Nr  rW   %{model}:streamGenerateContent?alt=sser  r  r   r  FAccessing the raw HTTP response is not supported in streaming methods.r  r  r  )r   r  r  r  rY  r   r  rW  r	   r  r   r  r   r  r  r  r   request_streamedr  r  r  rf  rb  r  r  r  r  r  r`   r  r  rV   rX   r   r  r  r  r  r  r  r  r  r  s                r!   _generate_content_streamzModels._generate_content_stream  si     66O   9


OT?l &))&1	6AA
 78


OT?l &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 $$55lL  !)b4::hmm3Lm				"	"<4
 &&;4
 22AA )C)C)E B l (-'9'9""(l$ ''5/s   I+I-rX   r:   r   r   r:   r   c                   t        j                  |||||      }| j                  j                  rct	        | j                  |d|      }|j                  d      }t        j                  |j                        rdnd}	|r|	j                  |      }
nB|	}
n?t        | j                  |d|      }|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i nt)        j*                  |j&                        }| j                  j                  rt-        |d|      }| j                  j                  st/        |d|      }t         j0                  j3                  ||j5                               }t        j6                  |j8                        |_        | j                  j=                  |       |S )aA  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    rV   rX   r:   r   r   NrW   {model}:embedContent{model}:predict{model}:batchEmbedContentsr  r  r   r  r  r  )r   _EmbedContentParametersPrivater  r  r   r   rY   t_is_vertex_embed_content_modelrV   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   EmbedContentResponser  r  r  r  r`   r  r  rV   rX   r:   r   r   r  r  r  endpoint_urlr  r  r  r  r  r  s                   r!   _embed_contentzModels._embed_contentH  sK   H ::-O   =


OT?l &))&1/0/P/PQ`QfQf/g+m~l	&&'78<


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m $$6
m --<<'A'A'C = L &+%7%7  &L" 	%%l3r#   r   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S )z%Private method for generating images.rV   r   r   NrW   r  r  r  r   r  r  r  )r   _GenerateImagesParametersr  r  ru  r   r  rs  r	   r  r   r  r   r  r  r  r  r  r  r  r|  GenerateImagesResponser  r  r  r  r`   r  r  rV   r   r   r  r  r  r  r  r  r  r  r  s                r!   _generate_imageszModels._generate_images  s'    55O   8


OT?l &))&1	 ++,<= 7


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9
m $$8
m //>>'A'A'C ? L &+%7%7  &L" 	%%l3r#   r   c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S )z$Private method for editing an image.rV   r   r   r   6This method is only supported in the Vertex AI client.NrW   r  r  r  r   r  r  r  )r   _EditImageParametersr  r  r   r   r   r  r	   r  r   r  r   r  r  r  r  r  r  r   EditImageResponser  r  r  r  r`   r  r  rV   r   r   r   r  r  r  r  r  r  r  r  r  s                 r!   _edit_imagezModels._edit_image  s    00)	O $$OPP3


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  4
m **99'A'A'C : L &+%7%7  &L" 	%%l3r#   r  r  c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S )z&Private method for upscaling an image.rV   r  r  r   r	  NrW   r  r  r  r   r  r  r  )r   _UpscaleImageAPIParametersr  r  r   r  r   r  r	   r  r   r  r   r  r  r  r  r  r  r  UpscaleImageResponser  r  r  r  r`   r  r  rV   r  r  r   r  r  r  r  r  r  r  r  r  s                 r!   _upscale_imagezModels._upscale_image@  s    66%	O $$OPP9


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m --<<'A'A'C = L &+%7%7  &L" 	%%l3r#   r  c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S a  Recontextualizes an image.

    There are two types of recontextualization currently supported:
    1) Imagen Product Recontext - Generate images of products in new scenes
       and contexts.
    2) Virtual Try-On: Generate images of persons modeling fashion products.

    Args:
      model (str): The model to use.
      source (RecontextImageSource): An object containing the source inputs
        (prompt, person_image, product_images) for image recontext. prompt is
        optional for product recontext and disallowed for virtual try-on.
        person_image is required for virtual try-on, disallowed for product
        recontext. product_images is required for both product recontext and
        virtual try-on. Only one product image is supported for virtual try-on,
        and up to 3 product images (different angles of the same product) are
        supported for product recontext.
      config (RecontextImageConfig): Configuration for recontextualization.

    Usage:

      ```
      product_recontext_response = client.models.recontext_image(
          model="imagen-product-recontext-preview-06-30",
          source=types.RecontextImageSource(
              prompt="In a modern kitchen setting.",
              product_images=[types.ProductImage.from_file(IMAGE_FILE_PATH)],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = product_recontext_response.generated_images[0].image

      virtual_try_on_response = client.models.recontext_image(
          model="virtual-try-on-001",
          source=types.RecontextImageSource(
              person_image=types.Image.from_file(IMAGE1_FILE_PATH),
              product_images=[types.ProductImage.from_file(IMAGE2_FILE_PATH)],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = virtual_try_on_response.generated_images[0].image
      ```
    rV   r  r   r	  NrW   r  r  r  r   r  r  )r   _RecontextImageParametersr  r  r   rJ  r   r  r	   r  r   r  r   r  r  r  r  r  r  rL  RecontextImageResponser  r  r  r  rV   r  r   r  r  r  r  r  r  r  r  r  s                r!   recontext_imagezModels.recontext_image  s   n 55O $$OPP8


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9
m //>>'A'A'C ? L 	%%l3r#   c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S )a"  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(IMAGE_FILE_PATH),
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r  r	  NrW   r  r  r  r   r  r  )r   _SegmentImageParametersr  r  r   r|  r   r  r	   r  r   r  r   r  r  r  r  r  r  r  SegmentImageResponser  r  r  r  s                r!   segment_imagezModels.segment_image  s   @ 33O $$OPP6


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m --<<'A'A'C = L 	%%l3r#   c                F   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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i nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S 	NrV   r   rW   {name}r  r  r   r   r  )r   _GetModelParametersr  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  Modelr  r  r  r  rV   r   r  r  r  r  r  r  r  r  r  s               r!   r   z
Models.getC  s    //O   2


OT?l &))&1	""#341


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3r#   c                   t        j                  |      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r=|j                  d      r,|j                  d      }| d| }|r$|dt        |       z  }n|r| dt        |       }|j                  d	d        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d
|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S Nr  rW   z{models_url}r  r  z?filter=&r  r   r   r  r  )r   _ListModelsParametersr  r  r  r   r  r  r  r	   r   r  r   r  r  r  r  r  r  r  r  ListModelsResponser  r  r  r  r`   r  r  r   r  r  r  r  r  query_param_filterr  r  r  r  s               r!   _listzModels._list  si    11O   4


OT?l &))&1	(()9:3


OT?l &))&1	(()9:##H-L((2'++H5vX012d	!Il+,--	vQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  5
m $$4
m ++::'A'A'C ; L &+%7%7  &L" 	%%l3r#   c                F   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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i nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 
Nr!  rW   z{model}r"  r  r  r   patchr  )r   _UpdateModelParametersr  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r$  r  r  r  r%  s               r!   updatezModels.update  s    22O   5


OT?l &))&1	##$454


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''|\H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3r#   c                   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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i nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                  	      |_        | j                  j7                  |       |S 
Nr!  rW   r"  r  r  r   deleter  r  )r   _DeleteModelParametersr  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   DeleteModelResponser  r  r  r  r`   r  r%  s               r!   r5  zModels.delete	  s$    22O   5


OT?l &))&1	""#344


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3r#   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S )a8  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = client.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    r  NrW   {model}:countTokensr  r  r   r  r  r  )r   _CountTokensParametersr  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   CountTokensResponser  r  r  r  r`   r  r  s                r!   count_tokenszModels.count_tokensQ  s'   8 22O   5


OT?l &))&1	$//0@A$4


OT?l &))&1	$//0@A$##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3r#   c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |
j0                        |_        | j                  j5                  |       |S )az  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.

    This method is not supported by the Gemini Developer API.

    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = client.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r	  NrW   {model}:computeTokensr  r  r   r  r  r  )r   _ComputeTokensParametersr  r  r   r]   r   r  r	   r  r   r  r   r  r  r  r  r  r  rc   ComputeTokensResponser  r  r  r  r`   r  r  s                r!   compute_tokenszModels.compute_tokens  s   < 44O $$OPP7


OT?l &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  8
m ..=='A'A'C > L &+%7%7  &L" 	%%l3r#   r   r  r  r  r   r  c                N   t        j                  ||||||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nBd}
n?t        | j                  |d|      }|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i nt#        j$                  |j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S )
z%Private method for generating videos.rV   r   r  r  r  r   NrW   {model}:predictLongRunningr  r  r   r  r  )r   _GenerateVideosParametersr  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  GenerateVideosOperationr  r  r  r  rV   r   r  r  r  r   r  r  r  r  r  r  r  r  r  s                   r!   _generate_videoszModels._generate_videos  s    55O   8


OT?l &))&1	+667GH+7


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L 	%%l3r#   c                   | j                   j                  s| j                  |||      S t        j                  |      r_t        j
                  |      }t        |      dkD  rt        d      | j                  |d|d   t        j                  j                  |      S | j                  |d|t        j                  j                  |      S )a  Calculates embeddings for the given contents.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )

      # Multimodal embeddings are only supported for the Vertex AI API.
      multimodal_embeddings = client.models.embed_content(
          model='gemini-embedding-2-exp-11-2025',
          contents=[
              types.Part.from_uri(
                  file_uri='gs://generativeai-downloads/images/scones.jpg',
                  mime_type='image/jpeg',
              ),
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  r
   HThe embedContent API for this model only supports one content at a time.Nr   r  )rV   r:   rX   r   r   r  r  r   rY   r  r[   lenr   r   EmbeddingApiTyper   r   r  rV   rX   r   normalized_contentss        r!   embed_contentzModels.embed_contentU  s    V $$  ux OO((/LL2	 	!A	%
 	
   %a("33AA !     "33;; !  r#   c                   t        j                  |      }t        j                  |      }|r@|j                  r4t	        j
                  |j                        rt        j                  d      t        j                  |      r| j                  |||      S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj!                  t#        t$        |            }t&        j)                  d|       | j                  |||      S t        j*                  |      }	t&        j-                  d|	 d       g }
t        j.                         }d}|	dkD  r|d	z  }| j                  |||      }t        j0                  |      }|snR|snN|j2                  r<|j2                  d   j4                  r#|j2                  d   j4                  j6                  snt        j8                  ||      }|snt&        j-                  d
| d       |	d	z  }	|	dk(  rt&        j-                  d       |j2                  d   j4                  }t        j:                  d|      }t=        j>                  |      }|
s|
jA                  |       t        |tB              r"|jE                  |       |jE                  |       |
jE                  |       |
jE                  |       |	dkD  rt        jF                  |      r	||
|_$        |S )a  Makes an API request to generate content using a model.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      )
      print(response.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text(text='What is shown in this image?'),
          types.Part.from_uri(file_uri='gs://generativeai-downloads/images/scones.jpg',
          mime_type='image/jpeg')
        ]
      )
      print(response.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    6MCP sessions are not supported in synchronous methods.r  r   rx   , Tools at indices [%s] are not compatible with automatic function calling (AFC). AFC is disabled. If AFC is intended, please include python callables in the tool list, and do not include function declaration and MCP server in the tool list.&AFC is enabled with max remote calls: .r
   AFC remote call 	 is done.8Reached max remote calls for automatic function calling.userrm   rl   )%r   "find_afc_incompatible_tool_indexesparse_config_for_mcp_usagerx   r   has_mcp_session_usager   UnsupportedFunctionErrorshould_disable_afcr  
isinstancer   GenerateContentConfigrM  dictr   joinmapstrloggerwarningget_max_remote_calls_afcinfor  get_function_mapr[  r:   rl   get_function_response_partsContentrY   r[   extendlistappendshould_append_afc_history"automatic_function_calling_history)r  rV   rX   r   incompatible_tools_indexesparsed_configoriginal_tools_lengthrx   indices_strremaining_remote_calls_afcrs  r  ifunction_mapfunc_response_partsfunc_call_contentfunc_response_contents                    r!   generate_contentzModels.generate_content  s0   D 	77?  !;;FCM,,]-@-@A++
B  &&}5## $   "	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DED 	
 ## $   ".!F!F" KK
01K0LAN ?A&,,.H	A
$q
(1fa'' ( h "22=Al!!$$Q'//$$Q'//55(DD
L !kk$QCy12 A% 	#q	(NO"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFO %q
(R 	..}=  - 1 Or#   c             #     K   t        j                  |      }t        j                  |      }|r@|j                  r4t	        j
                  |j                        rt        j                  d      t        j                  |      r| j                  |||      E d{    y|rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj!                  t#        t$        |            }t&        j)                  d|       | j                  |||      E d{    yt        j*                  |       t        j,                  |      }	t&        j/                  d|	 d	       g }
d}d}d}|	dkD  rw|d
z  }| j                  |||      }t        j0                  |      }|d
k(  r|D ]  }|st        j2                  ||      }|  |j4                  r<|j4                  d   j6                  r#|j4                  d   j6                  j8                  s nt        j:                  ||      }|rt        j2                  ||      }|  n|D ]8  }t        j<                  |      r|
|_        t        j2                  ||      }| : |H|j4                  r<|j4                  d   j6                  r#|j4                  d   j6                  j8                  syt        j:                  ||      }|sy|syt&        j/                  d| d       |	d
z  }	|	dk(  rt&        j/                  d       ||j4                  |j4                  d   j6                  }t        j@                  d|      }tC        jD                  |      }|
s|
jG                  |       t        |tH              r$|"|jK                  |       |jK                  |       ||
jK                  |       |
jK                  |       |	dkD  rvyy7 7 ҭw)a  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    rS  r  Nr   rx   rT  z_Tools at indices [%s] are not compatible with automatic function calling. AFC will be disabled.rV  rW  r
   rX  rY  rZ  r[  r\  )&r   r]  r^  rx   r   r_  r   r`  ra  r  rb  r   rc  rM  rd  r   re  rf  rg  rh  ri  'raise_error_for_afc_incompatible_configrj  rk  rl  append_chunk_contentsr[  r:   rl   rm  rr  rs  rn  rY   r[   ro  rp  rq  )r  rV   rX   r   rt  ru  rv  rx   rw  rx  rs  chunkr{  ry  r  rz  r|  r}  s                     r!   generate_content_streamzModels.generate_content_stream;  s2    D 	77?  !;;FCM,,]-@-@A++
B  &&}5.. /    !	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DE-	

 .. /     88G!-!F!F" KK
01K0LAN ?A&E	A
$q
(1fa.. / h "22=Al	
a  	E#99(EJHK $$''*22''*2288"."J"J|# '%;;HeLhk!	(  	E33MB2 4 "77%H(+	 M####A&..##A&..44
*FF<
  kk$QCy12 A% 	#q	(NO 
	u//;!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHU %q
(Q*s3   BP?P9CP?*P<+DP?9F<P?7P?<P?c                ,   | j                  |||      }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S )ap  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = client.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  NPositive Promptr   ry  r  r   r  rh  rq  r   r  	r  rV   r   r   api_responsery  r   generated_imager  s	            r!   generate_imageszModels.generate_images  s    : (( ) L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH Or#   c                ,    | j                  ||||      S )aL  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = client.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  r  r  rV   r   r   r   s        r!   
edit_imagezModels.edit_image4  s)    b )	   r#   c                h   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      |j                  d
d      |j                  dd      |j                  dd      
      }d|d<   d|d<   | j                  ||||      S )a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response=client.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  r  Nr   r   r   r   r   r   r  r  r   
r  r   r   r   r   r   r   r  r  r   upscaler	  r
   r   	r   UpscaleImageParametersrb  UpscaleImageConfigr  rd  _UpscaleImageAPIConfigDictr   r  r  rV   r  r  r   
config_dct
api_configs          r!   upscale_imagezModels.upscale_imagel  s8   B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=&NN+@$G$..)<dC%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
 ~~h-J$ #Jv%&J!"%	   r#   c          
      D   |s|s|r|rt        d      i }| j                  j                  s|rt        |t        j
                        r|j                         }nt        |      }|j                  d      r|j                  d      rt	        j
                  |j                  d      |j                  d            }nL| j                  j                  s5|r2t        |t        j                        r#|j                         }|j                  di       }nht        |      }t        |j                  d      t        j
                        r4|j                  dt	        j
                               }	|	j                         }|r|j                  d      rz|j                  d      rit	        j                  |j                  d      |j                  d      t	        j
                  |j                  d      |j                  d            	      }| j                  ||||||
      S )  Generates videos based on an input (text, image, or video) and configuration.

    The following use cases are supported:
    1. Text to video generation.
    2a. Image to video generation (additional text prompt is optional).
    2b. Image to video generation with frame interpolation (specify last_frame
    in config).
    3. Video extension (additional text prompt is optional)

    Args:
      model: The model to use.
      prompt: The text prompt for generating the videos. Optional for image to
        video and video extension use cases. This argument is deprecated, please
        use source instead.
      image: The input image for generating the videos. Optional if prompt is
        provided. This argument is deprecated, please use source instead.
      video: The input video for video extension use cases. Optional if prompt
        or image is provided. This argument is deprecated, please use source
        instead.
      source: The input source for generating the videos (prompt, image, and/or
        video)
      config: Configuration for generation.

    Usage:

      ```
      operation = client.models.generate_videos(
          model="veo-2.0-generate-001",
          source=types.GenerateVideosSource(
              prompt="A neon hologram of a cat driving at top speed",
          ),
      )
      while not operation.done:
          time.sleep(10)
          operation = client.operations.get(operation)

      operation.result.generated_videos[0].video.uri
      ```
    MSource and prompt/image/video are mutually exclusive. Please only use source.r  r  r1   r  r1   r  r   r  r   r  r  rD  r   r  r  rb  r   Videor  rd  r   GenerateVideosSourcerI  
r  rV   r   r  r  r  r   	video_dct
source_dct	video_objs
             r!   generate_videoszModels.generate_videos  s   b 	%5f' 
 !#I$$	E5;;	'$$&	K		u	)--">e$	k0J
 &&6	FE66	7&&(
NN7B/	&\
jnnW-u{{;#->>'5;;=#I)**,)	y}}U+	m0L++>>(+..)++MM%(#--4
    !  r#   c                |   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |      |      S )a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response=client.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response=client.models.list(config={'page_size': 5, 'query_base': True})
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r  T&filter=labels.tune-type:*labels.tune-type:*r	  )r   r)  r   ListModelsConfigr  r  r  copyr  r   r-  r  r   filter_values      r!   rp  zModels.list  s    8 	##6299 	$!!#   f  {{}f}}  77% 	
 



&
!	 r#   )G__name__
__module____qualname__rg  r   r   ContentListUnionContentListUnionDictr   GenerateContentConfigOrDictr  r  r   r  ContentUnionContentUnionDictrN  EmbedContentConfigOrDictr  r   GenerateImagesConfigOrDictr  r  rp  _ReferenceImageAPIOrDictEditImageConfigOrDictr  r  ImageOrDict_UpscaleImageAPIConfigOrDictr  r  RecontextImageSourceOrDictRecontextImageConfigOrDictr  r  SegmentImageSourceOrDictSegmentImageConfigOrDictr  r  GetModelConfigOrDictr$  r   ListModelsConfigOrDictr*  r-  UpdateModelConfigOrDictr2  DeleteModelConfigOrDictr7  r5  CountTokensConfigOrDictr;  r<  ComputeTokensConfigOrDictr@  rA  VideoOrDictGenerateVideosSourceOrDictGenerateVideosConfigOrDictrG  rI  rQ  r~  r  r  r  UpscaleImageConfigOrDictr  r  r    r#   r!   r  r    s!    =AO O e,,e.H.HHI	O
 u889O $$Ol =AT T e,,e.H.HHI	T
 u889T --.Tx  =A9=h h 
&&(B(BB
C	h 
""E$:$::
;h #5#9#9:h u556h !!h^ <@J J 	J
 u778J ##Jd 7;@ @ 	@
 U;;<@ u223@ @P >B@ @ 	@
 @ u99:@ !!@N <@j j ..	j
 u778j ##jb :>S S ,,	S
 u556S !!Sl KO;;#+E,F,F#G;{{;| AEE < <=EEV 9=	@ @ u445	@
 {{@L 9=	F F u445	F
   FZ 9=] ] e,,e.H.HHI	]
 u445]   ]H ;?S S e,,e.H.HHI	S
 u667S ""Sr #+/+/;?;?N N sm	N
 e''(N e''(N u778N u778N $$Nj :>C C e,,e.H.HHI	C
 u556C !!CT =A_ _ **	_
 u889_ $$_L =A@I @I **	@I
 u889@I --.@IN <@5 5 	5
 u7785 ##5z 7;6 6 	6
 U;;<6 u2236 6| :>H H 	H
 H u556H !!H\ #+/+/;?;?[ [ sm	[
 e''([ e''([ u778[ u778[ $$[@ 8<0 u3340 U[[	0r#   r  c                   6
   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deeej                        fdZddddd	dedeeej                  ej                  f      d
eeej                  ej                   f      deej"                     deej$                     dej&                  fdZdddededeej*                     dej,                  fdZdddededeej2                     deej4                     dej6                  f
dZdddedej:                  dedeej<                     dej>                  f
dZ dddedejB                  deejD                     dejF                  fdZ$dddedejJ                  deejL                     dejN                  fdZ(dddedeejR                     dejT                  fdZ+dddeejX                     dejZ                  fdZ.dddedeej^                     dejT                  fdZ0dddedeejb                     dejd                  fdZ3dddedeej                  ej                  f   deejh                     dejj                  fdZ6dddedeej                  ej                  f   deejn                     dejp                  fdZ9dddddddedee   deej:                     deejt                     deejv                     deejx                     dejz                  fdZ>dddedeej                  ej                  f   deej                     dej                  fd Z?dddedeej                  ej                  f   deej                     deej                     fd!Z@dddededeej2                     deej4                     dej6                  f
d"ZAdddeejX                     deBejT                     fd#Zdddededeej*                     dej,                  fd$ZCdddedej:                  dedeej                     dej>                  f
d%ZEdddddddedee   deej:                     deejt                     deejv                     deejx                     dejz                  fd&ZFdddedeej                  ej                  f   deej$                     dej&                  fd'ZGy)(AsyncModelsNr  rV   rX   r   r   c                4  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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 {   }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  si nt)        j*                  |
j&                        }| j                  j                  rt-        |d |      }| j                  j                  st/        |d |      }t         j"                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j%                  |       |S 7 +wr  )r   r  r  r  rY  r   r  rW  r	   r  r   r  r   r  r  async_requestr  r  r  r  r  r  rf  rb  r  r  r  r  r`   r  s                r!   r  zAsyncModels._generate_contentH  sw     66O   9


OT?l &))&1	(334DE(8


OT?l &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H g-t 22XNl
''5&mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L &+%7%7  &L" 	%%l3=s   E(J*J+D+Jc                <   
K   t        j                  |||      
 j                  j                  r@t	         j                  
d 
      }|j                  d      }|rdj                  |      }nBd}n?t         j                  
d 
      }|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                  |      }|t        |dd       rt!        d       j                  j#                  d	|||       d {   
 fd
}	 |	       S 7 w)Nr  rW   r  r  r  r   r  r  r  c                   K   2 3 d {   } | j                   si nt        j                  | j                         }j                  j                  rt        |d       }j                  j                  st        |d       }t        j                  j                  |j                               }t        j                  | j                        |_        j                  j                  |       | 7 6 y w)Nr  r  )r  r  r  r  r  rf  rb  r   r  r  r  r  r  r`   r  )r  r  r  r  response_streamr  s      r!   async_generatorz=AsyncModels._generate_content_stream.<locals>.async_generator  s     +  "*--TZZ5N$$>T?- ((=T?- 44CC"?+E+E+G D 
 */););$$*
& 	)),7+Os&   C;C9C7C9C)C;7C99C;)r   r  r  r  rY  r   r  rW  r	   r  r   r  r   r  r  r  r   async_request_streamed)r  rV   rX   r   r  r  r  r  r  r  r  r  s   `         @@r!   r  z$AsyncModels._generate_content_stream  s     66O   9


OT?l &))&1	6AA
 78


OT?l &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 !,,CClL O0 9s   FFFFr  r:   r   c                  K   t        j                  |||||      }| j                  j                  rct	        | j                  |d|      }|j                  d      }t        j                  |j                        rdnd}	|r|	j                  |      }
nB|	}
n?t        | j                  |d|      }|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i nt)        j*                  |j&                        }| j                  j                  rt-        |d|      }| j                  j                  st/        |d|      }t         j0                  j3                  ||j5                               }t        j6                  |j8                        |_        | j                  j=                  |       |S 7 w)aK  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  NrW   r  r  r  r  r  r   r  r  r  )r   r  r  r  r   r   rY   r  rV   r  r   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AsyncModels._embed_content  sY    H ::-O   =


OT?l &))&1/0/P/PQ`QfQf/g+m~l	&&'78<


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m $$6
m --<<'A'A'C = L &+%7%7  &L" 	%%l3/s   FI:I8C)I:r   c                  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S 7 w)z4Private method for generating images asynchronously.r  NrW   r  r  r  r   r  r  r  )r   r  r  r  ru  r   r  rs  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AsyncModels._generate_images^  s5     55O   8


OT?l &))&1	 ++,<= 7


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9
m $$8
m //>>'A'A'C ? L &+%7%7  &L" 	%%l3/   E(I*I+C)Ir   c                   K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 ŭw)z3Private method for editing an image asynchronously.r  r	  NrW   r  r  r  r   r  r  r  )r   r
  r  r  r   r   r   r  r	   r  r   r  r   r  r  r  r  r  r  r   r  r  r  r  r  r`   r  r  s                 r!   r  zAsyncModels._edit_image  s     00)	O $$OPP3


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  4
m **99'A'A'C : L &+%7%7  &L" 	%%l3%   D4G>6G<7CG>r  r  c                   K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 ŭw)z5Private method for upscaling an image asynchronously.r  r	  NrW   r  r  r  r   r  r  r  )r   r  r  r  r   r  r   r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r  r  r  r  r`   r  r  s                 r!   r  zAsyncModels._upscale_image  s     66%	O $$OPP9


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m --<<'A'A'C = L &+%7%7  &L" 	%%l3%r  r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S 7 wr  )r   r  r  r  r   rJ  r   r  r	   r  r   r  r   r  r  r  r  r  r  rL  r  r  r  r  r  s                r!   r  zAsyncModels.recontext_image.  s    n 55O $$OPP8


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9
m //>>'A'A'C ? L 	%%l3!   D3G5G6B!Gc                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S 7 w)a  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(IMAGE_FILE_PATH),
          ),
          config=types.SegmentImageConfig(
              mode=types.SegmentMode.foreground,
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r  r	  NrW   r  r  r  r   r  r  )r   r  r  r  r   r|  r   r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r  r  r  r  s                r!   r  zAsyncModels.segment_image  s    F 33O $$OPP6


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m --<<'A'A'C = L 	%%l3!r  c                b  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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i nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S 7 íw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%  s               r!   r   zAsyncModels.get  s     //O   2


OT?l &))&1	""#341


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3#   E'H/)H-*CH/c                (  K   t        j                  |      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r=|j                  d      r,|j                  d      }| d| }|r$|dt        |       z  }n|r| dt        |       }|j                  d	d        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d
|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S 7 wr'  )r   r)  r  r  r  r   r  r  r  r	   r   r  r   r  r  r  r  r  r  r  r  r*  r  r  r  r  r`   r  r+  s               r!   r-  zAsyncModels._list1  s|     11O   4


OT?l &))&1	(()9:3


OT?l &))&1	(()9:##H-L((2'++H5vX012d	!Il+,--	vQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  5
m $$4
m ++::'A'A'C ; L &+%7%7  &L" 	%%l3/s   F%J'J(C)Jc                b  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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i nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 7 íwr/  )r   r1  r  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r$  r  r  r  r%  s               r!   r2  zAsyncModels.updatez  s     22O   5


OT?l &))&1	##$454


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33|\ H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3#r  c                  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|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i nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                  	      |_        | j                  j7                  |       |S 7 wr4  )r   r6  r  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   r7  r  r  r  r  r`   r  r%  s               r!   r5  zAsyncModels.delete  s2     22O   5


OT?l &))&1	""#344


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3/s   E'I)I*C)Ic                  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S 7 w)aB  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = await client.aio.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    r  NrW   r9  r  r  r   r  r  r  )r   r:  r  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   r;  r  r  r  r  r`   r  r  s                r!   r<  zAsyncModels.count_tokens  s5    8 22O   5


OT?l &))&1	$//0@A$4


OT?l &))&1	$//0@A$##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3/r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|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i nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |
j0                        |_        | j                  j5                  |       |S 7 ŭw)aF  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.


    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = await client.aio.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r	  NrW   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  rc   r@  r  r  r  r  r`   r  r  s                r!   rA  zAsyncModels.compute_tokensc  s    : 44O $$OPP7


OT?l &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  8
m ..=='A'A'C > L &+%7%7  &L" 	%%l3%s   D3G=5G;6CG=rB  r  c                j  K   t        j                  ||||||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nBd}
n?t        | j                  |d|      }|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i nt#        j$                  |j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S 7 íw)
z4Private method for generating videos asynchronously.rD  NrW   rE  r  r  r   r  r  )r   rF  r  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  rG  r  r  r  rH  s                   r!   rI  zAsyncModels._generate_videos  s!     55O   8


OT?l &))&1	+667GH+7


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L 	%%l3+s   E+H3-H1.CH3c                R  K   t        j                  |      }t        j                  |       d{   \  }}t        j                  |      r| j	                  |||       d{   S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj                  t        t        |            }	t        j!                  d|	       | j	                  |||       d{   S t        j"                  |      }
t        j%                  d|
 d       g }t        j&                         }|
dkD  rx| j	                  |||       d{   }|
d	z  }
|
dk(  rt        j%                  d
       t        j(                  ||d      }|sn!|sn|j*                  r<|j*                  d   j,                  r#|j*                  d   j,                  j.                  snt        j0                  ||       d{   }|sn|j*                  d   j,                  }t        j2                  d|      }t5        j6                  |      }|s|j9                  |       t        |t:              r"|j=                  |       |j=                  |       |j=                  |       |j=                  |       |
dkD  rxt        j>                  |      r	|||_         |S 7 7 7 7 7 w)ad  Makes an API request to generate content using a model.

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = await client.aio.models.generate_content(
          model='gemini-2.0-flash',
          contents='User input: I like bagels. Answer:',
          config=types.GenerateContentConfig(
              system_instruction=
                [
                  'You are a helpful language translator.',
                  'Your mission is to translate text in English to French.'
                ]
          ),
      )
      print(response.text)
      # J'aime les bagels.
    Nr  r   rx   rT  rU  rV  rW  r
   rZ  Tis_caller_method_asyncr[  r\  )!r   r]  parse_config_for_mcp_sessionsra  r  rb  r   rc  rx   rM  rd  r   re  rf  rg  rh  ri  rj  rk  r  rl  r[  r:   rl   !get_function_response_parts_asyncrn  rY   r[   ro  rp  rq  rr  rs  )r  rV   rX   r   rt  ru  mcp_to_genai_tool_adaptersrv  rx   rw  rx  rs  r  rz  r{  r|  r}  s                    r!   r~  zAsyncModels.generate_content  s$    P 	77?  88@@ .M- &&}5)) *    "	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DED 	
 )) *    ".!F!F" KK
01K0LAN ?A&,,.H
$q
(-- .  h !A% 	#q	(NO!22
3Dl !!$$Q'//$$Q'//55>>  
 !"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFQ %q
(V 	..}=  - 1 Oi 	A**sa   .L'L3L'$L%CL'2L3A%L'L"B%L'>L%?B8L'9!L'L'L'"L'%L'c                   K   t        j                  |      }t        j                  |       d{   \  }t        j                  |      r+ j	                  |||       d{   fd} ||||      S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj                  t        t        |            }	t        j!                  d|	        j	                  |||       d{   fd} ||||      S t        j"                  |        fd	}
 |
|||      S 7 J7 7 >w)
a2  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    Nr  c                6   K   2 3 d {   }| 7 
6 y wNr  rV   rX   r   r  r  s       r!   base_async_generatorzAAsyncModels.generate_content_stream.<locals>.base_async_generator  #     # 	 	%+	8   r   rx   rT  rU  c                6   K   2 3 d {   }| 7 
6 y wr  r  r  s       r!   r  zAAsyncModels.generate_content_stream.<locals>.base_async_generator  r  r  c                  K   t        j                  |      }t        j                  d| d       g }d }d }d}|dkD  r5|dz  }j	                  | ||       d {   }|dkD  rt        j                  d| d       |dz  }|dkD  r|dk(  rt        j                  d       t        j
                  |d	
      }	|dk(  r|2 3 d {   }|	st        j                  ||      }| '|j                  r<|j                  d   j                  r#|j                  d   j                  j                  s nt        j                  ||	       d {   }|rt        j                  ||      }| |2 3 d {   }t        j                  |      r||_        t        j                  ||      }| A|	sy |sy ||j                  d   j                  }
t        j                  d|      }t        j                   |      }|s|j#                  |       t%        |t&              r$|
"|j)                  |
       |j)                  |       |
|j)                  |
       |j)                  |       |dkD  r4y y 7 7 7 06 7 6 |H|j                  r<|j                  d   j                  r#|j                  d   j                  j                  sy t        j                  ||	       d {  7  }>w)NrV  rW  r   r
   r  rX  rY  rZ  Tr  r[  r\  )r   rj  rh  rk  r  rl  r  r[  r:   rl   r  rr  rs  r   rn  rY   r[   ro  rb  rp  rq  )rV   rX   r   rx  rs  r{  r  ry  r  rz  r|  r}  r  r  s               r!   r  z<AsyncModels.generate_content_stream.<locals>.async_generator  s
    #/#H#H#P kk23M2Na
P AC( e
a&*	Q66(6 7 
 
 q5
++(95
6"a'"q5/14
++H $44.t
 6 &  E%;;HeLhk &&))!,44))!,44::$FF\  "
 )'==hN &  E55f=4 6 $99(EJHK 
"
=
!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHm '*
( &,X m%%%%a(00%%a(0066 BB   s   AK1I6A%K1I?I9I?
BK1I<K1K12J6J7J:C8K14K19I?<K1?K1JA%K1)K,*K1)r   r]  r  ra  r  rb  r   rc  rx   rM  rd  r   re  rf  rg  rh  ri  r  )r  rV   rX   r   rt  ru  r  rv  rx   rw  r  r  r  s   `          @@r!   r  z#AsyncModels.generate_content_stream  s    F 	77? 
 88@@ .M- &&}544 5  h "%=AA!	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DED 	
 44 5  h "%=AA 88G_IB 5(M::] 	A8s4   .FE=3F'F (CFF9F FFc                H   K   | j                  ||||       d{   S 7 w)aV  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = await client.aio.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  Nr  r  s        r!   r  zAsyncModels.edit_image_  s7     b !!)	 "    s   " "c                  K   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |       d{   |      S 7 	w)a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response = await client.aio.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response = await client.aio.models.list(
          config={'page_size': 5, 'query_base': True}
        )
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r  NTr  r  r	  )r   r)  r   r  r  r  r  r  r  r   r-  r  s      r!   rp  zAsyncModels.list  s     < 	##6299 	$!!#   f  {{}f}}  77% 	
 

jjj''	  	(s   B<C
>C?
C
c                H  K   | j                  |||       d{   }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S 7 w)az  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = await client.aio.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  Nr  r  r  r  s	            r!   r  zAsyncModels.generate_images  s     : .. /  L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH O1s   B"B BB"c                  K   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      |j                  d
d      |j                  dd      |j                  dd      
      }d|d<   d|d<   | j                  ||||       d{   S 7 w)a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response = await client.aio.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  r  Nr   r   r   r   r   r   r  r  r   r  r  r	  r
   r   r  r  s          r!   r  zAsyncModels.upscale_image  sF    B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=&NN+@$G$..)<dC%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
 ~~h-J$ #Jv%&J!"$$%	 %    s   D7E 9D>:E c          
      `  K   |s|s|r|rt        d      i }| j                  j                  s|rt        |t        j
                        r|j                         }nt        |      }|j                  d      r|j                  d      rt	        j
                  |j                  d      |j                  d            }nL| j                  j                  s5|r2t        |t        j                        r#|j                         }|j                  di       }nht        |      }t        |j                  d      t        j
                        r4|j                  dt	        j
                               }	|	j                         }|r|j                  d      rz|j                  d      rit	        j                  |j                  d      |j                  d      t	        j
                  |j                  d      |j                  d            	      }| j                  ||||||
       d{   S 7 w)r  r  r  r  r1   r  r  r   r  r  rD  Nr  r  s
             r!   r  zAsyncModels.generate_videosL  s    b 	%5f' 
 !#I$$	E5;;	'$$&	K		u	)--">e$	k0J
 &&6	FE66	7&&(
NN7B/	&\
jnnW-u{{;#->>'5;;=#I)**,)	y}}U+	m0L++>>(+..)++MM%(#--4
 && '    s   H%H.'H,(H.c                  K   | j                   j                  s| j                  |||       d{   S t        j                  |      rgt        j
                  |      }t        |      dkD  rt        d      | j                  |||d   t        j                  j                  |       d{   S | j                  ||t        j                  j                  |       d{   S 7 7 ;7 w)a  Calculates embeddings for the given contents.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )

      # Multimodal embeddings are only supported for the Vertex AI API.
      multimodal_embeddings = await client.aio.models.embed_content(
          model='gemini-embedding-2-exp-11-2025',
          contents=[
              types.Part.from_uri(
                  file_uri='gs://generativeai-downloads/images/scones.jpg',
                  mime_type='image/jpeg',
              ),
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  Nr
   rK  r   r  )rV   rX   r   r   rL  rO  s        r!   rQ  zAsyncModels.embed_content  s    V $$&& '    	((/LL2	 	!A	%
 	
 &&%a("33AA '    &&"33;;	 '   %s4   .C,C&A;C,,C(-4C,!C*"C,(C,*C,)Hr  r  r  rg  r   r   r  r  r   r  r  r  r   r   r  r  r  rN  r  r  r   r  r  r  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r   r  r*  r-  r  r2  r  r7  r5  r  r;  r<  r  r@  rA  r  r  r  rG  rI  r~  r  r  r   r  r  r  r  rQ  r  r#   r!   r  r  F  sA    =AO O e,,e.H.HHI	O
 u889O $$Ol =AY Y e,,e.H.HHI	Y
 u889Y u<<=>YB  =A9=h h 
&&(B(BB
C	h 
""E$:$::
;h #5#9#9:h u556h !!h^ <@J J 	J
 u778J ##Jd 7;@ @ 	@
 U;;<@ u223@ @P >B@ @ 	@
 @ u99:@ !!@N <@j j ..	j
 u778j ##jb :>V V ,,	V
 u556V !!Vr KO==#+E,F,F#G={{=@ AEG < <=GGZ 9=	@ @ u445	@
 {{@L 9=	F F u445	F
   FZ 9=] ] e,,e.H.HHI	]
 u445]   ]H ;?R R e,,e.H.HHI	R
 u667R ""Rp #+/+/;?;?N N sm	N
 e''(N e''(N u778N u778N $$Nj =A  e,,e.H.HHI	
 u889 $$L =AU; U; e,,e.H.HHI	U;
 u889U; U223U;z 7;6 6 	6
 U;;<6 u2236 6v 8<2 u3342 %++	2r <@5 5 	5
 u7785 ##5z :>H H 	H
 H u556H !!H\ #+/+/;?;?[ [ sm	[
 e''([ e''([ u778[ u778[ $$[D :>C C e,,e.H.HHI	C
 u556C !!Cr#   r  )NN)r  loggingtypingr   r   r   r   r   r   urllib.parser	    r   r   r  r   r   r   r   rY   r   r   r  r   r   r4   r   r5   pagersr   r   	getLoggerrh  r"   r&   r)   rd  rg  objectr8   rO   rL   r]   rc   rf   rj   ro   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  rL  rT  rW  rY  rb  rf  rm  rp  rs  ru  r|  r  r  r  r  r  r  r  r  r  r  r  r  rz  r   r  r  r   r  r  r  r  rK  rS  r  r  r  r  r  r  r  r  r  r  r  r  r  rn   rD  rF  rJ  rL  rI  r   r{  r  rD  rp  ry  r|  r  r{  rH  rF  r   r-  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
BaseModuler  r  r  r#   r!   <module>r     s<3  $   K K "  *        & . . % 
		0	1Q Q Q
Q# Q$ Q
QQ	Q /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?tCH~v-.DcN+ %S#X 678 
#s(^	& /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!N /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^F /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^> /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	  /3;?tCH~v-.DcN+ %S#X 678 
#s(^	  /3;?vtCH~v-.vDcN+v %S#X 678v 
#s(^	vx /3;?	  tCH~v-.  DcN+  %S#X 678	 
 
#s(^ J /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?NtCH~v-.NDcN+N %S#X 678N 
#s(^	Nh /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)^ /3;?	**tCH~v-.* DcN+* %S#X 678	*
 
#s(^*^ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?%tCH~v-.%DcN+% %S#X 678% 
#s(^	%T /3;?tCH~v-.DcN+ %S#X 678 
#s(^	& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?#tCH~v-.#DcN+# %S#X 678# 
#s(^	#R /3;?	vvtCH~v-.v DcN+v %S#X 678	v
 
#s(^vx /3;?	iitCH~v-.i DcN+i %S#X 678	i
 
#s(^i^ /3;?	!!tCH~v-.! DcN+! %S#X 678	!
 
#s(^!N /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^F /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?ntCH~v-.nDcN+n %S#X 678n 
#s(^	nf /3;?vtCH~v-.vDcN+v %S#X 678v 
#s(^	vx /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^8 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^6 /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;?dtCH~v-.dDcN+d %S#X 678d 
#s(^	dR /3;?xtCH~v-.xDcN+x %S#X 678x 
#s(^	xz /3;?(tCH~v-.(DcN+( %S#X 678( 
#s(^	(Z /3;?$tCH~v-.$DcN+$ %S#X 678$ 
#s(^	$T /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)^ /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)\ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?tCH~v-.DcN+ %S#X 678 
#s(^	< /3;?tCH~v-.DcN+ %S#X 678 
#s(^	< /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	D /3;?"tCH~v-."DcN+" %S#X 678" 
#s(^	"N /3;?tCH~v-.DcN+ %S#X 678 
#s(^	$ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?otCH~v-.oDcN+o %S#X 678o 
#s(^	oj /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;?&tCH~v-.&DcN+& %S#X 678& 
#s(^	&V /3;?tCH~v-.DcN+ %S#X 678 
#s(^	, /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^$ /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	, /3;?7tCH~v-.7DcN+7 %S#X 6787 
#s(^	7x /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?GtCH~v-.GDcN+G %S#X 678G 
#s(^	GX /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?LtCH~v-.LDcN+L %S#X 678L 
#s(^	Ld /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?5tCH~v-.5DcN+5 %S#X 6785 
#s(^	5t /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?tCH~v-.DcN+ %S#X 678 
#s(^	$ /3;?)tCH~v-.)DcN+) %S#X 678) 
#s(^	)^ /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	@ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?AtCH~v-.ADcN+A %S#X 678A 
#s(^	AL /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^2 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^0 /3;?LtCH~v-.LDcN+L %S#X 678L 
#s(^	Ld /3;?	!!tCH~v-.! DcN+! %S#X 678	!
 
#s(^!L /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	,d[## dN=f+(( fr#   