
    /hh@r                     v   S r SSKrSSKrSSKrSSKrSSKrS r " S S5      rSS.S jrS r	SS.S	 jr
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S  r!S! r"S" r#S# r$S$ r%S% r&S& r'S' r(S( r)S) r*S* r+S+ r,S, r-S- r.S. r/S2S/ jr0S0 r1\2S1:X  a  \1" 5         gg)3zK
Collect various information about Python to help debugging test failures.
    Nc                 p    U c  g [        U 5      n [        R                  " SSU 5      n U R                  5       $ )Nz\s+ )strresubstrip)texts    8/opt/python-3.13.8/usr/lib/python3.13/test/pythoninfo.pynormalize_textr      s1    |t9D66&#t$D::<    c                   &    \ rS rSrS rS rS rSrg)
PythonInfo   c                     0 U l         g Ninfo)selfs    r
   __init__PythonInfo.__init__   s	    	r   c                     XR                   ;   a  [        SU-  5      eUc  g [        U[        5      (       d8  [        U[        5      (       d  [	        U5      nUR                  5       nU(       d  g X R                   U'   g )Nzduplicate key: %r)r   
ValueError
isinstanceintr   r   r   keyvalues      r
   addPythonInfo.add   sd    ))03677=%%%eS))E
KKME		#r   c                     U R                   R                  5        VVs0 s H  u  pU[        U5      _M     snn$ s  snnf )zE
Get information as a key:value dictionary where values are strings.
)r   itemsr   r   s      r
   	get_infosPythonInfo.get_infos)   s3     37))//2CD2CJCSZ2CDDDs   :r   N)__name__
__module____qualname____firstlineno__r   r   r"   __static_attributes__ r   r
   r   r      s    $Er   r   	formatterc                f    U H+  n[        XS 5      nUc  M  X%-  nUb  U" XV5      nU " Xv5        M-     g r   )getattr)info_addobjname_fmt
attributesr+   attrr   names           r
   copy_attributesr4   0   s?    4(= d*E r   c                 L     [        X#5      nU " X5        g ! [         a     g f = fr   r-   AttributeError)r.   r3   mod	attr_namer   s        r
   	copy_attrr:   ;   s/    ' T  s    
##c                p     [        X#5      nU" 5       nUb  U" U5      nU " X5        g ! [         a     g f = fr   r6   )r.   r3   r8   	func_namer+   funcr   s          r
   	call_funcr>   C   sF    s& FE% T  s   ( 
55c                 T   Sn[        U [        SU5        S H  n[        U SU 3[        U5        M     [        R                  " 5       n[	        [        S5      (       a  U< S[        R
                  " 5       < 3nU " SU5        S HW  n[        [        U5      nUc  M  [        US	S 5      nU(       d  M.  [        US
S 5      nU(       a	  U< SU< 3nU " SU-  U5        MY     [	        [        S5      nU(       a  SnOSnU " SU5        [	        [        S5      n	U	(       a  SnOSnU " SU5        g )N)_emscripten_info
_frameworkabiflagsapi_versionbuiltin_module_names	byteorderdont_write_bytecode
executableflags
float_infofloat_repr_style	hash_info
hexversionimplementationint_infomaxsize
maxunicodepathplatform
platlibdirprefixthread_infoversionversion_infowinverzsys.%s)_is_gil_enabledgetandroidapilevelgetrecursionlimitgetwindowsversionzsys.getfilesystemencodeerrors/zsys.filesystem_encoding)stdinstdoutstderrencodingerrorszsys.%s.encodinggettotalrefcountz$Yes (sys.gettotalrefcount() present)z#No (sys.gettotalrefcount() missing)zbuild.Py_DEBUG
getobjectszYes (sys.getobjects() present)zNo (sys.getobjects() missing)zbuild.Py_TRACE_REFS)r4   sysr>   getfilesystemencodinghasattrr]   r-   )
r.   r1   r=   rb   r3   streamrc   Py_DEBUGr	   Py_TRACE_REFSs
             r
   collect_sysrl   N   s!   J6 Hc8Z8 	(d4&M35 ((*Hs/00&(E(E(GH&1-d#>6:t440"*F3H"T)84 . s./H54t$ C.M/."D)r   c                    SS K nUR                  5       nSR                  [        [        U5      5      nU " SU5        U " SUR                  5       5        U " SUR                  SS95        SUR                  5       -  R                  5       nU(       a	  U " S	U5         UR                  5       nS
 H  nXT;  a  M
  U " SU S3XE   5        M     [        R                   S:X  a  [        U SUS5        g g ! [         a     N0f = f)Nr   r   zplatform.architecturezplatform.python_implementationzplatform.platformT)aliasedz%s %szplatform.libc_ver)IDNAMEPRETTY_NAMEVARIANT
VARIANT_IDVERSIONVERSION_CODENAME
VERSION_IDz platform.freedesktop_os_release[]androidzplatform.android_verandroid_ver)rR   architecturejoinfilterboolpython_implementationlibc_verr   freedesktop_os_releaseOSErrorrf   r>   )r.   rR   archr~   
os_releaser   s         r
   collect_platformr      s     "D88F4&'D$d+-++-/ t,. (++--446H$h/&446
	
C $7uA>_&	
 ||y (2HmL !%  s   C/ /
C<;C<c                 :    SS K nU " SUR                  5       5        g )Nr   zlocale.getencoding)localegetencoding)r.   r   s     r
   collect_localer      s    !6#5#5#78r   c                 t    U " S[         R                  S5      5        U " S[         R                  S5      5        g )Nzbuiltins.float.float_formatfloatzbuiltins.float.double_formatdouble)r   __getformat__)r.   s    r
   collect_builtinsr      s.    *E,?,?,HI+U-@-@-JKr   c                 &   SS K n[        US5      (       a*    UR                  SUR                  5        SnU " SU5        g g ! [         a  nSU-  n S nANS nAff = f! [
         a)  nUR                  [        R                  :w  a  e  S nAg S nAff = f)Nr   	getrandom   zready (initialized)znot seeded yet (%s)zos.getrandom)osrh   r   GRND_NONBLOCKBlockingIOErrorr   errnoENOSYS)r.   r   stateexcs       r
   collect_urandomr      s    r;	4Q 0 01- ^U+   # 4-34  	 yyELL( )	s:   A 	A 
AAA AA 
B'BBc                    SS K nS nSn[        XSX2S9  S H  n[        U SU-  X5        M     S n[        U SUS	US9  [        US
5      (       a   UR	                  5       nU " SU5        [        S5      nUR                  R                  5        Hl  u  pUR                  5       n
X;   dF  U
R                  S5      (       d0  U
R                  S5      (       d  MH  U
R                  S5      (       d  M`  U " SU-  U	5        Mn     [        US5      (       a/  UR                  S5      nUR                  U5        U " SSU-  5        g g ! [
         a     Nf = f)Nr   c                 H    U S;   a  [        [        S U 5       5      5      $ U$ )N)supports_follow_symlinkssupports_fdsupports_effective_idsc              3   8   #    U  H  oR                   v   M     g 7fr   )r$   ).0r=   s     r
   	<genexpr>2collect_os.<locals>.format_attr.<locals>.<genexpr>   s     >mms   )r   sortedr2   r   s     r
   format_attrcollect_os.<locals>.format_attr   s*     . .v>>>??Lr   )r3   supports_bytes_environr   r   r   zos.%sr*   )	cpu_countgetcwdgetegidgeteuidgetgid
getloadavg	getresgid	getresuidgetuidprocess_cpu_countunamec                 @    SR                  [        [        U 5      5      $ )N, )rz   mapr   )groupss    r
   format_groups!collect_os.<locals>.format_groups   s    yyS&)**r   zos.getgroups	getgroupsgetloginzos.login)FAPPDATAAR	ARCHFLAGSARFLAGSAUDIODEVBUILDPYTHONCCCFLAGSCOLUMNSCOMPUTERNAMECOMSPECCPPCPPFLAGSDISPLAYDISTUTILS_DEBUGDISTUTILS_USE_SDKDYLD_LIBRARY_PATHENSUREPIP_OPTIONSHISTORY_FILEHOME	HOMEDRIVEHOMEPATHIDLESTARTUPIPHONEOS_DEPLOYMENT_TARGETLANGLDFLAGSLDSHAREDLD_LIBRARY_PATHLINESMACOSX_DEPLOYMENT_TARGETMAILCAPS	MAKEFLAGSMIXERDEVMSSDKPATHPATHEXTPIP_CONFIG_FILEPLATPOSIXLY_CORRECTPY_SAX_PARSERProgramFileszProgramFiles(x86)RUNNING_ON_VALGRINDSDK_TOOLS_BINSERVER_SOFTWARESHELLSOURCE_DATE_EPOCH
SYSTEMROOTTEMPTERMTILE_LIBRARYTMPTMPDIRTRAVISTZUSERPROFILEVIRTUAL_ENVWAYLAND_DISPLAYWINDIR_PYTHON_HOSTRUNNER_PYTHON_HOST_PLATFORM_PYTHON_PROJECT_BASE_PYTHON_SYSCONFIGDATA_NAME_PYTHON_SYSCONFIGDATA_PATH__PYVENV_LAUNCHER__ASAN_OPTIONSLSAN_OPTIONSMSAN_OPTIONSTSAN_OPTIONSUBSAN_OPTIONS)PYTHONLC_VS	COMNTOOLSzos.environ[%s]umaskzos.umaskz0o%03o)r   r4   r>   rh   r   r   	frozensetenvironr!   upper
startswithendswithr  )r.   r   r   r1   r=   r   loginENV_VARSr3   r   r   masks               r
   
collect_osr     sQ   J H':M 	(GdNB5+ hK=Qr:	(KKME Z'  I IHT zz'')

 011%%%..*E*E%,e4 * r7xx{
X_-   	 	s   D? ?
EEc                     SS K nSS KnUR                  5       n UR	                  U5      nU " SU-  Ub  UOS5        Uc  g [        US5      (       aO  UR                  UR                  UR                  5      nSR                  [        [        U5      5      nU " SU5        g g ! [         a     g f = f! [
         a    S n Nf = f)Nr   zpwd.getpwuid(%s)z
<KeyError>getgrouplistr   zos.getgrouplist)pwdImportErrorr   r   getpwuidKeyErrorrh   r  pw_namepw_gidrz   r   r   )r.   r  r   uidentryr   s         r
   collect_pwdr  k  s     
))+CS! $'U\; } 	r>""=3sF+,"F+ #%    s"   B" B2 "
B/.B/2C Cc                      SS K nS nSn[        XSUUS9  [        US5      (       d.  [	        USS5      nS	U;   a
  U " S
S	5        g SU;   a
  U " S
S5        g g g ! [         a     g f = f)Nr   c                 :    [        U[        5      (       a  SU-  $ U$ )Nz%#x)r   r   r   s     r
   r   %collect_readline.<locals>.format_attr  s    eS!!5= Lr   )_READLINE_VERSION_READLINE_RUNTIME_VERSION_READLINE_LIBRARY_VERSIONzreadline.%sr*   r  __doc__ zlibedit readlinezreadline.libraryzGNU readline)readliner  r4   rh   r-   )r.   r  r   r1   docs        r
   collect_readliner!    s    J
 Hz)+ 8899h	2.$');<s"'8 # :#  s   A 
A$#A$c                    SS K n UR                  / SQUR                  UR                  SS9nUR                  5       S   nUR                  (       a  g  UR                  5       S   nU " SU5        g ! [
         a     g f = f)Nr   )gdbz-nx	--versionTr`   ra   universal_newlinesgdb_version)
subprocessPopenPIPEcommunicate
returncoder   
splitlines)r.   r(  procrV   s       r
   collect_gdbr/    s    
 ;'1'137   9 ""$Q'??    "1%G]G$  s   AA1 1
A>=A>c                      SS K nSn[        XSU5         SS KnUR	                  5       nUR                  SS5      nU " SU5        g ! [         a     N=f = f! [         a     g f = f)Nr   )
TK_VERSIONTCL_VERSIONz
tkinter.%sr   
patchlevelztkinter.info_patchlevel)_tkinterr4   r  tkinterTclcall)r.   r4  r1   r5  tclr3  s         r
   collect_tkinterr9    su    F 3
L*E8 kkmXXfl3
*J7    s"   A A 
AA
A#"A#c                 H   SS K nU " SUR                  5       5        Sn[        XSU5        [        US5      (       aE  S H>  n [        R                  " SS9   UR                  U5      nS S S 5        U " S	U-  W5        M@     g g ! , (       d  f       N = f! [         a     Mb  f = f)
Nr   z	time.time)altzonedaylighttimezonetznameztime.%sget_clock_info)clock	monotonicperf_counterprocess_timethread_timetimeT)recordztime.get_clock_info(%s))rE  r4   rh   warningscatch_warningsr?  r   )r.   rE  r1   r@  
clock_infos        r
   collect_timerJ    s    [$))+&J HIz:t%&&=EH,,D9!%!4!4U!;J : 2U:JG= '
 :9 s*   BB(B
B	B
B! B!c                 J     SS K n[        U SUS5        g ! [         a     g f = f)Nr   zcurses.ncurses_versionncurses_version)cursesr  r:   )r.   rM  s     r
   collect_cursesrN    s0     h0&:KL  s    
""c                 p     SS K nU " SUR                   R                  5       5        g ! [         a     g f = f)Nr   zdatetime.datetime.now)datetimer  now)r.   rP  s     r
   collect_datetimerR    s:     $h&7&7&;&;&=>  s   ( 
55c                    SS K nU " SUR                  5       5        S H:  nUR                  U5      nUS:X  a	  U(       d  M#  [        U5      nU " SU-  U5        M<     UR                  S5      nU=(       a    SU;   nU(       a  SnOS	nU " S
U5        S H,  nUR                  U5      nU(       a  SnOSnU " SU 3U5        M.     g )Nr   zsysconfig.is_python_build)ABIFLAGSANDROID_API_LEVELr   CCSHAREDr   CFLAGSFORSHAREDCONFIG_ARGS
HOSTRUNNERHOST_GNU_TYPEMACHDEP	MULTIARCHOPTPGO_PROF_USE_FLAG	PY_CFLAGSPY_CFLAGS_NODISTPY_CORE_LDFLAGS
PY_LDFLAGSPY_LDFLAGS_NODISTPY_STDMODULE_CFLAGSrj   Py_ENABLE_SHAREDPy_GIL_DISABLEDr   SOABITEST_MODULESabs_builddir
abs_srcdirrT   srcdirrU  zsysconfig[%s]r_  z-DNDEBUGz!ignore assertions (macro defined)z$build assertions (macro not defined)zbuild.NDEBUG)WITH_DOC_STRINGSWITH_DTRACEWITH_FREELISTSWITH_MIMALLOCWITH_PYMALLOCWITH_VALGRINDYesNozbuild.)	sysconfigis_python_buildget_config_varr   )r.   rt  r3   r   r_  NDEBUGr	   s          r
   collect_sysconfigrx    s    ()*C*C*EF> ((.&&uu%4'/IL ((5I3J)3F24^D! ((.DD6$$'r   c                 *   SS K n SS Kn SS KnS nSn[	        XSXTS9  SUR                  UR                  5      4SUR                  5       4SUR                  5       44 H  u  pgS	n[	        XS
U S3U5        M     SS/nUb:  [        US5      (       a)  UR                  5       n	UR                  U	S   U	S   45        U H  n UR                  U   n
U " SU-  U
5        M!     g ! [         a     g f = f! [         a    S n Nf = f! [         a     MS  f = f)Nr   c                 <    U R                  S5      (       a  SU-  $ U$ )NOP_z%#8x)r  r   s     r
   r    collect_ssl.<locals>.format_attrE  s     ??5!!E>!Lr   )OPENSSL_VERSIONOPENSSL_VERSION_INFOHAS_SNIOP_ALLOP_NO_TLSv1_1zssl.%sr*   
SSLContextdefault_https_contextstdlib_context)minimum_versionmaximum_versionprotocoloptionsverify_modezssl.z.%sOPENSSL_CONFSSLKEYLOGFILEget_default_verify_paths   zssl.environ[%s])r   sslr  _sslr4   r  PROTOCOL_TLS_CLIENT_create_default_https_context_create_stdlib_contextrh   r  extendr  r  )r.   r   r  r  r   r1   r3   ctx	env_namespartsr   s              r
   collect_sslr  :  sK   J H8ZO 
s~~c&=&=>?	 #"C"C"EF	35578	


 	dV3'7D  1IGD*DEE--/%(E!H-.	JJt$E 	"T)51 S    P  		s4   C" C2 D"
C/.C/2D D
DDc                      SS K n UR                  5       nU " SU5        g ! [         a     g f = f! [        [        4 a    [
        R                  S:w  a  e  g f = f)Nr   zsocket.hostnamewasi)socketr  gethostnamer   r7   rf   rR   )r.   r  hostnames      r
   collect_socketr  o  sg    .%%' 	"H-  
 ^$ <<6! "s   ! 1 
..%AAc                 L     SS K nSn[        XSU5        g ! [         a     g f = f)Nr   )sqlite_versionz
sqlite3.%s)sqlite3r  r4   )r.   r  r1   s      r
   collect_sqliter    s1     %JH|Z@	      
##c                 L     SS K nSn[        XSU5        g ! [         a     g f = f)Nr   )ZLIB_VERSIONZLIB_RUNTIME_VERSIONzzlib.%s)zlibr  r4   )r.   r  r1   s      r
   collect_zlibr    s1     :JHIz:	  r  c                 P     SSK Jn  Sn[        XSU5        g ! [         a     g f = f)Nr   )expat)EXPAT_VERSIONzexpat.%s)xml.parsersr  r  r4   )r.   r  r1   s      r
   collect_expatr    s1    % $JHZ<	      
%%c                 L     SS K nSn[        XSU5        g ! [         a     g f = f)Nr   )__libmpdec_version__z_decimal.%s)_decimalr  r4   )r.   r  r1   s      r
   collect_decimalr    s1     +JHzB	  r  c                 `     SS K nS H  n[        U SU 3X5        M     g ! [         a     g f = f)Nr   )LONG_MAXPY_SSIZE_T_MAXPy_C_RECURSION_LIMITSIZEOF_TIME_TSIZEOF_WCHAR_Tz
_testcapi.)	_testcapir  r:   )r.   r  r3   s      r
   collect_testcapir    s?     	(j/A  s     
--c                 |     SS K n[        U SUS5        S H  n[        U SU 3X5        M     g ! [         a     g f = f)Nr   zpymem.allocatorpymem_getallocatorsname)SIZEOF_PYGC_HEADSIZEOF_PYOBJECTz_testinternalcapi.)_testinternalcapir  r>   r:   )r.   r  r3   s      r
   collect_testinternalcapir    sT      h)+<>WX 	(079JQ	  s   . 
;;c                     SS K n[        U5       Vs/ s H  o"R                  S5      (       d  M  UPM     nnU H+  n[	        X5      nUR                  U5      nU " SU-  U5        M-     [        U SUS5        g ! [         a     g f = fs  snf )Nr   RLIMIT_zresource.%szresource.pagesizegetpagesize)resourcer  dirr  r-   	getrlimitr>   )r.   r  r2   limitsr3   r   r   s          r
   collect_resourcer    s      #8}K}t	0Jd}FKh%""3'%u- 
 h+X}E   Ls   A8 BB8
BBc                     SS K n SSKJn  [        U5       Vs/ s H  nUR                  S5      (       d  M  UPM     nn[        XSU5        g ! [        UR                  4 a     g f = fs  snf )Nr   )test_socketHAVE_ztest_socket.%s)unittesttestr  r  SkipTestr  r  r4   )r.   r  r  r3   r1   s        r
   collect_test_socketr    sm    $
 $'{#3 /#34__W- #3J /H+;ZH **+ /s   A A)A)A&%A&c                     SSK Jn  Sn[        XSU5        [	        U SUS5        [	        U SUS5        U " S	UR                  S
S95        U " SUR                  S
S95        U " SUR                  S
S95        g ! [         a     g f = f)Nr   )support)	
MS_WINDOWShas_fork_supporthas_socket_supporthas_strftime_extensionshas_subprocess_support
is_androidis_emscripten	is_jythonis_wasiz
support.%szsupport._is_gui_available_is_gui_availablezsupport.python_is_optimizedpython_is_optimizedz%support.check_sanitizer(address=True)T)addressz$support.check_sanitizer(memory=True))memoryz support.check_sanitizer(ub=True))ub)r  r  r  r4   r>   check_sanitizer)r.   r  r1   s      r
   collect_supportr    s     
J H|Z@h3W>QRh5w@UV4$$T$243$$D$13/$$$-//  s   A6 6
BBc                 |     SSK Jn  S H  n[        X5      nU " SU 3U" 5       5        M!     g ! [         a     g f = f)Nr   )	os_helper)can_symlink	can_xattr	can_chmodcan_dac_overridezsupport_os_helper.)test.supportr  r  r-   )r.   r  r3   r=   s       r
   collect_support_os_helperr     sJ    * y'%dV,df5  s   . 
;;c                      SSK Jn  Sn[        XSU5        S H  n[	        X5      nU " SU 3U" 5       5        M!     g ! [         a     g f = f)Nr   )socket_helper)IPV6_ENABLEDhas_gethostnamezsupport_socket_helper.%s)tcp_blackholezsupport_socket_helper.)r  r  r  r4   r-   )r.   r  r1   r3   r=   s        r
   collect_support_socket_helperr    s`    .J H-GT }+)$0$&9	  s   = 
A
	A
c                 P     SSK Jn  Sn[        XSU5        g ! [         a     g f = f)Nr   )threading_helper)can_start_threadzsupport_threading_helper.%s)r  r  r  r4   )r.   r  r1   s      r
    collect_support_threading_helperr  #  s4    1J H0MzZ  r  c                    SS K nSS KnUR                  S5      nU(       d  g  SS KnUR	                  U5      nUR                  S5         UR                  UUR                  UR                  SS9nUR                  5       S   nUR                  (       a  g UR                  5       S   n[        U5      nU " SU5        g ! [
         a    UR	                  5       n Nf = f! [         a     g f = f)Nr   r   r$  Tr%  z
CC.version)r(  rt  rv  shlexsplitr  appendr)  r*  STDOUTr   r+  r,  r-  r   )	r.   r(  rt  r   r  argsr.  r`   r	   s	            r
   
collect_ccr  /  s    		!	!$	'B{{2 	KK	'1'1'8'837   9 "Fq!D$D\4 +  xxz   		s#   B= 
&C =CC
C*)C*c           	      ~     SSK Jn  U " SSR                  [	        [
        U5      5      5        g ! [         a     g f = f)Nr   )_GDBM_VERSIONzgdbm.GDBM_VERSION.)_gdbmr  r  rz   r   r   )r.   r  s     r
   collect_gdbmr  R  s;    '  #((3sM+B"CD     / 
<<c           	           SSK Jn  U" 5       n[        U5       H5  nX#   n[        U5       H  nU " U< SU< S3[	        XE   5      5        M!     M7     g ! [         a     g f = f)Nr   )get_configs[rv   )r  r  r  r   repr)r.   r  all_configsconfig_typeconfigr   s         r
   collect_get_configr  [  sb    1 -Kk*)&>Cc2D4EF " +	  s   A 
A! A!c                 &    SS K n[        XSS5        g )Nr   zsubprocess.%s)_USE_POSIX_SPAWN)r(  r4   )r.   r(  s     r
   collect_subprocessr
  i  s    H/;PQr   c                    [         R                  S:w  a  g  SS Kn[        US5      (       d  [        e UR                  S5      nUR                  n UR                  nX4l        SUl	        [        U" 5       5      nU " SU5        UR                  R                  nUR                  nX7l        SUl	        U " SU" 5       5         SS KnUR!                  [         R"                  5      n	U " S	U	5        SS Kn
 U
R'                  / S
QU
R(                  U
R(                  SSS9nUR+                  5       u  pUR,                  (       a  SnUR/                  5        H  nUR1                  5       nUR3                  S5      (       a3  UR5                  S5      R1                  5       nU(       a  U " SU5        MZ  M\  UR3                  S5      (       d  Mt  UR5                  S5      R1                  5       nU(       d  M  U " SU5        M      U
R'                  S/SU
R(                  U
R(                  SS9nUR+                  5       S   nUR,                  S:X  a  g UR,                  (       a  SnUR1                  5       nUR/                  5       S   nU(       a	  U " SU5        SS Kn UR;                  UR<                  S5      nSn UR?                  UU5      u  nnURA                  U5         U " SU(       a  SOS5        g ! [         a    Sn GNf = f! [         a     GNJf = f! [        [        4 a     GN4f = f! [6         a     GN9f = f! [6         a     g f = f! URA                  U5        f = f! [6         a     g f = f)Nwin32r   WinDLLntdllr)   z<function not available>zwindows.RtlAreLongPathsEnabledzwindows.is_adminzwindows.dll_path)wmicr   getzCaption,Versionz/valueoemT)r`   ra   rb   r	   r  zCaption=zwindows.version_captionzVersion=zwindows.versionver)shellr`   ra   r	   l   B   zwindows.verz8SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock!AllowDevelopmentWithoutDevLicensezwindows.developer_modeenableddisabled)!rf   rR   ctypesrh   r  r  c_ubyteRtlAreLongPathsEnabledrestypeargtypesr|   r7   windllshell32IsUserAnAdmin_winapiGetModuleFileName	dllhandler(  r)  r*  r+  r,  r-  r   r  removeprefixr   winregOpenKeyHKEY_LOCAL_MACHINEQueryValueExCloseKey)r.   r  r  BOOLEANr  resr  r  r  dll_pathr(  r.  outputra   liner#  r   subkeyr   
value_types                       r
   collect_windowsr/  n  sF   
||w6vx(( )
 g&..	1%*%A%A" .5*.0"+-/0C137--''-- '!##]_5,,S]];#X.
 6  R'1'1).%)	   +
 ))+??F %%'D::<Dz**((4::<6= ,,((4::<4.5 (*t'1'1%)   + !!#A&??j(??F   "1%]D) Onn%%GI 5	! & 3 3C @E:OOC  	)9:Nc  	-,C	-  2 (    2  $ OOC  s   K= K* ,L 2AL% :AL6 L6 M 0M M *K:9K:=
L
LL"!L"%
L32L36
MMMM 
M)(M)c                     SS K nUb  [        U SUS5         [        SSS9 nUR	                  5       R                  5       nS S S 5        W(       a
  U " SU5        g g ! [         a    S n Ncf = f! , (       d  f       N2= f! [         a     g f = f)Nr   zfips.openssl_fips_modeget_fips_modez/proc/sys/crypto/fips_enabledzutf-8)rb   zfips.linux_crypto_fips_enabled)_hashlibr  r>   openr  rstripr   )r.   r2  fpr,  s       r
   collect_fipsr6    s     (4hP1GD;;='')D E 5t<    ED
  s9   A 
A> A-A> A*)A*-
A;7A> >
B
Bc                 :    SS K nU " SUR                  5       5        g )Nr   ztempfile.gettempdir)tempfile
gettempdir)r.   r8  s     r
   collect_tempfiler:    s    "H$7$7$9:r   c                 ~     SSK Jn  U " SSR                  UR	                  5       5      5        g ! [         a     g f = f)Nr   )utilszlibregrtests.build_infor   )test.libregrtestr<  r  rz   get_build_info)r.   r<  s     r
   collect_libregrtest_utilsr?    s=    * &1E1E1G(HI  r  c                    SnU R                   n/ [        P[        P[        P[        P[
        P[        P[        P[        P[        P[        P[        P[        P[        P[        P[        P[         P["        P[$        P[&        P[(        P[*        P[,        P[.        P[0        P[2        P[4        P[6        P[8        P[:        P[<        P[>        P[@        P[B        P[D        P[F        P[H        P7 H  n U" U5        M     U$ ! [J         a    Sn[M        SURN                  -  [P        RR                  S9  [T        RV                  " [P        RR                  S9  [M        [P        RR                  S9  [P        RR                  RY                  5          M  f = f)NFTzERROR: %s() failedfile)-r   r   r   r  rN  rR  r  r  r6  r/  r  r  r   r  r   r  r!  r  r  r  r  r
  rl   rx  r  r  r:  rJ  r9  r/  r  r?  r  r  r  r  r  	Exceptionprintr$   rf   ra   	traceback	print_excflush)r   errorr.   collect_funcs       r
   collect_inforJ    s   ExxH+ 		+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+  	!+" 	#+$ 	%+& 	'+( 	)+* 	++, 	-+. 	/+0 	1+2 	3+4 	5+6 	7+8 	9+: 	!;+< 	=+> 	?+@ 	A+B 	C+D 	E+F 	"G+L 	M+N 	O+P 	"Q+R 	&S+T 	)U+X	"[+l L  	E&,*?*?@zz#SZZ0szz"JJ	s   .C<<BFFc                    Sn[        U5        [        S[        U5      -  5        [        5         U R                  5       n[        UR	                  5       5      nU H)  u  pEUR                  SS5      n[        U< SU< 35        M+     g )NzPython debug information=
r   z: )rD  lenr"   r   r!   replace)r   rB  titleinfosr   r   s         r
   	dump_inforR  3  si    &E	%L	#E

	GNNE5;;=!E
dC(#u%& r   c                      [        5       n [        U 5      n[        U 5        U(       a9  [        5         [        S[        R
                  S9  [        R                  " S5        g g )Nz"Collection failed: exit with errorrA  r   )r   rJ  rR  rD  rf   ra   exit)r   rH  s     r
   mainrU  @  sA    <DEdO2D r   __main__r   )3r  r   r   rf   rE  rG  r   r   r4   r:   r>   rl   r   r   r   r   r  r  r!  r/  r9  rJ  rN  rR  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r/  r6  r:  r?  rJ  rR  rU  r$   r)   r   r
   <module>rW     s;    	 
  E E: GK  <@ E*P%MP9L
&L.^,69:%(8&H6M?@(F22j. A;=CB RF
I/<6 :&	[ !FEGR
cOL&;J:z
' zF r   