+
    ˜°³jÕi  ã                   ó	  a € Rb tŒ0 t R t^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	H
t
HtHtHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt]P(                  P+                  4       t]
;'       d    ]P(                  P/                  4       ^8¬  t]
'       d   ]P2                  ! R4      MRt]	'       d   ]! R 4      tM	]! R 4      t]! R 4      t]! R 4      t]! R	4      ;'       d    ]! R
4      ;'       d    ]	'       * tR t]! R 4      t R t!]! ]!4      t"]! R 4      t#]! R 4      t$]! R 4      t%]! R 4      t&]! R 4      t']! R 4      t(]! R 4      t)]! R 4      t*]! R 4      t+]! R 4      t,]! R 4      t-]! R 4      t.]! R 4      t/]! R 4      t0]! R 4      t1]! R 4      t2]Pf                  R 4       t4R t5R .t6R!R".t7R#.t8R$ t9R% t:R& t;R' t<R( t=R) t>R* t?R+ t@R, tA]! R- 4      tB] ^ k ]! R. 4      tC] ^k ]! R/ 4      tD] ^k ]! R0 4      tE] ^k ]
;'       d    ]	'       * tF] ^k ]! R1 4      tG] ^k R2 tHR3 tIR4 tJ]! R5 4      tK] ^k ]! R6 4      tL] ^k ]! R7 4      tM] ^k ]! R8 4      tN] ^	k R9 tO]! R: 4      tP] ^
k R; tQR< tRR= tSR> tTR? tU]! R@ 4      tV] ^k ]! RA 4      tW] ^k ]! RB 4      tX] ^k ]! RC 4      tY] ^k ]! RD 4      tZ] ^k ]'       d!    ^ RI[t\]\P(                  P»                  4       t^MREt^REsbRF tc]PÈ                  ! 4       te^ sfRsgRsh]Pf                  RG 4       ti]Pf                  RcRH l4       tj]Pf                  RI 4       tkRcRJRK/RL lltlRM tmRN tnRO toRP tpRQ tqRR trRS ts]r! 4       tt]s! 4       tuRT]Pì                  Pî                  R3RU ltxRT]Pò                  ]Pì                  Pî                  R3RV ltzRW t{RX t|RY t}RZ t~R[ tR\ t€R] t�R^ t‚R_ tƒRdt„]EP
                  ! ]EP                  EP                  '       * ;'       d-    ]EP                  EP                  RJ ;'       d    ]o! 4       ]„8  R`EP                  ! ]„!  4      tŠ]'       g+   ]P(                  P+                  4       '       d	   ]‹! Ra4      hR# R#   ]_]`]a3 d	    REt^REt EL—i ; i)ez>This file is allowed to initialize CUDA context when imported.N)ÚLazyValÚ
TEST_NUMBAÚTEST_WITH_ROCMÚ	TEST_CUDAÚ
IS_WINDOWSÚIS_MACOSÚTEST_XPU)Ú_check_module_existszcuda:0c                  ó   € \         # ©N)r   © ó    Úd/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/testing/_internal/common_cuda.pyÚ<lambda>r      s   € ¥r   c                  ó¤   € \         ;'       dD    \        P                  P                  P	                  \        P
                  ! R \        R7      4      # )ç      ð?©Údevice)r   ÚtorchÚbackendsÚcudnnÚis_acceptableÚtensorÚCUDA_DEVICEr   r   r   r   r      s4   € ¤×!wÐ!w¬u¯~©~×/CÑ/C×/QÑ/QÔRW×R^ÒR^Ð_aÔjuÔRvÓ/wÐ!wr   c                  ón   € \         '       d)   \        P                  P                  P	                  4       # ^ # )é    )Ú
TEST_CUDNNr   r   r   Úversionr   r   r   r   r      s$   € ÇzÃz¤U§^¡^×%9Ñ%9×%AÑ%AÓ%CÐ%XÐWXÐ%Xr   c                  óV  € \         P                  P                  '       d‰   \        ;QJ dB    . R  \         P                  P                  P	                  R4      R,           4       F  NK  	  5# ! R  \         P                  P                  P	                  R4      R,           4       4      # R# )c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir   ©Úint)Ú.0Úvs   & r   Ú	<genexpr>Ú<lambda>.<locals>.<genexpr>   s   é € Ð%WÑ6V°¤c¨!§f fÓ6Vùó   ‚Ú.ºNé   N©r   r   )r   r   ÚhipÚtupleÚsplitr   r   r   r   r      sq   € Ô[`×[hÑ[h×[l×[lÐ[l§¤Ñ%W´e·m±m×6GÑ6G×6MÑ6MÈcÓ6RÐSUÖ6VÓ%W§Ð x Ñ%W´e·m±m×6GÑ6G×6MÑ6MÈcÓ6RÐSUÖ6VÓ%WÓ WÐ xÐrxÐ xr   Úcuptiz"torch.profiler._cupti._cupti_stubsc                  óz   € \         '       g   ^ #  ^ RIHp  V ! 4       P                  4       #   \         d     ^ # i ; i)r   ©Ú
pylibcupti)Ú
TEST_CUPTIÚ"torch.profiler._cupti.cupti_pythonr1   Úget_versionÚ	Exceptionr0   s    r   Ú_cupti_versionr6   )   s5   € ß‹:ÙðÝAÙ‹|×'Ñ'Ó)Ð)øÜô Úðús   �+ «:¹:c                  ó8   € \         ;'       d    \        4       R 8¬  # )iüü )r2   r6   r   r   r   r   r   3   s   € ¤:×#LÐ#L´.Ó2BÀfÑ2LÐ#Lr   c                  óB   €  ^ RI Hp  V ! 4       #   \         d     R# i ; i)r   ©Úis_availableF)Útorch.cuda.graph_annotationsr:   r5   r9   s    r   Ú_cuda_graph_tools_id_availabler<   6   s$   € ð
Ý=Ù‹~ÐøÜô Úðús   ‚ ��c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )é   )r>   é   ©r   Úcudar:   Úget_device_capabilityr   r   r   r   r   D   ó/   € œeŸj™j×5Ñ5Ó7×hÐh¼E¿J¹J×<\Ñ<\Ó<^ÐbhÑ<hÐhr   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )é   )rE   r   r@   r   r   r   r   r   E   rC   r   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )é   ©rG   r   r@   r   r   r   r   r   F   rC   r   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )rG   )rG   r>   r@   r   r   r   r   r   G   rC   r   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )é   ©rK   r   r@   r   r   r   r   r   H   rC   r   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )rK   ©rK   é	   r@   r   r   r   r   r   I   rC   r   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )rO   ©rO   r   r@   r   r   r   r   r   J   rC   r   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )é
   ©rS   r   r@   r   r   r   r   r   K   ó/   € œuŸz™z×6Ñ6Ó8×jÐj¼U¿Z¹Z×=]Ñ=]Ó=_ÐcjÑ=jÐjr   c                  ó�   € \         P                  P                  4       ;'       d"    \         P                  P                  4       R8¬  # )é   )rW   r   r@   r   r   r   r   r   L   rU   r   c                  óþ  € \         P                  P                  4       ;'       dÙ    \         P                  P                  R J;'       dµ    \         P                  P	                  4       R8H  ;'       d6    \        \         P                  P                  R,          4      ^8¬  ;'       gW    \         P                  P	                  4       R8H  ;'       d.    \        \         P                  P                  R,          4      ^8  # )Nr(   )é   r   )rS   é   )r   rA   r:   r   rB   r!   r   r   r   r   r   N   s½   € œ%Ÿ*™*×1Ñ1Ó3÷ ið i¼¿¹×8JÑ8JÐRVÐ8V÷ ið iÜ—J‘J×4Ñ4Ó6¸'ÑA×gÐgÄcÌ%Ï-É-×J\ÑJ\Ð]_ÕJ`ÓFaÐegÑFg÷ hð hÜ—J‘J×4Ñ4Ó6¸'ÑA×fÐfÄcÌ%Ï-É-×J\ÑJ\Ð]_ÕJ`ÓFaÐdfÑFfðir   c                  ó¬   € \         P                  P                  4       ;'       d0    \         P                  P                  4       R9   ;'       g    \        # )rG   ))rG   r)   )rK   rG   )r   rA   r:   rB   ÚIS_THORr   r   r   r   r   Q   s8   € œEŸJ™J×3Ñ3Ó5×}Ð}¼5¿:¹:×;[Ñ;[Ó;]ÐaqÑ;q×;|Ð;|Ôu|Ð}r   c                  óØ   € \         P                  P                  R J ;'       dH    \         P                  P	                  4       ;'       d"    \         P                  P                  4       R8H  # )NrN   ©r   r   r+   rA   r:   rB   r   r   r   r   r   U   óP   € œ%Ÿ-™-×+Ñ+¨tÐ3÷ ?ð ?¼¿
¹
×8OÑ8OÓ8Q÷ ?ð ?Ü—*‘*×2Ñ2Ó4¸Ñ>ð?r   c                  óØ   € \         P                  P                  R J ;'       dH    \         P                  P	                  4       ;'       d"    \         P                  P                  4       R8H  # )NrQ   r^   r   r   r   r   r   W   r_   r   c                  óØ   € \         P                  P                  R J ;'       dH    \         P                  P	                  4       ;'       d"    \         P                  P                  4       R8H  # )NrT   r^   r   r   r   r   r   Y   sU   € œ5Ÿ=™=×,Ñ,°Ð4÷ Að A¼¿¹×9PÑ9PÓ9R÷ Að AÜ—:‘:×3Ñ3Ó5¸Ñ@ðAr   c                  óæ   € \         P                  P                  R J ;'       dO    \         P                  P	                  4       ;'       d)    \         P                  P                  4       ^ ,          ^
8H  # r   r^   r   r   r   r   r   [   óU   € œ5Ÿ=™=×,Ñ,°Ð4÷ ?ð ?¼¿¹×9PÑ9PÓ9R÷ ?ð ?Ü—:‘:×3Ñ3Ó5°aÕ8¸BÑ>ð?r   c                  óæ   € \         P                  P                  R J ;'       dO    \         P                  P	                  4       ;'       d)    \         P                  P                  4       ^ ,          ^8H  # r   r^   r   r   r   r   r   ]   rc   r   c              #   óh  "  € \         P                  P                  P                  4       p\         P                  P                  P                  V 4        R x € \         P                  P                  P                  V4       R #   \         P                  P                  P                  T4       i ; i5ir   )r   r   rA   Úpreferred_blas_library)ÚbackendÚprev_backends   & r   Úblas_library_contextri   `   sn   é € ä—>‘>×&Ñ&×=Ñ=Ó?€LÜ	‡N�N×Ñ×.Ñ.¨wÔ7ðAÛä�‰×Ñ×2Ñ2°<Ö@øŒ�‰×Ñ×2Ñ2°<Õ@üs   ‚AB2ÁB Á+B2Â+B/Â/B2c                 óV  a€ \         P                  P                  4       '       g   R # \         P                  P                  R4      P                  p\
        P                  P                  RV4      o\        ;QJ d    V3R lV  4       F  '       g   K   R# 	  R # ! V3R lV  4       4      # )FrA   Ú/PYTORCH_DEBUG_FLASH_ATTENTION_GCN_ARCH_OVERRIDEc              3   ó,   <"  € T F	  qS9   x € K  	  R # 5ir   r   )r"   ÚarchÚeffective_archs   & €r   r$   Ú+evaluate_gfx_arch_within.<locals>.<genexpr>p   s   øé € Ð<±)¨$�~Ö%³)ùs   ƒT)	r   rA   r:   Úget_device_propertiesÚgcnArchNameÚosÚenvironÚgetÚany)Ú	arch_listÚgcn_arch_namern   s   & @r   Úevaluate_gfx_arch_withinrx   i   st   ø€ Ü�:‰:×"Ñ"×$Ò$ÙÜ—J‘J×4Ñ4°VÓ<×HÑH€MÜ—Z‘Z—^‘^Ð$UÐWdÓe€N÷ ‹3Ô<±)Ó<�3Œ3Ð<Š3Ð<ˆ3Ô<±)Ó<Ó<Ð<r   Úgfx90aÚgfx942Úgfx950Úgfx1250c                  ó    € \        \        4      # r   )rx   Ú_CDNA5_ARCHSr   r   r   ÚCDNA5OrLaterr   z   s   € Ü#¤LÓ1Ð1r   c                  ó6   € \        \        \        ,           4      # r   )rx   Ú_CDNA3_ARCHSr~   r   r   r   ÚCDNA3OrLaterr‚   }   s   € Ü#¤L´<Õ$?Ó@Ð@r   c                  óL   € \        \        \        ,           \        ,           4      # r   )rx   Ú_CDNA2_ARCHSr�   r~   r   r   r   ÚCDNA2OrLaterr…   €   s   € Ü#¤L´<Õ$?Ä,Õ$NÓOÐOr   c                  ó   € \        R R.4      # )rz   r{   )rx   r   r   r   Ú+gfx_arch_supports_opportunistic_fastatomicsr‡   †   s   € Ü# X¨xÐ$8Ó9Ð9r   c                  ó  € \         '       d@   . ROp \        P                  P                  RR4      R8w  d   V . RO,          p \	        V 4      # \
        '       d   \        '       * ;'       d    \        # \        '       d   R# R# ©ry   Ú'TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTALÚ0TF)ry   rz   Úgfx1100Úgfx1201r{   )Úgfx1101Úgfx1102Úgfx1150Úgfx1151Úgfx1200)	r   rr   rs   rt   rx   r   r   ÚSM80OrLaterr   ©rv   s    r   Ú*evaluate_platform_supports_flash_attentionr•   ‰   s]   € ßƒ~ò Iˆ	Ü�:‰:�>‰>ÐCÀSÓIÈSÔPØÒPÕPˆIÜ'¨	Ó2Ð2ßƒyÜŒ~×-Ð-¤+Ð-ßƒxÙÙr   c                  ón   € \         '       d)   \        P                  P                  P	                  4       # R # )F)r   r   r   rA   Úis_ck_sdpa_availabler   r   r   Ú"evaluate_platform_supports_ck_sdpar˜   œ   s#   € ßƒ~Ü�~‰~×"Ñ"×7Ñ7Ó9Ð9ár   c                  óÔ   € \         '       d@   . ROp \        P                  P                  RR4      R8w  d   V . RO,          p \	        V 4      # \
        '       d   R# \        '       d   R# R# r‰   )r   rr   rs   rt   rx   r   r   r”   s    r   Ú.evaluate_platform_supports_efficient_attentionrš   ¢   sP   € ßƒ~ò Iˆ	Ü�:‰:�>‰>ÐCÀSÓIÈSÔPØÒPÕPˆIÜ'¨	Ó2Ð2ßƒyÙßƒxÙÙr   c                  óV   € \         '       * ;'       d    \        ;'       d
    \        R 8¬  # )i�_ )r   r“   ÚTEST_CUDNN_VERSIONr   r   r   Ú*evaluate_platform_supports_cudnn_attentionr�   ³   s!   € ÜÔ×QÐQ¤K×QÐQÔ5GÈ5Ñ5PÐQr   c                  óF   € ^ RI Hp   V ! 4        R#   \         d     R# i ; i)r   ©Ú_ensure_supportedTF)Útorch.cuda.green_contextsr    ÚRuntimeErrorrŸ   s    r   Ú(evaluate_platform_supports_green_contextr£   ¶   s%   € Ý;ðÙÔÙøÜô Úðús   ˆ ‘ Ÿ c                  ó   € \        4       # r   )r•   r   r   r   r   r   ¾   ó   € Ô:dÔ:fr   c                  ó   € \        4       # r   )rš   r   r   r   r   r   ¿   s   € Ô<jÔ<lr   c                  ó   € \        4       # r   )r�   r   r   r   r   r   À   r¥   r   c                  óF   € \         ;'       g    \        ;'       g    \        # r   )Ú!PLATFORM_SUPPORTS_FLASH_ATTENTIONÚ!PLATFORM_SUPPORTS_CUDNN_ATTENTIONÚ#PLATFORM_SUPPORTS_MEM_EFF_ATTENTIONr   r   r   r   r   Â   s)   € Ô:[÷ ;Vð ;VÜ2S÷;Vð ;Vä2Uð;Vr   c                  ó   € \        4       # r   )r˜   r   r   r   r   r   È   ó   € Ô2TÔ2Vr   c                  ó²   € \         P                  P                  '       d   \        # \         P                  P                  '       d   R # \
        '       d   R # R# )TF)r   r   rA   r“   r+   r   r   r   r   Úevaluate_platform_supports_bf16r¯   Ë   s6   € Ü‡}�}××ÐÜÐÜ	�‰×	×	Ð	Ùß	‹ÙÙr   c                  ó¤   € \         P                  P                  '       d   \        # \         P                  P                  '       d
   \
        R8¬  # R# )rK   FrL   )r   r   rA   r“   r+   ÚROCM_VERSIONr   r   r   Ú'evaluate_platform_supports_bf16_atomicsr²   Õ   s6   € Ü‡}�}××ÐÜÐÜ	�‰×	×	Ð	Ü˜vÑ%Ð%Ùr   c                  óX   € \         P                  P                  '       d
   \        R8¬  # R# )rK   TrL   )r   r   r+   r±   r   r   r   Ú'evaluate_platform_supports_half_atomicsr´   Ý   s    € Ü‡}�}××ÐÜ˜vÑ%Ð%Ùr   c                  ó   € \        4       # r   )r¯   r   r   r   r   r   ã   s   € Ô/NÔ/Pr   c                  ó   € \        4       # r   )r²   r   r   r   r   r   ä   ó   € Ô7^Ô7`r   c                  ó   € \        4       # r   )r´   r   r   r   r   r   å   r·   r   c                  ó   € \        4       # r   )r£   r   r   r   r   r   ç   s   € Ô8`Ô8br   c                  óX   € ^ RI Hp Hp  V ! 4        V! 4        R#   \         d     R# i ; i)r   ©r    Ú_ensure_workqueue_supportedTF)r¡   r    r¼   r¢   r»   s     r   Ú+evaluate_platform_supports_workqueue_configr½   é   s+   € ßXðÙÔÙ#Ô%ÙøÜô Úðús   Š š)¨)c                  ó   € \        4       # r   )r½   r   r   r   r   r   ò   ó   € Ô;fÔ;hr   c                  ó`  € \         P                  P                  4       '       dä   \         P                  P                  '       d•   R .p \
        R8¼  d   V P                  R.4       \
        R8¼  d   V P                  R4       \
        R8¼  d   V P                  R4       V  F4  pV\         P                  P                  ^ 4      P                  9   g   K3   R# 	  R# \        ;'       g"    \         P                  P                  4       R	8H  # \         P                  P                  4       '       d   R# R# )
Úgfx94Úgfx120Úgfx95r|   TF)rE   r?   )rE   r>   ©rG   é   rN   )r   rA   r:   r   r+   r±   ÚextendÚappendrp   rq   ÚSM90OrLaterrB   Úxpu©Úarchsrm   s     r   Úevaluate_platform_supports_fp8rÌ   ô   sÒ   € Ü‡z�z×Ñ× Ò Ü�=‰=××ÐØ�IˆEÜ˜vÔ%Ø—‘˜h˜ZÔ(Ü˜vÔ%Ø—‘˜WÔ%Ü˜wÔ&Ø—‘˜YÔ'Û�Øœ5Ÿ:™:×;Ñ;¸AÓ>×JÑJÖJÚñ ñ ä×NÐN¤%§*¡*×"BÑ"BÓ"DÈÑ"NÐNÜ‡y�y×Ñ×ÒÙár   c                  óŠ  € \         P                  P                  4       '       dŸ   \         P                  P                  '       df   R \         P
                  P                  4       9  d   R# RR.p V  F4  pV\         P                  P                  ^ 4      P                  9   g   K3   R# 	  R# \        ;'       d    \        '       * # R# )ÚUSE_MSLKFrz   r{   T)r   rA   r:   r   r+   Ú
__config__Úshowrp   rq   rÈ   ÚSM100OrLaterrÊ   s     r   Ú+evaluate_platform_supports_fp8_grouped_gemmrÒ   	  s�   € Ü‡z�z×Ñ× Ò Ü�=‰=××ÐØ¤×!1Ñ!1×!6Ñ!6Ó!8Ô8Ùð ˜xÐ(ˆEÛ�Øœ5Ÿ:™:×;Ñ;¸AÓ>×JÑJÖJÚñ ñ
 ô ×3Ð3¤|Ô#3Ð3Ùr   c                  ó–  € \         P                  P                  4       '       d   \         P                  P                  '       dY   \
        R8¼  dM   \         P                  P                  ^ 4      P                  p RV 9   ;'       g    RV 9   ;'       d
    \
        R8¬  # M\        # \         P                  P                  4       '       d   R# R# )rG   r{   r|   TFrH   rÄ   )
r   rA   r:   r   r+   r±   rp   rq   rÑ   rÉ   )Úgcn_names    r   Ú"evaluate_platform_supports_mx_gemmrÕ     s“   € Ü‡z�z×Ñ× Ò Ü�=‰=××ÐÜ˜vÔ%Ü Ÿ:™:×;Ñ;¸AÓ>×JÑJ�Ø 8Ñ+×bÐb°	¸XÑ0E×0aÐ0aÌ,ÐZaÑJaÐbð &ô  ÐÜ‡y�y×Ñ×ÒÙÙr   c                  óð   € \         P                  P                  4       '       dR   \         P                  P                  '       g2   R \         P
                  P                  4       9   p T ;'       d    \        # R# )rÎ   F)r   rA   r:   r   r+   rÏ   rÐ   ÚIS_SM100)Úbuilt_with_mslks    r   Ú-evaluate_platform_supports_mxfp8_grouped_gemmrÙ   $  sN   € Ü‡z�z×Ñ× Ò ¬¯©×):×):Ð):Ø$¬×(8Ñ(8×(=Ñ(=Ó(?Ñ?ˆØ×+Ð+¤8Ð+Ùr   c                  ó
  € \         P                  P                  4       '       dß   \         P                  P                  '       d-   R \         P                  P                  ^ 4      P                  9   # \        ;'       g*    \         P                  P                  4       R8H  ;'       d\    \         P                  P                  P                  4       ;'       d,    \         P                  P                  P                  4       R8¬  # R# )r{   iZ  FrN   )r   rA   r:   r   r+   rp   rq   rÈ   rB   r   Ú
cusparseltr   r   r   Ú%evaluate_platform_supports_fp8_sparserÜ   *  s³   € Ü‡z�z×Ñ× Ò Ü�=‰=××ÐØœuŸz™z×?Ñ?ÀÓB×NÑNÑNÐNô ×LÐL¤§
¡
× @Ñ @Ó BÀfÑ L÷ ?ð ?Ü—N‘N×-Ñ-×:Ñ:Ó<÷?ð ?ä—N‘N×-Ñ-×5Ñ5Ó7¸3Ñ>ðñ
 r   c                  ó   € \        4       # r   )rÕ   r   r   r   r   r   6  r­   r   c                  ó   € \        4       # r   )rÌ   r   r   r   r   r   7  s   € Ô.LÔ.Nr   c                  ó   € \        4       # r   )rÜ   r   r   r   r   r   8  s   € Ô5ZÔ5\r   c                  ó   € \        4       # r   )rÒ   r   r   r   r   r   9  r¿   r   c                  ó   € \        4       # r   )rÙ   r   r   r   r   r   :  s   € Ô=jÔ=lr   Fc                  óæ   € \         '       g   \        R 4      h\        '       gN   \        \        P
                  P                  4       4       F  p \        P                  ! ^RV  2R7       K   	  RsR# R# )z?CUDA must be available when calling initialize_cuda_context_rngzcuda:r   TN)r   ÚAssertionErrorÚ__cuda_ctx_rng_initializedÚranger   rA   Údevice_countÚrandn)Úis    r   Úinitialize_cuda_context_rngré   L  sT   € ç‹9ÜÐ^Ó_Ð_ß%Ó%ä”u—z‘z×.Ñ.Ó0Ö1ˆAÜ�KŠK˜ E¨!¨ +×.ñ 2à%)Ò"ñ	 &r   c            	   #   ó   "  € \         ;_uu_ 4        \        ^ 8X  d™   \        P                  P                  P
                  P                  sR\        P                  P                  P
                  n        \        P                  P                  P                  RRRRR7      s\        P                  4        \        ^,          sRRR4        Rx € \         ;_uu_ 4        \        ^,          s\        ^ 8X  dI   \        P                  RRR4       Rs\        \        P                  P                  P
                  n        RsRRR4       R#   + '       g   i     LŽ; i  + '       g   i     R# ; i  \         ;_uu_ 4        \        ^,          s\        ^ 8X  dI   \        P                  RRR4       Rs\        \        P                  P                  P
                  n        RsRRR4       i   + '       g   i     i ; i; i5i)r   FN©ÚenabledÚ	benchmarkÚdeterministicÚ
allow_tf32)Ú_tf32_off_lockÚ_tf32_off_depthr   r   rA   ÚmatmulÚfp32_precisionÚ_tf32_off_saved_precisionrï   r   ÚflagsÚ_tf32_off_cudnn_ctxÚ	__enter__Ú__exit__r   r   r   Útf32_offrù   ]  sT  é € ÷ 
ŽÜ˜aÔô ).¯©×(;Ñ(;×(BÑ(B×(QÑ(QÐ%Ø49ŒE�N‰N×Ñ×&Ñ&Ô1Ü"'§.¡.×"6Ñ"6×"<Ñ"<ÀTÐUYÐimÐzÐ"<ó  #AÐÜ×)Ñ)Ô+Ü˜1Õˆ÷ 
ð	1ÛçŽ^Ü˜qÕ ˆOÜ !Ô#Ü#×,Ñ,¨T°4¸Ô>Ø&*Ð#Ü<U”—‘×#Ñ#×*Ñ*Ô9Ø,0Ð)÷ ‰^÷ 
�ú÷ �^ˆ^û�^Ž^Ü˜qÕ ˆOÜ !Ô#Ü#×,Ñ,¨T°4¸Ô>Ø&*Ð#Ü<U”—‘×#Ñ#×*Ñ*Ô9Ø,0Ð)÷ �^�^ˆ^ÿsg   ‚G>‘B1EÃG>ÃE/ ÃG>ÃA!EÄ>
G>ÅE	ÅG>ÅE,	Å&	G>Å/G;Å>A!G(	Ç	G;Ç(G8Ç3G;Ç;G>c              #   óR  "  € \         P                  P                  P                  P                  pV P
                  p R \         P                  P                  P                  n        Wn        \         P                  P                  P                  RRRR R7      ;_uu_ 4        Rx € RRR4       V\         P                  P                  P                  n        W0n        R#   + '       g   i     LA; i  T\         P                  P                  P                  n        Y0n        i ; i5i)TNrë   )	r   r   rA   rò   ró   Ú	precisionrï   r   rõ   )ÚselfÚtf32_precisionÚold_fp32_precisionÚold_precisions   &&  r   Útf32_onr   {  sÅ   é € äŸ™×,Ñ,×3Ñ3×BÑBÐØ—N‘N€Mð'Ø04Œ�‰×Ñ×"Ñ"Ô-Ø'ŒÜ�^‰^×!Ñ!×'Ñ'°ÀÐTXÐeiÐ'×jÕjÛ÷ kð 5GŒ�‰×Ñ×"Ñ"Ô1Ø&Ž÷	 k×jûð 5GŒ�‰×Ñ×"Ñ"Ô1Ø&�üs5   ‚;D'¾A$C3 Â"C Â'C3 Â/1D'Ã C0	Ã+C3 Ã31D$Ä$D'c               #  ó  "  € \         P                  P                  P                  P                  p  R\         P                  P                  P                  n        \         P                  P                  P                  RRRRR7      ;_uu_ 4        Rx € RRR4       V \         P                  P                  P                  n        R#   + '       g   i     L;; i  T \         P                  P                  P                  n        i ; i5i)z}
Context manager to temporarily enable TF32 for CUDA operations.
Restores the previous TF32 state after exiting the context.
TNrë   )r   r   rA   rò   ró   rï   r   rõ   )rþ   s    r   Útf32_enabledr  ‰  s·   é € ô Ÿ™×,Ñ,×3Ñ3×BÑBÐðGØ04Œ�‰×Ñ×"Ñ"Ô-Ü�^‰^×!Ñ!×'Ñ'Ø D¸Èð (÷ 
õ 
ó ÷
ð
 5GŒ�‰×Ñ×"Ñ"Ö1÷
÷ 
ûð
 5GŒ�‰×Ñ×"Ñ"Õ1üs5   ‚/D	²AC ÂCÂC Â+D	ÃC	ÃC Ã+DÄD	Úonly_ifTc                ó0   a aaa€ R  oV 3R loVVV3R lpV# )c                 ór   € \        4       ;_uu_ 4        V! 4        R R R 4       R #   + '       g   i     R # ; ir   ©rù   )rü   Úfunction_calls   &&r   Úwith_tf32_disabledÚ+tf32_on_and_off.<locals>.with_tf32_disabled·  s   € Ü�Z�ZÙŒO÷ �Z�ZŠZús   “%¥6	c                 óx   <€ \        V S4      ;_uu_ 4        V! 4        R R R 4       R #   + '       g   i     R # ; ir   )r   )rü   r  rý   s   &&€r   Úwith_tf32_enabledÚ*tf32_on_and_off.<locals>.with_tf32_enabled»  s$   ø€ Ü�T˜>×*Õ*ÙŒO÷ +×*×*Ò*ús   –(¨9	c                 óÄ   <a a€ \         P                  ! S 4      P                  p\        VP	                  4       4      o\
        P                  ! S 4      VV VVV3R  l4       pV# )c                  óø  <a€ SP                  \        SV R R7      4       \        P                  P	                  4       ;'       d    SpRS9   d5   T;'       d+    \        P
                  ! SR,          4      P                  R8H  pRS9   d5   T;'       d+    SR,          \        P                  \        P                  09   pV'       d-   S! SR,          VV3R l4       S! SR,          VV3R l4       R# S! R	/ SB  R# )
F©Ústrictr   rA   Údtyperü   c                  ó   <€ S ! R/ SB # ©Nr   r   ©ÚfÚkwargss   €€r   r   ÚCtf32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>Ì  s   ø€ ¹1¹;¸vº;r   c                  ó   <€ S ! R/ SB # r  r   r  s   €€r   r   r  Í  s   ø€ ¹!¹+¸fº+r   Nr   )	ÚupdateÚzipr   rA   Úis_tf32_supportedr   ÚtypeÚfloat32Ú	complex64)Úargsr  ÚcondÚ	arg_namesr  r  r  r  s   *l €€€€€r   ÚwrappedÚ1tf32_on_and_off.<locals>.wrapper.<locals>.wrappedÃ  sµ   ù€ à�M‰Mœ#˜i¨°eÔ<Ô=Ü—:‘:×/Ñ/Ó1×=Ð=°gˆDØ˜6Ô!Ø×OÐO¤§¢¨f°XÕ.>Ó!?×!DÑ!DÈÑ!N�Ø˜&Ô Ø×UÐU ¨¥´U·]±]ÄEÇOÁOÐ4TÑ!T�ßÙ" 6¨&¥>Õ3FÔGÙ! &¨¥.Õ2EÖFá‘�F”r   )ÚinspectÚ	signatureÚ
parametersr,   ÚkeysÚ	functoolsÚwraps)r  Úparamsr"  r!  r  r  r  s   f  @€€€r   ÚwrapperÚ tf32_on_and_off.<locals>.wrapper¿  sP   ú€ Ü×"Ò" 1Ó%×0Ñ0ˆÜ˜&Ÿ+™+›-Ó(ˆ	ä	�Š˜Ó	÷	ð 	ó 
ð	ð ˆr   r   )rý   r  r+  r  r  s   fd @@r   Útf32_on_and_offr-  ¶  s   û€ òõ÷ð& €Nr   c                 óF   a € \         P                  ! S 4      V 3R  l4       pV# )c                  óv   <€ \        4       ;_uu_ 4        S! V / VB uuR R R 4       #   + '       g   i     R # ; ir   r  )r  r  r  s   *,€r   r"  Úwith_tf32_off.<locals>.wrappedÚ  s#   ø€ ä�Z�ZÙ�dÐ%˜fÑ%÷ �Z�Z‹Zús   ”'§8	©r(  r)  )r  r"  s   f r   Úwith_tf32_offr2  Ù  s%   ø€ Ü‡_‚_�QÓô&ó ð&ð €Nr   c                  óÈ  € R \         P                  P                  4       9  d   R# \         P                  P                  4       P                  R4      p \         P                  P                  4       V \	        R4      ,           R P                  R4      ^ ,          p\        ;QJ d#    . R VP                  R4       4       F  NK  	  5# ! R VP                  R4       4       4      # )ÚMagmazMagma NÚ
c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir   r    ©r"   Úxs   & r   r$   Ú%_get_magma_version.<locals>.<genexpr>æ  s   é € Ð8Ñ!7˜A”�Q—�Ó!7ùr&   r'   r*   )r   rÏ   rÐ   ÚfindÚlenr-   r,   )ÚpositionÚversion_strs     r   Ú_get_magma_versionr>  á  s«   € Ø”e×&Ñ&×+Ñ+Ó-Ô-ØˆÜ×Ñ×$Ñ$Ó&×+Ñ+¨HÓ5€HÜ×"Ñ"×'Ñ'Ó)¨(´S¸³]Õ*BÐ*CÐD×JÑJÈ4ÓPÐQRÕS€KßŒ5Ñ8 ×!2Ñ!2°3Ô!7Ó8�5Ð8ˆ5Ñ8 ×!2Ñ!2°3Ô!7Ó8Ó8Ð8r   c                  ó  € \         P                  P                  f   R# \        \         P                  P                  4      p \        ;QJ d#    . R V P                  R4       4       F  NK  	  5# ! R V P                  R4       4       4      # )Nc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir   r    r7  s   & r   r$   Ú*_get_torch_cuda_version.<locals>.<genexpr>ì  ó   é € Ð9Ñ!8˜A”�Q—�Ó!8ùr&   r'   r*   )r   r   rA   Ústrr,   r-   )Úcuda_versions    r   Ú_get_torch_cuda_versionrE  è  sc   € Ü‡}�}×ÑÒ!ØˆÜ”u—}‘}×)Ñ)Ó*€LßŒ5Ñ9 ×!3Ñ!3°CÔ!8Ó9�5Ð9ˆ5Ñ9 ×!3Ñ!3°CÔ!8Ó9Ó9Ð9r   c                  ód  € \         '       d   \        P                  P                  f   R# \	        \        P                  P                  4      p V P                  R^R7      ^ ,          p \        ;QJ d#    . R V P                  R4       4       F  NK  	  5# ! R V P                  R4       4       4      # )NÚ-)Úmaxsplitc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir   r    r7  s   & r   r$   Ú*_get_torch_rocm_version.<locals>.<genexpr>ó  rB  r&   r'   r*   )r   r   r   r+   rC  r-   r,   )Úrocm_versions    r   Ú_get_torch_rocm_versionrL  î  s�   € ß‹>œUŸ]™]×.Ñ.Ò6ØˆÜ”u—}‘}×(Ñ(Ó)€LØ×%Ñ% c°AÐ%Ó6°qÕ9€LßŒ5Ñ9 ×!3Ñ!3°CÔ!8Ó9�5Ð9ˆ5Ñ9 ×!3Ñ!3°CÔ!8Ó9Ó9Ð9r   c                  óò   € \         '       g   R #  \        P                  P                  4       p V e   V ^ 8X  d   R # V R,          pV R,          ^d,          pV ^d,          pWV3#   \        \
        3 d     R # i ; i)Ni'  )r   r   Ú_CÚ_cuda_getHipblasltVersionÚAttributeErrorr¢   )Úversion_intÚmajorÚminorÚpatchs       r   Ú_get_torch_hipblaslt_versionrU  õ  sx   € ß‹>Ùðô —h‘h×8Ñ8Ó:ˆØÒ +°Ô"2ÙØ˜uÕ$ˆØ˜uÕ$¨Õ,ˆØ˜cÕ!ˆØ˜eÐ$Ð$øÜœLÐ)ô Úðús   �)A! »%A! Á!A6Á5A6c                  ó   € \         '       * # r   )r   r   r   r   Ú!_check_cusparse_generic_availablerW    s   € ÜÔÐr   c                  óV   € \         ;'       d    \        P                  P                  R J# r   )r   r   r   r+   r   r   r   Ú"_check_hipsparse_generic_availablerY    s   € Ü×;Ð;œeŸm™m×/Ñ/°tÐ;Ð;r   rA   c                 óB  € \         P                  P                  \         P                  P                  ^^4      \         P                  P                  ^^4      4      P	                  V R7      p\         P                  P                  \         P                  P                  ^^4      \         P                  P                  ^^4      4      P	                  V R7      p\         P
                  ! 4       ;_uu_ 4        \        VP                  4       VP                  4       RR7       F  w  rVVP                  V4       K  	  RRR4       RR/pVe   VP                  V4       V! VP                  4       3/ VB pV! VP                  4       3/ VB p	W4W‰3#   + '       g   i     L[; i)rK   r   Tr  NÚlrr   )
r   ÚnnÚ
SequentialÚLinearÚtoÚno_gradr  r&  Úcopy_r  )
r   Úoptimizer_ctorÚoptimizer_kwargsÚmod_controlÚmod_scalingÚcÚsr  Úopt_controlÚopt_scalings
   &&&       r   Ú!_create_scaling_models_optimizersrj    s1  € ô —(‘(×%Ñ%¤e§h¡h§o¡o°a¸Ó&;¼U¿X¹X¿_¹_ÈQÐPQÓ=RÓS×VÑVÐ^dÐVÓe€KÜ—(‘(×%Ñ%¤e§h¡h§o¡o°a¸Ó&;¼U¿X¹X¿_¹_ÈQÐPQÓ=RÓS×VÑVÐ^dÐVÓe€KÜ	�Š��Ü˜×.Ñ.Ó0°+×2HÑ2HÓ2JÐSW×X‰DˆAØ�G‰G�AŽJñ Y÷ 
ð �Cˆ[€FØÒ#Ø�‰Ð&Ô'Ù  ×!7Ñ!7Ó!9ÑD¸VÑD€KÙ  ×!7Ñ!7Ó!9ÑD¸VÑD€Kà [Ð=Ð=÷ 
�ús   Ã6AFÆF	c           
      ó  € \         P                  ! RWR7      \         P                  ! RWR7      3\         P                  ! RWR7      \         P                  ! RWR7      3\         P                  ! RWR7      \         P                  ! RWR7      3\         P                  ! RWR7      \         P                  ! RWR7      3.p\         P                  P                  4       P	                  V 4      p^p\        WVR7      WEV3,           # )rK   )r  r   )r   rb  rc  )rK   rK   )r   rç   r\  ÚMSELossr_  rj  )r   r  rb  rc  ÚdataÚloss_fnÚ	skip_iters   &&&&   r   Ú_create_scaling_caserp  "  sÊ   € Ü�[Š[˜ uÔ<¼e¿kºkÈ&ÐX]Ô>mÐnÜ�[Š[˜ uÔ<¼e¿kºkÈ&ÐX]Ô>mÐnÜ�[Š[˜ uÔ<¼e¿kºkÈ&ÐX]Ô>mÐnÜ�[Š[˜ uÔ<¼e¿kºkÈ&ÐX]Ô>mÐnðp€Dô
 �h‰h×ÑÓ ×#Ñ# FÓ+€Gà€Iä,ØÐGWôà	˜	Ð"õ#ð #r   c                 óJ   € \         '       g   V # \        P                  ! V 4      # r   )ÚIS_SM89ÚunittestÚexpectedFailure©Úfuncs   &r   ÚxfailIfSM89rw  1  ó   € ß“wˆ4ÐB¤H×$<Ò$<¸TÓ$BÐBr   c                 óJ   € \         '       g   V # \        P                  ! V 4      # r   )ÚIS_SM90rs  rt  ru  s   &r   ÚxfailIfSM90r{  4  rx  r   c                óh   € \         '       d&   \        4       R8  d   \        P                  ! V 4      # V # )zUxfail on SM89 only for CUDA < 13. On CUDA 13+, test should pass on all architectures.)é   r   )rr  rE  rs  rt  ru  s   &r   ÚxfailIfSM89PreCUDA13r~  7  s(   € çƒwÔ*Ó,¨wÔ6Ü×'Ò'¨Ó-Ð-Ø€Kr   c                 óf   € \         '       d   V # \        '       g   V # \        P                  ! V 4      # r   )r   rÑ   rs  rt  ru  s   &r   ÚxfailIfSM100OrLaterr€  =  s(   € ÷
 ƒ~Øˆß#“|ˆ4ÐG¬×)AÒ)AÀ$Ó)GÐGr   c                 óf   € \         '       d   V # \        '       g   V # \        P                  ! V 4      # r   )r   ÚSM120OrLaterrs  rt  ru  s   &r   ÚxfailIfSM120OrLaterrƒ  F  s&   € ßƒ~Øˆß#“|ˆ4ÐG¬×)AÒ)AÀ$Ó)GÐGr   c                 óJ   € \         '       g   V # \        P                  ! V 4      # r   )ÚIS_SM12Xrs  rt  ru  s   &r   ÚxfailIfSM12Xr†  K  s   € ß“xˆ4ÐC¤X×%=Ò%=¸dÓ%CÐCr   c                 ób   € \         '       g   \        '       g   V # \        P                  ! V 4      # r   )r   Ú	IS_JETSONrs  rt  ru  s   &r   ÚxfailIfDistributedNotSupportedr‰  N  s    € ß ›§I£Iˆ4ÐR´H×4LÒ4LÈTÓ4RÐRr   c                óF   a € \         P                  ! S 4      V 3R l4       pV# )a  Wraps a test to xfail when running on a CUDA device.

Works for both device-parameterized tests (device_type == "cuda") and plain
TestCase CUDA tests (device_type is None). Only passes through for tests
explicitly running on a non-CUDA device type (e.g. "cpu", "xpu").
c                 ó  <€ ^ RI p\        V RR4      pVe   VR8w  d   S! V .VO5/ VB #  S! V .VO5/ VB  \        RSP                   R24      h  \         d,   pTP                  RSP                   RT 24        Rp?LJRp?ii ; i)r   NÚdevice_typerA   zExpected failure for z: zTest z$ was expected to fail but succeeded.)ÚpytestÚgetattrr5   ÚxfailÚ__name__rã   )Úslfr  r  r�  rŒ  ÚeÚtest_fns   &*,   €r   r+  Ú/_xfail_cuda_on_windows_wrapper.<locals>.wrapperX  s¤   ø€ ãÜ˜c =°$Ó7ˆØÒ" {°fÔ'<Ù˜3Ð0 Ò0¨Ñ0Ð0ð	JÙ�CÐ)˜$Ò) &Ò)ô ˜u W×%5Ñ%5Ð$6Ð6ZÐ[Ó\Ð\øô ô 	JØ�L‰LÐ0°×1AÑ1AÐ0BÀ"ÀQÀCÐH×IÑIûð	Jús   «A ÁBÁ!BÂBr1  )r“  r+  s   f r   Ú_xfail_cuda_on_windows_wrapperr•  Q  s)   ø€ ô ‡_‚_�WÓô
]ó ð
]ð €Nr   c                óL   € \         '       d   \        '       d   \        V 4      # T # )zÉMark a CUDA test as expected failure on Windows with SM >= 8.9.

Works for both device-parameterized tests and plain TestCase CUDA tests.
CPU/XPU variants of device-parameterized tests are unaffected.
)r   ÚSM89OrLaterr•  )r“  s   &r   ÚxfailCUDAIfSM89OrLaterOnWindowsr˜  g  s   € ÷ 7A³jÇ[Ã[Ô)¨'Ó2Ð]ÐV]Ð]r   z2Requires CUDA {}.{} to match Tritons ptxas versionz(CUDA should not be initialized on importc                ó˜  € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R	&   ^	\         9   d
   \        ;R
&   ^
\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   # )r)   r©   r«   rª   Ú!PLATFORM_SUPPORTS_FUSED_ATTENTIONÚPLATFORM_SUPPORTS_FUSED_SDPAÚPLATFORM_SUPPORTS_CK_SDPAÚPLATFORM_SUPPORTS_BF16ÚPLATFORM_SUPPORTS_BF16_ATOMICSÚPLATFORM_SUPPORTS_HALF_ATOMICSÚPLATFORM_SUPPORTS_GREEN_CONTEXTÚ"PLATFORM_SUPPORTS_WORKQUEUE_CONFIGÚPLATFORM_SUPPORTS_MX_GEMMÚPLATFORM_SUPPORTS_FP8ÚPLATFORM_SUPPORTS_FP8_SPARSEÚ"PLATFORM_SUPPORTS_FP8_GROUPED_GEMMÚ$PLATFORM_SUPPORTS_MXFP8_GROUPED_GEMM)Ú__conditional_annotations__Úbool)Úformats   "r   Ú__annotate__rª     sn  € × EÑ E÷v hÒ g¤4Ñ gñw F÷x nÒ m¤TÑ mñy F÷z hÒ g¤4Ñ gñ{ F÷~Wò W¤4ñ Wñ F÷F FÒ EœdÑ EñG F÷J XÒ Wœ4Ñ WñK F÷@ RÒ QœÑ QñA F÷B bÒ a¤Ñ añC F÷D bÒ a¤Ñ añE F÷H dÒ c¤Ñ cñI F÷^ jÒ i¤DÑ iñ_ F÷f	 XÒ Wœ4Ñ Wñg	 F÷h	 PÒ O”tÑ Oñi	 F÷j	 ^Ò ]œdÑ ]ñk	 F÷l	 jÒ i¤DÑ iñm	 F÷n	 nÒ m¤dÑ mòo	 Fr   )gñhãˆµøä>)rW   rK   )�r§  Ú__doc__r(  Ú	threadingr   Ú
torch.cudaÚ$torch.testing._internal.common_utilsr   r   r   r   r   r   r   Útorch.utils._import_utilsr	   r$  Ú
contextlibrr   rs  rA   Úis_initializedÚ"CUDA_ALREADY_INITIALIZED_ON_IMPORTræ   ÚTEST_MULTIGPUr   r   r   rœ   r±   r2   r6   ÚTEST_CUPTI_V13_3r<   ÚTEST_CUDA_GRAPH_TOOLS_IDÚSM53OrLaterÚSM60OrLaterÚSM70OrLaterÚSM75OrLaterr“   r—  rÈ   rÑ   r‚  r\   rˆ  rr  rz  r×   ÚIS_SM10Xr…  Úcontextmanagerri   rx   r„   r�   r~   r   r‚   r…   r‡   r•   r˜   rš   r�   r£   r©   r«   rª   rš  r›  rœ  r¯   r²   r´   r�  rž  rŸ  r   r½   r¡  rÌ   rÒ   rÕ   rÙ   rÜ   r¢  r£  r¤  r¥  r¦  Ú
numba.cudaÚnumbar:   ÚTEST_NUMBA_CUDAÚImportErrorr¢   ÚOSErrorrä   ré   ÚLockrð   rñ   rô   rö   rù   r   r  r-  r2  r>  rE  rL  rU  rW  rY  ÚTEST_CUSPARSE_GENERICÚTEST_HIPSPARSE_GENERICÚoptimÚSGDrj  Úfloatrp  rw  r{  r~  r€  rƒ  r†  r‰  r•  r˜  ÚTRITON_PTXAS_VERSIONÚskipIfr   rÉ   r+   r©  Úrequires_triton_ptxas_compatrã   rª  )r§  s   @r   Ú<module>rÊ     s…  øðö Fã Û Û Û ß × Ñ Ý :Û Û Û 	Û ð &+§Z¡Z×%>Ñ%>Ó%@Ð "ð ×<Ð<˜eŸj™j×5Ñ5Ó7¸1Ñ<€ß(1ˆe�lŠl˜8Ô$°t€çÙÑ*Ó+�JáÑwÓx€JáÑXÓYÐ ÙÑxÓy€ñ ˜Ó!÷ ð ÙÐAÓB÷ð àÔð òñ ÑLÓMÐ ò	ñ #Ð#AÓBÐ áÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑhÓi€ÙÑjÓk€ÙÑjÓk€á
ñ ió j€ñ Ñ}Ó~€	ñ ñ ?ó @€á
ñ ?ó @€áñ Aó B€áñ ?ó @€áñ ?ó @€ð ×ÑñAó ðAò=ð ˆz€Ø˜(Ð#€àˆ{€ò2òAòPò:òò&òò"Ròñ +2Ñ2fÓ*gÐ !Ó gÙ,3Ñ4lÓ,mÐ #Ó mÙ*1Ñ2fÓ*gÐ !Ó gá*1ñ 3Vó +WÐ !ó Wð &/×%EÐ%E°~Ô3EÐ Ó Eá")Ñ*VÓ"WÐ Ó Wòòòñ  'Ñ'PÓQÐ Ó QÙ'.Ñ/`Ó'aÐ Ó aÙ'.Ñ/`Ó'aÐ Ó aá(/Ñ0bÓ(cÐ Ó còñ ,3Ñ3hÓ+iÐ "Ó iòò*ò
òò
ñ #*Ñ*VÓ"WÐ Ó WÙ%Ñ&NÓOÐ Ó OÙ%,Ñ-\Ó%]Ð Ó ]Ù+2Ñ3hÓ+iÐ "Ó iÙ-4Ñ5lÓ-mÐ $Ó mçðÛØŸ*™*×1Ñ1Ó3‰ð
 €Oð #Ð ò*ð —’Ó!€Ø€Ø Ð ØÐ ð ×Ññ1ó ð1ð: ×Ñó
'ó ð
'ð ×ÑñGó ðGñX°Dõ òFò9ò:ò:òò ò<ñ :Ó;Ð Ù;Ó=Ð ð .4ÀEÇKÁKÇOÁOÐfjô >ð$ !'¨e¯k©kÈ%Ï+É+Ï/É/Ðlpô #òCòCòòHòHò
DòSòò,^ð Ð Ø'Ÿ›°5·=²=×3DÒ3DÔ/D÷ 0dð 0dØ38·=²=×3DÒ3DÈÐ3L÷0dð 0dá3JÓ3LÐOcÑ3cØ/c×/jÓ/jð  mAñ  0Bó CÐ ÷ *Ø‡z�z× Ñ ×"Ò"ÙÐGÓHÐHñ #ñ *øðq	 ˜ wÐ/ô ØˆØ‹
ðús   ËQ6 Ñ6RÒR