Ë
    /æjª�  ã                  ó^  — 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mZ ddlmZmZmZmZmZmZ ddlmZmZmZ dd	lm Z m!Z! dd
l"m#Z# ddl$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/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9  e:g d¢«      Z;e	g e<f   Z=e	g df   Z> edeej~                  ej€                  f   ¬«      ZA edee,e   e-e   f   ¬«      ZBdj‡                  g d¢«      ZDd/d„ZEd0d„ZFdZGd1d„ZHd2d „ZId2d!„ZJ G d"„ d#e1«      ZK ed$ee<e	d%ef   f   ¬«      ZL ed&e	d%ef   ¬«      ZM	 	 	 	 	 	 	 	 d3d'„ZN	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4d(„ZO G d)„ d*e6eAeBf   «      ZP G d+„ d,ePej~                  e,e   f   e «      ZQ G d-„ d.ePej€                  e-e   f   e!«      ZRy)5é    )ÚannotationsN)ÚAnyÚUnionÚMappingÚTypeVarÚCallableÚ	AwaitableÚcastÚoverload)ÚSelfÚoverrideé   )ÚWorkloadIdentityÚX509WorkloadIdentity)Ú	NOT_GIVENÚOmitÚQueryÚHeadersÚTimeoutÚNotGiven)Úis_givenÚ
is_mappingÚpath_template)ÚOpenAIÚAsyncOpenAI)Ú
model_copy)Únormalize_httpx_url)ÚSecurityOptionsÚFinalRequestOptions)Ú	_Provider)ÚStreamÚAsyncStream)Úis_x509_workload_identity)ÚOpenAIErroré   )Ú_MissingAPIKey)ÚDEFAULT_MAX_RETRIESÚ
BaseClientÚ_merge_headers)ÚDataResidency)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     €úS/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/openai/lib/azure.pyú	<genexpr>z_has_header.<locals>.<genexpr>5   s   øè ø€ Ò8¨ˆs�y‰y‹{˜fÕ$Ñ8ùs   ƒ )r5   Úany)Úheadersr8   s    `r9   Ú_has_headerr=   3   s   ø€ Ø�\‰\‹^€FÜÓ8°Ô8Ó8Ð8ó    c                óB   — t        d„ | j                  «       D «       «      S )Nc              3  ól   K  — | ],  \  }}|j                  «       d v xr t        |t        «       –— Œ. y­w))Úauthorizationúapi-keyN)r5   Ú
isinstancer&   ©r6   ÚnameÚvalues      r9   r:   z#_has_auth_header.<locals>.<genexpr>9   s:   è ø€ ò áˆD�%ð 	�
‰
‹Ð4Ð4Ò^¼ZÈÌ~Ó=^Ð9^Ó^ñùs   ‚24)r;   Úitems)r<   s    r9   Ú_has_auth_headerrH   8   s"   € Üñ à"Ÿ=™=›?ôó ð r>   zopenai.azure_auth_originc                óŒ   — | j                   }|€dddœj                  | j                  «      }| j                  | j                  |fS )NéP   i»  )ÚhttpÚhttps)ÚportÚgetÚschemeÚhost)ÚurlrM   s     r9   Ú_originrR   B   s>   € Ø�8‰8€DØ€|Ø SÑ)×-Ñ-¨c¯j©jÓ9ˆØ�:‰:�s—x‘x Ð%Ð%r>   c                ó²   — | j                   j                  t        «      }|�6|t        | j                  «      k7  r| j
                  j                  dd «       y y y )NrB   )Ú
extensionsrN   Ú_AZURE_AUTH_ORIGINrR   rQ   r<   Úpop)ÚrequestÚorigins     r9   Ú _strip_azure_api_key_on_redirectrY   I   sK   € Ø×Ñ×#Ñ#Ô$6Ó7€FØÐ˜f¬°·±Ó(<Ò<Ø�‰×Ñ˜I tÕ,ð =Ðr>   c              ƒ  ó"   K  — t        | «       y ­wr3   )rY   )rW   s    r9   Ú&_async_strip_azure_api_key_on_redirectr[   O   s   è ø€ Ü$ WÕ-ùs   ‚c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚMutuallyExclusiveAuthErrorc                ó$   •— t         ‰| �  d«       y )Nz€The `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    €r9   r`   z#MutuallyExclusiveAuthError.__init__T   s   ø€ Ü‰Ñð Oõ	
r>   )ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r`   Ú__classcell__©rb   s   @r9   r]   r]   S   s   ø„ ÷
ñ 
r>   r]   Ú_AzureApiKeyT.Ú_AzureTokenProviderTc                óô   — t        | d uxr	 | t        k7  |d u|d uf«      dkD  r
t        «       ‚| }| €D|€B|€@t        j                  j                  d«      }|€t        j                  j                  d«      }|||fS )Nr%   ÚAZURE_OPENAI_AD_TOKENÚAZURE_OPENAI_API_KEY)ÚsumÚAPI_KEY_SENTINELr]   ÚosÚenvironrN   )Úapi_keyÚazure_ad_tokenÚazure_ad_token_providerÚresolved_api_keys       r9   Ú_resolve_azure_authrw   ^   sœ   € ô 	à˜tÐ#ÒC¨Ô3CÑ(CØ dÐ*Ø'¨tÐ3ðó	
ð ò	ô )Ó*Ð*ð 4;ÐØ€˜>Ð1Ð6MÐ6UÜŸ™Ÿ™Ð(?Ó@ˆØÐ!Ü!Ÿz™zŸ~™~Ð.DÓEÐà˜^Ð-DÐDÐDr>   c               ód   — | €|€|€|xs t         ||fS t        | ||«      \  }}}|xs t         ||fS r3   )rp   rw   )	rs   rt   ru   Úcurrent_api_keyÚcurrent_tokenÚcurrent_providerr7   ÚtokenÚproviders	            r9   Ú_copy_azure_authr~   {   sS   € ð €˜>Ð1Ð6MÐ6UØÒ2Ô"2°MÐCSÐSÐSô /¨w¸ÐH_Ó`Ñ€Cˆ�ØÒ"Ô" E¨8Ð3Ð3r>   c                  ó‚   ‡ — e Zd ZU ded<   ded<   eed
d„«       «       Zeddœ	 	 	 	 	 dˆ fd„«       Zedˆ fd	„«       Zˆ xZ	S )ÚBaseAzureClientzhttpx2.URL | NoneÚ_azure_endpointú
str | NoneÚ_azure_deploymentc                ó(   — | j                  ddi«      S )NÚbearer_authT)Ú_auth_headers)ra   s    r9   Úauth_headerszBaseAzureClient.auth_headers�   s   € ð
 ×!Ñ! =°$Ð"7Ó8Ð8r>   r   ©Úretries_takenc               ó~  •— |j                   t        v rrt        |j                  «      r]|j                  j	                  d«      }|�@dt        | j                  j                  «      vrt        d|¬«      |j                   z   |_         t        ‰| �)  ||¬«      }t        |j                   «      |j                  t        <   |S )NÚmodelz/deploymentsz/deployments/{model})r‹   rˆ   )rQ   Ú_deployments_endpointsr   Ú	json_datarN   ÚstrÚbase_urlÚpathr   r_   Ú_build_requestrR   rT   rU   )ra   Úoptionsr‰   r‹   rW   rb   s        €r9   r‘   zBaseAzureClient._build_request—   s¡   ø€ ð �;‰;Ô0Ñ0´ZÀ×@QÑ@QÔ5RØ×%Ñ%×)Ñ)¨'Ó2ˆEØÐ  ^¼3¸t¿}¹}×?QÑ?QÓ;RÑ%RÜ+Ð,BÈ%ÔPÐSZ×S^ÑS^Ñ^�”ä‘'Ñ(¨ÀÐ(ÓNˆô 29¸¿¹Ó1Eˆ×ÑÔ-Ñ.Øˆr>   c                óh  •— | j                   r—| j                  r‹|t        vrƒt        j                  |«      }|j
                  r`| j                  j                  j                  d«      dz   |j                  j                  d«      z   }| j                  j                  |¬«      S |S t        ‰| �-  |«      S )zïAdjust 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)rƒ   r�   rŒ   Úhttpx2ÚURLÚis_relative_urlr–   ÚrstripÚlstripÚ	copy_withr_   Ú_prepare_url)ra   rQ   Ú	merge_urlÚmerge_raw_pathrb   s       €r9   r�   zBaseAzureClient._prepare_url©   s¡   ø€ ð ×!Ò! d×&:Ò&:¸sÔJ`Ñ?`ÜŸ
™
 3›ˆIØ×(Ò(à×(Ñ(×1Ñ1×8Ñ8¸Ó>ÀÑLÈy×OaÑOa×OhÑOhÐimÓOnÑnð ð ×+Ñ+×5Ñ5¸~Ð5ÓNÐNàÐä‰wÑ# CÓ(Ð(r>   )rc   údict[str, str])r’   r   r‰   Úintrc   úhttpx2.Request)rQ   rŽ   rc   ú
httpx2.URL)
re   rf   rg   Ú__annotations__Úpropertyr   r‡   r‘   r�   rh   ri   s   @r9   r€   r€   Œ   sr   ø… Ø&Ó&Ø!Ó!àØò9ó ó ð9ð
 ð
 ñ	à$ðð ð	ð
 
ôó ðð" ô)ó ô)r>   r€   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eddddddde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edœ	 	 	 	 	 	 	 dd„Zˆ xZS )ÚAzureOpenAINFT)Úazure_deploymentÚapi_versionrs   Úadmin_api_keyrt   ru   ÚorganizationÚwebhook_secretÚwebsocket_base_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationÚ_enforce_credentialsc                ó   — y r3   © )ra   Úazure_endpointr¨   r©   rs   rª   rt   ru   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   s                     r9   r`   zAzureOpenAI.__init__½   ó   € ð* r>   c                ó   — y r3   r¶   )ra   r¨   r©   rs   rª   rt   ru   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   s                    r9   r`   zAzureOpenAI.__init__Ô   ó   € ð( r>   )r©   rs   rª   rt   ru   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   c                ó   — y r3   r¶   )ra   r�   r©   rs   rª   rt   ru   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   s                    r9   r`   zAzureOpenAI.__init__ê   rº   r>   )r©   r·   r¨   rs   rª   Úworkload_identityrt   ru   r«   Úprojectr¬   r­   r�   r®   r¯   r°   r±   r²   r³   r´   c               óþ  •— t        |«      rt        d«      ‚t        |||«      \  }}}|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                   |«      nd| _        | j$                  j&                  d   }t(        |vr|j+                  t(        «       yy)a�  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`

        Pass at most one of `api_key`, `azure_ad_token`, or `azure_ad_token_provider`.
        An explicit credential takes precedence over Azure credential environment variables.
        With no explicit credential, `AZURE_OPENAI_AD_TOKEN` takes precedence over `AZURE_OPENAI_API_KEY`.

        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.
        ú9X.509 workload identity is not supported by Azure clientsNú¯Missing 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_ENDPOINTúuMust provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variableú/ú/openai/deployments/ú/openaiú2base_url and azure_endpoint are mutually exclusive©rs   rª   r«   r½   r¬   r�   r®   r¯   r°   r±   r²   r­   r³   r´   rW   )r#   r$   rw   rq   rr   rN   Ú
ValueErrorrš   rp   r_   r`   Ú_api_versionÚ_azure_ad_tokenÚ_azure_ad_token_providerrƒ   r—   r˜   r�   Ú_clientÚevent_hooksrY   Úappend)ra   r©   r·   r¨   rs   rª   r¼   rt   ru   r«   r½   r¬   r­   r�   r®   r¯   r°   r±   r²   r³   r´   Úhooksrb   s                         €r9   r`   zAzureOpenAI.__init__   sê  ø€ ôb %Ð%6Ô7ÜÐYÓZÐZä;NØ�^Ð%<ó<
Ñ8ˆ�Ð!8ñ   G O¸Ð8NÐSjÐSrÜð Bóð ð ÐÜŸ*™*Ÿ.™.Ð)=Ó>ˆKàÐÜØqóð ð Ð Ø*¨KÐ8‰MàI˜}ÐI¨m¸[ÑIˆMàÐØÐ%Ü!#§¡§¡Ð0GÓ!H�àÐ%Ü ð Lóð ð  Ð+Ø,×3Ñ3°CÓ8Ð9Ð9MÐN^ÐM_Ð`‘à,×3Ñ3°CÓ8Ð9¸ÐA‘àÐ)Ü Ð!UÓVÐVàˆ?ä&ˆGä‰ÑØØ'Ø%ØØ)ØØØ#Ø+Ø'Ø#Ø1Ø(CØ!5ð 	ô 	
ð  (ˆÔØ-ˆÔØ(?ˆÔ%Ù5CÑ!1ÈˆÔÙ=KœvŸz™z¨.Ô9ÐQUˆÔà—‘×(Ñ(¨Ñ3ˆÜ+°5Ñ8Ø�L‰LÔ9Õ:ð 9r>   ©rs   rª   r¼   r}   r«   r½   r¬   r­   r©   rt   ru   r�   Údata_residencyr®   r²   r¯   r°   Úset_default_headersr±   Úset_default_queryr´   Ú_extra_kwargsc               óÞ  •— |�t        d«      ‚t        |t        «      rdn|}t        |t        «      st        d«      ‚t        |«      rt        d«      ‚t	        ||
|| j
                  xs | j                  | j                  | j                  ¬«      \  }}
}t        ‰| �)  |||||||||||||||||	xs | j                  |
|dœ|¥¬«      }|€"| j                  |_        | j                  |_        |S )ú}
        Create a new client instance reusing the same options given to the current client with optional overriding.
        Nú4`data_residency` is only supported by OpenAI clientszFConfigure `provider` on `OpenAI`, not on `AzureOpenAI.with_options()`.r¿   ©ry   rz   r{   ©r©   rt   ru   ©rs   rª   r¼   r«   r½   r¬   r­   r�   r®   r²   r¯   r°   rÕ   r±   rÖ   r´   r×   ©r$   rC   r   r#   r~   Ú_api_key_providerrs   rÍ   rÎ   r_   ÚcopyrÌ   r�   rƒ   ©ra   rs   rª   r¼   r}   r«   r½   r¬   r­   r©   rt   ru   r�   rÔ   r®   r²   r¯   r°   rÕ   r±   rÖ   r´   r×   Úcopiedrb   s                           €r9   rà   zAzureOpenAI.copyy  s"  ø€ ð< Ð%ÜÐTÓUÐUÜ% h´Ô9‘4¸xˆÜ˜(¤HÔ-ÜÐfÓgÐgÜ$Ð%6Ô7ÜÐYÓZÐZä;KØØØ#Ø ×2Ñ2ÒB°d·l±lØ×.Ñ.Ø!×:Ñ:ô<
Ñ8ˆ�Ð!8ô ‘‘ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ò?¨d×.?Ñ.?Ø"0Ø+Bñð  ð	ð# ó 
ˆð8 ÐØ%)×%9Ñ%9ˆFÔ"Ø'+×'=Ñ'=ˆFÔ$Øˆr>   c                ó  — | j                   �| j                   S | j                  }|�Yt        t         |«       «      }t	        |t
        «      rt
        j                  |«      }t	        |t
        «      r|st        d«      ‚|S y ©NzIExpected `azure_ad_token_provider` argument to return a non-empty string.)rÍ   rÎ   r
   ÚobjectrC   rŽ   Ú__str__rË   ©ra   r}   r|   s      r9   Ú_get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenË  sq   € Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÜœ¡£Ó,ˆEÜ˜%¤Ô%äŸ™ EÓ*�Ü˜e¤SÔ)±Ü Ð!lÓmÐmØˆLàr>   c                óš   — | j                   �dd| j                   › �iS | j                  r!| j                  t        k7  rd| j                  iS i S ©NÚAuthorizationúBearer rB   ©rÍ   rs   rp   ©ra   Úsecuritys     r9   r†   zAzureOpenAI._auth_headersÛ  óN   € à×ÑÐ+Ø# w¨t×/CÑ/CÐ.DÐ%EÐFÐFà�<Š<˜DŸL™LÔ,<Ò<Ø˜tŸ|™|Ð,Ð,àˆ	r>   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"©rH   Ú	TypeError©ra   r<   Úcustom_headerss      r9   Ú_validate_headerszAzureOpenAI._validate_headerså  ó(   € ä˜GÔ$Ô(8¸Ô(HØäð có
ð 	
r>   c                ó^  — | j                   �| j                  «       n| j                  }t        |j                  «      ri |j                  ¥ni }t        |«      }||_        | j                  «       }|�t        |d«      sRd|› �|d<   nI|r|t        k7  rt        |d«      s2||d<   n,t        |«      st        | j                  «      rnt        d«      ‚| j                   �Qt        |d«      sEt        d„ t        | j                  «      j                  «       D «       d «      }|�|n	t        «       |d<   |S )Nrë   rì   rB   úUnable to handle authc              3  óN   K  — | ]  \  }}|j                  «       d k(  sŒ|–— Œ y­w©rB   Nr4   rD   s      r9   r:   z/AzureOpenAI._prepare_options.<locals>.<genexpr>  ó&   è ø€ Òt™;˜4 ÐZ^×ZdÑZdÓZfÐjsÓZs”Ñtùó   ‚%ž%©rß   Ú_refresh_api_keyrs   r   r<   r   rè   r=   rp   rH   r°   rË   Únextr)   rG   r&   ©ra   r’   rs   r<   rt   Údefault_api_keys         r9   Ú_prepare_optionszAzureOpenAI._prepare_optionsî  s#  € à-1×-CÑ-CÐ-O�$×'Ñ'Ô)ÐUY×UaÑUaˆä@HÈÏÉÔ@YÐ)<¨G¯O©OÑ)<Ð_aˆä˜WÓ%ˆØ!ˆŒà×1Ñ1Ó3ˆØÐ%Ü˜w¨Ô8Ø-4°^Ð4DÐ+E�˜Ò(Ù˜Ô$4Ò4Ü˜w¨	Ô2Ø%,�˜	Ò"Ü˜gÔ&Ô*:¸4×;OÑ;OÔ*PØô Ð4Ó5Ð5à×!Ñ!Ð-´kÀ'È9Ô6Uä"Ùt¬.¸×9MÑ9MÓ*N×*TÑ*TÓ*VÔtØóˆOð 5DÐ4O¡ÔUcÓUeˆG�IÑàˆr>   c               ó*   — | j                  |||¬«      S ©N©rs   ©Ú_configure_realtime©ra   r‹   Úextra_queryrs   s       r9   Ú _configure_realtime_with_api_keyz,AzureOpenAI._configure_realtime_with_api_key  s   € ð ×'Ñ'¨¨{ÀGÐ'ÓLÐLr>   r  c               ó,  — t        |«      s| j                  }i }i |¥| j                  | j                  xs |dœ¥}|r
|dk7  rd|i}n| j	                  «       }|rdd|› �i}| j
                  �at        | j
                  «      }|j                  j                  d«      \  }}	}
|j                  d«      dz   |	z   |
z   }|j                  |¬	«      }n#| j                  d
«      }|j                  d¬«      }|j                  | j                  ||«      ¬«      }||fS ©N)rÃ   Ú
deploymentz<missing API key>rB   rë   rì   ó   ?r”   s	   /realtimer•   z	/realtimeÚwss)rO   )Úparams©r   rs   rÌ   rƒ   rè   r­   r   r–   Ú	partitionrš   rœ   r�   Ú_websocket_query_params©ra   r‹   r  rs   r‡   Úqueryr|   r�   r�   Ú	separatorÚ	url_queryrŸ   Úrealtime_urlrQ   s                 r9   r	  zAzureOpenAI._configure_realtime  s6  € ô ˜Ô Ø—l‘lˆGØˆð
Øð
à×,Ñ,Ø×0Ñ0Ò9°Eò
ˆñ
 �wÐ"5Ò5Ø% wÐ/‰Là×,Ñ,Ó.ˆEÙØ /°7¸5¸'Ð1BÐC�à×"Ñ"Ð.Ü*¨4×+BÑ+BÓCˆHØ)1×):Ñ):×)DÑ)DÀTÓ)JÑ&ˆD�)˜YØ!Ÿ[™[¨Ó.°Ñ=À	ÑIÈIÑUˆNØ#×-Ñ-°~Ð-ÓF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ó;ˆLà×$Ñ$¨D×,HÑ,HÈÐW\Ó,]Ð$Ó^ˆØ�LÐ Ð r>   )$r·   rŽ   r¨   r‚   r©   r‚   rs   ústr | Callable[[], str] | Nonerª   r‚   rt   r‚   ru   úAzureADTokenProvider | Noner«   r‚   r¬   r‚   r­   ústr | httpx2.URL | Noner®   ú!float | Timeout | None | NotGivenr¯   r¡   r°   úMapping[str, str] | Noner±   úMapping[str, object] | Noner²   úhttpx2.Client | Noner³   Úboolr´   r"  rc   rd   )"r¨   r‚   r©   r‚   rs   r  rª   r‚   rt   r‚   ru   r  r«   r‚   r¬   r‚   r­   r  r®   r  r¯   r¡   r°   r  r±   r   r²   r!  r³   r"  r´   r"  rc   rd   )"r�   rŽ   r©   r‚   rs   r  rª   r‚   rt   r‚   ru   r  r«   r‚   r¬   r‚   r­   r  r®   r  r¯   r¡   r°   r  r±   r   r²   r!  r³   r"  r´   r"  rc   rd   )*r©   r‚   r·   r‚   r¨   r‚   rs   r  rª   r‚   r¼   ú.WorkloadIdentity | X509WorkloadIdentity | Nonert   r‚   ru   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   rd   ).rs   r  rª   r‚   r¼   r#  r}   ú_Provider | None | NotGivenr«   r‚   r½   r‚   r¬   r‚   r­   r  r©   r‚   rt   r‚   ru   r  r�   ú"str | httpx2.URL | None | NotGivenrÔ   úDataResidency | Noner®   r  r²   r!  r¯   úint | NotGivenr°   r  rÕ   r  r±   r   rÖ   r   r´   úbool | Noner×   úMapping[str, Any]rc   r   ©rc   r‚   ©rï   r   rc   r    ©r<   r   rö   r   rc   rd   ©r’   r   rc   r   ©r‹   rŽ   r  r   rs   rŽ   rc   ú!tuple[httpx2.URL, dict[str, str]]©r‹   rŽ   r  r   rs   zstr | NotGivenrc   r/  ©re   rf   rg   r   r   r'   r`   r   rà   Úwith_optionsrè   r†   r÷   r  r  r	  rh   ri   s   @r9   r§   r§   ¼   sü  ø„ Øð
 (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ'ð ðð %ð	ð
  ðð 0ðð "ðð #ðð "=ðð !ðð #ðð 4ðð 3ðð ðð 2ðð  3ð!ð" *ð#ð$ &*ð%ð& #ð'ð( 
ò)ó ðð, ð (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ%ð %ðð  ð	ð
 0ðð "ðð #ðð "=ðð !ðð #ðð 4ðð 3ðð ðð 2ðð 3ðð  *ð!ð" &*ð#ð$ #ð%ð& 
ò'ó ðð* ð
 #'Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ%ð ðð  ð	ð
 0ðð "ðð #ðð "=ðð !ðð #ðð 4ðð 3ðð ðð 2ðð 3ðð  *ð!ð" &*ð#ð$ #ð%ð& 
ò'ó ðð0 #'Ø%)Ø'+Ø26Ø$(àLPØ%)Ø?CØ#'Ø"Ø%)Ø6:Ø#Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ/w;ð  ðw;ð #ð	w;ð
 %ðw;ð 0ðw;ð "ðw;ð Jðw;ð #ðw;ð "=ðw;ð !ðw;ð ðw;ð #ðw;ð 4ðw;ð  ð!w;ð" 3ð#w;ð$ ð%w;ð& 2ð'w;ð( 3ð)w;ð* *ð+w;ð, &*ð-w;ð. #ð/w;ð0 
õ1w;ðr ð 37Ø$(ØLPØ09Ø#'Ø"Ø%)Ø6:Ø"&Ø%)Ø?CØ7@Ø/3Ø5>Ø,0Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ1Mð 0ðMð "ð	Mð
 JðMð .ðMð !ðMð ðMð #ðMð 4ðMð  ðMð #ðMð "=ðMð 5ðMð -ðMð  3ð!Mð" *ð#Mð$ $ð%Mð& 2ð'Mð( 6ð)Mð* 3ð+Mð, 7ð-Mð. *ð/Mð0 )ð1Mð2 
ô3Mó ðMð^ €Lóð  òó ðð ò
ó ð
ð òó ðð>MØðMØ',ðMØ:=ðMà	*óMð LUñ!Øð!Ø',ð!Ø:Hð!à	*÷!r>   r§   c                  ó0  ‡ — 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eddddddde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edœ	 	 	 	 	 	 	 dd„Zˆ xZS )ÚAsyncAzureOpenAINFT)r¨   r©   rs   rª   rt   ru   r«   r½   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   c                ó   — y r3   r¶   )ra   r·   r¨   r©   rs   rª   rt   ru   r«   r½   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   s                      r9   r`   zAsyncAzureOpenAI.__init__3  s   € ð, r>   c                ó   — y r3   r¶   )ra   r¨   r©   rs   rª   rt   ru   r«   r½   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   s                     r9   r`   zAsyncAzureOpenAI.__init__K  r¸   r>   )r©   rs   rª   rt   ru   r«   r½   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   c                ó   — y r3   r¶   )ra   r�   r©   rs   rª   rt   ru   r«   r½   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   s                     r9   r`   zAsyncAzureOpenAI.__init__b  r¸   r>   )r·   r¨   r©   rs   rª   r¼   rt   ru   r«   r½   r¬   r�   r­   r®   r¯   r°   r±   r²   r³   r´   c               óþ  •— t        |«      rt        d«      ‚t        |||«      \  }}}|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                   |«      nd| _        | j$                  j&                  d   }t(        |vr|j+                  t(        «       yy)a‚  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`

        Pass at most one of `api_key`, `azure_ad_token`, or `azure_ad_token_provider`.
        An explicit credential takes precedence over Azure credential environment variables.
        With no explicit credential, `AZURE_OPENAI_AD_TOKEN` takes precedence over `AZURE_OPENAI_API_KEY`.

        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.
        r¿   NrÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rW   )r#   r$   rw   rq   rr   rN   rË   rš   rp   r_   r`   rÌ   rÍ   rÎ   rƒ   r—   r˜   r�   rÏ   rÐ   r[   rÑ   )ra   r·   r¨   r©   rs   rª   r¼   rt   ru   r«   r½   r¬   r�   r­   r®   r¯   r°   r±   r²   r³   r´   rÒ   rb   s                         €r9   r`   zAsyncAzureOpenAI.__init__y  sê  ø€ ôb %Ð%6Ô7ÜÐYÓZÐZä;NØ�^Ð%<ó<
Ñ8ˆ�Ð!8ñ   G O¸Ð8NÐSjÐSrÜð Bóð ð ÐÜŸ*™*Ÿ.™.Ð)=Ó>ˆKàÐÜØqóð ð Ð Ø*¨KÐ8‰MàI˜}ÐI¨m¸[ÑIˆMàÐØÐ%Ü!#§¡§¡Ð0GÓ!H�àÐ%Ü ð Lóð ð  Ð+Ø,×3Ñ3°CÓ8Ð9Ð9MÐN^ÐM_Ð`‘à,×3Ñ3°CÓ8Ð9¸ÐA‘àÐ)Ü Ð!UÓVÐVàˆ?ä&ˆGä‰ÑØØ'Ø%ØØ)ØØØ#Ø+Ø'Ø#Ø1Ø(CØ!5ð 	ô 	
ð  (ˆÔØ-ˆÔØ(?ˆÔ%Ù5CÑ!1ÈˆÔÙ=KœvŸz™z¨.Ô9ÐQUˆÔà—‘×(Ñ(¨Ñ3ˆÜ1¸Ñ>Ø�L‰LÔ?Õ@ð ?r>   rÓ   c               óÞ  •— |�t        d«      ‚t        |t        «      rdn|}t        |t        «      st        d«      ‚t        |«      rt        d«      ‚t	        ||
|| j
                  xs | j                  | j                  | j                  ¬«      \  }}
}t        ‰| �)  |||||||||||||||||	xs | j                  |
|dœ|¥¬«      }|€"| j                  |_        | j                  |_        |S )rÙ   NrÚ   zPConfigure `provider` on `AsyncOpenAI`, not on `AsyncAzureOpenAI.with_options()`.r¿   rÛ   rÜ   rÝ   rÞ   rá   s                           €r9   rà   zAsyncAzureOpenAI.copyò  s"  ø€ ð< Ð%ÜÐTÓUÐUÜ% h´Ô9‘4¸xˆÜ˜(¤HÔ-ÜÐpÓqÐqÜ$Ð%6Ô7ÜÐYÓZÐZä;KØØØ#Ø ×2Ñ2ÒB°d·l±lØ×.Ñ.Ø!×:Ñ:ô<
Ñ8ˆ�Ð!8ô ‘‘ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ò?¨d×.?Ñ.?Ø"0Ø+Bñð  ð	ð# ó 
ˆð8 ÐØ%)×%9Ñ%9ˆFÔ"Ø'+×'=Ñ'=ˆFÔ$Øˆr>   c              ƒ  óL  K  — | j                   �| j                   S | j                  }|�xt        t         |«       «      }t	        j
                  |«      r
|ƒ d {  –—† }t        |t        «      rt        j                  |«      }t        |t        «      r|st        d«      ‚|S y 7 ŒI­wrä   )
rÍ   rÎ   r
   rå   ÚinspectÚisawaitablerC   rŽ   ræ   rË   rç   s      r9   rè   z$AsyncAzureOpenAI._get_azure_ad_tokenD  s�   è ø€ Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÜœ¡£Ó,ˆEÜ×"Ñ" 5Ô)Ø#Ÿ�Ü˜%¤Ô%äŸ™ EÓ*�Ü˜e¤SÔ)±Ü Ð!lÓmÐmØˆLàð $ús   ‚AB$ÁB"ÁA
B$c                óš   — | j                   �dd| j                   › �iS | j                  r!| j                  t        k7  rd| j                  iS i S rê   rí   rî   s     r9   r†   zAsyncAzureOpenAI._auth_headersV  rð   r>   c                óF   — t        |«      st        |«      ry t        d«      ‚rò   ró   rõ   s      r9   r÷   z"AsyncAzureOpenAI._validate_headers`  rø   r>   c              ƒ  ó�  K  — | j                   �| j                  «       ƒ d {  –—† n| j                  }t        |j                  «      ri |j                  ¥ni }t        |«      }||_        | j                  «       ƒ d {  –—† }|�t        |d«      sRd|› �|d<   nI|r|t        k7  rt        |d«      s2||d<   n,t        |«      st        | j                  «      rnt        d«      ‚| j                   �Qt        |d«      sEt        d„ t        | j                  «      j                  «       D «       d «      }|�|n	t        «       |d<   |S 7 �Œ7 ŒÆ­w)Nrë   rì   rB   rú   c              3  óN   K  — | ]  \  }}|j                  «       d k(  sŒ|–— Œ y­wrü   r4   rD   s      r9   r:   z4AsyncAzureOpenAI._prepare_options.<locals>.<genexpr>‚  rý   rþ   rÿ   r  s         r9   r  z!AsyncAzureOpenAI._prepare_optionsi  s;  è ø€ à37×3IÑ3IÐ3U˜×-Ñ-Ó/×/Ð/Ð[_×[gÑ[gˆä@HÈÏÉÔ@YÐ)<¨G¯O©OÑ)<Ð_aˆä˜WÓ%ˆØ!ˆŒà#×7Ñ7Ó9×9ˆØÐ%Ü˜w¨Ô8Ø-4°^Ð4DÐ+E�˜Ò(Ù˜Ô$4Ò4Ü˜w¨	Ô2Ø%,�˜	Ò"Ü˜gÔ&Ô*:¸4×;OÑ;OÔ*PØô Ð4Ó5Ð5à×!Ñ!Ð-´kÀ'È9Ô6Uä"Ùt¬.¸×9MÑ9MÓ*N×*TÑ*TÓ*VÔtØóˆOð 5DÐ4O¡ÔUcÓUeˆG�IÑàˆð9 0ùð :ús#   ‚ E¢E£AEÁ=EÁ>CEÅEc             ƒ  óF   K  — | j                  |||¬«      ƒ d {  –—† S 7 Œ­wr  r  r
  s       r9   r  z1AsyncAzureOpenAI._configure_realtime_with_api_key‰  s&   è ø€ ð ×-Ñ-¨e°[È'Ð-ÓR×RÐRÐRús   ‚!š›!r  c             ƒ  óH  K  — t        |«      s| j                  }i }i |¥| j                  | j                  xs |dœ¥}|r
|dk7  rd|i}n!| j	                  «       ƒ d {  –—† }|rdd|› �i}| j
                  �at        | j
                  «      }|j                  j                  d«      \  }}	}
|j                  d«      dz   |	z   |
z   }|j                  |¬	«      }n#| j                  d
«      }|j                  d¬«      }|j                  | j                  ||«      ¬«      }||fS 7 ŒÃ­wr  r  r  s                 r9   r	  z$AsyncAzureOpenAI._configure_realtimeŽ  sB  è ø€ ô ˜Ô Ø—l‘lˆGØˆð
Øð
à×,Ñ,Ø×0Ñ0Ò9°Eò
ˆñ
 �wÐ"5Ò5Ø% wÐ/‰Là×2Ñ2Ó4×4ˆEÙØ /°7¸5¸'Ð1BÐC�à×"Ñ"Ð.Ü*¨4×+BÑ+BÓCˆHØ)1×):Ñ):×)DÑ)DÀTÓ)JÑ&ˆD�)˜YØ!Ÿ[™[¨Ó.°Ñ=À	ÑIÈIÑUˆNØ#×-Ñ-°~Ð-ÓF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ó;ˆLà×$Ñ$¨D×,HÑ,HÈÐW\Ó,]Ð$Ó^ˆØ�LÐ Ð ð 5ús   ‚AD"ÁD ÁCD")&r·   rŽ   r¨   r‚   r©   r‚   rs   ú)str | Callable[[], Awaitable[str]] | Nonerª   r‚   rt   r‚   ru   ú AsyncAzureADTokenProvider | Noner«   r‚   r½   r‚   r¬   r‚   r­   r  r®   r  r¯   r¡   r°   r  r±   r   r²   úhttpx2.AsyncClient | Noner³   r"  r´   r"  rc   rd   )$r¨   r‚   r©   r‚   rs   rC  rª   r‚   rt   r‚   ru   rD  r«   r‚   r½   r‚   r¬   r‚   r­   r  r®   r  r¯   r¡   r°   r  r±   r   r²   rE  r³   r"  r´   r"  rc   rd   )$r�   rŽ   r©   r‚   rs   rC  rª   r‚   rt   r‚   ru   rD  r«   r‚   r½   r‚   r¬   r‚   r­   r  r®   r  r¯   r¡   r°   r  r±   r   r²   rE  r³   r"  r´   r"  rc   rd   )*r·   r‚   r¨   r‚   r©   r‚   rs   rC  rª   r‚   r¼   r#  rt   r‚   ru   rD  r«   r‚   r½   r‚   r¬   r‚   r�   r‚   r­   r  r®   r  r¯   r¡   r°   r  r±   r   r²   rE  r³   r"  r´   r"  rc   rd   ).rs   rC  rª   r‚   r¼   r#  r}   r$  r«   r‚   r½   r‚   r¬   r‚   r­   r  r©   r‚   rt   r‚   ru   rD  r�   r%  rÔ   r&  r®   r  r²   rE  r¯   r'  r°   r  rÕ   r  r±   r   rÖ   r   r´   r(  r×   r)  rc   r   r*  r+  r,  r-  r.  r0  r1  ri   s   @r9   r4  r4  2  s?  ø„ Øð
 (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ)ð ðð %ð	ð
  ðð ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 4ðð 3ðð ðð  2ð!ð" 3ð#ð$ /ð%ð& &*ð'ð( #ð)ð* 
ò+ó ðð. ð (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ'ð %ðð  ð	ð
 ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 4ðð 3ðð ðð 2ðð  3ð!ð" /ð#ð$ &*ð%ð& #ð'ð( 
ò)ó ðð, ð
 #'Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ'ð ðð  ð	ð
 ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 4ðð 3ðð ðð 2ðð  3ð!ð" /ð#ð$ &*ð%ð& #ð'ð( 
ò)ó ðð2 &*Ø'+Ø"&Ø=AØ$(àLPØ%)ØDHØ#'Ø"Ø%)Ø#Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ/wAð #ðwAð %ð	wAð
  ðwAð ;ðwAð "ðwAð JðwAð #ðwAð "BðwAð !ðwAð ðwAð #ðwAð ðwAð  4ð!wAð" 3ð#wAð$ ð%wAð& 2ð'wAð( 3ð)wAð* /ð+wAð, &*ð-wAð. #ð/wAð0 
õ1wAðr ð >BØ$(ØLPØ09Ø#'Ø"Ø%)Ø6:Ø"&Ø%)ØDHØ7@Ø/3Ø5>Ø15Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ1Mð ;ðMð "ð	Mð
 JðMð .ðMð !ðMð ðMð #ðMð 4ðMð  ðMð #ðMð "BðMð 5ðMð -ðMð  3ð!Mð" /ð#Mð$ $ð%Mð& 2ð'Mð( 6ð)Mð* 3ð+Mð, 7ð-Mð. *ð/Mð0 )ð1Mð2 
ô3Mó ðMð^ €Lóð$ òó ðð ò
ó ð
ð òó ðð>SØðSØ',ðSØ:=ðSà	*óSð LUñ!Øð!Ø',ð!Ø:Hð!à	*÷!r>   r4  )r<   r   r8   rŽ   rc   r"  )r<   r   rc   r"  )rQ   r£   rc   ztuple[str, str, int | None])rW   r¢   rc   rd   )rs   ú_AzureApiKeyT | Nonert   r‚   ru   ú_AzureTokenProviderT | Nonerc   zJtuple[_AzureApiKeyT | str | None, str | None, _AzureTokenProviderT | None])rs   rF  rt   r‚   ru   rG  ry   z_AzureApiKeyT | strrz   r‚   r{   rG  rc   zCtuple[_AzureApiKeyT | str, str | None, _AzureTokenProviderT | None])SÚ
__future__r   rq   r;  Útypingr   r   r   r   r   r	   r
   r   Útyping_extensionsr   r   r—   Úauthr   r   Ú_typesr   r   r   r   r   r   Ú_utilsr   r   r   rÏ   r   r   Ú_compatr   Ú_httpx2r   Ú_modelsr   r   Ú	_providerr    Ú
_streamingr!   r"   Ú
auth._x509r#   Ú_exceptionsr$   Ú_client_authr&   Ú_base_clientr'   r(   r)   Ú_data_residencyr*   ÚsetrŒ   rŽ   ÚAzureADTokenProviderÚAsyncAzureADTokenProviderÚClientÚAsyncClientr+   r-   Újoinrp   r=   rH   rU   rR   rY   r[   r]   rj   rk   rw   r~   r€   r§   r4  r¶   r>   r9   ú<module>r^     s  ðÝ "ã 	Û ß T× TÓ Tß ,ã ç 9ß G× Gß 8Ñ 8ß )Ý  Ý )ß :Ý !ß ,Ý 2Ý %Ý (ß JÑ JÝ +áò	óÐ ð    C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð Ù˜¨u°V·]±]ÀF×DVÑDVÐ5VÑ/WÔX€ÙÐ+°5¸À¹ÀkÐRUÑFVÐ9VÑ3WÔX€ð —7‘7Ò8Ó9Ð ó9ó
ð 0Ð ó&ó-ó.ô
 ô 
ñ ˜¨u°S¸(À3ÈÀ8Ñ:LÐ5LÑ/MÔN€ÙÐ5¸XÀcÈ3ÀhÑ=OÔPÐ ðEØ!ðEàðEð 9ðEð Pó	Eð:4Ø!ð4àð4ð 9ð4ð
 )ð4ð ð4ð 2ð4ð Ió4ô"-)�j °Ð!?Ñ@ô -)ô`s!�/ &§-¡-°¸±Ð"<Ñ=¸vô s!ôlx!� v×'9Ñ'9¸;ÀsÑ;KÐ'KÑLÈkõ x!r>   