asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYhX@sdZddlmZddlZddlZddlZddlZddlZddZGdddZ ddd d Z d d Z ddd dZ ddZ ddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Z d7d8Z!d9d:Z"d;d<Z#d=d>Z$d?d@Z%dAdBZ&dCdDZ'dEdFZ(dGdHZ)dIdJZ*dPdKdLZ+dMdNZ,e-dOkre,dS)QzK Collect various information about Python to help debugging test failures. )print_functionNcCs*|dur dSt|}tdd|}|S)Nz\s+ )strresubstrip)textr +/usr/local/lib/python3.9/test/pythoninfo.pynormalize_text s r c@s$eZdZddZddZddZdS) PythonInfocCs i|_dSN)infoselfr r r __init__szPythonInfo.__init__cCs\||jvrtd||dur"dSt|tsNt|ts>t|}|}|sNdS||j|<dS)Nzduplicate key: %r)r ValueError isinstanceintrr)rkeyvaluer r r adds    zPythonInfo.addcCsdd|jDS)zU Get information as a key:value dictionary where values are strings. cSsi|]\}}|t|qSr )r).0rrr r r .z(PythonInfo.get_infos..)ritemsrr r r get_infos*szPythonInfo.get_infosN)__name__ __module__ __qualname__rrrr r r r r sr  formattercCsH|D]>}t||d}|durq||}|dur8|||}|||qdSr )getattr)info_addobjZname_fmt attributesr!attrrnamer r r copy_attributes1s  r(cCs2zt||}Wnty"YdS0|||dSr r"AttributeError)r#r'modZ attr_namerr r r copy_attr<s  r,cCsHzt||}Wnty"YdS0|}|dur:||}|||dSr r))r#r'r+ func_namer!funcrr r r call_funcDs r/cCsd}t|td|t|dtdt|dtdt}ttdrPd|tf}|d |d D]T}tt|}|durvq^t|d d}|sq^t|d d}|rd||f}|d ||q^ttd}|rd}nd}|d|dS)N) _frameworkabiflags api_versionbuiltin_module_names byteorderdont_write_bytecode executableflags float_infofloat_repr_style hash_info hexversionimplementationint_infomaxsize maxunicodepathplatformprefix thread_infoversion version_infoZwinverzsys.%szsys.androidapilevelgetandroidapilevelzsys.windowsversiongetwindowsversiongetfilesystemencodeerrorsz%s/%szsys.filesystem_encoding)stdinstdoutstderrencodingerrorszsys.%s.encodingZgettotalrefcountz$Yes (sys.gettotalrefcount() present)z#No (sys.gettotalrefcount() missing)Py_DEBUG)r(sysr/getfilesystemencodinghasattrrHr")r#r%rLr'streamrMrNrr r r collect_sysOs0       rScCslddl}|}dtt|}|d||d||d|jddd|}|rh|d |dS) Nrrzplatform.architecturezplatform.python_implementationzplatform.platformT)Zaliasedz%s %szplatform.libc_ver)rAZ architecturejoinfilterboolZpython_implementationlibc_verr)r#rAZarchrWr r r collect_platforms  rXcCsddl}|d|ddS)Nrzlocale.encodingF)localegetpreferredencoding)r#rYr r r collect_localesr[cCs$|dtd|dtddS)Nzbuiltins.float.float_formatfloatzbuiltins.float.double_formatZdouble)r\ __getformat__)r#r r r collect_builtinssr^c Csddl}t|drzRz|d|jd}Wn,tyV}zd|}WYd}~n d}~00|d|Wn2ty}z|jtjkrWYd}~n d}~00dS)Nr getrandomzready (initialized)znot seeded yet (%s)z os.getrandom)osrQr_ GRND_NONBLOCKBlockingIOErrorOSErrorerrnoZENOSYS)r#rastateexcr r r collect_urandoms  rhc Csddl}dd}d}t||d||ddD]}t|d|||q*dd }t|d |d |dt|d rz |}WntyYn 0|d |td}|jD]D\}} | } | |vs| ds| dr| dr|d|| qt|dr| d} | | |dd| dS)NrcSs&|dvrttdd|DS|SdS)N)supports_follow_symlinks supports_fdsupports_effective_idscss|] }|jVqdSr )r)rr.r r r rz2collect_os..format_attr..)rsortedr&rr r r format_attrszcollect_os..format_attr)r'supports_bytes_environrkrjrizos.%sr ) cpu_countgetcwdgetegidgeteuidgetgid getloadavg getresgid getresuidgetuidunamecSsdtt|S)N, )rTmapr)groupsr r r format_groupssz!collect_os..format_groupsz os.getgroups getgroupsgetloginzos.login)>APPDATAZARZ ARCHFLAGSZARFLAGSZAUDIODEVCCCFLAGSCOLUMNSZ COMPUTERNAMEZCOMSPECZCPPZCPPFLAGSZDISPLAYZDISTUTILS_DEBUGZDISTUTILS_USE_SDKZDYLD_LIBRARY_PATHZENSUREPIP_OPTIONSZ HISTORY_FILEHOME HOMEDRIVEHOMEPATHZ IDLESTARTUPLANGZLDFLAGSZLDSHAREDZLD_LIBRARY_PATHLINESZMACOSX_DEPLOYMENT_TARGETZMAILCAPSZ MAKEFLAGSZMIXERDEVZMSSDKPATHPATHEXTZPIP_CONFIG_FILEZPLATZPOSIXLY_CORRECTZ PY_SAX_PARSERZ ProgramFileszProgramFiles(x86)ZRUNNING_ON_VALGRINDZ SDK_TOOLS_BINZSERVER_SOFTWARESHELLSOURCE_DATE_EPOCHZ SYSTEMROOTTEMPZTERMZ TILE_LIBRARYZ TIX_LIBRARYTMPTMPDIRZTRAVISZTZ USERPROFILEZ VIRTUAL_ENVZWAYLAND_DISPLAYZWINDIRZ_PYTHON_HOST_PLATFORMZ_PYTHON_PROJECT_BASEZ_PYTHON_SYSCONFIGDATA_NAME__PYVENV_LAUNCHER__)ZPYTHONLC_ZVSZ COMNTOOLSzos.environ[%s]umaskzos.umaskz0o%03o) rar(r/rQrrd frozensetenvironrupper startswithendswithr) r#raror%r.r~ZloginZENV_VARSr'rrzmaskr r r collect_oss:     @   rcCsz ddl}Wnty YdS0ddl}|}z||}WntyVd}Yn0|d||durl|nd|dur~dSt|dr||j|j }d t t |}|d|dS)Nrzpwd.getpwuid(%s)z getgrouplistr{zos.getgrouplist) pwd ImportErrorrarygetpwuidKeyErrorrQrpw_namepw_gidrTr|r)r#rrauidentryr}r r r collect_pwd:s&     rcCsz ddl}Wnty YdS0dd}d}t||d||dt|ds|t|dd }d |vrj|d d nd |vr||d d dS) NrcSst|trd|S|SdS)Nz%#x)rrrnr r r ro[s z%collect_readline..format_attr)Z_READLINE_VERSIONZ_READLINE_RUNTIME_VERSION_READLINE_LIBRARY_VERSIONz readline.%sr r__doc__zlibedit readlinezreadline.libraryz GNU readline)readlinerr(rQr")r#rror%docr r r collect_readlineUs      rcCsnddl}z6|jgd|j|jdd}|d}|jr.format_attr)ZOPENSSL_VERSIONZOPENSSL_VERSION_INFOZHAS_SNIZOP_ALLZ OP_NO_TLSv1_1zssl.%sr SSLContextZdefault_https_contextZstdlib_context)Zminimum_versionZmaximum_versionprotocoloptionsZ verify_modezssl.z.%sZ OPENSSL_CONFZ SSLKEYLOGFILEget_default_verify_pathszssl.environ[%s]) rasslr_sslr(rZ_create_default_https_contextZ_create_stdlib_contextrQrextendrr) r#rarrror%r'ctxZ env_namespartsrr r r collect_ssls8         rcCsddl}|}|d|dS)Nrzsocket.hostname)socket gethostname)r#rhostnamer r r collect_socketsrcCs8z ddl}Wnty YdS0d}t||d|dS)Nr)rDZsqlite_versionz sqlite3.%s)sqlite3rr()r#rr%r r r collect_sqlites   rcCs8z ddl}Wnty YdS0d}t||d|dS)Nr) ZLIB_VERSIONZLIB_RUNTIME_VERSIONzzlib.%s)zlibrr()r#rr%r r r collect_zlib&s   rcCs<zddlm}Wnty$YdS0d}t||d|dS)Nr)expat)Z EXPAT_VERSIONzexpat.%s)Z xml.parsersrrr()r#rr%r r r collect_expat0s  rcCs8z ddl}Wnty YdS0d}t||d|dS)Nr)Z__libmpdec_version__z _decimal.%s)_decimalrr()r#rr%r r r collect_decimal:s   rcCsBz ddl}Wnty YdS0t|d|dt|d|ddS)Nrzpymem.allocatorZpymem_getallocatorsnamezpymem.with_pymallocZ WITH_PYMALLOC) _testcapirr/r,)r#rr r r collect_testcapiDs   rcCsrz ddl}Wnty YdS0ddt|D}|D]&}t||}||}|d||q8t|d|ddS)NrcSsg|]}|dr|qS)ZRLIMIT_r)rr&r r r Trz$collect_resource..z resource.%szresource.pagesizeZ getpagesize)resourcerdirr"Z getrlimitr/)r#rZlimitsr'rrr r r collect_resourceNs    rcCsJzddlm}Wnty$YdS0ddt|D}t||d|dS)Nr) test_socketcSsg|]}|dr|qS)ZHAVE_r)rr'r r r rds z'collect_test_socket..ztest_socket.%s)testrrrr()r#rr%r r r collect_test_socket]s  rcCsXzddlm}Wnty$YdS0d}t||d|t|d|dt|d|ddS) Nr)support)Z IPV6_ENABLEDztest_support.%sztest_support._is_gui_availableZ_is_gui_availablez test_support.python_is_optimizedZpython_is_optimized)rrrr(r/)r#rr%r r r collect_test_supportis rc Csddl}ddl}|d}|s"dSzddl}||}WntyR|}Yn0|dz|j||j|j dd}Wnt yYdS0| d}|j rdS| d}t|}|d|dS)NrrrTrz CC.version)rrrshlexsplitrappendrrSTDOUTrdrrrr ) r#rrrrargsrrJrr r r collect_ccvs2       rcCs@zddlm}Wnty$YdS0|ddtt|dS)Nr) _GDBM_VERSIONzgdbm.GDBM_VERSION.)_gdbmrrrTr|r)r#rr r r collect_gdbms  rcCsnzddlm}Wnty$YdS0|}t|D]4}||}t|D]}|d||ft||qHq4dS)Nr) get_configsz%s[%s])Z_testinternalcapirrrmrepr)r#rZ all_configsZ config_typeZconfigrr r r collect_get_configs   rcCsddl}t||dddS)Nrz subprocess.%s)_USE_POSIX_SPAWN)rr()r#rr r r collect_subprocesssrc Csz ddl}Wnty YdS0t|ds0dS|d}|j}z |j}Wnty`d}Yn0||_d|_t |}|d|z"ddl }| t j }|d|WnttfyYn0ddl}z6|jgd|j|jd d d } | \} } | jrd } WntyYnp0| D]d} | } | d rP| d } | rz|d| n*| dr| d} | r|d| qz6|jdgd |j|jd d} | d} | jrd } WntyYdS0| } | d} | r|d| dS)NrWinDLLntdllzr zwindows.RtlAreLongPathsEnabledzwindows.dll_path)ZwmicragetzCaption,Versionz/valueZoemT)rJrKrLrrzCaption=zwindows.version_captionzVersion=zwindows.versionver)shellrJrKrz windows.ver)ctypesrrQrZc_ubyteRtlAreLongPathsEnabledr*ZrestypeargtypesrV_winapiZGetModuleFileNamerOZ dllhandlerrrrrrdrrr removeprefix) r#r rZBOOLEANr resr Zdll_pathrroutputrKliner r r collect_windowssx                   rcCsz ddl}Wnty"d}Yn0|dur:t|d|dzJtddd}|}Wdn1sj0Y|r|d|WntyYn0dS)Nrzfips.openssl_fips_modeZ get_fips_modez/proc/sys/crypto/fips_enabledzutf-8)rLzfips.linux_crypto_fips_enabled)_hashlibrr/openrrstriprd)r#rfprr r r collect_fipss   * rcCsd}|j}ttttttttt t t t t ttttttttttttttttfD]`}z ||WqHtyd}td|j t!j"dt#j$t!j"dtt!j"dt!j"%YqH0qH|S)NFTzERROR: %s() failedfile)&rrhr^rrrrrrrrr[rrXrrrrrrrrSrrrrrrrr ExceptionprintrrOrK traceback print_excflush)rerrorr#Z collect_funcr r r collect_infosV%    r cCsjd}t|tdt|t|}t|}|D]$\}}|dd}td||fq:tdS)NzPython debug information= rz%s: %s)rlenrrmrreplace)rrtitleZinfosrrr r r dump_infoFs   r&cCs6t}t|}t||r2tdtjdtddS)Nz"Collection failed: exit with errorrr`)r r r&rrOrKexit)rrr r r mainTs r(__main__)N).rZ __future__rrerrOrrr r r(r,r/rSrXr[r^rhrrrrrrrrrrrrrrrrrrrrrrrrr r&r(rr r r r s\   9 #5       # H6