ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.6/test/support/__pycache__/__init__.cpython-36.opt-2.pyc
3

i@sf
edkredddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
ZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z!ddl"Z"ddl#m$Z$yddl%Z%ddl&Z&Wnek
r>dZ%dZ&YnXyddl'Z(Wnek
rfdZ(YnXyddl)Z)Wnek
rdZ)YnXyddl*Z*Wnek
rdZ*YnXyddl+Z+Wnek
rdZ+YnXyddl,Z,Wnek
rdZ,YnXyddl-Z-Wnek
r.dZ-YnXyddl.Z.Wnek
rVdZ.YnXdddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dag\Z/Gdbdde0Z1Gdcdde1Z2Gddd
d
e1Z3Gdeddej4Z5ej6dgdgdhZ7dhfdjdkdZ8dldmZ9dndoZ:dpd<Z;dqd=Z<ffdifdrdZ=dsd8Z>dZ?dZ@daAdaBdZCdiZDdaEdtdZFdudZGdvdZHdwdxZIejjJdyr*didzd{ZKd|d}ZLd~dZMddZNddZOnejPZLejQZMddZNddZOddZPddZQddZRddZSddZTddZUdd"ZVdjdd#ZWddZXdd$ZYdd%ZZdd&Z[dkdd'Z\dZ]dZ^ej_ej`fddIZae]fddJZbddLZcddZdedZeddZfdnZgdqZhejiejjkdjJddZlejie)dZmejie*dZnejie+dZoejie,dZpejjJdZqejrdZsesdk	otesdkZtejdkretrdndZundZuejvdkrdZwndZwdjxewejyZwdZzxLdrD]BZ{yej|ej}e{e{kre~Wne~k
rYnXe{ZzPqWewdZejdkr6ddlZejdeZejZdZejvdkrejjdkrewdZyejeWnek
rYnXedeefdZnBejdkrydjeWn&ek
rewdjedƃZYnXdZxFdsD]<ZvyevjeWn&ek
r(ej}ewevZPYnXqWezrDewdezZndZejZdiZdiZej6dtdd̈́Zej6duddτZej6dvddZeed҃rej6ddMZejjejjeZejjeZejjedԃZdwddZddZdd]ZddلZdddڜdd(ZddKZGddބdeZdxddZej6ddTZej6dedifddZej6ddUZGdddeZGddVdVejjZGdddeZGdd)d)eZeeejdZeeejdZeeejdZej6dfddd-Zej6ddZddZddZddZddZej6ddZddZdZdZeed	rHdeZdZedZddZddZÐdyZĐdzZŐddZƐddWZǐd	d^ZȐd{ZdeZdeZdeZejZΐd
d[ZGdddZАd|d
d5Zѐdd6ZGdd.d.ZӐddZԐddZՐdd@Z֐dd7Zאd}ddZdaِddAZڐddZېddDZܐddZݐddZސd d!Zߐd"d#Zdadad$d%Zd&d'Zd(d)Zd*d/Zd+d,Ze܃
oejdk
oejrd-Zejdk	oeZejied.Zd~d/d0Zd0d1Zd2d3ZdiZd4dPZd5dQZd6dRZej6dd8d9Zd:dNZej6dd;dSZej6d<dYZej6d=dXZd>d?Zejeed@dAZdBdCZdDdEZGdFdOdOejjZGdGdZdZeZdadHd ZdId1ZdadJdKZdLd:ZdMdNZdOd!ZfdPdQd>Z	dfffdRd?Z
GdSd\d\ZdTdUZdVdWZ
ffdXdYZgfdZd`Zdad[dFZej6d\d]Zd^daZGd_d`d`ZGdadbdbZej6dcddZdedfZdS(ztest.supportz.support must be imported from the test packageN)get_test_runner
PIPE_MAX_SIZEverbose
max_memuse
use_resourcesfailfastError
TestFailed
TestDidNotRunResourceDenied
import_moduleimport_fresh_moduleCleanImportunloadforgetrecord_original_stdoutget_original_stdoutcaptured_stdoutcaptured_stdincaptured_stderrTESTFNSAVEDCWDunlinkrmtreetemp_cwdfindfilecreate_empty_filecan_symlinkfs_is_case_insensitiveis_resource_enabledrequiresrequires_freebsd_versionrequires_linux_versionrequires_mac_verrequires_hashdigestcheck_syntax_errorTransientResourcetime_outsocket_peer_resetioerror_peer_resettransient_internetBasicTestRunnerrun_unittestrun_doctestskip_unless_symlink
requires_gziprequires_bz2
requires_lzma
bigmemtestbigaddrspacetestcpython_only
get_attributerequires_IEEE_754skip_unless_xattr
requires_zlibanticipate_failureload_package_testsdetect_api_mismatchcheck__all__requires_android_levelrequires_multiprocessing_queue	is_jython
is_androidcheck_impl_detail
unix_shellsetswitchintervalHOSTIPV6_ENABLEDfind_unused_port	bind_portopen_urlresourcebind_unix_socket
temp_umask
reap_childrenTestHandlerthreading_setupthreading_cleanupreap_threads
start_threadscheck_warningscheck_no_resource_warningEnvironmentVarGuardrun_with_locale	swap_item	swap_attrMatcherset_memlimitSuppressCrashReportsortdictrun_with_tzPGOmissing_compiler_executablefd_countc@seZdZdS)r	N)__name__
__module____qualname__rcrc-/usr/lib64/python3.6/test/support/__init__.pyr	|sc@seZdZdS)r
N)r`rarbrcrcrcrdr
sc@seZdZdS)rN)r`rarbrcrcrcrdrsc@seZdZdS)rN)r`rarbrcrcrcrdrsTccs8|r.tjtjddtdVWdQRXndVdS)Nignorez.+ (module|package))warningscatch_warningsfilterwarningsDeprecationWarning)rercrcrd_ignore_deprecated_importss
rjF)required_oncCsft|Ty
tj|Stk
rV}z&tjjt|r8tj	t
|WYdd}~XnXWdQRXdS)N)rj	importlibr
ImportErrorsysplatform
startswithtupleunittestSkipTeststr)name
deprecatedrkmsgrcrcrdr
s	

cCs^|tjkrt|tj|=x>ttjD]0}||ks@|j|dr&tj|||<tj|=q&WdS)N.)rnmodules
__import__listrp)ruorig_modulesmodnamercrcrd_save_and_remove_modules
r~cCs>d}ytj|||<Wntk
r.d}YnXdtj|<|S)NTF)rnryKeyError)rur|Zsavedrcrcrd_save_and_block_modules

rcCs|r
tjSddS)NcSs|S)Nrc)frcrcrd<lambda>sz$anticipate_failure.<locals>.<lambda>)rrZexpectedFailure)Z	conditionrcrcrdr:scCsF|dkrd}tjjtjjtjjt}|j|||d}|j||S)Nztest*)Z	start_dirZ
top_level_dirpattern)ospathdirname__file__ZdiscoverZaddTests)Zpkg_dirloaderZstandard_testsrZtop_dirZ
package_testsrcrcrdr;s
cCst|i}g}t||zfyHx|D]}t||q&Wx |D]}t||s>|j|q>Wtj|}Wntk
r~d}YnXWdx|jD]\}	}
|
tj	|	<qWx|D]}tj	|=qWX|SQRXdS)N)
rjr~rappendrlr
rmitemsrnry)ruZfreshZblockedrvr|Znames_to_removeZ
fresh_nameZblocked_nameZfresh_moduleZ	orig_namemoduleZname_to_removercrcrdrs$





cCs>yt||}Wn&tk
r4tjd||fYnX|SdS)Nzobject %r has no attribute %r)getattrAttributeErrorrrrs)objruZ	attributercrcrdr6s
cCs|adS)N)_original_stdout)stdoutrcrcrdr0scCs
tptjS)N)rrnrrcrcrcrdr4scCs&ytj|=Wntk
r YnXdS)N)rnryr)rurcrcrdr7scGsny||Stk
rh}zDtdkrHtd|jj|ftd|j|ftj|tj||Sd}~XnXdS)Nz%s: %szre-run %s%r)	OSErrorrprint	__class__r`rchmodstatS_IRWXU)rfuncargserrrcrcrd
_force_run=srwincCs|||r|}ntjj|\}}|p(d}d}x<|dkrjtj|}|rJ|n||ksVdStj||d9}q0Wtjd|tdddS)NrxgMbP?g?rz)tests may fail, delete still pending for )
stacklevel)	rrsplitlistdirtimesleeprfwarnRuntimeWarning)rpathnamewaitallrrutimeoutLrcrcrd_waitforHs



rcCsttj|dS)N)rrr)filenamercrcrd_unlinkisrcCsttj|dS)N)rrrmdir)rrcrcrd_rmdirlsrcs,fddt|ddtdd|dS)Ncsxt|tj|D]}tjj||}ytj|j}Wn<tk
rn}z td||ft	j
dd}WYdd}~XnXtj|rt
|ddt|tj|qt|tj|qWdS)Nz-support.rmtree(): os.lstat(%r) failed with %s)filerT)r)rrrrjoinlstatst_moderrrn
__stderr__rS_ISDIRrrr)rrufullnamemodeexc)
_rmtree_innerrcrdrps

z_rmtree.<locals>._rmtree_innerT)rcSst|tj|S)N)rrr)prcrcrdrsz_rmtree.<locals>.<lambda>)r)rrc)rrd_rmtreeosrc
Cs^yddl}Wntk
r Yn:X|jt|d}|jjj||t|}|rZ|d|S|S)Nrr)ctypesrmZcreate_unicode_bufferlenwindllkernel32ZGetLongPathNameW)rrbufferZlengthrcrcrd	_longpaths
rcsFytj|dStk
r"YnXfdd|tj|dS)Nc
sx~t|tj|D]l}tjj||}ytj|j}Wntk
rJd}YnXtj	|rn|t|tj
|qt|tj|qWdS)Nr)rrrrrrrrrrrr)rrurr)rrcrdrs

z_rmtree.<locals>._rmtree_inner)shutilrrrr)rrc)rrdrs
cCs|S)Nrc)rrcrcrdrscCs*yt|Wnttfk
r$YnXdS)N)rFileNotFoundErrorNotADirectoryError)rrcrcrdrscCs&yt|Wntk
r YnXdS)N)rr)rrcrcrdrsrcCs&yt|Wntk
r YnXdS)N)rr)rrcrcrdrscCsBtjj|}tjjtjj|}tjj||d}tj|||S)Nc)	rlutilcache_from_sourcerrrabspathrrename)sourceZpyc_fileZup_oneZ
legacy_pycrcrcrdmake_legacy_pycs
rcCs\t|xNtjD]D}tjj||d}t|dx dD]}ttjj||dq8WqWdS)Nz.pyrrr)optimization)rrr)	rrnrrrrrlrr)r}rroptrcrcrdrs
csttdrtjSd}tjjdrddlddld}d}Gfdddj}j	j
}|j}|sjj|}j
j}|j||j|j|j|}|sjt|j|@sd}ntjdkrVdd	lm}	mm}
m}dd
lm}|	j|d}
|
jdkrd}nFGfd
dd|}|}|
|}|
j|dksR|
j|dkrVd}|sy.ddlm}|}|j|j |j!Wn\t"k
r}z>t#|}t$|dkr|ddd}dj%t&|j'|}WYdd}~XnX|t_(|t_tjS)Nresultrrrcs.eZdZdjjfdjjfdjjfgZdS)z*_is_gui_available.<locals>.USEROBJECTFLAGSZfInheritZ	fReserveddwFlagsN)r`rarbwintypesZBOOLDWORD_fields_rc)rrcrdUSEROBJECTFLAGSs

rz,gui not available (WSF_VISIBLE flag not set)darwin)cdllc_intpointer	Structure)find_libraryZApplicationServicesz0gui tests cannot run without OS X window managercseZdZdfdfgZdS)z._is_gui_available.<locals>.ProcessSerialNumberZ
highLongOfPSNZlowLongOfPSNN)r`rarbrrc)rrcrdProcessSerialNumbersrz#cannot run without OS X gui process)Tk2z [...]zTk unavailable due to {}: {}))hasattr_is_gui_availablerrnrorprZctypes.wintypesrrZuser32ZGetProcessWindowStationZWinErrorrrZGetUserObjectInformationWZbyrefZsizeofboolrrrrZctypes.utilrZLoadLibraryZCGMainDisplayIDZGetCurrentProcessZSetFrontProcessZtkinterrZwithdrawupdateZdestroy	Exceptionrtrformattyper`reason)rZ	UOI_FLAGSZWSF_VISIBLErZdllhZuofZneededresrrrrZapp_servicesrZpsnZpsn_prrooteZ
err_stringrc)rrrdrsh

rcCstdkp|tkS)N)r)resourcercrcrdr $scCs>t|s |dkrd|}t||dkr:tr:ttjdS)Nz"Use of the %r resource not enabledgui)r rrr)rrwrcrcrdr!,scsfdd}|S)Ncs$tjfdd}|_|S)Nc
stjkrztjjddd}yttt|jd}Wntk
rLYn.X|krzdjtt	}t
jd||f||S)N-rrrxz(%s version %s or higher required, not %s)rosystemreleaserrqmapint
ValueErrorrrtrrrs)rkwversion_txtversionmin_version_txt)rmin_versionsysnamercrdwrapper=sz:_requires_unix_version.<locals>.decorator.<locals>.wrapper)	functoolswrapsr)rr)rr)rrd	decorator<sz)_requires_unix_version.<locals>.decoratorrc)rrrrc)rrrd_requires_unix_version5srcGs
td|S)NZFreeBSD)r)rrcrcrdr"PscGs
td|S)NZLinux)r)rrcrcrdr#Yscsfdd}|S)Ncs"tjfdd}|_|S)Ncsxtjdkrntjd}yttt|jd}Wntk
rBYn,X|krndjtt	}t
jd||f||S)Nrrrxz&Mac OS X %s or higher required, not %s)rnroZmac_verrqrrrrrrtrrrs)rrrrr)rrrcrdrjs
z4requires_mac_ver.<locals>.decorator.<locals>.wrapper)rrr)rr)r)rrdrisz#requires_mac_ver.<locals>.decoratorrc)rrrc)rrdr$bscsfdd}|S)Ncstjfdd}|S)NcsXy&rtdk	rtjn
tjWn&tk
rLtjddYnX||S)Nz
hash digest 'z' is not available.)_hashlibnewhashlibrrrrs)rkwargs)
digestnameropensslrcrdrsz7requires_hashdigest.<locals>.decorator.<locals>.wrapper)rr)rr)rr)rrdrsz&requires_hashdigest.<locals>.decoratorrc)rrrrc)rrrdr%}s
z	127.0.0.1z::1cCs"tj||}t|}|j~|S)N)socketrHclose)familyZsocktypeZtempsockportrcrcrdrGs
8cCs|jtjkr|jtjkrttdr>|jtjtjdkr>t	dttdr~y |jtjtj
dkrft	dWntk
r|YnXttdr|jtjtj
d|j|df|jd}|S)NSO_REUSEADDRrzHtests should never set the SO_REUSEADDR socket option on TCP/IP sockets!SO_REUSEPORTzHtests should never set the SO_REUSEPORT socket option on TCP/IP sockets!SO_EXCLUSIVEADDRUSEr)rrAF_INETrSOCK_STREAMrZ
getsockoptZ
SOL_SOCKETrr
rrZ
setsockoptrbindZgetsockname)sockhostrrcrcrdrHs


cCs:y|j|Wn&tk
r4|jtjdYnXdS)Nzcannot bind AF_UNIX sockets)r
PermissionErrorrrrrs)rZaddrrcrcrdrJs
cCsZtjrVd}z<y"tjtjtj}|jtdfdStk
rBYnXWd|rT|jXdS)NrTF)rZhas_ipv6ZAF_INET6r	r
HOSTv6rr)rrcrcrd_is_ipv6_enableds

rcstjfdd}|S)NcsNy||Wn:tk
rH}zdt|kr6tjdWYdd}~XnXdS)NZCERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)IOErrorrtrrrs)rrr)rrcrddecs
z&system_must_validate_cert.<locals>.dec)rr)rrrc)rrdsystem_must_validate_certs	rriZdoubleZIEEEztest requires IEEE 754 doublesz
requires zlibz
requires gzipzrequires bz2z
requires lzmajavaANDROID_API_LEVELwin32z/system/bin/shz/bin/shz$testz@testz	{}_{}_tmpæİŁφКא،تก €u-àòɘŁğrZNFDntru-共Ł♡ͣztWARNING: The filename %r CAN be encoded by the filesystem encoding (%s). Unicode filename tests may not be effectives-surrogateescapewrccsd}|dkr&tj}d}tjj|}nBytj|d}Wn.tk
rf|sNtjd|t	ddYnX|rttj
}z
|VWd|r|tj
krt|XdS)NFTz+tests may fail, unable to create temp dir: )r)tempfilemkdtemprrrealpathmkdirrrfrrgetpidr)rquietZdir_createdpidrcrcrdtemp_dirs&


r1ccsftj}ytj|Wn.tk
rD|s,tjd|tddYnXztjVWdtj|XdS)Nz)tests may fail, unable to change CWD to: r))r)rgetcwdchdirrrfrr)rr/Z	saved_dirrcrcrd
change_cwd	s

r4tempcwdccs:t||d$}t||d}|VWdQRXWdQRXdS)N)rr/)r/)r1r4)rur/Z	temp_pathZcwd_dirrcrcrdr$sumaskccs&tj|}z
dVWdtj|XdS)N)rr6)r6ZoldmaskrcrcrdrK8s

datacCsbtjj|r|S|dk	r&tjj||}tgtj}x*|D]"}tjj||}tjj|r8|Sq8W|S)N)rrisabsr
TEST_HOME_DIRrnexists)rZsubdirrZdnfnrcrcrdrIs
cCs(tj|tjtjBtjB}tj|dS)N)ropenO_WRONLYO_CREATO_TRUNCr)rfdrcrcrdr[scCs,t|j}dd|D}dj|}d|S)NcSsg|]}d|qS)z%r: %rrc).0Zpairrcrcrd
<listcomp>cszsortdict.<locals>.<listcomp>z, z{%s})sortedrr)dictrZ	reprpairsZ
withcommasrcrcrdr[`s
cCs*ttd}z|jS|jttXdS)Nwb)r<rfilenorr)rrcrcrdmake_bad_fdgs

rG)linenooffsetcCsp|jt}t|ddWdQRX|j}|j|j|dk	rJ|j|j||j|j|dk	rl|j|j|dS)Nz
<test string>exec)assertRaisesSyntaxErrorcompileZ	exceptionZassertIsNotNonerHassertEqualrI)testcaseZ	statementrHrIcmrrcrcrdr&sscsVddl}ddl}jdd|jj|djdd}tjjt	|}fdd}tjj
|r|||}|dk	rt|St|tdt
rtd	|td
|jj}tr|jjd|j|d
d}tr|jjddkrtj|d}zBt|d.}	|j}
x|
r|	j|
|j}
qWWdQRXWd|jX||}|dk	rF|Std|dS)Nrcheckr/rcs>t|f}dkr|S|r2|jd|S|jdS)Nr)r<seekr)r;r)rrQrrcrdcheck_valid_files
z*open_urlresource.<locals>.check_valid_fileZurlfetchz	fetching %s ...)rAccept-Encodinggzip)rzContent-Encoding)ZfileobjrEzinvalid resource %r)rUrV)Zurllib.requestZurllib.parsepopparseZurlparserrrr
TEST_DATA_DIRr:rr!rrrZrequestZbuild_openerrVZ
addheadersrr<ZheadersgetZGzipFilereadwriterr
)Zurlrrurllibrr;rTropeneroutsrc)rrQrrdrI~s<	



c@s0eZdZddZddZeddZddZd	S)
WarningsRecordercCs||_d|_dS)Nr)	_warnings_last)selfZ
warnings_listrcrcrd__init__szWarningsRecorder.__init__cCsDt|j|jkr t|jd|S|tjjkr0dStd||fdS)Nrz%r has no attribute %rrX)rrdrerrfWarningMessage_WARNING_DETAILSr)rfattrrcrcrd__getattr__s
zWarningsRecorder.__getattr__cCs|j|jdS)N)rdre)rfrcrcrdrfszWarningsRecorder.warningscCst|j|_dS)N)rrdre)rfrcrcrdresetszWarningsRecorder.resetN)r`rarbrgrkpropertyrfrlrcrcrcrdrcsrcc
cs
tjd}|jjd}|r"|jtjdd }tjdjdt	|VWdQRXt
|}g}xz|D]r\}}d}	xH|ddD]8}|j}
tj
|t|
tjrt|
j|rd}	|j|qW|	rf|rf|j||jfqfW|rtd|d	|rtd
|d	dS)NrZ__warningregistry__T)recordrfalwaysFzunhandled warning %srz)filter (%r, %s) did not catch any warning)rn	_getframe	f_globalsr\clearrfrgrysimplefilterrcr{messagerematchrtI
issubclassrremoverr`AssertionError)filtersr/frameregistrywZreraiseZmissingrwcatseenZwarningrcrcrd_filterwarningss0
rcOs.|jd}|s$dtff}|dkr$d}t||S)Nr/rT)r\Warningr)r{rr/rcrcrdrRs

rccsHtjdd&}tjd||ddV|r.tWdQRX|j|gdS)NT)rnro)rtcategory)rfrgrh
gc_collectrN)rOrtrZforce_gcwarnsrcrcrdcheck_no_warningssrccsBtjdd }tjdtddVtWdQRX|j|gdS)NT)rnro)r)rfrgrhResourceWarningrrN)rOrrcrcrdrSs
c@s$eZdZddZddZddZdS)rcGsNtjj|_x<|D]4}|tjkrtj|}|j|kr>tj|j=tj|=qWdS)N)rnrycopyoriginal_modulesr`)rfZmodule_namesZmodule_namerrcrcrdrg?s




zCleanImport.__init__cCs|S)Nrc)rfrcrcrd	__enter__LszCleanImport.__enter__cGstjj|jdS)N)rnryrr)rf
ignore_excrcrcrd__exit__OszCleanImport.__exit__N)r`rarbrgrrrcrcrcrdr3s
c@sdeZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
dS)rTcCstj|_i|_dS)N)renviron_environ_changed)rfrcrcrdrgXszEnvironmentVarGuard.__init__cCs
|j|S)N)r)rfenvvarrcrcrd__getitem__\szEnvironmentVarGuard.__getitem__cCs*||jkr|jj||j|<||j|<dS)N)rrr\)rfrvaluercrcrd__setitem___s
zEnvironmentVarGuard.__setitem__cCs2||jkr|jj||j|<||jkr.|j|=dS)N)rrr\)rfrrcrcrd__delitem__es

zEnvironmentVarGuard.__delitem__cCs
|jjS)N)rkeys)rfrcrcrdrlszEnvironmentVarGuard.keyscCs
t|jS)N)iterr)rfrcrcrd__iter__oszEnvironmentVarGuard.__iter__cCs
t|jS)N)rr)rfrcrcrd__len__rszEnvironmentVarGuard.__len__cCs|||<dS)Nrc)rfrrrcrcrdsetuszEnvironmentVarGuard.setcCs
||=dS)Nrc)rfrrcrcrdunsetxszEnvironmentVarGuard.unsetcCs|S)Nrc)rfrcrcrdr{szEnvironmentVarGuard.__enter__cGsJx<|jjD].\}}|dkr0||jkr:|j|=q||j|<qW|jt_dS)N)rrrrr)rfrkvrcrcrdr~s

zEnvironmentVarGuard.__exit__N)r`rarbrgrrrrrrrrrrrcrcrcrdrTSsc@s$eZdZddZddZddZdS)
DirsOnSysPathcGs(tjdd|_tj|_tjj|dS)N)rnroriginal_valueoriginal_objectextend)rfpathsrcrcrdrgszDirsOnSysPath.__init__cCs|S)Nrc)rfrcrcrdrszDirsOnSysPath.__enter__cGs|jt_|jtjdd<dS)N)rrnrr)rfrrcrcrdrszDirsOnSysPath.__exit__N)r`rarbrgrrrcrcrcrdrsrc@s&eZdZddZddZdddZdS)	r'cKs||_||_dS)N)rattrs)rfrrrcrcrdrgszTransientResource.__init__cCs|S)Nrc)rfrcrcrdrszTransientResource.__enter__NcCsT|dk	rPt|j|rPx:|jjD]$\}}t||s4Pt|||kr Pq WtddS)Nz%an optional resource is not available)rxrrrrrr)rfZtype_r	tracebackrjZ
attr_valuercrcrdrs
zTransientResource.__exit__)NNN)r`rarbrgrrrcrcrcrdr's)errnog>@)rerrnosc	#spd d!d"d#d$d%g}d'd)d+d-d.g}td||gsRdd|Ddd|Dfdd}tj}zy|dk	rtj|dVWntjk
r}z&trtjj	j
dd|WYdd}~Xntk
rZ}zpx^|j
}t|dkrt
|dtr|d}n*t|dkr8t
|dtr8|d}nPqW||WYdd}~XnXWdtj|XdS)/NECONNREFUSEDo
ECONNRESEThEHOSTUNREACHqENETUNREACHe	ETIMEDOUTn
EADDRNOTAVAILc	EAI_AGAINr)EAI_FAILr
EAI_NONAMEr
EAI_NODATA
WSANO_DATA*zResource %r is not availablecSsg|]\}}tt||qSrc)rr)rArunumrcrcrdrBsz&transient_internet.<locals>.<listcomp>cSsg|]\}}tt||qSrc)rr)rArurrcrcrdrBscst|dd}t|tjst|tjr,|kst|tjjrTd|jkoNdknst|tjj	rd|j
ksd|j
ksd|j
ks|krtstj
jjdd|dS)	NriiWConnectionRefusedErrorTimeoutErrorEOFErrorr
)r
isinstancerrZgaierrorr_errorZ	HTTPErrorcodeZURLErrorrrrnstderrr^r)rn)captured_errnosdenied
gai_errnosrcrdfilter_errors


z(transient_internet.<locals>.filter_errorrrr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rrZgetdefaulttimeoutZsetdefaulttimeoutnntplibZNNTPTemporaryErrorrrnrr^rrrr)	Z
resource_namerrZdefault_errnosZdefault_gai_errnosrZold_timeoutrarc)rrrrdr+sP



c
csFddl}tt|}tt||jztt|VWdtt||XdS)Nr)iorrnsetattrStringIO)Zstream_namerZorig_stdoutrcrcrdcaptured_outputs
rcCstdS)Nr)rrcrcrcrdrscCstdS)Nr)rrcrcrcrdr%scCstdS)Nstdin)rrcrcrcrdr.s
cCs*tjtrtjdtjtjdS)Ng?)gcZcollectr@rrrcrcrcrdr;s


rc
cs.tj}tjz
dVWd|r(tjXdS)N)r	isenableddisableenable)Zhave_gcrcrcrd
disable_gcKs
rcCs:tjdpd}d}x|jD]}|jdr|}qW|dkS)N	PY_CFLAGSrz-O-O0-Og)rrr)	sysconfigget_config_varrrp)ZcflagsZ	final_optrrcrcrdpython_is_optimizedVs
rZnPZ0ngettotalrefcountZ2PZ0PrcCstjt|tS)N)structcalcsize_header_align)fmtrcrcrdcalcobjsizegsrcCstjt|tS)N)rr_vheaderr)rrcrcrdcalcvobjsizejsr	cCspddl}tj|}t|tkr(|jt@sBt|tkrLt|jt@rL||j7}dt|||f}|j|||dS)Nrz&wrong size for %s: got %d, expected %d)		_testcapirn	getsizeofr	__flags___TPFLAGS_HEAPTYPE_TPFLAGS_HAVE_GCZSIZEOF_PYGC_HEADrN)testosizerrrwrcrcrdcheck_sizeofqs

rcsfdd}|S)Ncs$fdd}j|_j|_|S)Ncsy ddl}t|}|j|}Wn(tk
r6YnBd}}Yn0Xx,D]$}y|j||PWqPYqPXqPWz
||S|r|r|j||XdS)Nr)localer	setlocaler)rkwdsrrZorig_localeloc)catstrrlocalesrcrdinners$



z1run_with_locale.<locals>.decorator.<locals>.inner)r`__doc__)rr)rr)rrdrsz"run_with_locale.<locals>.decoratorrc)rrrrc)rrrdrUscsfdd}|S)Ncs"fdd}j|_j|_|S)Ncsy
tj}Wntk
r(tjdYnXdtjkr@tjd}nd}tjd<|z
||S|dkrrtjd=n
|tjd<tjXdS)Nztzset requiredZTZ)rtzsetrrrrsrr)rrrZorig_tz)rtzrcrdrs





z-run_with_tz.<locals>.decorator.<locals>.inner)r`r)rr)r)rrdrszrun_with_tz.<locals>.decoratorrc)rrrc)rrdr\scCsdttdtd}tjd|tjtjB}|dkr>td|ftt|j	d||j	dj
}|a|tkrrt}|t
dkrtd|f|adS)Ni)rmgtz(\d+(\.\d+)?) (K|M|G|T)b?$zInvalid memory limit %rrr)z$Memory limit %r too low to be useful)_1M_1Grurv
IGNORECASEVERBOSErrfloatgrouplowerreal_max_memuseMAX_Py_ssize_t_2Gr)limitZsizesrZmemlimitrcrcrdrYs$c@s$eZdZddZddZddZdS)_MemoryWatchdogcCsdjtjd|_d|_dS)Nz/proc/{pid}/statm)r0F)rrr.procfilestarted)rfrcrcrdrgsz_MemoryWatchdog.__init__cCsyt|jd}Wn<tk
rL}z tjdj|ttjj	dSd}~XnXt
d}tjtj
|g|tjd|_|jd|_dS)Nrz!/proc not available for stats: {}zmemory_watchdog.py)rrT)r<r
rrfrrrrnrflushr
subprocessPopen
executableZDEVNULLmem_watchdogrr)rfrrZwatchdog_scriptrcrcrdstarts
z_MemoryWatchdog.startcCs|jr|jj|jjdS)N)rrZ	terminatewait)rfrcrcrdstops
z_MemoryWatchdog.stopN)r`rarbrgrrrcrcrcrdr	sr	csfdd}|S)Ncs fdd__S)Nc
sj}j}tsd}n|}ts$rFt||krFtjd||dtr|tr|ttdj||ddt}|j	nd}z
||S|r|j
XdS)	Niz'not enough memory: %.1fG minimum neededir)z* ... expected peak memory use: {peak:.1f}G)Zpeaki@i@)rmemuserrrrsrrrr	rr)rfrrmaxsizeZwatchdog)dry_runrrrcrdrs*


z.bigmemtest.<locals>.decorator.<locals>.wrapper)rr)r)rrr)rrrdrszbigmemtest.<locals>.decoratorrc)rrrrrc)rrrrdr3s
!csfdd}|S)NcsDttkr8td
kr$tdkr$tjdq@tjdtdn|SdS)
Nr?rz-not enough memory: try a 32-bit build insteadz'not enough memory: %.1fG minimum neededir)llli@)rrrrrs)rf)rrcrdr3sz!bigaddrspacetest.<locals>.wrapperrc)rrrc)rrdr41sc@seZdZddZdS)r,cCstj}|||S)N)rrZ
TestResult)rfrrrcrcrdrunDszBasicTestRunner.runN)r`rarbrrcrcrcrdr,CscCs|S)Nrc)rrcrcrd_idIsrcCs<|dkrtrtjtjSt|r(tStjdj|SdS)Nrzresource {0!r} is not enabled)rrrskiprr rr)rrcrcrdrequires_resourceLs
rcCs&trt|krtjd|tfStSdS)Nz%s at Android API level %d)rA_ANDROID_API_LEVELrrrr)levelrrcrcrdr>TscCstdd|S)NT)cpython)impl_detail)rrcrcrdr5[scKsVtf|rtS|dkrLt|\}}|r,d}nd}t|j}|jdj|}tj|S)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or )	rBr
_parse_guardsrCrrrrrr)rwguardsZ
guardnamesdefaultrcrcrdr!as
r!cCsTtdkr:ddl}y|jdaWntk
r8daYnXd}trF|Stj||S)NrTFz6requires a functioning shared semaphore implementation)_have_mp_queuemultiprocessingZQueuermrrr)rr&rwrcrcrdr?os
cCs*|sddidfSt|jd}||fS)Nr TFr)r{values)r#Zis_truercrcrdr"~sr"cKs t|\}}|jtjj|S)N)r"r\roZpython_implementationr)r#r$rcrcrdrBscs,ttdsStjfdd}|SdS)Ngettracecs.tj}ztjd||Stj|XdS)N)rnr(settrace)rrZoriginal_trace)rrcrdrs


zno_tracing.<locals>.wrapper)rrnrr)rrrc)rrd
no_tracings
r*cCstt|S)N)r*r5)rrcrcrd
refcount_testsr+cCsRg}xB|jD]8}t|tjr2t|||j|q||r|j|qW||_dS)N)Z_testsrrr	TestSuite
_filter_suiter)suiteZpredZnewtestsrrcrcrdr-s
r-cCsttjttdk	d}|j|}tdk	r4tj|j|js>t	|j
st|jdkrl|j
rl|jdd}n6t|j
dkr|jr|j
dd}nd}ts|d7}t|dS)N)	verbosityZcapture_outputrrzmultiple errors occurredz!; run in verbose mode for details)rrnrrjunit_xml_listrrZget_xml_elementZtestsRunrZ
wasSuccessfulrerrorsZfailuresr
)r.Zrunnerrrrcrcrd
_run_suites"
r2cCstdkrdSt|jSdS)NT)_match_test_funcid)rrcrcrd
match_testsr5cCsd|kotjd|S)Nrxz[?*\[\]])rusearch)rrcrcrd_is_full_match_testsr7csr|tkrdS|sd}f}nHttt|r4t|j}n.djttj|}t	j
|jfdd}|}t|a|a
dS)N|cs$|rdStt|jdSdS)NTrx)anyrr)Ztest_id)regex_matchrcrdmatch_test_regexsz)set_match_tests.<locals>.match_test_regex)_match_test_patternsallrr7r__contains__rfnmatch	translaterurMrvrqr3)ZpatternsrZregexr;rc)r:rdset_match_testssrAcGstjtjf}tj}xh|D]`}t|trT|tjkrJ|jtjtj|qzt	dqt||rj|j|q|jtj
|qWt|tt
|dS)Nz)str arguments must be keys in sys.modules)rrr,ZTestCaserrtrnryZaddTestZ
findTestCasesrZ	makeSuiter-r5r2)classesZvalid_typesr.clsrcrcrdr-s





cCsdS)Nrcrcrcrcrd_check_docstrings(srDWITH_DOC_STRINGSztest requires docstringscCs`ddl}|dkrt}nd}|j|||d\}}|rBtd||ftrXtd|j|f||fS)Nr)roptionflagsz%d of %d doctests failedz,doctest (%s) ... %d tests with zero failures)doctestrZtestmodr
rr`)rr/rFrGrrrcrcrdr.9scCstjjfS)N)rnryrrcrcrcrd
modules_setupTsrHcCs:ddtjjD}tjjtjj|tjj|dS)NcSs"g|]\}}|jdr||fqS)z
encodings.)rp)rArrrcrcrdrB[sz#modules_cleanup.<locals>.<listcomp>)rnryrrrr)Z
oldmodulesZ	encodingsrcrcrdmodules_cleanupWs
rIcCs"trtjtjjfSdffSdS)Nr)_thread_count	threading	_danglingrrcrcrcrdrNzscGsJtsdSd}x8t|D],}tjtjf}||kr2PtjdtqWdS)Ndg{Gz?)rJrangerKrLrMrrr)Zoriginal_valuesZ
_MAX_COUNTcountr'rcrcrdrOs
cs"tsStjfdd}|S)Ncst}z|St|XdS)N)rNrO)rkey)rrcrdrszreap_threads.<locals>.decorator)rJrr)rrrc)rrdrPsN@ccstj}z
dVWdtj}||}xjtj}||kr8Ptj|kr|tj|}d||d|dd|d|d	}t|tjdtq&WXdS)Nz!wait_threads() failed to cleanup z threads after z.1fz seconds (count: z
, old count: )g{Gz?)rJrKrZ	monotonicrzrr)rZ	old_countZ
start_timeZdeadlinerPZdtrwrcrcrdwait_threads_exits
$
rTc
CsZttdrVd}xFy2tj|tj\}}|dkr.Ptd|tjdWqPYqXqWdS)Nwaitpidrrz2Warning -- reap_children() reaped child process %s)rrX)rrrUWNOHANGrrnr)Zany_processr0ZstatusrcrcrdrLs
ccs*t|}g}zZy$x|D]}|j|j|qWWn*trVtdt|t|fYnXdVWdz|rt|tj}}xltddD]^}|d7}x$|D]}|jt	|tjdqWdd|D}|sPtrtdt||fqWWdd	d|D}|r"t
jtj
td
t|XXdS)Nz/Can't start %d threads, only %d threads startedrr<g{Gz?cSsg|]}|jr|qSrc)isAlive)rArrcrcrdrBsz!start_threads.<locals>.<listcomp>z7Unable to join %d threads during a period of %d minutescSsg|]}|jr|qSrc)rX)rArrcrcrdrBszUnable to join %d threads)r{rrrrrrrOrmaxfaulthandlerZdump_tracebackrnrrz)ZthreadsZunlockrrZendtimeZ	starttimerrcrcrdrQs>


c
csnt||r<t||}t|||z
|VWdt|||Xn.t|||z
dVWdt||rht||XdS)N)rrrdelattr)rrjnew_valreal_valrcrcrdrWs




ccsX||kr0||}|||<z
|VWd|||<Xn$|||<z
dVWd||krR||=XdS)Nrc)ritemr\r]rcrcrdrV	s

cCstjdd|j}|S)Ns\[\d+ refs, \d+ blocks\]\r?\n?)rusubstrip)rrcrcrdstrip_python_stderr8	srbZ	getcountsz-types are immortal if COUNT_ALLOCS is definedcCstjS)N)rZ_args_from_interpreter_flagsrcrcrcrdargs_from_interpreter_flagsE	srccCstjS)N)rZ"_optim_args_from_interpreter_flagsrcrcrcrd!optim_args_from_interpreter_flagsJ	srdc@s,eZdZddZddZddZddZd	S)
rMcCstjjj|d||_dS)Nr)logginghandlersBufferingHandlerrgmatcher)rfrhrcrcrdrgT	szTestHandler.__init__cCsdS)NFrc)rfrcrcrdshouldFlush]	szTestHandler.shouldFlushcCs|j||jj|jdS)N)rrr__dict__)rfrnrcrcrdemit`	s
zTestHandler.emitcKs.d}x$|jD]}|jj|f|rd}PqW|S)NFT)rrhmatches)rfrrdrcrcrdrld	szTestHandler.matchesN)r`rarbrgrirkrlrcrcrcrdrMS	s	c@s eZdZdZddZddZdS)	rXrwrtcKs<d}x2|D]*}||}|j|}|j|||s
d}Pq
W|S)NTF)r\match_value)rfrmrrrrdvrcrcrdrls	s

zMatcher.matchescCsHt|t|krd}n.t|tk	s,||jkr6||k}n|j|dk}|S)NFr)rrt_partial_matchesfind)rfrrorrrcrcrdrn	s
zMatcher.match_valueN)rwrt)r`rarbrprlrnrcrcrcrdrXo	sc
CsZtdk	rtStd}ytjt|d}Wntttfk
rFd}YnXtj||a|S)NrTF)_can_symlinkrrsymlinkrNotImplementedErrorrry)Zsymlink_pathcanrcrcrdr	s

cCs t}d}|r|Stj||S)Nz*Requires functional symlink implementation)rrrr)rokrwrcrcrdr/	scCstdk	rtSttdsd}ntj}tj|d\}}zttd}y`tj|ddtj|ddtj|j	ddt
j}tj
d	|}|dkpt|jd
dk}Wntk
rd}YnXWdQRXWdttt|t|X|a|S)NsetxattrF)dirrEs	user.testr_strusted.foos42z
2.6.(\d{1,2})r')
_can_xattrrrr*r+Zmkstempr<rrwrFrorrurvrrrrr)ruZtmp_dirZtmp_fpZtmp_namefpZkernel_versionrrcrcrd	can_xattr	s,

r|cCs t}d}|r|Stj||S)Nz(no non-broken extended attribute support)r|rrr)rrvrwrcrcrdr8	scCs$tpt}d}|r|Stj||S)Nz#Not run for (non-extended) PGO task)r]PGO_EXTENDEDrrr)rrvrwrcrcrdskip_if_pgo_task	s
r~cCs^tj|dH}|j}|j}||kr,|j}ytjj||Stk
rNdSXWdQRXdS)N)rxF)	r*ZNamedTemporaryFileruupperrrrsamefiler)Z	directorybase	base_pathZ	case_pathrcrcrdr	s)recCs>tt|tt|}|r(|t|8}tdd|D}|S)Ncss(|] }|jds|jdr|VqdS)___N)rpendswith)rArrcrcrd	<genexpr>	sz&detect_api_mismatch.<locals>.<genexpr>)rrx)Zref_apiZ	other_apireZ
missing_itemsrcrcrdr<	s
cCs|dkr|jf}nt|tr"|f}t|}xbt|D]V}|jds4||krLq4t||}t|dd|kst|dr4t|tj	r4|j
|q4W|j|j|dS)Nrra)
r`rrtrrxrprrtypes
ModuleTypeaddZassertCountEqual__all__)Z	test_caserZname_of_moduleZextraZ	blacklistZexpectedrurrcrcrdr=	s)


c@s$eZdZdZdZddZddZdS)rZNc
Csrtjjdrddl}|jj|_d}|jj||_|jj|j|Byddl	}|j
Wnttfk
rlYnLXi|_
x|j|j|jgD].}|j
||j}|j||j}||f|j
|<qWntdk	r
y*tjtj|_tjtjd|jdfWnttfk
rYnXtjdkrndddd	g}tj|tjtjd
}||jd}	WdQRX|	jdkrntdd
dd|S)Nrrrrrz/usr/bin/defaultsr]zcom.apple.CrashReporterZ
DialogType)rrs	developerz:this test triggers the Crash Reporter, that is intentionalrT)endr
) rnrorprrr_k32SetErrorMode	old_valuemsvcrtCrtSetReportModerrm	old_modesCRT_WARN	CRT_ERROR
CRT_ASSERTZCRTDBG_MODE_FILECrtSetReportFileZCRTDBG_FILE_STDERRrZ	getrlimitRLIMIT_CORE	setrlimitrrrrPIPEZcommunicaterar)
rfrZSEM_NOGPFAULTERRORBOXrreport_typeold_modeold_filecmdprocrrcrcrdr2
sN




zSuppressCrashReport.__enter__cGs|jdkrdStjjdrl|jj|j|jrddl}xj|jjD]$\}\}}|j	|||j
||qBWn6tdk	rytjtj
|jWnttfk
rYnXdS)Nrr)rrnrorprrrrrrrrrrrr)rfrrrrrrcrcrdrs
s
zSuppressCrashReport.__exit__)r`rarbrrrrrcrcrcrdrZ)
sAcsrtdyjWn$ttfk
r@tdYnXdfdd}|j|t|dS)NFTcs rtn
tdS)N)rr[rc)
attr_is_local	attr_nameobject_to_patchrrcrdcleanup
szpatch.<locals>.cleanup)rrjrrZ
addCleanupr)Z
test_instancerrZ	new_valuerrc)rrrrrdpatch
s


rcCsFyddl}Wntk
r YnX|jr4tjdddl}|j|S)NrzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)tracemallocrmZ
is_tracingrrrsrrun_in_subinterp)rrrrcrcrdr
s
rcsHGfddd|}d||||jttt|jdS)NcseZdZfddZdS)z%check_free_after_iterating.<locals>.Acs*dytWntk
r$YnXdS)NT)next
StopIteration)rf)doneitrcrd__del__
s
z-check_free_after_iterating.<locals>.A.__del__N)r`rarbrrc)rrrcrdA
srF)rKrrrZ
assertTrue)rrrCrrrc)rrrdcheck_free_after_iterating
s	rcCs|ddlm}m}m}|j}|j|xP|jD]F}|r@||kr@q.t||}|rPn
|dkrZq.|j|ddkr.|dSq.WdS)Nr)	ccompilerrspawn)	Z	distutilsrrrZnew_compilerZcustomize_compilerZexecutablesrZfind_executable)Z	cmd_namesrrrZcompilerrurrcrcrdr^
s	

cCs@d}tr6||kr6tdkr.tjddgjdkatr6|}tj|S)Ngh㈵>Zgetpropzro.kernel.qemu1)rA_is_android_emulatorrZcheck_outputrarnrD)ZintervalZminimum_intervalrcrcrdrD
sc
cs>tjj}tj}ztjdVWd|r8tj|ddXdS)NT)rZall_threads)rnrrFrZ
is_enabledrr)r@rrcrcrddisable_faulthandler
s

rc	/Cstjjd
r8ytjd}t|dStk
r6YnXd}ttdrjytjd}Wnt	k
rhYnXd}tjdkryd	dl
}|jWntt
fk
rYn0Xi}x(|j|j|jfD]}|j|d	||<qWzpd	}xft|D]Z}ytj|}Wn4t	k
r(}z|jtjkrWYdd}~XqXtj||d7}qWWd|dk	rzx*|j|j|jfD]}|j|||q`WX|S)Nlinuxfreebsdz
/proc/self/fdrsysconfSC_OPEN_MAXrr)rr)rnrorprrrrrrrrrrrmrrrrOduprZEBADFr)	namesZMAXFDrrrrPr@Zfd2rrcrcrdr_	sP





c@s$eZdZddZddZddZdS)SaveSignalscCsjddl}||_ttd|j|_x>dD]6}yt||}Wntk
rNw&YnX|jj|q&Wi|_dS)NrrSIGKILLSIGSTOP)rr)	signalr{rONSIGsignalsrrryrf)rfrZsignamesignumrcrcrdrgMs
zSaveSignals.__init__cCs4x.|jD]$}|jj|}|dkr"q||j|<qWdS)N)rr	getsignalrf)rfrhandlerrcrcrdsaveZs
zSaveSignals.savecCs*x$|jjD]\}}|jj||qWdS)N)rfrr)rfrrrcrcrdrestorefszSaveSignals.restoreN)r`rarbrgrrrcrcrcrdrDs	
rc@s$eZdZddZddZddZdS)FakePathcCs
||_dS)N)r)rfrrcrcrdrgnszFakePath.__init__cCsd|jdS)Nz
<FakePath >)r)rfrcrcrd__repr__qszFakePath.__repr__cCs6t|jts$t|jtr,t|jtr,|jn|jSdS)N)rr
BaseExceptionrrx)rfrcrcrd
__fspath__ts
zFakePath.__fspath__N)r`rarbrgrrrcrcrcrdrksrccs.tj}ztj|dVWdtj|XdS)N)rnget_int_max_str_digitsset_int_max_str_digits)Z
max_digitsZcurrentrcrcrdadjust_int_max_str_digits|s


rcCsddtddDdgS)NcSsg|]}t|qSrc)chr)rArrcrcrdrBsz)control_characters_c0.<locals>.<listcomp>r )rOrcrcrcrdcontrol_characters_c0sr)T)F)F)N)Nii@i@i@ii)rrrrrrrrrr r!)r%r#r&r'r()NF)F)r5F)N)Fi@ii)T)N)Nr)rR)N(r`rmcollections.abccollections
contextlibZdatetimerrZr?rrrrlimportlib.utilrZlogging.handlersrerrrorurrrrrrnrr*rrrrZurllib.errorr_rfZ
testresultrrJrLZmultiprocessing.processr&zlibrVbz2Zlzmarrrrr	r
rrsrcontextmanagerrjr
r~rr:r;rr6rrrrr0rrrrrrrprrrrrrrrrrrr r!rr"r#r$r%rErrr	rGrHrJrrFrrZ
SOCK_MAX_SIZEZ
skipUnlessr
__getformat__r7r9r0r1r2r@rrrArCrurrr.ZFS_NONASCII	characterfsdecodefsencodeUnicodeErrorZTESTFN_UNICODEZunicodedata	normalizegetfilesystemencodingZTESTFN_ENCODINGZTESTFN_UNENCODABLEZgetwindowsversionencodeUnicodeEncodeErrorrdecodeUnicodeDecodeErrorZTESTFN_UNDECODABLEZTESTFN_NONASCIIr2rr]r}r1r4rrrKrrrrZTEST_SUPPORT_DIRr9rr[rrr[rGr&rIobjectrcrrRrrrSrabcMutableMappingrTrr'rrr(rr)r*r+rrrrrrrrrrrrrrrrUr\rrrZ_4GrrrYr	r3r4r,rrr>r5r!r%r?r"rBr*r+r-r2r3r<r5r7rAr-rDZMISSING_C_DOCSTRINGSrZHAVE_DOCSTRINGSZrequires_docstringsr.rHrIZenvironment_alteredrNrOrPrTrLrQrWrVrbZskipIfZrequires_type_collectingrcrdrfrgrMrXrrrr/rzr|r8r~rr<r=rZrrrr^rrDrr_rrrrrcrcrcrd<module>s











2	
!

J			>%	


%2' 5M		


$
#
0







(




"
#
	"
:_";'