+
    öÙ†j`1  ã                   óÊ  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHt RsR t ! R R] P                  ! RR4      4      t]
P"                  ! 4       R 4       t]
P"                  ! 4       R	 4       tR
 tR t]
P"                  ! 4       R]P,                  R]P.                  /R l4       tR tRR ltRR ltRR ltRR lt]
P"                  ! 4       R 4       tR# )é    N)Úsource_from_cache)Úsupport)Úmake_legacy_pycc                 ó*  € \         fe   R\        P                  9   d   Rs R# \        P                  '       g   Rs R#  \
        P                  ! \        P                  RRR.4       Rs \         # \         #   \
        P                   d    Rs  \         # i ; i)að  
Returns True if our sys.executable interpreter requires environment
variables in order to be able to run at all.

This is designed to be used with @unittest.skipIf() to annotate tests
that need to use an assert_python*() function to launch an isolated
mode (-I) or no environment mode (-E) sub-interpreter process.

A normal build & test does not run into this situation but it can happen
when trying to run the standard library test suite from an interpreter that
doesn't have an obvious home with Python's current home finding logic.

Setting PYTHONHOME is one way to get most of the testsuite to run in that
situation.  PYTHONPATH or PYTHONUSERSITE are other common environment
variables that might impact whether or not the interpreter can start.
Ú
PYTHONHOMETFú-Ez-czimport sys; sys.exit(0))
Ú$__cached_interp_requires_environmentÚosÚenvironr   Úhas_subprocess_supportÚ
subprocessÚ
check_callÚsysÚ
executableÚCalledProcessError© ó    Ú1/usr/lib/python3.14/test/support/script_helper.pyÚ interpreter_requires_environmentr      s•   € ô$ ,Ò3àœ2Ÿ:™:Ô%Ø37Ð0Ùä×-×-Ð-Ø38Ð0Ùð	9Ü×!Ò!¤3§>¡>°4Ø#'Ð)Bð#Dô Eð
 49Ð0ä/Ð/Ô/Ð/øô ×,Ñ,ô 	8Ø37Ñ0ô 0Ð/ð	8ús   ½(A3 Á3BÂBc                   ó*   a € ] tR t^=t o RtR tRtV tR# )Ú_PythonRunResultz2Helper for reporting Python subprocess run resultsc                óº  € RpV P                   V P                  rC\        V4      V8”  d   RW2) R ,           p\        V4      V8”  d   RWB) R ,           pVP                  RR4      P	                  4       pVP                  RR4      P	                  4       pV P
                  p\        P                  ! V4      pV'       d	   V RV R2p\        RV R	V: R
V RV R2	4      h)z4Provide helpful details about failed subcommand runss   (... truncated stdout ...)Ns   (... truncated stderr ...)Úutf8Úreplacez (Ú)zProcess return code is z
command line: z

stdout:
---
z
---

stderr:
---
z
---i0u  )	ÚoutÚerrÚlenÚdecodeÚrstripÚrcr   Úget_signal_nameÚAssertionError)ÚselfÚcmd_lineÚmaxlenr   r   ÚexitcodeÚsignames   &&     r   ÚfailÚ_PythonRunResult.fail@   sñ   € ð ˆØ—8‘8˜TŸX™XˆSÜˆs‹8�fÔØ/°#°g°h°-Õ?ˆCÜˆs‹8�fÔØ/°#°g°h°-Õ?ˆCØ�j‰j˜ Ó+×2Ñ2Ó4ˆØ�j‰j˜ Ó+×2Ñ2Ó4ˆà—7‘7ˆÜ×)Ò)¨(Ó3ˆßØ"˜ 2 g Y¨aÐ0ˆHÜÐ6°x°jð A.Ø.6©\ð :%ð !$˜uð %%ð
 !$˜uð %#ð$ó %ð 	%r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r   =   s   ø‡ € á<÷%ð %r   r   c            	     óv  € \        4       pVP                  RR4      pVP                  RR4      pRV9   d   VP                  R4      pMV'       * ;'       d    V'       * p\        P                  RR.pV'       d	   W6,           pV'       d   VP	                  R4       M!V'       g   V'       g   VP	                  R4       VP                  R	R4      '       d3   / p\        P
                  R
8X  d   \        P                  R,          VR&   M\        P                  P                  4       pRV9  d   RVR&   VP                  V4       VP                  V 4       \        P                  ! V\        P                  \        P                  \        P                  WtR7      pT;_uu_ 4         VP                  4       w  ršVP                  4        \        P                   ! 4         RRR4       VP"                  p\%        VX	X
4      V3#   TP                  4        \        P                   ! 4        i ; i  + '       g   i     LU; i)aú  Used to implement assert_python_*.

*args are the command line flags to pass to the python interpreter.
**env_vars keyword arguments are environment variables to set on the process.

If __run_using_command= is supplied, it must be a list of
command line arguments to prepend to the command line used.
Useful when you want to run another command that should launch the
python interpreter via its own arguments. ["/bin/echo", "--"] for
example could print the unquoted python command line instead of
run it.
Ú__run_using_commandNÚ__cwdÚ
__isolatedú-XÚfaulthandlerz-Ir   Ú
__cleanenvÚwin32Ú
SYSTEMROOTÚTERMÚ )ÚstdinÚstdoutÚstderrÚenvÚcwd)r   Úpopr   r   ÚappendÚplatformr
   r   ÚcopyÚupdateÚextendr   ÚPopenÚPIPEÚcommunicateÚkillÚ_cleanupÚ
returncoder   )ÚargsÚenv_varsÚenv_requiredÚrun_using_commandrB   Úisolatedr%   rA   Úprocr   r   r!   s   *,          r   Úrun_python_until_endrU   _   s¨  € ô 4Ó5€LØ Ÿ™Ð%:¸DÓAÐØ
�,‰,�w Ó
%€CØ�xÔØ—<‘< Ó-‰à”<×4Ð4¨Ô$4ˆÜ—‘  nÐ5€HßØ$Õ/ˆßð 	�‰˜ÕßŸlà�‰˜Ôð ‡|�|�L $×'Ò'ØˆÜ�<‰<˜7Ô"ô !#§
¡
¨<Õ 8ˆC�Ñøô �j‰j�o‰oÓˆð �XÔØˆˆF‰à‡J�JˆxÔØ‡O�O�DÔÜ×Ò˜H¬J¯O©OÜ *§¡¼
¿¹Ø ô+€D÷ 
Šð	"Ø×'Ñ'Ó)‰HˆCà�I‰IŒKÜ×ÒÕ!÷ 
ð 
�‰€BÜ˜B  SÓ)¨8Ð3Ð3øð �I‰IŒKÜ×ÒÕ!ú÷ 
�ús$   Æ!H(Æ#G>Æ5%H(Ç>'H%È%H(È(H8	c                óª   € \        V/ VB w  r4VP                  '       d	   V '       g   VP                  '       g   V '       g   VP                  V4       V# ©N)rU   r!   r)   )Úexpected_successrO   rP   Úresr%   s   "*,  r   Ú_assert_pythonrZ   £   s;   € ä(¨$Ð;°(Ñ;�M€CØ��ˆ×#¨S¯V¯V¨V×<LØ�‰�ÔØ€Jr   c                 ó    € \        R.V O5/ VB # )a`  
Assert that running the interpreter with `args` and optional environment
variables `env_vars` succeeds (rc == 0) and return a (return code, stdout,
stderr) tuple.

If the __cleanenv keyword is set, env_vars is used as a fresh environment.

Python is started in isolated mode (command line option -I),
except if the __isolated keyword is set to False.
T©rZ   ©rO   rP   s   *,r   Úassert_python_okr^   «   s   € ô ˜$Ð2 Ò2¨Ñ2Ð2r   c                 ó    € \        R.V O5/ VB # )zË
Assert that running the interpreter with `args` and optional environment
variables `env_vars` fails (rc != 0) and return a (return code, stdout,
stderr) tuple.

See assert_python_ok() for more options.
Fr\   r]   s   *,r   Úassert_python_failurer`   ¹   s   € ô ˜%Ð3 $Ò3¨(Ñ3Ð3r   r?   r@   c           	     ó:  € \         P                  .p\        4       '       g   VP                  R4       VP	                  V4       VP                  R\        \        P                  4      4      pRVR&   \        P                  ! V3R\        P                  RV RV/VB # )z�Run a Python subprocess with the given arguments.

kw is extra keyword args to pass to subprocess.Popen. Returns a Popen
object.
r   rA   Úvt100r<   r>   r?   r@   )r   r   r   rD   rH   Ú
setdefaultÚdictr
   r   r   rI   rJ   )r?   r@   rO   Úkwr%   rA   s   $$*,  r   Úspawn_pythonrf   Ä   s�   € ô —‘Ð€HÜ+×-Ò-Ø�‰˜ÔØ‡O�O�DÔð �-‰-˜œt¤B§J¡JÓ/Ó
0€CØ€Cˆ�KÜ×Ò˜Hñ "¬J¯O©Oð "Ø#)ð"Ø28ð"à ñ"ð "r   c                óì   € V P                   P                  4        V P                  P                  4       pV P                  P                  4        V P	                  4        \
        P                  ! 4        V# )z?Run the given Popen process until completion and return stdout.)r>   Úcloser?   ÚreadÚwaitr   rM   )ÚpÚdatas   & r   Úkill_pythonrm   Ü   sH   € à‡G�G‡M�M„OØ�8‰8�=‰=‹?€DØ‡H�H‡N�NÔð ‡F�F„HÜ×ÒÔØ€Kr   c                 óô  € TpV'       g   V\         P                  R ,           ,          p\         P                  P                  W4      p\	        V\
        4      '       d2   \        VRRR7      ;_uu_ 4       pVP                  V4       RRR4       M.\        VR4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! 4        V#   + '       g   i     L'; i  + '       g   i     L:; i)ÚpyÚwzutf-8)ÚencodingNÚwb)
r
   ÚextsepÚpathÚjoinÚ
isinstanceÚstrÚopenÚwriteÚ	importlibÚinvalidate_caches)Ú
script_dirÚscript_basenameÚsourceÚomit_suffixÚscript_filenameÚscript_nameÚscript_files   &&&&   r   Úmake_scriptrƒ   è   s«   € Ø%€OßØœ2Ÿ9™9 tÕ+Õ+ˆÜ—'‘'—,‘,˜zÓ;€KÜ�&œ#×Òä�+˜s¨W×5Õ5¸Ø×Ñ˜fÔ%÷ 6Ð5ô �+˜t×$Ô$¨Ø×Ñ˜fÔ%÷ %ä×ÒÔ!ØÐ÷ 6×5ú÷ %×$ús   Á4CÂ#C'ÃC$	Ã'C7	c                 ó€  € ^ RI pV\        P                  ,           R,           p\        P                  P	                  W4      pVP                  VR4      ;_uu_ 4       pVf“   VP                  \        P                  4      p\        V4      ^8¼  dE   VR,          R8X  d7   \        \        V4      4      p	\        P                  P                  V	4      pT	pM\        P                  P                  V4      pVP                  W#4       RRR4       V\        P                  P	                  Wc4      3#   + '       g   i     L1; i)r   NÚziprp   Ú__pycache__éþÿÿÿ)Úzipfiler
   rs   rt   ru   ÚZipFileÚsplitÚsepr   r   r   Úbasenamery   )
Úzip_dirÚzip_basenamer�   Úname_in_ziprˆ   Úzip_filenameÚzip_nameÚzip_fileÚpartsÚ
legacy_pycs
   &&&&      r   Úmake_zip_scriptr•   ø   sÞ   € ÛØ¤§	¡	Õ)¨%Õ/€LÜ�w‰w�|‰|˜GÓ2€HØ	�‰˜ 3×	'Ô	'¨8ØÒØ×%Ñ%¤b§f¡fÓ-ˆEÜ�5‹z˜QŒ 5¨¥9°Ô#=Ü,Ô->¸{Ó-KÓL�
Ü Ÿg™g×.Ñ.¨zÓ:�Ø(‘ä Ÿg™g×.Ñ.¨{Ó;�Ø�‰�{Ô0÷ 
(ð ”R—W‘W—\‘\ (Ó8Ð8Ð8÷ 
(×	'ús   ÁB(D-Ä-D=	c                 óL   € \         P                  ! V 4       \        V R V4       R# )Ú__init__N)r
   Úmkdirrƒ   )Úpkg_dirÚinit_sources   &&r   Úmake_pkgr›     s   € Ü‡H‚HˆWÔÜ�˜ [Ö1r   c                 óv  € ^ RI p. p\        V RR4      p	VP                  V	4       \        P                  P                  V	4      p
\        WV4      pVP                  V4       V'       dC   \        P                  ! V	RR7      p	\        P                  ! VRR7      pVP                  W›34       \        ^V^,           4       Uu. uF*  p\        P                  P                  V.V,          4      NK,  	  pp\        P                  P                  VR,          \        P                  P                  V4      4      pV\        P                  ,           R,           p\        P                  P                  W4      pVP                  VR4      ;_uu_ 4       pV F5  p\        P                  P                  VV
4      pVP                  V	V4       K7  	  VP                  W¾4       RRR4       V F  p\        P                  ! V4       K  	  V\        P                  P                  VV4      3# u upi   + '       g   i     LV; i)	r   Nr—   r=   T)Údoraiser…   rp   éÿÿÿÿ)rˆ   rƒ   rD   r
   rt   rŒ   Ú
py_compileÚcompilerH   Úranger‹   ru   rs   r‰   ry   Úunlink)r�   rŽ   Úpkg_namer}   r~   ÚdepthÚcompiledrˆ   r¢   Ú	init_nameÚinit_basenamer�   ÚiÚ	pkg_namesÚscript_name_in_zipr�   r‘   r’   ÚnameÚinit_name_in_zips   &&&&&&&             r   Úmake_zip_pkgr­     sž  € ãØ€FÜ˜G Z°Ó4€IØ
‡M�M�)ÔÜ—G‘G×$Ñ$ YÓ/€MÜ˜g¸Ó?€KØ
‡M�M�+ÔßÜ×&Ò& y¸$Ô?ˆ	Ü ×(Ò(¨¸dÔCˆØ�‰�yÐ.Ô/Ü49¸!¸UÀ1½WÔ4EÓFÑ4E¨q”—‘—‘˜h˜Z¨�\Ö*Ñ4E€IÐFÜŸ™Ÿ™ i°¥m´R·W±W×5EÑ5EÀkÓ5RÓSÐØ¤§	¡	Õ)¨%Õ/€LÜ�w‰w�|‰|˜GÓ2€HØ	�‰˜ 3×	'Ô	'¨8ÛˆDÜ!Ÿw™wŸ|™|¨D°-Ó@ÐØ�N‰N˜9Ð&6Ö7ñ ð 	�‰�{Ô7÷	 
(ó
 ˆÜ
�	Š	�$Žñ ð ”R—W‘W—\‘\ (Ð,>Ó?Ð?Ð?ùò G÷ 
(×	'ús   Ã 0H#ÆAH(È(H8	c                 ó²  € \         P                  '       d´   R  pR\        P                  P	                  V 4       2p\        4        \        V! V4      RR7       \        P                  RRRRV R.p\        P                  ! V4      p\        V! V R	VP                   24      RR7       VP                  '       d   \        V R
24      hR# \        RV R4       R# )c                 ó   € R V  R2# )z===== z ======r   )Útexts   &r   ÚtitleÚrun_test_script.<locals>.title5  s   € Ø˜D˜6 Ð)Ð)r   zscript T)Úflushr   r7   r8   z-uz-vz completed: exit code z failedN)r   Úverboser
   rt   rŒ   Úprintr   r   r   ÚrunrN   r#   r^   )Úscriptr±   r«   rO   rT   s   &    r   Úrun_test_scriptr¸   1  s¼   € ô ‡‡€ò	*ð œŸ™×)Ñ)¨&Ó1Ð2Ð3ˆÜŒÜ‰e�D‹k Õ&ô —‘  d¨N¸DÀ&È$ÐOˆÜ�~Š~˜dÓ#ˆÜ‰e�t�fÐ2°4·?±?Ð2CÐDÓEØõ	à�?�?ˆ?Ü  D 6¨Ð!1Ó2Ð2ñ ô 	˜˜v tÖ,r   )r!   r   r   )FrW   )r=   )é   F)Úcollectionsrz   r   r
   Úos.pathr   rŸ   Úimportlib.utilr   Útestr   Útest.support.import_helperr   r	   r   Ú
namedtupler   Úrequires_subprocessrU   rZ   r^   r`   rJ   ÚSTDOUTrf   rm   rƒ   r•   r›   r­   r¸   r   r   r   Ú<module>rÂ      s  ðó Û Û 
Û 	Û Û Û å ,Ý Ý 6ð (,Ð $ò%0ôP%�{×-Ò-Ð.@Ø*>ó@ô %ðD 	×ÒÓñ@4ó ð@4ðF 	×ÒÓñó ðò3ò4ð 	×ÒÓð"˜zŸ™ð "°z×7HÑ7Hó "ó ð"ò.	ôô 9ô*2ô
@ð> 	×ÒÓñ-ó ò-r   