+
    –°³jÏr  ã            	       ó„  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
 ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIt^ RIt^ RIHtHtHt ^ R	IHtHt ^R
IH t  ^RI!H"t"H#t# ^RI$H%t% Rt&]! R4      t'Rt(Rt)] ! ])R7      t*Rt+^
t,Rt-]P\                  ! ]/4      t0 ! R R]4      t1 ! R R]2]4      t3]
 ! R R4      4       t4]*Pk                  R. RkOR7      RlR R ll4       t6]*Pk                  R. RmOR7      RnR  R! ll4       t7]*Pk                  R"R#R$R%RR&R$/R'R(.R)7      R* R+ l4       t8]*Pk                  R,R-.R7      R. R/ l4       t9]*Pk                  R0R1.R7      R2 R3 l4       t:]*Pk                  R4R5.R7      R6 R7 l4       t;R8 R9 lt<R: R; lt=R< R= lt>R> R? lt?R@ RA lt@RB RC ltARDR/RE RF lltBRG RH ltCRI RJ ltDRK RL ltERM RN ltF]PŽ                  ! RO4      tHRP RQ ltIRR RS ltJRTRRUR/RV RW lltKRX RY ltLRZ R[ ltMR\ R] ltNR^ R_ ltOR` Ra ltP]PŽ                  ! Rb4      tQRc Rd ltRRe Rf ltSRg Rh ltTRi Rj ltUR# )oz0Contains helper utilities for hf CLI extensions.N)ÚasdictÚ	dataclass)ÚdatetimeÚtimezone)ÚEnum)Úunescape©ÚPath)Ú	AnnotatedÚLiteral)ÚCLIErrorÚCLIExtensionInstallErrorÚConfirmationError)Úget_sessionÚlogging)Útyper_factory)ÚArgumentÚOption)ÚoutÚhuggingfacez~/.local/share/hf/extensionszmanifest.jsonzŒManage hf CLI extensions.

Security Warning: extensions are third-party executables or Python packages. Install only from sources you trust.©Úhelpzhf-extensioni,  c                   ó   € ] tR t^9tRtRtR# )Ú_GitHubRateLimitErrora  The GitHub API refused the request because a rate limit is exhausted.

Distinguished from other `CLIError`s because it says nothing about the extension being handled:
it is not worth retrying on the next one, and it must not be mistaken for an install failure.
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/huggingface_hub/cli/extensions.pyr   r   9   s   † õr!   r   c                   ó"   € ] tR t^AtRtRtRtRtR# )Ú_ExtensionUpdateStatusÚupdatedÚ
up_to_dateÚskippedr   N)r   r   r   r   ÚUPDATEDÚ
UP_TO_DATEÚSKIPPEDr    r   r!   r"   r$   r$   A   s   † Ø€GØ€JØ„Gr!   r$   c                   ób   a € ] tR t^Gt o RtRt]V 3R lR l4       tV 3R lR ltV 3R lt	Rt
V tR# )ÚExtensionManifestNc                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚpathÚreturnr,   r   )ÚformatÚ__classdict__s   "€r"   Ú__annotate__ÚExtensionManifest.__annotate__T   s   ø€ ÷ )ñ )™ð )Ð!4ñ )r!   c                óz  € V\         ,          pVP                  4       '       g   \        R V R24      h\        P                  ! VP                  4       4      pVP                  4        UUu/ uF  w  rEW@P                  9   g   K  WEbK  	  ppp\        P                  ! VR,          4      VR&   \        R/ VB # u uppi )zManifest file not found at z". Your extension may be corrupted.Úinstalled_atr   )ÚMANIFEST_FILENAMEÚis_filer   ÚjsonÚloadsÚ	read_textÚitemsÚ__dataclass_fields__r   Úfromisoformatr,   )Úclsr/   Úmanifest_pathÚdataÚkeyÚvalues   &&    r"   ÚloadÚExtensionManifest.loadS   s¢   € àÔ0Õ0ˆØ×$Ñ$×&Ò&ÜÐ8¸¸ÐGiÐjÓkÐkÜ�zŠz˜-×1Ñ1Ó3Ó4ˆà-1¯Z©Z¬\Ô]©\™z˜s¸S×D\ÑD\Ñ=\”
�’
©\ˆÑ]Ü'×5Ò5°d¸>Õ6JÓKˆˆ^ÑÜ Ñ( 4Ñ(Ð(ùó ^s   Á*B7ÂB7c                ó$   <€ V ^8„  d   QhRS[ RR/# )r.   r/   r0   Nr   )r1   r2   s   "€r"   r3   r4   ^   s   ø€ ÷ Mñ M™ð M $ñ Mr!   c                óú   € V\         ,          pVP                  P                  R R R7       \        V 4      pV P                  P                  4       VR&   VP                  \        P                  ! V^R R7      4       R# )T©ÚparentsÚexist_okr6   )ÚindentÚ	sort_keysN)	r7   ÚparentÚmkdirr   r6   Ú	isoformatÚ
write_textr9   Údumps)Úselfr/   r@   rA   s   &&  r"   ÚsaveÚExtensionManifest.save^   sc   € ØÔ0Õ0ˆØ×Ñ×"Ñ"¨4¸$Ð"Ô?Ü�d‹|ˆØ#×0Ñ0×:Ñ:Ó<ˆˆ^ÑØ× Ñ ¤§¢¨D¸ÀdÔ!KÖLr!   c                ó°   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[R,          ;R&   S[;R&   S[ R,          ;R	&   S[ R,          ;R
&   # )r.   ÚownerÚrepoÚrepo_idÚ
short_nameÚexecutable_pathÚtyper6   NÚdescriptionÚ
commit_sha)ÚbinaryÚpython)Ústrr   r   )r1   r2   s   "€r"   r3   r4   G   s‚   ø‡ ‚ á�Jñ ñ �Iñ ñ �Lñ	 ñ
 �Oñ ñ Ññ ñ Ð$Õ
%Ñ%ñ ñ Ññ ñ �t•Ñ"ñ ñ �d•
Ñ!ò r!   r   )r   r   r   r   r\   r]   ÚclassmethodrD   rS   Ú__annotate_func__r    Ú__classdictcell__)r2   s   @r"   r,   r,   G   s6   ø‡ € ð #€KØ!€Jà÷)ó ð)÷Mð M÷/ ƒ r!   r,   Úinstall)ÚexamplesFc                ó²   € V ^8„  d   QhR\         P                  R\        \        \	        RR7      3,          R\        \
        \        RRR7      3,          RR	/# )
r.   ÚctxrX   z:GitHub extension repository in `[OWNER/]hf-<name>` format.r   Úforcez--forcezOverwrite if already installed.r0   N)ÚclickÚContextr
   r`   r   Úboolr   )r1   s   "r"   r3   r3   n   s]   € ÷ %.ñ %.Ü	�‰ð%.äÜÜÐRÔSð	Uõð%.ô ”Tœ6 )Ð2SÔTÐTÕUð%.ð 
ñ%.r!   c                ó¦  € \        V4      w  r4pV P                  4       p\        \        VP                  R/ 4      P                  4       4      pWW9   d   \        RV RV R24      h\        V4      pVP                  4       '       d   V'       g   \        RV R24      h\        W4R7      '       g   \        RV R	V R
24      hVP                  4       '       d   \        P                  ! V4       \        W4VR7      p	V	P                  P                  4       p
\        P                   ! V
 R2V R	V 2RV 2R7       \        P"                  ! RV 24       R# )z¨Install an extension from a public GitHub repository.

Security warning: this installs a third-party executable or Python package.
Install only from sources you trust.
ÚcommandszCannot install extension 'z,' because it conflicts with an existing `hf z
` command.úExtension 'z1' is already installed. Use --force to overwrite.©rV   Ú	repo_namezGitHub repository 'Ú/z)' not found. It must exist and be public.©rV   rp   rY   z extension installedúhf )ÚsourceÚcommandzRun it with: hf N)Ú_normalize_repo_idÚ	find_rootÚsetÚgetattrru   Úkeysr   Ú_get_extension_dirÚexistsÚ_github_repo_existsÚshutilÚrmtreeÚ_install_extensionr[   Ú
capitalizer   ÚresultÚhint)rg   rX   rh   rV   rp   rY   Úroot_ctxÚreserved_commandsÚextension_dirÚmanifestÚext_types   &&&        r"   Úextension_installr‰   f   sA  € ô* $6°gÓ#>Ñ €E�jØ�}‰}‹€HÜœG H×$4Ñ$4°jÀ"ÓE×JÑJÓLÓMÐØÔ&ÜØ(¨¨Ð4`ÐakÐ`lÐlvÐwó
ð 	
ô ' zÓ2€MØ×Ñ×Ò§eÜ˜ Z LÐ0aÐbÓcÐcä U×@Ó@ÜÐ,¨U¨G°1°Y°KÐ?hÐiÓjÐjØ×Ñ×Òä�Š�mÔ$Ü!¨ÈzÔZ€HØ�}‰}×'Ñ'Ó)€HÜ‡J‚JØˆ*Ð(Ð)Ø�˜˜)˜Ð%Ø�j�\Ð"õô
 ‡H‚HÐ 
˜|Ð,Ö-r!   Úupdatec                ód   € V ^8„  d   QhR\         \        R,          \        RR7      3,          RR/# )r.   ÚnameNz¨Extension to update (with or without `hf-` prefix, optionally as `OWNER/hf-<name>`). If omitted, all installed extensions are checked and the outdated ones are updated.r   r0   ©r
   r`   r   )r1   s   "r"   r3   r3   ž   s=   € ÷ 6ñ 6Ü
Üˆd�
Üðfô	
ð	õð6ð 
ñ6r!   c                óÞ  € V e¾   \        V 4      p\        V4      pT;\        P                  8X  d1    \        P
                  ! RVP                  VP                  R7       R# ;\        P                  8X  d4    \        P
                  ! RVP                   R2VP                  R7       R# \        P                  8X  d    R# R# \        4       pV'       g/   \        P                  ! R4       \        P                  ! R4       R# . p. pV F½  p\        P                  ! R	VP                   R
VP                   R24        \        V4      pT;\        P                  8X  d    TP!                  TP                  4       Kt  ;\        P                  8X  d    TP!                  TP                  4       K§  \        P                  8X  g   K½  K¿  	  \        P
                  ! RV'       d   RP#                  V4      MRV'       d   RP#                  V4      MRR7       R#   \         d    h \         dA   p\        P                  ! RTP                   R
TP                   RT R24        Rp?EK_  Rp?ii ; i)z6Update installed extension(s) to their latest version.NzExtension updated)rŒ   rt   rn   z' is already up to date©rŒ   zNo extensions installed.z1Install one with: hf extensions install <repo_id>z
Checking 'ú' (z)...zCould not update 'ú): ú. Skipping.zExtensions update completez, )r%   r&   )Ú$_load_installed_extension_for_updateÚ_update_installed_extensionr$   r(   r   r‚   rY   rX   r)   r*   Ú_list_installed_extensionsÚwarningrƒ   Úlogr   Ú	ExceptionÚappendÚjoin)rŒ   r‡   Úupdate_statusÚ	manifestsr%   r&   Úerrors   &      r"   Úextension_updaterž   –   så  € ð( ÒÜ7¸Ó=ˆÜ3°HÓ=ˆØØ/Ô'×/Ö/Ý—
’
Ð.°X×5HÑ5HÐQY×QaÑQaÕbñ
 	ð	 3Ô'×2Ö2Ý—
’
˜[¨×)<Ñ)<Ð(=Ð=TÐUÐ\d×\oÑ\oÕpñ 	ô (×/Ö/ØÛä*Ó,€IßÜ�ŠÐ.Ô/Ü�ŠÐDÔEÙà€GØ€JÛˆÜ�Š�*˜X×0Ñ0Ð1°°X×5EÑ5EÐ4FÀdÐKÔLð	Ü7¸ÓAˆMð Ø/Ô'×/Ö/Ù—‘˜x×2Ñ2Ö3Ø2Ô'×2Ö2Ù×!Ñ! (×"5Ñ"5Ö6Ü'×/×/Ð/Ùñ# ô$ ‡J‚JØ$ß&-�—	‘	˜'Ô"°4ß,6�4—9‘9˜ZÔ(¸D÷øô %ô 	àÜô 	ä�KŠKÐ,¨X×-@Ñ-@Ð,AÀÀX×EUÑEUÐDVÐVYÐZ_ÐY`Ð`kÐlÔmÞûð	ús   Ä=HÈI,È+I,È,4I'É'I,ÚexecÚallow_extra_argsTÚallow_interspersed_argsÚignore_unknown_optionsz#hf extensions exec claude -- --helpz/hf extensions exec claude --model zai-org/GLM-5)Úcontext_settingsre   c          	      óv   € V ^8„  d   QhR\         P                  R\        \        \	        RR7      3,          RR/# )r.   rg   rŒ   z.Extension name (with or without `hf-` prefix).r   r0   N)ri   rj   r
   r`   r   )r1   s   "r"   r3   r3   ß   sA   € ÷ 0ñ 0Ü	�‰ð0ä
ÜÜÐFÔGð	Iõð0ð 
ñ0r!   c                óø   € \        V4      p\        V4      pVP                  4       '       g   \        RV R24      h\	        V\        V P                  4      R7      p\        P                  P                  VR7      h)zExecute an installed extension.rn   ú' is not installed.©rZ   Úargs)Úcode)
Ú_normalize_extension_nameÚ"_resolve_installed_executable_pathr8   r   Ú_execute_extension_binaryÚlistr¨   ri   Ú
exceptionsÚExit)rg   rŒ   rY   rZ   Ú	exit_codes   &&   r"   Úextension_execr±   ×   so   € ô  +¨4Ó0€JÜ8¸ÓD€Oà×"Ñ"×$Ò$Ü˜ Z LÐ0CÐDÓEÐEä)¸/ÔPTÐUX×U]ÑU]ÓP^Ô_€IÜ
×
Ñ
×
Ñ
 YÐ
Ó
/Ð/r!   z	list | lszhf extensions listc                ó   € V ^8„  d   QhRR/# ©r.   r0   Nr   )r1   s   "r"   r3   r3   ò   s   € ÷ &ñ &˜ñ &r!   c                 ó2  € \        4        U u. uFe  p RRV P                   2R\        V P                  4      R\        V P                  4      RV P
                  P                  R4      RV P                  /NKg  	  pp \        P                  ! VRR7       R	# u up i )
z"List installed extension commands.ru   rs   rt   r[   Ú	installedz%Y-%m-%dr\   ©Úid_keyN)
r•   rY   r`   rX   r[   r6   Ústrftimer\   r   Útable)r‡   Úrowss     r"   Úextension_listr»   ñ   s”   € ô 3Ô4ó	ñ 5ˆHð ˜˜X×0Ñ0Ð1Ð2Ø”c˜(×*Ñ*Ó+Ø”C˜Ÿ™Ó&Ø˜×.Ñ.×7Ñ7¸
ÓCØ˜8×/Ñ/ó	
ñ 5ð 	ð 	ô ‡I‚Iˆd˜9×%ùò	s   �A+BÚsearchzhf extensions searchc                ó   € V ^8„  d   QhRR/# r³   r   )r1   s   "r"   r3   r3     s   € ÷ #ñ #˜$ñ #r!   c                 óê  € \        RRRR\         2RRRRR	^d/R
7      p V P                  4       p\        4        Uu0 uF  q"P                  kK  	  pp. pVP                  R. 4       Fn  pVR,          P                  R4      pTP                  RTRVR,          RVP                  R^ 4      RVP                  R4      ;'       g    RRWc9   d   RMR/4       Kp  	  \        P                  ! VRR7       R# u upi )zISearch extensions available on GitHub (tagged with 'hf-extension' topic).ÚGETz*https://api.github.com/search/repositoriesÚqztopic:ÚsortÚstarsÚorderÚdescÚper_page)Úparamsr<   rŒ   úhf-rW   Ú	full_nameÚstargazers_countr\   Ú rµ   Úyesr¶   N)
Ú_github_requestÚ_EXTENSIONS_GITHUB_TOPICr9   r•   rY   ÚgetÚremoveprefixr™   r   r¹   )ÚresponserA   Úmrµ   rº   rW   rY   s          r"   Úextension_searchrÒ     só   € ô ØØ4Ø�vÔ6Ð7Ð8¸&À'È7ÐTZÐ\fÐhkÐlô€Hð
 �=‰=‹?€Dä'AÔ'CÓDÑ'C !—”Ñ'C€IÐDà€DØ—‘˜ "Ö%ˆØ˜&•\×.Ñ.¨uÓ5ˆ
Ø�‰à˜
Ø˜˜[Õ)Ø˜Ÿ™Ð"4°aÓ8Ø˜tŸx™x¨Ó6×<Ð<¸"Ø jÔ&=™UÀ2ðö	
ñ &ô ‡I‚Iˆd˜6×"ùò Es   ºC0zremove | rmzhf extensions remove claudec                óV   € V ^8„  d   QhR\         \        \        RR7      3,          RR/# )r.   rŒ   z8Extension name to remove (with or without `hf-` prefix).r   r0   Nr�   )r1   s   "r"   r3   r3     s5   € ÷ 5ñ 5Ü
ÜÜÐPÔQð	Sõð5ð
 
ñ5r!   c                óØ   € \        V 4      p\        V4      pVP                  4       '       g   \        RV R24      h\        P
                  ! V4       \        P                  ! RVR7       R# )zRemove an installed extension.rn   r¦   zExtension removedr�   N)rª   r{   Úis_dirr   r~   r   r   r‚   )rŒ   rY   r†   s   &  r"   Úextension_removerÖ     sW   € ô +¨4Ó0€JÜ& zÓ2€Mà×Ñ×!Ò!Ü˜ Z LÐ0CÐDÓEÐEä
‡M‚M�-Ô Ü‡J‚JÐ"¨×4r!   c                ó:   € V ^8„  d   QhR\         \        ,          /# ©r.   r0   )r­   r,   )r1   s   "r"   r3   r3   2  s   € ÷ ñ ¤DÔ):Õ$;ñ r!   c                 óÚ  € \         P                  4       p V P                  4       '       g   . # . p\        V P	                  4       4       Fa  pVP                  4       '       d"   VP
                  P                  R4      '       g   K<   VP                  \        P                  V4      4       Kc  	  V#   \         d1   p\        P                  RTP
                   RT 24        Rp?K�  Rp?ii ; i)zPReturn manifests for all validly-installed extensions, sorted by directory name.rÇ   z'Failed to load manifest for extension 'ú': N)ÚEXTENSIONS_ROOTÚ
expanduserrÕ   ÚsortedÚiterdirrŒ   Ú
startswithr™   r,   rD   r˜   ÚloggerÚdebug)Úroot_dirrœ   r†   Úes       r"   r•   r•   2  sÇ   € ä×)Ñ)Ó+€HØ�?‰?×ÒØˆ	Ø€IÜ × 0Ñ 0Ó 2Ö3ˆØ×#Ñ#×%Ò%¨]×-?Ñ-?×-JÑ-JÈ5×-QÒ-QÙð	Ø×ÑÔ.×3Ñ3°MÓBÖCñ	 4ð Ðøô ô 	Ü�L‰LÐBÀ=×CUÑCUÐBVÐVYÐZ[ÐY\Ð]Ô^Ýûð	ús   Â$B/Â/C*Â:%C%Ã%C*c                ó\   € V ^8„  d   QhR\         \        \        \        3,          ,          /# rØ   )r­   Útupler`   )r1   s   "r"   r3   r3   C  s    € ÷ ñ ¬D´´s¼C°xµÕ,Añ r!   c                  óÈ   € . p \        4        FQ  pR VP                   R2pVP                  e   VP                   RV 2MTpV P                  VP                  V34       KS  	  V # )z[extension Ú]Ú )r•   rX   r\   r™   rY   )Úentriesr‡   ÚtagÚ	help_texts       r"   Ú"list_installed_extensions_for_helprì   C  sl   € Ø€GÜ.Ö0ˆØ˜H×,Ñ,Ð-¨QÐ/ˆØ7?×7KÑ7KÒ7W�x×+Ñ+Ð,¨A¨c¨UÑ3Ð]`ˆ	Ø�‰˜×+Ñ+¨YÐ7Ö8ñ 1ð €Nr!   c                óv   € V ^8„  d   QhR\         \        ,          R\        \        ,          R\        R,          /# )r.   r¨   Úknown_commandsr0   N)r­   r`   rx   Úint)r1   s   "r"   r3   r3   L  s5   € ÷ [ñ [¬t´C­yð [Ì#ÌcÍ(ð [ÔWZÐ]aÕWañ [r!   c                 ó  € V '       g   R # V ^ ,          pVP                  R4      '       d   R # V UUu0 uF)  q3P                  R4       F  qDP                  4       kK  	  K+  	  pppW%9   d   R #  \        VP	                  R4      VR7      p \        T4      pTe   TP                  4       '       g   R # \        T\        T R,          4      R7      # u uppi   \
         d     R # i ; i  \         d    \        T4      p Lii ; i)NÚ-Ú|rÇ   ©Úoriginal_input:é   NNr§   )rß   ÚsplitÚstripÚ_validate_extension_short_namerÏ   r   r«   r˜   Ú _auto_install_official_extensionr8   r¬   r­   )r¨   rî   Úcommand_nameÚcmdÚaÚ	all_knownrY   rZ   s   &&      r"   Ú$dispatch_unknown_top_level_extensionrþ   L  sè   € ßÙà˜•7€LØ×Ñ˜s×#Ò#ÙÙ&4ÔM¡n˜s¿i¹iÈ¾n¸—‘–¹n‘¡n€IÑMØÔ ÙðÜ3°L×4MÑ4MÈeÓ4TÐeqÔrˆ
ð
GÜ<¸ZÓHˆð Ò o×&=Ñ&=×&?Ò&?Ùä$°_Ì4ÐPTÐUWÕPXË>ÔZÐZùó% Nøô ô Úðûô ô GÜ:¸:ÓFŠðGús)   ²/CÁ-C Â
C& ÃC#Ã"C#Ã&C?Ã>C?c                ó>   € V ^8„  d   QhR\         R\        R,          /# )r.   rY   r0   N©r`   r	   )r1   s   "r"   r3   r3   h  s   € ÷ 7ñ 7´ð 7¼À½ñ 7r!   c           	     ón  € \         RV  2r!\        V 4      P                  4       '       d   R#  \        WR7      '       g   R#   \
        P                  ! RT  RT RT R24       \        YT R7      p\        TP                  4      P                  4       #   \         d     R# i ; i  \         d     R# i ; i)	zKTry to auto-install huggingface/hf-<name>. Returns executable path or None.rÇ   Nro   Ú'z)' is an official Hugging Face extension (rq   z). Install it?rr   )ÚDEFAULT_EXTENSION_OWNERr{   r|   r}   r˜   r   Úconfirmr   r€   r	   rZ   rÜ   )rY   rV   rp   r‡   s   &   r"   rù   rù   h  sº   € ä.°#°j°\Ð0Bˆ9Ü˜*Ó%×,Ñ,×.Ò.ÙðÜ"¨×DÓDÙð Eð
Ü�Š�a˜
�|Ð#LÈUÈGÐSTÐU^ÐT_Ð_mÐnÔoô "¨ÈzÔZ€HÜ�×(Ñ(Ó)×4Ñ4Ó6Ð6øô ô Úðûô
 ô Úðús#   ­B Á B% ÂB"Â!B"Â%B4Â3B4c                ó0   € V ^8„  d   QhR\         R\        /# ©r.   rŒ   r0   ©r`   r,   )r1   s   "r"   r3   r3   ~  s   € ÷ 	1ñ 	1¬sð 	1Ô7Hñ 	1r!   c                 ó  € \        V 4      p\        V4      pVP                  4       '       gI   V P                  4       P	                  R 4      w  p pV'       d   V RV 2MRV 2p\        RV RV 24      h\        P                  V4      # )rq   z/hf-rÇ   rn   zA' is not installed. Install it first with: hf extensions install )rª   r{   rÕ   r÷   Ú
rpartitionr   r,   rD   )rŒ   rY   r†   rV   Ú_Úinstall_targets   &     r"   r“   r“   ~  s�   € Ü*¨4Ó0€JÜ& zÓ2€MØ×Ñ×!Ò!Ø—j‘j“l×-Ñ-¨cÓ2‰ˆˆq�!ß7<˜E˜7 $ z lÑ3ÀCÈ
À|ÐBTˆÜØ˜*˜Ð%fÐguÐfvÐwó
ð 	
ô ×!Ñ! -Ó0Ð0r!   c                ó0   € V ^8„  d   QhR\         R\        /# )r.   r‡   r0   )r,   r$   )r1   s   "r"   r3   r3   Š  s   € ÷ *ñ *Ô*;ð *Ô@Vñ *r!   c                 óˆ  € V P                   V P                  V P                  r2p \        WR 7      pY@P                  8X  d   \        P                  # \        YY4R7       \        P                  #   \         d    h \
         d>   p\        P                  ! RT RT RT RT R2	4       \        P                  u Rp?# Rp?ii ; i)ro   zCould not check updates for 'r�   rq   r‘   r’   N)rV   rp   rY   r]   )rV   rW   rY   Ú_fetch_latest_commit_shar   r˜   r   r–   r$   r*   r]   r)   r€   r(   )r‡   rV   rp   rY   Ú
latest_shar�   s   &     r"   r”   r”   Š  s¯   € Ø#+§>¡>°8·=±=À(×BUÑBU�j€Eð.Ü-°EÔOˆ
ð ×(Ñ(Ô(Ü%×0Ñ0Ð0ä˜UÀJÕfÜ!×)Ñ)Ð)øô !ô àÜô .Ü�ŠÐ3°J°<¸sÀ5À'ÈÈ9È+ÐUXÐY^ÐX_Ð_jÐkÔlÜ%×-Ñ-Õ-ûð.ús#   ¥A. Á.CÂCÂ2B<Â6CÂ<Cr]   c          
      ób   € V ^8„  d   QhR\         R\         R\         R\         R,          R\        /# )r.   rV   rp   rY   r]   Nr0   r  )r1   s   "r"   r3   r3   �  sG   € ÷ J=ñ J=äðJ=ô ðJ=ô ð	J=ô
 �d•
ðJ=ô ñJ=r!   c                ód  € \        V4      pVP                  4       '       * pRp  \        WVR7      pVe6   \        P
                  R8X  d   \        RV  RV R24      h\        WBVR7      pM\        W@WR	7      pVf    \        WR
7      p\        T TV  RV 2T\        V4      Ve   RMR\        P                  ! \         P"                  4      \%        WR
7      VR7	      p
V
P'                  V4       RpT
V'       g#   V'       d   \(        P*                  ! VRR7       # # #   \         d    Rp Lùi ; i  \         d*   p	\        P                  ! RT  RT RT	 24        Rp	?	LÕRp	?	ii ; i  \         d    h \,        P.                   d    p\1        R\2         RT  RT R24      ThRp?i\,        P4                   d&   p\1        RT  RT RTP6                   R24      ThRp?i\         d   p\1        RT  RT RT 24      ThRp?ii ; i  T'       g#   T'       d   \(        P*                  ! TRR7       i i i ; i)a  Fetch and install an extension (binary or Python package), then persist its manifest.

Installs in place: an existing install is overwritten without being removed first, so a failed
update keeps the previous version working. A failed fresh install is cleaned up entirely.
Frr   NÚntr  rq   zu' is a shell-script extension, which is not supported on Windows. Only Python extensions can be installed on Windows.)r†   rY   r^   )r†   rV   rp   rY   ro   z Could not record a version for 'z', installing anyway: r^   r_   )	rV   rW   rX   rY   rZ   r[   r6   r\   r]   T)Úignore_errorszPip install timed out after zs for 'z$'. See pip output above for details.z$Failed to install pip package from 'z' (exit code z$). See pip output above for details.z"Failed to install extension from 'rÚ   )r{   r|   Ú_fetch_remote_binaryr˜   ÚosrŒ   r   Ú_install_binary_extensionÚ_install_python_extensionr  r   r–   r,   r`   r   Únowr   ÚutcÚ_try_fetch_remote_descriptionrS   r~   r   Ú
subprocessÚTimeoutExpiredr   Ú_EXTENSIONS_PIP_INSTALL_TIMEOUTÚCalledProcessErrorÚ
returncode)rV   rp   rY   r]   r†   Úfresh_installrµ   r^   rZ   r�   r‡   rã   s   $$$$        r"   r€   r€   �  st  € ô ' zÓ2€MØ%×,Ñ,Ó.Ô.€MØ€Ið;=ð	Ü)°ÐWaÔbˆFð ÒÜ�w‰w˜$ŒÜØ˜�w˜a 	˜{ð +Jð Jóð ô 8Ø+È6ô‰Oô 8Ø+ÀIôˆOð ÒðqÜ5¸EÔW�
ô %ØØØ�g˜Q˜y˜kÐ*Ø!Ü Ó0Ø#Ò/‘°XÜ!Ÿš¤h§l¡lÓ3Ü5¸EÔWØ!ô

ˆð 	�‰�mÔ$Øˆ	Ø÷  Ÿ]Ü�MŠM˜-°tÖ<ð +ˆyøôo ô 	ØŠFð	ûô. ô qÜ—’Ð>¸u¸gÀQÀyÀkÐQgÐhmÐgnÐo×pÑpûðqûô" ô ØÜ×$Ñ$ô Ü&Ø*Ô+JÐ*KÈ7ÐSXÐRYÐYZÐ[dÐZeð f0ð 0ó
ð ð	ûô ×(Ñ(ô Ü&Ø2°5°'¸¸9¸+À]ÐST×S_ÑS_ÐR`ð a0ð 0ó
ð ð	ûô ô nÜ&Ð)KÈEÈ7ÐRSÐT]ÐS^Ð^aÐbcÐadÐ'eÓfÐlmÐmûðnû÷ Ÿ]Ü�MŠM˜-°tÖ<ð +ˆyúsœ   ¥D ²A
E& Á=D/ Â	A(E& ÄD,Ä)E& Ä+D,Ä,E& Ä/E#Ä:EÅE& ÅE#Å#E& Å&H ÆH ÆF Æ H Æ7H Æ8 GÇH Ç%H Ç&G;Ç;H È H ÈH/ÈH/c                ó<   € V ^8„  d   QhR\         R\         R\         /# ©r.   rV   rp   r0   ©r`   )r1   s   "r"   r3   r3   ê  s!   € ÷ !ñ !¤sð !´sð !¼sñ !r!   c                ód   € \        RRV  RV R2RR/R7      pVP                  P                  4       # )z÷Fetch the latest commit SHA on the default branch, used to detect available updates.

The only REST API call left in the install and update paths. Raises on failure: callers decide
whether a missing SHA is fatal, and report the reason themselves.
r¿   zhttps://api.github.com/repos/rq   z/commits/HEADÚAcceptzapplication/vnd.github.sha)Úheaders)rÌ   Útextr÷   )rV   rp   rÐ   s   $$ r"   r  r  ê  sA   € ô ØØ
'¨ w¨a°	¨{¸-ÐHØÐ7Ð8ô€Hð
 �=‰=×ÑÓ Ð r!   c                óH   € V ^8„  d   QhR\         R\         R\         R\        /# )r.   rV   rp   rY   r0   )r`   Úbytes)r1   s   "r"   r3   r3   ø  s(   € ÷ ñ ¤3ð ´3ð ÄCð ÌEñ r!   c                 óH   € R V  RV RV 2p\        RV4      pVP                  # )ú"https://raw.githubusercontent.com/rq   z	/HEAD/hf-r¿   )rÌ   Úcontent)rV   rp   rY   Úraw_urlrÐ   s   $$$  r"   r  r  ø  s2   € Ø2°5°'¸¸9¸+ÀYÈzÈlÐ[€GÜ˜u gÓ.€HØ×ÑÐr!   c                óH   € V ^8„  d   QhR\         R\        R\        R\         /# )r.   r†   rY   r^   r0   )r	   r`   r)  )r1   s   "r"   r3   r3   þ  s)   € ÷ ñ ´ð Ä#ð Ìuð ÔY]ñ r!   c                 óÊ   € V P                  R R R7       V \        V4      ,          pVP                  V4       \        P                  R8w  d   \        P
                  ! VR4       V# )TrH   r  ií  )rN   Ú_get_executable_nameÚwrite_bytesr  rŒ   Úchmod)r†   rY   r^   rZ   s   $$$ r"   r  r  þ  sR   € Ø×Ñ ¨tÐÔ4Ø#Ô&:¸:Ó&FÕF€OØ×Ñ Ô'ä	‡w�w�$„Ü
�Š� %Ô(àÐr!   c          
      óT   € V ^8„  d   QhR\         R\        R\        R\        R\         /# )r.   r†   rV   rp   rY   r0   ©r	   r`   )r1   s   "r"   r3   r3   	  s1   € ÷ )%ñ )%´ð )%¼Sð )%ÌSð )%Ô^að )%Ôfjñ )%r!   c           	      ó¤  € R V RV R2pV R,          p\        T\        P                  R8X  d   RMR4      p\        P                  ! R4      p\
        P                  ! 4       pVP                  4       '       g˜   VP                  RV 24       V P                  R	R	R
7       V'       d&   \        P                  ! VR\        V4      .R	R7       M/\        P                  ! R	R7      P                  \        V4      4       VP!                  RV 24       VP                  RV 24       V'       d   VRRRR\        V4      V.p	M\        V4      RRRRRRV.p	\        P                  ! V	R	\"        R7       VP!                  RV 24       \%        V4      p
\        WZ4      pVP                  4       '       g   \'        RV RV RV
 R24      hVP)                  4       # )úhttps://github.com/rq   z/archive/HEAD.zipÚvenvr  z
python.exer_   Úuvz Creating virtual environment in TrH   )Úcheck)Úwith_pipzVirtual environment created in zInstalling package from Úpiprd   z--reinstallz--pythonz-mz--disable-pip-version-checkz
--no-inputz--force-reinstall)r9  ÚtimeoutzPackage installed from zInstalled package from 'z/' does not expose the required console script 'ú'.)Ú_get_venv_bin_pathr  rŒ   r~   Úwhichr   Ústatusr8   rŠ   rN   r  Úrunr`   r7  Ú
EnvBuilderÚcreateÚdoner  r0  r   Úresolve)r†   rV   rp   rY   Ú
source_urlÚvenv_dirÚvenv_pythonÚuv_pathr@  Úinstall_cmdÚexecutable_nameÚvenv_executables   $$$$        r"   r  r  	  s³  € Ø& u g¨Q¨y¨kÐ9JÐK€JØ˜vÕ%€HÜ$ X¼r¿w¹wÈ$¼©|ÐT\Ó]€KÜ�lŠl˜4Ó €Gä�ZŠZ‹\€FØ×Ñ× Ò Ø�‰Ð8¸¸
ÐCÔDØ×Ñ D°4ÐÔ8ßÜ�NŠN˜G V¬S°«]Ð;À4ÖHä�OŠO TÔ*×1Ñ1´#°h³-Ô@Ø�‰Ð5°h°ZÐ@ÔAà
‡M�MÐ,¨Z¨LÐ9Ô:ßà  y°-ÀÌSÐQ\ÓM]Ð_iÐj‰ô �ÓØØØØ)ØØØð	
ˆô ‡N‚N�; dÔ4SÕTØ
‡K�KÐ)¨*¨Ð6Ô7ä*¨:Ó6€OÜ(¨ÓC€OØ×"Ñ"×$Ò$ÜØ& u g¨Q¨y¨kð :ØÐ  ð$ó
ð 	
ð ×"Ñ"Ó$Ð$r!   z*<meta name="description" content="([^"]*)"c                óJ   € V ^8„  d   QhR\         R\         R\         R,          /# )r.   rV   rp   r0   Nr#  )r1   s   "r"   r3   r3   8  s%   € ÷ +ñ +¬ð +¼ð +ÄÀtÅñ +r!   c                ó  € RV  RV R2p \        RV R\         24      pVP                  4       P                  R4      p\	        V\
        4      '       d   V#   \        RV R24      pVP                  P                  4        F_  pVP                  4       pVP                  R4      '       g   K,  VP                  R4      w   rgVP                  4       P                  R4      u # 	   \        RR	V  RV 24      p\        P                  VP                  4      ;pe:   \        VP                  ^4      4      p	V	P!                  RV  RV 24      ;qI8w  d   V# R
#   \         d     ELi ; i  \         d     L�i ; i  \         d     R
# i ; i)z�Try to fetch project description either from:
- manifest.json
- pyproject.toml
- the repository's GitHub "About" field

Only best effort, no error handling.
r+  rq   z/HEADr¿   r\   z/pyproject.tomlÚ=z"'r6  Nz - )rÌ   r7   r9   rÎ   Ú
isinstancer`   r˜   r'  Ú
splitlinesr÷   rß   Ú	partitionÚ_GITHUB_ABOUT_REr¼   r   ÚgroupÚremovesuffix)
rV   rp   ÚbaserÐ   r\   Úliner
  rC   Úmatchr,  s
   &&        r"   r  r  8  sŽ  € ð 0°¨w°a¸	°{À%ÐH€DðÜ" 5¨T¨F°!Ô4EÐ3FÐ*GÓHˆØ—m‘m“o×)Ñ)¨-Ó8ˆÜ�k¤3×'Ò'ØÐð (ð
Ü" 5¨T¨F°/Ð*BÓCˆð —M‘M×,Ñ,Ö.ˆDØ—:‘:“<ˆDØ�‰˜}×-Ô-Ø"Ÿn™n¨SÓ1‘��1Ø—{‘{“}×*Ñ*¨5Ó1Ò1ñ	 /ðÜ" 5Ð,?À¸wÀaÈ	À{Ð*SÓTˆÜ%×,Ñ,¨X¯]©]Ó;Ð;ˆEÒHä˜uŸ{™{¨1›~Ó.ˆGØ&×3Ñ3°c¸%¸ÀÀ)ÀÐ4MÓNÐN�ÔZØ"Ð"ñ øô7 ô Úðûô ô Ùðûô ô ØáðúsD   ‹AE ÁAE( Â.4E( Ã#E( Ã&A-E9 ÅE%Å$E%Å(E6Å5E6Å9FÆFc                ó0   € V ^8„  d   QhR\         R\        /# ©r.   rY   r0   r   )r1   s   "r"   r3   r3   f  s   € ÷ =ñ =¤3ð =¬4ñ =r!   c                 óV   € \        W R 7       \        P                  4       RV  2,          # )ró   rÇ   )rø   rÛ   rÜ   )rY   s   &r"   r{   r{   f  s'   € ô # :ÕIÜ×%Ñ%Ó'¨C°
¨|Ð*<Õ<Ð<r!   rÆ   r&  c          
      ó„   € V ^8„  d   QhR\         R\         R\        R,          R\        R,          R\        P                  /# )r.   ÚmethodÚurlrÆ   Nr&  r0   )r`   ÚdictÚhttpxÚResponse)r1   s   "r"   r3   r3   m  s@   € ÷ ñ ÜðÜðÜ&*¨T¥kðÜCGÈ$Å;ðä
‡^�^ñr!   c          	     ó,  € \        4       P                  V VVVR\        R7      pVP                  R9   dP   VP                  P                  R4      R8X  g   RVP                  9   d   \        \        VP                  4      4      hVP                  4        V# )a<  Perform a GitHub request.

Shared by every GitHub/Raw fetch in this module so the timeout, redirect and rate-limit policy are
shared.

Unauthenticated `api.github.com` calls are capped per IP address, and that quota is shared with
everything else calling GitHub from the same network (NAT, VPN, CI egress). Remote refs are therefore
always addressed as `HEAD`, which GitHub resolves to the repo's default branch on
`raw.githubusercontent.com`, on the archive endpoint and on the REST API alike: no
`GET /repos/{owner}/{repo}` lookup is needed to discover the branch name.
T)rÆ   r&  Úfollow_redirectsr<  zx-ratelimit-remainingÚ0úretry-after)i“  i­  )	r   ÚrequestÚ_EXTENSIONS_DOWNLOAD_TIMEOUTÚstatus_coder&  rÎ   r   Ú_rate_limit_messageÚraise_for_status)r]  r^  rÆ   r&  rÐ   s   &&$$ r"   rÌ   rÌ   m  s�   € ô ‹}×$Ñ$ØØØØØÜ,ð %ó €Hð ×Ñ˜zÔ)Ø×Ñ×ÑÐ4Ó5¸Ô<ÀÐQY×QaÑQaÔ@aä#Ô$7¸×8HÑ8HÓ$IÓJÐJØ×ÑÔØ€Or!   c                óD   € V ^8„  d   QhR\         P                  R\        /# )r.   r&  r0   )r`  ÚHeadersr`   )r1   s   "r"   r3   r3   Œ  s   € ÷ ñ ¤§¡ð ´3ñ r!   c                óR  € RpV P                  R4      ;pe   VRV R2,          pV# V P                  R4      ;peO    \        P                  ! \        V4      \        P
                  R7      P                  4       pVRVR R	2,          pV# V#   \        \        \        3 d     T# i ; i)
aÑ  Message for a GitHub rate-limit rejection, built from the response headers.

The cap itself is deliberately not quoted: it depends on the endpoint (60/hour on the core API,
10/minute on search), so only the wait is reported.

`retry-after` wins over `x-ratelimit-reset`: GitHub rides the primary window's reset timestamp on
every REST response, secondary rate limits included, so on a back-off it would point at an hourly
window that is not the one being enforced.
z¡GitHub API rate limit exceeded. Unauthenticated requests are capped per IP address, and that quota is shared with anything else calling GitHub from your network.re  z
 Retry in zs.zx-ratelimit-reset)Útzz It resets at z%H:%M:%S %ZÚ.)
rÎ   r   Úfromtimestamprï   r   r  Ú
astimezoneÚOverflowErrorÚOSErrorÚ
ValueError)r&  ÚmessageÚretry_afterÚresetÚreset_ats   &    r"   ri  ri  Œ  sÀ   € ð	Oð ð —{‘{ =Ó1Ð1ˆÒ>Ø�Z ˜}¨BÐ/Õ/ˆð €Nð —;‘;Ð2Ó3Ð
3ˆ%Ò	@ð	@Ü×-Ò-¬c°%«j¼X¿\¹\ÔJ×UÑUÓWˆHð ˜¨°Ð'=¸QÐ?Õ?ˆGØ€Nˆ7€Nøô	 œw¬
Ð3ô 	Øð €Nð		ús   ½=B ÂB&Â%B&c                ó<   € V ^8„  d   QhR\         R\         R\        /# r"  )r`   rk   )r1   s   "r"   r3   r3   ¦  s!   € ÷ ñ ¤#ð ´#ð ¼$ñ r!   c           	     ó  €  \        RRV  RV 24       R	#   \        P                   d\   p\        T\        P                  4      '       d"   TP
                  P                  R8X  d    Rp?R# \        RT  RT RT 24      ThRp?ii ; i)
a5  Whether a public GitHub repo exists.

Resolved against `github.com` rather than `GET /repos/{owner}/{repo}` to keep the check off the
metered REST API (see `_github_request`). Only a 404 answers `False`: any other failure is reported
as such, so callers never present an unreachable GitHub as a missing repo.
ÚHEADr6  rq   i”  NFz)Could not reach GitHub to check whether 'z
' exists: T)rÌ   r`  Ú	HTTPErrorrP  ÚHTTPStatusErrorrÐ   rh  r   )rV   rp   r�   s   $$ r"   r}   r}   ¦  sŠ   € ðtÜ˜Ð"5°e°W¸A¸i¸[Ð IÔJñ
 øô	 �?‰?ô tÜ�eœU×2Ñ2×3Ò3¸¿¹×8RÑ8RÐVYÔ8YÝÜÐBÀ5À'ÈÈ9È+ÐU_Ð`eÐ_fÐgÓhÐnsÐsûðtús   ‚ –B«;BÁ,BÂBc                ó0   € V ^8„  d   QhR\         R\         /# rZ  r#  )r1   s   "r"   r3   r3   ¶  s   € ÷ ñ ¤Sð ¬Sñ r!   c                 óL   € R V  2p\         P                  R8X  d
   VR,          pV# )rÇ   r  z.exe©r  rŒ   )rY   rŒ   s   & r"   r0  r0  ¶  s'   € Ø��Ð€DÜ	‡w�w�$„Ø��ˆØ€Kr!   c                ó0   € V ^8„  d   QhR\         R\        /# rZ  r   )r1   s   "r"   r3   r3   ½  s   € ÷ 7ñ 7´3ð 7¼4ñ 7r!   c                 óˆ   € \        V 4      p\        P                  V4      p\        VP                  4      P                  4       # ©N)r{   r,   rD   r	   rZ   rÜ   )rY   r†   r‡   s   &  r"   r«   r«   ½  s6   € Ü& zÓ2€MÜ ×%Ñ% mÓ4€HÜ�×(Ñ(Ó)×4Ñ4Ó6Ð6r!   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r.   rG  rK  r0   r4  )r1   s   "r"   r3   r3   Ã  s!   € ÷ .ñ .¤ð .¼ð .Äñ .r!   c                 ól   € \         P                  R 8X  d   V R,          V,          # V R,          V,          # )r  ÚScriptsÚbinr€  )rG  rK  s   &&r"   r>  r>  Ã  s-   € Ü	‡w�w�$„Ø˜)Õ# oÕ5Ð5Ø�eÕ˜oÕ-Ð-r!   z^[A-Za-z0-9][A-Za-z0-9._-]*$c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r.   rY   rô   r0   r#  )r1   s   "r"   r3   r3   Ì  s!   € ÷ ñ ¬sð Äsð Ìsñ r!   c                óz  a€ V P                  4       oS'       g   \        R 4      h\        ;QJ d    V3R lR	 4       F  '       g   K   RM	  RM! V3R lR	 4       4      '       d   \        RV R24      hRS9   g   RS9   d   \        RV R24      h\        P	                  S4      '       g   \        RV R24      hS# )
zExtension name cannot be empty.c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5irƒ  r   )Ú.0ÚseprŒ   s   & €r"   Ú	<genexpr>Ú1_validate_extension_short_name.<locals>.<genexpr>Ð  s   øé € Ð
.¡+˜3�$Ž;£+ùs   ƒTFzInvalid extension name 'r=  z..Ú:z9'. Allowed characters: letters, digits, '.', '_' and '-'.)rq   Ú\)r÷   r   ÚanyÚ_ALLOWED_EXTENSION_NAMEÚ	fullmatch)rY   rô   rŒ   s   &$@r"   rø   rø   Ì  s­   ø€ Ø×ÑÓ€DßÜÐ8Ó9Ð9ß
ƒsÔ
.¡+Ó
.‡s‡s‚sÔ
.¡+Ó
.×.Ò.ÜÐ1°.Ð1AÀÐDÓEÐEØˆt„|�s˜d”{ÜÐ1°.Ð1AÀÐDÓEÐEÜ"×,Ñ,¨T×2Ò2ÜØ& ~Ð&6Ð6oÐpó
ð 	
ð €Kr!   c                ó\   € V ^8„  d   QhR\         R\        \         \         \         3,          /# )r.   rX   r0   )r`   rå   )r1   s   "r"   r3   r3   Û  s%   € ÷ (ñ (¤ð (¬¬c´3¼¨mÕ(<ñ (r!   c                 ó¦  € R V 9   d   \        R4      hV P                  R4      p\        V4      ^8X  d   \        pV^ ,          pM5\        V4      ^8X  d   \	        V4      '       d   Vw  r#M\        RV  R24      hVP                  R4      '       g   \        RV R24      hVP                  R4      pV'       g   \        R4      h\        W@R7       W#V3# )	z://zEOnly GitHub repositories in `[OWNER/]hf-<name>` format are supported.rq   z%Expected `[OWNER/]REPO` format, got 'r=  rÇ   z6Extension repository name must start with 'hf-', got 'z(Invalid extension repository name 'hf-'.ró   )r   rö   Úlenr  Úallrß   rÏ   rø   )rX   ÚpartsrV   rp   rY   s   &    r"   rv   rv   Û  sÉ   € Ø�ÔÜÐ^Ó_Ð_à�M‰M˜#Ó€EÜ
ˆ5ƒz�Q„Ü'ˆØ˜!•H‰	Ü	ˆU‹�qŒœS ŸZšZØ ÑˆˆyäÐ>¸w¸iÀrÐJÓKÐKà×Ñ ×&Ò&ÜÐOÐPYÈ{ÐZ\Ð]Ó^Ð^à×'Ñ'¨Ó.€JßÜÐAÓBÐBÜ" :ÕFà˜ZÐ'Ð'r!   c                ó0   € V ^8„  d   QhR\         R\         /# r  r#  )r1   s   "r"   r3   r3   ó  s   € ÷ ^ñ ^¤Cð ^¬Cñ ^r!   c                 óˆ   € V P                  4       P                  R ^4      R,          p\        VP                  R4      V R7      # )rq   rÇ   ró   éÿÿÿÿ)r÷   Úrsplitrø   rÏ   )rŒ   rp   s   & r"   rª   rª   ó  s8   € Ø—
‘
“×#Ñ# C¨Ó+¨BÕ/€IÜ)¨)×*@Ñ*@ÀÓ*GÐX\Ô]Ð]r!   c                óR   € V ^8„  d   QhR\         R\        \        ,          R\        /# )r.   rZ   r¨   r0   )r	   r­   r`   rï   )r1   s   "r"   r3   r3   ø  s*   € ÷ Dñ D¬tð D¼4Ä½9ð DÌñ Dr!   c                 ó<  €  \         P                  ! \        V 4      .V,           4      #   \         dh   p\        P
                  R 8X  g    TP                  \        P                  8w  d   h \         P                  ! R\        T 4      .T,           4      u Rp?# Rp?ii ; i)r  ÚshN)r  Úcallr`   rs  r  rŒ   ÚerrnoÚENOEXEC)rZ   r¨   rã   s   && r"   r¬   r¬   ø  sq   € ðDÜ�Š¤ OÓ 4Ð5¸Õ<Ó=Ð=øÜô DÜ�7‰7�dŒ?˜aŸg™g¬¯©Ô6ØÜ�Š ¤c¨/Ó&:Ð;¸dÕBÓCÕCûðDús   ‚&) ©B´ABÂBÂB)zhf extensions install hf-claudez-hf extensions install hanouticelina/hf-claudez(hf extensions install alvarobartt/hf-mem)F)zhf extensions updatezhf extensions update hf-claudez'hf extensions update alvarobartt/hf-memrƒ  )Vr   r¡  r9   r  Úrer~   r  r7  Údataclassesr   r   r   r   Úenumr   Úhtmlr   Úpathlibr	   Útypingr
   r   ri   r`  Úhuggingface_hub.errorsr   r   r   Úhuggingface_hub.utilsr   r   Ú
_cli_utilsr   Ú
_frameworkr   r   Ú_outputr   r  rÛ   r7   ÚEXTENSIONS_HELPÚextensions_clirÍ   rg  r  Ú
get_loggerr   rà   r   r`   r$   r,   ru   r‰   rž   r±   r»   rÒ   rÖ   r•   rì   rþ   rù   r“   r”   r€   r  r  r  r  ÚcompilerS  r  r{   rÌ   ri  r}   r0  r«   r>  r’  rø   rv   rª   r¬   r   r!   r"   Ú<module>r²     s£  ðñ 7ã Û Û 	Û 	Û Û Û ß )ß 'Ý Ý Ý ß %ã Û ç XÑ Xß 6å %ß (Ý ð (Ð ÙÐ5Ó6€Ø#Ð ð+ð ñ
  OÔ4€Ø)Ð Ø!Ð Ø"%Ð à	×	Ò	˜HÓ	%€ô˜Hô ô˜S $ô ð ÷Mð Mó ðMð< ×ÑØòð ó ö%.óð%.ðP ×ÑØòð ó ö6óð6ðr ×ÑØ
Ø(¨$Ð0IÈ5ÐRjÐlpÐqà-Ø9ðð ó ô0óð0ð$ ×Ñ˜Ð/CÐ.DÐÓEô&ó Fð&ð ×Ñ˜Ð,BÐ+CÐÓDô#ó Eð#ð6 ×Ñ˜Ð1NÐ0OÐÓPô5ó Qð5õ(õ"õ[õ87õ,	1õ*ð&J=ð
 "÷J=õZ!õõõ)%ðX —:’:ÐKÓLÐ õ+õ\=ðØ48ðØQU÷õ>õ4õ õ7õ.ð Ÿ*š*Ð%DÓEÐ õõ(õ0^÷
Dr!   