
    4RjǠ                       d dl mZ d dlmZmZmZ d dlmZ d dlZddl	m
Z
 ddlmZmZmZmZmZmZmZ ddlmZmZmZmZmZ dd	lmZ dd
lmZmZ ddlmZm Z  ddl!m"Z"m#Z# ddl$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddgZ3 G d de      Z4 G d de      Z5 G d d      Z6 G d d      Z7 G d d      Z8 G d d      Z9y)    )annotations)DictListOptional)chainN   )_legacy_response)BodyOmitQueryHeadersNotGivenomit	not_given)is_givenpath_templatemaybe_transformstrip_not_givenasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncPageCursorAsyncPageCursor)AsyncPaginatormake_request_options)credential_list_paramscredential_create_paramscredential_update_params)AnthropicBetaParam)BetaManagedAgentsCredential)"BetaManagedAgentsDeletedCredential)%BetaManagedAgentsCredentialValidationCredentialsAsyncCredentialsc            	         e Zd Zedd       Zedd       Zeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	eeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z
eeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r&   c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/anthropics/anthropic-sdk-python#accessing-raw-response-data-eg-headers
        )CredentialsWithRawResponseselfs    s/var/www/html/meridian/meridian-ai/venv/lib/python3.12/site-packages/anthropic/resources/beta/vaults/credentials.pywith_raw_responsezCredentials.with_raw_response   s     *$//    c                    t        |       S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/anthropics/anthropic-sdk-python#with_streaming_response
        ) CredentialsWithStreamingResponser,   s    r.   with_streaming_responsez#Credentials.with_streaming_response&   s     055r0   Ndisplay_namemetadatabetasextra_headersextra_query
extra_bodytimeoutc          
     ^   |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d|      t        |||dt        j                        t        ||||		      t        
      S )  
        Create Credential

        Args:
          auth: Authentication details for creating a credential.

          display_name: Human-readable name for the credential. Up to 255 characters.

          metadata: Arbitrary key-value metadata to attach to the credential. Maximum 16 pairs, keys
              up to 64 chars, values up to 512 chars.

          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        7Expected a non-empty value for `vault_id` but received anthropic-beta,c              3  2   K   | ]  }t        |        y wNstr.0es     r.   	<genexpr>z%Credentials.create.<locals>.<genexpr>X        5Lc!f5L   managed-agents-2026-04-01+/v1/vaults/{vault_id}/credentials?beta=truevault_idauthr6   r7   r9   r:   r;   r<   bodyoptionscast_to)
ValueErrorr   r   joinr   r   _postr   r   r    CredentialCreateParamsr   r#   
r-   rO   rQ   r6   r7   r8   r9   r:   r;   r<   s
             r.   createzCredentials.create/   s    H VW_Vbcdd	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`zzGRZ[  $0 (
 )?? )+Q[el 0  
 	
r0   r8   r9   r:   r;   r<   c          
     F   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
      S )  
        Get Credential

        Args:
          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r?   <Expected a non-empty value for `credential_id` but received r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z'Credentials.retrieve.<locals>.<genexpr>   rJ   rK   rL   ;/v1/vaults/{vault_id}/credentials/{credential_id}?beta=truerO   credential_idrR   rU   rV   
rW   r   r   rX   r   r   _getr   r   r#   r-   rd   rO   r8   r9   r:   r;   r<   s           r.   retrievezCredentials.retrievep   s    6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`yyM!+
 )+Q[el 0  

 
	
r0   rQ   r6   r7   r8   r9   r:   r;   r<   c       	   
        |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        |||d	t        j                        t        |||	|

      t              S )  
        Update Credential

        Args:
          auth: Updated authentication details for a credential.

          display_name: Updated human-readable name for the credential. 1-255 characters.

          metadata: Metadata patch. Set a key to a string to upsert it, or to null to delete it.
              Omitted keys are preserved.

          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z%Credentials.update.<locals>.<genexpr>   rJ   rK   rL   rb   rc   rP   rR   rS   )rW   r   r   rX   r   r   rY   r   r   r!   CredentialUpdateParamsr   r#   r-   rd   rO   rQ   r6   r7   r8   r9   r:   r;   r<   s              r.   updatezCredentials.update   s   J VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`zzM!+
 ! $0 (
 )?? )+Q[el 0#  
 	
r0   include_archivedlimitpager8   r9   r:   r;   r<   c               v   |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d|      t        t           t        ||||	t        |||dt        j                        	      t        
      S )  
        List Credentials

        Args:
          include_archived: Whether to include archived credentials in the results.

          limit: Maximum number of credentials to return per page. Defaults to 20, maximum 100.

          page: Opaque pagination token from a previous `list_credentials` response.

          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r?   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z#Credentials.list.<locals>.<genexpr>  rJ   rK   rL   rM   rN   rr   rs   rt   r9   r:   r;   r<   queryrt   rU   model)rW   r   r   rX   r   r   _get_api_listr   r   r#   r   r   r   CredentialListParams
r-   rO   rr   rs   rt   r8   r9   r:   r;   r<   s
             r.   listzCredentials.list   s    F VW_Vbcdd	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`!!GRZ[ ;<(+'%%,<!& $
 +?? .# " 
 	
r0   c          
     F   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
      S )  
        Delete Credential

        Args:
          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z%Credentials.delete.<locals>.<genexpr>T  rJ   rK   rL   rb   rc   rR   re   
rW   r   r   rX   r   r   _deleter   r   r$   rh   s           r.   deletezCredentials.delete2  s    6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`||M!+
 )+Q[el 7  

 
	
r0   c          
     F   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
      S )  
        Archive Credential

        Args:
          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z&Credentials.archive.<locals>.<genexpr>  rJ   rK   rL   C/v1/vaults/{vault_id}/credentials/{credential_id}/archive?beta=truerc   rR   re   
rW   r   r   rX   r   r   rY   r   r   r#   rh   s           r.   archivezCredentials.archiveh  s    6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`zzU!+
 )+Q[el 0  

 
	
r0   c          
     F   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
      S )  
        Validate Credential

        Args:
          betas: Optional header to specify the beta version(s) you want to use.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z1Credentials.mcp_oauth_validate.<locals>.<genexpr>  rJ   rK   rL   N/v1/vaults/{vault_id}/credentials/{credential_id}/mcp_oauth_validate?beta=truerc   rR   re   
rW   r   r   rX   r   r   rY   r   r   r%   rh   s           r.   mcp_oauth_validatezCredentials.mcp_oauth_validate  s    6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`zz`!+
 )+Q[el :  

 
	
r0   )returnr+   )r   r3   rO   rE   rQ   zcredential_create_params.Authr6   Optional[str] | Omitr7   zDict[str, str] | Omitr8   List[AnthropicBetaParam] | Omitr9   Headers | Noner:   Query | Noner;   Body | Noner<   'float | httpx.Timeout | None | NotGivenr   r#   rd   rE   rO   rE   r8   r   r9   r   r:   r   r;   r   r<   r   r   r#   rd   rE   rO   rE   rQ   z$credential_update_params.Auth | Omitr6   r   r7   z)Optional[Dict[str, Optional[str]]] | Omitr8   r   r9   r   r:   r   r;   r   r<   r   r   r#   )rO   rE   rr   bool | Omitrs   
int | Omitrt   
str | Omitr8   r   r9   r   r:   r   r;   r   r<   r   r   z+SyncPageCursor[BetaManagedAgentsCredential]rd   rE   rO   rE   r8   r   r9   r   r:   r   r;   r   r<   r   r   r$   rd   rE   rO   rE   r8   r   r9   r   r:   r   r;   r   r<   r   r   r%   __name__
__module____qualname__r   r/   r4   r   r   r\   ri   rp   r   r   r   r    r0   r.   r&   r&      sm   0 0 6 6 .2*.15 )-$("&;D?
?
 ,	?

 +?
 (?
 /?
 &?
 "?
  ?
 9?
 
%?
L 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
%4
v 6:-1>B15 )-$("&;DF
F
 	F

 3F
 +F
 <F
 /F
 &F
 "F
  F
 9F
 
%F
X )- 15 )-$("&;DB
B
 &	B

 B
 B
 /B
 &B
 "B
  B
 9B
 
5B
R 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
,4
v 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
%4
v 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
/4
r0   c            	         e Zd Zedd       Zedd       Zeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	eeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z
eeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r'   c                    t        |       S r*   )AsyncCredentialsWithRawResponser,   s    r.   r/   z"AsyncCredentials.with_raw_response  s     /t44r0   c                    t        |       S r2   )%AsyncCredentialsWithStreamingResponser,   s    r.   r4   z(AsyncCredentials.with_streaming_response  s     5T::r0   Nr5   c          
       K   |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d|      t        |||dt        j                         d	{   t        ||||	
      t               d	{   S 7 $7 w)r>   r?   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z*AsyncCredentials.create.<locals>.<genexpr>  rJ   rK   rL   rM   rN   rP   NrR   rS   )rW   r   r   rX   r   r   rY   r   r   r    rZ   r   r#   r[   s
             r.   r\   zAsyncCredentials.create  s     H VW_Vbcdd	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`ZZGRZ[, $0 (
 )??  )+Q[el 0   
 
 	

s$   BCC
C<C=CCr]   c          
     b  K   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
       d{   S 7 w)r_   r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z,AsyncCredentials.retrieve.<locals>.<genexpr>L  rJ   rK   rL   rb   rc   rR   re   Nrf   rh   s           r.   ri   zAsyncCredentials.retrieve*  s     6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`YYM!+
 )+Q[el 0  

 

 
	
 

   B&B/(B-)B/rj   c       	   
       K   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        |||d	t        j                         d
{   t        |||	|
      t               d
{   S 7 $7 w)rl   r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z*AsyncCredentials.update.<locals>.<genexpr>  rJ   rK   rL   rb   rc   rP   NrR   rS   )rW   r   r   rX   r   r   rY   r   r   r!   rn   r   r#   ro   s              r.   rp   zAsyncCredentials.update`  s    J VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`ZZM!+
 - $0 (
 )??  )+Q[el 0#   
 
 	

s$   B+C-C
.CCCCrq   c               v   |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d|      t        t           t        ||||	t        |||dt        j                        	      t        
      S )rv   r?   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z(AsyncCredentials.list.<locals>.<genexpr>  rJ   rK   rL   rM   rN   rx   ry   r{   )rW   r   r   rX   r   r   r}   r   r   r#   r   r   r   r~   r   s
             r.   r   zAsyncCredentials.list  s    F VW_Vbcdd	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`!!GRZ[ !<=(+'%%,<!& $
 +?? .# " 
 	
r0   c          
     b  K   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
       d{   S 7 w)r   r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z*AsyncCredentials.delete.<locals>.<genexpr>  rJ   rK   rL   rb   rc   rR   re   Nr   rh   s           r.   r   zAsyncCredentials.delete  s     6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`\\M!+
 )+Q[el 7 " 

 

 
	
 

r   c          
     b  K   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
       d{   S 7 w)r   r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z+AsyncCredentials.archive.<locals>.<genexpr>D  rJ   rK   rL   r   rc   rR   re   Nr   rh   s           r.   r   zAsyncCredentials.archive"  s     6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`ZZU!+
 )+Q[el 0   

 

 
	
 

r   c          
     b  K   |st        d|      |st        d|      i t        dt        |      r#dj                  t	        d |D        dg            nt
        i      |xs i }ddi|xs i }| j                  t        d||      t        ||||	      t        
       d{   S 7 w)r   r?   r`   r@   rA   c              3  2   K   | ]  }t        |        y wrC   rD   rF   s     r.   rI   z6AsyncCredentials.mcp_oauth_validate.<locals>.<genexpr>z  rJ   rK   rL   r   rc   rR   re   Nr   rh   s           r.   r   z#AsyncCredentials.mcp_oauth_validateX  s     6 VW_Vbcdd[\i[lmnn	
$ '*hhu5Le5LOjNk/l&m"	
 "	
 *+F`=K^\^`ZZ`!+
 )+Q[el :   

 

 
	
 

r   )r   r   )r   r   r   r   r   )rO   rE   rr   r   rs   r   rt   r   r8   r   r9   r   r:   r   r;   r   r<   r   r   zYAsyncPaginator[BetaManagedAgentsCredential, AsyncPageCursor[BetaManagedAgentsCredential]]r   r   r   r   r0   r.   r'   r'     sn   5 5 ; ; .2*.15 )-$("&;D?
?
 ,	?

 +?
 (?
 /?
 &?
 "?
  ?
 9?
 
%?
L 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
%4
v 6:-1>B15 )-$("&;DF
F
 	F

 3F
 +F
 <F
 /F
 &F
 "F
  F
 9F
 
%F
X )- 15 )-$("&;DB
B
 &	B

 B
 B
 /B
 &B
 "B
  B
 9B
 
cB
R 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
,4
v 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
%4
v 26 )-$("&;D4
4
 	4

 /4
 &4
 "4
  4
 94
 
/4
r0   c                      e Zd ZddZy)r+   c                
   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _	        y rC   )
_credentialsr	   to_raw_response_wrapperr\   ri   rp   r   r   r   r   r-   credentialss     r.   __init__z#CredentialsWithRawResponse.__init__  s    '&>>
 )@@  
 '>>
 %<<
	 '>>
 (??
 #3"J"J**#
r0   Nr   r&   r   Noner   r   r   r   r   r0   r.   r+   r+         
r0   r+   c                      e Zd ZddZy)r   c                
   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _	        y rC   )
r   r	   async_to_raw_response_wrapperr\   ri   rp   r   r   r   r   r   s     r.   r   z(AsyncCredentialsWithRawResponse.__init__  s    '&DD
 )FF  
 'DD
 %BB
	 'DD
 (EE
 #3"P"P**#
r0   Nr   r'   r   r   r   r   r0   r.   r   r     r   r0   r   c                      e Zd ZddZy)r3   c                ~   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        t        |j                        | _        t        |j                        | _        y rC   )	r   r   r\   ri   rp   r   r   r   r   r   s     r.   r   z)CredentialsWithStreamingResponse.__init__  s    '2
 5  
 3
 1
	 3
 4
 #?**#
r0   Nr   r   r   r0   r.   r3   r3     r   r0   r3   c                      e Zd ZddZy)r   c                ~   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        t        |j                        | _        t        |j                        | _        y rC   )	r   r   r\   ri   rp   r   r   r   r   r   s     r.   r   z.AsyncCredentialsWithStreamingResponse.__init__  s    '8
 ;  
 9
 7
	 9
 :
 #E**#
r0   Nr   r   r   r0   r.   r   r     r   r0   r   ):
__future__r   typingr   r   r   	itertoolsr   httpx r	   _typesr
   r   r   r   r   r   r   _utilsr   r   r   r   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   types.beta.vaultsr   r    r!   types.anthropic_beta_paramr"   0types.beta.vaults.beta_managed_agents_credentialr#   8types.beta.vaults.beta_managed_agents_deleted_credentialr$   ;types.beta.vaults.beta_managed_agents_credential_validationr%   __all__r&   r'   r+   r   r3   r   r   r0   r.   <module>r      s    # ' '   ! L L L g g ' ; Z : A l l = \ k q,
-w
/ w
tw
' w
t
 
6
 
6
 
6
 
r0   