+
    "Ý³jX5  ã                   ó’  a € RQ t-0 t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	H
t
Ht ^ RIHtHtHt ^ RIt]! ]4      t/ t] ^ k / t] ^k R R ltR	 R
 lt]! R4      R R l4       t]! R4      RRR R ll4       tRRRR/R R lltRRRR/R R lltRRRRRRRRRRRRRRRRR R!/	t]! R"4      RRR# R$ ll4       t]! R%4      RRR& R' ll4       t]! R(4      RRR) R* ll4       t]! R+4      RRR, R- ll4       t]! R.4      RRR/ R0 ll4       t ]! R14      RRR2 R3 ll4       t!]! R44      RRR5 R6 ll4       t"]! R!4      RRR7 R8 ll4       t#]! R94      RRR: R; ll4       t$RRRR/R< R= llt%]! R>4      RRR? R@ ll4       t&]! RA4      RRRB RC ll4       t']! RD4      RRRE RF ll4       t(]! RG4      RRRH RI ll4       t)]! RJ4      RRRK RL ll4       t*RM RN lt+RRRO RP llt,R# )Sé    ©ÚCallable)ÚLogBar)ÚDEBUG_ON)Úpatch_dbrx_expertsÚpatch_longcat_flash_expertsÚpatch_parallel_expertsÚpatch_split_gate_up_mlp)Úcompile_module_name_filterÚis_within_max_layersÚmatches_module_name_filterNc                ó$   € V ^8„  d   QhR\         /# ©é   Ú
model_type©Ústr)Úformats   "Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/defuser/modeling/model_patches.pyÚ__annotate__r      s   € ÷ ñ ¬3ñ ó    c                ó   a € R V 3R llpV# )zDRegister a one-time class patch that runs before model construction.c                ó$   € V ^8„  d   QhR\         /# ©r   Úfuncr   )r   s   "r   r   Ú0register_model_class_patch.<locals>.__annotate__   ó   € ÷ ñ œñ r   c                 ó   <€ V \         S&   V # ©N)Ú_MODEL_CLASS_PATCH_REGISTRY©r   r   s   &€r   Ú	decoratorÚ-register_model_class_patch.<locals>.decorator   s   ø€ Ø26Ô# JÑ/Øˆr   © ©r   r"   s   f r   Úregister_model_class_patchr&      ó   ø€ ÷ð ð Ðr   c                ó$   € V ^8„  d   QhR\         /# r   r   )r   s   "r   r   r   $   s   € ÷ ñ ¤Sñ r   c                ó   a € R V 3R llpV# )zCRegister a runtime patch that runs on an instantiated model object.c                ó$   € V ^8„  d   QhR\         /# r   r   )r   s   "r   r   Ú*register_model_patch.<locals>.__annotate__&   r   r   c                 ó   <€ V \         S&   V # r   )Ú_MODEL_PATCH_REGISTRYr!   s   &€r   r"   Ú'register_model_patch.<locals>.decorator&   s   ø€ Ø,0Ô˜jÑ)Øˆr   r$   r%   s   f r   Úregister_model_patchr/   $   r'   r   Úqwen3_omni_moec                ó:   € V ^8„  d   QhR\         \        ,          /# ©r   Úreturn©Úlistr   )r   s   "r   r   r   -   s   € ÷ )ñ )¤T¬#¥Yñ )r   c                 ó`   aaa€ ^ RI Hp Hp ^ RIHoHo VP                  oVVV3R lpW!n        . # )zHTeach HF init code how to initialize unfused qwen3-omni thinker experts.)Ú$Qwen3OmniMoeForConditionalGenerationÚQwen3OmniMoePreTrainedModel)Ú*LinearQwen3OmniMoeTalkerTextSparseMoeBlockÚ+LinearQwen3OmniMoeThinkerTextSparseMoeBlockc                 ó  <€  S! W4       R#   \          Edó   p\        TSS34      '       Ed×   T P                  P                  pTP                  p\        TR 4      '       d@   \        P                  P                  P                  TP                  P                  RT4       \        TR4      '       d@   \        P                  P                  P                  TP                  P                  RT4       \        TR4      '       d@   \        P                  P                  P                  TP                  P                  RT4       \        T\        P                  P                  4      '       dÇ   T FÀ  p\        P                  P                  P                  TP                  P                  RT4       \        P                  P                  P                  TP                  P                  RT4       \        P                  P                  P                  TP                  P                  RT4       KÂ  	  \        TR4      '       d@   \        P                  P                  P                  TP                  P                  RT4       \        TR4      '       d   RTP                   n        \        TR4      '       dF   \        P                  P                  P                  TP$                  P                  RT4        Rp?R#  Rp?R# ThRp?ii ; i)	Ú	gate_projg        Úup_projÚ	down_projÚgateÚshared_expertTÚshared_expert_gateN)ÚAttributeErrorÚ
isinstanceÚconfigÚinitializer_rangeÚexpertsÚhasattrÚtorchÚnnÚinitÚnormal_r<   Úweightr=   r>   Ú
ModuleListr?   r@   Ú_is_hf_initializedrA   )	ÚselfÚmoduleÚeÚstdrF   Úexpertr9   r:   Úorig_init_weightss	   &&    €€€r   Úpatched_init_weightsÚ9patch_qwen3_omni_text_class.<locals>.patched_init_weights6   s  ø€ ð	Ù˜dÖ+øÜõ 	ä˜&Ð#NÐPzÐ"{×|Ó|Ø—k‘k×3Ñ3�Ø Ÿ.™.�ä˜7 K×0Ò0Ü—H‘H—M‘M×)Ñ)¨'×*;Ñ*;×*BÑ*BÀCÈÔMÜ˜7 I×.Ò.Ü—H‘H—M‘M×)Ñ)¨'¯/©/×*@Ñ*@À#ÀsÔKÜ˜7 K×0Ò0Ü—H‘H—M‘M×)Ñ)¨'×*;Ñ*;×*BÑ*BÀCÈÔMÜ˜g¤u§x¡x×':Ñ':×;Ò;Û")˜ÜŸ™Ÿ™×-Ñ-¨f×.>Ñ.>×.EÑ.EÀsÈCÔPÜŸ™Ÿ™×-Ñ-¨f¯n©n×.CÑ.CÀSÈ#ÔNÜŸ™Ÿ™×-Ñ-¨f×.>Ñ.>×.EÑ.EÀsÈCÖPñ #*ô
 ˜6 6×*Ò*Ü—H‘H—M‘M×)Ñ)¨&¯+©+×*<Ñ*<¸cÀ3ÔGÜ˜6 ?×3Ò3Ø>B�F×(Ñ(Ô;Ü˜6Ð#7×8Ò8Ü—H‘H—M‘M×)Ñ)¨&×*CÑ*C×*JÑ*JÈCÐQT×UÒUõ 9ð �ûð3	ús   ƒ �L™KLÌLÌL)Ú:transformers.models.qwen3_omni_moe.modeling_qwen3_omni_moer7   r8   Ú+defuser.modeling.unfused_moe.qwen3_omni_moer9   r:   Ú_init_weights)r7   r8   rU   r9   r:   rT   s      @@@r   Úpatch_qwen3_omni_text_classrZ   ,   s/   ú€ ÷ M÷ð 4×AÑAÐ÷ð< 1EÔ-à€Ir   c                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# ©r   Ú
max_layersNr3   ©Úintr5   r   )r   s   "r   r   r   Z   s%   € ÷ ñ ´S¸4µZð Ô^bÔcfÕ^gñ r   c                óf  a€ \        V 4      p\        VRR4      P                  R4      '       g   . # . p\        VRR4      oSe<   \        SRR4      '       g)   RR/V3R	 llpR
Vn        WSn        VP                  R4       RVP                  9  d"   R pR
Vn        Wcn        VP                  R4       V# )zMRestore text-only ``forward`` and ``generate`` behavior after class swapping.Ú
__module__Ú z#transformers.models.qwen3_omni_moe.ÚgenerateNÚ _defuser_qwen3_omni_text_runtimeFÚreturn_audioc                ó,   <€ Vf   RpS! V .VO5RV/VB # )NFre   r$   )rO   re   ÚargsÚkwargsÚoriginal_generates   &$*,€r   rc   Ú/patch_qwen3_omni_text_runtime.<locals>.generated   s(   ø€ ØÒ#Ø$�Ù$ TÐV¨DÒV¸|ÐVÈvÑVÐVr   TÚforwardc                 ó&   € V P                   ! V/ VB # r   )Úthinker)rO   rg   rh   s   &*,r   rk   Ú.patch_qwen3_omni_text_runtime.<locals>.forwardn   s   € Ø—<’< Ð0¨Ñ0Ð0r   )ÚtypeÚgetattrÚ
startswithrd   rc   ÚappendÚ__dict__rk   )Úmodelr]   Úfilter_rulesÚ	model_clsÚappliedrc   rk   ri   s   &&&    @r   Úpatch_qwen3_omni_text_runtimerx   Y   s·   ø€ ô �U“€IÜ�9˜l¨BÓ/×:Ñ:Ð;`×aÒaØˆ	à€GÜ 	¨:°tÓ<ÐØÒ$¬WÐ5FÐHjÐlq×-rÒ-rð	W¨t÷ 	Wð
 59ˆÔ1Ø%ÔØ�‰�zÔ"à˜	×*Ñ*Ô*ò	1ð 48ˆÔ0Ø#ÔØ�‰�yÔ!à€Nr   r]   ru   c                ó‚   € V ^8„  d   QhR\         \        \        3,          R\        R,          R\        \        ,          /# ©r   Úpatchersr]   Nr3   )Údictr   r   r_   r5   )r   s   "r   r   r   x   s9   € ÷ ñ ä”3œ�=Õ!ðô �d•
ð	ô 
Œ#…Yñr   c                ó~  € \        V4      p. p\        V P                  4       4       F’  w  rg\        Wb4      '       g   K  \	        Wd4      '       g   K+  VP
                  P                   R VP
                  P                   2pVP                  V4      p	V	f   Kq  V	! V4      '       g   K�  VP                  V4       K”  	  V# )Ú.)
r   r5   Únamed_modulesr   r   Ú	__class__ra   Ú__name__Úgetrr   )
rt   r{   r]   ru   Úmodule_name_filterrw   ÚnamerP   Ú
class_pathÚpatchers
   &&$$      r   Ú_patch_modules_by_classr‡   x   s¦   € ô 4°LÓAÐØ€GÜ˜U×0Ñ0Ó2Ö3‰ˆÜ# D×5Ò5ÙÜ)¨$×CÒCÙØ×(Ñ(×3Ñ3Ð4°A°f×6FÑ6F×6OÑ6OÐ5PÐQˆ
Ø—,‘,˜zÓ*ˆØŠ?ÙÙ�6�?Œ?Ø�N‰N˜4Ö ñ 4ð €Nr   c                ó‚   € V ^8„  d   QhR\         \        \        3,          R\        R,          R\        \        ,          /# rz   )r|   r   r_   r5   )r   s   "r   r   r   �   s8   € ÷ ñ ä”3œ�8�nðô �d•
ð	ô 
Œ#…Yñr   c          
      óx   € \        T VP                  4        UUu/ uF  w  rEWE3R  lbK  	  uppVVR7      # u uppi )c                 ó   € \        WR 7      # ))Úvariant)r
   )rP   r‹   s   &&r   Ú<lambda>Ú+_patch_split_gate_up_mlps.<locals>.<lambda>™   s   € Ô9PÐQWÕ9ir   ©r]   ru   )r‡   Úitems)rt   r{   r]   ru   r…   r‹   s   &&$$  r   Ú_patch_split_gate_up_mlpsr�   �   sN   € ô #Øð (0§~¡~Ô'7ô	
á'7Ñ#�
ð ÓiÒiÙ'7ò	
ð Ø!ôð ùó	
s   š6ú+transformers.models.dia.modeling_dia.DiaMLPÚstandardú+transformers.models.glm.modeling_glm.GlmMLPú.transformers.models.glm4.modeling_glm4.Glm4MLPú@transformers.models.glm_image.modeling_glm_image.GlmImageTextMLPú:transformers.models.glm_ocr.modeling_glm_ocr.GlmOcrTextMLPú.transformers.models.phi3.modeling_phi3.Phi3MLPúNtransformers.models.phi4_multimodal.modeling_phi4_multimodal.Phi4MultimodalMLPúStransformers.models.phi4_multimodal.modeling_phi4_multimodal.Phi4MultimodalAudioMLPÚ
phi4_audioú4transformers.models.zamba2.modeling_zamba2.Zamba2MLPÚzamba2Údiac                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   ¯   ó%   € ÷ ñ ¬¨t­ð ÔRVÔWZÕR[ñ r   c                 ó:   € \        V R \        R ,          /VVR7      # )r‘   rŽ   ©r�   Ú_STANDARD_SPLIT_GATE_UP_CLASSES©rt   r]   ru   s   &&&r   Úpatch_dia_runtimer¤   ®   ó1   € ä$ØØ	6Ô8Wð  YFõ  9Gð  	HØØ!ô	ð r   Úglmc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   ¹   rŸ   r   c                 ó:   € \        V R \        R ,          /VVR7      # )r“   rŽ   r¡   r£   s   &&&r   Úpatch_glm_runtimer©   ¸   r¥   r   Úglm4c                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   Ã   ó%   € ÷ ñ ¬#°­*ð ÔSWÔX[ÕS\ñ r   c                 ó:   € \        V R \        R ,          /VVR7      # )r”   rŽ   r¡   r£   s   &&&r   Úpatch_glm4_runtimer®   Â   ó1   € ä$ØØ	9Ô;Zð  \Lõ  <Mð  	NØØ!ô	ð r   Ú	glm_imagec                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   Í   s%   € ÷ ñ ¬s°T­zð ÔX\Ô]`ÕXañ r   c                 ó:   € \        V R \        R ,          /VVR7      # )r•   rŽ   r¡   r£   s   &&&r   Úpatch_glm_image_runtimer³   Ì   s2   € ä$ØØ	KÔMlð  npõ  Nqð  	rØØ!ô	ð r   Úglm_ocrc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   ×   s%   € ÷ ñ ¬S°4­Zð ÔVZÔ[^ÕV_ñ r   c                 ó:   € \        V R \        R ,          /VVR7      # )r–   rŽ   r¡   r£   s   &&&r   Úpatch_glm_ocr_runtimer·   Ö   s2   € ä$ØØ	EÔGfð  hdõ  Heð  	fØØ!ô	ð r   Úphi3c                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   á   r¬   r   c                 ó:   € \        V R \        R ,          /VVR7      # )r—   rŽ   r¡   r£   s   &&&r   Úpatch_phi3_runtimer»   à   r¯   r   Úphi4_multimodalc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   ë   s%   € ÷ ñ ´S¸4µZð Ô^bÔcfÕ^gñ r   c                 óT   € \        V R \        R ,          R\        R,          /VVR7      # )r˜   r™   rŽ   r¡   r£   s   &&&r   Úpatch_phi4_multimodal_runtimer¿   ê   s>   € ä$Øà\Ü/Ødõð bÜ/Øiõð		
ð Ø!ôð r   c                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   þ   ó%   € ÷ ñ ¬C°$­Jð ÔUYÔZ]ÕU^ñ r   c                 ó:   € \        V R \        R ,          /VVR7      # )r›   rŽ   r¡   r£   s   &&&r   Úpatch_zamba2_runtimerÃ   ý   s2   € ä$ØØ	?ÔA`ð  bXõ  BYð  	ZØØ!ô	ð r   Údbrxc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r     r¬   r   c                 ó,   € \        V R \        /VVR7      # )z2transformers.models.dbrx.modeling_dbrx.DbrxExpertsrŽ   )r‡   r   r£   s   &&&r   Úpatch_dbrx_runtimerÇ     s!   € ä"ØØ	=Ô?QÐRØØ!ô	ð r   c                ó`   € V ^8„  d   QhR\         R\        R,          R\        \         ,          /# )r   r…   r]   Nr3   )r   r_   r5   )r   s   "r   r   r     s,   € ÷ ñ ¬sð Ä3ÈÅ:ð ÔlpÔqtÕluñ r   c                ó,   € \        V V\        /VVR 7      # )rŽ   )r‡   r	   )rt   r…   r]   ru   s   &&$$r   Ú_patch_parallel_runtimerÊ     s!   € Ü"ØØ	Ô+Ð,ØØ!ô	ð r   Ú
granitemoec                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r     s%   € ÷ ñ ´°dµ
ð ÔY]Ô^aÕYbñ r   c                 ó    € \        V R VVR7      # )zLtransformers.models.granitemoe.modeling_granitemoe.GraniteMoeParallelExpertsrŽ   ©rÊ   r£   s   &&&r   Úpatch_granitemoe_runtimerÏ     s   € ä"ØØVØØ!ô	ð r   Úgranitemoehybridc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   %  ó%   € ÷ ñ ´c¸Dµjð Ô_cÔdgÕ_hñ r   c                 ó    € \        V R VVR7      # )z^transformers.models.granitemoehybrid.modeling_granitemoehybrid.GraniteMoeHybridParallelExpertsrŽ   rÎ   r£   s   &&&r   Úpatch_granitemoehybrid_runtimerÔ   $  ó   € ä"ØØhØØ!ô	ð r   Úgranitemoesharedc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   /  rÒ   r   c                 ó    € \        V R VVR7      # )z^transformers.models.granitemoeshared.modeling_granitemoeshared.GraniteMoeSharedParallelExpertsrŽ   rÎ   r£   s   &&&r   Úpatch_granitemoeshared_runtimerÙ   .  rÕ   r   Újetmoec                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   9  rÁ   r   c                 ó    € \        V R VVR7      # )z@transformers.models.jetmoe.modeling_jetmoe.JetMoeParallelExpertsrŽ   rÎ   r£   s   &&&r   Úpatch_jetmoe_runtimerÝ   8  s   € ä"ØØJØØ!ô	ð r   Úlongcat_flashc                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   C  s%   € ÷ ñ ´3¸µ:ð Ô\`ÔadÕ\eñ r   c                 ó,   € \        V R \        /VVR7      # )zLtransformers.models.longcat_flash.modeling_longcat_flash.LongcatFlashExpertsrŽ   )r‡   r   r£   s   &&&r   Úpatch_longcat_flash_runtimerá   B  s!   € ä"ØØ	WÔYtÐuØØ!ô	ð r   c                ó:   € V ^8„  d   QhR\         \        ,          /# r2   r4   )r   s   "r   r   r   L  s   € ÷ 	ñ 	¬T´#­Yñ 	r   c                óÆ   € \         P                  V 4      pVf   . # V! 4       pV'       d7   \        '       d+   \        P	                  RV  RRP                  V4       24       V# )z=Run any registered pre-construction patch for ``model_type``.z+Applied model class patches for model_type=ú: ú, )r    r‚   r   ÚloggerÚdebugÚjoin)r   Úpatch_model_classrw   s   &  r   Úapply_model_class_patchesrê   L  sZ   € ä3×7Ñ7¸
ÓCÐØÒ Øˆ	áÓ!€Gß—8“8Ü�‰ÐBÀ:À,ÈbÐQU×QZÑQZÐ[bÓQcÐPdÐeÔfØ€Nr   c                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# r\   r^   )r   s   "r   r   r   X  s%   € ÷ ñ ¬3°­:ð ÔTXÔY\ÕT]ñ r   c                ó   € \        V RR4      p\        VRR4      p\        P                  V4      pVf   . # V! WVR7      pV'       d7   \        '       d+   \        P                  RV RRP                  V4       24       V# )z@Run any registered runtime patch for the instantiated ``model``.rD   Nr   rŽ   z%Applied model patches for model_type=rä   rå   )rp   r-   r‚   r   ræ   rç   rè   )rt   r]   ru   rD   r   Úpatchrw   s   &&&    r   Úapply_model_patchesrî   X  su   € ä�U˜H dÓ+€FÜ˜ ¨tÓ4€JÜ!×%Ñ% jÓ1€EØ‚}Øˆ	á�E¸|ÔL€Gß—8“8Ü�‰Ð<¸Z¸LÈÈ4Ï9É9ÐU\ÓK]ÐJ^Ð_Ô`Ø€Nr   c                ó¬   € V ^8„  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   ^\         9   d   \        \        \        3,          ;R&   # )r   r    r-   )Ú__conditional_annotations__r|   r   r   )r   s   "r   r   r      s>   € × $Ñ $÷" 6Ò 5œT¤#¤x -Õ0Ñ 5ñ# %÷$ 0Ò /”tœC¤˜MÕ*Ñ /ò% %r   )NN).rð   Úcollections.abcr   Úlogbarr   Údefuserr   Ú!defuser.modeling.runtime_defusionr   r   r	   r
   Údefuser.utils.commonr   r   r   rH   r�   ræ   r    r-   r&   r/   rZ   rx   r‡   r�   r¢   r¤   r©   r®   r³   r·   r»   r¿   rÃ   rÇ   rÊ   rÏ   rÔ   rÙ   rÝ   rá   rê   rî   r   )rð   s   @r   Ú<module>rö      sw  øð÷ %Ò $å å ÷ó ÷ nÑ mÛ á	�Ó	€ð 46Ð Ó 5Ø-/Ð Ó /õõñ Ð,Ó-ô)ó .ð)ñX Ð&Ó'öó (ðð<ð "ð	ð
 ÷ð.ð "ð	ð
 ÷ð& 2°:Ø1°:Ø4°jØFÈ
Ø@À*Ø4°jØTÐV`ØYÐ[gØ:¸Hð
#Ð ñ �eÓöó ðñ �eÓöó ðñ �fÓöó ðñ �kÓ"öó #ðñ �iÓ öó !ðñ �fÓöó ðñ Ð'Ó(öó )ðñ$ �hÓöó  ðñ �fÓöó ððÐPTð Ðcg÷ ñ �lÓ#öó $ðñ Ð(Ó)öó *ðñ Ð(Ó)öó *ðñ �hÓöó  ðñ �oÓ&öó 'ðõ	÷ñ r   