All Downloads are FREE. Search and download functionalities are using the official Maven repository.

Lib.Krakatau.verifier.inference_verifier.pyc Maven / Gradle / Ivy

There is a newer version: 1.1
Show newest version
?
?HRc@s?ddlZddlmZddlmZddlmZddlTddlTi3dej6d	ej	6d
ej
6dej6d
ej6dej
6d
ej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej 6dej!6dej"6dej#6dej$6dej%6dej&6dej'6dej(6dej)6dej*6d ej+6d!ej,6d"ej-6dej.6d#ej/6dej06dej16d	ej26d$ej36d$ej46d%ej56d!ej66d&ej76d'ej86d!ej96d!ej:6Z;ej<ej=ej>ej?ej@ejAfZBd(?ZCd)?ZDd*?ZEd+?ZFid,eG6d-eH6d.eI6d/eJ6d0eK6d0eL6ZMd1?ZNd2eOfd3??YZPd4?ZQdS(5i????Ni(terror(topnames(tbytecodei(t*t-s-As-{0}s-?s{0}-s[A]I-As[A]IA-s1-s2+1-s1-11s21-121s	3+21-1321s2+1-2121s
32+1-21321s
4+32+1-214321s12-21s
{0}{0}-{0}s{0}I-{0}s{0}-{0}s{0}-{1}sI-IsJJ-Is{0}{0}-IsI-sII-sA-sAA-s-RsI-As[?]-IsA-AsA-IcCs?|d}|jj}|tjtjtjtjtjftkr?idtj6dtj6j	|?}idtj6dtj6dtj6j	|?}n|tj
ks?|tjkr+|d}|dkr?dn|}|dks?t?dj
|?}|tj
kr||d}}q?||}}no|tjkre|d}|dkrVdn|}d}n5t|}	|	j
|d?}	|	jd	?\}}
}||fS(
NittAitBCStItIFJDABCSs[{}]IR(tclass_tcpoolRt	PUTSTATICt	GETSTATICtPUTFIELDtGETFIELDt
MULTINEWARRAYt_invoke_opstgettARRSTOREtARRLOADtAssertionErrortformattRETURNtNonetstackCharPatternst	partition(tcodetinstrtopRtbeforetafterttypenttype2tarrparttstsep((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pytgetSpecificStackCode5s*
.#0

	
cCsey|jd|?\}}}Wnttfk
r;}dSXyt|?SWntk
r`}dSXdS(NtField(tgetArgsCheckt
IndexErrortKeyErrorRtparseFieldDescriptort
ValueError(Rtindttargettnametdescte((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_loadFieldDescRscCs{y5|j|?dkrdS|j|?\}}}Wnttfk
rQ}dSXyt|?SWntk
rv}dSXdS(NtMethodtInterfaceMethod(sMethodsInterfaceMethod(tgetTypeRtgetArgsR(R)tparseMethodDescriptorR+(RR,R-R.R/R0((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_loadMethodDesc\scCs?|j|?}||ks9|dkr3|dks9t?|j|?d}|jd?r?yt|?dSWq?tk
r?}tSXn
t|?SdS(NR3R2it[(R4RR5t
startswithR*R+t	T_INVALIDtT_OBJECT(RR,R tactualtcnameR0((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_indexToCFMInfohs*RtFtJtDRcCstj|d?S(NR(t	_vtypeMapR(tfi((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt
vtype2CharwstInstructionNodecBs?eZdZdZdZidd6dd6dd6Zd?Zd?Zd?Zd	?Z	d
?Z
d?Zd?Zd
?Z
d?Zd?Zd?Zd?Zd?Zd?Zd?ZRS(iiit	NO_RETURNtNEED_CONSTRUCTORtNOT_CONSTRUCTEDcCs?||_|jdk	st?||_|jj|_|j|_|jj|_|j||_|jd|_	t
t
|_|_||_
|j?|j?dS(Ni(tkeyRRRR
tenvRRtinstructionRtFalsetvisitedtchangedt
offsetListt_verifyOpcodeOperandst_precomputeValues(tselfRRORI((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt__init__?s			
cs??fd???fd?}?j}?jjd}|tjkrRd?_n|tjtjtj	tj
tjtjfkr???jd?s??j
d?q?n0|tjkrn?jd\}}}|dt|?kr??j
d?n|rt|?n	ggf\}}t|?t|?kr??j
d	?nt?fd
?|D??s??j
d?q?nj|tjkr??jd\}	}
|
dkr?d,}|dkr?|d-7}n|dkr?|d.7}q?nd/}||	|?n?|tjtjtjtjfkrY?jd}	||	dg?|tjtjfkr??jt?q?n|tkrq?jd}	idtj6dtj6j|d?}||	|g??jj |	?\}
}}|dk}|j!d?}|tjkrt"?j|	d?nt#}|?_$|rN|tj%kr?|tj&ks;t'??j
d?q?nP|rd?j
d?n|tj&kr?|j(?jj)?kr??j
d?q?n|tjkr?t*?j|	?d}|dks?t|?d?jdkr??j
d?q?n|tjtjfkr@?jd dkrn?j
d!|?qnq?|tj+tj&tj%fkr??jt,?q?ng|tj-tj.tj/tj0tj1fkr??jd}	||	dg?t"?j|	d?}
|
t2kr??j
d"|?n|
?_3|tj0kr5|
j4d#kr#?j
d$?nt5|
??_3q?|tj/kr?|
j6d%ksb|
j4dkrr?j
d&?nt7?j8??_3|
?_$q?|tj1kr??jd}||
j4ks?|dkr??j
d'?q?q?n?|tj9kr/t:d(?jd?d}
|
dkr#?j
d)?n|
?_3n?|tj;tj<tj=tj>fkr?|tj=tj>fkr{?jd}	n,?jd\}}	|d*kr?|	d7}	n|	?j?j@kr??j
d+|	?j?j@?q?ndS(0Ncs|dk	o|?jkS(N(RRO(taddr(RR(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt
isTargetLegal?scso|dks!|?jj?kr4?jd|?n?jj|?}||krk?jd|||?ndS(NisInvalid constant pool index {}s:Invalid constant pool type at {}.
Found {} but expected {}(RtsizeRR4(R,ttypestt(RR(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pytverifyCPType?s
!ii????sIllegal jump targetits'Padding must be 0 in switch instructions)Lookupswitch keys must be in sorted orderc3s|]}?|?VqdS(N((t.0tx(RU(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?stInttFloattStringi1tClassi3tMethodHandlet
MethodTypetLongtDoubleR&R3tNameAndTypeR2sttOBJECT_INFOttarget_typet
INVOKEINITt
INVOKESPECIALRtextratgetSuperclassHierarchyR7t
INVOKEVIRTUALRLt
INSTANCEOFt	CHECKCASTtNEWt	ANEWARRAYRR:t	push_typetdimtT_ARRAYttagtT_UNINIT_OBJECTRItNEWARRAYR*tSTOREtLOADtIINCtRETRtlocals(RRRYRtmajortdefaulttjumpstpaddingtkeysttargetsR,tcatRWtexpectedR-R.R/tisctort
isinternaltclassztparsed_desctcountRX((RURRsK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyRP?s?	0$
$

&*	)*
	
$
c
Cs?|jj|j?}|j|d|_t|j|j?\|_|_|j	}|t
jkr?idd6dd6dd6dd	6d
d6|jd|_|jd|_
n3|t
jkr?d|_|jd|_
n|t
jkrd
|_|jd|_
n?|t
jt
jfkr?t|j|jd?|_|jdk	r?|t
jkrZdnd}|djtt|j??|_q?nW|t
jt
jfkr?t|j|jd?|_|jdk	r?djtt|j??|_q?n?|tkr?t|j|jd?|_|jdk	r?d}|t
jkrDd}n'|t
jt
jt
j fkrkd}n|djtt|jd??|_djtt|jd??|_q?n&|t
j!kr?d|jd|_n|j}|t
j"t
j#t
j$t
j%fkr%||jdf|_&n?|t
j't
j(fkrS|jdf|_&n?|t
j)t
j*fkrwd|_&n}|t
jkr?d|_&nb|t
j+kr?|j\}}}}|f}	|r?|	t,|?d7}	n|	|_&n|f|_&dS(Nis.intRs.floatR?s.longR@s.doubleRAs.objRis.addressRt@i((-ROtindexRItnext_instructionR%RRKRRRRR?t	local_tagt	local_indR?R?RRR1RR?RtjointmapRDRR
RR7R}RyR?R~RRkRlRmRnt
successorsRiRoRtTHROWRpRr(
RRtoff_iRtprefixtnext_topnameR?R?R?R?((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyRQsd!	7		($		&(	$	cCs2t|_|jj|rdnd|jd?\}}}d|krJdS|}||jj?kr.x?|dk	r*|jj	|?}|r?|j
n|j}x}|D]u}|j|kr?|j
|kr?d|jkr|jjjd?d}	|jd?d}
|	|
k|_ndSq?W|j}qhWndS(NR&R2iR8t	PROTECTEDt/i(RLt	protectedRR'RKR
R?RRJtgetClasstfieldstmethodsR.t
descriptortflagst
rpartitiont	supername(RRtisfieldR-R.R/R=tclstmemberstmtpack1tpack2((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyRwMs"	1
c	Csa|jtjtjtjfkr%dS|j|j}}|dk}|j}|t|?ks{|r?|t|?dkr?|j	d|?n||}|j
|ko?|jdks|dkrt|?s?|t
kr?dS|j
dkr|jdkrdSn|j	d||?n|r]||d}|j
|d	kr]|j	d
|d|?q]ndS(Ns.longs.doubleisRead from unintialized local {}is.objs.news Invalid local at {}, expected {}t2s$Invalid local top at {}, expected {}(s.longs.double(RRR?R?R?R?R?R?RqRR?R?t
objOrArrayt
T_UNINIT_THIS(RRRXtitcat2tlocstreg((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_checkLocalsds&!	.
cCso|jtjkrkt}|j|j@rH|j|j@rH|jd?n|j|j@rk|jd?qkndS(NsInvalid flags at return(	RRRRER?RGRHRRF(RRtinc((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_checkFlags~s c	Csk
|j}|j}t|jj?}|tkr?|jdkrY|jd|j	d?q?t
|j?dkr?|jd?q?nD|tjtj
fkr?|jdkr?|jd|j	d?q?n|dk	s?t?|j}i}t
|?}t
|?}xH|dkrH|dkr)|jd?n|d8}|d8}||}	||}
|
dkr?|
d	krotnt}||	krE|jd
|j?qEq|
dkr|
dkr?tnt}|
dkr?tnt}||d|d!||fkr
|jd
|j?n|d8}q|
d
kr9t|	?sE|	jdkrV|tjkrVqntjtjtjf}
|	jd5kr?||
kr?qn|	jdkr6|tjkr6|j	d}|jjd|?\}}}xX|jjD]G}|j|kr?|j|kr?|| |f||d}q?q?q?Wq6qEq|
dkrg|	jd6krE|jd?qEq|
dkr?|	tkr?||d}it d6t!d6td6td	6td6td6t"d6}||kr|	t#||?kr?|jd||jd?q?q?|d
krS|	j$dks@|	j$dkr?|	jdkr?|jd?q?q?|dkr?|	j$dkr?|jd?q?q?n|d8}q|
d kr|	jd7kr|r||dd#kr|	||
<||d|||d<|d8}|d8}qB|jd$?qE|	||
<|rE||dd#krE|d8}qEqqW|dksr|| |j| ksrt?|| ||}}|tj%kr?|d|d}}t&|?}t|?s?t|?r?	|jd%?q?	n|tjtj
tj'fkr?|tj
kr?t(|j|j	dd?}t)|j*|d|?sV|jd&?q?|j+r?t)|j*|d|?r?|jd'?q?n|tj'kr?	t)|j*|d(|jd(?s?|jd)?q?q?	n,|tj,krt)|j*|dtd*??s?	|jd+?q?	n?|tj-kr8t&|d?||kr?	|j?|kr?	|jd4?n|j?|t/tisAssignableRJR?R?tARRLOAD_OBJR}RLt
isThisCtorRR|RxRhR?R?RyR~RrRR6RtmethodR?R?R:R?tset(RRtiNodesRtscodetcurclass_fiR?tswaptsitcittoptchartettet2t	uninitopsR,R-R.R/tfieldtchar2ttempMaptpoppedtarrttobjttoffsett	new_inodetactR?trvals((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt	_popStack?s			



!

!-




)# 
!

%'$

dcCs3|j}t|j?}t|j?}t?}|tjtjfkr?|jddkradnd}|jd}|j	t
|||??|tjkr?|tg||t|?7}|j
|||||+q?n|tjtjfkr
|j|jd?n?|tjkrk|jd}|rR|t|?dkrR|jd?n|j|t?f?nt|tjtjfkr?|t|t}	}
xDt|?D]2\}}||	kr?|
||<|j|?q?q?Wng|D]\}
}|
||Bf^q?}|rt|?n|j}|t|?fS(NiRgiisRecursive call to JSR(RRsR?tmasksR?RR?R?RKtupdatetrangeR:RqR?R?R?taddRiRrRtappendt	frozensetR}R?RLRxt	enumeratettuple(RRR?RtnewlocstnewmaskstnewbitsR?R,R-toldtreplaceR?tvalRTtbitstlocals_((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt
_updateLocals1s6		


)cCs@|j}|jtjkr<|ttkr<|tj@}n|S(N(R?RRR}RLR?RERH(RRR?R?((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_updateFlagsWs	"c
s|j}t|jj?}|j}t}|tjkr^|jd\}}|j	j
|?}	idd6dd6dd6dd	6j|	d
?}|d
kr?|	dkr?td?}q[|	d
kr?|jjdks?t
?td?}q[|	dkr|jjd ks
t
?td?}q[|	dkrL|jjd!ks=t
?td?}q[ds[t
?q?nU|tjtjfkr?|jdkr?|jd|jd?n|r?|jdnt}n?|tkr|jdkr?|jd|jd?n|r|jddnt}n?|tjkr(t}n?|tjtjtjtjtjfkr^|j}nU|tjkrz||}n9|tjkr?|jdd
kr?|j|jd}nx|D]}
|
dkr?|
dkr?tnt }||f7}q?|
dkrC|
dkrt!nt"}|
dkr*t#nt$}|||f7}q?|
dkrrt%|jd?}||f7}q?|
dkr?|||
f7}q?|
d
kr?||f7}q?ds?t
?q?W|tj&kr|t'|t(??t)??fd?|D??}n|S("NiRR]R@RcRARdR?R^RR_sjava/lang/StringR`i1isjava/lang/ClassRbi3sjava/lang/invoke/MethodTypeRasjava/lang/invoke/MethodHandles$Invalid field descriptor at index {}s%Invalid method descriptor at index {}i????iR?RgtRR?c3s'|]}|?kr?n|VqdS(N((R[R\(RR(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?s(i1i(i3i(i3i(*RR;R
R.RR:RRvRKRR4RRhRRR
R?RRRt	CONSTNULLR?R?R?R?RR?R?R?R?R?R?R?R?R?R?R?t	T_ADDRESSR}RLRxR?(
RRR?R?RR?R?tnew_fiR,R?tcp_typenR?R?R?((RRsK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt
_pushStack]sr		. 	*
"
"cCs?|j?|j?|j|?\}}|j|?\}}|j|?}|j||?}td?|D??s{t?td?|D??s?t?||||f|fS(Ncss|]}t|t?VqdS(N(t
isinstancet
fullinfo_t(R[tvt((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?scss|]}t|t?VqdS(N(R
R(R[R((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?s(R?R?R?RRRRuR(RRR?R?R?RR?R?((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_getNewState?s

c
s?|\}}}}?jtjtjfkr\td?|D??}td?|D??}n?jtjkr?|r??jj|j?}	|?j|	d}
|
jdk	r?|
j?jkr?|
j
d?n?j|
_|
jr?|
jd}t
|?}x(|r(|dd|kr(|j?qW|s??j
d?n|j?d?tj||
jdt?}t?fd	?t|?D??}t|?}q?dSn|js?||||f\|_|_|_|_t|_|_n?|j}
t|
?t|?kr+|j
d
t|
?t|??nt?fd?t||
?D??r?t|_t?fd?t||
?D??|_t|jkr?|j
d
?q?nt|?t|j?kr?|jt|? |_t|_nt
tj||jdt??}d}x7|D]/\}}t?j||?r<|d7}qPqW|t|j?kr?t
|j| ?}|g||D]!\}}t?j||?^qw7}x$|r?|dtkr?|j?q?Wt|?|_t|_nd}g}xx|jD]m\}}x^t|?D]P\}\}}||kr||kr|||Bf}|j|?|}qqWq?Wt|?}|j|kr?||_t|_n|j|kr?||_t|_ndS(Ncss*|] }|jdkrtn|VqdS(s.newN(R?R:(R[R\((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?scss*|] }|jdkrtn|VqdS(s.newN(R?R:(R[R\((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?sisMultiple returns to jsri????is*Returning to jsr not in current call stackt	fillvaluec3s3|])\}\}}|?kr'|n|VqdS(N((R[R?R\ty(tmask(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?ss"Inconsistent stack height {} != {}c3s+|]!\}}t?j||?VqdS(N(R?RJ(R[tnewR(RR(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?sc3s*|] \}}t?j||?VqdS(N(t
mergeTypesRJ(R[RR(RR(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys	?ss"Incompatible types in merged stack( RRR?RiR?ROR?RIRjRRRMRKRstpopt	itertoolstizip_longestR?R:R?R?R?R?RxRNRqtanyRrR?RJRR?(RRtothertnewstateR?tisExceptiontnewstackt	newlocalsR?tnewflagsR?tjsrnodetcalledtzippedtoldstacktokcountR\RtmergedRRt
last_matchtmergedmaskstentry1tmask1tjtentry2tmask2titem((RRRsK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt_mergeSingleSuccessor?s?!	
"	*	"%	(!
6
		cGs<|jd||?}|dt|?}tj|??dS(NRRs

(Rtstrterror_typestVerificationError(RRtmsgtargs((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyRscCsM|jst?t|_|j|?\}}|\}}}}|j}	|jtjkr|j	dk	rt||j	_qn|	dkr |jtjks?t?|j
|jdj}
g|j?D]4}|jtjkr?|jd|
kr?|j^q?}t|?}	|_|
|_nx?|D]?\\}
}\}}|
|jkoY|knr'|jtjkr?|j|||||f|t?q|}|ttkr?|tjO}n|j|||j
|j|jf|t?|j|||||f|t?q'q'Wx7|jD],}|j||||||f|t?qWdS(Ni(RMRRLRNRR?RRRiRjRRxR?R?RKRtvaluesR?R?t	jsrTargetRIR}R.R?RERFR?R?(RRR?t
exceptionsRR?RRR?RR?R!tnttemptstarttendthandlert	execStackt	tempflagstk((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyR?s2		G%+)cCsCdj|jtj|j??g}|jr%gtjj?D]\}}||j	@r=|^q=}|r?|j
ddj|??n|j
ddjtt
|j???|j
ddjtt
|j???|jr2|j
d?|g|jD]$\}}dj|t|??^q?7}q2n
|j
d?d	j|?d	S(
Ns{}: {}sFlags: s, sStack: sLocals: sMasks:s	{}: {}s
	unvisiteds
(RRIRtprintInstructionRKRMREt
_flag_valstitemsR?R?R?R?R/R?R?R?Rt(RRtlinesR>tvR?tentrytcset((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt__str__/s$	5&&	
>
iiiiii(t__name__t
__module__RFRGRHR@RSRPRQRwR?R?R?RRRRR.RR?RF(((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyREzs(
		v	<					?	&		D		Y		$c
s?|j|j}?t|j?j|j?\}}?j?d}|jr??jdkr?|dt?j?kszt	?t
|d<|tjO}|tj
O}nt|?dks?t	?t|?}|j|j}}t|?|ks?t	?tt|jj???d	}g|d D]}t|||?^q}	d?|	D??t??}
x?|jD]?}d|jko?|jkno?|j|
ko?|j|
ko?|j|
kp?|j|jks^t|
?|jg}dj|djtt|???}
t j!|
??q^q^W???fd?}t||j?}|	d}d
|d|f\|_|_|_"|_#t$t$|_%|_&t'}xC|s?t$}x0|	D](}|j&r?|j(?|?t'}q?q?Wq?W|	S(Nisjava/lang/Objecti?i????cSsi|]}||j?qS((RI(R[R7((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pys
Rs	s3Illegal exception handler: {}
Valid offsets are: {}s, cs?|jr$?jjd|j?}nd}t|?}t?|td??sbtjd|?n|j|jf?|j	|fffS(NR`sjava/lang/Throwables Invalid exception handler type: (
ttype_indRR'R;R?R0R1R9R:R;(trawdataR RX(R
RJtiNodeLookup(sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pyt
makeException]s	(N((()R?R
tparseUnboundMethodDescriptorR?R.tstaticRJt
isConstructorR;RR?RERGRHRqR?R?R?RtRR?RR?t
except_rawR9R:R;tcodelenRR?R?R/R0R1R?R?RxRMRNRLR?(RR?R3trvalt
startFlagstmaxstackt	maxlocalstoffsetsRIR?R?trawtkeylistR2RLR6R9tdonetnode((R
RJRKsK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pytverifyBytecode>sH!	

)10$	
*	
	(RRRRR0RRtverifier_typestdescriptorstNOPRtCONSTRvR?R?R?R?R?tPOPtPOP2tDUPtDUPX1tDUPX2tDUP2tDUP2X1tDUP2X2tSWAPtADDtSUBtMULtDIVtREMtXORtANDtORtSHLtSHRtUSHRtNEGtCONVERTtTRUNCATEtLCMPtFCMPRlRmRkRnRoRiR?RpR?R?R?tARRLENR?R?R?tMONENTERtMONEXITRR~tINVOKESTATICR?RyR}RzRR%R1R7R>R?R?R?R?R?R?RBRDtobjectRER[(((sK/home/alex/projects/github/krakatau/Krakatau/verifier/inference_verifier.pytsV








*		
		0	???




© 2015 - 2025 Weber Informatics LLC | Privacy Policy