+
    "Ý³jéC  ã                  óÂ  € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^ RI
t
^ RIHt ^RIHtHt RtRtRtR	tR
tRtRtR R ltR R ltR R ltR R ltR R ltR R lt]! R4      t]! R4      t]! RR7      R R l4       t]! RR7      R R l4       t ]! RR7      R  R! l4       t!]! RR7      R" R# l4       t"R$ R% lt#R& R' lt$ ! R( R)]PJ                  4      t&R).t'R# )*é    )ÚannotationsN)Ú	lru_cache)ÚAnyÚDictÚOptional)Ú_EXL3_BUFFER_NAMESÚ_torch_dtypeir|Qi¤ZÔl   íX l   -Q¹ i d  l   ÿÿ i`;`;c               ó   € V ^8„  d   QhRR/# )é   Úreturnú	list[int]© )Úformats   "Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/exllamav3_torch.pyÚ__annotate__r      s   € ÷ ñ  )ñ ó    c                 ó¼  € ^ .R,          p \        ^ 4       EFA  pV^,          ^,          pV^,           pV^,           pV^	,           pV^,          pV^,           pV^,          V,           W^,          ^ ,           &   V^,          V,           W^,          ^,           &   V^,          V,           W^,          ^,           &   V^,          V,           W^,          ^,           &   V^,          V,           W^,          ^,           &   V^,          V,           W^,          ^,           &   V^,          V,           W^,          ^,           &   V^,          V,           W^,          ^,           &   EKD  	  V # )r   é   )Úrange)ÚpermÚtÚr0Úr1Úr2Úr3Úc0Úc1s           r   Ú_tensor_core_perm_valuesr      s  € Øˆ3��9€DÜ�2�YˆØ�!�e�q�[ˆØ�!�VˆØ�!�VˆØ�!�VˆØ�!�VˆØ�!�VˆØ˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�Y‰Ø˜r�' B�,ˆ��U�Q�YŒñ ð €Kr   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   r   )r   s   "r   r   r   1   s   € ÷ ñ ˜yð ¨Yñ r   c                ó\   € ^ .\        V 4      ,          p\        V 4       F	  w  r#W!V&   K  	  V# )r   )ÚlenÚ	enumerate)r   ÚinvÚindexÚvalues   &   r   Ú_inverse_perm_valuesr&   1   s-   € Øˆ#”�D“	�/€CÜ! $ž‰ˆØˆE‹
ñ (à€Jr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚbitsÚintr   Úfloatr   )r   s   "r   r   r   8   s   € ÷ 1ñ 1 ð 1¨ñ 1r   c                óž   € \         P                  ! R \        V 4      R,          4      p\        \         P                  ! RV4      ^ ,          4      # )z<Héÿÿ  z<e)ÚstructÚpackr)   r*   Úunpack)r(   Úpackeds   & r   Ú_half_scalar_from_bitsr1   8   s8   € ô �[Š[˜œs 4›y¨6Õ1Ó2€FÜ”—’˜t VÓ,¨QÕ/Ó0Ð0r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úshiftsúint | torch.TensorÚdeviceztorch.devicer   r   )r   s   "r   r   r   M   s#   € ÷ ñ Ð 2ð ¸Lð ÐM_ñ r   c                óø   € \         P                  ! V 4      '       dN   V P                  V\         P                  R 7      p\         P                  ! \         P
                  ! V^4      V4      # ^\        V 4      ,          # ))r5   Údtype)ÚtorchÚ	is_tensorÚtoÚint64ÚpowÚ	full_liker)   )r3   r5   Ú
shifts_i64s   && r   Ú_torch_shift_factorr?   M   sT   € Ü‡‚�v×Òð —Y‘Y f´E·K±K�YÓ@ˆ
Ü�yŠyœŸš¨°QÓ7¸ÓDÐDØ”�F“ÕÐr   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úvaluesútorch.Tensorr3   r4   r   r   )r   s   "r   r   r   V   s"   € ÷ $ñ $˜|ð $Ð5Gð $ÈLñ $r   c                ó(  € V P                   P                  R 8w  d   \        P                  ! W4      # \        P                  ! V P                  \        P                  4      \        WP                   4      4      pVP                  V P                  4      # ©Únpu)	r5   Útyper8   Úbitwise_right_shiftÚfloor_divider:   r;   r?   r7   ©rB   r3   Úshifteds   && r   Ú_torch_right_shiftrL   V   se   € Ø‡}�}×Ñ˜UÔ"Ü×(Ò(¨Ó8Ð8ô
 × Ò  §¡¬5¯;©;Ó!7Ô9LÈV×UbÑUbÓ9cÓd€GØ�:‰:�f—l‘lÓ#Ð#r   c               ó$   € V ^8„  d   QhRRRRRR/# rA   r   )r   s   "r   r   r   a   s"   € ÷ $ñ $˜lð $Ð4Fð $È<ñ $r   c                ó  € V P                   P                  R 8w  d   \        P                  ! W4      # V P	                  \        P
                  4      \        WP                   4      ,          pVP	                  V P                  4      # rE   )r5   rG   r8   Úbitwise_left_shiftr:   r;   r?   r7   rJ   s   && r   Ú_torch_left_shiftrP   a   s[   € Ø‡}�}×Ñ˜UÔ"Ü×'Ò'¨Ó7Ð7ð �i‰iœŸ™Ó$Ô':¸6Ç=Á=Ó'QÕQ€GØ�:‰:�f—l‘lÓ#Ð#r   iî  i1É  )Úmaxsizec               ó$   € V ^8„  d   QhRRRRRR/# ©r   Údevice_typeÚstrÚdevice_indexú
int | Noner   rC   r   )r   s   "r   r   r   p   s&   € ÷ Uñ U 3ð U°jð UÀ\ñ Ur   c                óŒ   € \         P                  ! W4      p\         P                  ! \        4       \         P                  VR 7      # ©©r7   r5   )r8   r5   Útensorr   Úlong©rT   rV   r5   s   && r   Ú_tensor_core_permr^   o   s+   € ä�\Š\˜+Ó4€FÜ�<Š<Ô0Ó2¼%¿*¹*ÈVÔTÐTr   c               ó$   € V ^8„  d   QhRRRRRR/# rS   r   )r   s   "r   r   r   v   s&   € ÷ kñ k Sð k¸
ð kÀ|ñ kr   c                óž   € \         P                  ! W4      p\         P                  ! \        \	        4       4      \         P
                  VR 7      # rY   )r8   r5   r[   r&   r   r\   r]   s   && r   Ú_tensor_core_perm_ira   u   s5   € ä�\Š\˜+Ó4€FÜ�<Š<Ô,Ô-EÓ-GÓHÔPU×PZÑPZÐciÔjÐjr   c               ó$   € V ^8„  d   QhRRRRRR/# rS   r   )r   s   "r   r   r   |   s!   € ÷ ñ ˜sð °*ð Àñ r   c                ó®  € \         P                  ! W4      p\         P                  ! R ..\         P                  VR7      pVP                  ^ ,          ^€8  dL   \         P
                  ! \         P
                  ! W33^R7      \         P
                  ! W3) 3^R7      3^ R7      pKc  VR \        P                  ! R4      ,          ,          pVP                  4       # )g      ð?rZ   ©Údimg      `@)	r8   r5   r[   Úfloat32ÚshapeÚcatÚmathÚsqrtÚ
contiguous)rT   rV   r5   Úhads   &&  r   Ú_hadamard_128rm   {   s›   € ä�\Š\˜+Ó4€FÜ
�,Š,˜˜�w¤e§m¡m¸FÔ
C€CØ
�)‰)�A�,˜Ô
Ü�iŠiä—	’	˜3˜*¨!Ô,Ü—	’	˜3 ˜+¨1Ô-ðð ô
Šð ˆ3”—’˜5Ó!Õ!Õ!€CØ�>‰>ÓÐr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ÚcodebookrU   rT   rV   rW   r   rC   r   )r   s   "r   r   r   Œ   s0   € ÷ .?ñ .?Øð.?àð.?ð ð.?ð ñ	.?r   c                óø  € \         P                  ! W4      p\         P                  ! R	\         P                  VR7      pV R8X  Ed   V\        ,          \
        ,           R,          p\        V\        ,          ,          p\         P                  ! VR,          P                  \         P                  4      \        V^4      R,          P                  \         P                  4      3R
R7      P                  4       pVP                  \         P                  4      P                  \         P                  4      pVR,          VR,          ,           P                  4       # V R8X  Ed   V\         ,          R,          p\        V\        ,          ,          p\         P                  ! VR,          P                  \         P                  4      \        V^4      R,          P                  \         P                  4      3R
R7      P                  4       pVP                  \         P                  4      P                  \         P                  4      pVR,          VR,          ,           P                  4       # V R8X  Ed    V\"        ,          R,          pV^ÿ,          \        V^4      ^ÿ,          ,           \        V^4      ^ÿ,          ,           \        V^4      ^ÿ,          ,           pV\$        ,           P                  \         P                  4      P                  4       p	V	P                  \         P                  4      P                  \         P                  4      pV\&        ,          \(        ,           P                  4       # \+        RV  24      h)é   rZ   Ú3instl   ÿÿ r,   rd   ÚmcgÚmul1zUnsupported EXL3 codebook: i   éÿÿÿÿ©.r   ).rq   )r8   r5   Úaranger;   Ú_EXL3_3INST_MULTÚ_EXL3_3INST_ADDÚ_EXL3_LOP3_BIASÚ_EXL3_LOP3_MASKÚstackr:   Úuint16rL   rk   ÚviewÚfloat16rf   Ú_EXL3_MCG_MULTÚ_EXL3_MUL1_MULTÚ_EXL3_MUL1_ACCÚ_EXL3_MUL1_INVÚ_EXL3_MUL1_BIASÚ
ValueError)
ro   rT   rV   r5   rB   ÚrawÚhalvesÚfloatsÚbyte_sumÚaccums
   &&&       r   Ú_codebook_lutr‹   ‹   sz  € ô �\Š\˜+Ó4€FÜ�\Š\˜'¬¯©¸VÔD€Fà�7ÕØÔ(Õ(¬?Õ:¸jÕHˆÜ ¤Õ!6Õ7ˆÜ—’à�v•×!Ñ!¤%§,¡,Ó/Ü# C¨Ó,¨vÕ5×9Ñ9¼%¿,¹,ÓGðð ô
÷ ‰*‹,ð 	ð —‘œUŸ]™]Ó+×.Ñ.¬u¯}©}Ó=ˆØ�v• ¨¥Õ/×;Ñ;Ó=Ð=à�5ÕØœÕ&¨*Õ4ˆÜ ¤Õ!6Õ7ˆÜ—’à�v•×!Ñ!¤%§,¡,Ó/Ü# C¨Ó,¨vÕ5×9Ñ9¼%¿,¹,ÓGðð ô
÷ ‰*‹,ð 	ð —‘œUŸ]™]Ó+×.Ñ.¬u¯}©}Ó=ˆØ�v• ¨¥Õ/×;Ñ;Ó=Ð=à�6ÕØœÕ'¨:Õ5ˆà�4�ZÜ! # qÓ)¨DÕ0õ2ä! # rÓ*¨TÕ1õ3ô " # rÓ*¨TÕ1õ3ð 	ð œNÕ*×.Ñ.¬u¯|©|Ó<×GÑGÓIˆØ—‘œEŸM™MÓ*×-Ñ-¬e¯m©mÓ<ˆØœÕ'¬/Õ9×EÑEÓGÐGä
Ð2°8°*Ð=Ó
>Ð>r   c               ó    € V ^8„  d   QhRRRR/# ©r   ÚxrC   r   r   )r   s   "r   r   r   ½   s   € ÷ :ñ :˜Lð :¨\ñ :r   c                óZ  € V P                   ^ ,          ^€,          ^ 8w  d!   \        RV P                   ^ ,           R24      h\        V P                  P                  V P                  P
                  4      pWP                  R^€V P                   ^,          4      ,          P                  V 4      # )r   z5EXL3 expects in_features to be divisible by 128, got Ú.ru   ©rg   r…   rm   r5   rG   r$   r~   Úview_as©rŽ   rl   s   & r   Ú_apply_hadamard_leftr”   ½   s€   € Ø‡w�wˆq…z�CÕ˜1ÔÜÐPÐQR×QXÑQXÐYZÕQ[ÐP\Ð\]Ð^Ó_Ð_Ü
˜Ÿ™Ÿ™ q§x¡x§~¡~Ó
6€CØ—&‘&˜˜S !§'¡'¨!¥*Ó-Õ-×6Ñ6°qÓ9Ð9r   c               ó    € V ^8„  d   QhRRRR/# r�   r   )r   s   "r   r   r   Ä   s   € ÷ :ñ :˜\ð :¨lñ :r   c                ó\  € V P                   ^,          ^€,          ^ 8w  d!   \        RV P                   ^,           R24      h\        V P                  P                  V P                  P
                  4      pV P                  V P                   ^ ,          R^€4      V,          P                  V 4      # )rq   z6EXL3 expects out_features to be divisible by 128, got r�   ru   r‘   r“   s   & r   Ú_apply_hadamard_rightr—   Ä   s‚   € Ø‡w�wˆq…z�CÕ˜1ÔÜÐQÐRS×RYÑRYÐZ[ÕR\ÐQ]Ð]^Ð_Ó`Ð`Ü
˜Ÿ™Ÿ™ q§x¡x§~¡~Ó
6€CØ�F‰F�1—7‘7˜1•:˜r 3Ó'¨#Õ-×6Ñ6°qÓ9Ð9r   c                  ó8  a € ] tR t^ËtRtRtRRRRR]P                  /R V 3R lllt]	R	 R
 l4       t
R R ltR R ltV 3R ltR R ltR R ltR R ltR R ltR R ltR R ltR+R R lltR R ltR+R  R! lltR" R# ltR$ R% ltR& R' ltR( R) ltR*tV ;t# ),ÚExllamaV3TorchLinearÚexl3TÚtensor_storageNÚtensorsÚ	out_dtypec               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   Úin_featuresr)   Úout_featuresÚnamerU   r›   zOptional[Dict[str, Any]]rœ   z!Optional[Dict[str, torch.Tensor]]r�   útorch.dtyper   )r   s   "r   r   Ú!ExllamaV3TorchLinear.__annotate__Ï   sP   € ÷ (^ñ (^ð ð(^ð ð	(^ð
 ð(^ð 1ð(^ð 3ð(^ð ñ(^r   c          
     	óÔ  <€ \         SV `  4        Wn        W n        W0n        W`n        T;'       g    / V n        \        P                  ! R\        P                  RR7      V n
        RV n        RV n        RV n        VeD   \         F7  pVP                  V4      pVf   \!        WR4       K&  V P#                  Wx4       K9  	  R# V P                  ;'       g    / P                  R/ 4      p	\         Fw  pV	P                  V RV 24      p
V
f   \!        WR4       K+  \%        V
R,          4      p\'        V
R,          4      pV P#                  V\        P(                  ! W¼RR7      4       Ky  	  R# )	rq   ÚmetarZ   NÚstored_tensorsr�   rg   Útorch_dtype)rq   )ÚsuperÚ__init__rŸ   r    r¡   r�   r›   r8   Úzerosr   ÚweightÚ_cache_signatureÚ_inner_weight_fp32Ú_weight_fp32r   ÚgetÚsetattrÚregister_bufferÚtupler	   Úempty)ÚselfrŸ   r    r¡   r›   rœ   r�   Úbuffer_namer[   r¦   Úmetadatarg   r7   Ú	__class__s   &$$$$$$      €r   r©   ÚExllamaV3TorchLinear.__init__Ï   s9  ø€ ô 	‰ÑÔØ&ÔØ(ÔØŒ	Ø"ŒØ,×2Ð2°ˆÔä—k’k $¬e¯m©mÀFÔKˆŒØ;?ˆÔØ:>ˆÔØ48ˆÔàÒß1�Ø Ÿ™ [Ó1�Ø’>Ü˜D¨tÖ4à×(Ñ(¨Ö=ñ  2ñ à×-Ñ-×3Ð3°×8Ñ8Ð9IÈ2ÓNˆß-ˆKØ%×)Ñ)¨T¨F°!°K°=Ð*AÓBˆHØÒÜ˜¨4Ô0Ùä˜( 7Õ+Ó,ˆEÜ  ¨-Õ!8Ó9ˆEØ× Ñ  ¬e¯kªk¸%ÐU[Ô.\Ö]ó .r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   rŸ   r)   r    r¡   rU   rœ   zDict[str, torch.Tensor]r   z'ExllamaV3TorchLinear'r   )r   s   "r   r   r£   ú   s>   € ÷ 
ñ 
ð ð
ð ð	
ð
 ð
ð )ð
ð 
 ñ
r   c               	ó   € V ! VVVVR 7      # ))rŸ   r    r¡   rœ   r   )ÚclsrŸ   r    r¡   rœ   s   &$$$$r   Úfrom_tensorsÚ!ExllamaV3TorchLinear.from_tensorsù   s   € ñ Ø#Ø%ØØô	
ð 	
r   c               ó   € V ^8„  d   QhRR/# )r   r   ztuple[Any, ...]r   )r   s   "r   r   r£   	  s   € ÷  ñ   Oñ  r   c                	ó�  € \        V R R4      pVe   VP                  P                  R8X  d   R# \        VP                  4      .p\         Fn  p\        WR4      pVf   VP                  R4       K&  VP                  VP                  4       \        VP                  4      \        VP                  4      34       Kp  	  \        V4      # )ÚtrellisNr¥   )r¥   )
Úgetattrr5   rG   rU   r   ÚappendÚdata_ptrr²   rg   r7   )r´   rÀ   Ú	signaturerµ   r[   s   &    r   Ú_current_signatureÚ'ExllamaV3TorchLinear._current_signature	  s¤   € Ü˜$ 	¨4Ó0ˆØŠ?˜gŸn™n×1Ñ1°VÔ;ØÐä # G§N¡NÓ 3Ð4ˆ	ß-ˆKÜ˜T°Ó5ˆFØŠ~Ø× Ñ  Ô&ÙØ×Ñ˜fŸo™oÓ/´°v·|±|Ó1DÄcÈ&Ï,É,ÓFWÐXÖYñ .ô �YÓÐr   c               ó   € V ^8„  d   QhRR/# ©r   r   ÚNoner   )r   s   "r   r   r£     s   € ÷ !ñ !˜Tñ !r   c                	ó0   € R V n         R V n        R V n        R # ©N)r¬   r­   r®   ©r´   s   &r   Ú_drop_cacheÚ ExllamaV3TorchLinear._drop_cache  s   € Ø $ˆÔØ"&ˆÔØ ˆÖr   c                	óB   <€ V P                  4        \        SV `	  V4      # rË   )rÍ   r¨   Ú_apply)r´   Úfnr·   s   &&€r   rÐ   ÚExllamaV3TorchLinear._apply  s   ø€ Ø×ÑÔÜ‰w‰~˜bÓ!Ð!r   c               ó   € V ^8„  d   QhRR/# rÈ   r   )r   s   "r   r   r£      s   € ÷ ñ ˜4ñ r   c                	ó&   € V P                  4        R # rË   )rÍ   rÌ   s   &r   Ú	post_initÚExllamaV3TorchLinear.post_init   s   € Ø×ÑÖr   c               ó   € V ^8„  d   QhRR/# )r   r   rU   r   )r   s   "r   r   r£   #  s   € ÷ ñ  ñ r   c                	óJ   € \        V R R4      e   R # \        V RR4      e   R# R# )rs   Nrt   rr   ©rÁ   rÌ   s   &r   Ú_codebook_nameÚ#ExllamaV3TorchLinear._codebook_name#  s)   € Ü�4˜ Ó%Ò1ÙÜ�4˜ Ó&Ò2ÙÙr   c               ó   € V ^8„  d   QhRR/# )r   r   r)   r   )r   s   "r   r   r£   *  s   € ÷ ,ñ , #ñ ,r   c                	óœ   € \        V R R4      pVf   \        RV P                   R24      h\        VP                  R,          ^,          4      # )rÀ   NúEXL3 module `ú` is missing `trellis`.ru   )rÁ   ÚRuntimeErrorr¡   r)   rg   ©r´   rÀ   s   & r   Ú_bits_per_weightÚ%ExllamaV3TorchLinear._bits_per_weight*  sG   € Ü˜$ 	¨4Ó0ˆØŠ?Ü ¨t¯y©y¨kÐ9PÐQÓRÐRÜ�7—=‘= Õ$¨Õ*Ó+Ð+r   c               ó   € V ^8„  d   QhRR/# )r   r   r¢   r   )r   s   "r   r   r£   0  s   € ÷ ñ  {ñ r   c                	óš   € \        V R R4      pVe   VP                  P                  R8X  d   \        P                  # \        P
                  # )rÀ   NÚcpu)rÁ   r5   rG   r8   rf   r   rá   s   & r   Ú_runtime_weight_dtypeÚ*ExllamaV3TorchLinear._runtime_weight_dtype0  s:   € Ü˜$ 	¨4Ó0ˆØŠ?˜gŸn™n×1Ñ1°UÔ:Ü—=‘=Ð Ü�}‰}Ðr   c               ó   € V ^8„  d   QhRR/# ©r   r   rC   r   )r   s   "r   r   r£   6  s   € ÷ +ñ + ñ +r   c                	óv  € \        V R R4      pVf   \        RV P                   R24      hVP                  P                  R8X  d   \        RV P                   R24      hV P                  4       p^V,          ^,
          pVP                  \        P                  4      R,          P                  4       pVP                  ! . VP                  RR ORN^N5!  P                  R4      P                  ! VP                  !  pVP                  ! . VP                  RR O^NVN5!  p\        P                  ! . VP                  RR ORN5\        P                  VP                  R7      p\!        ^4       Fë  pWb,          pV^,          pV^,          p	W’,           ^8:  d.   ^V	,
          V,
          p
\#        VR	V3,          V
4      V,          pMm^V	,
          pW,,
          p\%        VR	V3,          ^V,          ^,
          ,          V4      p\#        VR	V^,           3,          ^V,
          4      pWï,          V,          pVP                  \        P                  4      VR	VR^13&   Kí  	  ^V,           ^,
          V,          ^,
          p\        P&                  ! VR,          \        P                  R
7      p\!        RV,
          R4       F&  p\%        VV4      VR	V3,          ,          R,          pK(  	  \        P(                  ! V4      p\!        R4       F-  p\%        VV4      VR	V3,          ,          R,          pVVR	V3&   K/  	  V# )rÀ   NrÞ   rß   r¥   ú8` has not been materialized from checkpoint tensors yet.r,   r   rZ   .©r7   ru   éþÿÿÿrv   )rÁ   rà   r¡   r5   rG   râ   r:   r8   Úint32rk   r~   rg   ÚflipÚreshaper³   r\   r   rL   rP   Ú
zeros_likeÚ
empty_like)r´   rÀ   r(   ÚmaskÚwordsÚsymbolsÚposÚ
bit_offsetÚword_idxÚbit_in_wordÚshiftr%   Ú
bits_firstÚbits_secondÚhighÚlowÚwarmupÚstateÚidxÚencodeds   &                   r   Ú_unpack_indicesÚ$ExllamaV3TorchLinear._unpack_indices6  sÊ  € Ü˜$ 	¨4Ó0ˆØŠ?Ü ¨t¯y©y¨kÐ9PÐQÓRÐRØ�>‰>×Ñ &Ô(Ü ¨t¯y©y¨kÐ9qÐrÓsÐsà×$Ñ$Ó&ˆØ�T•	˜Q�ˆØ—‘œEŸK™KÓ(¨6Õ1×=Ñ=Ó?ˆØ—
’
Ð4˜EŸK™K¨¨Ð,Ð4¨bÐ4°!Ó4×9Ñ9¸"Ó=×EÒEÀuÇ{Á{ÑSˆØ—
’
Ð7˜EŸK™K¨¨Ð,Ð7¨bÐ7°$Ó7ˆä—+’+Ø$ˆe�k‰k˜#˜2ÐÐ$ Ñ$Ü—*‘*Ø—<‘<ô
ˆô
 ˜–9ˆCØ�ˆJØ! RÕ'ˆHØ$ r�/ˆKØÕ! RÔ'Ø˜[Õ(¨4Õ/�Ü*¨5°°h°Õ+?ÀÓGÈ$ÕN‘à +Õ-�
Ø"Õ/�Ü(¨¨s°H¨}Õ)=À!ÀzÅ/ÐUVÕAVÕ)WÐYdÓe�Ü(¨¨s°H¸qµLÐ/@Õ)AÀ2ÈÕCSÓT�Ø� tÕ+�Ø$)§H¡H¬U¯Z©ZÓ$8ˆG�C˜˜˜b˜�LÓ!ñ ð �t•)˜a•- DÕ(¨1Õ,ˆÜ× Ò  ¨¥¼¿
¹
ÔCˆÜ˜˜v� sÖ+ˆCÜ& u¨dÓ3°g¸cÀ3¸hÕ6GÕGÈ6ÕQŠEñ ,ô ×"Ò" 7Ó+ˆÜ˜–:ˆCÜ& u¨dÓ3°g¸cÀ3¸hÕ6GÕGÈ6ÕQˆEØ %ˆG�C˜�HÓñ ð ˆr   c               ó   € V ^8„  d   QhRR/# rê   r   )r   s   "r   r   r£   c  s   € ÷ 'ñ '¨<ñ 'r   c                	ó®  € \        V R R4      pVf   \        RV P                   R24      hVP                  P                  R8X  d   \        RV P                   R24      hV P                  4       pV P                  e   V P                  V8X  d   V P                  # V P                  4       p\        V P                  4       VP                  P                  VP                  P                  4      pWC,          p\        VP                  P                  VP                  P                  4      pVRV3,          pVP                  R,          w  rxVP                  Wx^^4      P                  ^ ^^^4      P!                  V^,          V^,          4      p	W n        V	P#                  4       P%                  \&        P(                  4      V n        RV n        V P                  # )rÀ   NrÞ   rß   r¥   rì   .:Nr   N)rÁ   rà   r¡   r5   rG   rÅ   r­   r¬   r  r‹   rÚ   r$   ra   rg   r~   Úpermuterñ   rk   r:   r8   rf   r®   )
r´   rÀ   rÄ   r  ÚlutÚdecodedÚperm_iÚtiles_kÚtiles_nÚinners
   &         r   Ú_ensure_inner_weight_fp32Ú.ExllamaV3TorchLinear._ensure_inner_weight_fp32c  s‚  € Ü˜$ 	¨4Ó0ˆØŠ?Ü ¨t¯y©y¨kÐ9PÐQÓRÐRØ�>‰>×Ñ &Ô(Ü ¨t¯y©y¨kÐ9qÐrÓsÐsà×+Ñ+Ó-ˆ	Ø×"Ñ"Ò.°4×3HÑ3HÈIÔ3UØ×*Ñ*Ð*à×&Ñ&Ó(ˆÜ˜D×/Ñ/Ó1°7·>±>×3FÑ3FÈÏÉ×H\ÑH\Ó]ˆØ•,ˆä$ W§^¡^×%8Ñ%8¸'¿.¹.×:NÑ:NÓOˆØ˜#˜v˜+Õ&ˆØ"Ÿ=™=¨Õ,ÑˆØ—‘˜W¨r°2Ó6×>Ñ>¸qÀ!ÀQÈÓJ×RÑRØ�b�L˜' B�,ó
ˆð !*ÔØ"'×"2Ñ"2Ó"4×"7Ñ"7¼¿¹Ó"FˆÔØ ˆÔØ×&Ñ&Ð&r   c               ó    € V ^8„  d   QhRRRR/# ©r   r7   zOptional[torch.dtype]r   rC   r   )r   s   "r   r   r£   ~  s   € ÷ ,ñ ,Ð-Bð ,Èlñ ,r   c                	ó    € V P                  4       pT;'       g    V P                  4       pVP                  V8X  d   V# VP                  VR 7      # ©rí   )r  rç   r7   r:   )r´   r7   r  Útarget_dtypes   &&  r   Úget_inner_weight_tensorÚ,ExllamaV3TorchLinear.get_inner_weight_tensor~  sH   € Ø×.Ñ.Ó0ˆØ×<Ð< × :Ñ :Ó <ˆØ�;‰;˜,Ô&ØˆLØ�x‰x˜lˆxÓ+Ð+r   c               ó   € V ^8„  d   QhRR/# rê   r   )r   s   "r   r   r£   …  s   € ÷ !ñ ! \ñ !r   c                	ó"  € V P                  4       pV P                  e   V P                  V8X  d   V P                  # V P                  4       P	                  4       p\        V4      pV\        V R4      P                  \        P                  R7      P                  ^4      ,          p\        V4      pV\        V R4      P                  \        P                  R7      P                  ^ 4      ,          pVP                  4       V n        V P                  # )NÚsuhrí   Úsvh)rÅ   r®   r¬   r  Úcloner”   rÁ   r:   r8   rf   Ú	unsqueezer—   rk   )r´   rÄ   r  s   &  r   Ú_ensure_weight_fp32Ú(ExllamaV3TorchLinear._ensure_weight_fp32…  sÙ   € Ø×+Ñ+Ó-ˆ	Ø×ÑÒ(¨T×-BÑ-BÀiÔ-OØ×$Ñ$Ð$à×.Ñ.Ó0×6Ñ6Ó8ˆÜ$ UÓ+ˆØ”˜˜uÓ%×(Ñ(¬u¯}©}Ð(Ó=×GÑGÈÓJÕJˆÜ% eÓ,ˆØ”˜˜uÓ%×(Ñ(¬u¯}©}Ð(Ó=×GÑGÈÓJÕJˆà!×,Ñ,Ó.ˆÔØ× Ñ Ð r   c               ó    € V ^8„  d   QhRRRR/# r  r   )r   s   "r   r   r£   “  s   € ÷ -ñ -Ð'<ð -Èñ -r   c                	ó    € V P                  4       pT;'       g    V P                  4       pVP                  V8X  d   V# VP                  VR 7      # r  )r  rç   r7   r:   )r´   r7   r«   r  s   &&  r   Úget_weight_tensorÚ&ExllamaV3TorchLinear.get_weight_tensor“  sH   € Ø×)Ñ)Ó+ˆØ×<Ð< × :Ñ :Ó <ˆØ�<‰<˜<Ô'ØˆMØ�y‰y˜|ˆyÓ,Ð,r   c               ó   € V ^8„  d   QhRR/# )r   r   ztorch.Tensor | Noner   )r   s   "r   r   r£   š  s   € ÷ +ñ +Ð!4ñ +r   c                	ó   € \        V R R4      # )ÚbiasNrÙ   rÌ   s   &r   Úget_bias_tensorÚ$ExllamaV3TorchLinear.get_bias_tensorš  s   € Ü�t˜V TÓ*Ð*r   c               ó    € V ^8„  d   QhRRRR/# r�   r   )r   s   "r   r   r£   �  s   € ÷ 
!ñ 
!˜ð 
!¨,ñ 
!r   c                	óæ  € VP                   pVP                  P                  R 8X  d   \        P                  M\        P
                  pVP                  RV P                  4      P                  V4      pV P                  VR7      pWE,          p\        V RR4      pVe   WgP                  VR7      ,           pVP                  ! . VP                  RR OV P                  N5!  pVP                  V4      # )ræ   rí   r&  Nru   )r7   r5   rG   r8   rf   r   r~   rŸ   r:   r"  rÁ   rg   r    )r´   rŽ   Úinput_dtypeÚcompute_dtypeÚx_2dr«   Úyr&  s   &&      r   ÚforwardÚExllamaV3TorchLinear.forward�  sÀ   € Ø—g‘gˆØ)*¯©¯©¸%Ô)?œŸšÄUÇ]Á]ˆØ�v‰v�b˜$×*Ñ*Ó+×.Ñ.¨}Ó=ˆØ×'Ñ'¨mÐ'Ó<ˆØ�MˆÜ�t˜V TÓ*ˆØÒØ—G‘G -�GÓ0Õ0ˆAØ�FŠFÐ4�A—G‘G˜C˜R�LÐ4 $×"3Ñ"3Ó4ˆØ�t‰t�KÓ Ð r   c               ó    € V ^8„  d   QhRRRR/# )r   r¡   rU   r   zOptional[int]r   )r   s   "r   r   r£   ©  s   € ÷ 5ñ 5 cð 5¨mñ 5r   c                	ó’   € \        WR 4      pVf   R # \        VP                  \        P                  4      P                  4       4      # rË   )rÁ   r)   r~   r8   Úuint32Úitem)r´   r¡   r[   s   && r   Ú_multiplier_valueÚ&ExllamaV3TorchLinear._multiplier_value©  s7   € Ü˜ TÓ*ˆØŠ>ÙÜ�6—;‘;œuŸ|™|Ó,×1Ñ1Ó3Ó4Ð4r   c               ó   € V ^8„  d   QhRR/# )r   r   zDict[str, Any]r   )r   s   "r   r   r£   ¯  s   € ÷ ñ  nñ r   c                	ó~  € / p\          Fh  p\        WR 4      pVf   K  R\        VP                  4      R\	        VP
                  4      P                  R4      R,          /WP                   RV 2&   Kj  	  RVRRRV P                  4       /pV P                  R4      pVe   WTR	&   V P                  R
4      pVe   WdR&   V# )Nrg   r§   r�   r¦   Úquant_formatrš   Úbits_per_weightrs   Úmcg_multiplierrt   Úmul1_multiplierru   )
r   rÁ   Úlistrg   rU   r7   Úsplitr¡   râ   r5  )r´   r¦   rµ   r[   Úentryr;  r<  s   &      r   Útensor_storage_entryÚ)ExllamaV3TorchLinear.tensor_storage_entry¯  sÐ   € Ø46ˆß-ˆKÜ˜T°Ó5ˆFØŠ~Ùàœ˜fŸl™lÓ+Øœs 6§<¡<Ó0×6Ñ6°sÓ;¸BÕ?ð<ˆNŸi™i˜[¨¨+¨Ð7Ó8ñ	 .ð ˜nØ˜FØ˜t×4Ñ4Ó6ð!
ˆð ×/Ñ/°Ó6ˆØÒ%Ø&4Ð"Ñ#à×0Ñ0°Ó8ˆØÒ&Ø'6Ð#Ñ$àˆr   )	r¬   r­   r®   rŸ   r¡   r�   r    r›   r«   rË   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
QUANT_TYPEÚSUPPORTS_SHARDSr8   r   r©   Úclassmethodr¼   rÅ   rÍ   rÐ   rÕ   rÚ   râ   rç   r  r  r  r  r"  r'  r/  r5  r@  Ú__static_attributes__Ú__classcell__)r·   s   @r   r™   r™   Ë   s©   ø† Ø€JØ€Oð(^ð 48ð(^ð 6:ð(^ð "'§¡÷(^ò (^ðT ô
ó ð
õ õ!õ
"õõõ,õõ+õZ'÷6,õ!÷-õ+õ
!õ5÷ó r   r™   )(Ú
__future__r   ri   r-   Ú	functoolsr   Útypingr   r   r   r8   Útorch.nnÚnnÚ	exllamav3r   r	   rx   ry   r€   r�   r‚   r{   rz   r   r&   r1   r?   rL   rP   rƒ   r„   r^   ra   rm   r‹   r”   r—   ÚModuler™   Ú__all__r   r   r   Ú<module>rS     s  ðõ #ã Û Ý ß &Ñ &ã Ý ç 7ð Ð Ø€Ø€Ø€Ø€Ø€Ø€õõ(õ1õ*õ$õ$ñ (¨Ó/€Ù(¨Ó0€ñ �4ÔôUó ðUñ
 �4Ôôkó ðkñ
 �4Ôôó ðñ �4Ôô.?ó ð.?õb:õ:ô}˜2Ÿ9™9ô }ð@ "Ð
"‚r   