
    j:w                    x   d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZ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 ddlmZmZ dd	l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) ddl*m+Z+m,Z,  e-g d      Z.e	g e/f   Z0e	g df   Z1 edeejd                  ejf                  f         Z4 edee&e   e'e   f         Z5djm                  g d      Z7d dZ8d!dZ9 G d de)      Z: G d de,e4e5f         Z; G d de;ejd                  e&e   f   e      Z< G d de;ejf                  e'e   f   e      Z=y)"    )annotationsN)AnyUnionMappingTypeVarCallable	Awaitablecastoverload)Selfoverride   )WorkloadIdentity)	NOT_GIVENOmitQueryHeadersTimeoutNotGiven)is_given
is_mapping)OpenAIAsyncOpenAI)
model_copy)SecurityOptionsFinalRequestOptions)StreamAsyncStream)OpenAIError)DEFAULT_MAX_RETRIES
BaseClient)z/completionsz/chat/completionsz/embeddingsz/audio/transcriptionsz/audio/translationsz/audio/speechz/images/generationsz/images/editszstr | Awaitable[str]_HttpxClientT)bound_DefaultStreamT )<zmissing API key>c                L    j                         t        fd| D              S )Nc              3  D   K   | ]  }|j                         k(    y wN)lower).0keyheaders     o/var/www/internaltesting/Shamanth/prverification/HIS_auto/venv/lib/python3.12/site-packages/openai/lib/azure.py	<genexpr>z_has_header.<locals>.<genexpr>0   s     8syy{f$8s    )r+   any)headersr.   s    `r/   _has_headerr3   .   s    \\^F8888    c                6    t        | d      xs t        | d      S )NAuthorizationapi-key)r3   )r2   s    r/   _has_auth_headerr8   3   s    w0SK4SSr4   c                        e Zd Zd fdZ xZS )MutuallyExclusiveAuthErrorc                $    t         |   d       y )NzThe `api_key`, `azure_ad_token` and `azure_ad_token_provider` arguments are mutually exclusive; Only one can be passed at a time)super__init__)self	__class__s    r/   r=   z#MutuallyExclusiveAuthError.__init__8   s     O	
r4   )returnNone)__name__
__module____qualname__r=   __classcell__r?   s   @r/   r:   r:   7   s    
 
r4   r:   c                  f     e Zd ZU ded<   ded<   edd	 	 	 	 	 d	 fd       Zed
 fd       Z xZS )BaseAzureClientzhttpx.URL | None_azure_endpoint
str | None_azure_deploymentr   retries_takenc                  |j                   t        v rit        |j                        rT|j                  j	                  d      }|7dt        | j                  j                        vrd| |j                    |_         t        | %  ||      S )Nmodelz/deploymentsz/deployments/rL   )
url_deployments_endpointsr   	json_datagetstrbase_urlpathr<   _build_request)r>   optionsrM   rO   r?   s       r/   rW   zBaseAzureClient._build_requestB   s|     ;;00Z@Q@Q5R%%))'2E ^3t}}?Q?Q;R%R -eWW[[MBw%g]%KKr4   c                h   | j                   r| j                  r|t        vrt        j                  |      }|j
                  r`| j                  j                  j                  d      dz   |j                  j                  d      z   }| j                  j                  |      S |S t        | -  |      S )zAdjust the URL if the client was configured with an Azure endpoint + deployment
        and the API feature being called is **not** a deployments-based endpoint
        (i.e. requires /deployments/deployment-name in the URL path).
           /s   /openai/raw_path)rK   rI   rQ   httpxURLis_relative_urlr\   rstriplstrip	copy_withr<   _prepare_url)r>   rP   	merge_urlmerge_raw_pathr?   s       r/   rc   zBaseAzureClient._prepare_urlP   s     !!d&:&:sJ`?`		#I((((1188>LyOaOaOhOhimOnn  ++55~5NNw#C((r4   )rX   r   rM   intr@   zhttpx.Request)rP   rT   r@   z	httpx.URL)rB   rC   rD   __annotations__r   rW   rc   rE   rF   s   @r/   rH   rH   >   s[    %%!!
 	L$L 	L
 
L L ) )r4   rH   c                      e Zd Zedddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zedddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zeddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zdddddddddddddeedddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd
Zedddddddddddededddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       ZeZ	ddZ
edd       Zedd       Zedd       ZddZ xZS )AzureOpenAINFT)azure_deploymentapi_versionapi_keyadmin_api_keyazure_ad_tokenazure_ad_token_providerorganizationwebhook_secretwebsocket_base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validation_enforce_credentialsc                    y r*    )r>   azure_endpointrj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   s                     r/   r=   zAzureOpenAI.__init__d       * r4   c                    y r*   r{   )r>   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   s                    r/   r=   zAzureOpenAI.__init__{       ( r4   )rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   c                    y r*   r{   )r>   rU   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   s                    r/   r=   zAzureOpenAI.__init__   r   r4   )rk   r|   rj   rl   rm   workload_identityrn   ro   rp   projectrq   rr   rU   rs   rt   ru   rv   rw   rx   ry   c                  |t         j                  j                  d      }|t         j                  j                  d      }|r|||t        d      |t         j                  j                  d      }|t	        d      |d|i}ni |d|i}|\|t         j                  j                  d      }|t	        d	      ||j                  d
       d| }n"|j                  d
       d}n|t	        d      |t        }t        | !  |||	|
||||||||||       || _	        || _
        || _        |r|nd| _        |rt        j                  |      | _        yd| _        y)aa  Construct a new synchronous azure openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `AZURE_OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
        - `api_version` from `OPENAI_API_VERSION`
        - `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

        Args:
            azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

            azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

            azure_deployment: A model deployment, if given with `azure_endpoint`, sets the base client URL to include `/deployments/{azure_deployment}`.
                Not supported with Assistants APIs.
        NAZURE_OPENAI_API_KEYAZURE_OPENAI_AD_TOKENMissing credentials. Please pass one of `api_key`, `azure_ad_token`, `azure_ad_token_provider`, or the `AZURE_OPENAI_API_KEY` or `AZURE_OPENAI_AD_TOKEN` environment variables.OPENAI_API_VERSION_Must provide either the `api_version` argument or the `OPENAI_API_VERSION` environment variableapi-versionAZURE_OPENAI_ENDPOINTuMust provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable//openai/deployments//openai2base_url and azure_endpoint are mutually exclusiverl   rm   rp   r   rq   rU   rs   rt   ru   rv   rw   rr   rx   ry   osenvironrS   r   
ValueErrorr`   API_KEY_SENTINELr<   r=   _api_version_azure_ad_token_azure_ad_token_providerrK   r]   r^   rI   )r>   rk   r|   rj   rl   rm   r   rn   ro   rp   r   rq   rr   rU   rs   rt   ru   rv   rw   rx   ry   r?   s                        r/   r=   zAzureOpenAI.__init__      Z ?jjnn%;<G!ZZ^^,CDNGO8NSjSr B  **..)=>Kq   *K8MI}Im[IM%!#0G!H%  L   +,33C899MN^M_`,33C89A) !UVV?&G'%)#+'#1(C!5 	 	
  (-(?%5C!1<Juyy8PTr4   rl   rm   r   rp   r   rq   rr   rk   rn   ro   rU   rs   rw   rt   ru   set_default_headersrv   set_default_queryry   _extra_kwargsc                   t         |   |||||||||||||||||xs | j                  |	xs | j                  |
xs | j                  d|      S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        )rk   rn   ro   )rl   rm   r   rp   r   rq   rr   rU   rs   rw   rt   ru   r   rv   r   ry   r   r<   copyr   r   r   r>   rl   rm   r   rp   r   rq   rr   rk   rn   ro   rU   rs   rw   rt   ru   r   rv   r   ry   r   r?   s                        r/   r   zAzureOpenAI.copy      8 w|'/%)1##+ 3'/!5*?d.?.?"0"HD4H4H+B+cdFcFc  	#  
 	
r4   c                    | j                   | j                   S | j                  }|) |       }|rt        |t              st	        d|       |S y NzOExpected `azure_ad_token_provider` argument to return a string but it returned )r   r   
isinstancerT   r   r>   providertokens      r/   _get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenN  sa    +'''00JE
5# 6 efkelm  Lr4   c                    | j                   dd| j                    iS | j                  r!| j                  t        k7  rd| j                  iS i S Nr6   Bearer r7   r   rl   r   r>   securitys     r/   _auth_headerszAzureOpenAI._auth_headers]  N    +#wt/C/C.D%EFF<<DLL,<<t||,,	r4   c                F    t        |      st        |      ry t        d      Nz"Could not resolve authentication method. Expected either api_key, azure_ad_token or azure_ad_token_provider to be set. Or for one of the `Authorization` or `api-key` headers to be explicitly supplied or omitted"r8   	TypeErrorr>   r2   custom_headerss      r/   _validate_headerszAzureOpenAI._validate_headersg  (    G$(8(H c
 	
r4   c                   t        |j                        ri |j                  ni }t        |      }||_        | j                         }|t	        |d      sd| |d<   |S | j
                  r0| j
                  t        k7  rt	        |d      s| j
                  |d<   |S t        |      st        | j                        r	 |S t        d      Nr6   r   r7   zUnable to handle auth
r   r2   r   r   r3   rl   r   r8   ru   r   r>   rX   r2   rn   s       r/   _prepare_optionszAzureOpenAI._prepare_optionsp  s    @H@Y)<GOO)<_aW%!113%w8-4^4D+E(  \\dll.>>w	2%)\\	"  g&*:4;O;O*P
  455r4   c                   i }i || j                   | j                  xs |d}| j                  r| j                  dk7  rd| j                  i}n| j                         }|rdd| i}| j                  Pt        j                  | j                        }|j                  j                  d      dz   }|j                  |      }n#| j                  d	      }|j                  d
      }|j                  i |      }	|	|fS N)r   
deploymentz<missing API key>r7   r6   r   rZ   s	   /realtimer[   z	/realtimewss)scheme)paramsr   rK   rl   r   rr   r]   r^   r\   r`   rb   rc   
r>   rO   extra_queryauth_headersqueryr   rU   re   realtime_urlrP   s
             r/   _configure_realtimezAzureOpenAI._configure_realtime  s
   

,,009E

 <<DLL,??%t||4L,,.E /75'1BC"".yy!8!89H%..55d;lJN#--~-FL((5H#--U-;L$$IuI$6L  r4   )$r|   rT   rj   rJ   rk   rJ   rl   str | Callable[[], str] | Nonerm   rJ   rn   rJ   ro   AzureADTokenProvider | Nonerp   rJ   rq   rJ   rr   str | httpx.URL | Noners   !float | Timeout | None | NotGivenrt   rf   ru   Mapping[str, str] | Nonerv   Mapping[str, object] | Nonerw   httpx.Client | Nonerx   boolry   r   r@   rA   )"rj   rJ   rk   rJ   rl   r   rm   rJ   rn   rJ   ro   r   rp   rJ   rq   rJ   rr   r   rs   r   rt   rf   ru   r   rv   r   rw   r   rx   r   ry   r   r@   rA   )"rU   rT   rk   rJ   rl   r   rm   rJ   rn   rJ   ro   r   rp   rJ   rq   rJ   rr   r   rs   r   rt   rf   ru   r   rv   r   rw   r   rx   r   ry   r   r@   rA   )*rk   rJ   r|   rJ   rj   rJ   rl   r   rm   rJ   r   WorkloadIdentity | Nonern   rJ   ro   r   rp   rJ   r   rJ   rq   rJ   rr   r   rU   rJ   rs   r   rt   rf   ru   r   rv   r   rw   r   rx   r   ry   r   r@   rA   )*rl   r   rm   rJ   r   r   rp   rJ   r   rJ   rq   rJ   rr   r   rk   rJ   rn   rJ   ro   r   rU   r   rs   r   rw   r   rt   int | NotGivenru   r   r   r   rv   r   r   r   ry   bool | Noner   Mapping[str, Any]r@   r   r@   rJ   r   r   r@   zdict[str, str]r2   r   r   r   r@   rA   rX   r   r@   r   rO   rT   r   r   r@   z tuple[httpx.URL, dict[str, str]]rB   rC   rD   r   r   r    r=   r   r   with_optionsr   r   r   r   r   rE   rF   s   @r/   ri   ri   c   s   
 (,"&26$(%)?C#'%)595>.4859+/,1%)'  %	
   0 " # "= ! # 3 3  2  3!" )#$ &*%& #'( 
) ,  (,"&26$(%)?C#'%)595>.4859+/,1%)% %  	
 0 " # "= ! # 3 3  2 3  )!" &*#$ #%& 
' * 
 #'26$(%)?C#'%)595>.4859+/,1%)%   	
 0 " # "= ! # 3 3  2 3  )!" &*#$ #%& 
' 0 #'%)'+26$(59%)?C#'"%)59#5>.4859+/,1%)/nU  nU #	nU
 %nU 0nU "nU 3nU #nU "=nU !nU nU #nU 3nU  !nU" 3#nU$ %nU& 2'nU( 3)nU* )+nU, &*-nU. #/nU0 
1nU`  37$(59#'"%)59"&%)?C+/5>+/&/488<599=,0+--2
 02
 "	2

 32
 !2
 2
 #2
 32
  2
 #2
 "=2
 )2
 32
 )2
  $!2
" 2#2
$ 6%2
& 3'2
( 7)2
* *+2
, )-2
. 
/2
 2
h L   
 
  *!r4   ri   c                      e Zd Zeddddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zeddddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zedddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zdddddddddddddeedddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd
Zedddddddddddededddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       ZeZ	ddZ
edd       Zedd       Zedd       ZddZ xZS )AsyncAzureOpenAINFT)rj   rk   rl   rm   rn   ro   rp   r   rq   rr   rs   rt   ru   rv   rw   rx   ry   c                    y r*   r{   )r>   r|   rj   rk   rl   rm   rn   ro   rp   r   rq   rr   rs   rt   ru   rv   rw   rx   ry   s                      r/   r=   zAsyncAzureOpenAI.__init__  s    , r4   c                    y r*   r{   )r>   rj   rk   rl   rm   rn   ro   rp   r   rq   rr   rs   rt   ru   rv   rw   rx   ry   s                     r/   r=   zAsyncAzureOpenAI.__init__  r}   r4   )rk   rl   rm   rn   ro   rp   r   rq   rr   rs   rt   ru   rv   rw   rx   ry   c                    y r*   r{   )r>   rU   rk   rl   rm   rn   ro   rp   r   rq   rr   rs   rt   ru   rv   rw   rx   ry   s                     r/   r=   zAsyncAzureOpenAI.__init__  r}   r4   )r|   rj   rk   rl   rm   r   rn   ro   rp   r   rq   rU   rr   rs   rt   ru   rv   rw   rx   ry   c                  |t         j                  j                  d      }|t         j                  j                  d      }|r|||t        d      |t         j                  j                  d      }|t	        d      |d|i}ni |d|i}|\|t         j                  j                  d      }|t	        d	      ||j                  d
       d| }n"|j                  d
       d}n|t	        d      |t        }t        | !  |||	|
||||||||||       || _	        || _
        || _        |r|nd| _        |rt        j                  |      | _        yd| _        y)ab  Construct a new asynchronous azure openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `AZURE_OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
        - `api_version` from `OPENAI_API_VERSION`
        - `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

        Args:
            azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

            azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

            azure_deployment: A model deployment, if given with `azure_endpoint`, sets the base client URL to include `/deployments/{azure_deployment}`.
                Not supported with Assistants APIs.
        Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )r>   r|   rj   rk   rl   rm   r   rn   ro   rp   r   rq   rU   rr   rs   rt   ru   rv   rw   rx   ry   r?   s                        r/   r=   zAsyncAzureOpenAI.__init__  r   r4   r   c                   t         |   |||||||||||||||||xs | j                  |	xs | j                  |
xs | j                  d|      S r   r   r   s                        r/   r   zAsyncAzureOpenAI.copyW  r   r4   c                  K   | j                   | j                   S | j                  }|_ |       }t        j                  |      r
| d {   }|rt	        t        t        |      t              st        d|       t        |      S y 7 >wr   )	r   r   inspectisawaitabler   r
   r   rT   r   r   s      r/   r   z$AsyncAzureOpenAI._get_azure_ad_token  s     +'''00JE""5)#
4U+;S A efkelm  u: $s   AB
B	?Bc                    | j                   dd| j                    iS | j                  r!| j                  t        k7  rd| j                  iS i S r   r   r   s     r/   r   zAsyncAzureOpenAI._auth_headers  r   r4   c                F    t        |      st        |      ry t        d      r   r   r   s      r/   r   z"AsyncAzureOpenAI._validate_headers  r   r4   c                  K   t        |j                        ri |j                  ni }t        |      }||_        | j                          d {   }|t	        |d      sd| |d<   |S | j
                  r0| j
                  t        k7  rt	        |d      s| j
                  |d<   |S t        |      st        | j                        r	 |S t        d      7 wr   r   r   s       r/   r   z!AsyncAzureOpenAI._prepare_options  s     @H@Y)<GOO)<_aW%!#7799%w8-4^4D+E(  \\dll.>>w	2%)\\	"  g&*:4;O;O*P
  455 :s   ACCBCc                  K   i }i || j                   | j                  xs |d}| j                  r| j                  dk7  rd| j                  i}n!| j                          d {   }|rdd| i}| j                  Pt        j                  | j                        }|j                  j                  d      dz   }|j                  |      }n#| j                  d	      }|j                  d
      }|j                  i |      }	|	|fS 7 wr   r   r   s
             r/   r   z$AsyncAzureOpenAI._configure_realtime  s    

,,009E

 <<DLL,??%t||4L2244E /75'1BC"".yy!8!89H%..55d;lJN#--~-FL((5H#--U-;L$$IuI$6L   5s   A!D
#D$B%D
)&r|   rT   rj   rJ   rk   rJ   rl   )str | Callable[[], Awaitable[str]] | Nonerm   rJ   rn   rJ   ro    AsyncAzureADTokenProvider | Nonerp   rJ   r   rJ   rq   rJ   rr   r   rs   r   rt   rf   ru   r   rv   r   rw   httpx.AsyncClient | Nonerx   r   ry   r   r@   rA   )$rj   rJ   rk   rJ   rl   r   rm   rJ   rn   rJ   ro   r   rp   rJ   r   rJ   rq   rJ   rr   r   rs   r   rt   rf   ru   r   rv   r   rw   r   rx   r   ry   r   r@   rA   )$rU   rT   rk   rJ   rl   r   rm   rJ   rn   rJ   ro   r   rp   rJ   r   rJ   rq   rJ   rr   r   rs   r   rt   rf   ru   r   rv   r   rw   r   rx   r   ry   r   r@   rA   )*r|   rJ   rj   rJ   rk   rJ   rl   r   rm   rJ   r   r   rn   rJ   ro   r   rp   rJ   r   rJ   rq   rJ   rU   rJ   rr   r   rs   r   rt   rf   ru   r   rv   r   rw   r   rx   r   ry   r   r@   rA   )*rl   r   rm   rJ   r   r   rp   rJ   r   rJ   rq   rJ   rr   r   rk   rJ   rn   rJ   ro   r   rU   r   rs   r   rw   r   rt   r   ru   r   r   r   rv   r   r   r   ry   r   r   r   r@   r   r   r   r   r   r   r   rF   s   @r/   r   r     s   
 (,"&=A$(%)DH#'"%)595>.485904,1%))  %	
   ; " # "B !  # 3 3   2!" 3#$ .%& &*'( #)* 
+ .  (,"&=A$(%)DH#'"%)595>.485904,1%)' %  	
 ; " # "B !  # 3 3  2  3!" .#$ &*%& #'( 
) , 
 #'=A$(%)DH#'"%)595>.485904,1%)'   	
 ; " # "B !  # 3 3  2  3!" .#$ &*%& #'( 
) 2 &*'+"&=A$(59%)DH#'"%)#595>.485904,1%)/nU #nU %	nU
  nU ;nU "nU 3nU #nU "BnU !nU nU #nU nU  3!nU" 3#nU$ %nU& 2'nU( 3)nU* .+nU, &*-nU. #/nU0 
1nU`  >B$(59#'"%)59"&%)DH+/5>04&/488<599=,0+--2
 ;2
 "	2

 32
 !2
 2
 #2
 32
  2
 #2
 "B2
 )2
 32
 .2
  $!2
" 2#2
$ 6%2
& 3'2
( 7)2
* *+2
, )-2
. 
/2
 2
h L"   
 
  *!r4   r   )r2   r   r.   rT   r@   r   )r2   r   r@   r   )>
__future__r   r   r   typingr   r   r   r   r   r	   r
   r   typing_extensionsr   r   r]   authr   _typesr   r   r   r   r   r   _utilsr   r   _clientr   r   _compatr   _modelsr   r   
_streamingr   r   _exceptionsr   _base_clientr    r!   setrQ   rT   AzureADTokenProviderAsyncAzureADTokenProviderClientAsyncClientr"   r$   joinr   r3   r8   r:   rH   ri   r   r{   r4   r/   <module>r     s6   " 	  T T T ,  # G G ) )   : , % :	   C( $R)?%?@ uU\\5CTCT5T/UV+5kRUFV9V3WX 7789 9
T
 
")j!?@ ")Jz!/%,,s";<f z!z	!u'8'8+c:J'JK[ !r4   