+
    öÙ†jú%  ã                   óÚ   € ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RIH	t	 ^ RI
Ht ^ RI
Ht ^RIHt ^RIHt  ^ R	IHt R tR tR R ltR tR R ltR#   ] d    ^ RItR
 t L'i ; i)é    N)Ú
isabstract)ÚAny)Úsupport)Ú	os_helper)Úrefleak_helper)ÚHuntRefleak)Úclear_caches)Ú	_get_dumpc                 ó€   € \        R  V P                   4       4      pWP                  V P                  V P                  3# )c              3   óN   "  € T F  p\         P                  ! V4      x € K  	  R # 5i©N)ÚweakrefÚref)Ú.0Úobjs   & Ú//usr/lib/python3.14/test/libregrtest/refleak.pyÚ	<genexpr>Ú_get_dump.<locals>.<genexpr>   s   é € ÐNÑ<M°S¤§¢¨C× 0Ð 0Ó<Mùs   ‚#%)ÚsetÚ_abc_registryÚ
_abc_cacheÚ_abc_negative_cacheÚ_abc_negative_cache_version)ÚclsÚregistry_weakrefss   & r   r
   r
      s?   € ô  ÑN¸C×<MÒ<MÓNÓNÐØ!§>¡>Ø×'Ñ'¨×)HÑ)HðJð 	Jó    c                 óì   € \         P                  f   R # ^ R Ip\        V R4      ;_uu_ 4       pVP	                  \         P                  V4       R R R 4       R \         n        R #   + '       g   i     L; i)NÚxb)r   Újunit_xml_listÚpickleÚopenÚdump)Úfilenamer    Úfps   &  r   Úsave_support_xmlr%      sM   € Ü×ÑÒ%ÙãÜ	ˆh˜×	Ô	 Ø�‰”G×*Ñ*¨BÔ/÷ 
à!„GÖ÷ 
×	ús   ­!A#Á#A3	c                 óü   €  \        V R 4      p^ RIpT;_uu_ 4        TP                  T4      pRRR4       \        P
                  ! T 4       X\        n        R#   \         d     R# i ; i  + '       g   i     LE; i)ÚrbN)r!   ÚFileNotFoundErrorr    ÚloadÚosÚunlinkr   r   )r#   r$   r    Úxml_lists   &   r   Úrestore_support_xmlr-   &   s_   € ðÜ�(˜DÓ!ˆó ß	ŠØ—;‘;˜r“?ˆ÷ 
ä‡I‚IˆhÔà%„GÖøô ô Úðú÷ 
�ús   ‚A œA+ÁA(Á'A(Á+A;	c                ó0   € V ^8„  d   QhR\         R\        /# )é   Úhunt_refleakÚquiet)r   Úbool)Úformats   "r   Ú__annotate__r4   4   s    € ÷ qñ qÜ"-ðqäñqr   c           
     ó  a7€ ^ RI p^ RIp\        \        R4      '       g   \	        R4      h\        4        \        P                  R,          pVP                  P                  4       p\        P                  P                  4       p\        P                  P                  4       \        P                  P                  4       3p	 ^ RIp
V
P                  P                  4       p/ pVP"                  P$                   Uu. uF  p\'        VP"                  V4      NK  	  up FI  p\)        V4      '       g   K  VP+                  4       V.,            F  p\-        V4      ^ ,          WÏ&   K  	  KK  	  \/        R"R4       Uu/ uF  pVVbK  	  upo7V73R lpVP0                  pVP2                  pVP4                  pVV,           p\7        \/        V4      4      p^ .V,          p^ .V,          p^ .V,          p\        P8                  p\        P:                  p\        P<                  p\>        P@                  p^ ;p;p;p p!V'       gj   \C        RVR\        PD                  R	7       R
V^
,          ^,           ,          RV p"V"RV R,           V"VR ,           p"\C        V"\        PD                  RR7       Rp#Rp$\G        WgW‹WÉ4       V EFl  p%\H        PJ                  ! 4        \L        PN                  p&R\L        n'         V! 4       p$V&\L        n'        \Q        V#4       \G        WgW‹WÉ4       \H        PJ                  ! 4        V! RR7      p'V! 4       V',
          p(V! 4       p)V! 4       p*V! V)V,
          4      VV%&   V! V(V,
          4      VV%&   V! V*V ,
          4      VV%&   V'       gƒ   \S        VV%,          VV%,          VV%,          4      p+V+^ 8:  d   Rp,MV+^
8  d   R#V+,          p,MRp,V%V8X  d   \C        RR\        PD                  RR7       \C        V,R\        PD                  RR7       ?+?,T(pT)pT*p T'p!\U        V#4       EKo  	  V'       g   \C        \        PD                  R	7       R p-R p.Rp/VRV-3VRV-3VRV.33 Fæ  w  p0p1p2V0VR p0V2! V04      p3\W        V04      p4V3'       g   V4'       g   K1  V : RV0: RV1: R\Y        V04      : 2p5\C        V5R\        PD                  R7       V3'       d\   \C        \        PD                  RR7       \[        VRRR 7      ;_uu_ 4       p6\C        V5V6R	7       V6P]                  4        RRR4       Rp/KÊ  \C        R!\        PD                  RR7       Kè  	  V/V$3#   \          d    Rp EL~i ; iu upi u upi   T&\L        n'        i ; i  + '       g   i     Lf; i)$zŽRun a test multiple times, looking for reference leaks.

Returns:
    False if the test didn't leak references; True if we detected refleaks.
NÚgettotalrefcountz9Tracking reference leaks requires a debug build of PythonºNNNiè  c                 ó&   <€ SP                  W 4      # r   )Ú
setdefault)ÚvalueÚint_pools   &€r   Úget_pooled_intÚ'runtest_refleak.<locals>.get_pooled_inte   s   ø€ Ø×"Ñ" 5Ó0Ð0r   Ú	beginningzHrepetitions. Showing number of leaks (. for 0 or less, X for 10 or more))ÚfileÚ
1234567890Ú:T)r?   Úflushzrefleak-xml.tmp)Ú_only_immortalÚ.ÚXÚ Ú )Úendr?   rB   c                 ój   € \         ;QJ d    R  V  4       F  '       d   K   R# 	  R# ! R  V  4       4      # )c              3   ó*   "  € T F	  q^8¬  x € K  	  R# 5i)é   N© )r   Údeltas   & r   r   Ú;runtest_refleak.<locals>.check_rc_deltas.<locals>.<genexpr>Ê   s   é € Ð2©6 %˜A–:«6ùs   ‚FT)Úall©Údeltass   &r   Úcheck_rc_deltasÚ(runtest_refleak.<locals>.check_rc_deltas½   s-   € ÷ ‹sÑ2©6Ó2�sŒsÐ2ŠsÐ2ˆsÑ2©6Ó2Ó2Ð2r   c                 ó   € \        V 4      # r   )ÚanyrP   s   &r   Úcheck_fd_deltasÚ(runtest_refleak.<locals>.check_fd_deltasÌ   s   € Ü�6‹{Ðr   FÚ
referenceszmemory blockszfile descriptorsz leaked z, sum=)rH   r?   Úazutf-8)Úencodingz (this is fine)iüÿÿ)
rD   Ú1Ú2Ú3Ú4Ú5Ú6Ú7Ú8Ú9)/ÚcopyregÚcollections.abcÚhasattrÚsysÚ	ExceptionÚwarm_cachesÚwarningsÚfiltersÚdispatch_tableÚcopyÚpath_importer_cacheÚ	linecacheÚcacheÚ_interactive_cacheÚ	zipimportÚ_zip_directory_cacheÚImportErrorÚabcÚ__all__Úgetattrr   Ú__subclasses__r
   ÚrangeÚwarmupsÚrunsr#   ÚlistÚgetallocatedblocksr6   Úgetunicodeinternedsizer   Úfd_countÚprintÚstderrÚdash_R_cleanupr   Ú
gc_collectr   Ú_hunting_for_refleaksr%   Úmaxr-   rU   Úsumr!   rB   )8Ú	test_nameÚ	test_funcr0   r1   rd   ÚcollectionsÚfsÚpsÚpicÚlinecache_datarr   ÚzdcÚabcsrY   ru   r   r:   r<   rz   r{   r#   ÚrepcountÚ	rep_rangeÚ	rc_deltasÚalloc_deltasÚ	fd_deltasr}   r6   r~   r   Ú	rc_beforeÚalloc_beforeÚ	fd_beforeÚinterned_immortal_beforeÚnumbersÚxml_filenameÚresultÚiÚcurrentÚinterned_immortal_afterÚalloc_afterÚrc_afterÚfd_afterÚtotal_leaksÚsymbolrR   rV   ÚfailedrQ   Ú	item_nameÚcheckerÚfailingÚ
suspiciousÚmsgÚrefrepr;   s8   &&&&                                                   @r   Úruntest_refleakr«   4   s÷  ø€ ó Ûä”3Ð*×+Ò+Üð $ó %ð 	%ô
 „Mô 
×	Ñ	˜!Õ	€BØ	×	Ñ	×	$Ñ	$Ó	&€BÜ
×
!Ñ
!×
&Ñ
&Ó
(€Cô —_‘_×)Ñ)Ó+¬Y×-IÑ-I×-NÑ-NÓ-PÐP€Nð4Ûð
 ×,Ñ,×1Ñ1Ó3ˆØ€DØ5@·_±_×5LÒ5LÓMÑ5L°”˜Ÿ™¨Ö+Ñ5LÔMˆÜ˜#�ŠÙØ×%Ñ%Ó'¨3¨%×/Ð/ˆCÜ! #› qÕ)ˆD‹Ió 0ñ Nô +0°°tÔ*<Ó=Ñ*< ��u’Ñ*<Ñ=€Hõ1ð ×"Ñ"€GØ×Ñ€DØ×$Ñ$€HØ˜�~€Hô ”U˜8“_Ó%€IØ��h•€IØ�3˜•>€LØ��h•€IÜ×/Ñ/ÐÜ×+Ñ+ÐÜ ×7Ñ7ÐÜ×!Ñ!€HàFGÐG€IÐG�ÐG˜yÐ+CçÜˆk˜8ð &6ä—:‘:õ	ð   ¨2¥°Õ!1Õ2°I°XÐ>ˆØ˜(˜7Ð# cÕ)¨G°G°HÐ,=Õ=ˆÜˆgœCŸJ™J¨dÕ3à$€LØ€FÜ�2˜3 TÔ:äˆÜ×ÒÔÜ ×6Ñ6ˆØ/3ŒÔ,ð	;Ù“[ˆFà3:ŒNÔ0ä˜Ô&Ü�r˜s¨Ô>Ü×ÒÔñ #9àô#!Ðñ )Ó*Ð-DÕDˆÙ#Ó%ˆÙ“:ˆá% h°Õ&:Ó;ˆ	�!‰Ù(¨°|Õ)CÓDˆ�Q‰Ù% h°Õ&:Ó;ˆ	�!‰çä˜i¨�l¨L¸­O¸YÀq½\ÓJˆKØ˜aÔØ‘Ø˜rÔ!ðà!õ#‘ð �Ø�GŒ|Ü�c˜r¬¯
©
¸$Õ?Ü�&˜b¤s§z¡z¸Õ>ØØà"ˆØˆ	Øˆ	Ø#:Ð ä˜L×)ñe ÷h Ü”3—:‘:Õò3òð €Fà	�L /Ð2Ø	�¨Ð8Ø	Ð&¨Ð8ó'Ñ"ˆ�	˜7ð ˜˜Ð!ˆÙ˜&“/ˆÜ˜“[ˆ
ß—j‘jã›6£9¬c°&­kð;ˆCä�#˜2¤C§J¡JÕ/ßÜœ3Ÿ:™:¨TÕ2Ü˜( C°'×:Õ:¸fÜ˜# FÕ+Ø—L‘L”N÷ ;ð ’äÐ'¬c¯j©jÀ×Eñ)'ð* �FÐÐøôc ô Ø‹ðüò Nùò >øðP 4;ŒNÕ0ú÷f ;×:ús6   ÃU Ã9U!Å6U&Ë+U+Ó?U;ÕUÕUÕ+U8Õ;Vc                 ó–  € ^ RI p^ RIpV \        P                  R&   VP                  P                  4        VP                  P                  V4       \        P                  P                  4        \        P                  P                  V4       Vw  r‰\        P                  P                  4        \        P                  P                  V	4       \        P                  P                  4        \        P                  P                  V4        ^ RIp
V
P                  P                  4        V
P                  P                  V4       VP                  P                    Uu. uF  p\#        VP                  V4      NK  	  pp\%        \&        V4      pV F  pVP)                  4       V.,            F`  pVP+                  VR4      pVe8   VP-                  4        V F!  pV! 4       pVf   K  VP/                  V4       K#  	  VP1                  4        Kb  	  K�  	  \3        4        \        P4                  ! 4        R#   \         d     Lüi ; iu upi )r   Nr7   )rd   re   rj   rk   rl   ÚclearÚupdaterg   rn   ro   rq   rp   rr   rs   rt   ru   rv   rw   Úfilterr   rx   ÚgetÚ_abc_registry_clearÚregisterÚ_abc_caches_clearr	   Ú_clear_internal_caches)rŠ   r‹   rŒ   rŽ   r�   r�   rd   r‰   ÚlcacheÚlinteractiverr   rY   Úabs_classesru   r   Úrefsr   Úsubclasss   &&&&&&            r   r‚   r‚   è   sÈ  € ÛÛð „H×Ñ�QÑØ×Ñ× Ñ Ô"Ø×Ñ×!Ñ! "Ô%Ü×Ñ×!Ñ!Ô#Ü×Ñ×"Ñ" 3Ô'Ø)Ñ€FÜ× Ñ ×&Ñ&Ô(Ü× Ñ ×'Ñ'¨Ô5Ü‡O�O×ÑÔÜ‡O�O×Ñ˜6Ô"ð3Ûð 	×&Ñ&×,Ñ,Ô.Ø×&Ñ&×-Ñ-¨cÔ2ð 9D¿¹×8OÒ8OÓPÑ8O°1”7˜;Ÿ?™?¨AÖ.Ñ8O€KÐPÜœ [Ó1€KÛˆØ×%Ñ%Ó'¨3¨%×/Ð/ˆCØ—8‘8˜C Ó&ˆDØÒØ×'Ñ'Ô)Û�CÙ"›u�HØÔ+ØŸ™ XÖ.ñ  ð ×!Ñ!Ö#ó 0ñ ô „Nô ×ÒÖ øô1 ô Ùðüò Qs   ÄH5 ÅIÈ5IÉIc                ó   € V ^8„  d   QhRR/# )r/   ÚreturnNrL   )r3   s   "r   r4   r4     s   € ÷ ñ �Tñ r   c                  óâ   € \        \        R 4      4      p \        R 4       F  pWV^,             K  	  \        R 4       Uu. uF  p\        V4      NK  	   p\        \        RR4      4       R# u upi )é   i  Néûÿÿÿ)Úbytesry   Úchrr|   )Úsrœ   s     r   ri   ri     sX   € äŒe�C‹jÓ€AÜ�3ŽZˆØ	ˆAˆa�C‹ñ ô ˜3”ZÓ ‘Z�„Sˆ†V‘ZÑ äŒˆr�3‹Öùò !s   ¿A,)r*   rg   rj   Úinspectr   Útypingr   ro   Útestr   Útest.supportr   r   Úruntestsr   Úutilsr	   Ú_abcr
   rt   r   r%   r-   r«   r‚   ri   rL   r   r   Ú<module>rÉ      sh   ðÛ 	Û 
Û Ý Ý Û å Ý "Ý 'å !Ý ð
JÝò"ò&õqòh)!÷XøðG ô JÛôJðJús   ¼A ÁA*Á)A*