python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_monitoring.cpython-312.opt-1.pyc

Αeo	hdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	dZ
dZdZdZ
dZdZd	Zd
ZdZGdd
ej&ZGddZGddeej&Zej.j0Zej4dfej6dfej8dfej:dfej<dfej>dfgZ ejBdfejDdfejFdfgZ$e e$zejJdfejLdfgzZ'ejPejRe'Dcgc]\}}|	c}}dejTzZ+dZ,gde,_dZ-gd e-_d!Z.gd"e._d#Z/gd$e/_d%Z0gd&e0_ejbejdfZ3Gd'd(eZ4Gd)d*e4ej&Z5ejLejJej8ejDej:fZ6ej4ej6fZ7dd+l8m9Z9Gd,d-e4ej&Z:Gd.d/Z;Gd0d1Z<Gd2d3eej&Z=Gd4d5eej&Z>Gd6d7eej&Z?Gd8d9eej&Z@Gd:d;ZAGd<d=eej&ZBGd>d?eAZCGd@dAeAZDGdBdCeAZEGdDdEeAZFGdFdGeAZGGdHdIeBZHGdJdKZIGdLdMZJGdNdOZKGdPdQeKZLGdRdSeKZMeAeJeIeLeMfZNGdTdUeBZOGdVdWZPePeIfZQGdXdYeBZRGdZd[eej&ZSeJeIeLeMfZTGd\d]eej&ZUd^ZVGd_d`ZWGdadbeWZXGdcddZYeWeXfZZeWeXeIfZ[eWeXeIeAeYfZ\GdedfeBZ]GdgdheBZ^Gdidjeej&Z_Gdkdlej&eZ`Gdmdneej&Zaycc}}w)oz"Test suite for the sys.monitoring.NrcyNrH/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_monitoring.pyf1r
rcDtgtjdyNr)lensys	getsizeofrrr	f2rsGMM!rctD]}yr)PAIR)items r	flooprs

rc#Kddywrrrrr	genrs		
c"tD]}yr)r)_s r	g1rs
U

rceZdZdZdZy)MonitoringBasicTestcptj}|j|j|j|j
|j|j|j|j|j|j|j|j|jjyr)r
monitoringeventsuse_tool_idfree_tool_idget_tool
get_events
set_eventsget_local_eventsset_local_eventsregister_callbackrestart_eventsDISABLEMISSING	NO_EVENTS)selfms  r	test_has_objectsz$MonitoringBasicTest.test_has_objects(stNN		

		

													rctjjtd|j	tjjtdtjj
td|j	tjjtdtjj
td|jt5tjj
ttjjjddd|jt5tjj
ttjjjdddtjjt|j	tjjtd|jt5tjj
ttjjjdddy#1swY)xYw#1swYxYw#1swYyxYw)NzMonitoringTest.Toolr)rr"r$	TEST_TOOLassertEqualr&r(r'assertRaises
ValueErrorr#C_RETURNC_RAISEr%CALLr0s r		test_toolzMonitoringBasicTest.test_tool8s""9.CD00;=RS!!)R0229=rB!!)Q/


z
*	QNN%%i1F1F1O1OP	Q


z
*	PNN%%i1F1F1N1NO	P##I.00;TB


z
*	MNN%%i1F1F1K1KL	M	M
	Q	Q	P	P	M	Ms'(AIAI#AI/I #I,/I8N)__name__
__module____qualname__r2r=rrr	r r &s
 
Mrr ceZdZdZdZy)MonitoringTestBasectdD]1}|jtjj	|d3|jtjj
td|jtjj
td|jtjj
tdtjjtd|jjztjjtd|jjztjjtd|jjzy)Nrztest ztest2 ztest3 )
ranger6rr"r'assertIsr&r5
TEST_TOOL2
TEST_TOOL3r$	__class__r>r0tools  r	setUpzMonitoringTestBase.setUpJs!H	ADS^^66t<a@	A

cnn--i8$?

cnn--j94@

cnn--j94@""9g8O8O.OP"":x$..:Q:Q/QR"":x$..:Q:Q/QRrcTtdD]1}|jtjj	|d3tjjttjjttjjty)NrDr)	rEr6rr"r'r%r5rGrHrJs  r	tearDownzMonitoringTestBase.tearDownUsl!H	ADS^^66t<a@	A##I.##J/##J/rN)r>r?r@rLrNrrr	rBrBHs
	S0rrBc0eZdZdZdZdZdZdZdZy)MonitoringCountTestcGdd}|}tjjt|||tj
k(s|tjk(r3tjjttjn$tjjt||j|jdd|_
||j|j|tjjt|d}d|_
||j|jd|j||tjjtdy)NceZdZdZdZy)6MonitoringCountTest.check_event_count.<locals>.Countercd|_yr
countr<s r	__init__z?MonitoringCountTest.check_event_count.<locals>.Counter.__init__cs	
rc.|xjdz
c_yNrrUr0argss  r	__call__z?MonitoringCountTest.check_event_count.<locals>.Counter.__call__es

a
rNr>r?r@rWr\rrr	CounterrSbs

 rr^r)rr"r+r5Er9r:r(r;r6rV)r0funceventexpectedr^counterprevs       r	check_event_countz%MonitoringCountTest.check_event_count`s	 	 )((E7CAJJ%199"4NN%%i8NN%%i7*
1~~//	5$G
*w'!!)Q/rcN|jttjdyrY)rer
r_PY_STARTr<s r	test_start_countz$MonitoringCountTest.test_start_countyr1::q1rcN|jttjdyNr)rerr_	PY_RESUMEr<s r	test_resume_countz%MonitoringCountTest.test_resume_count|r1;;2rcN|jttjdyrY)rer
r_	PY_RETURNr<s r	test_return_countz%MonitoringCountTest.test_return_countrnrcN|jttjdy)Nr)rerr_r;r<s r	test_call_countz#MonitoringCountTest.test_call_countsr1661-rcN|jttjdyrk)rerr_r9r<s r	test_c_return_countz'MonitoringCountTest.test_c_return_countrirN)	r>r?r@rerhrmrqrsrurrr	rPrP^s 02233.2rrPstartresumereturnyieldjumpbranchraiseunwindexception_handledc_raisec_returncyrrrrr		just_passrrr)py_callrvrxctr	Exceptionrrr	
just_raisers
Or)rrvr|r}ctgyrrrrr		just_callrs	Gr)rrvc_callrrxc.	ddzy#t$rYywxYwNrrrrrr	caughtrs 
	!

s	)rrvr|r~r{rxctyr)rrrr	nested_callrs
Kr)rrvrrvrxrxceZdZdZddZy)MonitoringEventsBasecgtD]2\}}|dfd
}tjjt||4fd}tjjtt
j|tjjttg	|tjjtdddS#Y/xYw)N)
event_namec(j|yrappend)rr[r#s  r	recordz2MonitoringEventsBase.gather_events.<locals>.records

j)rclt|trjdyjdy)Nrr)
isinstancePY_CALLABLESr)codeoffsetobjargr#s    r	record_callz7MonitoringEventsBase.gather_events.<locals>.record_calls%#|,

i(

h'rr)	
SIMPLE_EVENTSrr"r+r5r_r;r(SIMPLE_EVENT_SET)r0r`rarrrr#s      @r	
gather_eventsz"MonitoringEventsBase.gather_eventss!.	GE:)3
*NN,,YvF	G	(
	((AFFKH!!)-=>	F	!!)Q/
	s"CCNcf|j|}||j}|j||yr)rr#r6)r0r`rbr#s    r	check_eventsz!MonitoringEventsBase.check_eventss1##D){{H*rr)r>r?r@rrrrr	rrs.+rrc*eZdZdZdZdZdZdZy)MonitoringEventsTestc.|jtyr)rrr<s r	test_just_passz#MonitoringEventsTest.test_just_pass)$rc	|jt|jtj
j
tdy#t$rY?wxYwr
)rrrr6rr"r'r5r<s r	test_just_raisez$MonitoringEventsTest.test_just_raisesJ	j)	
229=qA		sA	AAc.|jtyr)rrr<s r	test_just_callz#MonitoringEventsTest.test_just_call	rrc.|jtyr)rrr<s r	test_caughtz MonitoringEventsTest.test_caughts&!rc.|jtyr)rrr<s r	test_nested_callz%MonitoringEventsTest.test_nested_calls+&rN)r>r?r@rrrrrrrr	rrs%B%"'rr)testfuncceZdZdZdZy)SimulateProfileTestc|jt}tj|}|j	|d|d|j	|d|d|dz|j	|d|d|dzy)Nrrrvrxr}r|r~)rrcollectionsr^r6)r0r#cs   r	
test_balancedz!SimulateProfileTest.test_balanceds~##H-'8a
m47Qx[1X;%>?7Q':%;ak%IJrcd|_ggtfd}fd}fd}tD]'}tjjt||)tD]'}tjjt||)tjjttj|tjjttttjjtd|jg|jtjg|jtdy)Nctjd}sjdyj}||k7rjd|d|yy)Nremptyz	 Popping z
 expected )r	_getframerpop)r[framerberrorsstacks   r	upz0SimulateProfileTest.test_frame_stack.<locals>.up%sQMM!$E

g& 99;H$MMIeWJxj"IJ%rctjd}j|j|jyrY)rrraddf_code)r[rseenrs  r	downz2SimulateProfileTest.test_frame_stack.<locals>.down-s-MM!$ELLHHU\\"rcpt|ts%jtjdyyrY)rrrrr)rrcallablerrs    r	callz2SimulateProfileTest.test_frame_stack.<locals>.call1s'h5S]]1-.6rr	)maxDiffset	UP_EVENTSrr"r+r5DOWN_EVENTSr_r;r(rrr6rr)r0rrrrarrrs     @@@r	test_frame_stackz$SimulateProfileTest.test_frame_stack su	K	#	/	CENN,,YrB	C 	EENN,,YtD	E((AFFDA!!)-=>
!!)Q/$ 12TA&rN)r>r?r@rrrrr	rrs
K'rrceZdZdZdZy)CounterWithDisablec d|_d|_y)NFr)disablerVr<s r	rWzCounterWithDisable.__init__Cs
rcz|xjdz
c_|jrtjjSyrY)rVrrr"r-rZs  r	r\zCounterWithDisable.__call__Gs+

a
<<>>)))rNr]rrr	rrAs*rrceZdZdZdZy)RecorderWithDisablec d|_||_y)NF)rr#r0r#s  r	rWzRecorderWithDisable.__init__Osrc|jj||jrtjj
Syr)r#rrrr"r-)r0rras   r	r\zRecorderWithDisable.__call__Ss05!<<>>)))rNr]rrr	rrMs*rrceZdZdZdZy)MontoringDisableAndRestartTestc	t}tjjtt
j|tjjtt
j|j|jdd|_	t|j|jdd|_d|_	t|j|jdd|_	t|j|jdtjjtdtjjy#tjjwxYw)NrrT)
rrr"r+r5r_rgr(r6rVr
rr,r0rcs  r	test_disablez+MontoringDisableAndRestartTest.test_disable[s	,(*GNN,,Y

GLNN%%i<W]]A.GMDW]]A."GOGMDW]]A.GMDW]]A.NN%%i3NN))+CNN))+sD=E E>c	t}tjjtt
j|tjjtt
jd|_td|_
t|j|jdtjjd|_
t|j|jdtjjtdtjjy#tjjwxYw)NTrr)
rrr"r+r5r_rgr(rr
rVr6r,rs  r	test_restartz+MontoringDisableAndRestartTest.test_restartos	,(*GNN,,Y

GLNN%%i<"GODGMDW]]A.NN))+GMDW]]A.NN%%i3NN))+CNN))+sDD== EN)r>r?r@rrrrr	rrYs,(,rrc*eZdZdZdZdZdZdZy)MultipleMonitorsTestc	|jtjjit	}t	}tjjttj|tjjttj|tjjttjtjjttj|jtjjttj|jtjjttj|jtjjddtzdtzzid|_d|_t|j}|j}|j||fdtjjtdtjjtdtjjttjdtjjttjd|jtjjiy#tjjtdtjjtdtjjttjdtjjttjd|jtjjiwxYw)Nrgrrrr)r6rr"_all_eventsrr+r5r_rgrGr(r'rVr
r0counter1counter2count1count2s     r	
test_two_samez"MultipleMonitorsTest.test_two_sames@	?S^^7792>)+H)+HNN,,Y

HMNN,,ZXNNN%%i<NN%%j!**=S^^66yA1::NS^^66zBAJJOS^^779Ji\]ak\kHl;mnHNHND^^F^^Fff-v6NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>	
NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>s
HK22COc
	|jtjjit	}t	}t	}tjjttj|tjjttj|tjjttj|tjjttjtjjttjtjjttj|jtjjttj|jtjjttj|jtjjttj|jtjjddtzdtzzdtzzid|_
d|_
d|_
t|j}|j}|j}|j|||fdtjjtdtjjtdtjjtdtjjttjdtjjttjdtjjttjd|jtjjiy#tjjtdtjjtdtjjtdtjjttjdtjjttjdtjjttjd|jtjjiwxYw)Nrgrr)rrr)r6rr"rrr+r5r_rgrGrHr(r'rVr
)r0rrcounter3rrcount3s       r	test_three_samez$MultipleMonitorsTest.test_three_sames!	?S^^7792>)+H)+H)+HNN,,Y

HMNN,,ZXNNN,,ZXNNN%%i<NN%%j!**=NN%%j!**=S^^66yA1::NS^^66zBAJJOS^^66zBAJJOS^^779Ji\]ak\kHlpqupIA<B
CHNHNHND^^F^^F^^Ffff5yANN%%i3NN%%j!4NN%%j!4NN,,Y

DINN,,ZTJNN,,ZTJS^^7792>

NN%%i3NN%%j!4NN%%j!4NN,,Y

DINN,,ZTJNN,,ZTJS^^7792>s
K!PD5Uc	|jtjjit	}t	}tjjttj|tjjttj|tjjttjtjjttj|jtjjttj|jtjjttj|jtjjdtzdtzdd|_
d|_
t|j}|j}|j||fdtjjtdtjjtdtjjttjdtjjttjd|jtjjiy#tjjtdtjjtdtjjttjdtjjttjd|jtjjiwxYw)Nr)rgrprr)r6rr"rrr+r5r_rgrGrpr(r'rVr
rs     r	test_two_differentz'MultipleMonitorsTest.test_two_differents;	?S^^7792>)+H)+HNN,,Y

HMNN,,ZhONN%%i<NN%%j!++>S^^66yA1::NS^^66zBAKKPS^^779Yefjtet;uvHNHND^^F^^Fff-v6NN%%i3NN%%j!4NN,,Y

DINN,,ZdKS^^7792>	
NN%%i3NN%%j!4NN,,Y

DINN,,ZdKS^^7792>s
HK00COc	|jtjjit	}t	}tjjttj|tjjttj|tjjttjtjjttj|jtjjttj|jtjjttj|jtjjddtzdtzzid|_d|_d|_
t|j}|j}|j||fdd|_d|_t|j}|j}|j||fdtjjtdtjjtdtjjttjdtjjttjd|jtjjitjjy#tjjtdtjjtdtjjttjdtjjttjd|jtjjitjjwxYw)NrgrrTrr)r6rr"rrr+r5r_rgrGr(r'rVrr
r,rs     r	test_two_with_disablez*MultipleMonitorsTest.test_two_with_disables	,S^^7792>)+H)+HNN,,Y

HMNN,,ZXNNN%%i<NN%%j!**=S^^66yA1::NS^^66zBAJJOS^^779Ji\]ak\kHl;mnHNHN#HD^^F^^Fff-v6HNHND^^F^^Fff-v6NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>NN))+
NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>NN))+s
IMC<QcPd}|j}	|jtjj	itjjt|tjtjztjjt|tjtjjtdtjjtd|jtjj	iy#tjjtdtjjtd|jtjj	iwxYw)zWTest that the second tool can set events with instruction events set by the first tool.cyrrrrr	fz;MultipleMonitorsTest.test_with_instruction_event.<locals>.fsrrN)__code__r6rr"rr*r5r_INSTRUCTIONLINErGr()r0rrs   r	test_with_instruction_eventz0MultipleMonitorsTest.test_with_instruction_events	zz	?S^^7792>NN++ItQ]]QVV=STNN++JaffENN%%i3NN%%j!4S^^7792>
NN%%i3NN%%j!4S^^7792>s
B%D--A8F%N)r>r?r@rrrrrrrr	rrs?2?B?2,B
?rrc:eZdZdZdZdZefdZdZdZ	dZ
y)	LineMonitoringTestc	|jtjjig}t	|}tjjttj|tjjttjttjjtdtjjttjdtjjj}|j||dzd|dzgtjjtdtjjttjd|jtjjitjjy#tjjtdtjjttjd|jtjjitjjwxYw)Nr)r6rr"rrr+r5r_rr(r
rtest_lines_singlerco_firstlinenor,r0r#recorderrvs    r	rz$LineMonitoringTest.test_lines_single
s	,S^^7792>F*62HNN,,YINN%%i8DNN%%i3NN,,YE&88AAPPEVeAgr57%;<NN%%i3NN,,YES^^7792>NN))+
NN%%i3NN,,YES^^7792>NN))+s
EG&&B%Jc$	|jtjjig}t	|}tjjttj|tjjttjttjjtdtjjttjdtjjj}|j||dzddddd|dzgtjjtdtjjttjd|jtjjitjjy#tjjtdtjjttjd|jtjjitjjwxYw)Nrrr)r6rr"rrr+r5r_rr(rrtest_lines_looprrr,rs    r	r
z"LineMonitoringTest.test_lines_loops	,S^^7792>F*62HNN,,YINN%%i8GNN%%i3NN,,YE&66??NNEVeAgr2r2r57%KLNN%%i3NN,,YES^^7792>NN))+
NN%%i3NN,,YES^^7792>NN))+s
EG**B%Jc2	|jtjjig}t	|}g}t	|}tjjttj|tjjttj|tjjttjtjjttjttjjtdtjjtdtjjttjdtjjttjdtjjj}|dzd|dzg}|j|||j||tjjtdtjjtdtjjttjdtjjttjd|jtjjitjj!y#tjjtdtjjtdtjjttjdtjjttjd|jtjjitjj!wxYw)Nr
r)r6rr"rrr+r5r_rrGr(r
rtest_lines_tworrr,)r0r#revents2	recorder2rvrbs       r	rz!LineMonitoringTest.test_lines_two.sk	,S^^7792>F*62HG+G4INN,,YINN,,ZKNN%%i8#..:S:ST^`a`f`f:gDNN%%i3S^^5N5Nz[\5]NN,,YENN,,ZF&55>>MMEb"eBh/HVX.Wh/NN%%i3NN%%j!4NN,,YENN,,ZFS^^7792>NN))+
NN%%i3NN%%j!4NN,,YENN,,ZFS^^7792>NN))+s
HLC<Pc	|jtjjig}t	|}tjj|tj|tjj|tj|tjj|dtjj|tjd|ddDcgc]}||jjz
}}|j||tjj|dycc}w#tjj|dwxYw)Nrrr)r6rr"rrr+r_rr(rr)r0r`rbrKr#rlineliness        r	check_lineszLineMonitoringTest.check_linesHs	/S^^7792>F*62HNN,,T1668DNN%%dAFF3FNN%%dA.NN,,T1664@FLQrlTddT]]999TETUH-NN%%dA.U
NN%%dA.sC5E7 EEE"E3c2d}|j|gdy)Ncd}d}d}d}d}y)Nrrrrrrs r	r`z,LineMonitoringTest.test_linear.<locals>.funcZsDDDDDr)rrrrrrr0r`s  r	test_linearzLineMonitoringTest.test_linearXs		
{+rc2d}|j|gdy)Nc<djdrd}d}d}yd}d}y)NtruetrrrrD)
startswithrs r	r`z,LineMonitoringTest.test_branch.<locals>.funcds-  %DDrrrrrDrrs  r	test_branchzLineMonitoringTest.test_branchcs		
y)rc`d}|j|gdd}|j|gdy)Nc(	d}d}d}y#d}Yd}yxYwNrrrrDrrs r	func1z1LineMonitoringTest.test_try_except.<locals>.func1ps)
D
Ds	r!c"	d}d#d}Yd}yxYwr%rrs r	func2z1LineMonitoringTest.test_try_except.<locals>.func2zs"

Ds)rrrrrrDr)r0r&r(s   r	test_try_exceptz"LineMonitoringTest.test_try_exceptns0		
	*		

.rN)r>r?r@rr
rr5rrr"r)rrr	rrs*,$,$,409
/ 	,	*/rrc$eZdZdZdZdZdZy)TestDisablec#BKtdD]
}|rd
dyw)NrrrrE)r0condis   r	rzTestDisable.gens&r	A		sc	ddzy#xYwrrr<s r	raise_handle_reraisez TestDisable.raise_handle_reraises	
aC	schtD]\}}	t}d|_tjjt||tjjt||jdD]}|j|jdtjjtdtjjt|dy#tjjtdtjjt|dwxYw)NTrrr)INSTRUMENTED_EVENTSrrrr"r+r5r(r
assertLessrV)r0ranamercrs     r	test_disable_legal_eventsz%TestDisable.test_disable_legal_eventss.	IKE4

I,."&00E7K)))U;!A

q1)))Q700E4H	I)))Q700E4Hs
BC&&AD1cxtD]\}}	t}d|_tjjt||tjjt||jt5|jdddtjjtdtjjt|dy#1swYUxYw#tjjtdtjjt|dwxYw)NTr)
EXCEPT_EVENTSrrrr"r+r5r(r7r8r1)r0rar5rcs    r	test_disable_illegal_eventsz'TestDisable.test_disable_illegal_eventss(
	IKE4	
I,."&00E7K)))U;&&z20--/0)))Q700E4H
	I00)))Q700E4Hs%A/C.=C"C."C+	'C..AD9N)r>r?r@rr1r6r9rrr	r+r+sIIrr+c0eZdZejZdZdZy)ExceptionRecorderc||_yrr#rs  r	rWzExceptionRecorder.__init__	rcP|jjdt|fy)Nr|r#rtyper0rrexcs    r	r\zExceptionRecorder.__call__GT#Y/0rN)r>r?r@r_RAISE
event_typerWr\rrr	r;r;sJ1rr;c&eZdZdZeeffdZdZy)CheckEventsc.	|jtjjig}d}|D]:}|j}tjj||||||z}<tjj
|||tjj
|d|D]-}tjj||jd/|tjj
|d|D]-}tjj||jd/S#tjj
|d|D]-}tjj||jd/wxYwr
)r6rr"rrFr+r()r0r`rK	recorders
event_list
all_eventsrevs        r	r'zCheckEvents.get_eventssS	RS^^7792>JJ%
!((00r8J;OPb 

!
NN%%dJ7FNN%%dA.%
R00x7J7JDQ
RNN%%dA.%
R00x7J7JDQ
R
NN%%dA.%
R00x7J7JDQ
Rs
C+EAFc|j|||}||k7rt|tj|j	||y)N)file)r'printrstderrr6)r0r`rbrKrJr#s      r	rzCheckEvents.check_eventss:tY7X&,*rc:|j|t|}|jt|dzdt	|ddd|dddD]K\}}|d}|j|d|d}|j|d|j|d|dMy)Nrrr)r|reraise)handledr})r'r5r6rzipassertIn)r0r`rJr#rhr0h0s        r	check_balancedzCheckEvents.check_balancedsy)<VQ*ssF14a4L1	)DAq1BMM"231BMM"34QqT1Q4(	)rN)r>r?r@r'r5r;rr[rrr	rHrHsR(1:FWEY+)rrHc$eZdZejZy)StopiterationRecorderN)r>r?r@r_STOP_ITERATIONrFrrr	r]r]s
!!Jrr]c*eZdZejZdZy)ReraiseRecordercP|jjdt|fy)NrSr@rBs    r	r\zReraiseRecorder.__call__ItCy12rN)r>r?r@r_RERAISErFr\rrr	r`r`sJ3rr`c*eZdZejZdZy)UnwindRecordercP|jjdt|fy)Nr}r@rBs    r	r\zUnwindRecorder.__call__sHd3i01rN)r>r?r@r_	PY_UNWINDrFr\rrr	reresJ2rrec*eZdZejZdZy)ExceptionHandledRecordercP|jjdt|fy)NrTr@rBs    r	r\z!ExceptionHandledRecorder.__call__rbrN)r>r?r@r_EXCEPTION_HANDLEDrFr\rrr	riris$$J3rric*eZdZejZdZy)
ThrowRecordercP|jjdt|fy)Nthrowr@rBs    r	r\zThrowRecorder.__call__rDrN)r>r?r@r_PY_THROWrFr\rrr	rmrmsJ1rrmcneZdZeeeefZdZdZ	de
fde
fgZde
fde
fgZdZ
dZdZd	Zd
ZdZdZy
)ExceptionMonitoringTestc<d}|j|dtfgy)Nc*	d}t#d}Yd}yxYwNrrrDKeyErrorrs r	r&z=ExceptionMonitoringTest.test_simple_try_except.<locals>.func1
"

D
r|)rrwr0r&s  r	test_simple_try_exceptz.ExceptionMonitoringTest.test_simple_try_excepts!		
%7H"5!67rcVdfd}|j|dtfgtfy)Nc3KdywNrrrrrr	rzAExceptionMonitoringTest.test_implicit_stop_iteration.<locals>.gensGscD]}yrr)rrs r	implicit_stop_iterationzUExceptionMonitoringTest.test_implicit_stop_iteration.<locals>.implicit_stop_iterationsU

rr|rJ)r
StopIterationr])r0rrs  @r	test_implicit_stop_iterationz4ExceptionMonitoringTest.test_implicit_stop_iterations1			
1Wm4L3MZoYqrrr|rTrScDd}|j||jy)Nc,		ddzy#xYw#YyxYwrrrrr	r`z;ExceptionMonitoringTest.test_explicit_reraise.<locals>.func/s&
aC
s	rr[exception_recordersrs  r	test_explicit_reraisez-ExceptionMonitoringTest.test_explicit_reraise-(		
00		2rcDd}|j||jy)NcD		ddzy#t$r}d}~wwxYw#YyxYwrrexs r	r`zAExceptionMonitoringTest.test_explicit_reraise_named.<locals>.func>s/
aC 
s		rrrs  r	test_explicit_reraise_namedz3ExceptionMonitoringTest.test_explicit_reraise_named<rrcDd}|j||jy)Nc>		ddzy#t$rYywxYw#YyxYwrr8rrr	r`z;ExceptionMonitoringTest.test_implicit_reraise.<locals>.funcMs.
aC!
s		rrrs  r	test_implicit_reraisez-ExceptionMonitoringTest.test_implicit_reraiseKrrcDd}|j||jy)NcL		ddzy#t$r
}Yd}~yd}~wwxYw#YyxYwrrrs r	r`zAExceptionMonitoringTest.test_implicit_reraise_named.<locals>.func]s/
aC!
s		#rrrs  r	test_implicit_reraise_namedz3ExceptionMonitoringTest.test_implicit_reraise_named[rrcDd}|j||jy)Nc*		ddzy#wxYw#YyxYwrrrrr	r`z6ExceptionMonitoringTest.test_try_finally.<locals>.funcls#
aCD
s	rrrs  r	test_try_finallyz(ExceptionMonitoringTest.test_try_finallyjrrcDd}|j||jy)Ncbdfd}	|jdy#t$rYywxYw)Nc6KtdD]}tywrY)rEZeroDivisionError)r/s r	async_generatorzMExceptionMonitoringTest.test_async_for.<locals>.func.<locals>.async_generator}sqA++scVK	23d{}
76y#t$rYywxYwwrr)rrs r	
async_loopzHExceptionMonitoringTest.test_async_for.<locals>.func.<locals>.async_loops;&5&7d&7 s4))	&)&))sendr)rrs @r	r`z4ExceptionMonitoringTest.test_async_for.<locals>.func{s4



!!$' 

s"	..rrrs  r	test_async_forz&ExceptionMonitoringTest.test_async_forys(	&	
00		2rcdfd}|j||j|j|t|jtfz}|j|ddtfy)Nc3Kddywr~rrrr	rz/ExceptionMonitoringTest.test_throw.<locals>.gensGGrct	}t||jty#t$rYywxYwr)nextro
IndexError)grs r	r`z0ExceptionMonitoringTest.test_throw.<locals>.funcs4
EQ
#

s'+	77rrro)r[rr'r5rmr6r)r0r`r#rs   @r	
test_throwz"ExceptionMonitoringTest.test_throwsp			
00		2$$
'77

	
Wj$9:rN)r>r?r@r;r`rirerr{rrinitialrSrrrrrrrrrr	rrrrs|	 	
8
s
#$	%&G
%&	%&G

2
2
2 
2
222;rrrc0eZdZejZdZdZy)LineRecorderc||_yrr=rs  r	rWzLineRecorder.__init__r>rcn|jjd|j||jz
fy)Nr)r#rco_namer)r0rrs   r	r\zLineRecorder.__call__s*FDLL$9L9L2LMNrN)r>r?r@r_rrFrWr\rrr	rrsJOrrc0eZdZejZdZdZy)CallRecorderc||_yrr=rs  r	rWzCallRecorder.__init__r>rcT|jjd|j|fy)Nr)r#rr>r0rrr`rs     r	r\zCallRecorder.__call__sFDMM378rN)r>r?r@r_r;rFrWr\rrr	rrsJ9rrceZdZdZdZy)CEventRecorderc||_yrr=rs  r	rWzCEventRecorder.__init__r>rch|jj|j|j|fyr)r#rrr>rs     r	r\zCEventRecorder.__call__s#DOOT]]C@ArNr]rrr	rrs
Brrc(eZdZejZdZy)CReturnRecorderC returnN)r>r?r@r_r9rFrrrr	rrsJJrrc(eZdZejZdZy)CRaiseRecorderC raiseN)r>r?r@r_r:rFrrrr	rrsJJrrceZdZdZdZdZy)TestManyEventsc~d}|j|tdddtjjfddddd	g
y)Ncd}d}d}yNrrrrline1line2line3s   r	r&z)TestManyEvents.test_simple.<locals>.func1EEErrr'rrr&rr&rrr&rrr&rrr'r
rr(rrJrbrMANY_RECORDERSrr"r.rzs  r	test_simplezTestManyEvents.test_simplesJ	
	
%^&
Wcnn445   &%I'	(rc
d}|j|tdddtjjfdddddgfd	ddgfd
ddg	
y)Nc.d}gjdd}yrrrrs  r	r(z)TestManyEvents.test_c_call.<locals>.func2EIIaLErrrr(rr(rrr(rrrrrr(rrrrrr0r(s  r	test_c_callzTestManyEvents.test_c_callsb	
	
%^&
Wcnn445  
Xs#
A3' &%	I'		(rcd}|j|tdddtjjfddddt
fd	d
ddd
gy)Nc*	d}t#d}Yd}yxYwrurvrs r	func3z-TestManyEvents.test_try_except.<locals>.func3rxryrrrrrrrrrrrrr|rrrrrrrrrDrrr)rrrr"r.rwr0rs  r	r)zTestManyEvents.test_try_excepts[		
%^&
Wcnn445   
h   &%I'	(rN)r>r?r@rrr)rrr	rrs( ($(rrc0eZdZejZdZdZy)InstructionRecorderc||_yrr=rs  r	rWzInstructionRecorder.__init__r>rct|jdk7r)|jjd|j|fyy)Nr'instruction)rr#r)r0rrs   r	r\zInstructionRecorder.__call__s0<<<'KK
t||VDE(rN)r>r?r@r_rrFrWr\rrr	rrsJFrrc(eZdZdZdZdZdZdZy)TestLineAndInstructionEventsNc>d}|j|tgdy)Ncd}d}d}yrrrs   r	r&z7TestLineAndInstructionEvents.test_simple.<locals>.func1#rrrrrr&rrr&rrrr&rD)rr&rr)rr&r)rr&)rr&rrrLINE_AND_INSTRUCTION_RECORDERSrzs  r	rz(TestLineAndInstructionEvents.test_simple!s%	
	
%-KY(	)rc>d}|j|tgdy)Nc.d}gjdd}yrrrs  r	r(z7TestLineAndInstructionEvents.test_c_call.<locals>.func28rr)rrrr(r)rr(rr)rr(rD)rr(r)rr()rr()rr(&r)rr(()rr(*)rr(,rrrrs  r	rz(TestLineAndInstructionEvents.test_c_call6s%	
	
%-KY(	)rc>d}|j|tgdy)Nc*	d}t#d}Yd}yxYwrurvrs r	rz;TestLineAndInstructionEvents.test_try_except.<locals>.func3Prxry)rr)rrrr)rrr)rrrDr)rrr)rr)rrr)rrr)rrr	)rr)rrrr)rrr)rr )rr"rrrrs  r	r)z,TestLineAndInstructionEvents.test_try_exceptNs%		
%-KY(	)rcd}|j|tgdtjj	|j|tgdy)Ncd}d}d}yrrrs   r	r&z=TestLineAndInstructionEvents.test_with_restart.<locals>.func1prrrr)rrrr"r,rzs  r	test_with_restartz.TestLineAndInstructionEvents.test_with_restartosS	
	
%-KY(	)	%%'%-KY(	)r)r>r?r@rrrr)r	rrr	rrsG)*)0)B")rrceZdZeeffdZedZgdZdZ	dZ
edZddd	ejjfd
ddgZd
Z	dZ
y)TestInstallIncrementalllyc~	|jtjjig}d}|D]1}||jz}tjj||3|D]3}tjj
||j||5|tjj|d|D]-}tjj
||jd/|D]}|j||	tjj|d|D]-}tjj
||jd/y#tjj|d|D]-}tjj
||jd/wxYwr
)r6rr"rrFr(r+rV)	r0r`must_includerKrJrKrLrrs	         r	rz&TestInstallIncrementallly.check_eventss	RS^^7792>JJ%
<h111
))$
;
<&
b00x7J7JHU_L`a
bFNN%%dA.%
R00x7J7JDQ
R$
0

dJ/
0
NN%%dA.%
R00x7J7JDQ
R
NN%%dA.%
R00x7J7JDQ
Rs
DE((AF<cd}yrYr)rs r	r&zTestInstallIncrementallly.func1sr)rrrrclttg}|j|j||jyN)rJr
)rrrr&EXPECTED_LIr0rJs  r	test_line_then_instructionz4TestInstallIncrementallly.test_line_then_instructions2"$79	$**&/@P@P		Rrclttg}|j|j||jyr)rLineRecorderLowNoiserr&rrs  r	test_instruction_then_linez4TestInstallIncrementallly.test_instruction_then_lines2)+?A	$**&/@P@P		Rrctdy)Nrrrrr	r(zTestInstallIncrementallly.func2s	Brrrr()rrr)rr(r)rr(rclttg}|j|j||jyr)rrrr(MUST_INCLUDE_CIrs  r	rz4TestInstallIncrementallly.test_line_then_instructions2"$79	$**&/@T@T		Vrclttg}|j|j||jyr)rrrr(rrs  r	rz4TestInstallIncrementallly.test_instruction_then_lines1)<9	$**&/@T@T		VrN)r>r?r@r5r;rstaticmethodr&MUST_INCLUDE_LIrrr(rr"r.rrrr	rrs4=J[I]R*)OR
R

(
Wcnn445((*OV
Vrrc0eZdZedfdZdZdZdZdZy)TestLocalEventsrc	|jtjjig}d}|D]:}|j}tjj||||||z}<tjj
||j||tjj
||jd|D]-}tjj||jd/|j||tjj
||jd|D]-}tjj||jd/y#tjj
||jd|D]-}tjj||jd/wxYwr
)r6rr"rrFr+r*r)	r0r`rbrKrJrKrLrrMs	         r	rzTestLocalEvents.check_eventssx	RS^^7792>JJ%
!((00r8J;OPb 

!
NN++D$--LFNN++D$--C%
R00x7J7JDQ
RZ2NN++D$--C%
R00x7J7JDQ
R
NN++D$--C%
R00x7J7JDQ
Rs
DE22AGc>d}|j|tgdy)Ncd}d}d}yrrrs   r	r&z*TestLocalEvents.test_simple.<locals>.func1rr)rrrrrLOCAL_RECORDERSrzs  r	rzTestLocalEvents.test_simples$	
	
%_J"	#rc
Td}|j|tdddddgfdddgfdg	y)
Nc.d}gjdd}yrrrs  r	r(z*TestLocalEvents.test_c_call.<locals>.func2rrrrrrrrrrr"rs  r	rzTestLocalEvents.test_c_callsE	
	
%_  
Xs#
A3' J"	#rc>d}|j|tgdy)Nc*	d}t#d}Yd}yxYwrurvrs r	rz.TestLocalEvents.test_try_except.<locals>.func3
rxry)rrrrrrrr"rs  r	r)zTestLocalEvents.test_try_excepts$		
%_J"	#rc|jt5tjj	t
tjtjdddy#1swYyxYwr)
r7r8rr"r*r5rrr_rEr<s r	test_set_non_local_eventz(TestLocalEvents.test_set_non_local_eventsI


z
*	TNN++Iy7I7I177S	T	T	TsAA!!A*N)	r>r?r@r5rrrr)r)rrr	rrs"09RR*
###$Trrc|jD]/\}}}||cxkr|ksn|d|dcS||jz
cSy)Nz[offset=]r)co_linesr)rrrvendrs     r	line_from_offsetr.sU MMO.sDF S |!&++$----	.
rc4eZdZejZdZdZdZy)JumpRecorderrzc||_yrr=rs  r	rWzJumpRecorder.__init__+r>rct||}t||}|jj|j|j||fyr)r.r#rr5r)r0rfrom_to	from_lineto_lines      r	r\zJumpRecorder.__call__.s=$T51	"4,DIIt||YHIrN)	r>r?r@r_JUMPrFr5rWr\rrr	r0r0&sJDJrr0c(eZdZejZdZy)BranchRecorderr{N)r>r?r@r_BRANCHrFr5rrr	r9r94sJDrr9c0eZdZejZdZdZy)ReturnRecorderc||_yrr=rs  r	rWzReturnRecorder.__init__=r>rc>|jjd|fy)Nrx)r#r)r0rrvals    r	r\zReturnRecorder.__call__@sHc?+rN)r>r?r@r_rprFrWr\rrr	r<r<9sJ,rr<ceZdZdZdZdZy)TestBranchAndJumpEventsNcrd}|j|tgd|j|tgdy)Nc6d}tdD]	}|rd}d}y)NrrrrDr-)xas  r	r`z/TestBranchAndJumpEvents.test_loop.<locals>.funcMs'A1X
AA	
r)r{r`rrr{r`rrDrzr`rDrrFr{r`rrrzr`rrrFr)rrr`rrr`rrFrr`rrG)rr`rDrHrLrFrMrIrr`rrJrLrFr)rJUMP_AND_BRANCH_RECORDERSJUMP_BRANCH_AND_LINE_RECORDERSrs  r		test_loopz!TestBranchAndJumpEvents.test_loopKsC		
$,ES&	'	
$,JX(	)rcGddfd}|j|tgd|j|tdddd	d
tfddd
dddddddgy)NceZdZdZy)5TestBranchAndJumpEvents.test_except_star.<locals>.Foocyrrr<s r	methz:TestBranchAndJumpEvents.test_except_star.<locals>.Foo.methtsrN)r>r?r@rVrrr	FoorTss
rrWc		t#gxt%x#}}|jd}~nd}~nnxYycYwxYw#t$rYywxYwr)rwrrV)errWs  r	r`z6TestBranchAndJumpEvents.test_except_star.<locals>.funcwsK
("N(	(Aqvvxxx(

s)
A1	AAA	AA)rrKrLrMrNr{r`rrrr`rrrVrrzr`rrrzr`rz[offset=114]r{r`z[offset=120]z[offset=122]rrrrKrLrMr|rNrZr[r\)rxNr]r^r_r)rrPFLOW_AND_LINE_RECORDERSrw)r0r`rWs  @r	test_except_starz(TestBranchAndJumpEvents.test_except_starqs				
$,JX(	)	
$,C&
h$"/>&Q(	)r)r>r?r@rrQrarrr	rArAHsG$)L-)rrAc\eZdZeeeefZdZddZ	dZ
ddZdZddZ
dZddZd	Zd
Zy)
TestLoadSuperAttrc$i}t||||Sr)exec)r0cods   r	_execzTestLoadSuperAttr._execsRArc|rdnd}|dtj|}t|dd}|j|j	|||j|S)Nzx = 1z
super = super
<string>re)textwrapdedentcompiler6_has_load_super_attrrh)r0codestr	optimized
assignmentrfs     r	_exec_superzTestLoadSuperAttr._exec_supers^!*W
L8??7#;"<=
Wj&
12226	Bzz"~rctdtj|D}|stfd|jD}|S)Nc3:K|]}|jdk(yw)LOAD_SUPER_ATTRN)opname).0instrs  r		<genexpr>z9TestLoadSuperAttr._has_load_super_attr.<locals>.<genexpr>sZ%,,"33Zsc3xK|]1}t|tjxrj|3ywr)rtypesCodeTypero)rxrr0s  r	rzz9TestLoadSuperAttr._has_load_super_attr.<locals>.<genexpr>s71enn-N$2K2KA2NNs7:)anydisget_instructions	co_consts)r0rfhass`  r	roz&TestLoadSuperAttr._has_load_super_attrsDZAUAUVXAYZZC
rcd}|j||}dddtjjfddd|dfddd	tjjfd
d	tjjfdddd
ddddg}|d|fS)Na[
            class A:
                def method(self, x):
                    return x

            class B(A):
                def method(self, x):
                    return super(
                    ).method(
                        x
                    )

            b = B()
            def f():
                return b.method(1)
        rrrrrrmethodbrrrsuperrrrrrrr)rrrrrrsrr"r.r0rqrprgrbs     r	_super_method_callz$TestLoadSuperAttr._super_method_calls 
Wi0&
S#..001
Xqv&!
Wcnn445
#.."8"89!!!!!!&%
"vxrc|jd\}}|jd\}}|j||j||j||j|yNF)rqTr)rr	RECORDERSr0nonopt_funcnonopt_expectedopt_funcopt_expecteds     r	test_method_callz"TestLoadSuperAttr.test_method_callsd'+'>'>'>'O$_!%!8!84!8!H,+/Z(dnn|Trcd}|j||}dddtjjfdddd|dfd	d
dd	dd
ddddg}|d|fS)Na?
            class A:
                def method(self, x):
                    return x

            class B(A):
                def method(self, x):
                    return super(
                        x,
                        self,
                    ).method(
                        x
                    )

            b = B()
            def f():
                try:
                    return b.method(1)
                except TypeError:
                    pass
                else:
                    assert False, "should have raised TypeError"
        rrrr)rrrrrrrr)rrr)rrr)rrr)rrrrrrrs     r	_super_method_call_errorz*TestLoadSuperAttr._super_method_call_errors~.
Wi0&
S#..001
Xqv&!!!! #&%
"vxrc|jd\}}|jd\}}|j||j||j||j|yr)rrrrs     r	test_method_call_errorz(TestLoadSuperAttr.test_method_call_errorsd'+'D'Du'D'U$_!%!>!>!>!N,+/Z(dnn|Trcd}|j||}dddtjjfddd|dfddd	tjjfd
d	tjjfdddd
g}|d|fS)Nz
            class A:
                x = 1

            class B(A):
                def method(self):
                    return super(
                    ).x

            b = B()
            def f():
                return b.method()
        rrrrrrrrrrrrrrs     r	_super_attrzTestLoadSuperAttr._super_attrs
Wi0&
S#..001
Xqv&!
Wcnn445
#.."8"89!!&%
vxrc|jd\}}|jd\}}|j||j||j||j|yr)rrrrs     r		test_attrzTestLoadSuperAttr.test_attr<sd'+'7'7%'7'H$_!%!1!1D!1!A,+/Z(dnn|Trc*tjd}d}dD]}|j|5|rdnd}|jd|}|jd	|}t	|d
d}|j|j
||j|}|j|}	|j|d|j|d||
|j|	d|j|d	||	
dddy#1swYxYw)Nz
            class C:
                def method(self):
                    return {cls}().__repr__{call}
            c = C()
            def f():
                return c.method()
        c	(|dk(rdntjj}dddtjjfddd|dfd	d|tjjfd
|tjjfg|r
dd|fd
d|fgngdd
S)Nintrrrrrrrrr__repr__rr)rr"r.)r5call_methodnsrepr_args    r	get_expectedz?TestLoadSuperAttr.test_vs_other_type_call.<locals>.get_expectedMs EMqs~~/E/EH*cnn445 2c7+%s~~556T3>>#9#9:% X6#Z:+-+*
r)TF)rz()r)clsrrrkrerr)
rlrmsubTestformatrn
assertTruerorhrr)
r0
code_templaterrcall_str
code_supercode_intco_superns_superns_ints
          r	test_vs_other_type_callz)TestLoadSuperAttr.test_vs_other_type_callCs# )

	()	K+6
#.4B*11gH1M
(//E/I":z6B 9 9( CD::h/H-!!SM"nn)';I"
!!3K"nn)%fE"

	

sCD		D	N)F)r>r?r@rrrrrrhrsrorrrrrrrrrr	rcrcsGlNOKI
# JU* XU <U1rrcceZdZdZdZy)TestSetGetEventsc,tjjttj
|j
tjjttj
tjjttj
|j
tjjttj
tjjtd|j
tjjtdtjjtd|j
tjjtdyr
)	rr"r(r5r_rgr6r'rGr<s r	test_globalzTestSetGetEvents.test_globalys!!)QZZ8229=qzzJ!!*ajj922:>

K!!)Q/229=qA!!*Q/22:>Brc\tj}tjj	t
|tj|jtjjt
|tjtjj	t|tj|jtjjt|tjtjj	t
|d|jtjjt
|dtjj	t|d|jtjjt|dyr
)r
rrr"r*r5r_rgr6r)rG)r0rs  r	
test_localzTestSetGetEvents.test_locals{{''	4D88DI1::V''
D!**E88TJAJJW''	4;88DI1M''
D!<88TJANrN)r>r?r@rrrrr	rrwsC	Orrc"eZdZedZdZy)TestUninitializedcyrrrrr	rzTestUninitialized.fsrc|jtjjt|j
jdyr
)r6rr"r)r5rrr<s r	#test_get_local_events_uninitializedz5TestUninitialized.test_get_local_events_uninitializeds,88DFFOOTVWXrN)r>r?r@rrrrrr	rrs

YrrceZdZdZdZdZy)TestRegressionscdfdfdfd}||jdd	tjjtt
j||jdtjjtdy#tjjtdwxYw)Nc3BK	dy#t$r	ddYywxYww)Ninnerr)rsr	rz*TestRegressions.test_105162.<locals>.inners%

 
s
c3\K	Ed{y7#t$r	ddYywxYww)Nouterr)rrsr	rz*TestRegressions.test_105162.<locals>.outers-
 7""
 
s(,
,),),c`}|jd|jtyr)rror)rrs r	runz(TestRegressions.test_105162.<locals>.runs!'CHHTNIIi rrr)r6rr"r(r5r_rl)r0rrrrs  @@@r	test_105162zTestRegressions.test_105162s			!	)	4NN%%i=EVW-NN%%i3CNN%%i3sAB""&CcGddfd}	|tjjtdy#tjjtdwxYw)NceZdZdZy)(TestRegressions.test_108390.<locals>.Foocn|r3tjjttj
yyr)rr"r(r5r_rl)r0	set_events  r	rWz1TestRegressions.test_108390.<locals>.Foo.__init__s"NN--iErN)r>r?r@rWrrr	rWrs
FrrWc<tdD]
}|dk(y)Ndcr-)r/rWs r	!make_foo_optimized_then_set_eventzFTestRegressions.test_108390.<locals>.make_foo_optimized_then_set_events!3Z
AG
rr)rr"r(r5)r0rrWs  @r	test_108390zTestRegressions.test_108390sH	F	F
		4-/NN%%i3CNN%%i3s	>&A$cVtjjdd|jtjjdtjjddtjj
dtjdtjj
dtjdtjjdtjtjztjjddy)NrtestcBtjjddSr
)rr"r(r[s r	<lambda>z/TestRegressions.test_gh108976.<locals>.<lambda>s#..B[B[\]_`Barcyr
rrs r	rz/TestRegressions.test_gh108976.<locals>.<lambda>sr)
rr"r$
addCleanupr%r(r+r_rrr<s r	
test_gh108976zTestRegressions.test_gh108976s""1f-33Q7!!!Q'((AFF4ab((AMM?K!!!QVVamm%;<!!!Q'rN)r>r?r@rrrrrr	rrs4B4 (rr)b__doc__rr	functoolsoperatorrrlr|unittestasynciorr
rrrrr5rGrHTestCaser rBrPr"r#r_rgrlrpPY_YIELDr7r:r3rErgrkr8r:r9rreduceor_r;rrrrrrFunctionType
MethodTyperrrrr
test.profileerrrrrrrr+r;rHr]r`rerirmrrrrrrrrrrrrrr#rr.r0r9r<rOrPr`rArcrrr)rMrs00r	<module>rs(

	



	



M(++MD00,(2,h.?.?(2VNNZZ[[([[(ZZVVVXXx
WWg[[(-.
$m3YY	ZZ7
$9##HLL]2S'2q22SUVWZ[Z`Z``		
	

""E$4$45+-+>'/1B1B'*ZZAKKajjI	zz1;;'"''.0A0A''T	*	*	*	*&,%79J9J&,RC?-x/@/@C?Lz/+X->->z/x)I$h&7&7)IX11$)$h&7&7$)N"-"3'32&23031%1h;kh;T	O	O99BBn
^
#L,Q__9([9(v
F
F"5l!Bs);s)j@V 2H4E4E@VDo~MET((*;*;ETNJJ\
,,).8!-~|!K&FWYggV)kV)pTTnO)8+<+<O.Y))+=Y:(((*;*;:(o/3TsP.