+
    TV-j�:  ã                   óú  € ^ RI t ^ RIHt ^ RIHtHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHt ^RIHt ^RIHt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 R lt ! R R]
P.                  4      t ! R R]
P.                  4      t ! R R]
P.                  4      t R# )é    N)Ú	dataclass)ÚAnyÚOptional)ÚBaseModelArgsÚcreate_attention_maskÚcreate_ssm_mask)Úswiglu)ÚArraysCacheÚKVCache)Ú
ssm_updatec                   óx   a € ] tR t^t o RtRt^ tRtRt^ t	^t
^€tRtRtRt^@t^t^@t^tRtRtRtR	tV 3R
 ltRtV tR# )Ú	ModelArgsÚplamo2i   ç�íµ ÷Æ°>Ti   Né   i 4  i }  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[S[S[,          ,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚrms_norm_epsÚtie_word_embeddingsÚnum_attention_headsÚnum_key_value_headsÚhidden_size_per_headÚmax_position_embeddingsÚattention_window_sizeÚfull_attention_idxÚmamba_d_stateÚmamba_d_convÚmamba_num_headsÚ
mamba_stepÚmamba_chunk_sizeÚmamba_enabledÚintermediate_sizeÚ
vocab_size)ÚstrÚintÚfloatÚboolr   Úlist)ÚformatÚ__classdict__s   "€Úe/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/plamo2.pyÚ__annotate__ÚModelArgs.__annotate__   s  ø‡ ‚ áÑñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ñ$ñ ñ Ñ!ñ ñ Ñ ñ ñ Ñ#ñ ñ !Ñ'ñ ñ Ñ%ñ ñ !¡¡c¥Õ+Ñ2ñ ñ Ññ ñ Ññ ñ Ññ ñ  Ññ! ñ" Ññ# ñ$ Ññ% ñ& Ñ"ñ' ñ( Ñò) ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r-   s   @r.   r   r      su   ø‡ € à€JØ€KØÐØ€LØ $ÐØ!ÐØ ÐØ #ÐØ#'ÐØ!%ÐØ.2ÐØ€MØ€LØ€OØ€JØÐØ€MØ"ÐØ€J÷) ƒ r1   r   c                   óT   a a€ ] tR t^(t oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚRMSNormc                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   r   ÚepsÚoffsetÚreturnN)r(   r)   )r,   r-   s   "€r.   r/   ÚRMSNorm.__annotate__)   s3   ø€ ÷ 	ñ 	áð	ñ ð	ñ ð		ð
 
ñ	r1   c                ór   <€ \         SV `  4        \        P                  ! V4      V n        W n        W0n        R # ©N)ÚsuperÚ__init__ÚmxÚzerosÚweightÚvariance_epsilonr>   )Úselfr   r=   r>   Ú	__class__s   &&&&€r.   rD   ÚRMSNorm.__init__)   s+   ø€ ô 	‰ÑÔÜ—h’h˜{Ó+ˆŒØ #ÔØŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úhidden_statesr?   ©rE   Úarray)r,   r-   s   "€r.   r/   r@   4   s#   ø€ ÷ 
ñ 
¡b§h¡hð 
±2·8±8ñ 
r1   c                óŒ   € \         P                  P                  WP                  V P                  ,           V P
                  4      # rB   )rE   ÚfastÚrms_normrG   r>   rH   )rI   rM   s   &&r.   Ú__call__ÚRMSNorm.__call__4   s1   € Ü�w‰w×ÑØŸ;™;¨¯©Õ4°d×6KÑ6Kó
ð 	
r1   )r>   rH   rG   )r   ç      ð?©	r3   r4   r5   r6   rD   rS   r8   r9   Ú__classcell__©rJ   r-   s   @@r.   r;   r;   (   s   ù‡ € ÷	õ 	÷
÷ 
ð 
r1   r;   c                   óx   a a€ ] tR t^:t 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
# )ÚMambac                ó$   <€ V ^8„  d   QhRS[ RR/# ©r   Úconfigr?   N©r   )r,   r-   s   "€r.   r/   ÚMamba.__annotate__;   s   ø€ ÷ (Xñ (X™yð (X¨Tñ (Xr1   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 n        VP                  V n        V P                  V P                  ,          V n        \        P                  ! V P                  ^V P                  ,          RR7      V n        \        P"                  ! V P                  V P                  RV P                  V P                  ^ R7      V n        \'        ^@V P                  ^,          4      V n        \        P                  ! V P                  V P(                  ^V P
                  ,          ,           RR7      V n        \        P                  ! V P(                  V P                  RR7      V n        \.        P0                  ! V P                  3R7      V n        \.        P4                  ! \.        P6                  ! ^V P                  ^,           \.        P8                  R7      4      V n        \.        P<                  ! V P                  4      V n        \.        P<                  ! V P(                  4      V n         \.        P<                  ! V P
                  4      V n!        \.        P<                  ! V P
                  4      V n"        \        P                  ! V P                  V P                  RR7      V n#        R# )r   F©Úbias)Úin_channelsÚout_channelsrb   Úkernel_sizeÚgroupsÚpadding)Úshape©ÚdtypeN)$rC   rD   r]   r   r   Úd_stater    Úconv_kernel_sizer#   Ú
chunk_sizer!   Ú	num_headsr   r%   ÚnnÚLinearÚin_projÚConv1dÚconv1dÚmaxÚdt_dimÚ	bcdt_projÚdt_projrE   rF   Údt_biasÚlogÚarangeÚfloat32ÚA_logÚonesÚDÚdt_norm_weightÚB_norm_weightÚC_norm_weightÚout_proj©rI   r]   rJ   s   &&€r.   rD   ÚMamba.__init__;   sþ  ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ×+Ñ+ˆŒØ &× 3Ñ 3ˆÔØ ×1Ñ1ˆŒØ×/Ñ/ˆŒØ$*×$?Ñ$?ˆÔ!à!%§¡°$×2KÑ2KÕ!KˆÔä—y’yØ×Ñ˜a $×"8Ñ"8Õ8¸uô
ˆŒô —i’iØ×.Ñ.Ø×/Ñ/ØØ×-Ñ-Ø×)Ñ)Øô
ˆŒô ˜"˜d×.Ñ.°"Õ4Ó5ˆŒÜŸšØ×"Ñ"Ø�K‰K˜!˜dŸl™lÕ*Õ*Øô
ˆŒô
 —y’y §¡¨d¯n©nÀ5ÔIˆŒä—x’x t§~¡~Ð&7Ô8ˆŒÜ—V’VœBŸIšI a¨¯©¸!Õ);Ä2Ç:Á:ÔNÓOˆŒ
ä—’˜Ÿ™Ó(ˆŒä Ÿgšg d§k¡kÓ2ˆÔÜŸWšW T§\¡\Ó2ˆÔÜŸWšW T§\¡\Ó2ˆÔäŸ	š	 $×"8Ñ"8¸$×:JÑ:JÐQVÔWˆŽr1   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[ P                  ,          RS[ P                  /# )r   Ú
conv_inputÚcacheÚmaskr?   )rE   rO   r   r
   )r,   r-   s   "€r.   r/   r_   e   sI   ø€ ÷ $$ñ $$á—H‘Hð$$ñ ™Õ$ð$$ñ ‘r—x‘xÕ ð	$$ñ
 
�‰ñ$$r1   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      # )Nri   ©ÚaxisºNNN).N©rŒ   N)r   r   )rE   ÚwhererF   rh   rl   r%   rj   ÚconcatenateÚlengthsÚcliprz   Útake_along_axisÚpadrs   ro   Úsilu)rI   r†   r‡   rˆ   Ú
conv_stateÚpadded_inputÚn_keepÚtÚendsÚ	positionsÚconv_outputs   &&&&       r.   Ú_convÚMamba._conve   sf  € ð ÒÜŸš $ y¥/°:¸qÓAˆJàÓØ�Q�xÒÜŸXšXà"×(Ñ(¨Õ+Ø×-Ñ-°Õ1Ø×.Ñ.ðð
 %×*Ñ*ô‘
ð # 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�{Ó#Ð#r1   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   ÚxÚBÚCÚdtr‡   rˆ   r?   )rE   rO   r   r   )r,   r-   s   "€r.   r/   r_   ‹   s{   ø€ ÷ "Fñ "Fá�8‰8ð"Fñ �8‰8ð"Fñ �8‰8ð	"Fñ
 �H‰Hð"Fñ ™�}ð"Fñ ‘r—x‘xÕ ð"Fñ 
�‰ñ"Fr1   c                óÞ  € VP                   w  rxp	VP                  WxV P                  V P                  4      pVP                  Wx^V P                  4      pVP                  Wx^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VR7
      w  rÊV'       d   W¥^&   VP                  WxV P                  4      # )é   N)rˆ   r�   )rh   Úreshapern   r   rk   r�   r   r|   r~   rx   r%   )rI   rŸ   r    r¡   r¢   r‡   rˆ   Ú
batch_sizeÚseq_lenÚ_Ústater�   Úys   &&&&&&&      r.   Ú_ssmÚ
Mamba._ssm‹   sÏ   € ð "#§¡Ñˆ
˜Qà�I‰I�j¨4¯>©>¸4×;TÑ;TÓUˆØ�I‰I�j¨1¨d¯l©lÓ;ˆØ�I‰I�j¨1¨d¯l©lÓ;ˆßØ˜!•HˆEØ—m‘m‰Gà! 4�7äØØ�J‰JØØØ�F‰FØØ�L‰LØØØô
‰ˆ÷ Ø�!‰HØ�y‰y˜¨d×.DÑ.DÓEÐEr1   c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# ©r   rM   rˆ   ©rE   rO   r   )r,   r-   s   "€r.   r/   r_   ¯   s,   ø€ ÷ -"ñ -"á—x‘xð-"ñ ‘r—x‘xÕ ñ-"r1   c                óÄ  € VP                   w  rEpV P                  V4      pVP                  WEV P                  R4      p\        P
                  ! VV P                  .RR7      w  r‰V	P                  VRV P                  V P                  ,          4      p	V P                  W“V4      p	V P                  V	4      p
\        P
                  ! W P                  V P                  ^,          .RR7      w  r¼p\        P                  ! V P                  P                  \        P                  4      4      ) p\        P                  P                  WÐP                   V P"                  P$                  4      p\        P                  P                  W°P&                  V P"                  P$                  4      p\        P                  P                  WÀP(                  V P"                  P$                  4      pV P+                  V4      pV P-                  V	VVVVV4      pV'       d#   VP/                  VP                   ^,          4       \1        VP3                  R4      V4      pV P5                  V4      # )r¤   rŠ   éÿÿÿÿéþÿÿÿ)rh   rq   r¥   rn   rE   Úsplitr   rœ   rv   rk   Úexpr|   Úastyper{   rQ   rR   r   r]   r   r€   r�   rw   r«   Úadvancer	   Úflattenr‚   )rI   rM   rˆ   r‡   ÚbsizeÚlengthr¨   ÚzxÚzrŸ   ÚBCdtr    r¡   r¢   ÚAÚouts   &&&&            r.   rS   ÚMamba.__call__¯   sÉ  € ð )×.Ñ.Ñˆ�qà�\‰\˜-Ó(ˆØ�Z‰Z˜ t§~¡~°rÓ:ˆô �xŠxØà×)Ñ)ðð ô
‰ˆð �I‰I�e˜R §¡°$×2KÑ2KÕ!KÓLˆØ�J‰J�q Ó&ˆà�~‰~˜aÓ ˆÜ—8’8˜D§<¡<°·±ÀÕ1AÐ"BÈÔL‰ˆˆbä�VŠV�D—J‘J×%Ñ%¤b§j¡jÓ1Ó2Ð2ˆÜ�W‰W×Ñ˜b×"5Ñ"5°t·{±{×7OÑ7OÓPˆÜ�G‰G×Ñ˜Q× 2Ñ 2°D·K±K×4LÑ4LÓMˆÜ�G‰G×Ñ˜Q× 2Ñ 2°D·K±K×4LÑ4LÓMˆð �\‰\˜"ÓˆØ�i‰iØØØØØØó
ˆ÷ Ø�M‰M˜#Ÿ)™) A�,Ô'ä�Q—Y‘Y˜r“] CÓ(ˆØ�}‰}˜SÓ!Ð!r1   )r|   r€   r�   r~   rv   rm   r]   rs   rl   rk   rx   ru   r   rw   r   r   rq   r%   rn   r‚   ©NN)r3   r4   r5   r6   rD   rœ   r«   rS   r8   r9   rW   rX   s   @@r.   rZ   rZ   :   s9   ù‡ € ÷(Xó (X÷T$$ð $$÷L"Fð "F÷H-"÷ -"ò -"r1   rZ   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# )Ú	Attentionc                ó$   <€ V ^8„  d   QhRS[ RR/# r\   r^   )r,   r-   s   "€r.   r/   ÚAttention.__annotate__à   s   ø€ ÷ )ñ )™yð )¨Tñ )r1   c                óª  <€ \         SV `  4        Wn        VP                  V n        VP                  pVP
                  V n        VR,          V n        VP                  V n        V;V n	        V n
        VP                  ;V n        V n        V P                  V P                  ,          ^ 8X  g   Q hV P                  V P                  ,          V n        V P                  V P                  ,          V n        V P                  V P                  ,          V n        V P                  V P                  ,          V n        \$        P&                  ! V P                  V P                  V P                   ,           V P"                  ,           RR7      V n        \$        P&                  ! V P                  V P                  ,          V P                  RR7      V n        \,        P.                  ! V P                  V P                  34      V n        \,        P.                  ! V P                  V P                  34      V n        \$        P4                  ! V P                  4      V n        R# )g      à?Fra   Ng      à¿)rC   rD   r]   r   r   r   Úscaler   Úq_num_headsÚqk_dimÚv_dimr   Úk_num_headsÚv_num_headsÚn_groupÚ
q_proj_dimÚ
k_proj_dimÚ
v_proj_dimro   rp   Úqkv_projÚo_projrE   r}   Úq_weightÚk_weightÚRoPEÚrope)rI   r]   Úhead_dimrJ   s   && €r.   rD   ÚAttention.__init__à   s§  ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ×.Ñ.ˆØ'-×'EÑ'EˆÔ$Ø˜t•^ˆŒ
à!×5Ñ5ˆÔØ#+Ð+ˆŒ�d”jØ.4×.HÑ.HÐHˆÔ˜4Ô+Ø×Ñ $×"2Ñ"2Õ2°aÔ7Ð7Ð7Ø×'Ñ'¨4×+;Ñ+;Õ;ˆŒà×*Ñ*¨T¯[©[Õ8ˆŒØ×*Ñ*¨T¯[©[Õ8ˆŒØ×*Ñ*¨T¯Z©ZÕ7ˆŒÜŸ	š	Ø×ÑØ�O‰O˜dŸo™oÕ-°·±Õ?Øô
ˆŒô
 —i’iØ×Ñ˜tŸz™zÕ)¨4×+;Ñ+;À%ô
ˆŒô Ÿš ×!1Ñ!1°4·;±;Ð ?Ó@ˆŒÜŸš ×!1Ñ!1°4·;±;Ð ?Ó@ˆŒä—G’G˜DŸK™KÓ(ˆŽ	r1   c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# r®   r¯   )r,   r-   s   "€r.   r/   rÄ   ÿ   s,   ø€ ÷ %#ñ %#á—x‘xð%#ñ ‘r—x‘xÕ ñ%#r1   c                óä  € VP                   w  rEpV P                  V4      p\        P                  ! WpP                  V P                  V P
                  ,           .RR7      w  r‰p
VP                  WEV P                  V P                  4      P                  ^ ^^^4      pV	P                  WEV P                  V P                  4      P                  ^ ^^^4      p	V
P                  WEV P                  V P                  4      P                  ^ ^^^4      p
\        P                  P                  VRRR7      V P                  R,          ,          p\        P                  P                  V	RRR7      V P                   R,          ,          p	VeM   V P#                  WƒP$                  R7      pV P#                  W“P$                  R7      p	VP'                  Wš4      w  ršM"V P#                  V4      pV P#                  V	4      p	\        P                  P)                  VV	V
V P*                  VR7      pVP                  ^ ^^^4      P                  WEV P                  V P                  ,          4      pV P-                  V4      # )	r¤   rŠ   Nr   )rG   r=   )r>   )rÆ   rˆ   r±   r�   )rh   rÐ   rE   r³   rÍ   rÎ   r¥   rÇ   rÈ   Ú	transposerÊ   rË   rÉ   rQ   rR   rÒ   rÓ   rÕ   r>   Úupdate_and_fetchÚscaled_dot_product_attentionrÆ   rÑ   )rI   rM   rˆ   r‡   r    ÚTr¨   ÚqkvÚqÚkÚvÚoutputs   &&&&        r.   rS   ÚAttention.__call__ÿ   sù  € ð  ×%Ñ%‰ˆˆaà�m‰m˜MÓ*ˆÜ—(’(Ø—/‘/ 4§?¡?°T·_±_Õ#DÐEÈBô
‰ˆˆað �I‰I�a˜D×,Ñ,¨d¯k©kÓ:×DÑDÀQÈÈ1ÈaÓPˆØ�I‰I�a˜D×,Ñ,¨d¯k©kÓ:×DÑDÀQÈÈ1ÈaÓPˆØ�I‰I�a˜D×,Ñ,¨d¯j©jÓ9×CÑCÀAÀqÈ!ÈQÓOˆä�G‰G×Ñ˜Q t°ÐÓ6¸¿¹ÀwÕ9OÕOˆÜ�G‰G×Ñ˜Q t°ÐÓ6¸¿¹ÀwÕ9OÕOˆàÒØ—	‘	˜!§L¡L�	Ó1ˆAØ—	‘	˜!§L¡L�	Ó1ˆAØ×)Ñ)¨!Ó/‰DˆAˆqà—	‘	˜!“ˆAØ—	‘	˜!“ˆAä—‘×5Ñ5ØØØØ—*‘*Øð 6ó 
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5Ø�$×"Ñ" T§Z¡ZÕ/ó
ˆð �{‰{˜6Ó"Ð"r1   )r]   r   rÊ   rÎ   rÓ   r   rÌ   rÑ   rÇ   rÍ   rÒ   rÈ   rÐ   rÕ   rÆ   rÉ   rË   rÏ   rÀ   rV   rX   s   @@r.   rÂ   rÂ   ß   s   ù‡ € ÷)ó )÷>%#÷ %#ò %#r1   rÂ   c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚMLPi'  c                ó$   <€ V ^8„  d   QhRS[ RR/# r\   r^   )r,   r-   s   "€r.   r/   ÚMLP.__annotate__(  s   ø€ ÷ Yñ Y™yð Y¨Tñ Yr1   c                óJ  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        \
        P                  ! V P                  V P                  ^,          RR7      V n        \
        P                  ! V P                  V P                  RR7      V n        R# )r   Fra   N)	rC   rD   r]   r   r%   ro   rp   Úgate_up_projÚ	down_projrƒ   s   &&€r.   rD   ÚMLP.__init__(  s{   ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ!'×!9Ñ!9ˆÔÜŸIšIØ×Ñ˜d×4Ñ4°qÕ8¸uô
ˆÔô Ÿš 4×#9Ñ#9¸4×;KÑ;KÐRWÔXˆŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rŸ   r?   rN   )r,   r-   s   "€r.   r/   rç   2  s#   ø€ ÷ 4ñ 4™"Ÿ(™(ð 4¡r§x¡xñ 4r1   c                ó¨   € V P                  V4      p\        P                  ! V^RR7      pV P                  \	        V^ ,          V^,          4      4      # )r   rŠ   r±   )ré   rE   r³   rê   r	   )rI   rŸ   ÚhÚhss   &&  r.   rS   ÚMLP.__call__2  sB   € Ø×Ñ˜aÓ ˆÜ�XŠX�a˜ Ô$ˆØ�~‰~œf R¨¥U¨B¨q­EÓ2Ó3Ð3r1   )r]   rê   ré   r   r%   rV   rX   s   @@r.   rå   rå   '  s    ù‡ € ÷Yó Y÷4÷ 4ð 4r1   rå   c                   óT   a a€ ] tR tR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# )ÚPlamoDecoderLayeri8  c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r   r]   Úis_mambar?   N)r   r*   )r,   r-   s   "€r.   r/   ÚPlamoDecoderLayer.__annotate__9  s"   ø€ ÷ 
ñ 
™yð 
±Dð 
¸Tñ 
r1   c                ó  <€ \         SV `  4        Wn        VP                  V n        W n        V  V'       d   \        V4      V n        M\        V4      V n        \        V4      V n	        \        VP                  VP                  R R7      V n        \        VP                  VP                  RR7      V n        \        VP                  VP                  R R7      V n        \        VP                  VP                  RR7      V n        R# )rU   )r=   r>   Ngš™™™™™É?gáWfÑ·å¶?)rC   rD   r]   r   rô   rZ   ÚmixerrÂ   rå   Úmlpr;   r   Úpre_mixer_normÚpost_mixer_normÚpre_mlp_normÚpost_mlp_norm)rI   r]   rô   rJ   s   &&&€r.   rD   ÚPlamoDecoderLayer.__init__9  sÔ   ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ ŒÙßÜ˜v›ˆD�Jä" 6Ó*ˆDŒJÜ�v“;ˆŒÜ%Ø×Ñ F×$7Ñ$7Àô
ˆÔô  'Ø×Ñ F×$7Ñ$7Àô 
ˆÔô $Ø×Ñ F×$7Ñ$7Àô
ˆÔô %Ø×Ñ F×$7Ñ$7Àô
ˆÖr1   c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# r®   r¯   )r,   r-   s   "€r.   r/   rõ   Q  s,   ø€ ÷ ,ñ ,á—x‘xð,ñ ‘r—x‘xÕ ñ,r1   c                óü   € TpV P                  V4      pV P                  VVVR 7      pV P                  V4      pWE,           pTpV P                  V4      pV P	                  V4      pV P                  V4      pWF,           # ))rM   rˆ   r‡   )rù   r÷   rú   rû   rø   rü   )rI   rM   rˆ   r‡   ÚresidualÚhidden_states_saÚhidden_states_mlps   &&&&   r.   rS   ÚPlamoDecoderLayer.__call__Q  s•   € ð !ˆØ×+Ñ+¨MÓ:ˆàŸ:™:Ø'ØØð &ó 
Ðð  ×/Ñ/Ð0@ÓAÐØ Õ3ˆà ˆØ×)Ñ)¨-Ó8ˆð !ŸH™H ]Ó3Ðð !×.Ñ.Ð/@ÓAÐØÕ+Ð+r1   )	r]   r   rô   r÷   rø   rú   rü   rù   rû   rÀ   rV   rX   s   @@r.   rò   rò   8  s   ù‡ € ÷
ó 
÷0,÷ ,ò ,r1   rò   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r]   Úir?   )r   r(   r*   )r,   s   "r.   r/   r/   n  s!   € ÷ 	?ñ 	?”Yð 	?¤3ð 	?¬4ñ 	?r1   c                 ó.  € V P                   '       g   R # V P                  ^8”  g   Q hWP                  8  g   Q hV P                  V P                  ^,          8:  d   WP                  ^,
          8g  # WP                  ,          V P                  ^,          8g  # )F)r$   r"   r   )r]   r  s   &&r.   rô   rô   n  sƒ   € Ø××ÐÙØ×Ñ˜qÔ Ð Ð Ø×'Ñ'Ô'Ð'Ð'à×Ñ F×$5Ñ$5¸Õ$:Ô;à×,Ñ,¨qÕ0Ñ0Ð0Ø×!Ñ!Õ! v×'8Ñ'8¸AÕ'=Ñ>Ð>r1   c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚPlamoDecoderiz  c                ó$   <€ V ^8„  d   QhRS[ RR/# r\   r^   )r,   r-   s   "€r.   r/   ÚPlamoDecoder.__annotate__{  s   ø€ ÷ -ñ -™yð -¨Tñ -r1   c           
     ó  <€ \         SV `  4        \        VP                  4       Uu. uF  p\	        V\        W4      R 7      NK  	  upV n        VP                  '       d   ^ MRV n        VP                  ^,          V n
        R# u upi ))rô   N)rC   rD   Úranger   rò   rô   Úlayersr$   Ússm_idxr"   Úfa_idx)rI   r]   r  rJ   s   && €r.   rD   ÚPlamoDecoder.__init__{  ss   ø€ Ü‰ÑÔô ˜6×3Ñ3Ô4ó
á4�ô ˜f¬x¸Ó/B×CÙ4ñ
ˆŒð #×0×0Ð0‘q°dˆŒØ×'Ñ'¨1Õ,ˆŽùò
s   §Bc                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rŸ   rN   )r,   r-   s   "€r.   r/   r
  …  s   ø€ ÷ ñ ™"Ÿ(™(ñ r1   c                óX  € Vf   R .\        V P                  4      ,          p\        WV P                  ,          4      pV P                  e   \        WV P                  ,          4      pMR p\        V P                  V4       F%  w  ppT! TVP                  '       d   TMTVR7      pK'  	  V# )N)rˆ   r‡   )Úlenr  r   r  r  r   Úziprô   )rI   rŸ   r‡   Ú	attn_maskÚ
mamba_maskÚlÚcs   &&&    r.   rS   ÚPlamoDecoder.__call__…  s•   € ØŠ=Ø�FœS §¡Ó-Õ-ˆEä)¨!°4·;±;Õ-?Ó@ˆ	Ø�<‰<Ò#Ü(¨°$·,±,Õ,?Ó@‰JàˆJô
 �—‘˜eÖ$ñ
ØØáØØ#$§:§: :‘Z°9ØôŠAñ %ð ˆr1   )r  r  r  rV   rX   s   @@r.   r  r  z  s   ù‡ € ÷-ó -÷÷ ð r1   r  c                   óT   a a€ ] tR tR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# )Ú
PlamoModeli›  c                ó    <€ V ^8„  d   QhRS[ /# )r   r]   r^   )r,   r-   s   "€r.   r/   ÚPlamoModel.__annotate__œ  s   ø€ ÷ Iñ I™yñ Ir1   c                ó  <€ \         SV `  4        Wn        VP                  V n        \        P
                  ! VP                  VP                  4      V n        \        V4      V n	        \        VP                  VP                  R 7      V n        R# ))r=   N)rC   rD   r]   r&   ro   Ú	Embeddingr   Úembed_tokensr  r  r;   r   Únormrƒ   s   &&€r.   rD   ÚPlamoModel.__init__œ  se   ø€ Ü‰ÑÔàŒØ ×+Ñ+ˆŒäŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔÜ" 6Ó*ˆŒÜ˜F×.Ñ.°F×4GÑ4GÔHˆŽ	r1   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   ÚinputsrN   )r,   r-   s   "€r.   r/   r  ¦  s   ø€ ÷ ñ á—‘ñr1   c                ó†   € VP                   w  r4V P                  V4      pV P                  VV4      pV P                  V4      # rB   )rh   r   r  r!  )rI   r$  r‡   r¦   Ú
seq_lengthrî   r¾   s   &&&    r.   rS   ÚPlamoModel.__call__¦  sD   € ð
 "(§¡Ñˆ
à×Ñ˜fÓ%ˆà�k‰kØØó
ˆð
 �y‰y˜‹~Ðr1   )r]   r   r  r!  r&   rB   rV   rX   s   @@r.   r  r  ›  s    ù‡ € ÷Ió I÷÷ ò r1   r  c                   ó|   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltR tRV3R lR llt]R	 4       t	R
t
VtV ;t# )ÚModeli·  c                ó$   <€ V ^8„  d   QhRS[ RR/# r\   r^   )r,   r-   s   "€r.   r/   ÚModel.__annotate__¸  s   ø€ ÷ ñ ™yð ¨Tñ r1   c                ó   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        VP                  V n        VP                  '       g5   \        P                  ! VP                  V P                  R R7      V n        R# R# )Fra   N)rC   rD   r]   r   r  Úmodelr&   r   ro   rp   r   Úlm_headrƒ   s   &&€r.   rD   ÚModel.__init__¸  sk   ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒÜ Ó'ˆŒ
à ×+Ñ+ˆŒà×)×)Ð)Ü&(§i¢iØ×"Ñ" D§O¡O¸%ô'ˆDŽLñ *r1   c                óR   <€ V ^8„  d   QhRS[ S[S[3,          RS[ S[S[3,          /# )r   Úweightsr?   )Údictr   )r,   r-   s   "€r.   r/   r+  Å  s+   ø€ ÷ ñ ¡¡S©# X¥ð ±4¹¹S¸µ>ñ r1   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±   )Úitemsrh   Úmoveaxis)rI   r1  rà   rá   s   &&  r.   ÚsanitizeÚModel.sanitizeÅ  sD   € Ø—M‘M–O‰DˆAØ !Ö#¨¯©°­°qÖ(8ØŸZ™Z¨¨1Ó-�“
ñ $ð ˆr1   c                óŽ   € V P                    Uu. uF*  qP                  '       d   \        ^R7      M	\        4       NK,  	  up# u upi )r   )Úsize)r  rô   r
   r   )rI   r  s   & r.   Ú
make_cacheÚModel.make_cacheË  s4   € ð KOÏ+Ê+ÓVÉ+ÀQ§z§z z” Õ#´w³yÒ@É+ÑVÐVùÒVs   �0Ac                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r$  r?   rN   )r,   r-   s   "€r.   r/   r+  Ð  s#   ø€ ÷ 
ñ 
™rŸx™xð 
¹¿¹ñ 
r1   c                óÔ   € V P                  VVR 7      pV P                  P                  '       d(   V P                   P                  P	                  V4      pV# V P                  V4      pV# ))r$  r‡   )r-  r]   r   r   Ú	as_linearr.  )rI   r$  r‡   ÚoutputsÚlogitss   &&&  r.   rS   ÚModel.__call__Ð  sc   € Ø—*‘*ØØð ó 
ˆð �;‰;×*×*Ð*Ø—Z‘Z×,Ñ,×6Ñ6°wÓ?ˆFð ˆð —\‘\ 'Ó*ˆFàˆr1   c                óB   € V P                   P                  P                  # rB   )r-  r  )rI   s   &r.   r  ÚModel.layersÜ  s   € à�z‰z× Ñ ×'Ñ'Ð'r1   )r]   r.  r-  r   r&   rB   )r3   r4   r5   r6   rD   r6  r:  rS   Úpropertyr  r8   r9   rW   rX   s   @@r.   r)  r)  ·  sB   ù‡ € ÷ó ÷ð òW÷

ò 
ð ñ(ó ÷(ð (r1   r)  )!ÚmathÚdataclassesr   Útypingr   r   Úmlx.coreÚcorerE   Úmlx.nnro   Úmlx_lm.models.baser   r   r   Úactivationsr	   r‡   r
   r   Ússmr   r   ÚModuler;   rZ   rÂ   rå   rò   rô   r  r  r)  r2   r1   r.   Ú<module>rO     sÍ   ðó Ý !ß  å Ý ç TÑ Tå ß 'Ý ð ô�ó ó ðô,
ˆb�i‰iô 
ô$b"ˆB�I‰Iô b"ôJE#�—	‘	ô E#ôP4ˆ"�)‰)ô 4ô"3,˜Ÿ	™	ô 3,õl	?ô�2—9‘9ô ôB�—‘ô ô8'(ˆB�I‰Iö '(r1   