§
    oF§jS“  ã                   óª  — d dl Z d dlZd dlmZ d dlmZ d dlZd ZdZ	dZ
ede
de	diZd	Zd
ZdZdZdZeeeehZdZdZd ad„ Ze G d„ d¦  «        ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd:d„Zd;d„Zd„ Z d„ Z!d;d„Z"d„ Z#d:d „Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d:d&„Z*d;d'„Z+d(„ Z,d)„ Z-d;d*„Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d;d1„Z5d;d2„Z6d3„ Z7d;d4„Z8d<d6„Z9d;d7„Z:d8„ Z;d9„ Z<dS )=é    N)Údefaultdict)Ú	dataclassé   é   u   â¬›u   ðŸŸ¦u   ðŸŸ¨Úmodel_output_filterÚallÚvideoÚimageÚaudioÚlast_model_per_output_filterFc                 ó®  — t           sd S t          dz  ag }|                     ¦   «         D ]b\  }}t          |¦  «                             dd¦  «        }t          |¦  «        dk    r|d d…         dz   }|                     |› d|› �¦  «         Œct          dt          d	›d
t          j        ¦   «         d›d| › dd
 	                    |¦  «        › �d¬¦  «         d S )Nr   Ú
z\né    é�   z...Ú=z[model-selector-debug #Ú04dÚ z.3fz] z: T)Úflush)
ÚMODEL_SELECTOR_DEBUGÚ_model_selector_debug_seqÚitemsÚstrÚreplaceÚlenÚappendÚprintÚtimeÚjoin)ÚeventÚvaluesÚfieldsÚkeyÚvalueÚtexts         ú/C:\Users\johnn\Wan2GP\shared\model_dropdowns.pyÚdebug_model_selector_eventr&      sî   € Ýð Øˆå Ñ"ÐØ€FØ—l’l‘n”nð 'ð '‰
ˆˆUÝ�5‰zŒz×!Ò! $¨Ñ.Ô.ˆÝˆt‰9Œ9�sŠ?ˆ?Ø˜˜˜”: Ñ%ˆDØ�Š˜�o�o˜t�o�oÑ&Ô&Ð&Ð&Ý	Ð
rÕ$=Ð
rÐ
rÐ
rÅDÄIÁKÄKÐ
rÐ
rÐ
rÐW\Ð
rÐ
rÐ`c×`hÒ`hÐioÑ`pÔ`pÐ
rÐ
rÐz~ÐÑÔÐÐÐó    c                   óæ   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   dZ	eed<   dS )ÚDropdownDepsÚtransformer_typesÚdisplayed_model_typesÚtransformer_typeÚthree_levels_hierarchyÚfamilies_infosÚserver_configÚtransformer_quantizationÚtransformer_dtype_policyÚtext_encoder_quantizationÚget_model_defÚget_model_recursive_propÚget_model_filenameÚget_local_model_filenameÚget_lora_dirÚget_lora_local_pathÚget_parent_model_typeÚget_base_model_typeÚget_model_familyÚget_model_nameÚget_transformer_dtypeNÚlist_model_defs)
Ú__name__Ú
__module__Ú__qualname__ÚlistÚ__annotations__r   ÚboolÚdictÚcallabler>   © r'   r%   r)   r)   *   s  € € € € € € àÐÐÑØÐÐÑØÐÐÑØ Ð Ð Ñ ØÐÐÑØÐÐÑØ!Ð!Ð!Ñ!Ø!Ð!Ð!Ñ!Ø"Ð"Ð"Ñ"ØÐÐÑØ&Ð&Ð&Ñ&Ø Ð Ð Ñ Ø&Ð&Ð&Ñ&ØÐÐÑØ!Ð!Ð!Ñ!Ø#Ð#Ð#Ñ#Ø!Ð!Ð!Ñ!ØÐÐÑØÐÐÑØ#Ð#Ð#Ñ#Ø $€O�XÐ$Ð$Ñ$Ð$Ð$r'   r)   c                 ó‚   — |                      | ¦  «        r)|t          | ¦  «        d …                              ¦   «         S |S ©N)Ú
startswithr   Ústrip)Úfamily_nameÚ
model_names     r%   Úcompact_namerN   C   sC   € Ø×Ò˜[Ñ)Ô)ð 5Ø�#˜kÑ*Ô*Ð+Ð+Ô,×2Ò2Ñ4Ô4Ð4ØÐr'   c                 óž   — t          | t          ¦  «        s| S t                               |d¦  «        }t	          |¦  «        dk    r|› d| › �n| S )NÚ r   r   )Ú
isinstancer   ÚMODEL_STATUS_PREFIXESÚgetr   )ÚlabelÚstatusÚprefixs      r%   Údecorate_model_dropdown_labelrW   I   sU   € Ý�e�SÑ!Ô!ð ØˆÝ"×&Ò& v¨rÑ2Ô2€FÝ"% f¡+¤+°¢/ /ˆfÐÐ�uÐÐÐ°uÐ<r'   c                 óF  — g }| D ]›}t          |t          ¦  «        rt          |¦  «        dk     r|                     |¦  «         Œ@|d         |d         }}|                     |t
          ¦  «        }|                     t          ||¦  «        |g|dd …         ¢R ¦  «         Œœ|S )Nr   r   r   )rQ   Útupler   r   rS   ÚMODEL_FILE_STATUS_MISSINGrW   )ÚchoicesÚ
status_mapÚ	decoratedÚchoicerT   r#   rU   s          r%   Ú%decorate_dropdown_choices_with_statusr_   P   s¶   € Ø€IØð ]ð ]ˆÝ˜&¥%Ñ(Ô(ð 	­C°©K¬K¸!ªO¨OØ×Ò˜VÑ$Ô$Ð$ØØ˜a”y &¨¤)ˆuˆØ—’ Õ'@ÑAÔAˆØ×ÒÕ7¸¸vÑFÔFÈÐ[ÐPVÐWXÐWYÐWYÔPZÐ[Ð[Ñ\Ô\Ð\Ð\ØÐr'   c           
      ó  — |                       |¦  «        pi }t          j                             t          j                             t          |                     dd¦  «        pd¦  «        ¦  «        ¦  «                             ¦   «         dk    S )NÚpathrP   Ú	finetunes)r3   Úosra   ÚbasenameÚdirnamer   rS   Úcasefold)ÚdepsÚ
model_typeÚ	model_defs      r%   Úis_finetune_modelrj   \   sk   € Ø×"Ò" :Ñ.Ô.Ð4°"€IÝŒ7×Ò�BœGŸOšO­C°	·²¸fÀbÑ0IÔ0IÐ0OÈRÑ,PÔ,PÑQÔQÑRÔR×[Ò[Ñ]Ô]ÐalÒlÐlr'   c                 óº  — g }|D ]Õ}t          |t          ¦  «        rt          |¦  «        dk     r|                     |¦  «         Œ@|d         |d         }}t	          | |¦  «        rSt          |t
          ¦  «        r>|                     ¦   «                              d¦  «        s|                     ¦   «         dz   }|                     ||g|dd …         ¢R ¦  «         ŒÖ|S )Nr   r   r   Ú*ú *)rQ   rY   r   r   rj   r   ÚrstripÚendswith)rg   r[   r]   r^   rT   r#   s         r%   Ú"decorate_finetune_dropdown_choicesrp   a   sã   € Ø€IØð 6ð 6ˆÝ˜&¥%Ñ(Ô(ð 	­C°©K¬K¸!ªO¨OØ×Ò˜VÑ$Ô$Ð$ØØ˜a”y &¨¤)ˆuˆÝ˜T 5Ñ)Ô)ð 	*­j¸ÅÑ.DÔ.Dð 	*ÈUÏ\Ê\É^Ì^×MdÒMdÐehÑMiÔMið 	*Ø—L’L‘N”N TÑ)ˆEØ×Ò˜% Ð4¨°°°¬Ð4Ð4Ñ5Ô5Ð5Ð5ØÐr'   c                 ó  — t          | j        ¦  «        dk    rt          | j        ¦  «        nt          | j        ¦  «        }| j        |vr|                     | j        ¦  «         t          t                               |¦  «        ¦  «        S ©Nr   )r   r*   rB   r+   r,   r   rE   Úfromkeys©rg   Údropdown_typess     r%   Úget_dropdown_model_typesrv   n   sy   € Ý58¸Ô9OÑ5PÔ5PÐSTÒ5TÐ5T•T˜$Ô0Ñ1Ô1Ð1ÕZ^Ð_cÔ_yÑZzÔZz€NØÔ NÐ2Ð2Ø×Ò˜dÔ3Ñ4Ô4Ð4Ý•—’˜nÑ-Ô-Ñ.Ô.Ð.r'   c                 óš   — t          | pt          ¦  «                             ¦   «                              ¦   «         } | t          v r| nt          S rI   )r   ÚMODEL_OUTPUT_FILTER_ALLrK   rf   ÚMODEL_OUTPUT_FILTERS)Úmodel_filters    r%   Únormalize_model_output_filterr{   u   sC   € Ý�|Ð>Õ'>Ñ?Ô?×EÒEÑGÔG×PÒPÑRÔR€LØ'Õ+?Ð?Ð?ˆ<ˆ<ÕE\Ð\r'   c                 óè   — t          |t          ¦  «        r#t          |v rt          |t                   ¦  «        S | �2t          | j                             t          t          ¦  «        ¦  «        S t          S rI   )rQ   rE   ÚMODEL_OUTPUT_FILTER_CONFIG_KEYr{   r/   rS   rx   )rg   Ústates     r%   Úget_model_output_filterr   z   sc   € Ý�%�ÑÔð TÕ#AÀUÐ#JÐ#JÝ,¨UÕ3QÔ-RÑSÔSÐSØÐÝ,¨TÔ-?×-CÒ-CÕDbÕd{Ñ-|Ô-|Ñ}Ô}Ð}Ý"Ð"r'   c                 óî   — t          |¬¦  «        }|| t          <   |�|t          k    rd S |                      t          i ¦  «        }|||<   || t          <   t          |t          ¦  «        r||t          <   d S d S )N)r~   )r   r}   rx   rS   Ú'LAST_MODEL_PER_OUTPUT_FILTER_CONFIG_KEYrQ   rE   )r/   r~   rh   Úselected_filterr   s        r%   Ústore_model_output_filterrƒ   ‚   s‘   € Ý-°EÐ:Ñ:Ô:€OØ4C€MÕ0Ñ1ØÐ˜_Õ0GÒGÐGØˆØ#0×#4Ò#4Õ5\Ð^`Ñ#aÔ#aÐ Ø4>Ð  Ñ1Ø=Y€MÕ9Ñ:Ý�%�ÑÔð VØ9UˆÕ5Ñ6Ð6Ð6ðVð Vr'   c                 ó¨   — |                       di ¦  «                              dg ¦  «        }t          |t          ¦  «        r|gS t          |pg ¦  «        S )NÚmetadataÚmain_output)rS   rQ   r   rB   )ÚrecordÚoutputss     r%   Ú_record_main_outputsr‰   Ž   sQ   € Ø�jŠj˜ RÑ(Ô(×,Ò,¨]¸BÑ?Ô?€GÝ�'�3ÑÔð ØˆyÐÝ��˜2ÑÔÐr'   c                 óL   — i }|D ]}|                       |¦  «        }|�|||<   Œ|S rI   )r3   )rg   ru   Úrecordsrh   ri   s        r%   Ú_get_model_defs_by_typerŒ   •   sA   € ð €GØ$ð ,ð ,ˆ
Ø×&Ò& zÑ2Ô2ˆ	ØÐ Ø"+ˆG�JÑøØ€Nr'   c                 ó€  ‡ ‡‡‡	— t          ‰¦  «        Š‰t          k    rd S |€t          ‰ ¦  «        n|}t          ‰ |¦  «        Š	t	          t
          ¦  «        }|D ]6}|‰	v r0|‰                      |d¬¦  «                                      |¦  «         Œ7t          ¦   «         Š| 	                    ¦   «         D ]}\  }}ˆ	fd„|D ¦   «         }‰t          k    r/t          d„ |D ¦   «         ¦  «        r‰                     |¦  «         ŒMt          ˆfd„|D ¦   «         ¦  «        r‰                     |¦  «         Œ~ˆˆ fd„|D ¦   «         S )NT©Úfor_uic                 ó:   •— g | ]}t          ‰|         ¦  «        ‘ŒS rG   )r‰   )Ú.0rh   Úrecords_by_types     €r%   ú
<listcomp>z6_get_model_types_for_output_filter.<locals>.<listcomp>¬   s(   ø€ ÐjÐjÐjÐPZÕ.¨¸zÔ/JÑKÔKÐjÐjÐjr'   c              3   ó(   K  — | ]}t           |v V — Œd S rI   )ÚMODEL_OUTPUT_FILTER_VIDEO)r‘   rˆ   s     r%   ú	<genexpr>z5_get_model_types_for_output_filter.<locals>.<genexpr>®   s(   è è € ÐVÐV¸GÕ,°Ð7ÐVÐVÐVÐVÐVÐVr'   c              3   ó&   •K  — | ]}|‰gk    V — Œd S rI   rG   )r‘   rˆ   rz   s     €r%   r–   z5_get_model_types_for_output_filter.<locals>.<genexpr>°   s*   øè è € ÐIÐI¨w�˜\˜NÒ*ÐIÐIÐIÐIÐIÐIr'   c                 óF   •— h | ]}‰                      |d ¬¦  «        ‰v ¯|’ŒS ©TrŽ   ©r;   )r‘   rh   Úallowed_familiesrg   s     €€r%   ú	<setcomp>z5_get_model_types_for_output_filter.<locals>.<setcomp>²   s9   ø€ Ð~Ð~Ð~˜:¸4×;PÒ;PÐQ[ÐdhÐ;PÑ;iÔ;iÐm}Ð;}Ð;}ˆJÐ;}Ð;}Ð;}r'   )r{   rx   rv   rŒ   r   rB   r;   r   Úsetr   r•   ÚanyÚaddr   )
rg   rz   ru   Úfamily_model_typesrh   ÚfamilyÚmodel_typesÚfamily_outputsr›   r’   s
   ``      @@r%   Ú"_get_model_types_for_output_filterr¤       s  øøøø€ Ý0°Ñ>Ô>€LØÕ.Ò.Ð.ØˆtØ7EÐ7MÕ-¨dÑ3Ô3Ð3ÐSa€NÝ-¨d°NÑCÔC€OÝ$¥TÑ*Ô*ÐØ$ð bð bˆ
Ø˜Ð(Ð(Ø˜t×4Ò4°ZÈÐ4ÑMÔMÔN×UÒUÐV`ÑaÔaÐaøÝ‘u”uÐØ1×7Ò7Ñ9Ô9ð )ð )Ñˆ�ØjÐjÐjÐjÐ^iÐjÑjÔjˆØÕ4Ò4Ð4ÝÐVÐVÀ~ÐVÑVÔVÑVÔVð -Ø ×$Ò$ VÑ,Ô,Ð,øÝÐIÐIÐIÐI¸.ÐIÑIÔIÑIÔIð 	)Ø× Ò  Ñ(Ô(Ð(øØ~Ð~Ð~Ð~Ð~¨Ð~Ñ~Ô~Ð~r'   c                 ó2   — t          | |¦  «        }|d u p||v S rI   )r¤   )rg   rh   rz   Úallowed_model_typess       r%   Ú model_type_matches_output_filterr§   µ   s(   € Ý<¸TÀ<ÑPÔPÐØ $Ð&ÐK¨*Ð8KÐ*KÐKr'   c                 óÜ   ‡— |€t          | ¦  «        n&t          t                               |¦  «        ¦  «        }t	          | |€t          | ¦  «        n||¦  «        Š‰€|S ˆfd„|D ¦   «         S )Nc                 ó   •— g | ]}|‰v ¯|‘Œ	S rG   rG   )r‘   rh   r¦   s     €r%   r“   z5get_filtered_dropdown_model_types.<locals>.<listcomp>¿   s$   ø€ Ð]Ð]Ð]˜:¸:ÐI\Ð;\Ð;\ˆJÐ;\Ð;\Ð;\r'   )rv   rB   rE   rs   r¤   r   )rg   rz   ru   r¦   s      @r%   Ú!get_filtered_dropdown_model_typesrª   º   s‘   ø€ Ø7EÐ7MÕ-¨dÑ3Ô3Ð3ÕSWÕX\×XeÒXeÐftÑXuÔXuÑSvÔSv€NÝ<¸TÐdpÐdxÕCZÐ[_ÑC`ÔC`ÐC`ð  Kð  M[ñ  \ô  \ÐØÐ"ØÐØ]Ð]Ð]Ð]¨Ð]Ñ]Ô]Ð]r'   c                 ój   — t          | |g¦  «                             |i ¦  «        }t          |¦  «        S rI   )rŒ   rS   r‰   )rg   rh   r‡   s      r%   Ú_main_outputs_for_model_typer¬   Â   s1   € Ý$ T¨J¨<Ñ8Ô8×<Ò<¸ZÈÑLÔL€FÝ Ñ'Ô'Ð'r'   c                 ó–   — t           | v rt           S | t          gk    rt          S t          | v rt          S t          | v rt          S t           S rI   )r•   ÚMODEL_OUTPUT_FILTER_AUDIOÚMODEL_OUTPUT_FILTER_IMAGE)rˆ   s    r%   Ú!_model_output_filter_from_outputsr°   Ç   sP   € Ý  GÐ+Ð+Ý(Ð(ØÕ,Ð-Ò-Ð-Ý(Ð(Ý  GÐ+Ð+Ý(Ð(Ý  GÐ+Ð+Ý(Ð(Ý$Ð$r'   c                 ó<   — t          t          | |¦  «        ¦  «        S rI   )r°   r¬   )rg   rh   s     r%   Ú&get_model_output_filter_for_model_typer²   Ó   s   € Ý,Õ-IÈ$ÐPZÑ-[Ô-[Ñ\Ô\Ð\r'   c                 óÐ   — t          | |¦  «        }|t          k    st          | ||¦  «        r|dfS t          | |¦  «        }t	          |t
          ¦  «        r
||t          <   |||k    fS )NF)r   rx   r§   r²   rQ   rE   r}   )rg   r~   rh   Úcurrent_filterr‚   s        r%   Ú,reconcile_model_output_filter_for_model_typerµ   ×   sz   € Ý,¨T°5Ñ9Ô9€NØÕ0Ò0Ð0Õ4TÐUYÐ[eÐguÑ4vÔ4vÐ0Ø˜uÐ$Ð$Ý<¸TÀ:ÑNÔN€OÝ�%�ÑÔð @Ø0?ˆÕ,Ñ-Ø˜O¨~Ò=Ð=Ð=r'   c                 óÒ  ‡ ‡‡	— |pi                       t          i ¦  «                              |d¦  «        }||v r|S t          ˆ fd„|D ¦   «         ˆ fd„¬¦  «        }t          |¦  «        dk    rdS |d         Š‰ j        ‰         d         Š	t          ˆ ˆfd„|D ¦   «         ˆ ˆ	fd„¬¦  «        }|pi                       d	i ¦  «        }|                      ‰d¦  «        }||v r|n|d         S )
NrP   c                 óz   •— h | ]7}‰                      |d ¬¦  «        ‰j        v ¯ ‰                      |d ¬¦  «        ’Œ8S r™   )r;   r.   )r‘   rh   rg   s     €r%   rœ   z/_first_model_type_for_filter.<locals>.<setcomp>æ   s�   ø€ ð  	cð  	cð  	c¸JÐ\`×\qÒ\qÐr|ð  FJÐ\qñ  ]Kô  ]Kð  OSô  Obð  ]bð  ]bˆ×	Ò	˜z°$Ð	Ñ	7Ô	7ð  ]bð  ]bð  ]br'   c                 ó*   •— ‰j         |          d         S rr   ©r.   ©r¡   rg   s    €r%   ú<lambda>z._first_model_type_for_filter.<locals>.<lambda>ç   s   ø€ ˜4Ô.¨vÔ6°qÔ9€ r'   ©r"   r   r   c                 óJ   •— g | ]}‰                      |d ¬¦  «        ‰k    ¯|‘Œ S r™   rš   )r‘   rh   rg   r¡   s     €€r%   r“   z0_first_model_type_for_filter.<locals>.<listcomp>î   s8   ø€ ÐqÐqÐq˜
¸×8MÒ8MÈjÐaeÐ8MÑ8fÔ8fÐjpÒ8pÐ8pˆÐ8pÐ8pÐ8pr'   c                 ón   •— t          ‰‰                     | ¦  «        ¦  «                             ¦   «         S rI   )rN   r<   rf   )rh   rg   rL   s    €€r%   r»   z._first_model_type_for_filter.<locals>.<lambda>ï   s+   ø€ �|¨K¸×9LÒ9LÈZÑ9XÔ9XÑYÔY×bÒbÑdÔd€ r'   Úlast_model_per_family)rS   r�   Úsortedr   r.   )
rg   r~   rz   ru   Úprevious_model_typeÚ
family_idsr    r¿   r¡   rL   s
   `       @@r%   Ú_first_model_type_for_filterrÃ   á   sR  øøø€ Ø ˜; B×+Ò+Õ,SÐUWÑXÔX×\Ò\Ð]iÐkmÑnÔnÐØ˜nÐ,Ð,Ø"Ð"Ýð 	cð  	cð  	cð  	cÈ.ð  	cñ  	cô  	cØ9Ð9Ð9Ð9ðñ ô €Jõ ˆ:�„˜!ÒÐØˆrØ˜Œ]€FØÔ% fÔ-¨aÔ0€KÝØqÐqÐqÐqÐq nÐqÑqÔqØdÐdÐdÐdÐdðñ ô Ðð #˜[ b×-Ò-Ð.EÀrÑJÔJÐØ/×3Ò3°F¸BÑ?Ô?ÐØ"5Ð9KÐ"KÐ"KÐÐÐQcÐdeÔQfÐfr'   c                 óÀ   — |€t          | |¦  «        nt          |¦  «        }t          | ||¦  «        }||v r|S t          |¦  «        dk    r|S t	          | |||¦  «        S rr   )r   r{   rª   r   rÃ   )rg   r~   Úcurrent_model_typerz   ru   s        r%   Úselect_model_for_output_filterrÆ   ö   s}   € Ø;GÐ;OÕ*¨4°Ñ7Ô7Ð7ÕUrÐsñ  VAô  VA€LÝ6°t¸\È>ÑZÔZ€NØ˜^Ð+Ð+Ø!Ð!Ý
ˆ>ÑÔ˜aÒÐØ!Ð!Ý'¨¨e°\À>ÑRÔRÐRr'   c                 óR   ‡ ‡— |€t          ‰ ¦  «        n|}‰€|S ˆˆ fd„|D ¦   «         S )Nc                 óJ   •— g | ]}‰                      |d ¬¦  «        ‰k    ¯|‘Œ S r™   rš   )r‘   rh   Úcurrent_model_familyrg   s     €€r%   r“   z3get_family_dropdown_model_types.<locals>.<listcomp>  sU   ø€ ð  Cð  Cð  C˜:¸4×;PÒ;PÐQ[ÐdhÐ;PÑ;iÔ;ið  nBò  <Bð  <BˆJð  <Bð  <Bð  <Br'   )rv   )rg   rÉ   ru   s   `` r%   Úget_family_dropdown_model_typesrÊ      sa   øø€ Ø7EÐ7MÕ-¨dÑ3Ô3Ð3ÐSa€NØÐ#ØÐð Cð  Cð  Cð  Cð  C¨ð  Cñ  Cô  Cð  Cr'   c           	      ó.  ‡ — ‰                       ||¦  «        }‰                      |dd¬¦  «        }ˆ fd„|D ¦   «         }g }|D ]Ò}t          |t          ¦  «        r�|                     dd ¦  «        }|€ d S |                     ‰                      ||||¬¦  «        ¦  «         |                     dd ¦  «        }	|	€ d S |                     ‰                      ||||	¬¦  «        ¦  «         Œ¦|                     ‰                      ||||¬¦  «        ¦  «         ŒÓ|S )	NÚmodulesT©Úreturn_listc                 óp   •— g | ]2}t          |t          ¦  «        r‰                     |d dd¬¦  «        n|‘Œ3S )rÌ   Ú_listT)Úsub_prop_namerÎ   )rQ   r   r4   )r‘   Úmodulerg   s     €r%   r“   z0_get_module_files_for_status.<locals>.<listcomp>
  ss   ø€ ð  gð  gð  gð  U[ÕlvÐw}õ  @Cñ  mDô  mDð  Pˆt×,Ò,¨V°YÈgÐcgÐ,ÑhÔhÐhð  JPð  gð  gð  gr'   ÚURLs)rÓ   ÚURLs2)Úmodule_type)r=   r4   rQ   rE   rS   r   r5   )
rg   rh   ÚquantizationÚdtype_policyÚtransformer_dtyperÌ   Úmodule_filesrÕ   ÚURLs1rÔ   s
   `         r%   Ú_get_module_files_for_statusrÛ     s`  ø€ Ø×2Ò2°:¸|ÑLÔLÐØ×+Ò+¨J¸	ÈtÐ+ÑTÔT€Gð gð  gð  gð  gð  _fð  gñ  gô  g€GØ€LØð ð ˆÝ�k¥4Ñ(Ô(ð 
	Ø—O’O F¨DÑ1Ô1ˆEØˆ}Ø�t�tØ×Ò × 7Ò 7¸
ÀLÐRcÐjoÐ 7Ñ pÔ pÑqÔqÐqØ—O’O G¨TÑ2Ô2ˆEØˆ}Ø�t�tØ×Ò × 7Ò 7¸
ÀLÐRcÐjoÐ 7Ñ pÔ pÑqÔqÐqÐqà×Ò × 7Ò 7¸
ÀLÐRcÐq|Ð 7Ñ }Ô }Ñ~Ô~Ð~Ð~ØÐr'   c                 óŠ   — | j                              d| j        ¦  «        }| j                              d| j        ¦  «        }||fS )Nr0   r1   )r/   rS   r0   r1   )rg   rÖ   r×   s      r%   Ú"_get_status_quantization_and_dtyperÝ     sE   € ØÔ%×)Ò)Ð*DÀdÔFcÑdÔd€LØÔ%×)Ò)Ð*DÀdÔFcÑdÔd€LØ˜Ð%Ð%r'   c                 óì  — t          |t          ¦  «        rt          |¦  «        dk    rd S |€g }nOt          |t          ¦  «        rd„ |D ¦   «         }n-t          |t          ¦  «        rt          |¦  «        dk    r|gng }|                     ¦   «         t          d„ |D ¦   «         ¦  «        f}||v rd S |                     |¦  «         |                      |t          |¦  «        dk    r|nd dœ¦  «         d S )Nr   c                 ób   — g | ],}t          |t          ¦  «        ¯t          |¦  «        d k    ¯*|‘Œ-S ©r   )rQ   r   r   ©r‘   ra   s     r%   r“   z/_append_expected_file_entry.<locals>.<listcomp>'  s<   € Ð^Ð^Ð^˜tµjÀÅsÑ6KÔ6KÐ^ÕPSÐTXÑPYÔPYÐ\]ÒP]ÐP]�dÐP]ÐP]ÐP]r'   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rI   ©rf   rá   s     r%   r–   z._append_expected_file_entry.<locals>.<genexpr>*  s*   è è € Ð%MÐ%M¸$ d§m¢m¡o¤oÐ%MÐ%MÐ%MÐ%MÐ%MÐ%Mr'   )ÚfilenameÚextra_paths)rQ   r   r   rB   rf   rY   rŸ   r   )ÚentriesÚseenrä   rå   Ú
extra_listr"   s         r%   Ú_append_expected_file_entryré   !  s  € Ý�h¥Ñ$Ô$ð ­¨H©¬¸Ò(:Ð(:ØˆØÐØˆ
ˆ
Ý	�K¥Ñ	&Ô	&ð dØ^Ð^ {Ð^Ñ^Ô^ˆ
ˆ
å&0°½cÑ&BÔ&BÐcÅsÈ;ÑGWÔGWÐZ[ÒG[ÐG[�k�]�]Ðacˆ
Ø×ÒÑÔ¥Ð%MÐ%MÀ*Ð%MÑ%MÔ%MÑ MÔ MÐ
N€CØ
ˆd€{€{ØˆØ‡H‚HˆS�M„M€MØ‡N‚N ÅsÈ:ÁÄÐYZÒGZÐGZ¸¸Ð`dÐeÐeÑfÔfÐfÐfÐfr'   c                 óæ   — t          |t          ¦  «        rt          |¦  «        dk    rd S |                     ¦   «         }||v rd S |                     |¦  «         |                      d|i¦  «         d S )Nr   ra   )rQ   r   r   rf   rŸ   r   )ræ   rç   Ú
local_pathÚpath_keys       r%   Ú!_append_expected_local_path_entryrí   1  sy   € Ý�j¥#Ñ&Ô&ð ­#¨j©/¬/¸QÒ*>Ð*>ØˆØ×"Ò"Ñ$Ô$€HØ�4ÐÐØˆØ‡H‚HˆXÑÔÐØ‡N‚N�F˜JÐ'Ñ(Ô(Ð(Ð(Ð(r'   c                 ó�  — |                       |¦  «        }|€g S t          | ¦  «        \  }}g }t          ¦   «         }|                      |||¬¦  «        }t	          |||¦  «         t          |t          ¦  «        r.d|v r*|                      |||d¬¦  «        }t	          |||¦  «         t          | |||¦  «        }	t          |	t          ¦  «        r|	D ]}
t	          |||
¦  «         Œ|  	                    |dd¬¦  «        }|�G|                      || j
        ||¬¦  «        }|                     d	d ¦  «        }t	          ||||¬
¦  «         |S )N©rÖ   r×   rÔ   r   ©rÖ   r×   Úsubmodel_noÚtext_encoder_URLsTrÍ   ©rh   rÖ   r×   rÓ   Útext_encoder_folder©rå   )r3   rÝ   r�   r5   ré   rQ   rE   rÛ   rB   r4   r2   rS   )rg   rh   ri   rÖ   r×   ræ   rç   Úexpected_filenameÚexpected_filename2rÙ   rä   rò   Útext_encoder_filenamerô   s                 r%   Ú)get_expected_core_file_entries_for_statusrù   ;  sœ  € Ø×"Ò" :Ñ.Ô.€IØÐØˆ	Ý!CÀDÑ!IÔ!IÑ€L�,Ø€GÝ‰5Œ5€Dà×/Ò/°
ÈÐdpÐ/ÑqÔqÐÝ ¨Ð/@ÑAÔAÐAÝ�)�TÑ"Ô"ð G w°)Ð';Ð';Ø!×4Ò4°ZÈlÐiuð  DEÐ4ñ  Fô  FÐÝ# G¨TÐ3EÑFÔFÐFå/°°jÀ,ÐP\Ñ]Ô]€LÝ�,¥Ñ%Ô%ð AØ$ð 	Að 	AˆHÝ'¨°°xÑ@Ô@Ð@Ð@à×5Ò5°jÐBUÐcgÐ5ÑhÔhÐØÐ$Ø $× 7Ò 7À:Ð\`Ô\zð  JVð  ]nÐ 7ñ  !oô  !oÐØ'ŸmšmÐ,AÀ4ÑHÔHÐÝ# G¨TÐ3HÐViÐjÑjÔjÐjØ€Nr'   c                 óà   — g }t          | |¦  «        D ]Z}|                     dd¦  «        }|                     dd ¦  «        }|                      ||¬¦  «        €|                     |¦  «         Œ[|S )Nrä   rP   rå   rõ   )rù   rS   r6   r   )rg   rh   Úmissing_entriesÚentryrä   rå   s         r%   Ú(get_missing_core_file_entries_for_statusrý   V  sz   € Ø€OÝ:¸4ÀÑLÔLð *ð *ˆØ—9’9˜Z¨Ñ,Ô,ˆØ—i’i ¨tÑ4Ô4ˆØ×(Ò(¨¸{Ð(ÑKÔKÐSØ×"Ò" 5Ñ)Ô)Ð)øØÐr'   c           	      óT  — |                       |¦  «        }|€g S g }t          ¦   «         }|                      |dd¬¦  «        }|€g }t          |t          ¦  «        s|g}|D ];}t          |t
          ¦  «        r$t          |¦  «        dk    rt          |||¦  «         Œ<|                     dg ¦  «        }|€g }t          |t          ¦  «        s|g}|D ];}t          |t
          ¦  «        r$t          |¦  «        dk    rt          |||¦  «         Œ<|                      |dd¬¦  «        }|€g }t          |t          ¦  «        s|g}|  	                    |¦  «        }	|D ]P}t          |t
          ¦  «        rt          |¦  «        dk    rŒ+t          |||                      |	|¦  «        ¦  «         ŒQ|S )NÚpreload_URLsTrÍ   r   ÚVAE_URLsÚloras)r3   r�   r4   rQ   rB   r   r   ré   rS   r7   rí   r8   )
rg   rh   ri   ræ   rç   Úpreload_urlsÚurlÚvae_urlsÚmodel_lorasÚlora_dirs
             r%   Ú.get_expected_secondary_file_entries_for_statusr  `  sÚ  € Ø×"Ò" :Ñ.Ô.€IØÐØˆ	Ø€GÝ‰5Œ5€Dà×0Ò0°¸^ÐY]Ð0Ñ^Ô^€LØÐØˆÝ�l¥DÑ)Ô)ð &Ø$�~ˆØð <ð <ˆÝ�c�3ÑÔð 	<¥C¨¡H¤H¨q¢L LÝ'¨°°sÑ;Ô;Ð;øà�}Š}˜Z¨Ñ,Ô,€HØÐØˆÝ�h¥Ñ%Ô%ð Ø�:ˆØð <ð <ˆÝ�c�3ÑÔð 	<¥C¨¡H¤H¨q¢L LÝ'¨°°sÑ;Ô;Ð;øà×/Ò/°
¸GÐQUÐ/ÑVÔV€KØÐØˆÝ�k¥4Ñ(Ô(ð $Ø"�mˆØ× Ò  Ñ,Ô,€HØð bð bˆÝ˜#�sÑ#Ô#ð 	¥s¨3¡x¤x°1¢} }ØÝ)¨'°4¸×9QÒ9QÐRZÐ\_Ñ9`Ô9`ÑaÔaÐaÐaà€Nr'   c                 óÌ  — |                       |¦  «        }|€dS |                      |dd¬¦  «        }|�u|                      || j        ||¬¦  «        }t	          |t
          ¦  «        rBt          |¦  «        dk    r/|                     dd ¦  «        }|                      ||¬¦  «        €dS |  	                    |¦  «        }d	D ]š\  }	}
|
r|                      ||	d¬¦  «        }n|                     |	g ¦  «        }|€Œ9t	          |t          ¦  «        s|g}|D ]F}t	          |t
          ¦  «        rt          |¦  «        dk    rŒ+|                      ||¬
¦  «        €  dS ŒGŒ›|                      |dd¬¦  «        }|€g }t	          |t          ¦  «        s|g}|  	                    |¦  «        }|D ]a}t	          |t
          ¦  «        rt          |¦  «        dk    rŒ+t          j                             |                      ||¦  «        ¦  «        s dS Œbt          | |||¦  «        }|€dS |D ]C}t	          |t
          ¦  «        rt          |¦  «        dk    rŒ+|                      |¦  «        € dS ŒDdS )NTrò   rÍ   ró   r   rô   rõ   F))rÿ   T)r   F)r  r  )r3   r4   r5   r2   rQ   r   r   rS   r6   r7   rB   rc   ra   Úisfiler8   rÛ   )rg   rh   rÖ   r×   ri   rò   rø   rô   r  ÚpropÚ	recursiveÚurlsr  r  rÙ   rä   s                   r%   Ú$has_secondary_model_files_for_statusr  ‡  sß  € Ø×"Ò" :Ñ.Ô.€IØÐØˆtà×5Ò5°jÐBUÐcgÐ5ÑhÔhÐØÐ$Ø $× 7Ò 7À:Ð\`Ô\zð  JVð  ]nÐ 7ñ  !oô  !oÐÝÐ+­SÑ1Ô1ð 	µcÐ:OÑ6PÔ6PÐSTÒ6TÐ6TØ"+§-¢-Ð0EÀtÑ"LÔ"LÐØ×,Ò,Ð-BÐPcÐ,ÑdÔdÐlØ�uØ× Ò  Ñ,Ô,€HØHð ð ‰ˆˆiØð 	+Ø×0Ò0°¸TÈtÐ0ÑTÔTˆDˆDà—=’=  rÑ*Ô*ˆDØˆ<ØÝ˜$¥Ñ%Ô%ð 	Ø�6ˆDØð 	ð 	ˆCÝ˜c¥3Ñ'Ô'ð ­3¨s©8¬8°qª=¨=ØØ×,Ò,¨S¸8Ð,ÑDÔDÐLØ�u�u�uð Mð	ð ×/Ò/°
¸GÐQUÐ/ÑVÔV€KØÐØˆÝ�k¥4Ñ(Ô(ð $Ø"�mˆØ× Ò  Ñ,Ô,€HØð ð ˆÝ˜#�sÑ#Ô#ð 	¥s¨3¡x¤x°1¢} }ØÝŒw�~Š~˜d×6Ò6°xÀÑEÔEÑFÔFð 	Ø�5�5ð	õ 0°°jÀ,ÐP\Ñ]Ô]€LØÐØˆuØ ð ð ˆÝ˜(¥CÑ(Ô(ð 	­C°©M¬M¸QÒ,>Ð,>ØØ×(Ò(¨Ñ2Ô2Ð:Ø�5�5ð ;àˆ4r'   c                 ó®  — t          | ¦  «        \  }}|                      |¦  «        }g }|                      |||¬¦  «        }t          |t          ¦  «        r(t          |¦  «        dk    r|                     |¦  «         t          |t          ¦  «        rZd|v rV|                      |||d¬¦  «        }t          |t          ¦  «        r(t          |¦  «        dk    r|                     |¦  «         g }|D ],}	|                     |                      |	¦  «        d u¦  «         Œ-t          |¦  «        dk    r/t          |¦  «        r t          | |||¦  «        st          S t          S t          |¦  «        rt          S g }
dD ];}|                      ||d¬¦  «        }t          |t          ¦  «        s|r|gng }|
|z  }
Œ<t!          ¦   «         }d	„ |D ¦   «         }|
D ]|}t          |t          ¦  «        rt          |¦  «        dk    rŒ+|                     ¦   «         }||v rŒD|                     |¦  «         ||v rŒ^|                      |¦  «        �	t          c S Œ}t&          S )
Nrï   r   rÔ   r   rð   )rÓ   rÔ   TrÍ   c                 ó†   — h | ]>}t          |t          ¦  «        ¯t          |¦  «        d k    ¯*|                     ¦   «         ’Œ?S rà   )rQ   r   r   rf   )r‘   Únames     r%   rœ   z,get_model_download_status.<locals>.<setcomp>Ú  sF   € ÐnÐnÐn¨ÅjÐQUÕWZÑF[ÔF[ÐnÕ`cÐdhÑ`iÔ`iÐlmÒ`mÐ`m�D—M’M‘O”OÐ`mÐ`mÐ`mr'   )rÝ   r3   r5   rQ   r   r   r   rE   r6   r   r  ÚMODEL_FILE_STATUS_PARTIALÚMODEL_FILE_STATUS_EXPECTEDrž   r4   rB   r�   rf   rŸ   rZ   )rg   rh   rÖ   r×   ri   Úexpected_filenamesrö   r÷   Úexpected_existsrä   Úcandidate_urlsr
  r  Úchecked_candidatesÚexpected_setÚ	candidateÚcandidate_keys                    r%   Úget_model_download_statusr  º  s¹  € Ý!CÀDÑ!IÔ!IÑ€L�,Ø×"Ò" :Ñ.Ô.€IØÐØ×/Ò/°
ÈÐdpÐ/ÑqÔqÐÝÐ#¥SÑ)Ô)ð 5­cÐ2CÑ.DÔ.DÀqÒ.HÐ.HØ×!Ò!Ð"3Ñ4Ô4Ð4Ý�)�TÑ"Ô"ð : w°)Ð';Ð';Ø!×4Ò4°ZÈlÐiuð  DEÐ4ñ  Fô  FÐÝÐ(­#Ñ.Ô.ð 	:µ3Ð7IÑ3JÔ3JÈQÒ3NÐ3NØ×%Ò%Ð&8Ñ9Ô9Ð9à€OØ&ð Tð TˆØ×Ò˜t×<Ò<¸XÑFÔFÈdÐRÑSÔSÐSÐSå
ˆ?ÑÔ˜aÒÐ¥C¨Ñ$8Ô$8ÐÝ3°D¸*ÀlÐT`ÑaÔað 	-Ý,Ð,Ý)Ð)å
ˆ?ÑÔð )Ý(Ð(à€NØ!ð ð ˆØ×,Ò,¨Z¸È4Ð,ÑPÔPˆÝ˜$¥Ñ%Ô%ð 	*Ø!Ð)�D�6�6 rˆDØ˜$Ñˆˆå™œÐØnÐnÐ0BÐnÑnÔn€LØ#ð 
-ð 
-ˆ	Ý˜)¥SÑ)Ô)ð 	­S°©^¬^¸qÒ-@Ð-@ØØ!×*Ò*Ñ,Ô,ˆØÐ.Ð.Ð.ØØ×Ò˜}Ñ-Ô-Ð-Ø˜LÐ(Ð(ØØ×(Ò(¨Ñ3Ô3Ð?Ý,Ð,Ð,Ð,ð @å$Ð$r'   c                 ó   ‡
— i Š
|€t          | ¦  «        n|}t          t          ¦  «        }|D ]_}|                      |¦  «        €Œt	          | |¦  «        }|‰
|<   |                      |¦  «        }|�||                              |¦  «         Œ`t          ‰
¦  «        }|                     ¦   «         D ]›\  }}ˆ
fd„|D ¦   «         }t          |¦  «        dk    rŒ't          }	t          d„ |D ¦   «         ¦  «        rt          }	n t          d„ |D ¦   «         ¦  «        rt          }	t          |                     |t          ¦  «        |	¦  «        ||<   Œœ‰
|fS )Nc                 óF   •— g | ]}‰                      |t          ¦  «        ‘ŒS rG   )rS   rZ   )r‘   ÚchildÚdirect_status_maps     €r%   r“   z2get_model_download_status_maps.<locals>.<listcomp>ù  s,   ø€ ÐhÐhÐhÐV[Ð+×/Ò/°Õ7PÑQÔQÐhÐhÐhr'   r   c              3   ó,   K  — | ]}|t           k    V — Œd S rI   )r  ©r‘   rU   s     r%   r–   z1get_model_download_status_maps.<locals>.<genexpr>ý  s(   è è € ÐQÐQ¸ˆvÕ3Ò3ÐQÐQÐQÐQÐQÐQr'   c              3   ó,   K  — | ]}|t           k    V — Œd S rI   )r  r   s     r%   r–   z1get_model_download_status_maps.<locals>.<genexpr>ÿ  s(   è è € ÐRÐR¸�Õ4Ò4ÐRÐRÐRÐRÐRÐRr'   )rv   r   rB   r3   r  r9   r   rE   r   r   rZ   rž   r  r  ÚmaxrS   )rg   ru   Úparent_to_childrenrh   rU   Úparent_model_typeÚaggregated_parent_status_mapÚchildrenÚchild_statusesÚparent_statusr  s             @r%   Úget_model_download_status_mapsr)  é  s¥  ø€ ØÐØ7EÐ7MÕ-¨dÑ3Ô3Ð3ÐSa€NÝ$¥TÑ*Ô*Ðà$ð Eð Eˆ
Ø×Ò˜jÑ)Ô)Ð1ØÝ*¨4°Ñ<Ô<ˆØ(.Ð˜*Ñ%Ø ×6Ò6°zÑBÔBÐØÐ(ØÐ0Ô1×8Ò8¸ÑDÔDÐDøå#'Ð(9Ñ#:Ô#:Ð Ø'9×'?Ò'?Ñ'AÔ'Að 	]ð 	]Ñ#Ð˜8ØhÐhÐhÐhÐ_gÐhÑhÔhˆÝˆ~ÑÔ !Ò#Ð#ØÝ1ˆÝÐQÐQÀ.ÐQÑQÔQÑQÔQð 	6Ý6ˆMˆMÝÐRÐRÀ>ÐRÑRÔRÑRÔRð 	6Ý5ˆMÝ:=Ð>Z×>^Ò>^Ð_põ  sLñ  ?Mô  ?Mð  O\ñ  ;]ô  ;]Ð$Ð%6Ñ7Ð7ØÐ:Ð:Ð:r'   c                 ó.   — t          | |¦  «        d         S )Nr   )r)  rt   s     r%   Úget_model_download_status_mapr+    s   € Ý)¨$°Ñ?Ô?ÀÔBÐBr'   c                 óÆ  ‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.— d„ }d„ }t          t          ¦  «        i g }}}| D ]G\  }}}||                              ||f¦  «         ||k    r||vr|||<   |                     |¦  «         ŒHg i }
}	|D �]vŠ,|‰,         } ||¦  «        }d„ |D ¦   «         Š*t          ‰*¦  «        }‰*d         Š)t	          ‰*¦  «        Š+g }|                     ‰,g ¦  «        D ]E\  }} ||¦  «        }d„ |D ¦   «         }t	          |¦  «        }|                     |||||f¦  «         ŒFˆ+ˆ,fd„|D ¦   «         Š(g }|D ]=\  }}}}}|‰,k    s|‰(vr+|r)|d         ‰*d         k    r|                     ||f¦  «         Œ>d„ Š't          |¦  «        d	k    r|nt          ˆ'ˆ*fd
„|D ¦   «         ¦  «        Š%‰%dk    rt          |¦  «        d	k    r|Š%t          ˆ(ˆ)ˆ,fd„|D ¦   «         ¦  «        }|d‰%…         |r‰%|k     r	|d         gng z   }d                     |¦  «        }‰%|k    p|o‰%|k     Š&‰*d‰%…         Š-ˆ%ˆ-fd„Š.ˆ%ˆ.fd„}ˆ&ˆ)fd„}g }|D ]«\  }}}}}|‰(vr |||¦  «        n	|dd…         }|                     |||||‰(v ||‰(vr |||¦  «        n	|dd…         |‰(vrd„ |D ¦   «         nt	          ¦   «         |‰(vr$d„ |‰(vr |||¦  «        n	|dd…         D ¦   «         nt	          ¦   «         dœ	¦  «         Œ¬t          ˆ,fd„|D ¦   «         ¦  «        }ˆ,fd„} ||¦  «        ‰,fg}|D ]5}|d         ‰,k    rŒ|                      ||¦  «        |d         f¦  «         Œ6 ||¦  «        }d„ |D ¦   «         } d}!|d         g}"|d	d…         D ]W\  }#}|#dk    r5 || |         ¦  «        |k    r |"                     d|!› �|f¦  «         |!d	z  }!Œ@|"                     |#|f¦  «         ŒX|	                     |‰,f¦  «         |"|
‰,<   �Œx| 
                    ¦   «         D ]GŠ,‰,|v rŒ|‰,         d         d         }$|	                     |$‰,f¦  «         d„ |‰,         D ¦   «         |
‰,<   ŒHt          |	d„ ¬¦  «        }	|	|
fS )zÎ
    rows: list of (model_name, model_id, parent_model_id)
    returns:
      parents_list: list[(parent_header, parent_id)]
      children_dict: dict[parent_id] -> list[(child_display_name, child_id)]
    c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]}|¯|‘ŒS rG   rG   )r‘   Úts     r%   r“   z=create_models_hierarchy.<locals>.<lambda>.<locals>.<listcomp>  s   € Ð0Ð0Ð0˜A¨aÐ0�aÐ0Ð0Ð0r'   )Úsplit©Úss    r%   r»   z)create_models_hierarchy.<locals>.<lambda>  s   € Ð0Ð0 §¢¡¤Ð0Ñ0Ô0€ r'   c                 ót   — d                      |                      ¦   «         ¦  «                             ¦   «         S )Nr   )r   r0  rf   r1  s    r%   r»   z)create_models_hierarchy.<locals>.<lambda>  s&   € �S—X’X˜aŸgšg™iœiÑ(Ô(×1Ò1Ñ3Ô3€ r'   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rG   rã   ©r‘   Úws     r%   r“   z+create_models_hierarchy.<locals>.<listcomp>  s    € Ð-Ð-Ð- !�—’‘”Ð-Ð-Ð-r'   éÿÿÿÿc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rG   rã   r5  s     r%   r“   z+create_models_hierarchy.<locals>.<listcomp>'  s    € Ð+Ð+Ð+ 1�!—*’*‘,”,Ð+Ð+Ð+r'   c                 óV   •— h | ]%\  }}}}}|‰k    ¯‰                      |¦  «        ¯#|’Œ&S rG   )Ú
isdisjoint)r‘   Ú_ÚmidÚstÚp_setÚpids       €€r%   rœ   z*create_models_hierarchy.<locals>.<setcomp>+  s<   ø€ Ð\Ð\Ð\Ñ,˜A˜s A q¨"¸¸sº
¸
Àu×GWÒGWÐXZÑG[ÔG[¸
�C¸
¸
¸
r'   r   c                 óÈ   — d}t          t          | ¦  «        t          |¦  «        ¦  «        }||k     r/| |         ||         k    r|dz  }||k     r| |         ||         k    °|S ©Nr   r   )Úminr   )ÚaÚbÚiÚms       r%   Úlcp_lenz(create_models_hierarchy.<locals>.lcp_len2  sd   € ØˆAÝ•C˜‘F”F�C ™FœFÑ#Ô#ˆAØ�a’%�%˜A˜aœD A a¤DšL˜LØ�Q‘�ð �a’%�%˜A˜aœD A a¤DšL˜LàˆHr'   r   c              3   ó6   •K  — | ]\  }} ‰|‰¦  «        V — Œd S rI   rG   )r‘   r;  ÚltrG  Úp_lows      €€r%   r–   z*create_models_hierarchy.<locals>.<genexpr>9  s3   øè è € Ð.ZÐ.ZÁeÀaÈ¨w¨w°r¸5Ñ/AÔ/AÐ.ZÐ.ZÐ.ZÐ.ZÐ.ZÐ.Zr'   c              3   óT   •K  — | ]"\  }}}}}|‰k    o|‰vo|o|d          ‰k    V — Œ#dS )r7  NrG   )r‘   r;  r<  rI  ÚoutliersÚp_lastr?  s       €€€r%   r–   z*create_models_hierarchy.<locals>.<genexpr>=  sU   øè è € ÐvÐvÑ]mÐ]^Ð`cÐefÐhjÐlm˜# š*ÐX¨°HÐ)<ÐXÀÐXÈÈ2ÌÐRXÒHXÐvÐvÐvÐvÐvÐvr'   Nr   c                 óŒ   •— ‰dk    st          | ¦  «        ‰k     rdS t          ‰¦  «        D ]}| |         ‰|         k    r dS ŒdS )Nr   FT)r   Úrange)rI  rE  ÚLÚ
prefix_lows     €€r%   Ústartswith_prefixz2create_models_hierarchy.<locals>.startswith_prefixD  sX   ø€ Ø�AŠvˆv�˜R™œ 1š˜Ø�uÝ˜1‘X”Xð !ð !�Ø�a”5˜J qœMÒ)Ð)Ø ˜5˜5ð *à�4r'   c                 óB   •—  ‰|¦  «        r
| ‰d …         n	| d d …         S rI   rG   )ÚotrI  rP  rR  s     €€r%   Úbase_remz)create_models_hierarchy.<locals>.base_remL  s-   ø€ Ø.Ð.¨rÑ2Ô2Ð=�2�a�b�b”6�6¸¸1¸1¸1¼Ð=r'   c                 ó�   •— | d d …         }‰r8|r6|d         ‰k    r*|r(|d                               ¦   «         ‰k    r
|d d…         }|S )Nr7  rã   )ÚremrI  ÚoutÚheader_has_lastrM  s      €€r%   Útrim_remz)create_models_hierarchy.<locals>.trim_remO  s_   ø€ Ø�a�a�a”&ˆCØð  2ð ¨"¨R¬&°FÒ*:Ð*:¸sÐ*:ÀsÈ2Äw×GWÒGWÑGYÔGYÐ]cÒGcÐGcØ˜#˜2˜#”h�ØˆJr'   c                 ó6   — h | ]}|                      ¦   «         ’ŒS rG   rã   r5  s     r%   rœ   z*create_models_hierarchy.<locals>.<setcomp>`  s    € Ð;Ð;Ð;¨Q˜AŸJšJ™LœLÐ;Ð;Ð;r'   c                 ó6   — h | ]}|                      ¦   «         ’ŒS rG   rã   r5  s     r%   rœ   z*create_models_hierarchy.<locals>.<setcomp>a  s    € Ð rÐ rÐ r°! §¢¡¤Ð rÐ rÐ rr'   )	r  r<  rT  rI  ÚoutlierÚrem_coreÚrem_trimÚrem_setÚrem_trim_setc              3   ó4   •K  — | ]}|d          ‰k    ¯|V — ŒdS )r<  NrG   )r‘   Úinfor?  s     €r%   r–   z*create_models_hierarchy.<locals>.<genexpr>d  s1   øè è € ÐMÐM T¸$¸u¼+ÈÒ:LÐ:L˜DÐ:LÐ:LÐ:LÐ:LÐMÐMr'   c                 ó¸   •— | d         r| d         S | d         ‰k    r	| d         }n| d         }d                      |¦  «                             ¦   «         }|r|ndS )Nr]  r  r<  r_  r   ÚDefault)r   rK   )rc  rW  r2  r?  s      €r%   Údispz%create_models_hierarchy.<locals>.dispf  sh   ø€ Ø�IŒð $Ø˜F”|Ð#Ø�EŒ{˜cÒ!Ð!Ø˜:Ô&��à˜:Ô&�Ø—’˜‘”×#Ò#Ñ%Ô%ˆAØÐ(�1�1˜yÐ(r'   r<  c                 ó   — i | ]^}}}||“Œ	S rG   rG   )r‘   r  r<  r;  s       r%   ú
<dictcomp>z+create_models_hierarchy.<locals>.<dictcomp>w  s    € Ð;Ð;Ð; ] T¨3°�s˜DÐ;Ð;Ð;r'   r   re  z	Default #c                 ó   — g | ]	\  }}||f‘Œ
S rG   rG   )r‘   r  r<  s      r%   r“   z+create_models_hierarchy.<locals>.<listcomp>‰  s    € ÐGÐGÐG©i¨d°C˜t S˜kÐGÐGÐGr'   c                 ó   — | d         S rr   rG   ©Úcs    r%   r»   z)create_models_hierarchy.<locals>.<lambda>‹  s
   € °a¸´d€ r'   r¼   )r   rB   r   r   r�   rS   rB  rž   r   ÚnextÚkeysrÀ   )/ÚrowsÚtoksÚnormÚgroupsÚparentsÚorderr  r<  ÚpmidÚparents_listÚchildren_dictÚp_nameÚp_tokÚnÚkidsrT  rI  r=  Ú
prefix_nonÚshares_lastÚheader_tokens_dispÚheaderrU  rZ  Ú	kid_infosr;  r^  Údefault_inforf  ræ   rc  Úp_fullÚfull_by_midÚnumÚnumberedÚdnameÚ
first_namerP  rY  rG  rL  rM  rJ  r>  r?  rQ  rR  s/                                        @@@@@@@@@@r%   Úcreate_models_hierarchyrˆ  	  su  øøøøøøøøøø€ ð 1Ð0€DØ3Ð3€Då(­Ñ.Ô.°°B�UˆG€FØð ð ‰ˆˆc�4ØˆtŒ×Ò˜T 3˜KÑ(Ô(Ð(Ø�$Š;ˆ;˜4 wÐ.Ð.Ø ˆG�D‰MØ�LŠL˜ÑÔÐøà"$ b�-€Làð f&ñ f&ˆØ˜”ˆØ��V‘”ˆØ-Ð- uÐ-Ñ-Ô-ˆÝ�‰JŒJˆØ�r”ˆÝ�E‘
”
ˆàˆØŸš C¨Ñ,Ô,ð 	1ð 	1‰IˆD�#Ø��d‘”ˆBØ+Ð+¨Ð+Ñ+Ô+ˆBÝ�R‘”ˆBØ�KŠK˜˜s B¨¨BÐ/Ñ0Ô0Ð0Ð0à\Ð\Ð\Ð\Ð\°Ð\Ñ\Ô\ˆàˆ
Ø%)ð 	,ð 	,Ñ!ˆD�#�r˜2˜rØ�cŠzˆz˜c¨Ð1Ð1°bÐ1¸RÀ¼UÀeÈAÄhÒ=NÐ=NØ×!Ò! 2 r (Ñ+Ô+Ð+øð	ð 	ð 	õ �Z‘” AÒ%Ð%ˆAˆA­3Ð.ZÐ.ZÐ.ZÐ.ZÐ.ZÈzÐ.ZÑ.ZÔ.ZÑ+ZÔ+ZˆØ�Š6ˆ6•c˜*‘o”o¨Ò)Ð)ØˆAåÐvÐvÐvÐvÐvÐvÐquÐvÑvÔvÑvÔvˆØ" 2 A 2œY¸Ð*VÈÈQÊÈ¨5°¬9¨+¨+ÐTVÑWÐØ—’Ð,Ñ-Ô-ˆØ š6Ð= {Ð'<°q¸1²uˆà˜2˜A˜2”Yˆ
ð	ð 	ð 	ð 	ð 	ð 	ð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð	ð 	ð 	ð 	ð 	ð 	ð ˆ	Ø$(ð 	ð 	Ñ ˆD�#�r˜2˜qØ+.°hÐ+>Ð+>�x�x  BÑ'Ô'Ð'ÀBÀqÀqÀqÄEˆHØ×ÒØØØØØ (˜?Ø$Ø69ÀÐ6IÐ6I˜H˜H X¨rÑ2Ô2Ð2ÈrÐRSÐRSÐRSÌuØ?BÈ(Ð?RÐ?RÐ;Ð;°(Ð;Ñ;Ô;Ð;ÕX[ÑX]ÔX]Øvyð  BJð  wJð  wJÐ rÐ rÐRUÐ]eÐReÐRe¸¸ÀÈ2Ñ8NÔ8NÐ8NÐkmÐnoÐnoÐnoÔkpÐ rÑ rÔ rÐ rõ  PSñ  PUô  PUð
ð 
ñ 
ô 
ð 
ð 
õ ÐMÐMÐMÐM¨YÐMÑMÔMÑMÔMˆð	)ð 	)ð 	)ð 	)ð 	)ð �D˜Ñ&Ô&¨Ð,Ð-ˆØð 	6ð 	6ˆDØ�EŒ{˜cÒ!Ð!ØØ�NŠN˜D˜D ™JœJ¨¨U¬Ð4Ñ5Ô5Ð5Ð5à��f‘”ˆØ;Ð;°dÐ;Ñ;Ô;ˆØˆØ˜A”J�<ˆØ! ! " "œ+ð 	.ð 	.‰JˆE�3Ø˜	Ò!Ð! d d¨;°sÔ+;Ñ&<Ô&<ÀÒ&FÐ&FØ—’Ð!2¨SÐ!2Ð!2°CÐ 8Ñ9Ô9Ð9Ø�q‘��à—’ ¨ Ñ-Ô-Ð-Ð-à×Ò˜V S˜MÑ*Ô*Ð*Ø%ˆ�cÑÑà�{Š{‰}Œ}ð Hð HˆØ�'ˆ>ˆ>ØØ˜C”[ ”^ AÔ&ˆ
Ø×Ò˜Z¨Ð-Ñ.Ô.Ð.ØGÐG¸6À#¼;ÐGÑGÔGˆ�cÑÐå˜,¨N¨NÐ;Ñ;Ô;€LØ˜Ð&Ð&r'   c                 óº  ‡ ‡— |€t          ‰ ¦  «        n&t          t                               |¦  «        ¦  «        }t	          t          ¦  «        }|D ]=}‰                      |d¬¦  «        }|‰ j        v r||                              |¦  «         Œ>g g dœ}t          |ˆ fd„¬¦  «        }|D �]/}‰ j        |         d         Šˆ ˆfd„||         D ¦   «         }| 	                    d„ ¬¦  «         t          |¦  «        \  }}	‰‰g g d	œ}
|D ]¶\  }}‰› d
|› �}||g g d	œ}|	                     |g ¦  «        D ]q\  }}t          ‰ |¦  «        r>|                     ¦   «                              d¦  «        s|                     ¦   «         dz   }|d                              ||dœ¦  «         Œr|
d                              |¦  «         Œ·|d                              |
¦  «         �Œ1|S )NTrŽ   )Úfoldersr   c                 ó*   •— ‰j         |          d         S rr   r¹   rº   s    €r%   r»   z2create_models_selector_hierarchy.<locals>.<lambda>˜  s   ø€ ÀDÔDWÐX^ÔD_Ð`aÔDb€ r'   r¼   r   c                 ó‚   •— g | ];}t          ‰‰                     |¦  «        ¦  «        |‰                     |¦  «        f‘Œ<S rG   )rN   r<   r9   )r‘   rh   rg   rL   s     €€r%   r“   z4create_models_selector_hierarchy.<locals>.<listcomp>›  sX   ø€ ð 
ð 
ð 
àõ ˜+ t×':Ò':¸:Ñ'FÔ'FÑGÔGÈÐUY×UoÒUoÐpzÑU{ÔU{Ð|ð
ð 
ð 
r'   c                 ó6   — | d                               ¦   «         S rr   rã   )Úrows    r%   r»   z2create_models_selector_hierarchy.<locals>.<lambda>Ÿ  s   €  # a¤&§/¢/Ñ"3Ô"3€ r'   )r  ra   rŠ  r   ú/rl   rm   r   )r  r#   rŠ  )rª   rB   rE   rs   r   r;   r.   r   rÀ   Úsortrˆ  rS   rj   rn   ro   )rg   ru   r    rh   r¡   ÚtreeÚsorted_familiesro  Úparent_choicesÚchildren_by_parentÚfamily_folderÚparent_namer$  Úparent_pathÚparent_folderÚ
child_nameÚchild_model_typerL   s   `                @r%   Ú create_models_selector_hierarchyr›  �  s^  øø€ Ø@NÐ@VÕ6°tÑ<Ô<Ð<Õ\`Õae×anÒanÐo}Ña~Ôa~Ñ\Ô\€NÝ$¥TÑ*Ô*ÐØ$ð :ð :ˆ
Ø×&Ò& z¸$Ð&Ñ?Ô?ˆØ�TÔ(Ð(Ð(Ø˜vÔ&×-Ò-¨jÑ9Ô9Ð9øà BÐ'Ð'€DÝÐ/Ð5bÐ5bÐ5bÐ5bÐcÑcÔc€OØ!ð .ñ .ˆØÔ)¨&Ô1°!Ô4ˆð
ð 
ð 
ð 
ð 
à0°Ô8ð
ñ 
ô 
ˆð 	�	Š	Ð3Ð3ˆ	Ñ4Ô4Ð4Ý-DÀTÑ-JÔ-JÑ*ˆÐ*Ø!,°kÈbÐ[]Ð^Ð^ˆØ.<ð 	;ð 	;Ñ*ˆKÐ*Ø(Ð8Ð8¨;Ð8Ð8ˆKØ%0¸+ÐRTÐ_aÐbÐbˆMØ0B×0FÒ0FÐGXÐZ\Ñ0]Ô0]ð _ð _Ñ,�
Ð,Ý$ TÐ+;Ñ<Ô<ð <ÀZ×EVÒEVÑEXÔEX×EaÒEaÐbeÑEfÔEfð <Ø!+×!2Ò!2Ñ!4Ô!4°tÑ!;�JØ˜gÔ&×-Ò-°zÐL\Ð.]Ð.]Ñ^Ô^Ð^Ð^Ø˜)Ô$×+Ò+¨MÑ:Ô:Ð:Ð:ØˆYŒ×Ò˜}Ñ-Ô-Ð-Ñ-Ø€Kr'   Tc                 óD  ‡ ‡— ˆ fd„|D ¦   «         }i }|D ]}||vrd||<   Œˆ fd„|D ¦   «         }ˆ fd„|D ¦   «         }	d„ t          t          ||	|¦  «        d„ ¬¦  «        D ¦   «         }
‰€ˆ fd„t          ||¦  «        D ¦   «         }nˆˆ fd	„t          ||¦  «        D ¦   «         }t          |d
„ ¬¦  «        }|r>ˆ fd„|D ¦   «         }t          |¦  «        \  }}|
||‰                      |¦  «                 fS t	          ˆ fd„|D ¦   «         ¦  «        }d„ |D ¦   «         }|
||fS )Nc                 ó>   •— g | ]}‰                      |d ¬¦  «        ‘ŒS r™   rš   ©r‘   r/  rg   s     €r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>¯  ó,   ø€ ÐUÐUÐUÀ�t×,Ò,¨Q°tÐ,Ñ<Ô<ÐUÐUÐUr'   r   c                 ó6   •— g | ]}‰j         |         d          ‘ŒS rà   r¹   ©r‘   r¡   rg   s     €r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>µ  ó&   ø€ ÐMÐMÐM¸&�tÔ*¨6Ô2°1Ô5ÐMÐMÐMr'   c                 ó6   •— g | ]}‰j         |         d          ‘ŒS ©r   r¹   r¡  s     €r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>¶  r¢  r'   c                 ó"   — g | ]}|d d…         ‘ŒS ©r   NrG   )r‘   rc  s     r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>·  s    € ÐwÐwÐw 4�d˜1˜2˜2”hÐwÐwÐwr'   c                 ó   — | d         S rr   rG   rk  s    r%   r»   z%get_sorted_dropdown.<locals>.<lambda>·  s   € ÐqrÐstÔqu€ r'   r¼   c                 óh   •— g | ].\  }}‰j         |         d          ‰                     |¦  «        |f‘Œ/S rà   )r.   r<   )r‘   rh   r¡   rg   s      €r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>¹  s^   ø€ ð  jð  jð  jñ  oAÐnxð  {A˜TÔ0°Ô8¸Ô;¸T×=PÒ=PÐQ[Ñ=\Ô=\Ð^hÐið  jð  jð  jr'   c           	      ó²   •— g | ]S\  }}|‰k    ¯‰j         |         d          t          ‰j         |         d         ‰                     |¦  «        ¦  «        |f‘ŒTS )r   r   )r.   rN   r<   )r‘   rh   r¡   rÉ   rg   s      €€r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>»  s´   ø€ ð  zð  zð  zñ  ]oð  ]gð  ioð  [að  eyò  [yð  [y˜TÔ0°Ô8¸Ô;½\È$ÔJ]Ð^dÔJeÐfgÔJhÐjn×j}Òj}ð  Iñ  kJô  kJñ  >Kô  >Kð  MWð  Xð  [yð  [yð  [yr'   c                 ó"   — | d         | d         fS rA  rG   rk  s    r%   r»   z%get_sorted_dropdown.<locals>.<lambda>¼  s   € ¸qÀ¼tÀQÀqÄT¸l€ r'   c                 ó`   •— g | ]*}g |d d…         ¢‰                      |d         ¦  «        ‘R ‘Œ+S )r   Nr   ©r9   ©r‘   Úmodelrg   s     €r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>¾  sB   ø€ ÐmÐmÐmÐSXÐN˜e A B BœiÐN¨×)CÒ)CÀEÈ!ÄHÑ)MÔ)MÐNÐNÐmÐmÐmr'   c                 óF   •— h | ]}‰                      |d          ¦  «        ’ŒS )r   ©r:   r­  s     €r%   rœ   z&get_sorted_dropdown.<locals>.<setcomp>Á  s+   ø€ ÐaÐaÐaÀu × 8Ò 8¸¸q¼Ñ BÔ BÐaÐaÐar'   c                 ó"   — g | ]}|d d…         ‘ŒS r¦  rG   )r‘   r®  s     r%   r“   z'get_sorted_dropdown.<locals>.<listcomp>Â  s    € Ð@Ð@Ð@ e˜˜a˜b˜bœ	Ð@Ð@Ð@r'   )rÀ   Úziprˆ  r9   rB   )rg   ru   rÉ   rÅ   Úthree_levelsÚmodels_familiesÚfamiliesr¡   Úfamilies_ordersÚfamilies_labelsÚsorted_familesÚdropdown_choicesÚsorted_choicesÚfinetunes_dictÚdropdown_types_lists   ` `            r%   Úget_sorted_dropdownr½  ®  s  øø€ ØUÐUÐUÐUÀnÐUÑUÔU€OØ€HØ!ð !ð !ˆØ˜Ð!Ð!Ø ˆH�VÑøàMÐMÐMÐMÀHÐMÑMÔM€OØMÐMÐMÐMÀHÐMÑMÔM€OØwÐw­6µ#°oÀÐX`Ñ2aÔ2aÐguÐguÐ+vÑ+vÔ+vÐwÑwÔw€NØÐ#ð jð  jð  jð  jõ  EHð  IWð  Yhñ  Eiô  Eið  jñ  jô  jÐÐð zð  zð  zð  zð  zõ  svð  wEð  GVñ  sWô  sWð  zñ  zô  zÐÝÐ.Ð4JÐ4JÐKÑKÔKÐØð nØmÐmÐmÐmÐ\lÐmÑmÔmÐÝ)@ÐAQÑ)RÔ)RÑ&ˆ˜Ø˜~¨~¸d×>XÒ>XÐYkÑ>lÔ>lÔ/mÐmÐmÝÐaÐaÐaÐaÐP`ÐaÑaÔaÑbÔbÐØ@Ð@Ð/?Ð@Ñ@Ô@ÐØÐ.Ð0@Ð@Ð@r'   c           	      óf  — t          | |¦  «        }t          | ¦  «        }t          | ||¦  «        }||vr|                     |¦  «         |                      |d¬¦  «        }t          | |||| j        ¬¦  «        \  }}}t          | ||¦  «        }	||	vr|	                     |¦  «         t          | |	¦  «        \  }
}t          ||¦  «        }| j        rt          | |¦  «        }t          ||
¦  «        }t          j        ||d| j        rdndddd¬	¦  «        }t          j        || j        r|                      |¦  «        n|                      |¦  «        dt          |¦  «        dk    rd
ndd| j        d¬¦  «        }t          j        ||dd
t          |¦  «        dk    p| j         dd¬¦  «        }|||fS )NTrŽ   )r³  Fr   r   Úfamily_listé2   )r[   r#   Ú
show_labelÚscaleÚelem_idÚ	min_widthÚinteractiveé   é   Úmodel_base_types_list)r[   r#   rÁ  rÂ  rÃ  ÚvisiblerÅ  Ú
model_list)r[   r#   rÁ  rÂ  rÉ  rÃ  rÅ  )r   rv   rª   r   r;   r½  r-   rÊ   r)  r_   rp   ÚgrÚDropdownr9   r:   r   )rg   rÅ   r~   rz   ru   rÉ   r¸  Úsorted_modelsÚsorted_finetunesÚstatus_model_typesr  r%  Údropdown_familiesÚdropdown_modelsÚdropdown_finetuness                  r%   Úgenerate_dropdown_model_listrÓ  Æ  sÝ  € Ý*¨4°Ñ7Ô7€LÝ-¨dÑ3Ô3€NÝ6°t¸\È>ÑZÔZ€NØ Ð/Ð/Ø×ÒÐ0Ñ1Ô1Ð1Ø×0Ò0Ð1CÈDÐ0ÑQÔQÐÝ6IÈ$ÐP^Ð`tð  wIð  X\ô  Xsð  7tñ  7tô  7tÑ3€N�MÐ#3Ý8¸Ð?SÐUcÑdÔdÐØÐ!3Ð3Ð3Ø×!Ò!Ð"4Ñ5Ô5Ð5Ý6TÐUYÐ[mÑ6nÔ6nÑ3ÐÐ3Ý9¸-ÐIeÑfÔf€MØÔ"ð VÝ=¸dÐDTÑUÔUÐÝ<Ð=MÐO`ÑaÔaÐåœ¨NÐBVÐchÐuyô  vQð  qXÐpqÐpqð  WXð  boð  {}ð  KOð  Pñ  Pô  PÐÝ”k¨-Ðquô  rMð  @¸t×?YÒ?YÐZlÑ?mÔ?mÐ?mð  SW÷  Skò  Skð  l~ñ  Sô  Sð  LQõ  ^að  brñ  ^sô  ^sð  vwò  ^wð  ^wð  YZð  YZð  }~ð  H_ð  imô  iDð  RVð  Wñ  Wô  W€OÝœÐ-=ÐEWÐdiÐqrÕ|ð  AQñ  }Rô  }Rð  UVò  }Vð  }yð  ^bô  ^yð  Zyð  COð  ]að  bñ  bô  bÐØ˜oÐ/AÐAÐAr'   c                 óà  ‡ ‡‡— t          ‰ t          ‰ |¦  «        ¦  «        }‰ j        ‰         d         Šˆ fd„|D ¦   «         }ˆˆˆ fd„t          ||¦  «        D ¦   «         }t	          |d„ ¬¦  «        }d„ |D ¦   «         }t          ‰ |¦  «        \  }}|                     di ¦  «        }	|	                     ‰d¦  «        }
t          |
¦  «        dk    s|
d	„ |D ¦   «         vr|d
         d         }
‰ j        rˆ‰  	                    |
¦  «        }ˆ fd„|D ¦   «         }t          |¦  «        \  }}t          ‰ ||         ¦  «        ||<   t          ||         |¦  «        }t          ||¦  «        }t          |¦  «        dk    }nB‰                      |
¦  «        }d}t          ˆ fd„|D ¦   «         ¦  «        }t          ||¦  «        }t          j        |||rdnd¬¦  «        t          j        ||
|¬¦  «        fS )Nr   c                 ó>   •— g | ]}‰                      |d ¬¦  «        ‘ŒS r™   rš   rž  s     €r%   r“   z'change_model_family.<locals>.<listcomp>à  rŸ  r'   c                 ól   •— g | ]0\  }}|‰k    ¯t          ‰‰                     |¦  «        ¦  «        |f‘Œ1S rG   )rN   r<   )r‘   rh   r¡   Úcurrent_family_namerÉ   rg   s      €€€r%   r“   z'change_model_family.<locals>.<listcomp>á  sp   ø€ ð  Kð  Kð  KÑmÐmwÐyð  lrð  vJò  lJð  lJ�Ð&9¸4×;NÒ;NÈzÑ;ZÔ;ZÑ[Ô[Ð]gÐhð  lJð  lJð  lJr'   c                 ó   — | d         S rr   rG   rk  s    r%   r»   z%change_model_family.<locals>.<lambda>â  ó
   € ¸aÀ¼d€ r'   r¼   c                 ó   — g | ]
}|d          ‘ŒS r¤  rG   ©r‘   r^   s     r%   r“   z'change_model_family.<locals>.<listcomp>ã  s   € ÐFÐFÐF¨6˜V AœYÐFÐFÐFr'   r¿   rP   c                 ó   — g | ]
}|d          ‘ŒS r¤  rG   rÛ  s     r%   r“   z'change_model_family.<locals>.<listcomp>ç  ó   € Ð2\Ð2\Ð2\À°6¸!´9Ð2\Ð2\Ð2\r'   r   c                 óP   •— g | ]"}g |¢‰                      |d          ¦  «        ‘R ‘Œ#S r¤  r¬  )r‘   Útuprg   s     €r%   r“   z'change_model_family.<locals>.<listcomp>ì  s9   ø€ ÐcÐcÐcÈ3ÐF˜cÐF 4×#=Ò#=¸cÀ!¼fÑ#EÔ#EÐFÐFÐcÐcÐcr'   Tc                 óF   •— h | ]}‰                      |d          ¦  «        ’ŒS r¤  r°  r­  s     €r%   rœ   z&change_model_family.<locals>.<setcomp>õ  s,   ø€ Ð+mÐ+mÐ+mÐSX¨D×,DÒ,DÀUÈ1ÄXÑ,NÔ,NÐ+mÐ+mÐ+mr'   rÆ  rÇ  )r[   r#   rÂ  ©r[   r#   rÉ  )rª   r   r.   r²  rÀ   r)  rS   r   r-   r9   rˆ  rp   r_   r:   rB   rË  rÌ  )rg   r~   rÉ   ru   r´  r¹  Úfamily_dropdown_typesr  r%  r¿   rh   r$  Údropdown_base_types_choicesr»  Úmodel_finetunes_visibler×  s   ` `            @r%   Úchange_model_familyrå  Ý  s¾  øøø€ Ý6°tÕ=TÐUYÐ[`Ñ=aÔ=aÑbÔb€NØÔ-Ð.BÔCÀAÔFÐØUÐUÐUÐUÀnÐUÑUÔU€Oð Kð  Kð  Kð  Kð  Kð  Kõ  DGð  HVð  Xgñ  Dhô  Dhð  Kñ  Kô  KÐÝÐ.°N°NÐCÑCÔCÐØFÐFÐ5EÐFÑFÔFÐÝ6TÐUYÐ[pÑ6qÔ6qÑ3ÐÐ3Ø!ŸIšIÐ&=¸rÑBÔBÐØ&×*Ò*Ð+?ÀÑDÔD€JÝ
ˆ:�„˜"ÒÐ 
Ð2\Ð2\ÐK[Ð2\Ñ2\Ô2\Ð \Ð \Ø% aÔ(¨Ô+ˆ
àÔ"ð fØ ×6Ò6°zÑBÔBÐØcÐcÐcÐcÐRbÐcÑcÔcÐÝ6MÐN^Ñ6_Ô6_Ñ3Ð# ^Ý,NÈtÐUcÐduÔUvÑ,wÔ,wˆÐ(Ñ)Ý@ÀÐPaÔAbÐduÑvÔvÐÝ&KÐLgð  jFñ  'Gô  'GÐ#Ý"%Ð&6Ñ"7Ô"7¸!Ò";ÐÐà ×4Ò4°ZÑ@Ô@ÐØ"&ÐÝ&*Ð+mÐ+mÐ+mÐ+mÐ\lÐ+mÑ+mÔ+mÑ&nÔ&nÐ#Ý@ÐAQÐSdÑeÔeÐåŒ;Ð:ÐBSÐ`wÐ[~Ð[\Ð[\Ð}~ÐÑÔõ  BDô  BMð  Vfð  nxð  BYð  BZñ  BZô  BZð  Zð  Zr'   c                 óâ  ‡ ‡‡‡— ‰ j         st          j        ¦   «         S t          ‰ t	          ‰ |¦  «        ¦  «        }‰ j        ‰         d         Šˆˆˆ ˆfd„|D ¦   «         }t          |d„ ¬¦  «        }t          |¦  «        \  }}d„ |D ¦   «         }t          ‰ |¦  «        \  }	}t          ‰ |‰         ¦  «        |‰<   t          |‰         |	¦  «        }t          |¦  «        dk    }
|                     di ¦  «        }|                     ‰d¦  «        }t          |¦  «        dk    s|d„ |D ¦   «         vr|d	         d         }t          j        |
rd
nd¬¦  «        t          j        |||
¬¦  «        fS )Nr   c                 óÄ   •— g | ]\}‰                      |¦  «        ‰k    ¯‰                     |d ¬¦  «        ‰k    ¯6t          ‰‰                     |¦  «        ¦  «        |‰f‘Œ]S r™   )r9   r;   rN   r<   )r‘   rh   r×  rÉ   rg   Úmodel_base_type_choices     €€€€r%   r“   z+change_model_base_types.<locals>.<listcomp>   sä   ø€ ð  rð  rð  rð  FPð  fj÷  f@ò  f@ð  AKñ  fLô  fLð  Pfò  ffð  ffð  ko÷  k@ò  k@ð  AKð  TXð  k@ñ  kYô  kYð  ]qò  kqð  kq�Ð&9¸4×;NÒ;NÈzÑ;ZÔ;ZÑ[Ô[Ð]gÐið  Að  kqð  kqð  kqr'   c                 ó   — | d         S rr   rG   rk  s    r%   r»   z)change_model_base_types.<locals>.<lambda>  rÙ  r'   r¼   c                 ó   — g | ]
}|d          ‘ŒS r¤  rG   rÛ  s     r%   r“   z+change_model_base_types.<locals>.<listcomp>  s   € ÐDÐDÐD¨˜6 !œ9ÐDÐDÐDr'   Úlast_model_per_typerP   c                 ó   — g | ]
}|d          ‘ŒS r¤  rG   rÛ  s     r%   r“   z+change_model_base_types.<locals>.<listcomp>
  rÝ  r'   r   rÆ  rÇ  )rÂ  rá  )r-   rË  Úupdaterª   r   r.   rÀ   rˆ  r)  rp   r_   r   rS   rÌ  )rg   r~   rÉ   rè  ru   r¹  r;  r»  Úbase_dropdown_typesr  rä  rë  rh   r×  s   ` ``         @r%   Úchange_model_base_typesrï  û  sà  øøøø€ ØÔ&ð ÝŒy‰{Œ{ÐÝ6°tÕ=TÐUYÐ[`Ñ=aÔ=aÑbÔb€NØÔ-Ð.BÔCÀAÔFÐð rð  rð  rð  rð  rð  rð  rð  Tbð  rñ  rô  rÐÝÐ.°N°NÐCÑCÔCÐÝ/Ð0@ÑAÔAÑ€A€~ØDÐDÐ3CÐDÑDÔDÐÝ9¸$Ð@SÑTÔTÑÐ�qÝ-OÐPTÐVdÐe{ÔV|Ñ-}Ô-}€NÐ)Ñ*Ý<¸^ÐLbÔ=cÐevÑwÔwÐÝ!Ð"2Ñ3Ô3°aÒ7ÐØŸ)š)Ð$9¸2Ñ>Ô>ÐØ$×(Ò(Ð)?ÀÑDÔD€JÝ
ˆ:�„˜"ÒÐ 
Ð2\Ð2\ÐK[Ð2\Ñ2\Ô2\Ð \Ð \Ø% aÔ(¨Ô+ˆ
ÝŒ9Ð 7Ð>˜1˜1¸QÐ?Ñ?Ô?ÅÄÐUeÐmwð  BYð  BZñ  BZô  BZð  Zð  Zr'   )NNrI   )T)=rc   r   Úcollectionsr   Údataclassesr   ÚgradiorË  rZ   r  r  rR   r}   rx   r•   r¯   r®   ry   r�   r   r   r&   r)   rN   rW   r_   rj   rp   rv   r{   r   rƒ   r‰   rŒ   r¤   r§   rª   r¬   r°   r²   rµ   rÃ   rÆ   rÊ   rÛ   rÝ   ré   rí   rù   rý   r  r  r  r)  r+  rˆ  r›  r½  rÓ  rå  rï  rG   r'   r%   ú<module>ró     sÅ  ðØ 	€	€	€	Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð ð Ð ØÐ ØÐ à˜xØ Ø˜|ðÐ ð
 "7Ð ØÐ Ø#Ð Ø#Ð Ø#Ð Ø/Ð1JÐLeð  hAð  BÐ Ø*HÐ 'ØÐ ØÐ ð@ð @ð @ð ð%ð %ð %ð %ð %ñ %ô %ñ „ð%ð0ð ð ð=ð =ð =ð	ð 	ð 	ðmð mð mð

ð 
ð 
ð/ð /ð /ð]ð ]ð ]ð
#ð #ð #ð #ð	Vð 	Vð 	Vð 	Vðð ð ðð ð ðð ð ð ð*Lð Lð Lð
^ð ^ð ^ð ^ð(ð (ð (ð
	%ð 	%ð 	%ð]ð ]ð ]ð>ð >ð >ðgð gð gð*Sð Sð Sð SðCð Cð Cð Cðð ð ð(&ð &ð &ðgð gð gð gð )ð )ð )ðð ð ð6ð ð ð$ð $ð $ðN0ð 0ð 0ðf,%ð ,%ð ,%ð^;ð ;ð ;ð ;ð8Cð Cð Cð CðC'ð C'ð C'ðLð ð ð ð>Að Að Að Að0Bð Bð Bð Bð.Zð Zð Zð<Zð Zð Zð Zð Zr'   