+
    TV-jw!  ã                   ól  € ^ RI t ^ RIHt ^ RIHtHtHt ^ RIHt	 ^ RI
Ht ^RIHt ^RIHtHt ^RIHt ^RIHt ] ! R R	]4      4       t ! R
 R]P,                  4      t ! R R]P,                  4      t ! R R]P,                  4      t ! R R]P,                  4      t ! R R]P,                  4      tR# )é    N)Ú	dataclass)ÚOptionalÚTupleÚUnion)Úswiglu)ÚBaseModelArgsÚcreate_ssm_mask)ÚArraysCache)Ú
ssm_updatec                   ó:   a € ] tR t^t o RtRtR tV 3R ltRtV t	R# )Ú	ModelArgsNi  c                óÂ   € V P                   R 8X  d-   \        P                  ! V P                  ^,          4      V n         V P                  f   V P
                  V n        R# R# )ÚautoN)Útime_step_rankÚmathÚceilÚhidden_sizeÚssm_state_sizeÚ
state_size©Úselfs   &Úe/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/mamba2.pyÚ__post_init__ÚModelArgs.__post_init__%   sI   € Ø×Ñ &Ô(Ü"&§)¢)¨D×,<Ñ,<¸rÕ,AÓ"BˆDÔØ×ÑÒ&Ø"&§/¡/ˆDÖñ 'ó    c                ó.  <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[S[3,          ;R&   S[S[S[ 3,          ;R&   S[S[,          ;R&   S[;R&   # )é   Ú
model_typeÚ	num_headsÚhead_dimÚ
vocab_sizer   Úintermediate_sizer   Únum_hidden_layersÚlayer_norm_epsilonÚconv_kernelÚn_groupsÚuse_biasÚuse_conv_biasÚtie_word_embeddingsÚtime_step_limitr   r   Úmax_position_embeddings)ÚstrÚintÚfloatÚboolr   r   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   sû   ø‡ ‚ á�Oñ ñ �Nñ ñ �Mñ	 ñ
 �Oñ ñ Ññ ñ Ññ ñ �Oñ ñ Ññ ñ Ññ ñ Ññ ñ �Mñ ñ �Nñ ñ Ññ ñ Ññ ñ  ™5¡%˜<Õ(Ñ(ñ! ñ" ™#™s˜(•OÑ#ñ# ñ$ ™S•MÑ(ñ% ñ& !Ñ'ò' r   )r   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r+   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r1   s   @r   r   r      s   ø‡ € ð$ %)€NØ#'Ðò2÷+ ƒ r   r   c                   óX   a a€ ] tR t^,t oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )ÚMambaRMSNormGatedc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r   Úeps)r-   r.   )r0   r1   s   "€r   r2   ÚMambaRMSNormGated.__annotate__-   s   ø€ ÷ +ñ +¡Cð +©eñ +r   c                óf   <€ \         SV `  4        W n        \        P                  ! V4      V n        R # ©N)ÚsuperÚ__init__r>   ÚmxÚonesÚweight)r   r   r>   Ú	__class__s   &&&€r   rC   ÚMambaRMSNormGated.__init__-   s#   ø€ Ü‰ÑÔØŒÜ—g’g˜kÓ*ˆŽr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Úhidden_statesÚgateÚreturn)rD   Úarray)r0   r1   s   "€r   r2   r?   2   s3   ø€ ÷ Fñ F¡b§h¡hð F±b·h±hð FÉ"Ï(É(ñ Fr   c                óˆ   € Ve   \        W!4      p\        P                  P                  WP                  V P
                  4      # rA   )r   rD   ÚfastÚrms_normrF   r>   )r   rJ   rK   s   &&&r   Ú__call__ÚMambaRMSNormGated.__call__2   s1   € ØÒÜ" 4Ó7ˆMÜ�w‰w×Ñ ¯{©{¸D¿H¹HÓEÐEr   )r>   rF   )g�íµ ÷Æ°>rA   ©	r4   r5   r6   r7   rC   rQ   r9   r:   Ú__classcell__©rG   r1   s   @@r   r<   r<   ,   s!   ù‡ € ÷+õ +÷
F÷ Fò Fr   r<   c                   óx   a a€ ] tR t^8t oV3R lV 3R lltV3R lR ltV3R lR ltR
V3R lR lltR	tVt	V ;t
# )ÚMamba2Blockc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   ÚargsÚ	layer_idx©r   r-   )r0   r1   s   "€r   r2   ÚMamba2Block.__annotate__9   s   ø€ ÷ &
ñ &
™Yð &
±3ñ &
r   c           	     ó¼  <€ \         SV `  4        W n        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        VP                  VP                  ,          V n	        VP                  V n
        VP                  V n        VP                  V n        VP                  V n        V P                  V P                  ,          V n        VP                  V n        V P                  ^V P                  ,          V P
                  ,          ,           V n        \         P"                  ! V P                  V P                  VP                  ^ V P                  VP                  R7      V n        V P                  V P                  ,           V P                  ,           p\         P&                  ! V P                  W1P                  R7      V n        \*        P,                  ! V P                  4      V n        \*        P0                  ! \*        P2                  ! ^V P                  ^,           \*        P4                  R7      4      V n        \*        P,                  ! V P                  4      V n        \;        V P                  VP<                  R7      V n        \         P&                  ! V P                  V P                  VP                  R7      V n         R# )r   )Úin_channelsÚout_channelsÚkernel_sizeÚpaddingÚgroupsÚbias©rd   ©Údtype©r>   N)!rB   rC   r[   r   r   r   r%   Úconv_kernel_sizer    r"   r(   r&   r*   Úheads_per_groupr'   Úconv_dimÚnnÚConv1dÚconv1dÚLinearÚin_projrD   rE   Údt_biasÚlogÚarangeÚfloat32ÚA_logÚDr<   r$   ÚnormÚout_proj)r   rZ   r[   Úprojection_sizerG   s   &&& €r   rC   ÚMamba2Block.__init__9   sâ  ø€ Ü‰ÑÔØ"ŒØŸ™ˆŒØ×+Ñ+ˆÔØ"×1Ñ1ˆÔØ $× 0Ñ 0ˆÔØ!%§¡°$·-±-Õ!?ˆÔØ!×/Ñ/ˆÔØŸ™ˆŒØŸ™ˆŒØ#×3Ñ3ˆÔØ#Ÿ~™~°·±Õ>ˆÔØŸ™ˆŒà×.Ñ.°°T·]±]Õ1BÀT×EXÑEXÕ1XÕXˆŒä—i’iØŸ™ØŸ™Ø×(Ñ(ØØ—=‘=Ø×#Ñ#ô
ˆŒð ×0Ñ0°4·=±=Õ@À4Ç>Á>ÕQˆÜ—y’y ×!1Ñ!1°?ÏÉÔWˆŒä—w’w˜tŸ~™~Ó.ˆŒÜ—V’VœBŸIšI a¨¯©¸!Õ);Ä2Ç:Á:ÔNÓOˆŒ
Ü—’˜Ÿ™Ó(ˆŒä%Ø×"Ñ"¨×(?Ñ(?ô
ˆŒ	ô Ÿ	š	Ø×"Ñ" D×$4Ñ$4¸4¿=¹=ô
ˆŽr   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[ P                  ,          RS[ P                  /# )r   Ú
conv_inputÚcacheÚmaskrL   ©rD   rM   r   r
   )r0   r1   s   "€r   r2   r]   a   sI   ø€ ÷  $ñ  $á—H‘Hð $ñ ™Õ$ð $ñ ‘r—x‘xÕ ð	 $ñ
 
�‰ñ $r   c                ód  € Ve    \         P                  ! VR,          V^ 4      pVEe6   V^ ,          fS   \         P                  ! VP                  ^ ,          V P                  ^,
          V P
                  3VP                  R7      pM	V^ ,          p\         P                  ! WA.^R7      pV P                  ^,
          pVP                  eƒ   VP                  ^,          p\         P                  ! VP                  ^ Wv,
          4      pVR,          \         P                  ! V4      ,           R,          p	\         P                  ! WY^R7      V^ &   M@VRV) R 1R3,          V^ &   M-\         P                  ! VRV P                  ^,
          ^ 3R.4      pV P                  V4      p
\        P                  ! V
4      # )Nrf   ©ÚaxisºNNN).N)rƒ   N)r   r   )rD   ÚwhereÚzerosÚshaperi   rk   rg   ÚconcatenateÚlengthsÚcliprs   Útake_along_axisÚpadrn   rl   Úsilu)r   r|   r}   r~   Ú
conv_stateÚpadded_inputÚn_keepÚtÚendsÚ	positionsÚconv_outputs   &&&&       r   Ú_convÚMamba2Block._conva   s^  € ð ÒÜŸš $ y¥/°:¸qÓAˆJàÓØ�Q�xÒÜŸXšXØ×%Ñ% aÕ(¨$×*?Ñ*?À!Õ*CÀTÇ]Á]ÐSØ$×*Ñ*ô‘
ð
 # 1�X�
ÜŸ>š>¨:Ð*BÈÔKˆLØ×*Ñ*¨QÕ.ˆFØ�}‰}Ò(Ø ×&Ñ& qÕ)�Ü—w’w˜uŸ}™}¨a°µÓ<�Ø! '�]¬R¯YªY°vÓ->Õ>À	ÕJ�	Ü×-Ò-¨lÈAÔN��a’à'¨¨F¨7©8°Q¨Õ7��a’äŸ6š6Ø˜V d×&;Ñ&;¸aÕ&?ÀÐ%CÀVÐLóˆLð —k‘k ,Ó/ˆÜ�wŠw�{Ó#Ð#r   c                óÜ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  RS[S[,          RS[S[ P                  ,          RS[ P                  /# )r   rJ   ÚBÚCÚdtr}   r~   rL   r   )r0   r1   s   "€r   r2   r]   ƒ   s|   ø€ ÷ #Fñ #Fá—x‘xð#Fñ �8‰8ð#Fñ �8‰8ð	#Fñ
 �H‰Hð#Fñ ™Õ$ð#Fñ ‘r—x‘xÕ ð#Fñ 
�‰ñ#Fr   c                ó  € VP                   w  rxp	VP                  WxV P                  V P                  4      pVP                  WxV P                  V P
                  4      pVP                  WxV P                  V P
                  4      pV'       d   V^,          p
VP                  pMRRrº\        VV P                  VVV P                  VV P                  V
V P                  VV4      w  rÊV'       d   W¥^&   VP                  WxV P                  4      # )é   N)r†   Úreshaper   r    r&   r   rˆ   r   ru   rv   rq   r*   r"   )r   rJ   r—   r˜   r™   r}   r~   Ú
batch_sizeÚseq_lenÚ_Ústaterˆ   Úys   &&&&&&&      r   Ú_ssmÚMamba2Block._ssmƒ   së   € ð "/×!4Ñ!4Ñˆ
˜QØ%×-Ñ-Ø §¡°·±ó
ˆð �I‰I�j¨4¯=©=¸$×:MÑ:MÓNˆØ�I‰I�j¨4¯=©=¸$×:MÑ:MÓNˆßØ˜!•HˆEØ—m‘m‰Gà! 4�7ÜØØ�J‰JØØØ�F‰FØØ�L‰LØØ× Ñ ØØó
‰ˆ÷ Ø�!‰HØ�y‰y˜¨d×.DÑ.DÓEÐEr   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# )r   rJ   r~   r}   rL   r   )r0   r1   s   "€r   r2   r]   ¨   sI   ø€ ÷  ñ  á—x‘xð ñ ‘r—x‘xÕ ð ñ ™Õ$ð	 ñ
 
�‰ñ r   c           	     ó6  € V P                  V4      p\        P                  ! VV P                  V P                  V P                  ,           .RR7      w  rVpV P                  WcV4      p\        P                  ! VV P                  V P                  V P                  V P                  ,          ,           .RR7      w  rp
V P                  WW§W2R7      pV'       d#   VP                  VP                  ^,          4       V P                  Wµ4      pV P                  V4      # )r›   r�   )r~   éÿÿÿÿ)rp   rD   Úsplitr"   rk   r”   r&   r   r¢   Úadvancer†   rw   rx   )r   rJ   r~   r}   Ú	projectedrK   r|   r™   r“   r—   r˜   r¡   s   &&&&        r   rQ   ÚMamba2Block.__call__¨   sê   € ð —L‘L Ó/ˆ	Ü!ŸxšxØØ×#Ñ# T×%;Ñ%;¸d¿m¹mÕ%KÐLØô 
Ñˆ˜"ð
 —j‘j °DÓ9ˆÜ ŸhšhØà×&Ñ&Ø×&Ñ&¨¯©¸×9LÑ9LÕ)LÕLðð ô
Ñˆ˜!ð �I‰I�m¨¨uˆIÓ@ˆßØ�M‰M˜!Ÿ'™' !�*Ô%Ø�I‰I�aÓˆØ�}‰}˜QÓÐr   )ru   rv   rn   rk   ri   rq   r    rj   r   rp   r"   r[   r&   rw   r   rx   r   r*   r'   r(   rA   )r4   r5   r6   r7   rC   r”   r¢   rQ   r9   r:   rT   rU   s   @@r   rW   rW   8   s7   ù‡ € ÷&
ó &
÷P $ð  $÷D#Fð #F÷J ÷  ò  r   rW   c                   óT   a a€ ] tR t^Ät oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚResidualBlockc                ó&   <€ V ^8„  d   QhRS[ RS[/# rY   r\   )r0   r1   s   "€r   r2   ÚResidualBlock.__annotate__Å   s   ø€ ÷ 1ñ 1™Yð 1±3ñ 1r   c                óŽ   <€ \         SV `  4        \        W4      V n        \        P
                  ! VP                  4      V n        R # rA   )rB   rC   rW   Úmixerrl   ÚRMSNormr   rw   )r   rZ   r[   rG   s   &&&€r   rC   ÚResidualBlock.__init__Å   s0   ø€ Ü‰ÑÔÜ  Ó1ˆŒ
Ü—J’J˜t×/Ñ/Ó0ˆŽ	r   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# )r   Úxr~   r}   rL   r   )r0   r1   s   "€r   r2   r®   Ê   sC   ø€ ÷ ñ Ù—‘ðÙ!)©"¯(©(Õ!3ðÙ<DÁ[Õ<Qðá	�‰ñr   c                óT   € V P                  V P                  V4      W#4      pWA,           # rA   ©r°   rw   )r   r´   r~   r}   Úoutputs   &&&& r   rQ   ÚResidualBlock.__call__Ê   s$   € ð —‘˜DŸI™I a›L¨$Ó6ˆØ�zÐr   r¶   rA   rS   rU   s   @@r   r¬   r¬   Ä   s   ù‡ € ÷1ó 1÷
÷ ò r   r¬   c                   óT   a a€ ] tR t^Ñt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚMamba2c                ó    <€ V ^8„  d   QhRS[ /# ©r   rZ   ©r   )r0   r1   s   "€r   r2   ÚMamba2.__annotate__Ò   s   ø€ ÷ Pñ P™Yñ Pr   c                ób  <€ \         SV `  4        Wn        \        P                  ! VP
                  VP                  4      V n        \        VP                  4       Uu. uF  p\        W4      NK  	  upV n        \        P                  ! VP                  VP                  R 7      V n        R# u upi )rh   N)rB   rC   rZ   rl   Ú	Embeddingr!   r   Ú
embeddingsÚranger#   r¬   Úlayersr±   r$   Únorm_f)r   rZ   ÚirG   s   && €r   rC   ÚMamba2.__init__Ò   s{   ø€ Ü‰ÑÔØŒ	ÜŸ,š, t§¡¸×8HÑ8HÓIˆŒÜ7<¸T×=SÑ=SÔ7TÓUÑ7T°!”} TÖ-Ñ7TÑUˆŒÜ—j’j ×!1Ñ!1°t×7NÑ7NÔOˆŽùò Vs   ÁB,c                ót   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          RS[ P                  /# )r   r´   r}   rL   ©rD   rM   r   Úlistr
   )r0   r1   s   "€r   r2   r¾   Ù   s7   ø€ ÷ #ñ #Ù—‘ð#Ù"*©4±Õ+<Õ"=ð#á	�‰ñ#r   c                óü   € V P                  V4      pVf   R .\        V P                  4      ,          p\        W2^ ,          4      p\	        V P                  V4       F  w  rVV! W4V4      pK  	  V P                  V4      # rA   )rÁ   ÚlenrÃ   r	   ÚziprÄ   )r   r´   r}   Úhiddenr~   ÚlayerÚcs   &&&    r   rQ   ÚMamba2.__call__Ù   sn   € ð —‘ Ó#ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä˜v¨Q¥xÓ0ˆÜ˜DŸK™K¨Ö/‰HˆEÙ˜6¨Ó+ŠFñ 0ð �{‰{˜6Ó"Ð"r   )rZ   rÁ   rÃ   rÄ   rA   rS   rU   s   @@r   rº   rº   Ñ   s    ù‡ € ÷Pó P÷#÷ #ò #r   rº   c                   ó€   a a€ ] tR t^èt oV3R lV 3R lltR
V3R lR lltRV3R lR llt]R 4       tR t	R	t
VtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r¼   r½   )r0   r1   s   "€r   r2   ÚModel.__annotate__é   s   ø€ ÷ Tñ T™Yñ Tr   c                óþ   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        VP                  '       g5   \        P                  ! VP                  VP                  R R7      V n        R# R# )Fre   N)rB   rC   rZ   r   rº   Úbackboner)   rl   ro   r   r!   Úlm_head)r   rZ   rG   s   &&€r   rC   ÚModel.__init__é   sX   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ˜t›ˆŒà×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŽLñ (r   c                ót   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          RS[ P                  /# )r   Úinputsr}   rL   rÈ   )r0   r1   s   "€r   r2   rÔ   ò   s7   ø€ ÷ 	ñ 	Ù—h‘hð	Ù'/±±[Õ0AÕ'Bð	á	�‰ñ	r   c                óÐ   € V P                  W4      pV P                  P                  '       d(   V P                   P                  P	                  V4      pV# V P                  V4      pV# rA   )rÖ   rZ   r)   rÁ   Ú	as_linearr×   )r   rÚ   r}   rÍ   Úlogitss   &&&  r   rQ   ÚModel.__call__ò   sX   € ð —‘˜vÓ-ˆà�9‰9×(×(Ð(Ø—]‘]×-Ñ-×7Ñ7¸Ó?ˆFð ˆð —\‘\ &Ó)ˆFØˆr   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r   r�   rL   )r-   rÉ   r
   )r0   r1   s   "€r   r2   rÔ   ý   s$   ø€ ÷ Qñ Q¡Sð Q±±kÕ1Bñ Qr   c                ó~   € \        V P                  P                  4       Uu. uF  p\        ^R7      NK  	  up# u upi )r   )Úsize)rÂ   rZ   r#   r
   )r   r�   rŸ   s   && r   Ú
make_cacheÚModel.make_cacheý   s0   € Ü-2°4·9±9×3NÑ3NÔ-OÓPÑ-O¨” ×#Ñ-OÑPÐPùÒPs   ¢:c                ó.   € V P                   P                  # rA   )rÖ   rÃ   r   s   &r   rÃ   ÚModel.layers   s   € à�}‰}×#Ñ#Ð#r   c                ó¦   € VP                  4        F<  w  r#R V9   g   K  VP                  R,          ^8w  g   K(  VP                  ^^4      W&   K>  	  V# )zconv1d.weightr¦   )Úitemsr†   Úmoveaxis)r   ÚweightsÚkÚvs   &&  r   ÚsanitizeÚModel.sanitize  sD   € Ø—M‘M–O‰DˆAØ !Ö#¨¯©°­°qÖ(8ØŸZ™Z¨¨1Ó-�“
ñ $ð ˆr   )rZ   rÖ   r×   r   rA   )r›   )r4   r5   r6   r7   rC   rQ   râ   ÚpropertyrÃ   rì   r9   r:   rT   rU   s   @@r   rÒ   rÒ   è   sE   ù‡ € ÷Tó T÷	ò 	÷Qò Qð ñ$ó ð$÷ò r   rÒ   )r   Údataclassesr   Útypingr   r   r   Úmlx.coreÚcorerD   Úmlx.nnrl   Úactivationsr   Úbaser   r	   r}   r
   Ússmr   r   ÚModuler<   rW   r¬   rº   rÒ   © r   r   Ú<module>rù      s•   ðó Ý !ß )Ñ )å Ý å ß 0Ý Ý ð ô2�ó 2ó ð2ô6	F˜Ÿ	™	ô 	FôI �"—)‘)ô I ôX
�B—I‘Iô 
ô#ˆR�Y‰Yô #ô. ˆB�I‰Iö  r   