From ae119b72018fccb9ad42e076e2aa444eb4bb9c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 6 Feb 2021 09:43:03 +0100 Subject: [PATCH] Fixed AS3 deobfuscator on &&, || operators --- CHANGELOG.md | 1 + .../AVM2DeobfuscatorSimpleOld.java | 22 ++++++++++++++++-- .../testdata/as3_new/bin/as3_new.air.swf | Bin 16317 -> 16426 bytes .../testdata/as3_new/bin/as3_new.flex.swf | Bin 20980 -> 21126 bytes libsrc/ffdec_lib/testdata/as3_new/src/Main.as | 1 + .../as3_new/src/tests/TestDeobfuscation.as | 18 ++++++++++++++ 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/as3_new/src/tests/TestDeobfuscation.as diff --git a/CHANGELOG.md b/CHANGELOG.md index b9759aa41..578151c44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ All notable changes to this project will be documented in this file. - AS3 deobfuscator in some cases - #349 AS3 - better handling of declarations - #735 AS3 - index out of bounds in deobfuscator +- AS3 deobfuscator on &&, || operators ### Changed - AS3 test methods separated to classes diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimpleOld.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimpleOld.java index ab7e106be..72cd2a2ab 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimpleOld.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimpleOld.java @@ -170,6 +170,7 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush AVM2LocalData localData = newLocalData(scriptIndex, abc, abc.constants, body, isStatic, classIndex); int localReservedCount = body.getLocalReservedCount(); + Set importantOffsets = code.getImportantOffsets(body, isStatic); for (int i = 0; i < code.code.size(); i++) { if (Thread.currentThread().isInterrupted()) { throw new InterruptedException(); @@ -181,7 +182,7 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush localData.localRegs.clear(); initLocalRegs(localData, localReservedCount, body.max_regs); - executeInstructions(staticRegs, body, abc, code, localData, i, code.code.size() - 1, null, inlineIns, jumpTargets); + executeInstructions(importantOffsets, staticRegs, body, abc, code, localData, i, code.code.size() - 1, null, inlineIns, jumpTargets); } return false; @@ -213,7 +214,7 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush } } - private void executeInstructions(Map staticRegs, MethodBody body, ABC abc, AVM2Code code, AVM2LocalData localData, int idx, int endIdx, ExecutionResult result, List inlineIns, List jumpTargets) throws InterruptedException { + private void executeInstructions(Set importantOffsets, Map staticRegs, MethodBody body, ABC abc, AVM2Code code, AVM2LocalData localData, int idx, int endIdx, ExecutionResult result, List inlineIns, List jumpTargets) throws InterruptedException { List output = new ArrayList<>(); FixItemCounterTranslateStack stack = new FixItemCounterTranslateStack(""); @@ -269,6 +270,8 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush } else { idx = code.code.indexOf(nins); } + importantOffsets.clear(); + importantOffsets.addAll(code.getImportantOffsets(body, false)); continue; } } @@ -284,6 +287,9 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush int regId = ((SetLocalTypeIns) def).getRegisterId(ins); staticRegs.put(regId, localData.localRegs.get(regId).getNotCoerced()); code.replaceInstruction(idx, new AVM2Instruction(0, DeobfuscatePopIns.getInstance(), null), body); + + importantOffsets.clear(); + importantOffsets.addAll(code.getImportantOffsets(body, false)); } } } @@ -304,6 +310,9 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush stack.push(staticRegs.get(regId)); ins = pushins; def = ins.definition; + + importantOffsets.clear(); + importantOffsets.addAll(code.getImportantOffsets(body, false)); } } @@ -401,6 +410,12 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush throw new TranslateException("Jump target not found: " + address); } } else if (def instanceof IfTypeIns) { + + long ifAddress = code.pos2adr(idx); + if (importantOffsets.contains(ifAddress)) { + //There is jump directly to ifTypeIns like in &&, || operator + return; + } if (stack.isEmpty()) { return; } @@ -433,6 +448,9 @@ public class AVM2DeobfuscatorSimpleOld extends AVM2DeobfuscatorZeroJumpsNullPush //ins.definition = DeobfuscatePopIns.getInstance(); idx++; } + + importantOffsets.clear(); + importantOffsets.addAll(code.getImportantOffsets(body, false)); ifed = true; //break; } else { diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf index 5c96c6ba173bd18da5d79004466cba9b15c3ce35..e18d5d09262134a46cb9666ea217a080047b3235 100644 GIT binary patch literal 16426 zcmV(?K-a%RS5qtclK=pC0lmBjd>qC3KfE)$dwZvPk|kNiXP@nJlUME3+-=!sx!?ve zV8F(@JDq$2StssJE+hogdv)l|^kQlf5+Df>LkI~WSaNKqCy|T`| z@_#?MpW$}u&Qs=@=XvItS?!XP_av$45lO0KlCPvnlB5gA?O>9$VDYZ){q7y1Xsj(HYvwtFD%-&Hpdn>uAto*VzfD85iE80{O3V|;70o?vpY!J%ls7^)}O5b6(Y z4-Ld)4Ndh;Q>?E3SgP+ptlr-f354o{k?jp=Xz(^Rc`Zl+T2F9ZZzQ_iA7A7j9PIB4 z`Uz&kuDVz_5XDpMy`-uPFB~t{B*&e1(7%sfK?nT% z*Ud^le`4-{J3CzPYp07Yc6f?+e7D!OgwBJ)z)M6gJ00v3QR^?%(W> zHE$gV?c9v!`SS_UdVh?C#zjLICbWD9gk()$EFKyNMGO2rJ)xeBk*>IZTSyg61tu{e z>K0RWMEZKv7_~alHRIjFjeyq?-8LkoP9^9uC)F+U$AjU{z5#!K|L#0d5e5$4iexs_ z(-DjHZ5t3Tn$?hw{?M-Fy9T2nG(`qtrJ{FaAl^4H6j}pp`eP2N0_FW)0fut^s1VXv ziP;nh^bW;Lxves5di_KF@pX~-8hHo|CCuV`Dl!u#^XZs<|dk32lQs z367nDk%dHeVQz!*<>!Gcb0ty5z&79xnHC%}E6f?~+S!M7CLozvuxGnpu*NJ~d=RYJ z7>W+~qw4|R53M6a70eY>BVE-i76o#rgyKWd0YOc&YlHi97?+BSS6&dYB zDimEPDo2L~c-vf?Uo2L+Zy+wuX>AmITSmk*Rdzz#Y>4*l@W(^zy5^B+nX832x1Rk! zRQ`g2^Hal<9q_XN3$h-yZ=ff%OAUto(U=+sRUviu>>d87ir?(nYF(X`ud747KN@w4 zvC>eTZ22=OpQ59y89qg0TLW2iEK?P)iJ_2EzOF8B_UysLB1mLr&(5o>OBC`FnYubV z-Z(2Xd-fK!gH)j?&Ym6Gk{kY*D+c^2@9pc2?~alAb8k15$8NXZ9uN0L zGI^oCZQ=Ot0n9gVZwuvQ(lVAYa4UjGLH5jzB{38OTrY2K&J90Ib3yXb!IrY+IRw&7 zK>FA+TU4l?971XVBz1W-8i}eQdh+&G-rSZ$fUQJYjGe=Lygirm)CM?8U(DS>kEJR- zmf6VnjD>SZT{}TNAI^``3xz1dpOhm5AsI4S90>JBq9J#GBr@m@4fM!Ojm^BRy*nq1 zBwTSMQx_*#oJqgIl%_* zd%{%$8tR}w8gJtMg(Bk>&t~y#5zkiM-rk!NJQ7HlTP{Kcd)NL5Z=16vC-B6s0$_4u zL4BdLEg_(=DC@=6Js!42{R2Ib?Mmca|8CXa3%{;_R)f#n2zup~#&&;B=uLXnz(!jd ziS&p31G!Psrg9;ocPN8Hu`mz!r8#kC>llux*&v7eyu5vGI43;F-p&EX+-PWPLy7T~ zz`})XN?1CYHi1Wu*=$xh=`XdaB=#T9kF;+*@0$0rzsCoEn+jF=!DdCFQZswMgYNjaI%{Zf$R~#}Ox`fQ;NeXYLs4Vf4_saa=~j0du&& zNsb4-P7z@6x`POz#-l^QIB#n^D<`rAhlRk-&C#00@U#a72)RErpoDhy#REB^BWaLH zE!oVS3){ron{u;VNyIe)EH572?G8kGcDtL#Bfy7%Q;!=f);co~8<~7_4N}LZ!bBg@ zQiy&OV0Q=laXM3+^T7LfwkuMhYetScfBS z+Q{UH3*-!mU_3C@Vj-x!oUsuq!xY4*0ZPWQQ@8Klv~~^KrVQYCK=Fqo=g26} zT@Z=(;P|r-$C+)7EmIa1<~iu!f-;_NMKVh&H(CTLjmGY0NrQ!hvMOS96`{*B#iICw$KbcjZy?y24QYP z8L&;dh6ZsU8|vEG+hx8z)1By?7|)%C#RVuNSd<`Q47$PdW&VL3{#eIQJc1BS-}#|* zHUQg57wU93{Gd=2eo+QupwN697{pT}%yf_SUXnxq2@L|4j=;{oo_JVyhed?^#IWhL zneI=yMfZ7Tl6Y%g;%#Ede_%yF4h9F(VUHyPq7w;0M^`;&uctqBYAh6`P3VCBiJ~zE z;n@e_>G0{?Af8S0D2Woi{!0-ewYsx+<}3^K)iE*JOt&>gLbT!S!87ga-JKFKppjyp z;}bZU#h7%O5+a*HR$p%lP*Ro`E_4qJ^=Hc4i57y{F*&&ohZ+A*Ra}sm_tfgl0E)BB z?J@V{u|PI7xN$xLMI1v6dK+$mU@3_G4X#pPP4u{9k?kQj4L~QxSiAK}SPr~vj*OT6 z@S}02>W+nI=S?s6Lyx*6z3#+7X=9{@5R&%EOJ7eZ0~2D#Y~jK~C{350h>eNKNzOs~ zAPJPl5MuBpGL)`9vlOSBB?f4$w~$GZ zHU`w8zI2%tk&;YnfPJEXl3@xG{YL3s2af&2ksiE(_v+0;3aMZK4Jlifm;|CKlaBhK zK4@rR9#Up#%(be+yAlv*&3C6nAIp2F4;CwMj_wA~|HuL2ooQy$IFUZBmI*Vtkm@}% zHLA4;lUgwi)5OcE&SOjh23whD0TugKvQPFnI~XnLVO*LjD?@XBz<}O|5+c< ziP@{{M8k~IR;ela1jR~x-r1XCh1;wk-zwYIC%E4e35rWq#HQuut-htZSM^wn5ep*a zSdEg~F(xHj6QyvO3C$)HpzaRs!T}!cf^A4CMUv)GDE`N_I@TZy-LO?-44$$Ti`_G3 zxaW=4DYf8|qCk?65P;MWpGvknNMBeTOkZuLWs_2ajh^-~UK+!&Cg9FWxeaLxWDFwf zaeIXP&l&m*Ff-E}CooP3(ghZNW_imN;h8UJu-tSUp*H2_00x1URdhj6!9~XHa!+3{ z&xcD$FpB=@?tJquAnsiC;}~_$w*U3!+Pa#OaXAdA*a919Z^v|-Uu0BqW@$6GcvCha zbenad4DWcFQZa7N3A&_(!99&OIL1REFAoOu#RgVD@}6k)v{%g+n~G9z(FL*GOb$gr zDK3?pc#eogCC&qIJ2*DkWL)~iJYsDc@z``(t%$bF`9FxZc(bA{#EsmXz^0-qn*bv> z5$$DZS7QMLm#`3F(fa6qUoZ^bT0uRzsdeuE0dJeKc-sV&TIgC=%(|!E8x4i(dJtJL z?{$lt<3c4gP#mIxf*-gl7sNSzV@qz1OB1&{Xxbej7`hc4%TZi?)Fos9%}o?Ian1|? zJQyw|Zknf2RztJg)Y51lfJuQ3i{=yuasMi>1Q+ju@CDoi(;WoR+{|b47AYuaP0XuV z5-(0M=|-eG#S2)bF)lts?|27tVu;3u2SgRx_01d|Y#aLpRfHgIWKP{vd0Xq5IYD++ zFA&R3@O@P;UFOE{xjBvP5|IirH^t`-MKIm-rik;<$x{jgh$hGA8Bg0V?g-c69p~2e6|%<%aLV zRW$GY6W<45ARE%Y?n>Q=7Pq14!Z<=q;xnj*&@MlH=@Ns*Y?Patn+veT6K5F0j5fEn zYF35Z(%e#%G_XD7rOB;Lb93Wn3JgFBABZ`U*f@sH})#|eG|Cj@FzZY8kgckvO~>iZY0}sW56Nq;=>}KW)pgF zUT&7Y`JE4-$ljJ_n;E5&z3p?WM^n7Py4{}}f)k?yl{A+rQJb6HsdbK-_{fX6fIWX+ zh^`h>e0d&j%DH)XC^xp!(rAF1cAwa)9OFK*)smY9C_V`QChUCKJGW^JaZi3zmz$-S z93D8NEx=^876`?6;uDSB==`*g|40V#af%HG&d@w*MnA2OYxLSkYt7ANSFu-0+}{O~ z=Jhgnlc^lMxls-fIrCWj?9qqc^kMK=|HeEIAFCtPStsPHQYYjm?3p+;AG<^17(MM0 ztcm;>mtf6?+(cb6zf#0J@pH~e!wDNcd@P%r$uh?VNEUa%c1Hbc;6}5s4L7W|#lyK# z+CnN#*D*I@pYa_iXd7p4FlJ&K7MoRXl9o>fd#yNM@lF@UJ8`ck^;x0U`nb)yy2IzR z^43A&{uQzlFTvB(8ydp9xE);t{twwJnpF8LOfQY71L^KH^^0x057o>21P0$nD8j0g$OWxwm-@ZHP zex{Myd?Hetvq^1lchKz8gn8w*wp6KEZf|Ln=XmELu+n^9?k6yfb_!j|bV8VWsLi7| z-YhtNrphbi3bn#nQC<2GE-k+ z>g%lXbyod4Q@_sCk67hLtokFS{(-4`xOy$Gyp~sA%hl_-dJ|XgH{XADcJPd4J6`cOZogGl?~&EVc?dDNm>1ptbSQm56G1V9{iF z%8{!WUx{25a@92xkaHn7$vqjlDag&3ISaX3T~q5cwO&&jG__Gvn>5v{sm+?&qN%N#+NP=PnmR{Q=W6Oa zO`Wf)3p911rY_Rd#hSWAQ#&+usirQ|RG+3U*VIl;U7@KfHFcGyuGZ9(G-}VXzJOTx>ZxVHJe}4 zf|@;~@okzC*5p1-K1Y+!)p)J!n5kFgr?_+Lz$cpNWZ&NY4|*NU#@+N5iE zjjBz(k!zmwv}uoVZ5p!t3H+YI?-~4_@ge#>n| zlFjjZZgU*tHjNv+=p$~cv1zma3Ml`^?>K&YWUc5j{I0}rNGsZls%w#bm}wfu)G($E zsSU7f$k*L1YjyX@TK%JPjiz~j!L;UAd5vA0^L3E=P5j=HwK;Di9hQqnDj(6q!ngVSV@`W{pTJc}xnj+v<47`eKinUX(0peFF+G*E;D>vbX^z_@1 z;LLJ%Reils&TfH&XD|RctD|k`)vbND{Z|`V(zgX?A^9d23eL z_CGF5S>t7u+19Q7mmZ)$7L)cb^A($<4&Yy;|4Lgy0heW&*_dsJz0JPE-eCvXFdO-g zuS;1F|EqHBgRC+C-v{AxOxoIWIZe+MJTXaWL{b)nZoMYEEt7ic#B7lp`JRWfP#WDY zYjmqfKpx|x24R=8$P;|e^IVENhgKI)ENK6EEO{&b_3t^r ze#YNTLlEy~3+rg0oJAs+%k;b`xp>9|3I_CFJcQ>p+5M<{aLji`ixPG7|CfEUh$dQW z_hkY9f8}!aYR+Z|0g3z~OOUcVeM0%f(?Ksj!@da`B5&bgdpnDo(F12;lEsqI{Vmo) z0dC#;uDs{&jQ26g{d+FWl#r|;*w#&-)FlZ*>dzQ`^kn}R*#0-GI|UFq+jUAtS&H0* zicz(;+s5ohwWInb#jD{V}(JD8S-bUS{7_{H$M8Om6@ zg&w!k;{kd+NRP+p@jN}gNROB3@diDG5|eUMJ)6SsBIK=y5MS9;e4M z^!N%rUZKY~=*}`Qe$&4|HH*8{(#V5yfEaYcV zeg?}s1^GJ4&u01Sk#C}W11s!6zLoOLte_qFxs-2bMe~qfNcs7!cmnbrlwZtBijZGU z`DLuM7Wq|_U%|$eAitLKCo%OT=o%d@tJx-bieGJqqX2aA8*PX(siRp&X%(+gaf<$g)097-*)K%?Gg1Mbmogbudl;+6Pr8U*gy+RDnrOO$DJIAXmoNd^b*Y(7 zyo_~7moql03capnH0ITex!ow;C`#8eHhB$7pB1H>8B?24x?PlRWo*hyl-wx|cD2I!X_M*+?E0l@BwPw+f~GqVzZb%}41OQF;n(8&UeaC_RVQC!_QwQF@-S zX^kj-Rg_+2Y357jf_@Nwbo?!2vuC67Bhlp;V|pD*e-fpSL9!2}zlqXc7%NeVk3vQF>UE z9^{NKM(J@;dK7KXldwI>xwZCNzJSr6;H2sVFPDSYjlunku zh_-PkeMPjr1jsMacrWvWE@>N&;sMe6DkwY|r8h+BbJ<;-O&fY-HFF9LqKlOc({hrIz_cxp^`UcY9a<-V>`H-_ESJUW! zvKve#NE7bqboGp6`>0dbWeH-atIa~fV(!X)mc@_0L&KdRl7iServPpKS z0DrEsOsbS7NN&j^&6IShQEHLqNDHJTl22MGt&vWaPLDx>?2(E&O;2e{F$|SgHzh=^hOfs1CM<)H1N&kW#;_Pu|leQ}IWn8+7OV@Gfvs}8J zOLuc=AD15D5?uZLTzZB}pXbt-xb$T%eU(dJl;^i3|k&7~189pTasxbzb){hUj` z;?nQ9^f8zI&ZU2IP{z2Ac9l%w4L*r6rCX7B9$W5%X;O;V3Lj=jDP1D!Lljq*hxOAj454goe$O-2NSG}Fm|d> zYT;979%ih|2h&{eeP}$N)W(z_Ggj_{ZC2i8timVFVR^q~Y^@I_8$K4BxRT)PC?&?hZnl~-^!(FYT+T!WSA zla?~&1}t75Z2Y)eIa`gt0Lzp+Idk}6`jvY*tMN&lOnHDa-3QyRJi_^6tRbd64>qrQ zinB_ew3;c;apv;DA5fm>Y^qOM!;}{}ALoOcpuC8V>t5k(ybnHt@)~C+``{)h-++qo zNhh<)w>WF_NvAO79nSK7QWsOc%h?7W+y~`*P?SFDRHpohL!`m4wNptLMslnMdDX-hvoR2uW8a>WrbN`DydsDf~EQB!i?a0 zCOIiGJN0HzrEI@K-Mbxza~6_3qlA)tqm+^YV;m)gMj0hVMmZ(LMg=8KV>~4# zMkOVsMinLFjA}~Cj2cSHjR}-g7%oc28xtw1G$v6}Wwl6s?+k_MxVl18JQk|tvgC0=7LCC$b>N?MHhl(ZTPC}}emQqpcL zqGXP-n3B215=!P79hA&BmQu37SVqZ0!$-*?V>u;@jZR9I7%M30Fji8s)L2EyGGjF* zKI0@xmK$p*=`_|-vcgzL$x35AC98}Ll&m&RrsO2!6iU_@U6iafHd3?S%+$ano;KAwLyDt;HKK3BcKKB0f#>zV3q5a zBs*1Dod7ng*LeNXWUorA*WT=*s&u&L7QE`@P)UMO%q}qiAch+RF5sM0vU-8Tp>M!w-y9y?Fe% zQRFEcsd^O|r>AJ7>NRA>dCnNA`quH|z@Q+3d0__Td4zdU5_8!VUXISigzohW`0mZd zcU=~~z5fB<)miw?v&!T3&kFo&Q}{og!2j6<{-00a|I+c}&Nl=N&IAo588j4S(xAA) zD?r0ISwYAPB;00_kXpKieL9xvj3Y+g^rOQ@LFr6M8ZnAXU6Mo-QKH{Y$Q?3D$?i~1 znSO^rx6mwB>vvMonBY-YN^pEFK`GC`sWcNO)fM&tr}4zsONg&`C6L0_Rf5(?2!uy{ z#&DFb5{yA@zOxxT8!-w!@-s$Z>39=^ViUy?OtiA!aF$e<)#WCh2e^?x;!(@NGcuP% zLA8Dlp-kBc`n|{km&ydiw|LXYh1AGJ&=auglg6U4+JvjsKiJ5rY zUEvwPdn)05HR1huLI`LhZ#W>8dHT?0M@S~SNG6MpI_oVQO7tfPHD|k3F4Ol@S>RWp zV^58?8c2;(A39X^7A+lp$DyhbWXkoOhpG;zWMP6yBr$)Yj!ihpf+vChv<&>GWa95| zg=eDk407I{ApD;O{uEF4NP@|DIIj{+E{N5fBT0GCPoM)i^Z(XF#w=pXWJ=020{fH9 zVyXVDC^nhJa{W0`oI=x8>CyHZl_itSrV0AzsL3Sc^NFlm$CjVXI>3y)Va(5q`*{I}Jxcd;(ERN8aSVJdbpkGz!CdL&PtzrPm#Lm4I9Gtu9_=iDP0sxbk#DFbeO zCfov7cs)8dtAIWuR>9dA`WtB^3C}9wO4*^HJq~E-e2?;UZHX#Lvqn7jr)x_!N9XxWlUOZK`ZiE{8+0DSc`4ES4)n<}oSTxv zH_XW68(}KB0}B$vFU%NzUgq${uJAl`UaVl<+(ql=h)MF~!ypw)$L{>JST&$_zmZo8 z4*(j#qwa?qu;?q&j|%$Mn&g(~-($lj-%E)PrHOuJ`u9b@X=cCi`VZ3CQltNniZpvJ z{YR7?_ON|`PYdM&u~3#I2B_+HR_zuZ;pU!G|)6Qlq``X6q-F{ z`;F!jz(=9oW8ZJImy}DAb3RoJ-E=X%7*IhG+_iv06&N<4c&f@DK7O2LYLWg^nyEve z9pDdn?B$;kGv!On)bfm(TADdiC9ZH0W@-g$nG+NBE;H9Ijfwh|i9uFn4APl7NU1Aa zi_Rx;D1${9tNEKoZbU8w(xt%R-pHG`5^ zlK{Ck1LW#VkmFq85`bI}3FA?K{4GH4NEmopHAmpU9mXm_rf~XU5(?=Vqo@>S!f*=1 zJ&aXBz{@;pZBSWx&~SD}rIKG_UMt}sRncBXT?vDQ6(%%z&}OP|W1>e{$!a!tLq~5Q z6deM*F=aZCKRJQ?DH+JG%S67+6+Q{bZzQFCGT#1OVs#*bL|QvSIvW~04qwv{34n2D+ zu=rCt3r!!%u!DyVk4lPGJ34a6$bSY?=AbEq;x&qhu}+V)KcRft{@PMf!-r6}<1hwC z6w^RxWX;yyqTQe3xLU=6a0V?ODKB{_JeoQ zjIvaC zl|G^~PvC8g7hA1!5-d13g9Y0%=dRinuE*=!$=WvJ^&3pGL82YPE-XfV!hRYB!+?Dl zy8=&H`FldI4kUm?GJy1F0;zF@%K+p&0@4H^Hv`CCnp1)T7V4kn>p#N|!k_;sgOR;| zpD5+)w@@`+jFJysX1z#Tmu|n|>=_m!8cSdh&%j_X6N3q^@G=avgBBHO$lFpFk?V1gU@LL3kF$otH6b{Y8w3 z!P8nfU*Kf^pr0;g33(&TEP1Q4~2R>oSJ9VWk#5bkWVIJvh9StoY@k zXTE4M8uTx6)LkKffI)(M>Q3={$k;UfOQy(NnS^v9@v=G@c5=JI1r{$SyTX?f6<6ah zO=2w=?M0KBDQ_A6laSrK#4;9(*mPrmAr>)C5-pN&qX79NNmsE<@toocR{_}djCLc} zl6-y{&~}n|;tUwiyUkF7IcLI9O7Wv`8_2=LtU+hO_2B#AdRR8d3Vb->y$-{8$_d+4 zVg-?4Q4(gX+>FW`x`{?SG*bSgxxy;-ubS+_VW>p~ZbGC}aa|S_Q(a*z1=Eijg)<iD=Uo|4MR7XfEw#bCl>u9<25-p-%wboJ*jF_yZGjxnRtD@V1Nke7l3DO7 ziIQ6VRlbrhJ8viyUUn~zoDk&4L9)d@TpdYg-%VNU^SHumz`k3VtV*1g?*WearqK)Z z*GxV+0X;2>MQu*~b!rmt4L2y_sRmWTxlsQW52)CB0uYYqEyNIY zOXu$$S%^({g;%2gy~JPP5WfY)NIx87xEg`y+rkEX2R5MlN(SLP$o0F~Qhu09jzsAw zmGbmqzLY^hBA+kv{!eoXkyafFp6uro?|1O7)Ld^rBh79s|dG}S! zP-ju*YG&Bbcz@O?GhN}+QT?#cP^aLXqb8#hs(md*!>X{dJPou(DS)XWZWnpfX>ZPb z=&(`TU^{F$8??i)RLGS!*o8cdv(y=e#-#^~phq(adMFE(S+4Lx^naWwh|fMqEB|}I zg<^6EWVFLDH8gbv`uBy5o_Rt^Mn~rY(aNl7ExlK!|A2Rgd#_;>aG;8E{YR+iycQR& zNdD<9NXx;-qj2V^y-NQH0U9yoIuG(BQ+18$g3FatXF$L!r!EhLD|ccyP1idtV)thf z`&bsSwXX0g5c?FPEe(0oKLxEgpoRp!D-c@lq~nD`zB{<#p)Ux?w~7sLNjI4OGp9WweWei_8@Iug(ict9~6=k0?; z{)X>c%Jy8xu(K=fy`BYCY@m8?V4XKI=`w7lN_uY+b)`sm1#RTgbl=Q$MC^hN=R}wk z^0ueKv7XSqm+61tW!Q@a#NnR*v&`kSX(c~In7|QKw*YXN{xM&T`xXFq6zJoAj72Uk zu%(mxY!6*?gK6R7>OpcZ$25UX_WxrIS5xFI<~W#lMrksZ(p6CtHW zAvq1Rys}dAo8!kxosR@nvEL5hd~GWAC^37ewvrEoEykrC3ol%yOULUAS$NgC!jpm5 zmuXo^wIBThSp5?@$PNYS|Hb!p-)hR>ZLIrtW;jK8m}dGVMqcn{ymET&k;W~zvSI(N z*kj^q4n*T(SbWUPCGuq>v$u14vp~O8-X}^%;gT=I)7o=BnjoY`X%E^-%Sup zBV%9&UN|ZB2voJi&zEqe$zsq~Ga2+k7K7?t;YKj%6-I%WPJq2iHrG1sJ;YX8LRbW< zhPKk$z8F#j6DUjyrA~Vs`%^gh(4ZUOFO!3;k@9>s3I1!D;9t%H-{1-tqyOtfwN&!a z)c}r=47iqWIg+o@G>B88t7S0}cVQxu2VGZLDAFu|Gp`HI5Z_5VB2~KYX3&w?_7{o3 zjniYNuHE-AnwGmT6)Pl#Y)%B0MB-bed&DF_*C|`+LYT!v+`>dYxz-P45z*)hH-U(6 zie6*^u9r;<@TRCC3vj*MeV?!Z$m}yMz&El+X>x^6!zgbt8K!m#-njwHIPuA`q^k`7UK)A_fq5pO!`rpa|>~)0~q5nJNukwBXzR?6M>^bcz@;we= zObYayWC$;!H_*(<(>Kz?PW@(T8LhX=^u5%Ot+y+LhqZ#2O_?r*%a-6ggl^qg=niM1 z`<*Own_b~Np!;3Xi@1G@#qC3)W}2um)Fxbcxkc{2AIuh+2biIW%!BX-@cu~Fur03e zsi;089Jbp?Vc(uy36Egx=@|vd z;~dL>bJ-Qr%3xs9rK2kAl%YnyL&hNH<^zXKJ>|EW4!p~>bbQ*XwcEneR#7AoHxw<7 zeNRxHl+VLiq_w)jT_EiTLZj7zvO6;#Ffd<_Fw7|cg3I5$I@N-<@3iSUK z*+7m@;u=4C5FALY;Jq;Tw5E<8G90m*+1MUq(y{#@*~!x%0<>AQp`l{F{;()QDN@AL zD4u>q*iCEygpHC)`zM8tZmEB{d3f)fX{}5v@Jvlr=0P)UlN4*4Wb^Q#LTxVn5dsrX zVl_a80XU{5V3Px?*auCr_Cap359*5T428S)GME{OZp2zl`5==izszFFTvvE4nDSe4 zCRq=7@&tIYUj|)y?ma#5XHS!mkXT6iaqfQShkYNUpd)AyV zq4^N+B2jfDZfxY6=Yi;ti@?_SA7zgJ`>gTjyTY^4|6?)!?wN+acZ|Yp9SW8QXD{e3bqRYa_sxrN@pV(-EkfTZ&A=3hip%kA}V0YfVfeDNEBU~ zs1Wbq4wjh731(CP2T>Xp6mBtF`2Q&r|375mzrYo)1O9)ZYPJCAe@-k7yYM)K-|o;q zFGGR|exCk?L^fZ4K9McZzlbab!M$k<=-*g|HT`oI(1otB5B>ikn5F~h3n`x25C_fc zd<=KA=}~1V&3yeu0*9CWDTbyH(hD-y`b#pX#cgd1@V_$w|2+%vB3F1R#@NFtZgU>S z_^K%lBH~6q5GSGBtUzhnC5kfrWkSq3nU*nLJw*4W5dORaxr1^YF?Gu535RhMSOn)6zOo~9oZ;vngjgtDGsV= zIijjsAED*AmrxgW_8p;2CRy7T`hLP9_LfXyZ^$BcnJYXO@NT1Z%C}(f!zQuGLu2c} z*wU+Bxx!5eJ= z{8JNfrdhON)0SCGIIzXZYcdZd!9AP_?tv_DD_mh6;2y=_6p+|Ffcpi&?IN>GJJ2o9 z!(U(hJQD{T#aPXGbbBL@97wpU1-)Nn9`%9s2m@dU`n=v$p!j$zox&#sDYV#VYzk!& zt19((g$Ps$tB9|4te2n6eEAW9Z|Y!Sr7OJHI#^ic3O`SPpXLgDK01f~CC2|1B-}jL z#k9k5JL=R&`(;J?ujOP24BpvME0Sx2?ltwy2LicqGmLQ*!N#F9-8sPJ#^1;z`{<%U zKu$$@ZSo3USvdjWuZ10O&+yriMGL-9OJ~GWS-fBE3ReRE&v6C%Gz|QI3;fNvO}aXT z$Ym+h7gEZUvX(M^A)z}F9H8(H1#f6~2$i`H3yMNKxGe#IpHCwAg-isW%R=xZSJ;LA zUnEnsb#H}6EmwsJfOy- z5hn>r7rX`12jiWUqbF;!evBGLTz;zM6;Jn^v68I_Zi9Zn_gxmd@yTC0yPwaZW{oR6 z71X@MDJm!o_a8uwkoET=>m>19+VUbv{EI^3-A51Y3Mw#2Y9gkm(e~RBPy#AqdbSC} zwY@K~p_}{&3gtT~vZqnd%>QLX_7t@QS2P2fP<-*U!No9%Zee^a zNymXqI$p_|+V!sRc;NoJ&@`t*PXA7FN_dJ>5hwYFWSDS|E5CFqSp>w+aA~*%(}|NY zsxP7IX(Wr~`afv0C_7&Nrw~hr^A)jh@cE#{S9~Ly&ezwn@Y&!BpA3B7};N(tX=U3npkY_+gEFG$aBd*23`QL3fj`!O=G^SQoy=Dbk$xl)1qj@vvt~ zevVC3u?NIBJq`*<;j>u_KE8BL=izs=;BRz=H=zIbshYU}{~8hYuI%1FRD8B;_5Ts4fD_!@kmTNUT6iDnuy+N_3c$R@f_W>! z#A3Qt0Sn(tfIu^P<6OuZ3ui;=uzx0C7bh<@obC$WN5kW5Ve18mK??Y$@PpL)nNpLU>nXo``D2!h+3Dd##ty8Ffu;$ z9`n_5^VJIT)$xf}E7M-Z*Uc8nzt5!cgDe`)aE0$DD)1pFD5D%c1GRD=CkOc`o$fQk zS5v<~3&Zhg5cYI}uxG?t5v~Gso%^u+s5_`^K~y+@_5Gmges-8hEEIU&$Bu5nIc@Rk ztI%>4PK2@h>wFzwgVSSQKoQB7w^`@gC~o;S>qLls-(@g}IG-B9RhT`}b7e$q4$P4&Q%UeENrIP40#Nl*OmBT;T_Z z>VG9?`&moWp0h;lIht*pSXtxYBYQwgj`z>3@ix1{SJ8Nmap*6t#UEdlmLT*00oSYB G^9lf$Pnf#^ literal 16317 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 diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf index 165b4821c57ac47926cda2e9956358c00342cd60..fcc5ea7681b3f4ccf9ce29c46986bcb0502b2e9e 100644 GIT binary patch delta 20329 zcmV)CK*GQDqXCAc0e?eRQzTyY004La&AoYW99NnrmM@RW%DQm_1W6Ui;tdi&fdEMA z81WD#Dq3oFQ{7Uxh~*T3DiRWaLRS?ia%S7hrLEra%!F;l*n2r_vo*Urw%hHt!*;m6 z_IP^i^*VOL4in^vitwyA*6R%)5sp<&>>rMp*f9M2zL&?#%zr8tx<}Pv2CI{aDk+wlwXa(5?6!9$xqJpK&NT0Dwkr3|Y&MS^e}xCQT5Ya0*0x$} z_01v;SXr)bw|`zfe%u{(b;TcaYrC<|L$0n&SJ$f>)y-COdiLxr23lRYSgSWSDy>&4 zTU+aED-{}U`reu5o%+g0A6M>H&(zi{%{wnm2MwuDYpu0jedW?>eYsk^wqCtgJXgFF z^yk*H2{m2~ZuAx9XI7~9*_Han^j4$3y1jyXs$nSZtbcZ)A-1-c*VmeNs*P8+H$U2} zf4s@9f>LU;(x_Hi^>7QXjOy1bo42{WNsbYDiJS*>l z3SXM0hpRknw*>F+6)jiTo_PD~XWqGVFoNIhq(9Tk`{U)E?xN`C4)kb}5 zxqk2FJB|A7MrEUZx3al*^UccL%8l1^;)^um*-F!Dw(v;Iwav9wp?|Wv`r2J!<7;cpR&}%5u=p&)061Hv znr80O)vK>vz4h+bZ{2wJ((A7|G|Du6iRw_JircA%Mi}7wt;X72Jjsi65%X?+ZFTI{ zt=simt@^FiYK;m3xm$Ot>s!WFy=l%~n7fdb*IZp|Zmn1DCvISbRyFbUaWx>i`MYt_IvlR0?b5j#GE}}o-yWT zW)hYd)kl+~gX2QW+q!8B%hnUNVcWW6>ls_m*}AaJAzL4|jS<@%waqcx95*!$uTe{B zsLTF_$Yjz~VB|$%U_uo3;qRnKI*z3Yp?_b}bb8;y5Xq|o$GVBqq+>jud7Vq0)ZCvK z?aJes_VVNFT6<+l)WqFEN7Ei()3uX@0ZnVKE*VQ^&8%6EYx*@qKiRILt8VB{>IHPY z{dnd}k=Aav*On4Nvjm!bgl2}0t6g|JgNC`Pwv?)+W|q>m^vqJGmYG?~*0M88xqn)2 zX342J{Pn(efdAb|qDK+~{K2s4LY9EmytM*)(X2M7H|}p$Rz3o_=B95{TiaW2-G9eD z*IZajUw z(J#OGRln62y`k~$L`AHMs#q2)iQ84&M=P&XmS$%!SbR5!T#giQqf0mDrhm&bGYiwp z+iUBswar0p=il{oV|(*Jq{yRi@AB)F06!Og9MnD@PGa_L8J({5T>vI3xNR?R17+%^+)uo6GTr;E%~Leg!83H z=&3L1%3q44InYj)#J9!6&)d$9#DstDlU$B*ooV_`Y8{^ud*@m)^bff&3M< z?M<-!`sRs~#b2iqS?XN7eCbB<8qMm7 zqTBGKKe#_6?&d5@L}#1Z%k+en(foL2yLIO*xNsBCG`E z`WSGx^&2RgDuQxW8+R+~p&P?5l)Z5Wtzd)`#ZLYFC-l7Apo^(D@bTJe>&{g1PIc|} zomTg2Q@0bvUoUd=i}H`x>!R129?5ea#d`hr+NOH#PJbBSMg)ROH_qbit*%$U)vPwY zMqQ_RLZibEk4pCH^;xiw{^l5>xYZsZ1TF~toH*&;`kPH2?L^TX!-IB{=lfdiegHAt zM)2^Q9#1mzVAS8_K{oWW)@s3pd@R5Ga&dEeJ&d<*6G1lgU#{acAlEiFgM#mS?>(5E zp^I)+8-E+k;-OBLoSrUj;}wGr7xD6MS649=ig@!ytnx4?R*TL0Mzu%-tns97p7pQg zpsySmohwBws5dIbW)+kJ6M40Wb#tp&ulWNhV+2Dm(t1z*sel;BD~8@ybsZGt*MIIo zL$BQH-2udSE>LhNuQ@_EWqqevgKo-2It(3xQh)d&{x1$;3Dh5ag`b*-_5cQ`JnP;} z@O(O4b$ddPPURYI)5YZs%t&PKI$r@o3F=yz701UI#^jEaEQsWT+} zJI-#efkHET2-r}^xjI#JuXyssVgP+i@9i~ktmO}U9npcX$aH^lL;{Z?r0{?PizTz;6n-JJID)dhm6e(8TxeM4cYp z$c*=Dd>R$pzXO^Won_sIiBYTI74;yj^qfDg1&^XA3rMz#@_O&-uhv(#Nv%ka={2cg zynO%qsyi7mAp*fFhT9G=B}$2cdpQBh#(xBGs#v`TE!Apu^__qy((H-d;&bO}r$JsW zf>(7IJm3|-QiPiIVy8yIg!7?5Nbmp<4583Tq8DxhDXX1uc~US~{Iz%J)Pb>j*F71C z4ax-R@FUMcmqzmE@u}l@m|=G8{UQ%Y-*@j%o-Zx2Wd72$E2f*9m5plR1~YkU<9|LR zdhwA_Szi~o2STeLT2Hf9a3oypt|WRdm@n9FQ-7^IhqW@6zq!%;SUy>Zu9b&vRAog@ z6V8Be28FE;<%R`T&(@f&kK5LSZSAwIN!!|Q>j!PUXqzQlKkAgAm?L#c{s6vS;I*`V zNE|+b&oMDDh;_6s3cQZS3eXS(w10xeGFe$cCu}SE%w0jhcj|LqMJKAF_&{t}?POI< zB|g~@ZKo>QSyJ*%*;C0Wr=6~fb@9DNQ>jOfrqcLi9$gmbp||r@s5jQ3gL$}Nv1a$ zXb?*3Cr_8HO7Z~K>Q>n_2A=KiCe5VrB*~W>u8JiwHTtHYTd~?BuWOd0iIkScL(noB z6i->rOldjIB9*4PlHP}vH0d0DUDD9fU~O=QzGx*q;IE|5#C1uv>zmhW-eP*V5a8vy ztod_&Sx?KsNu%_U)q-ldDt|7C%i_v#^zsB`QvFQEDhQu)l%8l_oRf>@RM5wV^*m|$ z^icp>7o>rPDmq0Qb2s|tW*djgOG9=DKyAP;+j z=fbQ49@)nS&p8R65tHZ)DFquBIme%q77b>97*HPI6RVW^$=$opmJ>T8zrDNLJ_wwJ zk#{(ZJY&fs1Ii425%LTld7pyfh1GsXt=L#8d%KHg>9eb7*XY5J~ynT7rzFe=bS1U~VtV@js>~*YqoKMn! z&!k^3L21%y@p(U;@IUw52Jd#fpPuvL{K9DGp6={8-nkY}2)~mR|MGd1_t=j0zOoCH z`Lp`mIir0394YXVqxx8WG!Mo5#Q21PDWYd>-L?(KHd3~c#ze7=oNX3tV~E5NW84`N zFf;a{$&qCjm8flC=8Z%}x@` zSbr7PAezYdPUsHJWF00Tuwz@5RCF_89|;(NO_Ld43EhTbpJbE2RMSh=kBCy6x|KYM zrq<&bDbr*%t8G`sx3vAQic?knbR}`%vi5L;r~~Xs0@sNu*M~97%s@`ELh=HCRVGMY zn09SXX=$T`p^~PcgJJVanV?Ll_NcdG)ACzQSR|Y8Htu_~u{hKMsG9tigUU)@CZRt* z%{`tZ=UkRBE6R{5E?KWN8ubRmy4P$N#vv@ASq>^nB0%g3nHC?Nn97HfY+qsyv8)G%x5}YJM2)t6iwnYWR(rU z5^XyL>d&G{;oHPZ(l}+YqW~~Dh0EX+kh0eWOi(55$v(`dqgsJPnsiBj$Wu{()$BM4 zJV*5c?)0dh)F=P@-Ch0P+ui-??ke`N--RNS;$^D28T3lD%l=-_^hNA-owRC zI*^#(V8O?685QR1otilfiJ!O@bFl+Sy|h~>y7l7Jvl)~;{GucZ86N6s z(lAQ9C~F@;7iM&mko3fV4|jL}Z`{!fC}f^Dm2Vf{(0@n#RQ%U45q>KEXYmhd(qYb9 za6bVxNottyVODnxk0vCSXQc-K+yH2vk#S7gc>gJe!hglW^$uySh)wt`ZcveJl-lLK z%&Oo5G_7iDjb>}hZdO<7o2y%i)}6J+>XtOe^BfOad-D2`V2&t%l|<@;)84bhmD_XS ze*R=}W%ryXekDl)gSl2OIC(iGU~m+|mgJp8cub76$Yk*u*rO1JnQ=hQ3zEPRM6~gh z&=c+C&XY$^AH@XgO!%FfUB#P!fGH4u=U1z>%JzEe?Rx8Lm1gVpMtys$>dV<d9tMP8xst5i3L0$$w}zCo0C z=b0p|8m$ze;K+C+w}{hJJ10+d@@$$)w+G~@!BkiS75+DNcMW{-|IzO5e+;rWjN#=X z0BVQ`RU6+c!oL$k_Ao^pkzw=b9sm22`zH z=?ln|D*$IkrO^;;;zM@@2j&S^;NHGbBZP?XNTvBjmtF;MR9X-sk9Mw!jMWR5`r^5K zq>G1tN%oc+)sqf9rr<9X(EwWjC)Qj^sC?nSX-Rmx+FdOJK1U=H@FaIle1@f$6rdfz zll`NB=wQ_%^n_{sYXNx_2$oy zNCY{xV^5f#pE1fauD4+!+B-n3)Xz!Q?YMr%zLT-X!=+1~k;HDzrF~Y8nEeAiH@@ z|LcE^{{6`xOep%`4t@Hg4~}05(AT$S^{ukLHK%W#(|@<-^{oYkSjKx0PCbc~qeEoC zNaF47jpb^?C8MIEsB}AwL7;BMjXT36a3!oII?tAdebG;5tpps^<#@i2tyT2NYIOq>@zx zr%4lEj(=shQyy{keU6FThJ?#*KF9xCOv`x%Q7&tn+tshZ`xG@uq(!YS>^giA zV%RW*NrpXATdTG1H_0WixB*4N+SdC0VkJrHnpU;CnWRNH9i*76-`_;YPHt7|9EvOJ z75K`*pa%bb3vom1b!7&HuSpO+-2%j2-(3X}ny|nnnmQzgNAQ{0<0>48`h7AyLH&8?;j=>zzc}=8#l*+**5nq} z$DGgWV-!A;Ww%7kWZ=)7w%I*2?cDfD}0C{ot>2gw5u0( zK3h(>`qr0GJXy-R=b~^1=LbqT_gpU=zZtm{h z-`)Mq-Cdl2DKh%;_Hq2wFABef`}k61jek?^Q#fBSSsU@C$eCx_XQ;p`{0iOaG|Y(( z|NPm)HC%KK=fiwHUw9Sgi#Sj6`GvwL&R;BC!1tMDiy{b6S04E<@QhB$5Ca$(Cr17% z&R@ar&ol2j{*)f)7f(yc5!`9})!0P85}xSY)o^dcc+9)i#%87QbvR>E=%Z)T7=KYF zdZa~vCVKcH?nHMdD61~?>dVR;4L6U>(MToDvvASRH%G&LqjQv17NjYI3PtBCqEhl(4H=v zKN_?(4KXXEk|^2okMR(&V|`m{*?)Q@P24d^4eS+CKZ-$$WyP4$dR&22q=i`S52(VI zA<3MfsNDg@=p)FH%Xs3m5GHc+3{Uy#mOw zo@^{NnqoZ}48I&p3g|&w2HUSMnCJ-MawTwH@4Hl@8)$ApdvN`P;oYHIor?j070hnqq z9gy!>6Lv0G%w81_j12>Av(nmTk`Zj(EG32^ACU`MDM>BiZnkc$l7a1#I7#tUCKM&Q z25BjwA==D<`N<^9bl?_dwtqv*Mzd|gq{~sL_##bO3Kx~;r~fx*e!A4S&Az9;Qlg-k zbc4$Nm~{Q|fzKg=j9O5dUyz{etw>Ysxc&%)PsM;6l!va<8Dt!c>J_@g4~jVy%wK5$t`3})C2XH5r5a-lCFV*N&z#N zqoAk~P#uKVT6;D}{ZE({VRIDxW+5T2UV=jP_9o{y@Oa_8GW|QW>d)#bexVRgjJnu# zY+hQJW0#pE=P; z4CCXt=x3Locr9KNp1b1mqgQ5UI^R&N>9qHv3Rl>B3XwRQ%~k`6Ey{Zxf!lFsqqS1r z^M$>)ZY*55V9b~2jQRN)V}5bLSUi6Lk;BgqE?=0PG0t6BOnZ$TFpYGk+`S2i%(sn4R(V{j-*?OaQt2RU2Avq}kME~5kvR^IPTK;K~w zqVEandrUjgKJ|F#GLdGRMkRNGBeLd5yF{q~jxMF9PVm^|Fp{LP>2A(I8+@ugjeZX9 z(Dl_amwyUN`C5L4zKDqv`9HWc5R`>{wWeZ{s3c`RTOU^92E3|UebHOEqhp3kky9!e z^55I8x2nyHhgs!t=x}x!`7D~4t#>XKZx+Xz2wq;V7Tre0 z6v~Q2ikZ*75>a9$r+`;VEK8jW62pyY9PoDOS*ZJRzmti`9=j_??o_I^j_VU!!N}U1E1&D z>#e%S`$rYTcvbyDj5|6I!yeyjnA*(uAORy(z^vX|YbkHtZ5?^*UMamm_qgX)WuobA;qM3Kr-g&q2BW10s|#$0N9e z?MJlEO|h91MkM%hKP$Wgf?9(6LP*b3cv>>Jc)-I&fwWUY z1%Q%$=cE-N_2kpmvnM+v|31_x<7g?}!6+wym#`ptAdH~yZrgtpTTCE>(z>6pq>#sa zccmj)vD6oO!(#(G;voIT}j5@sg@%({ia&*+WX3w)=tqYK!{pg$fa z9z!6d&mMbD9ZwdP$Y*KsVw|6!flO?iFVCepO0Y0GFgB0`k=!S&A{x-!rfzJlBiiqnV z*^(wnt9X=bNymKEBJ}<23N7hmdgs$q4?jl{F<HHnT(vt@BEHzMy6O9 zLNkD7zr)Q2e@mjImyD8Gvc7FWWl2FfQp-L36q$ZXI+FO*bfofemXYgc*+I4+Cut{> zxB|s~4Y6o2sx+m{K=HO?Xgkbp$Cb8!*lAdDo*v<*`;?}*-wwl0E*WncWC>tX#u)d4 zCp8>tkfg}`loAk8h9VOgilo3oW{wGN2H$G8napJre{NSqyM5dab`ZDS@5F~YjAoPE z?1{|qLh*K^DT9Ci=vNLX9uT2+{c#~uF9AAYBH7HkdAHeWn0G-Pth?LzPTa-q zHkm25QCUX;CLuEyD&kuC^HH*Ea zBy8RJqQ*BV;xLa&(}mc$A`;7TLN6cn1fC@4S(ExANq>j#>ghdrEP94;i6+b>8* zswWhF^o8_!Ceyteegtg~PNW=gtn{5X#CIC^U?76|rhDMf6!8%PtV|9`mK!xXI|v-Q z83QML{gc8Y6agob*CR&)lQN9-nw=6Zj%osNq?}N zqJo`4_yh2gIj(#hCJIIK|M?Wk#09?@T?$K~j))W`CcYtVh|Ago3o;(k-MB?1y!!3x4IAqK_-wTK6%xzvsD{68^0A_rF~sYeQmFS}pYA76HFco%WX z^2)0rfJCFhaIY-hdu@6{M0GItdVd8-krszODHm_V-#wyg$Rd|&J|j;-_&x6Y3ou{ zD4IsMraziSIXGTBjMjRktS`^%%jJYD&3{li^J_O7H#cX_T)262>9kl&et&?&OP7~U zE9yJhmf)eN@7zKnAM&s#G#1=w7gplQK2c!!MhQ4%e|1I)!|Fg6NJYjes?(A}OgU4j z%Q`Lo*c2tlW|5@Geod6b~lj zila)0R{e2QiC+ltF)3vz`+uHDMX$v%^_&c*WBbyDJu|O_jLWw;EMJP-32g1KQ9PnV z8pJO`h@4{)h!qwc8W1|;#XXUFewO10;ynYr%3N~EQD@9a!gDX0cU>nxDazvFJMDR{ zQt@m`V|$AvG=bvZiYYTVh>$cE6iNu2>YGA)AUX}v%h-~Jbw@vTjSFf5Rh zN+U!XyG14}#PH9)k-?%*wa|K1{Sm|5(Osq}p=U0?{PKdie2BhYetD6O77gT-R75Jb zTSTPtN(puDaZjj)41e@)rvPP=UHViJI*6~1Dw241uM@`%{Ew00ZTKjbZkZ==<_xPD zXhjz&7Y^ZU1jajVL~43gE3loGQf^5*Eve0=&4IL8VeCXwYIV2nFUPR+mW&grB4lHg zH;wT~=di-9;*Hk&VzZ51$3>QB`A^h0-)(GHZ6p9gylhnww|`sLTmm7HKnoyRCUR8f+lsmf5f{8Oq795x! zBr_gR_#K*;7JuCwA-#>l-8ryA_1qhYP(80yxpq$wx(i9SYXCaQRh`k)SSlHf&!-d; z1VkC1A1Jmw#u|^E8mD+vS~fmE9+kwyW)zJcU!_GOK{3o(lNBgmiL+*Kz??OU10*Vx zY?Ry_iHD+NVac4zKY4V`gx)Jh{PUl<{Btly11V2Qh<|@}3o0FpVe_rZCgSfw0q??c z?;&(h@g5I1sP>2UsW$=mNp3nMUDZxNwrid|i^P|=p;(n=33;ZHX>|y~*-3=}hU%F3 zsU^KJ=Zd2|NkY#fz@Ox|G943^AiQT1k-kV$Ch6=B4JWDi{d7zS{Uise=ZAhm?_nL0 zV54q#_9KA)iZE5ir*?NgO6HZ9wrNEtwy}^4TV_}guR-#S;6!s+G^Hy(eCL2kI zpe9fMOHgEmz329rEQAzTrGOI2TwM$k+ZDqpuYazy6N{0EsieB0;|DQx$f*d@0V{?_ zIimSHHgCK2{V~3)w*b^2FBf~ndeI7siCk?-uU)uA=2(F0P!lgwp+mHRVqFh)A=Ib^ zJ<+o`ZfMD|d?Q!cLm*0*2FRQ7DO zCdC<&y|!VvMu_!>UigHRu?Q2SGf_asPeh;l8D%JZP<;BZDv$<~O^CxI{}77Vp?`SZ zt`Qgs3sW*N*H}Dn*929A5|b%$62oU0vbc$LT@J6)VQF>bdl>!z8f3Y_!PoT@?=2bT ziTD1zWs*k;%}9VXyktET7T2t5nE@4o(!d;t@`4rB=K| zUzaWVy22UBuYzxHVqaZF1uVM~W`8+iOA*=J8bYl+>;+jpl+0fC@j&Y(Ns#%-A$WmI z!iXJBNv>njho{Hlm!Fb+Z^`Vj^87n4LRIJVV|PEFGTSM*@nm)eks+W^CP>msQo8&N z78+DQNd2Q*9={zyU>0~*JVeZKn7^d*lO=f^#CS*ezlBa@l$s%>(h<`j~V9Jz- zGK-;+G$#K`WHJ0#c6a}s-Ca1du{487Joja0zaLmM5&CQ87ypjC}n6mg(~zRNUbT8Y{;CMTHzuJ zbET}8U=t{X2G~!qNg0oaO5gDkY=V4BlzIs^^hsdTZ0zp-i@Uo%Ryk5TOdlx#Beb0D zrfMn20LesQ-UH;gVkvWL`U6NgI03SWq=%QphXPSL5}M+wcum2YY=7C69L}@NR5t1f zIL|wi&0?~T54Z&>HOhos(z6F{J<(KLIxRM$skrt`4*vq=x@fe{RHE&C!qGY~oPHCS zf-ku~0!_zMlH)S+J5w?@%0S^P;6h|kYIa8u@W`159S+5jWNYH-&)^a{`m}UlD1Y-{7&j5V+MSSn2g@w5W+mk`^hwITs;3p)xHbL3jU3z)8|TjP z&Z@M<>Z$nds>Lq<&UD;xwM*k-Yzx*y2qWzB&)t=k0u4L<^Y&?Vfi6SSXuDN*7xsT! z>HMD8=N->#a>mW1SuB>8?$S+o-r#89le_FL1;@~- zv0!(pMCaY5aAo+yuA3w8f^0zALF@vSq7JABf>aS(kbl<94Ad@G26?O#8PG#J0}hhR zM99mDFk3Q~hL?tFLo@V6F$@&-EZqkGpfg)q^w`pvLSC3`FKYcEFLH2VOYT-d=C4&7 zbxcqmW(T;qFVR}hi@nIgTXD4w+WdEt+M-oj0SFo{J{PAU|B zN(E%2lp_34;oqVH3OJI|(kSIa1M0Eo6zB2USNH*NOwzU#o;aNun=T70sK`K!f`(re zq6SKqDnt#JQu0*iZ6n6KZ6l0$mNI=3NuT-bn8Y-G3WAUrD%t)2yrd1zogAl$S30hMNU)6o2;# z#EDW4XBj7oIDF6qNWcgYAxR>V!x_2eV$L0b%bS~P4o*W*1|Po*`{wbxl&yrfUCRJ# z6zc?g6dxcNNl84~sTmopGunk^3;D&Z_P{Z88$y+qm*My(R1;+7^dp-n#$y8cNPi|} zK9Z1@r8eUyqt=5-o+fCTX5U}b&Z&=aoha2?A z$R4@|!LK1|YOs=7|ES__52nzyP%na5q3f)y;z1P%|fo7vowlqsagZFlVxF1eg}_ zESNWi5nuk2m66h7d!mo$3`XRDcnl>9a+RQXMPZ3}&*_2w-PlWegVHZ~^I1*qA}jh6 zZ^&cg?YYc@4c^L|;%a((3fGWj^g{Tk_d7fMtHXj$v3Eax5VC7G^Zn`m>;?f_8%k-h`Zrkq3so}$!!q5mo}K!%T|N8x4%pCvdu0SMUs24X3!!r^RCSy1TkdVPdk)_do< z$5JNaZGIDq8AXy~87>MBPaII{5jnAQ@qkcDIKm5dSaFpd9fExj<2yQ#+`w!2Nw`q( zjt;afg!DoldtKjmdREiN-}(m8AtK;mN)p+My!&1_BVZ;Aujza{puFXrcGj3+FpVOn1H~oDFX+z~Caf3TbEnLi( zdpkTinhh`ZY}Eah*(>bUt=simt@c|d?OBl1|^1kk)1an3z zj_n}M(NNL?VSia?!8cW4265bnK4P0PyT7Lw4njW+*J?eAzZ0~sgMWc;yowx*Na)P# zJK|D?yRr)jJO(D!ZIIZc%=ZHo7_Z{M8{N;BNWP>!+d&F^ zBqwklKYelpKC1)pPt8598PY>FUpDlCe+&;*10EA32Y-d9Ml8=(w^iE^7)f|)gf;>_ zr3CfMivBQJ9vd*%Hxaatok#`e+R9+*&ox`1*S34&_$7tyO={bu+EuwxH4%0urQ8Su zVj}F>8j{+$4{Zfy1!9G{0Kz$;ofS*G5uvf2n$x*oOCaZVBL zWuxE@E`M%@ei}P-C?bYzPE$c1-D$P9E>2H>{PD+UE35V8>e-e0#&mgRW?{Or!fAU} z8f#mv>FT`-DHS=#dbcQWns4w{nvoN3ZqAsSr?kB1a^X8N=4UUkz`{4+O}&NlGAmbZ zG(VP4VjY1H_$o41eTNj7hl9PT_zPb)}Bl=5bp;;T)Iy zXKNa^h&M1JQpiY~#@2ssTH3@x@j?-w!}uJ*r-aWjd`@EfH%wQ{%Df6|gV1s$(hA;D zOV=sutdYNj{9QBw5~4stt_4E{1YkFntbtUr-^cuQ zw13YQ;&3vggMk-$cISbygnU#9{H>YGpb*IfLL+iGeX_M=@t>N72rekV6U%1JzLtO{ zra(FsbmUozjt*@R;D@wkaT7yO&x}wjEP{~rNoH*wN7mL%dmoCRp^@_30knHzDKRz9 z;}$^}!rO5lK}iC%!u9#HmIjvwY6CO$MSn(>0xl)hIiJK<)iRjeljQa(%NMt%KSmWf zIHt0=D=KdI{Qv>quPDuyUAgVp#giSq88bKEAt>Jrg7Ou{m2uR_d^?ey)H$UyQZ&iE=8@@z7j~qR9DkI{ z0@W|DcVIqp#aQnF1Kz@pFz<%l%Aowq+5;0y^&R**SpY87McPyjd5+VtSCUH>!hSw0 z9sl7}9%b1j8`ZVMH5)BSy&dLJu{|!jMd#E0Wnmu0W-?#lJ*q&_t?3UG<=_NGW=|3( za6h>mcR48&SRy)W*_{{m@~|gh7JpqKF7P-h`>>f)Lk^*)VNFd;O{k{<1M)h-3envU z6Z^thyv8?zHNHvYFQTu3`0}d}D9BAv+DSO!x!UMs&_=@%?-&;S`6q+O6VCcU*U9NA zr<3tze6~B&9&S>;-_P3SFeZpRDXvJyQlg7S=Y`IgIOmb47$(m3$q2%4@_!s-!o!2i zIAm36mtS!?(LmCg#->6|WETQRM;Fa=0Yc9G0th+R86jY~yl$jT0wMTD)yc|slmSk7 zE6SchS%zu9ui%7qL8Q&wDH*w0(gi^&lsQ58z?+wA$AJPCsgEgzmE5+MyncO@u<=&DzoTWMQ{e}5b!Fw({JYPD8D z9J2?Z5k<}qH|UR5A#@Fe>ihy8xsm<&6v-xZ5rU$!P6^kM@DnQOjY-uA5$ftg({)bq z_x1wa`s()fA~VF_k66EG$35UN?7aI!D(K?8`w7(r6lNKlWPX3cip< zn?x$>UZn{EQ!&V@H3UoLyf-M_@aue}V-%8kFV{MZ#I&7Z}yjwd2cq7d2bdd>Xvygc7xHM*e&zkY$WsEtP7GoWZs*<&`syk zugrT$ybl!x_I=@PI=~9ub-%G>(0Xo$zG&S~1W~U0zx^Dt;Jx($MVJkynYP>)m3VLg zh26n>L%yGj;eQ!RG~q}KvtKH!gT5>_1*g3!f*U8wfzLs|C_(6td6hgg{#t}bk&?-w zP|!yu`!gJ;aEwgukLVbS?@|KA@TZ_1j7s`vC7q75IG!jOe}mfOa6EqWKhZz?8#u|! zH1NOsyErb$*1{Z1i z_9;9^sTc2S{oy*wH3(tLSlnNdOSvHCj*hN~%gi5?_HN+l6@@`5wGjrT)(~oy^Pc99 z#q)$%?3x`}{~I#xF*cwSx@Q|ks$(RQ9hdun!19F$E4|bV&GS+lllv9RGzgq?gAByi z;GqVq27f+m@`o`5o^U2d66>1v=S0cALo`C@&t0FAo=Uhh5AIa!=tw6r`wtgeMp}xNfAd1mUUhKBW5$g7R$aG2;g1mErr5X%Bco zc}LI!IcIA|O`M#{KPNWtKSgXFe2TD(@9*yJ;(sJ?baVG1!TtgG9loByY#U4AFnro0 zQ+;k`{+TVp|_nX@rTOLiEP%z*cz5OP)`$8BaR{?hAo~q}(eBH0H0-`FhoMLrE z5jehR!)DT~+^#~^S=8@rOAx!tP@~yuD7i-?*C0fn3CL@-mQWoj>rH6S^R}CjZULQ@ z)_-p$c`_ENSgt~gfm9z@89zld9^vPzz%KQ&5_4RUlC;Z&r zyrU|j8^kBrDK%3#M2ZYG8+VRUCRg=!ID2s}wgX86w(!GlGjZyR8I(Y7D`}kP@+8vF zBuz9yDW`Eua{{*^P-}CTSG>5E4(YBWXnz_zXm2I0H!v^8sNxaT=xWU*R4e*_w7dI{ zc6a|2=0PiICJnt*IwkZH+0n`Qly-4NuylA~9GVdZHgN5xjjhCH#Pv>n;NQMGLSnMhjw^?H-B{EH0@xV18v2!dS@!}h@?;HNLnDePM$@wZ08Yd zT1Z@mF1aO)vDS$0-zqzS+=U7Uk>{nCy;y} zktI~e`Fe(Mgcux6?rl6wmwf}AfD+_`-63_qhFyCM0}tm#i~uu;^oAMGKwJTEZ9)4f zPYu!m!o29-Ue$38o#M0B_0_2%+A$e^)zDdD#3W5Kbz>HjcXZ_KAt>Aa^Y%%8F(xa0 zt$urLg>px2Y;D7-`nJb;1{4paSerY2VLj2yNV#cEe0Y=XKOuid$i3~922p6K8xy`7eZC z^VNC_9ICo0b=06~+6#*JN>JOM2#s$|T)t@!Sa zcap8!%hlG$RfJa}loC5I-c~g7{*?$)N)Df(oKWST^#p&`qTGtz@8F{9h0rMY;qo8&=z+{xx$$={?1X`hFh#6u6kiehng1EC8YU3%8ok`8RzC7L z!GN;2fnV33y$!tKRc-(u&-MC6#WCD#M3Ytt3-pU=HhCw#r>wfof!8a_4f?0XyA_cv8H??j8A^sFgREQyTXF|mI#NXO7f@Z020x6HXwb`2H_lLxE!5s|Hw@($ zPmJN9^5*@@{=9i_czW|7(=q~+cIlht^}kXL;(6XD@OahDJ@A8#YU@sYRl$%qUIasa zF=5C%*#m|$YI_$w2h}o3^v^3q-^&4T^!d%E<*gHc-9Oo*B~`mz0(lIL^5O;N60-}$ zC1_WdfJ+RI4~Mw~)_V!bBK&<^uq!IXv_f}iq@6+CNq|BTb48LKiBT1wGM`!Ekj zNnJUjjUwTV4do+wrA=UWwWy0Eb!QjJX)MvCCL~cy%wQLq1W{WHWrNrx%`Xd4+uz2o z4O3fWN&F^z0D0tgRFTGl%Kk`W{`fTQ*2FS@$GTmua}L6?w=za`h`2s!z_>54lX^PI4xu)44m{_DK5-iI=LFThz9GLc|Lc-ZP3#s0J zk5{A+Y#3T7#2U`~S`Hp?a{rpaCltHb9)^=!yFgCD1OFGu`8e-tGf~ptXixf1P;wtX zQUD$-nQw^6Z++mqJmJ!ZV8T0m3@F8X!mfjlXJF1l@iCw@6qnu23F>+bk#DUvo6sLb zJX!LJK`qjv))ys0_#yzP{^5s;OMSS1n(%mi?a#-TUOKxp&kS;#mOmLM+ga( z^ahve}&j^K2F$^m9%ZzVTg^0brQ zn&j3b6Z1I727Vvt`7<~jwPNUhae0aFlR2)4q<&q0L{e{fz$HmLg(4wH1L;XbN|7VI zHUtp%)|EPkfvrY;1y-~o^((HRqvCbo_wh2Ac!Mj88NUsI%R6z65Z#FDA^!l(B@v+Cpq_GRy{T8A21<=v*3df1h|f zeq4)q2rFE$81$&sK$eStS$e195BkFJFtS3K;KCB#n1mpvxIUn@cbh%w&4P;qo6v-g zQ7Y5F^)0Vsbw|FNjQ*e>bizJWdKipAjLS;<39> z6Q+4nZK(429NW5o@Hy;#e2&05GS3eJhHxesdiV^M_6LCENe5cFH`*g)sN>3HdkmF= zQpS0e`wBB;sNV@f6WWwV(HMlu6A7UYAW-4q7qGXZ6}lj!*BjkJ-HigMsBFW=eZ74c z1DS(ZOv846ivJ1}&%%SYAf-yCmVRVi*EkCd`~z#8dr z6q1gcjF5CHaVKlfS-P;m#2j7x>FI8DKQPLk@wC-FuSujYj2pcH=PxXTX`g#rpY*o6 zN8~IfCZI&B7OvpT-MVH$^iAbyi%0!~gER zsgUxg!XL+k3Rej8ro(`O2Y;`sKYNe4qlX0yMVxT!36Y9hidRagbdP%?Gqe$++bO`P zYHF9})je6;_heorzu0qOfg=fl11|x~8oXuCMKwbjbXwmGkNgu5N!so;{DNsquh0wb zrbC~KtydsjUH5Z}4JqjnWJQ0{Bkczv_i`$j4N*M!2+{@mMp-3#YQVju%0M@E=%%!7`E6w0(; ziP0lI0%54cgnERbV$Zh*-Z}f4n&fK=_afd!6+X~KXobmG$XlXeU2{o*)fvJBIBMIy-*1S^Rb}jNC!-LAiRIB^r z;H+GMxF+xFwPnkle76$3mG72<52ZOFhq&6&7Ok3id8F17hLrPONYX=j50#D{oV-m% ze5Hu=@`M~(aPm^dgc4K;Z1-+KQxV z%h+poDWktK$;TBNWv#D@jWRKVkK)PjAWvYf%uUGU<_Cs|FCh%79 z0%@l#_?^2E+`Oyol9~?iA*9N~cU1O(KW04T;eX!JAwZQiB4HOK%$u^>P7FS= zE&jUYFbJjm_MUbWKG!$lNL<6R!-G&xYyGnD;a?jV`Ob4+u-{U8czQo33LU@MMH=lb zHrmgzTJ_u>hkqCS{88j)f;}&mRxb8@#Lag_9NQ%Q3+waq=BP*}M$-^qEYhs9ZAco1 zh!bFm3^64sX&gPnP!?q*?dZXB%V0eS(GbI+r8UtUy#S-Lj@7qWd|$icExCIjMN)46 z?tZD0MNKC!L8M3zLI1+PY^3~W&u2*zDIu0L+Kna2XCvGG5?GQ15??OFlFH9zNy<$| zS<=~)n@u2p8Rgk>cP=M)Gk_A-<#O=+^h`P-Hwa>P2BaT1G~IK9Ad}7rn{$Ne`9Z*( z1M&k})HzFiFYf1nHD=(cz|1dXp&<{pkfTDkRD^%Z^wPD^$kcmahCGvykIqUpJ}R z`~53XX>vA@pZqmNNg4#=9B?)eC(GLR`Y$ic2J$4WI=an;*#Oernv}a$%n44qWi+Zy ze?~bp#YvDXr#J3%9zx0m8Dxm`>)o8c-KMwtxT0i4%wFh1NJ71o>od#ZyZVKD&WZAw zyGNfo=#HtR7qJYB^;{C#A`|)|I4dR(P#l`;y>21ZqK$2DE$Fm!@LkUr zY-_-_hVoe?xw8{UwQF0EX=IKpcLtDhS8E+aIdbA5W*G%mRK98Q#*W+uJ_K4gEAJ|KO z$x|y(CDCCmxr`f1T8}UI3wgy&}Vjcq=+;abKyvyujOaxi7NBqqtZFDH5rEdR?` z-AQWgUmMS?+v-k|55HwMnLW}>k=bXTE3-%Xg=O|VidWr4`^eaea5eip(cYLnKi3sN z(1kBpqhi!fCP%X%A;L_6wR2WZ$2JpAf)Ys6G*Q-nDUr_LLz^yGLhqpNCY+dmW@G_q zEm^bx^wJRgRJFN!>^@KxD6)YEqyyc=dih+KH2*R*O^RdyoCTVu+2@M&%1y@jF~oqb zFDQ%|^_}k#Cf!C>gz-JFTE1twu8Ma<33d%Zh??RW zLY`oxc!Q|ic3|YQ*xkWur~dALjA_TU8&!w>^H{!#{GWe^%xGzqCf#ZmfL7sT|6e>l#Yk-7Pe^9 MUd6%x2dUg-@uky+H~;_u delta 20220 zcmV)9K*hg?r2+J#0e?eRQzS$5004La&AoYW99NnrmM@RW%DQm_1dk$Fyg>pe5CBOX zBOaneMN6%2s$1$7v77=>MM45l=&AxG&g^)(wADMFnXp$edpm5iHM=`ux7)oA+u`=w z(~uDOpqfg!n593uQz-|I94^We>h^iVfgobFOQd*RevmWkE+8ARw46UnU(o_ z-}k-mdLL`{V@(^|(zJs@yEZVPY1*F~`iDZ(UTmz^E`9Ub_2S1H>zmC>ID6^D-BxSs z()9F4AANN0qq%eS#+~Weix)3W&y=Uj<+EsUwt0WERr&brX7lKYmwA9|)#gfLZL76b z-z?IAmF4<&>wl#aC)`n2SNuV@wj1j_%nHB1NZl%64z166%Zm-~;Y8Z+;tAAZ+h^_7A^|j{RYUAbY%?~&0 zA8m50pp@FIG^&+WJ>0@8qx$vA=AG@zo$AZ4zQw)$bH2w)tNQZw>T+>ms#u;W&&s=? z!WXCM;VKW?Ey4SHS<4l+C*Jz{*|#s>y!r0ezj;l2oX1NJ{kvB9Ka3Z(tNQNl?sroL zsuK8^iGLq_SGM}g|Ie%UJ_02E+tiztwN35!hkvAN8qPI7EokSc*?yDHZeG1~>sq6} zwOs%B*4vHxoknG&ey_5*cI%DGy~@p3Z(YBBt-5k+eQmkfSh-cJtyWiV> zT9sRs=G^Vg>PNRw{lW`0;<-xGYPRr5%(cz6R)3+gy87xpVB>3R%~o}@+OYU6!vHu} zrJ82$^0jNPUc3Fy*Kgl^=kjZ>IyA~OeTnK&ql(+9hDI3R`mM&=Jv_-vbP@AjeQkB@ z_U$|M+pYTT)oP6j0lC|EtLt0FR=sJ?UYuRb%4@E!HMiC)_Y*fULaUni`tk?Wl~$gw zaDNR|mDUOnk)=bllC=XjHe1z3Wu>)tuPRGML-kkdm_=*&ar?b{SOI3DH)75%Uc6w; z&CDb$F{+OyM+e7+mbZ1&7M86iY{Ry7$JR5pp0jmfn?trfY#SrCIcl3@wmEKU8eXH8 z(omQEb&<)WsldpK!oY+m?8Dzlk#rnO6MsU#tm*W=g&~sH1deqRrAfzlJo6ftI;puo zHrl`Zc&1%>d_!w5FNvDCH|S{Ev2uLZs@1ltLUm5x|2GD zuC>QAUy8I=Yu{Z;1kDm?_5qq1I<9u{@eCT~s@hVjmYP{g*U~dfnObIMDO=0VEPv%{ zxtS%W=J3~h+5!G|H;Eoe4DkEIrVCjDTJ!b_=tZ;IoZh&r*jU+{*;yAu_$Dym{xtR(JKaUZR`Qdydvy=d{>9CkTUz>O~7oPV1x&&(`L zFK@4{x7IcXxt)L4(~a%T1Cb(+!pRF6Yn!dHNQ-yeXJMdsxA#czSzlN*=4R)TUV9fG z`rN!@2`dF+lpaebGvi{PFp@$yOejtvrEUVp~>*94Iw;6j+f0xSduP*5@GnARWCt4A30zG!DcO=5$zv!VK*Mn`DpOXA^**)A-bpVHp}In{w#i z~)5vTXo##%~oS=^NvX)+c+gD#H8D@_^y6D_M#MbU*`LM@$masuU&rU^84~v z)V4Rl^6Q%?PZfWaN@S^X{mSK=#g{@wPP5v&`R;Wo8{D{dsekBqEjB-@dBsJH!;eS# za>sOd)N^X%m(;E=c*-rnkZ^;^wq z<7?D)swXr${P3t`uU?-8`{-|uA&Oh=5klaCz|YB3?ybMkoyT&L;vMEP6KjnV>2lDHSfI# zvomzjt$%7`qgg!M>5|ja#cjM|(BUFp{+;S7ra}>KzKB&G=EQ2TS>LD@X@E7J)Xj7L zwH)-7BcpSrhz0dVrP!>3a$q8_7O`$_73(#BAZ3hT2u51(sXrAE19`>J+p4aEqWtR5 zJZR{Zd%Zh=7|#U?4&^mR2&b&?G;7dJxk!hhLw`^TU&Q~#AuNIVgRk&Y^Uxl^0F~$5 zn+cvzhpTR{DL1HMX#6?pApbl2Iaw(izf(F6U?$&=uwR+do_@H%yd zgn!4m?KMznW)A@y>Nr=YitZIpy-*CGkLkU=29CA-!Bi0!eeM&WXD8W=@+8zJ;Ic6J z6n}!&CxcPlN$68Wr{++1P zqZ^s=UX4$qg8O$s6Qi@N+b}U|6}+Mzgq5E2N44Nl6lDR)R#9H>J^j`C$~LJL=`p=3 zHH=s8-&l1gBPK*3SjBML;iW_=QE)FOL4Vnp08SOFA45yET3vlRAc{15Vz>C*x!P%v zmx|z39R?40#V-}1X1&y@Q83|rC=e1n00cuQbduJUw9XfSjtlo7` z1!99TK|1`%bI_%c{CQ&P1RiFX9ecmX1JbX#_b1PnmRK@>aoQEr&CSY2HF1-fynnTE z9}>Oz(5S4hi#r3MRS>PGSt~daE_PQEy%)?EZMUhvR-VIJ8Oz_?Xnri8EJWAJ!#1k2 zBBu#wKsbZK)`xP#0;^|h%+|+kYr?kn+18|O?YH%VwqCT&lC2+eN>I#^IwgMqUx#=t ztsfRgj^cA%3=Co&t&0M$qp<=s#D4&-ps`F=R?rFCN{9^t72Vz@6lB1(W9v}KAA^X1bXQ0d==`Ab?9IoZW!%? zdtzKSwNEy%(sj=*svN9}lJ*5Rwm!z1mzJ$l`W5l4a8%QrW%KFL6>HhTf`5Jgl3lZ> zMt(R5CH0f1%T^_M0Bd!tY#Ia4c6XCz(s+{O%MDk>l9(EOL(r{Q?UC0s%h5ziOXDGE z84Zf3tY)UPoMw?qQ(Z~#!%CWTj=nBwXlbxEI745wk{<9^(r4qkq}q+m8#Qk+JzNOz zazobqnZB&2<=~`I`p{}YwSQa{m&FxvbvSx?0y3$7CSw(ZPdQ3YG%wD{MRO|XYmvVMH;^gTkwsh!gBkM0fbht@d*1SGBtajKo$DSw$6Xq(!Fl6bu^ zje{YSC|y$MGLGUAbg{Y1=uXMzF5@Nr_4a<0C%ODU$%gVJ44I>0$N;`eR?V8BFM^Ee zL#7pj%=LQX^5&`snF$3lZcTq6BL@d$jP>fK_*hg(4Jp=C_=sx?fMk0DkOCgJkboc$ zdxGcUtO6d{#|O`O36tauD+Oy8IVYZz6b)v72v8p26RVW^@x6P`mJ>T8zqPyDJ_wwJ zk#{7FJY&fs1Ii425%LTld2fN@h1GuFYQprY8Q9)*kqSVaj)U4Xt;}aSUNIEjKD#D94WhUqn02;OfEm-k z!nX;uX`C{BD*!l7;R+xLcD^p4>n>@3PxgU+9@7d$JJTg0PelRh`4dE0kLd;6=`lU2 zPyTniyZXPkyZe*fT^zwICyw8f{2qUqo39&#Lz*^~Y!5wrR?-UZ;$o*9u;$m9!aDAZ z*asWo%+AbrwbRc|&zym1LDPe$%Ymd`+AS2_dU5*M3`!n;Q4)m=5A`%@7^Pi*l(i3_ z3(u%YuoUrw-QE8ScXSAaJh`Uw?c(eDZ;PLZ{|dHY(rNK|Kb@xN+;bbe)A4?K&ejVHqn&%Y)AmH?T09~APBx~==TY8cJ0>Qw3k+nl z`rLV=eBnG9#ge1?Sbj7QW7fp@gaNjrXKmfK4aYW8wgDmm2`Oir1)>vw5b=$1XH39& zZxcx{49&Fk2e6`P+5o2CAQK8r!_+~oIV?s-@tMSDKRyRwQFjtB4JFA^26@*>LcrBu zfrXWrBfb;5Lxe-AbN9 zQ_CYfSMOezmnm zv$bV6t1I=*)vZM9?pkAYOPb>ubwO)SUO(Ex3}{9x36??Ip3}j9liPFQem)O#W%ryX zekDl)gSl2OIC;sbU~m+|mQW-S9{egTGFf~E_9%pbVI9D$bM3PU0vNs$dZL}&dGhG# zqnKcw36o;8t9bK|Fg3#O{93hE*jGpqLg>Uh`0hAF6lE~%W32}vA94~r0-*31afV%a2n%x!>vG0d0eTC3M)!y> zI2-&suKI!<0ATD-J^Z|Ih9nWI2?hB5+;Q?KX_&!`!Snp8reDO$lZzf;;`gK=~m*V_r zfI)8rf~GQm8U12{l6TSzfX3{MtCYy7-8|4OEJ`Oidvt(cXM(j_wgLKv1E?pmwmAq5 z8}w`@VGgPZd_l@2`j!*<0zShcVY57L1@d?zE{_|Am2QE)fq{DBxXq$(J6nKoDuE{z z64~Pe{~X8|EL@0+z{3z~3r94KWZTgKTyj}Lh6F5sCFF6chTKWj&hdfIFv#R<`tVd) zH-@LaVHy#5(TY(~W?4%~QlQPy7ctTV?pDgO|3M61uYSA*ML*f+eXcp8Xh7BKmA-&X zxdL!zR2mJjCO&YbO)yWm0{8Zf8X-i4M=H%Py7Vf5qtb#9d8~6yWUOAe)ECd^BV9a9 zvbWTKsGfA-F$I6Ahz8gKI3XVQhdmIf}nhc44`@@Ls?#T3h46&rjUunJilO+@;H}SEuTne@DeE4dvM&m@6kqB~X z$DS~~Fk_TwTyMidw0D45sh^Xq+j0GjeJ5j&hf9|}BMIT2lY$g6I1Zf#;MdN2?3LE& z`NuP0)&18)KZ^z*Lbq>v`tn(_e3gxP#nub6q$ZlTK|HfaZ ze}DY@6N>JtL!bWWuHqL0^!2S-eXFc*&FNd`^?$8-eQQA>mhm2hQ%@r0=nxq&l6Y%- zW4YRJ$*8C(>ZcB45UAtDz2I%k&dx|FgSAlc0X(EHoG0lt4YL_rKHw-#2D2<_gaS`# z3G@W?Huz_xem#-N2tzkSLL{&_Cl6~Z$fJf4xK5J}`T0Tt;yp!{&+-2nQzk=Za|T+wzYo0SV@w)rd6$OCTS5)2Px+2_csx;lUtQKhvLe51-^1H zsKLMALfp`LU711QYZ64yv;Z-w--%Qb_J6`fy>O>5y29;XysrnjIak*+>aD`D5Fdm` zKAa1nd30AngeEL-iKY&T;Sqc$_P7cMqJEDIPf+t5e)#P0!!Hg$Tru&nyfwLnHTiF8 z8mWJ>SY3nWNt0`~q&<9AI6*6=!jn>J7&0bSNJV@PKPlz;bhPk$I30gd5|7}YpMQH& zDvvw{mE2eO+tkaq(mL&f9+_?*D*Oi39rj7}k-~i{D4~GOb%hTwq_eYg?;e43S=L@gkd=ckKKEGHP#rX?`i}*gfY*7RO>dGVkIiAsJ8Danf{|U+Ssf#z7A(h3VrmfA%7#vM31!S z&qNPj#GUBw1ZCBQUVTZKqv7U}IU1>?c@{4E+2&}tZ*-2b%7Qdykb%GyBAN=!�zi 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 H*viZuME_P3 diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as index 1d638e23d..9d00886d3 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as @@ -21,6 +21,7 @@ package TestContinueLevels; TestDecl2; TestDeclarations; + TestDeobfuscation; TestDefaultNotLastGrouped; TestDotParent; TestDoWhile; diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestDeobfuscation.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestDeobfuscation.as new file mode 100644 index 000000000..4ebd55c99 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestDeobfuscation.as @@ -0,0 +1,18 @@ +package tests +{ + + public class TestDeobfuscation + { + public function run():* + { + var r:int = Math.random(); + var f:Boolean = false; + + if(r > 5 || f) + { + return "okay"; + } + return "after"; + } + } +}