§
    ïXÊjœº  ã                  óæ  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl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 d dlm Z  d d	l!m"Z" d d
l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-Z.d dl/Z/d dl0Z0d dl0m1Z1 e$rd dl2m3Z3 dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDe1jE        e1jF        e1jG        e1jH        e1jI        gZJ ejK        d¦  «        ZL eMddddd d!hd"„ d#D ¦   «         £d$„ d#D ¦   «         £¦  «        ZN G d%„ d&e(d'¬(¦  «        ZOdÁd+„ZP eP¦   «         ZQ G d,„ d-eR¦  «        ZS G d.„ d/eR¦  «        ZT G d0„ d1eR¦  «        ZU G d2„ d3eR¦  «        ZV G d4„ d5eWe¦  «        ZX G d6„ d7e¦  «        ZYe G d8„ d9¦  «        ¦   «         ZZe G d:„ d;¦  «        ¦   «         Z[e G d<„ d=¦  «        ¦   «         Z\ e'd>e[e\z  ¦  «        Z]d?„ Z^e G d@„ dA¦  «        ¦   «         Z_e G dB„ dC¦  «        ¦   «         Z`dÂdE„ZadÃdG„ZbdÃdH„ZcdÄdY„ZddÅda„ZedÆdb„ZfdÇdd„ZgdÈdf„Zhdg„ ZidÉdÊdk„Zj	 dËdÌdn„ZkdÍdp„ZldÎdr„ZmdÏdu„ZndÐdx„ZodÑdz„ZpdÒd|„ZqdÉdÑd}„ZrdÓd„ZsdÔdÕdƒ„ZtdÖd„„Zud×d†„Zv	 	 	 dØdÙd‰„ZwdÉdÚdŒ„ZxdÛdŽ„Zy	 	 dÜdÝd’„ZzdÞd–„Z{ G d—„ d˜e|¦  «        Z}dßdš„Z~g d›¢Zedœ         Z€dàd�„Z�dàdž„Z‚dád „Zƒdád¡„Z„dâd¥„Z…dãd§„Z†däd©„Z‡dåd«„ZˆdÉdæd­„Z‰dçd®„ZŠdÂd¯„Z‹dÂd°„ZŒdÂd±„Z�dÂd²„ZŽh d³£Z�dèdµ„Z�dèd¶„Z‘déd½„Z’dêdÀ„Z“dS )ëé    )ÚannotationsN)Údeque)ÚCallableÚ	Coroutine)Ú	dataclassÚfield)Údatetime)ÚEnum)ÚPath)ÚLock)	ÚTYPE_CHECKINGÚAnyÚLiteralÚNewTypeÚ	TypedDictÚUnionÚget_argsÚ
get_originÚget_type_hints)Ú
SpaceStage)ÚParameterInfozapi/predict/z
queue/joinz
queue/dataÚuploadÚloginÚconfigzinfo?all_endpoints=Truezinfo?serialize=Falsez0https://gradio-space-api-fetcher-v2.hf.space/apiÚresetzhttps://hf.space/{}zheartbeat/{session_hash}ÚcancelÚstatez[<>:"/\\|?*\x00-\x1f\x7f`$!{}]ÚCONÚPRNÚAUXÚNULzCONIN$zCONOUT$c              #  ó    K  — | ]	}d |› �V — Œ
dS )ÚCOMN© ©Ú.0Úcs     úDC:\Projects\Historical\venv\Lib\site-packages\gradio_client/utils.pyú	<genexpr>r)   Y   ó(   è è € Ð	5Ð	5˜ˆ)�ˆ)ˆ)Ð	5Ð	5Ð	5Ð	5Ð	5Ð	5ó    u   123456789Â¹Â²Â³c              #  ó    K  — | ]	}d |› �V — Œ
dS )ÚLPTNr$   r%   s     r(   r)   r)   Z   r*   r+   c                  ót   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   dS )ÚMessageÚstrÚmsgúdict[str, Any]ÚoutputÚevent_idÚintÚrankÚfloatÚrank_etaÚ
queue_sizeÚboolÚsuccessú
list[dict]Úprogress_dataÚlogÚlevelN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r$   r+   r(   r/   r/   _   sp   € € € € € € Ø€H€H�HØÐÐÑØ€M€M�MØ€I€I�IØ€O€O�OØ€O€O�OØ€M€M�MØÐÐÑØ€H€H�HØ€J€J�J€J€Jr+   r/   F)ÚtotalÚreturnr0   c                 óü   — 	 t          j        t          d¦  «                             d¦  «                             ¦   «         } t          j        | ¦  «        }|                     dd¦  «        }|S # t          $ r Y dS w xY w)Nzpackage.jsonúutf-8ÚversionÚ )	ÚpkgutilÚget_datar@   ÚdecodeÚstripÚjsonÚloadsÚgetÚ	Exception)Úpackage_json_dataÚpackage_datarH   s      r(   Úget_package_versionrT   l   s„   € ðåÔ�X ~Ñ6Ô6×=Ò=¸gÑFÔF×LÒLÑNÔNð 	õ ”zÐ"3Ñ4Ô4ˆØ×"Ò" 9¨bÑ1Ô1ˆØˆøÝð ð ð Øˆrˆrðøøøs   ‚A*A- Á-
A;Á:A;c                  ó   — e Zd ZdZdS )ÚTooManyRequestsErrorz.Raised when the API returns a 429 status code.N©r@   rA   rB   Ú__doc__r$   r+   r(   rV   rV   {   s   € € € € € Ø8Ð8à€Dr+   rV   c                  ó   — e Zd ZdZdS )Ú
QueueErrorzMRaised when the queue is full or there is an issue adding a job to the queue.NrW   r$   r+   r(   rZ   rZ   �   s   € € € € € ØWÐWà€Dr+   rZ   c                  ó   — e Zd ZdZdS )ÚInvalidAPIEndpointErrorz(Raised when the API endpoint is invalid.NrW   r$   r+   r(   r\   r\   ‡   s   € € € € € Ø2Ð2à€Dr+   r\   c                  ó   — e Zd ZdZdS )ÚSpaceDuplicationErrorz:Raised when something goes wrong with a Space Duplication.NrW   r$   r+   r(   r^   r^   �   s   € € € € € ØDÐDà€Dr+   r^   c                  óF   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdS )ÚServerMessageÚ	send_hashÚ
queue_fullÚ
estimationÚ	send_dataÚprocess_startsÚprocess_generatingÚprocess_completedr>   ÚprogressÚ	heartbeatzServer stopped unexpectedly.Úunexpected_errorÚclose_streamÚprocess_streamingN)r@   rA   rB   ra   rb   rc   rd   re   rf   rg   r>   rh   ri   Úserver_stoppedrj   rk   rl   r$   r+   r(   r`   r`   “   sZ   € € € € € Ø€IØ€JØ€JØ€IØ%€NØ-ÐØ+ÐØ
€CØ€HØ€IØ3€NØ)ÐØ!€LØ+ÐÐÐr+   r`   c                  óv   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZedd„¦   «         Zdd„Zedd„¦   «         ZdS )ÚStatusz'Status codes presented to client users.ÚSTARTINGÚJOINING_QUEUEÚ
QUEUE_FULLÚIN_QUEUEÚSENDING_DATAÚ
PROCESSINGÚ	ITERATINGÚPROGRESSÚFINISHEDÚ	CANCELLEDÚLOGÚstatusrE   r5   c           
     ó  — t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        g
}|                     | ¦  «        S )z'Order of messages. Helpful for testing.)ro   rp   rq   rr   rs   rt   ru   rw   rv   rx   ry   Úindex)r{   Úorders     r(   ÚorderingzStatus.ordering³   sW   € õ ŒOÝÔ ÝÔÝŒOÝÔÝÔÝŒOÝÔÝŒOÝÔð
ˆð �{Š{˜6Ñ"Ô"Ð"r+   Úotherc                óZ   — |                       | ¦  «        |                       |¦  «        k     S ©N)r   )Úselfr€   s     r(   Ú__lt__zStatus.__lt__Ä   s%   € Ø�}Š}˜TÑ"Ô" T§]¢]°5Ñ%9Ô%9Ò9Ð9r+   r1   r0   c                óÊ  — t           j        t          j        t           j        t          j        t           j        t          j        t           j        t          j	        t           j
        t          j        t           j        t          j        t           j        t          j        t           j        t          j        t           j        t          j        t           j        t          j        i
|          S )zKMap the raw message from the backend to the status code presented to users.)r`   ra   ro   rq   rb   rr   rc   rs   rd   rt   re   ru   rf   rv   rg   rx   rh   rw   r>   rz   rm   )r1   s    r(   Úmsg_to_statuszStatus.msg_to_statusÇ   s�   € õ Ô#¥VÔ%9ÝÔ$¥fÔ&7ÝÔ$¥f¤oÝÔ#¥VÔ%8ÝÔ(­&Ô*;ÝÔ,­fÔ.>ÝÔ+­V¬_ÝÔ"¥F¤OÝÔ�vœzÝÔ(­&¬/ð
ð ôð 	r+   N)r{   ro   rE   r5   )r€   ro   )r1   r0   rE   ro   )r@   rA   rB   rX   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   Ústaticmethodr   r„   r†   r$   r+   r(   ro   ro   ¤   s£   € € € € € Ø1Ð1à€HØ#€MØ€JØ€HØ!€LØ€JØ€IØ€HØ€HØ€IØ
€Càð#ð #ð #ñ „\ð#ð :ð :ð :ð :ð ðð ð ñ „\ðð ð r+   ro   c                  óZ   — e Zd ZU ded<   ded<   ded<   ded<   ded<   edd„¦   «         ZdS )ÚProgressUnitú
int | Noner}   Úlengthú
str | NoneÚunitúfloat | Nonerh   ÚdescÚdatar<   rE   úlist[ProgressUnit]c                ó    ‡ — ˆ fd„|D ¦   «         S )Nc                óî   •— g | ]q} ‰|                      d ¦  «        |                      d¦  «        |                      d¦  «        |                      d¦  «        |                      d¦  «        ¬¦  «        ‘ŒrS )r}   r‹   r�   rh   r�   )r}   r‹   r�   rh   r�   ©rP   )r&   ÚdÚclss     €r(   ú
<listcomp>z)ProgressUnit.from_msg.<locals>.<listcomp>â   s   ø€ ð 	
ð 	
ð 	
ð ð ˆCØ—e’e˜G‘n”nØ—u’u˜X‘”Ø—U’U˜6‘]”]ØŸš˜zÑ*Ô*Ø—U’U˜6‘]”]ðñ ô ð	
ð 	
ð 	
r+   r$   )r–   r�   s   ` r(   Úfrom_msgzProgressUnit.from_msgà   s0   ø€ ð	
ð 	
ð 	
ð 	
ð ð	
ñ 	
ô 	
ð 		
r+   N)r�   r<   rE   r‘   )r@   rA   rB   rC   Úclassmethodr˜   r$   r+   r(   r‰   r‰   Ø   sp   € € € € € € àÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑàð

ð 

ð 

ñ „[ð

ð 

ð 

r+   r‰   c                  óv   — e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   dZded<   dZded<   dS )ÚStatusUpdateúIUpdate message sent from the worker thread to the Job on the main thread.ro   ÚcoderŠ   r6   r9   rŽ   Úetazbool | Noner;   zdatetime | NoneÚtimezlist[ProgressUnit] | Noner=   Nztuple[str, str] | Noner>   r{   zLiteral['status', 'output']Útype)r@   rA   rB   rX   rC   r>   r    r$   r+   r(   r›   r›   î   s‹   € € € € € € àSÐSà€L€L�LØÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ,Ð,Ð,Ñ,Ø"&€CÐ&Ð&Ð&Ñ&Ø(0€DÐ0Ð0Ð0Ñ0Ð0Ð0r+   r›   c                  óD   — e Zd ZU dZded<   ded<   dZded<   d	Zded
<   dS )ÚOutputUpdaterœ   ú	list[Any]Úoutputsr:   r;   r3   zLiteral['output']r    FÚfinalN)r@   rA   rB   rX   rC   r    r¥   r$   r+   r(   r¢   r¢   ý   sO   € € € € € € àSÐSàÐÐÑØ€M€M�MØ&€DÐ&Ð&Ð&Ñ&Ø€EÐÐÐÑÐÐr+   r¢   ÚUpdatec            	     ód   — t          t          j        d d d d t          j        ¦   «         d ¬¦  «        S )N)r�   r6   r9   rž   r;   rŸ   r=   )r›   ro   rp   r	   Únowr$   r+   r(   Úcreate_initial_status_updater©   
  s6   € ÝÝŒ_ØØØØÝŒ\‰^Œ^Øðñ ô ð r+   c                  óX   — e Zd ZU dZ ee¬¦  «        Zded<    ee¬¦  «        Z	ded<   dS )Ú	JobStatuszpThe job status.

    Keeps track of the latest status update and intermediate outputs (not yet implements).
    ©Údefault_factoryr›   Úlatest_statusr£   r¤   N)
r@   rA   rB   rX   r   r©   r®   rC   Úlistr¤   r$   r+   r(   r«   r«     s[   € € € € € € ðð ð
 #( %Ð8TÐ"UÑ"UÔ"U€MÐUÐUÐUÑUØ˜¨tÐ4Ñ4Ô4€GÐ4Ð4Ð4Ñ4Ð4Ð4r+   r«   c                  ó    — e Zd ZU dZded<   ded<   ded<   ded	<   d
Zded<   dZded<   d
Zded<   dZded<    e	e
j        ¬¦  «        Zded<   dS )ÚCommunicatorzKHelper class to help communicate between the worker thread and main thread.r   Úlockr«   ÚjobzCallable[..., tuple]Úprediction_processorr0   Ú	reset_urlFr:   Úshould_cancelNrŒ   r4   Úthread_completeúdict[str, str] | NoneÚrequest_headersr¬   zasyncio.Queue[Update]Úupdates)r@   rA   rB   rX   rC   r¶   r4   r·   r¹   r   ÚasyncioÚQueuerº   r$   r+   r(   r±   r±   !  s£   € € € € € € àUÐUà€J€J�JØ€N€N�NØ.Ð.Ð.Ñ.Ø€N€N�NØ€MÐÐÐÑØ€HÐÐÐÑØ!€OÐ!Ð!Ð!Ñ!Ø-1€OÐ1Ð1Ð1Ñ1Ø%* U¸7¼=Ð%IÑ%IÔ%I€GÐIÐIÐIÑIÐIÐIr+   r±   r:   c                óZ   — t          | t          ¦  «        sdS |                      d¦  «        S )zN
    Check if the given value is a string that looks like an HTTP(S) URL.
    F)zhttp://zhttps://)Ú
isinstancer0   Ú
startswith©Úpossible_urls    r(   Úis_http_url_likerÂ   5  s0   € õ �l¥CÑ(Ô(ð ØˆuØ×"Ò"Ð#:Ñ;Ô;Ð;r+   rÁ   c                ó(  — ddi}	 t          j        ¦   «         5 }t          j        | |¬¦  «        }|j        dk    r(|                     | |¬¦  «        j        cddd¦  «         S |j        cddd¦  «         S # 1 swxY w Y   dS # t          $ r Y dS w xY w)zb
    Probe the given URL to see if it responds with a 200 status code (to HEAD, then to GET).
    z
User-Agentz8gradio (https://gradio.app/; gradio-team@huggingface.co)©Úheadersi•  NF)ÚhttpxÚClientÚheadÚstatus_coderP   Ú
is_successrQ   )rÁ   rÅ   ÚclientÚhead_requests       r(   Ú	probe_urlrÍ   >  s  € ð ÐWÐX€GðÝŒ\‰^Œ^ð 	+˜vÝ œ: l¸GÐDÑDÔDˆLØÔ'¨3Ò.Ð.Ø—z’z ,¸�zÑ@Ô@ÔKð	+ð 	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð  Ô*ð		+ð 	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øõ
 ð ð ð Øˆuˆuðøøøs@   †B ™=A6ÁB Á#A6Á)B Á6A:Á:B Á=A:Á>B Â
BÂBc                óf   — t          j        d¦  «         t          | ¦  «        ot          | ¦  «        S )z3
    Check if the given string is a valid URL.
    z^is_valid_url should not be used. Use is_http_url_like() and probe_url(), as suitable, instead.)ÚwarningsÚwarnrÂ   rÍ   rÀ   s    r(   Úis_valid_urlrÑ   M  s;   € õ „Mð	Hñô ð õ ˜LÑ)Ô)ÐE­i¸Ñ.EÔ.EÐEr+   rË   úhttpx.Clientr�   ÚdictÚ	hash_dataÚhelperÚsse_urlÚsse_data_urlrÅ   údict[str, str]Úcookiesr¸   Ú
ssl_verifyÚexecutorú%concurrent.futures.ThreadPoolExecutorúdict[str, Any] | Nonec
                ó¦  — d|_         |	                     t          ||||¦  «        }
|	                     t          | |||||||¦	  «	        }t          j                             |
|gt          j        j        ¬¦  «        \  }}d|_         t          |¦  «        dk    r t          dt          |¦  «        › d�¦  «        ‚|D ]}| 
                    ¦   «         c S d S ©NF)Úreturn_whenTé   zDid not expect z tasks to be done.)r·   ÚsubmitÚcheck_for_cancelÚstream_sse_v0Ú
concurrentÚfuturesÚwaitÚFIRST_COMPLETEDÚlenÚ
ValueErrorÚresult)rË   r�   rÔ   rÕ   rÖ   r×   rÅ   rÙ   rÚ   rÛ   Úfuture_cancelÚ
future_sseÚdoneÚ_Úfutures                  r(   Úget_pred_from_sse_v0rñ   X  sô   € ð #€FÔØ—O’OÝ˜& '¨7°Jñô €Mð —’ÝØØØØØØØØñ
ô 
€Jõ Ô ×%Ò%Ø	˜
Ð#ÝÔ&Ô6ð &ñ ô �G€Dˆ!ð "€FÔå
ˆ4�y„y�A‚~€~ÝÐH­3¨t©9¬9ÐHÐHÐHÑIÔIÐIØð ð ˆØ�}Š}‰ŒÐÐÐðð r+   Úpending_messages_per_eventú dict[str, deque[Message | None]]Úpending_lockr   r4   Úprotocolú'Literal['sse_v1', 'sse_v2', 'sse_v2.1']c	                óæ  — d| _         |                     t          | |||¦  «        }	|                     t          | ||||¦  «        }
t          j                             |	|
gt          j        j        ¬¦  «        \  }}d| _         t          |¦  «        dk    r t          dt          |¦  «        › d�¦  «        ‚|D ]:}| 
                    ¦   «         }|r~~	~
~	 |‚# ~w xY w|                     ¦   «         c S d S rß   )r·   râ   rã   Ústream_sse_v1plusrå   ræ   rç   rè   ré   rê   Ú	exceptionrë   )rÕ   rÅ   rÙ   rò   rô   r4   rõ   rÚ   rÛ   rì   rí   rî   rï   rð   rù   s                  r(   Úget_pred_from_sse_v1plusrú     s%  € ð #€FÔØ—O’OÝ˜& '¨7°Jñô €Mð —’ÝØØ"ØØØñô €Jõ Ô ×%Ò%Ø	˜
Ð#ÝÔ&Ô6ð &ñ ô �G€Dˆ!ð "€FÔå
ˆ4�y„y�A‚~€~ÝÐH­3¨t©9¬9ÐHÐHÐHÑIÔIÐIØð 
ð 
ˆØ×$Ò$Ñ&Ô&ˆ	Øð 	ð ˜ z°4ðØ�øà����Ø�}Š}‰ŒÐÐÐð
ð 
s   ÃCÃCc                ót  — 	 t          j        d¦  «         | j        5  | j        r	 d d d ¦  «         n>| j        rt
          j                             ¦   «         ‚	 d d d ¦  «         n# 1 swxY w Y   Œn| j        r%t          j
        | j        d| j        i|||¬¦  «         t
          j                             ¦   «         ‚)NTçš™™™™™©?r4   )rN   rÅ   rÙ   Úverify)rŸ   Úsleepr²   r¶   r·   rå   ræ   ÚCancelledErrorr4   rÆ   Úpostrµ   )rÕ   rÅ   rÙ   rÚ   s       r(   rã   rã   «  s&  € ð:ÝŒ
�4ÑÔÐØŒ[ð 	:ð 	:ØÔ#ð Øð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð Ô%ð :Ý Ô(×7Ò7Ñ9Ô9Ð9ð:ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð:ð „ð 
ÝŒ
ØÔØ˜fœoÐ.ØØØð	
ñ 	
ô 	
ð 	
õ Ô
×
+Ò
+Ñ
-Ô
-Ð-s   �	A$²%A$Á$A(Á+A(r2   c                ó>  — 	 |                       d||||¬¦  «        5 }|                     ¦   «         D �]¬}	|	                     d¦  «        }	t          |	¦  «        dk    rŒ,|	                     d¦  «        �rZt          j        |	dd …         ¦  «        }
|
d         t          j        t          j	        fv rŒ|j
        5  d|
v }t          t                               |
d         ¦  «        |
                     d	¦  «        |
                     d
d ¦  «        |
                     d¦  «        t          j        ¦   «         |
                     d¦  «        |r t"                               |
d         ¦  «        nd ¬¦  «        }|
                     di ¦  «                             dg ¦  «        }|rZ|j        t          j        k    rE	  |j        |Ž }n# t,          $ r}|g}Y d }~nd }~ww xY w|j        j                             |¦  «         ||j        _        d d d ¦  «         n# 1 swxY w Y   |j        rt8          j                             ¦   «         ‚|
d         dk    rt?          d¦  «        ‚|
d         dk    rD|
d         }||_         |  !                    |d|i|¥|¥||¬¦  «        }| "                    ¦   «          �Œx|
d         dk    r|
d         c cd d d ¦  «         S �ŒœtG          d|	› �¦  «        ‚	 d d d ¦  «         n# 1 swxY w Y   tG          d¦  «        ‚# t8          j        j        $ r ‚ w xY w)NÚGET)ÚparamsrÅ   rÙ   ú
r   údata:é   r1   r=   r9   r6   r;   r8   )r�   r9   r6   r;   rŸ   rž   r=   r3   r�   rb   z Queue is full! Please try again.rd   r4   )rN   rÅ   rÙ   rg   zUnexpected message: z*Did not receive process_completed message.)$ÚstreamÚ
iter_linesÚrstripré   r¿   rN   rO   r`   r>   ri   r²   r›   ro   r†   rP   r	   r¨   r‰   r˜   r�   rx   r´   rQ   r³   r¤   Úappendr®   r·   rå   ræ   rÿ   rZ   r4   r   Úraise_for_statusrê   )rË   r�   rÔ   rÕ   rÖ   r×   rÅ   rÙ   ÚresponseÚlineÚrespÚhas_progressÚstatus_updater3   rë   Úer4   Úreqs                     r(   rä   rä   Ã  s"  € ð9Ø�]Š]ØØØØØð ñ 
ô 
ð 5	Dð Ø ×+Ò+Ñ-Ô-ð .Dñ .D�Ø—{’{ 4Ñ(Ô(�Ý�t‘9”9 ’>�>ØØ—?’? 7Ñ+Ô+ñ *DÝœ: d¨1¨2¨2¤hÑ/Ô/�DØ˜E”{¥}Ô'8½-Ô:QÐ&RÐRÐRØ Øœð Að AØ'6¸$Ð'>˜Ý(4Ý!'×!5Ò!5°d¸5´kÑ!BÔ!BØ'+§x¢x°Ñ'=Ô'=Ø!%§¢¨&°$Ñ!7Ô!7Ø$(§H¢H¨YÑ$7Ô$7Ý!)¤¡¤Ø $§¢¨Ñ 4Ô 4à+ð+&­,×*?Ò*?ÀÀ_Ô@UÑ*VÔ*VÐ*Và!%ð
)ñ 
)ô 
)˜ð "&§¢¨(°BÑ!7Ô!7×!;Ò!;¸FÀBÑ!GÔ!G˜Ø!ð > mÔ&8½F¼OÒ&KÐ&Kð-Ø)D¨Ô)DÀfÐ)M  øÝ#,ð -ð -ð -Ø*+¨      øøøøð-øøøà"œJÔ.×5Ò5°fÑ=Ô=Ð=Ø3@˜œ
Ô0ð)Að Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að* Ô-ð BÝ(Ô0×?Ò?ÑAÔAÐAØ˜E”{ lÒ2Ð2Ý(Ð)KÑLÔLÐLØ˜eœ¨Ò3Ð3Ø#'¨
Ô#3˜Ø*2˜œØ$ŸkškØ(Ø",¨hÐ!L¸$Ð!LÀ)Ð!LØ$+Ø$+ð	 *ñ ô ˜ð ×,Ò,Ñ.Ô.Ð.Ñ.Ø˜eœÐ(;Ò;Ð;Ø# Hœ~Ð-Ð-ðg5	Dð 5	Dð 5	Dð 5	Dñ 5	Dô 5	Dð 5	Dð 5	Dñd <õ %Ð%B¸DÐ%BÐ%BÑCÔCÐCð].Dð5	Dð 5	Dð 5	Dñ 5	Dô 5	Dð 5	Dð 5	Dð 5	Dð 5	Dð 5	Dð 5	Døøøð 5	Dð 5	Dð 5	Dð 5	Dõl ÐEÑFÔFÐFøÝÔÔ,ð ð ð Øðøøøs‹   ‚L œBK,Â7C:HÆ2
F=Æ<HÆ=
G	ÇG	Ç
HÇG	Ç.HÈK,ÈHÈK,ÈHÈB(K,Ê>L ËK,Ë L Ë,K0Ë0L Ë3K0Ë4L ÌLú1Literal['sse_v1', 'sse_v2', 'sse_v2.1', 'sse_v3']c                ó  — 	 ||         }d }	 t          |¦  «        dk    r|                     ¦   «         }nt          j        d¦  «         Œ>|�| j        rt
          j                             ¦   «         ‚| j        5  d }|d         t          j
        k    r2|                     d¦  «        }	|                     d¦  «        }
|	r|
r|	|
f}t          t                               |d         ¦  «        |                     d¦  «        |                     dd ¦  «        |                     d	¦  «        t          j        ¦   «         |                     d
¦  «        d|v r t"                               |d         ¦  «        nd |¬¦  «        }|                     di ¦  «                             dg ¦  «        }|d         t          j        k    ru|dv rq|€t)          |¦  «        }n_t+          |¦  «        D ]O\  }}|t          |¦  «        k    r|                     d ¦  «         ||         }t/          ||¦  «        }|||<   |||<   ŒP|r—|j        t          j        k    r‚	  | j        |Ž }n# t6          $ r}|g}Y d }~nd }~ww xY w| j        j                             |¦  «         | j                             tA          ||                     d	d¦  «        ¬¦  «        ¦  «         || j        _!        | j                             |¦  «         d d d ¦  «         n# 1 swxY w Y   |d         t          j"        k    r©|5  ||= d d d ¦  «         n# 1 swxY w Y   |                     d	d¦  «        s(tG          |d          $                    ¦   «         ¦  «        }n|d         }| j                             tA          |d|                     d	d¦  «        ¬¦  «        ¦  «         |d         S |d         t          j%        k    rtM          d¦  «        ‚�ŒÞ# t
          j        j        $ r ‚ w xY w)NTr   rü   r1   r>   r?   r9   r6   r;   r8   r=   )r�   r9   r6   r;   rŸ   rž   r=   r>   r3   r�   )Ússe_v2zsse_v2.1Ússe_v3)r¤   r;   )r¤   r¥   r;   zServer stopped.)'ré   ÚpopleftrŸ   rþ   r·   rå   ræ   rÿ   r²   r`   r>   rP   r›   ro   r†   r	   r¨   r‰   r˜   rf   r¯   Ú	enumerater
  Ú
apply_diffr�   rx   r´   rQ   r³   r¤   rº   Ú
put_nowaitr¢   r®   rg   rÓ   Úitemsrm   rê   )rÕ   rò   rô   r4   rõ   Úpending_messagesÚpending_responses_for_diffsr1   Úlog_messager>   r?   r  r3   ÚiÚvalueÚprev_outputÚ
new_outputrë   r  s                      r(   rø   rø   	  sÀ  € ðVØ5°hÔ?ÐØ&*Ð#ðO	4ÝÐ#Ñ$Ô$ qÒ(Ð(Ø&×.Ò.Ñ0Ô0��å”
˜4Ñ Ô Ð Øàˆ{˜fÔ4ˆ{Ý Ô(×7Ò7Ñ9Ô9Ð9à”ð 29ð 29Ø"�Ø�u”:¥Ô!2Ò2Ð2ØŸ'š' %™.œ.�CØŸGšG GÑ,Ô,�EØð 3˜uð 3Ø'*¨E l˜Ý ,Ý×-Ò-¨c°%¬jÑ9Ô9Ø"Ÿwšw |Ñ4Ô4ØŸš ¨Ñ.Ô.ØŸGšG IÑ.Ô.Ý!œ™œØŸš 
Ñ+Ô+à&¨#Ð-Ð-õ #/×"7Ò"7¸¸OÔ8LÑ"MÔ"MÐ"MàØ#ð!ñ !ô !�ð Ÿš ¨2Ñ.Ô.×2Ò2°6¸2Ñ>Ô>�Ø�u”:¥Ô!AÒAÐAÀhð Sð Gð Gð
 3Ð:Ý6:¸6±l´lÐ3Ð3å(1°&Ñ(9Ô(9ð 
3ð 
3™H˜A˜uð
  !¥CÐ(CÑ$DÔ$DÒDÐDØ ;× BÒ BÀ4Ñ HÔ HÐ HØ*EÀaÔ*H˜KÝ)3°KÀÑ)GÔ)G˜JØ=GÐ7¸Ñ:Ø(2˜F 1™I˜Iàð ˜mÔ0µF´OÒCÐCð%Ø!< Ô!<¸fÐ!E˜˜øÝ$ð %ð %ð %Ø"# ˜˜˜˜˜˜øøøøð%øøøà”JÔ&×-Ò-¨fÑ5Ô5Ð5Ø”N×-Ò-Ý$¨V¸S¿WºWÀYÐPTÑ=UÔ=UÐVÑVÔVñô ð ð ,9�”
Ô(Ø”×)Ò)¨-Ñ8Ô8Ð8ðe29ð 29ð 29ñ 29ô 29ð 29ð 29ð 29ð 29ð 29ð 29øøøð 29ð 29ð 29ð 29ðf �5Œz�]Ô<Ò<Ð<Ø!ð =ð =Ø2°8Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =à—w’w˜y¨$Ñ/Ô/ð +õ " # h¤-×"5Ò"5Ñ"7Ô"7Ñ8Ô8�F�Fà  œ]�FØ”×)Ò)Ý Ø &Ø"Ø #§¢¨	°4Ñ 8Ô 8ðñ ô ñô ð ð ˜8”}Ð$Ø�U”�}Ô;Ò;Ð;Ý Ð!2Ñ3Ô3Ð3ñ_O	4øõb ÔÔ,ð ð ð Øðøøøs‡   ‚A6O+ Á8GK:É
IÉK:É
I)ÉI$ÉK:É$I)É)BK:Ë.O+ Ë:K>Ë>O+ ÌK>ÌO+ ÌL-Ì!O+ Ì-L1Ì1O+ Ì4L1Ì5BO+ Ï'O+ Ï+Pc                ób   — t          j        | ¦  «        } d„ }|D ]\  }}} || |||¦  «        } Œ| S )Nc                ó>  — t          |¦  «        dk    r%|dk    r|S |dk    r| |z   S t          d|› �¦  «        ‚| }t          t          |¦  «        dz
  ¦  «        D ]}|||                  }Œ|d         }|dk    r|||<   nž|dk    r||xx         |z  cc<   n‡|dk    r?t          |t          ¦  «        r$|                     t          |¦  «        |¦  «         nH|||<   nB|dk    r*t          |t          ¦  «        r|t          |¦  «        = n||= nt          d	|› �¦  «        ‚| S )
Nr   Úreplacer
  zUnsupported action: rá   éÿÿÿÿÚaddÚdeletezUnknown action: )ré   rê   Úranger¾   r¯   Úinsertr5   )ÚtargetÚpathÚactionr   Úcurrentr  Ú	last_paths          r(   Ú
apply_editzapply_diff.<locals>.apply_editl  sh  € Ýˆt‰9Œ9˜Š>ˆ>Ø˜Ò"Ð"Ø�Ø˜8Ò#Ð#Ø ‘~Ð%å Ð!@¸Ð!@Ð!@ÑAÔAÐAàˆÝ•s˜4‘y”y 1‘}Ñ%Ô%ð 	'ð 	'ˆAØ˜d 1œgÔ&ˆGˆGà˜”Hˆ	Ø�YÒÐØ!&ˆG�IÑÐØ�xÒÐØ�IÐÐÔ %Ñ'ÐÐÑÐØ�uŠ_ˆ_Ý˜'¥4Ñ(Ô(ð +Ø—’�s 9™~œ~¨uÑ5Ô5Ð5Ð5à%*�˜	Ñ"Ð"Ø�xÒÐÝ˜'¥4Ñ(Ô(ð 'Ø�C 	™NœNÐ+Ð+à˜IÐ&Ð&åÐ8°Ð8Ð8Ñ9Ô9Ð9àˆr+   )ÚcopyÚdeepcopy)ÚobjÚdiffr0  r-  r,  r   s         r(   r  r  i  sU   € Ý
Œ-˜Ñ
Ô
€Cðð ð ðB  $ð 3ð 3Ñˆ��eØˆj˜˜d F¨EÑ2Ô2ˆˆà€Jr+   Ú	file_pathÚdirrŒ   c                ó8  — t          |pt          j        ¦   «         ¦  «        t          j        d¦  «        z  }|                     dd¬¦  «         |t          | ¦  «        j        z  }t          j        | |¦  «         t          | 
                    ¦   «         ¦  «        S )Né   T©Úexist_okÚparents)r   ÚtempfileÚ
gettempdirÚsecretsÚ	token_hexÚmkdirÚnameÚshutilÚcopy2r0   Úresolve)r5  r6  Ú	directoryÚdests       r(   Úcreate_tmp_copy_of_filerG  ˜  s~   € Ý�SÐ1�HÔ/Ñ1Ô1Ñ2Ô2µWÔ5FÀrÑ5JÔ5JÑJ€IØ‡O‚O˜T¨4€OÑ0Ô0Ð0Ø•t˜I‘”Ô+Ñ+€DÝ
„L�˜DÑ!Ô!Ð!Ýˆt�|Š|‰~Œ~ÑÔÐr+   Úurl_pathÚtokenc                ó†  — |�t          j        |d¬¦  «         |rdd|z   ini }t          |pt          j        ¦   «         ¦  «        t          j        d¦  «        z  }|                     dd¬¦  «         |t          | ¦  «        j        z  }t          j
        d| |d¬	¦  «        5 }|                     ¦   «          t          |d
¦  «        5 }|                     ¦   «         D ]}|                     |¦  «         Œ	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   t          |                     ¦   «         ¦  «        S )z0Kept for backwards compatibility for 3.x spaces.NT©r:  ÚAuthorizationúBearer r8  r9  r  )rÅ   Úfollow_redirectsÚwb)ÚosÚmakedirsr   r<  r=  r>  r?  r@  rA  rÆ   r  r  ÚopenÚiter_rawÚwriter0   rD  )	rH  rI  r6  rÅ   rE  r5  r  ÚfÚchunks	            r(   Údownload_tmp_copy_of_filerW     s¿  € ð €Ý
Œ�C $Ð'Ñ'Ô'Ð'Ø6;ÐCˆ 	¨EÑ 1Ð2Ð2À€GÝ�SÐ1�HÔ/Ñ1Ô1Ñ2Ô2µWÔ5FÀrÑ5JÔ5JÑJ€IØ‡O‚O˜T¨4€OÑ0Ô0Ð0Ø�D ™NœNÔ/Ñ/€Iå	ŒØˆx ¸4ð
ñ 
ô 
ð à	Ø×!Ò!Ñ#Ô#Ð#Ý�)˜TÑ"Ô"ð 	 aØ!×*Ò*Ñ,Ô,ð ð �Ø—’˜‘”��ðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˆy× Ò Ñ"Ô"Ñ#Ô#Ð#s6   Â!%DÃ-D Ã4DÄ D	ÄDÄD	ÄDÄDÄDÚfilenamec                ó  — |                       ¦   «         }|                     d¦  «        rdS |                     d¦  «        rdS t          j        | ¦  «        d         }|�*|                     dd¦  «                             dd	¦  «        }|S )
Nz.vttztext/vttz.webpz
image/webpr   zx-wavÚwavzx-flacÚflac)ÚlowerÚendswithÚ	mimetypesÚ
guess_typer%  )rX  Úfilename_lowerÚmimetypes      r(   Úget_mimetyperb  µ  sŒ   € Ø—^’^Ñ%Ô%€NØ×Ò˜vÑ&Ô&ð ØˆzØ×Ò˜wÑ'Ô'ð Øˆ|ÝÔ# HÑ-Ô-¨aÔ0€HØÐØ×#Ò# G¨UÑ3Ô3×;Ò;¸HÀfÑMÔMˆØ€Or+   Úencodingc                óè   — |                       dd¦  «        } t          j        | ¦  «        d         }|dk    rdS |€d S t          j        |¦  «        }|�|                     d¦  «        r
|dd …         }|S )Nz	audio/wavzaudio/x-wavr   z
audio/flacr[  ú.rá   )r%  r^  r_  Úguess_extensionr¿   )rc  r    Ú	extensions      r(   Úget_extensionrh  Á  s‚   € Ø×Ò ¨]Ñ;Ô;€HÝÔ Ñ)Ô)¨!Ô,€DØˆ|ÒÐØˆvØ	ˆØˆtÝÔ)¨$Ñ/Ô/€IØÐ ×!5Ò!5°cÑ!:Ô!:ÐØ˜a˜b˜b”Mˆ	ØÐr+   Ú
file_typesú	list[str]c                óŠ  — t          | ¦  «        }t          | ¦  «        j                             ¦   «         }|D ]Š}|dk    r dS |                     d¦  «        rM|                     ¦   «         }t          |¦  «        t          |¦  «        k    r|                     |¦  «        r dS Œm|�|                     |› d�¦  «        r dS Œ‹dS )NÚfileTre  ú/F)rb  r   rA  r\  r¿   ré   r]  )r5  ri  Ú	mime_typeÚ	file_nameÚ	file_types        r(   Úis_valid_filerq  Î  sÍ   € Ý˜YÑ'Ô'€IÝ�Y‘”Ô$×*Ò*Ñ,Ô,€IØð ð ˆ	Ø˜ÒÐØ�4�4Ø×Ò Ñ$Ô$ð 	Ø!ŸšÑ)Ô)ˆIÝ�9‰~Œ~¥ I¡¤Ò.Ð.°9×3EÒ3EÀiÑ3PÔ3PÐ.Ø�t�tøØÐ" y×';Ò';¸y¸O¸O¸OÑ'LÔ'LÐ"Ø�4�4øØˆ5r+   rU  ú
str | Pathc                ó  — t          | d¦  «        5 }t          j        |                     ¦   «         ¦  «        }t	          |d¦  «        }t          t	          | ¦  «        ¦  «        }d|�|ndz   dz   |z   	 cd d d ¦  «         S # 1 swxY w Y   d S )NÚrbrG   r  rI   ú;base64,)rR  Úbase64Ú	b64encodeÚreadr0   rb  )rU  rl  Úencoded_stringÚ
base64_strra  s        r(   Úencode_file_to_base64r{  Ý  sÖ   € Ý	ˆa�‰Œð 	
˜$ÝÔ)¨$¯)ª)©+¬+Ñ6Ô6ˆÝ˜¨Ñ1Ô1ˆ
Ý¥ A¡¤Ñ'Ô'ˆàØ#Ð/ˆxˆx°Rñ9àñð ñð	
ð		
ð 	
ð 	
ð 	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøð 	
ð 	
ð 	
ð 	
ð 	
ð 	
s   ‘A"B Â BÂBÚurlc                óà   — t          j        | ¦  «        }|                     ¦   «          t          j        |j        ¦  «        }t          |d¦  «        }t          | ¦  «        }d|�|ndz   dz   |z   S )NrG   r  rI   ru  )rÆ   rP   r  rv  rw  Úcontentr0   rb  )r|  r  ry  rz  ra  s        r(   Úencode_url_to_base64r  ê  so   € ÝŒ9�S‰>Œ>€DØ×ÒÑÔÐÝÔ% d¤lÑ3Ô3€NÝ�^ WÑ-Ô-€JÝ˜CÑ Ô €Hà˜xÐ3�8�8¸Ñ<¸zÑIÈJÑVðr+   r,  c                óz   — t          | ¦  «        } t          | ¦  «        rt          | ¦  «        S t          | ¦  «        S r‚   )r0   rÂ   r  r{  ©r,  s    r(   Úencode_url_or_file_to_base64r‚  õ  s9   € Ýˆt‰9Œ9€DÝ˜ÑÔð *Ý# DÑ)Ô)Ð)Ý  Ñ&Ô&Ð&r+   c              #  óä   K  — t          ¦   «         }|rdd|z   ini }t          j        d| |¬¦  «        5 }|                     ¦   «         D ]}||z  }|V — Œ	 d d d ¦  «         n# 1 swxY w Y   |V — d S )NrL  rM  r  rÄ   )Ú	bytearrayrÆ   r  Ú
iter_bytes)r|  rI  ÚarrrÅ   Úrr�   s         r(   Údownload_byte_streamrˆ  ü  sÐ   è è € Ý
‰+Œ+€CØ6;ÐCˆ 	¨EÑ 1Ð2Ð2À€GÝ	Œ�e˜S¨'Ð	2Ñ	2Ô	2ð °aØ—L’L‘N”Nð 	ð 	ˆDØ�4‰KˆCØˆJˆJˆJˆJð	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð €I€I€I€I€Is   ³!A!Á!A%Á(A%útuple[bytes, str | None]c                ó„   — t          | ¦  «        }|                      dd¦  «        d         }t          j        |¦  «        |fS )Nú,rá   r&  )rh  Úrsplitrv  Ú	b64decode)rc  rg  r�   s      r(   Údecode_base64_to_binaryrŽ    s=   € Ý˜hÑ'Ô'€IØ�?Š?˜3 Ñ"Ô" 2Ô&€DÝÔ˜DÑ!Ô! 9Ð,Ð,r+   éÈ   Ú	max_bytesr5   c                ó”  — t           j                             | ¦  «        \  }}t                               d|¦  «        }|r&dt                               d|dd…         ¦  «        z   }|s|rd}||z   dk    rdS ||z                        d¦  «        } | sd} t           j                             | ¦  «        \  }}||z                        d¦  «        d                              d	¦  «                             ¦   «         t          v rd
|z   }||z   } t          |  
                    ¦   «         ¦  «        |k    r8|r6|dd…         }||z   } t          |  
                    ¦   «         ¦  «        |k    r|°6t          |  
                    ¦   «         ¦  «        |k    r| S d}t          | 
                    ¦   «         ¦  «        |k    r3|r1|dd…         }t          | 
                    ¦   «         ¦  «        |k    r|°1t          ||z    
                    ¦   «         ¦  «        |k    r6|r4|dd…         }t          ||z    
                    ¦   «         ¦  «        |k    r|°4||z   S )aã  
    Strips invalid characters from a filename and ensures it does not exceed the maximum byte length.
    Only removes characters that are truly dangerous for file systems: path separators,
    null bytes, control characters, and shell-dangerous characters. Preserves all other
    characters including parentheses, brackets, unicode characters, etc.
    The filename may include an extension (which is preserved when it fits), or
    could be just a name without an extension.
    rI   re  rá   Nrl  z..z .r   ú rï   r&  )rP  r,  ÚsplitextÚ_FORBIDDEN_REÚsubr	  Ú	partitionÚupperÚ_WINDOWS_RESERVED_NAMESré   Úencode)rX  r�  rA  Úexts       r(   Ú!strip_invalid_filename_charactersr›    sU  € õ ”× Ò  Ñ*Ô*�I€Dˆ#Ý×Ò˜R Ñ&Ô&€Dà
ð 3Ø•M×%Ò% b¨#¨a¨b¨b¬'Ñ2Ô2Ñ2ˆð ð �Cð Øˆàˆc�z�TÒÐØˆtð �s‘
×"Ò" 4Ñ(Ô(€HØð ØˆÝ”× Ò  Ñ*Ô*�I€Dˆ#ð 	ˆs‰
×Ò˜cÑ"Ô" 1Ô%×,Ò,¨SÑ1Ô1×7Ò7Ñ9Ô9Õ=TÐTÐTØ�T‰zˆØ�c‰z€HÝ
ˆh�oŠoÑÔÑ
 Ô
  9Ò
,Ð
,°Ð
,Ø�C�R�CŒyˆØ˜#‘:ˆõ ˆh�oŠoÑÔÑ
 Ô
  9Ò
,Ð
,°Ð
,õ ˆ8�?Š?ÑÔÑÔ Ò*Ð*Øˆð €DÝ
ˆd�kŠk‰mŒmÑ
Ô
˜yÒ
(Ð
(¨TÐ
(Ø�C�R�CŒyˆõ ˆd�kŠk‰mŒmÑ
Ô
˜yÒ
(Ð
(¨TÐ
(å
ˆt�c‰z×!Ò!Ñ#Ô#Ñ
$Ô
$ yÒ
0Ð
0°SÐ
0Ø�#�2�#Œhˆõ ˆt�c‰z×!Ò!Ñ#Ô#Ñ
$Ô
$ yÒ
0Ð
0°SÐ
0à�#‰:Ðr+   c                ó^   — t           j                             t          | ¦  «        d¬¦  «        S )zAEncode a filesystem path for use after a Gradio ``/file=`` route.rm  )Úsafe)ÚurllibÚparseÚquoter0   r�  s    r(   Úencode_file_pathr¡  @  s#   € åŒ<×Ò�c $™iœi¨cÐÑ2Ô2Ð2r+   Úoriginal_namec                óŒ   — d                      d„ | D ¦   «         ¦  «                             dd¦  «                             ¦   «         S )zECleans up a Python parameter name to make the API info more readable.rI   c                óB   — g | ]}|                      ¦   «         s|d v ¯|‘ŒS )z _)Úisalnum)r&   Úchars     r(   r—   z,sanitize_parameter_names.<locals>.<listcomp>H  s*   € ÐRÐRÐR˜$°4·<²<±>´>ÐRÀTÈTÀ\À\�À\À\À\r+   r’  rï   )Újoinr%  r\  )r¢  s    r(   Úsanitize_parameter_namesr¨  E  s?   € ð 	�ŠÐRÐR -ÐRÑRÔRÑSÔSß	Š��cÑ	Ô	ß	Š‰Œðr+   ústr | Path | NoneÚprefixc                óZ  — t          |pt          j        ¦   «         ¦  «        t          j        d¦  «        z  }|                     dd¬¦  «         t          | ¦  «        \  }}|�Y|€Wt          |¦  «        j        }|}d|v r=|d|                     d¦  «        …         }||                     d¦  «        dz   d …         }|�t          |¦  «        }|€t          j
        d||¬¦  «        }nt          j
        d|d|z   |¬	¦  «        }|                     |¦  «         |                     ¦   «          |S )
Nr8  Tr9  re  r   rá   F)r(  rª  r6  )r(  rª  Úsuffixr6  )r   r<  r=  r>  r?  r@  rŽ  rA  r}   r›  ÚNamedTemporaryFilerT  Úflush)	rc  r5  r6  rª  rE  r�   rg  rX  Úfile_objs	            r(   Údecode_base64_to_filer°  N  sC  € õ �SÐ1�HÔ/Ñ1Ô1Ñ2Ô2µWÔ5FÀrÑ5JÔ5JÑJ€IØ‡O‚O˜T¨4€OÑ0Ô0Ð0Ý-¨hÑ7Ô7�O€Dˆ)ØÐ  Ý˜	‘?”?Ô'ˆØˆØ�(ˆ?ˆ?Ø˜a (§.¢.°Ñ"5Ô"5Ð5Ô6ˆFØ  §¢°Ñ!4Ô!4°qÑ!8Ð!:Ð!:Ô;ˆIàÐÝ2°6Ñ:Ô:ˆàÐÝÔ.Ø ¨Yð
ñ 
ô 
ˆˆõ Ô.ØØØ˜‘?Øð	
ñ 
ô 
ˆð ‡N‚N�4ÑÔÐØ‡N‚NÑÔÐØ€Or+   Újsnústr | dict | listc                ó
  — |�t          j        |d¬¦  «         t          j        dd|d¬¦  «        }t	          | t
          ¦  «        rt          j        | ¦  «        } t          j        | |¦  «         | 	                    ¦   «          |S )NTrK  Fz.jsonzw+)r(  r¬  r6  Úmode)
rP  rQ  r<  r­  r¾   r0   rN   rO   Údumpr®  )r±  r6  r¯  s      r(   Údict_or_str_to_json_filer¶  q  s„   € Ø
€Ý
Œ�C $Ð'Ñ'Ô'Ð'åÔ*Ø˜W¨#°Dðñ ô €Hõ �#•sÑÔð ÝŒj˜‰oŒoˆÝ„Iˆc�8ÑÔÐØ‡N‚NÑÔÐØ€Or+   údict | listc                ó|   — t          | ¦  «        5 }t          j        |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r‚   )rR  rN   Úload)r5  rU  s     r(   Úfile_to_jsonrº    sz   € Ý	ˆi‰Œð ˜AÝŒy˜‰|Œ|ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   �1±5¸5é,  Úspace_idÚtimeout_in_secondsc                ó  — t           j                             |dt          ¬¦  «        }	 t	          j        d| › d�d|i|¬¦  «         d S # t          j        $ r1}t          dt           	                    | ¦  «        › d�¦  «        |‚d }~ww xY w)	NÚgradio_client)rI  Úlibrary_nameÚlibrary_versionz"https://huggingface.co/api/spaces/z
/sleeptimeÚseconds)rN   rÅ   z>Could not set sleep timeout on duplicated Space. Please visit z5 to set a timeout manually to reduce billing charges.)
Úhuggingface_hubÚutilsÚbuild_hf_headersÚ__version__rÆ   r   ÚHTTPStatusErrorr^   Ú	SPACE_URLÚformat)r¼  rI  r½  rÅ   r  s        r(   Úset_space_timeoutrÊ  ‡  sÐ   € õ
 Ô#×4Ò4ØØ$Ý#ð 5ñ ô €Gð

ÝŒ
ØE°ÐEÐEÐEØÐ/Ð0Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
øõ
 Ô ð ð ð Ý#ðCÍY×M]ÒM]Ð^fÑMgÔMgð Cð Cð Cñ
ô 
ð ð	øøøøðøøøs   ©A ÁBÁ,BÂBÚfuncr   r   c                óp   — t          j        j        t           j                             ¦   «         | g|¢R i |¤ŽS )a  
    Runs async functions in sync scopes. Can be used in any scope.

    Example:
        if inspect.iscoroutinefunction(block_fn.fn):
            predictions = utils.synchronize_async(block_fn.fn, *processed_input)

    Args:
        func:
        *args:
        **kwargs:
    )ÚfsspecÚasynÚsyncÚget_loop)rË  ÚargsÚkwargss      r(   Úsynchronize_asyncrÓ  £  s7   € õ Œ;Ô�FœK×0Ò0Ñ2Ô2°DÐJ¸4ÐJÐJÐJÀ6ÐJÐJÐJr+   c                  ó   — e Zd ZdS )ÚAPIInfoParseErrorN)r@   rA   rB   r$   r+   r(   rÕ  rÕ  ³  s   € € € € € Ø€Dr+   rÕ  Úschemac                ó  — d| v rdS d| v rdS d| v r| d         S |                       d¦  «        rdS |                       d¦  «        rdS |                       d¦  «        rdS |                       d¦  «        rdS d| vri S t          d| › �¦  «        ‚)	NÚconstÚenumr    ú$refÚoneOfÚanyOfÚallOfzCannot parse type for )rP   rÕ  )rÖ  s    r(   Úget_typerÞ  ·  sÆ   € Ø�&ÐÐØˆwØ�ÐÐØˆvØ	�6Ð	Ð	Ø�fŒ~ÐØ	�Š�FÑ	Ô	ð CØˆvØ	�Š�GÑ	Ô	ð 	CØˆwØ	�Š�GÑ	Ô	ð CØˆwØ	�Š�GÑ	Ô	ð CØˆwØ	�vÐ	Ð	Øˆ	åÐ A¸Ð AÐ AÑBÔBÐBr+   )a-  Dict(path: str | None (Path to a local file), url: str | None (Publicly available url or base64 encoded image), size: int | None (Size of image in bytes), orig_name: str | None (Original filename), mime_type: str | None (mime type of image), is_stream: bool (Can always be set to False), meta: Dict())a-  dict(path: str | None (Path to a local file), url: str | None (Publicly available url or base64 encoded image), size: int | None (Size of image in bytes), orig_name: str | None (Original filename), mime_type: str | None (mime type of image), is_stream: bool (Can always be set to False), meta: dict())z`Dict(path: str, url: str | None, size: int | None, orig_name: str | None, mime_type: str | None)zqDict(path: str, url: str | None, size: int | None, orig_name: str | None, mime_type: str | None, is_stream: bool)zDict(path: str, url: str | None, size: int | None, orig_name: str | None, mime_type: str | None, is_stream: bool, meta: Dict())zdict(path: str, url: str | None, size: int | None, orig_name: str | None, mime_type: str | None, is_stream: bool, meta: dict())zždict(path: str, url: str | None, size: int | None, orig_name: str | None, mime_type: str | None, is_stream: bool, meta: dict(_type: Literal[gradio.FileData]))r&  c                ó~   — t          | |                      d¦  «        ¦  «        }|                     t          d¦  «        S )Nú$defsÚfilepath)Ú_json_schema_to_python_typerP   r%  ÚCURRENT_FILE_DATA_FORMAT)rÖ  Útype_s     r(   Újson_schema_to_python_typerå  Ù  s2   € Ý'¨°·
²
¸7Ñ0CÔ0CÑDÔD€EØ�=Š=Õ1°:Ñ>Ô>Ð>r+   c                ó4  ‡‡
— | i k    rdS t          | ¦  «        }|i k    rd|                      di ¦  «        v rdS dS |dk    r5t          ‰| d                              d¦  «        d                  ‰¦  «        S |dk    rd	S |d
k    rd| d
         › d�S |dk    r+dd                     d„ | d         D ¦   «         ¦  «        z   dz   S |dk    rdS |dk    rdS |dk    rdS |dk    rdS |dk    rŽ|                      dg ¦  «        }d|v r-d                     ˆfd„|d         D ¦   «         ¦  «        }d|› d�S d| v r-d                     ˆfd„| d         D ¦   «         ¦  «        }d|› d�S t          |‰¦  «        }d|› d�S |dk    rª|                      d i ¦  «        }t          | ‰pi ¦  «        rd!S d"„ Š
ˆˆ
fd#„|                     ¦   «         D ¦   «         }d$| v r=| d$         }t          |t          ¦  «        r	|r|d%gz  }n|d&t          |‰¦  «        › �gz  }d                     |¦  «        }d'|› d(�S |d)v r)d*                     ˆfd+„| |         D ¦   «         ¦  «        }|S |d,k    r/d                     ˆfd-„| |         D ¦   «         ¦  «        }	d.|	› d�}|S t          d/| › �¦  «        ‚)0z/Convert the json schema into a python type hintr   rN   Údescriptionz str | float | bool | list | dictrÚ  rm  r&  ÚnullÚNonerØ  zLiteral[ú]rÙ  z, c                ó8   — g | ]}d t          |¦  «        z   d z   ‘ŒS )ú')r0   )r&   Úvs     r(   r—   z/_json_schema_to_python_type.<locals>.<listcomp>ð  s'   € Ð#OÐ#OÐ#O¸1 C­#¨a©&¬&¡L°3Ñ$6Ð#OÐ#OÐ#Or+   Úintegerr5   Ústringr0   Úbooleanr:   Únumberr7   Úarrayr  ÚprefixItemsc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r$   ©râ  ©r&   r  Údefss     €r(   r—   z/_json_schema_to_python_type.<locals>.<listcomp>þ  s$   ø€ ÐTÐTÐT¸!Õ,¨Q°Ñ5Ô5ÐTÐTÐTr+   ztuple[c                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r$   rõ  rö  s     €r(   r—   z/_json_schema_to_python_type.<locals>.<listcomp>  s$   ø€ ÐUÐUÐU¸!Õ,¨Q°Ñ5Ô5ÐUÐUÐUr+   zlist[ÚobjectÚ
propertiesrá  c                ób   — |                       d¦  «        rd|                       d¦  «        › d�ndS )Nrç  z (ú)rI   r”   )rí  s    r(   Úget_descz-_json_schema_to_python_type.<locals>.get_desc  s6   € Ø34·5²5¸Ñ3GÔ3GÐOÐ/˜Ÿš˜mÑ,Ô,Ð/Ð/Ð/Ð/ÈRÐOr+   c                ób   •— g | ]+\  }}|d k    ¯|› dt          |‰¦  «        ›  ‰|¦  «        › �‘Œ,S )rà  ú: rõ  )r&   Únrí  r÷  rý  s      €€r(   r—   z/_json_schema_to_python_type.<locals>.<listcomp>  sT   ø€ ð 
ð 
ð 
á��1Ø�GŠ|ˆ|ð ÐGÐGÕ/°°4Ñ8Ô8ÐG¸(¸(À1¹+¼+ÐGÐGàˆ|ˆ|r+   ÚadditionalPropertieszstr, Anyzstr, zdict(rü  )rÛ  rÜ  z | c                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r$   rõ  rö  s     €r(   r—   z/_json_schema_to_python_type.<locals>.<listcomp>"  s$   ø€ ÐWÐWÐWÀAÕ6°q¸$Ñ?Ô?ÐWÐWÐWr+   rÝ  c              3  ó8   •K  — | ]}t          |‰¦  «        V — Œd S r‚   rõ  rö  s     €r(   r)   z._json_schema_to_python_type.<locals>.<genexpr>%  s.   øè è € ÐUÐUÀ!Õ4°Q¸Ñ=Ô=ÐUÐUÐUÐUÐUÐUr+   zAll[zCannot parse schema )
rÞ  rP   râ  Úsplitr§  Ú_is_file_schemar  r¾   r:   rÕ  )rÖ  r÷  rä  r  ÚelementsÚpropsÚdesÚadditional_propertiesr�   r�   rý  s    `        @r(   râ  râ  Þ  s¦  øø€ à�‚|€|ØˆuÝ�VÑÔ€EØ�‚{€{Ø�V—Z’Z ¨rÑ2Ô2Ð2Ð2Ø5Ð5à�5Ø	�&ŠˆÝ*¨4°°v´×0DÒ0DÀSÑ0IÔ0IÈ"Ô0MÔ+NÐPTÑUÔUÐUØ	�&ŠˆØˆvØ	�'Ò	Ð	Ø,˜& œ/Ð,Ð,Ð,Ð,Ø	�&Šˆà˜ŸšÐ#OÐ#OÀÀvÄÐ#OÑ#OÔ#OÑPÔPÑPÐSVÑVð	
ð 
�)Ò	Ð	ØˆuØ	�(Ò	Ð	ØˆuØ	�)Ò	Ð	ØˆvØ	�(Ò	Ð	ØˆwØ	�'Ò	Ð	Ø—
’
˜7 BÑ'Ô'ˆØ˜EÐ!Ð!Ø—y’yØTÐTÐTÐT¸uÀ]Ô?SÐTÑTÔTñô ˆHð (˜HÐ'Ð'Ð'Ð'Ø˜fÐ$Ð$Ø—y’yØUÐUÐUÐU¸vÀmÔ?TÐUÑUÔUñô ˆHð (˜HÐ'Ð'Ð'Ð'å2°5¸$Ñ?Ô?ˆHØ&˜8Ð&Ð&Ð&Ð&Ø	�(Ò	Ð	Ø—
’
˜<¨Ñ,Ô,ˆÝ˜6 4 :¨2Ñ.Ô.ð 	Ø�:ð	Pð 	Pð 	Pð
ð 
ð 
ð 
ð 
àŸš™œð
ñ 
ô 
ˆð " VÐ+Ð+Ø$*Ð+AÔ$BÐ!ÝÐ/µÑ6Ô6ð Ð;Pð Ø˜
�|Ñ#��àØVÕ7Ð8MÈtÑTÔTÐVÐVðñ �ð �iŠi˜‰nŒnˆØ�sˆ~ˆ~ˆ~ÐØ	Ð$Ð	$Ð	$Ø�zŠzÐWÐWÐWÐWÈÐPUÌÐWÑWÔWÑXÔXˆØˆØ	�'Ò	Ð	Ø�yŠyÐUÐUÐUÐUÀvÈeÄ}ÐUÑUÔUÑUÔUˆØ�dˆ~ˆ~ˆ~ˆØˆåÐ ?°vÐ ?Ð ?Ñ@Ô@Ð@r+   Ú	type_hintc                óF   — 	 t          | ¦  «        S # t          $ r i cY S w xY wr‚   )Ú_python_type_to_json_schemarQ   )r
  s    r(   Úpython_type_to_json_schemar  ,  s9   € ðÝ*¨9Ñ5Ô5Ð5øÝð ð ð Øˆ	ˆ	ˆ	ðøøøs   ‚ ‘ Ÿ c                ó  — | t          d¦  «        u rddiS | t          u ri S | t          u rddiS | t          u rddiS | t          u rddiS | t
          u rddiS | t          u rdi d	œS | t          u rd
i dœS | t          u rdd
iS | t          u s	| t          u rd
ddœS | t          u s	| t          u rdddœS t          | ¦  «        }|t          u r=t          | ¦  «        }t!          |¦  «        dk    r
d|d         iS dt          |¦  «        iS |t"          u s.t%          |d¦  «        r|j        dk    st          |¦  «        dk    rqt          | ¦  «        }t!          |¦  «        dk    rAt          d¦  «        |v r0t)          d„ |D ¦   «         ¦  «        }t+          |¦  «        }dddi|giS dd„ |D ¦   «         iS |t          u r0t          | ¦  «        }|sd
i dœS |d         }d
t+          |¦  «        dœS |t          u rut          | ¦  «        }|sdd
iS t!          |¦  «        dk    r"|d         du rd
t+          |d         ¦  «        dœS d
d„ |D ¦   «         t!          |¦  «        t!          |¦  «        dœS |t          u s	|t          u r1t          | ¦  «        }|sd
ddœS |d         }d
dt+          |¦  «        dœS |t          u rGt          | ¦  «        }|sdi d	œS |\  }}	|t          urt-          d ¦  «        ‚dt+          |	¦  «        d	œ}|S t/          j        | ¦  «        r%t3          | t4          ¦  «        rd!„ | D ¦   «         }
d|
iS t/          j        | ¦  «        rÁt%          | d"¦  «        r±i }g }t7          | ¦  «        }|                     ¦   «         D ]{\  }}t+          |¦  «        ||<   t%          | d#¦  «        r| j        r|                     |¦  «         ŒDt%          | d$¦  «        r| j        |         j         s|                     |¦  «         Œ|d|d%œ}|r||d&<   |S i S )'z,Convert a Python type hint to a JSON schema.Nr    rè  rï  rî  rñ  rð  rù  )r    r  rò  )r    r  T)r    ÚuniqueItemsÚbyte)r    rÉ  rá   rØ  r   rÙ  r@   Ú	UnionTypeú|é   c              3  ó<   K  — | ]}|t          d ¦  «        u¯|V — Œd S r‚   )r    ©r&   Úts     r(   r)   z._python_type_to_json_schema.<locals>.<genexpr>[  s2   è è € ÐFÐF A°!½4À¹:¼:Ð2EÐ2E˜aÐ2EÐ2EÐ2EÐ2EÐFÐFr+   rÛ  rÜ  c                ó,   — g | ]}t          |¦  «        ‘ŒS r$   ©r  r  s     r(   r—   z/_python_type_to_json_schema.<locals>.<listcomp>^  s!   € ÐHÐHÐH¸QÕ5°aÑ8Ô8ÐHÐHÐHr+   .c                ó,   — g | ]}t          |¦  «        ‘ŒS r$   r  r  s     r(   r—   z/_python_type_to_json_schema.<locals>.<listcomp>n  s!   € ÐJÐJÐJ¸qÕ7¸Ñ:Ô:ÐJÐJÐJr+   )r    ró  ÚminItemsÚmaxItems)r    r  r  z0JSON Schema only supports string keys in objectsc                ó   — g | ]	}|j         ‘Œ
S r$   )r   )r&   Úitems     r(   r—   z/_python_type_to_json_schema.<locals>.<listcomp>‹  s   € Ð8Ð8Ð8 d�t”zÐ8Ð8Ð8r+   rC   Ú	__total__Ú__dataclass_fields__)r    rú  Úrequired)!r    r   r0   r5   r7   r:   rÓ   r¯   ÚtupleÚsetÚ	frozensetÚbytesr„  r   r   r   ré   r   Úhasattrr@   Únextr  rê   ÚinspectÚisclassÚ
issubclassr
   r   r  r  r
  r  Údefault)r
  ÚoriginÚliteral_valuesÚtypesÚ
other_typerÖ  rÑ  Ú	item_typeÚkey_typeÚ
value_typeÚenum_valuesrú  r   ÚhintsÚ
field_nameÚ
field_types                   r(   r  r  3  s"  € à•D˜‘J”JÐÐØ˜ÐÐØ•CÐÐØˆ	Ø•CÐÐØ˜Ð!Ð!Ø•CÐÐØ˜	Ð"Ð"Ø•EÐÐØ˜Ð!Ð!Ø•DÐÐØ˜	Ð"Ð"Ø•DÐÐØ ¸"Ð=Ð=Ð=Ø•DÐÐØ¨"Ð-Ð-Ð-Ø•EÐÐØ˜Ð Ð Ø•CÐÐ˜9­	Ð1Ð1Ø°Ð5Ð5Ð5Ø•EÐÐ˜Y­)Ð3Ð3Ø ¨FÐ3Ð3Ð3å˜	Ñ"Ô"€Fà•ÐÐÝ! )Ñ,Ô,ˆÝˆ~ÑÔ !Ò#Ð#Ø˜^¨AÔ.Ð/Ð/Ø�˜^Ñ,Ô,Ð-Ð-ð 	•%ˆˆÝ�F˜JÑ'Ô'ð 	Ø,2¬O¸{Ò,JÐ,JÝˆv‰;Œ;˜#ÒÐå˜Ñ#Ô#ˆÝˆu‰:Œ:˜Š?ˆ?�t D™zœz¨UÐ2Ð2ÝÐFÐF¨ÐFÑFÔFÑFÔFˆJÝ0°Ñ<Ô<ˆFØ˜v vÐ.°Ð7Ð8Ð8ØÐHÐHÀ%ÐHÑHÔHÐIÐIà•€~€~Ý˜	Ñ"Ô"ˆØð 	2Ø#¨bÐ1Ð1Ð1Ø˜”Gˆ	ØÕ*EÀiÑ*PÔ*PÐQÐQÐQØ•€€Ý˜Ñ#Ô#ˆØð 	%Ø˜GÐ$Ð$Ýˆu‰:Œ:˜Š?ˆ?˜u Qœx¨3˜˜Ø#Õ.IÈ%ÐPQÌ(Ñ.SÔ.SÐTÐTÐTàØJÐJÀEÐJÑJÔJÝ˜E™
œ
Ý˜E™
œ
ð	
ð 
ð 	
ð •€}€}˜¥)Ð+Ð+Ý˜	Ñ"Ô"ˆØð 	:Ø#°DÐ9Ð9Ð9Ø˜”Gˆ	àØÝ0°Ñ;Ô;ð
ð 
ð 	
ð •€~€~Ý˜	Ñ"Ô"ˆØð 	BØ$¸bÐAÐAÐAØ#Ñˆ�*Ø�3ÐÐÝÐOÑPÔPÐPàÝ$?À
Ñ$KÔ$Kð
ð 
ˆð ˆå„�yÑ!Ô!ð %¥j°½DÑ&AÔ&Að %Ø8Ð8¨iÐ8Ñ8Ô8ˆØ˜Ð$Ð$å„�yÑ!Ô!ð ¥g¨iÐ9JÑ&KÔ&Kð Øˆ
Øˆå˜yÑ)Ô)ˆØ&+§k¢k¡m¤mð 		,ð 		,Ñ"ˆJ˜
Ý%@ÀÑ%LÔ%LˆJ�zÑ"Ý�y +Ñ.Ô.ð ,ØÔ&ð 0Ø—O’O JÑ/Ô/Ð/øå˜IÐ'=Ñ>Ô>ð,à Ô5°jÔAÔIð,ð —’ 
Ñ+Ô+Ð+øà"°*Ð=Ð=ˆØð 	*Ø!)ˆF�:ÑØˆà€Ir+   Újson_objÚis_rootúCallable[..., bool]c                óR  —  || ¦  «        r || ¦  «        S t          | t          ¦  «        r2i }|                      ¦   «         D ]\  }}t          |||¦  «        ||<   Œ|S t          | t          t
          f¦  «        r-g }| D ]&}|                     t          |||¦  «        ¦  «         Œ'|S | S )zk
    Traverse a JSON object and apply a function to each element that satisfies the is_root condition.
    )r¾   rÓ   r  Útraverser¯   r!  r
  ©r6  rË  r7  Únew_objÚkeyr   r  s          r(   r:  r:  ¦  sÉ   € ð €wˆxÑÔð Øˆt�H‰~Œ~ÐÝ	�H�dÑ	#Ô	#ð ØˆØ"Ÿ.š.Ñ*Ô*ð 	:ð 	:‰JˆC�Ý# E¨4°Ñ9Ô9ˆG�C‰LˆLØˆÝ	�H�t¥U˜mÑ	,Ô	,ð ØˆØð 	:ð 	:ˆDØ�NŠN�8 D¨$°Ñ8Ô8Ñ9Ô9Ð9Ð9Øˆàˆr+   ú'Callable[..., Coroutine[Any, Any, Any]]c              ƒ  óz  K  —  || ¦  «        r || ¦  «        ƒ d{V —†S t          | t          ¦  «        r8i }|                      ¦   «         D ]\  }}t          |||¦  «        ƒ d{V —†||<   Œ |S t          | t          t
          f¦  «        r3g }| D ],}|                     t          |||¦  «        ƒ d{V —†¦  «         Œ-|S | S )zq
    Traverse a JSON object and apply a async function to each element that satisfies the is_root condition.
    N)r¾   rÓ   r  Úasync_traverser¯   r!  r
  r;  s          r(   r@  r@  º  s  è è € ð €wˆxÑÔð Ø�T˜(‘^”^Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ý	�H�dÑ	#Ô	#ð ØˆØ"Ÿ.š.Ñ*Ô*ð 	Fð 	F‰JˆC�Ý!/°°t¸WÑ!EÔ!EÐEÐEÐEÐEÐEÐEˆG�C‰LˆLØˆÝ	�H�t¥U˜mÑ	,Ô	,ð ØˆØð 	Fð 	FˆDØ�NŠN¥°°d¸GÑ!DÔ!DÐDÐDÐDÐDÐDÐDÑEÔEÐEÐEØˆàˆr+   Úapi_infoc                óJ   — t          | |                      di ¦  «        ¦  «        S )Nrà  )Ú_schema_contains_filerP   )rA  s    r(   Úvalue_is_filerD  Ò  s    € Ý  ¨8¯<ª<¸ÀÑ+DÔ+DÑEÔEÐEr+   r÷  c                óh   — d| v r-| d                               d¦  «        d         }||v r||         S | S )z!Resolve a $ref to its definition.rÚ  rm  r&  )r  ©rÖ  r÷  Úref_names      r(   Ú_resolve_refrH  Ö  sC   € à�ÐÐØ˜&”>×'Ò'¨Ñ,Ô,¨RÔ0ˆØ�tÐÐØ˜”>Ð!Ø€Mr+   údict | Nonec                ó   — |€|                       di ¦  «        }|                       di ¦  «        }d|vsd|vrdS t          |d         |¦  «        }|                      di ¦  «        }d|v r!|d         }|                      d¦  «        d	k    S |                      d
i ¦  «        }t          |t          ¦  «        r|                      d¦  «        d	k    S dS )zYCheck if a schema directly represents a file type (has path + meta with gradio.FileData).Nrà  rú  r,  ÚmetaFÚ_typerØ  úgradio.FileDatar*  )rP   rH  r¾   rÓ   )rÖ  r÷  r  rK  Ú
meta_propsÚtype_schemaÚmeta_defaults          r(   r  r  ß  sÞ   € à€|Ø�zŠz˜' 2Ñ&Ô&ˆØ�JŠJ�| RÑ(Ô(€EØ�UÐÐ˜f¨EÐ1Ð1ØˆuÝ˜˜fœ tÑ,Ô,€DØ—’˜,¨Ñ+Ô+€JØ�*ÐÐØ  Ô)ˆØ�Š˜wÑ'Ô'Ð+<Ò<Ð<Ø—8’8˜I rÑ*Ô*€LÝ�,¥Ñ%Ô%ð >Ø×Ò Ñ(Ô(Ð,=Ò=Ð=Øˆ5r+   c                ó’  ‡— t          | t          ¦  «        s2t          | t          ¦  «        rt          ˆfd„| D ¦   «         ¦  «        S dS d| v r=| d                              d¦  «        d         }|‰v rt          ‰|         ‰¦  «        S dS t          | ‰¦  «        rdS t          ˆfd„|                      ¦   «         D ¦   «         ¦  «        S )zARecursively check if a JSON schema contains a file type anywhere.c              3  ó8   •K  — | ]}t          |‰¦  «        V — Œd S r‚   )rC  )r&   r  r÷  s     €r(   r)   z(_schema_contains_file.<locals>.<genexpr>õ  s.   øè è € ÐLÐL¸TÕ,¨T°4Ñ8Ô8ÐLÐLÐLÐLÐLÐLr+   FrÚ  rm  r&  Tc              3  ó‚   •K  — | ]9\  }}|d k    ¯t          |t          t          f¦  «        ¯'t          |‰¦  «        V — Œ:dS )rà  N)r¾   rÓ   r¯   rC  )r&   Úkrí  r÷  s      €r(   r)   z(_schema_contains_file.<locals>.<genexpr>þ  sU   øè è € ð ð áˆAˆqØ�Š<ˆ<�J q­4µ¨,Ñ7Ô7ˆ<õ 	˜a Ñ&Ô&àˆ<ˆ<ˆ<ðð r+   )r¾   rÓ   r¯   Úanyr  rC  r  r  rF  s    ` r(   rC  rC  ñ  sò   ø€ å�f�dÑ#Ô#ð Ý�f�dÑ#Ô#ð 	MÝÐLÐLÐLÐLÀVÐLÑLÔLÑLÔLÐLØˆuØ�ÐÐØ˜&”>×'Ò'¨Ñ,Ô,¨RÔ0ˆØ�tÐÐÝ(¨¨h¬¸Ñ>Ô>Ð>ØˆuÝ�v˜tÑ$Ô$ð ØˆtÝð ð ð ð à—L’L‘N”Nðñ ô ñ ô ð r+   c                ó¾   — t          | t          t          f¦  «        oAt          | ¦  «                             ¦   «         o t          | ¦  «                             ¦   «         S )zp
    Check if the given value is a valid str or Path filepath on the local filesystem, e.g. "path/to/file".
    )r¾   r0   r   ÚexistsÚis_file)Úss    r(   Úis_filepathrZ    sB   € õ �a�#�t˜Ñ%Ô%ÐP­$¨q©'¬'¯.ª.Ñ*:Ô*:ÐP½tÀA¹w¼w¿ºÑ?PÔ?PÐPr+   c                ój   — t          | t          ¦  «        od| v ot          | d         t          ¦  «        S )z–
    Check if the given value is a valid FileData object dictionary in versions of Gradio<=4.20, e.g.
    {
        "path": "path/to/file",
    }
    r,  )r¾   rÓ   r0   ©r•   s    r(   Úis_file_objr]    s0   € õ �a�ÑÔÐM 6¨Q ;ÐMµ:¸aÀ¼iÍÑ3MÔ3MÐMr+   c                ó²   — t          | t          ¦  «        oBd| v o>t          | d         t          ¦  «        o#d| v o| d                              dd¦  «        dk    S )zû
    Check if the given value is a valid FileData object dictionary in newer versions of Gradio
    where the file objects include a specific "meta" key, e.g.
    {
        "path": "path/to/file",
        "meta": {"_type: "gradio.FileData"}
    }
    r,  rK  rL  rI   rM  )r¾   rÓ   r0   rP   r\  s    r(   Úis_file_obj_with_metar_    sh   € õ 	�1•dÑÔð 	<Ø�aˆKð	<å�q˜”y¥#Ñ&Ô&ð	<ð �aˆKð	<ð ˆfŒI�MŠM˜' 2Ñ&Ô&Ð*;Ò;ðr+   c                ó^   — t          | ¦  «        od| v ot          | d         t          ¦  «        S )a>  
    Check if the given value is a valid FileData object dictionary in newer versions of Gradio
    where the file objects include a specific "meta" key, and ALSO include a "url" key, e.g.
    {
        "path": "path/to/file",
        "url": "/file=path/to/file",
        "meta": {"_type: "gradio.FileData"}
    }
    r|  )r_  r¾   r0   r\  s    r(   Úis_file_obj_with_urlra  (  s.   € õ ! Ñ#Ô#ÐP¨°¨
ÐPµzÀ!ÀEÄ(ÍCÑ7PÔ7PÐPr+   >   ÚboxÚrowÚtabÚformÚtabsÚgroupr   ÚcolumnÚdatasetÚsidebarÚtabitemÚ	accordionÚinterpretationÚfilepath_or_urlc                ó0  — t          | ¦  «        }|ddidœ}t          |¦  «        r$i |¥|                     dd¬¦  «        d         |dœ¥S t          |¦  «                             ¦   «         ri |¥d	t          |¦  «        j        i¥S t          d
|› d�¦  «        ‚)NrL  rM  )r,  rK  rm  rá   )Úmaxsplitr&  )Ú	orig_namer|  rq  zFile z; does not exist on local filesystem and is not a valid URL.)r0   rÂ   rŒ  r   rW  rA  rê   )rn  rY  r�   s      r(   Úhandle_filerr  F  s´   € ÝˆOÑÔ€AØ Ð):Ð;Ð<Ð<€DÝ˜ÑÔð 
ØM�$ÐM Q§X¢X¨c¸A XÑ%>Ô%>¸rÔ%BÈ1ÐMÐMÐMÐMÝ	ˆa‰Œ�ŠÑ	Ô	ð 
Ø2�$Ð2˜¥T¨!¡W¤W¤\Ð2Ð2Ð2åØR�AÐRÐRÐRñ
ô 
ð 	
r+   c                óH   — t          j        d¦  «         t          | ¦  «        S )NzXfile() is deprecated and will be removed in a future version. Use handle_file() instead.)rÏ   rÐ   rr  )rn  s    r(   rl  rl  S  s)   € Ý„MØbñô ð õ �Ñ'Ô'Ð'r+   Úparameters_infoúlist[ParameterInfo] | NonerÑ  r!  rÒ  r¯   c                ó,  —  G d„ dt           ¦  «        }t          |¦  «        }| €|rt          d¦  «        ‚|S t          |¦  «        }||j        gt          | ¦  «        |z
  z  z   }i }g }t          | ¦  «        D ]‡\  }}	d|	v r'|||	d         <   |                     |	d         ¦  «         n|                     d|› �¦  «         |	                     dd¦  «        r)||         |j        k    r|	                     d¦  «        ||<   Œˆ|                     ¦   «         D ]F\  }
}|
|v r+||
         |k     rt          d	|
› d
�¦  «        ‚||||
         <   Œ4t          d	|
› d�¦  «        ‚|j        |v r0t          d|| 
                    |j        ¦  «                 › �¦  «        ‚|S )Nc                  ó   — e Zd ZdZdS )ú!construct_args.<locals>._KeywordsÚNO_VALUEN)r@   rA   rB   ry  r$   r+   r(   Ú	_Keywordsrx  ]  s   € € € € € Øˆˆˆr+   rz  zzThis endpoint does not support key-word arguments Please click on 'view API' in the footer of the Gradio app to see usage.Úparameter_namez	argument Úparameter_has_defaultFÚparameter_defaultzParameter `zs` is already set as a positional argument. Please click on 'view API' in the footer of the Gradio app to see usage.zl` is not a valid key-word argument. Please click on 'view API' in the footer of the Gradio app to see usage.z)No value provided for required argument: )r
   r¯   rê   ré   ry  r  r
  rP   r  Ú	TypeErrorr}   )rt  rÑ  rÒ  rz  Ú_argsÚnum_argsÚkwarg_arg_mappingÚkwarg_namesr}   Ú
param_infor=  r   s               r(   Úconstruct_argsr„  Z  s=  € ðð ð ð ð •Dñ ô ð õ �‰JŒJ€EØÐØð 	Ýð Mñô ð ð ˆÝ�4‰yŒy€HØ�YÔ'Ð(­C°Ñ,@Ô,@À8Ñ,KÑLÑL€EàÐØ€KÝ& Ñ7Ô7ð 
?ð 
?ÑˆˆzØ˜zÐ)Ð)Ø>CÐ˜jÐ)9Ô:Ñ;Ø×Ò˜zÐ*:Ô;Ñ<Ô<Ð<Ð<à×ÒÐ2¨5Ð2Ð2Ñ3Ô3Ð3à�NŠNÐ2°EÑ:Ô:ð	?à�e” 	Ô 2Ò2Ð2à%Ÿ>š>Ð*=Ñ>Ô>ˆE�%‰Løà—l’l‘n”nð ð ‰
ˆˆUØÐ#Ð#Ð#Ø  Ô%¨Ò0Ð0Ýð [ #ð  [ð  [ð  [ñô ð ð 16�Ð'¨Ô,Ñ-Ð-åð P˜cð  Pð  Pð  Pñô ð ð Ô˜UÐ"Ð"ÝØf¸ÀEÇKÂKÐPYÔPbÑDcÔDcÔ8dÐfÐfñ
ô 
ð 	
ð €Lr+   r  úhttpx.Responsec           
     ó
  — | j         dk    rõ|                      ¦   «                              dg ¦  «        }g }t          |¦  «        D ]~\  }}|                     dd¦  «        dk    r_|                     d¦  «        du rH|                     dd	|› �¦  «        }|                     d
|› d|                     dd¦  «        › �¦  «         Œ|                     dt          |¦  «        › d�¦  «         |rd                     |¦  «        S dS dS )z‡
    If the request is a 422 error and the detail contains a validation error message, return the message. Otherwise, return None.
    i¦  ÚdetailÚ__type__rI   ÚvalidateÚis_validFr{  Ú
parameter_z- rÿ  Úmessager   z  parameter(s) failed validation:r  N)rÉ   rN   rP   r  r
  r*  ré   r§  )r  r‡  Úvalidation_messagesr}   Ú
error_infoÚ
param_names         r(   Úextract_validation_messager�  �  s5  € ð „˜#ÒÐØ—’‘”—’ ¨"Ñ-Ô-ˆØ ÐÝ!*¨6Ñ!2Ô!2ð 	ð 	ÑˆE�:à—’˜z¨2Ñ.Ô.°*Ò<Ð<Ø—N’N :Ñ.Ô.°%Ð7Ð7à'Ÿ^š^Ð,<Ð>RÈ5Ð>RÐ>RÑSÔS�
Ø#×*Ò*ØF˜ÐFÐF z§~¢~°iÀÑ'DÔ'DÐFÐFñô ð øð 	×"Ò"Ø•#Ð)Ñ*Ô*ÐLÐLÐLñ	
ô 	
ð 	
ð ð 	2Ø—9’9Ð0Ñ1Ô1Ð1ð! Ðð	2ð 	2r+   )rE   r0   )rE   r:   )rÁ   r0   rE   r:   )rË   rÒ   r�   rÓ   rÔ   rÓ   rÕ   r±   rÖ   r0   r×   r0   rÅ   rØ   rÙ   r¸   rÚ   r:   rÛ   rÜ   rE   rÝ   )rÕ   r±   rÅ   rØ   rÙ   r¸   rò   ró   rô   r   r4   r0   rõ   rö   rÚ   r:   rÛ   rÜ   rE   rÝ   )rÕ   r±   rÅ   rØ   rÙ   r¸   rÚ   r:   )rË   rÒ   r�   rÓ   rÔ   rÓ   rÕ   r±   rÖ   r0   r×   r0   rÅ   rØ   rÙ   r¸   rE   r2   )rÕ   r±   rò   ró   rô   r   r4   r0   rõ   r  rE   r2   r‚   )r5  r0   r6  rŒ   rE   r0   )NN)rH  r0   rI  rŒ   r6  rŒ   rE   r0   )rX  r0   rE   rŒ   )rc  r0   rE   rŒ   )r5  r0   ri  rj  rE   r:   )rU  rr  )r|  r0   )r,  rr  )rc  r0   rE   r‰  )r�  )rX  r0   r�  r5   rE   r0   )r,  rr  rE   r0   )r¢  r0   rE   r0   )NNN)rc  r0   r5  rŒ   r6  r©  rª  rŒ   )r±  r²  r6  r©  )r5  rr  rE   r·  )Nr»  )r¼  r0   rI  rŒ   r½  r5   )rË  r   rE   r   )rÖ  rÓ   )rÖ  r   rE   r0   )r
  r   rE   rÓ   )r6  r   rË  r   r7  r8  rE   r   )r6  r   rË  r>  r7  r8  rE   r   )rA  rÓ   rE   r:   )rÖ  rÓ   r÷  rÓ   rE   rÓ   )rÖ  rÓ   r÷  rI  rE   r:   )r÷  rÓ   rE   r:   )rn  rr  )rt  ru  rÑ  r!  rÒ  rÓ   rE   r¯   )r  r…  rE   rŒ   )”Ú
__future__r   r»   rv  Úconcurrent.futuresrå   r1  r'  rN   r^  rP  rJ   Úrer>  rB  r<  rŸ   Úurllib.parserž  rÏ   Úcollectionsr   Úcollections.abcr   r   Údataclassesr   r   r	   rÙ  r
   Úpathlibr   Ú	threadingr   Útypingr   r   r   r   r   r   r   r   r   Úfsspec.asynrÍ  rÆ   rÃ  r   Úgradio_client.data_classesr   ÚAPI_URLÚ
SSE_URL_V0ÚSSE_DATA_URL_V0ÚSSE_URLÚSSE_DATA_URLÚWS_URLÚ
UPLOAD_URLÚ	LOGIN_URLÚ
CONFIG_URLÚAPI_INFO_URLÚRAW_API_INFO_URLÚSPACE_FETCHER_URLÚ	RESET_URLrÈ  ÚHEARTBEAT_URLÚ
CANCEL_URLÚSTATE_COMPONENTÚNO_APP_FILEÚCONFIG_ERRORÚBUILD_ERRORÚRUNTIME_ERRORÚPAUSEDÚINVALID_RUNTIMEÚcompiler”  r#  r˜  r/   rT   rÆ  rQ   rV   rZ   r\   r^   r0   r`   ro   r‰   r›   r¢   r¦   r©   r«   r±   rÂ   rÍ   rÑ   rñ   rú   rã   rä   rø   r  rG  rW  rb  rh  rq  r{  r  r‚  rˆ  rŽ  r›  r¡  r¨  r°  r¶  rº  rÊ  rÓ  rê   rÕ  rÞ  ÚFILE_DATA_FORMATSrã  rå  râ  r  r  r:  r@  rD  rH  r  rC  rZ  r]  r_  ra  ÚSKIP_COMPONENTSrr  rl  r„  r�  r$   r+   r(   ú<module>r¶     sÞ	  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &àð 9Ø8Ð8Ð8Ð8Ð8Ð8à
€Ø€
Ø€Ø
€Ø€Ø	€Ø€
Ø€	Ø€
Ø(€Ø)Ð ØFÐ Ø€	Ø!€	Ø*€Ø€
à€àÔØÔØÔØÔØÔð€ð �”
Ð<Ñ=Ô=€ð $˜)àØØØØØð	ð 
6Ð	5Ð4Ð	5Ñ	5Ô	5ð	ð 
6Ð	5Ð4Ð	5Ñ	5Ô	5ð	ñô Ð ð
ð 
ð 
ð 
ð 
ˆi˜uð 
ñ 
ô 
ð 
ð	ð 	ð 	ð 	ð "Ð!Ñ#Ô#€ð	ð 	ð 	ð 	ð 	˜9ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜iñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜Iñ 	ô 	ð 	ð,ð ,ð ,ð ,ð ,�C˜ñ ,ô ,ð ,ð"1ð 1ð 1ð 1ð 1ˆTñ 1ô 1ð 1ðh ð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ „ð
ð* ð1ð 1ð 1ð 1ð 1ñ 1ô 1ñ „ð1ð ðð ð ð ð ñ ô ñ „ðð 
ˆ�˜<¨,Ñ6Ñ	7Ô	7€ð	ð 	ð 	ð ð5ð 5ð 5ð 5ð 5ñ 5ô 5ñ „ð5ð ðJð Jð Jð Jð Jñ Jô Jñ „ðJð&<ð <ð <ð <ðð ð ð ðFð Fð Fð Fð$ð $ð $ð $ðN)ð )ð )ð )ðX.ð .ð .ð .ð0Cð Cð Cð CðL]ð ]ð ]ð ]ð@'ð 'ð 'ð^ð ð ð ð ð @Dð$ð $ð $ð $ð $ð*	ð 	ð 	ð 	ð
ð 
ð 
ð 
ðð ð ð ð

ð 

ð 

ð 

ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð-ð -ð -ð -ð1ð 1ð 1ð 1ð 1ðh3ð 3ð 3ð 3ð
ð ð ð ð !Ø!Øð	 ð  ð  ð  ð  ðFð ð ð ð ðð ð ð ð Ø!ðð ð ð ð ð8Kð Kð Kð Kð 	ð 	ð 	ð 	ð 	˜
ñ 	ô 	ð 	ðCð Cð Cð Cð*ð ð Ð ð -¨RÔ0Ð ð?ð ?ð ?ð ?ð
KAð KAð KAð KAð\ð ð ð ðpð pð pð pðfð ð ð ð(ð ð ð ð0Fð Fð Fð Fðð ð ð ðð ð ð ð ð$ð ð ð ð(Qð Qð Qð QðNð Nð Nð Nðð ð ð ð$
Qð 
Qð 
Qð 
Qðð ð €ð"

ð 

ð 

ð 

ð(ð (ð (ð (ð0ð 0ð 0ð 0ðf2ð 2ð 2ð 2ð 2ð 2r+   