From b11fc959d1216cd98f87474a0a35a79084ecb541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 21 Jan 2018 09:07:20 +0100 Subject: [PATCH] Introducing AS2 classes Test class AS2 classes - Test for maintaining vars/methods order --- .../src/com/jpexs/decompiler/flash/SWF.java | 7 +- .../decompiler/flash/ActionScript2Test.java | 1 + .../flash/ActionScript2TestClasses.java | 146 ++++++++++++++++++ libsrc/ffdec_lib/testdata/as2/as2.fla | Bin 1086014 -> 1086043 bytes libsrc/ffdec_lib/testdata/as2/as2.swf | Bin 26590 -> 26782 bytes .../as2/com/jpexs/TestMaintainOrder.as | 36 +++++ 6 files changed, 187 insertions(+), 3 deletions(-) create mode 100644 libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2TestClasses.java create mode 100644 libsrc/ffdec_lib/testdata/as2/com/jpexs/TestMaintainOrder.as diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java index f0dc48321..702d9a6fb 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -349,6 +349,8 @@ public final class SWF implements SWFContainerItem, Timelined { private static final DecompilerPool decompilerPool = new DecompilerPool(); + public static final String AS2_PKG_PREFIX = "__Packages."; + public static List swfSignatures = Arrays.asList( "FWS", // Uncompressed Flash "CWS", // ZLib compressed Flash @@ -2276,10 +2278,9 @@ public final class SWF implements SWFContainerItem, Timelined { DoInitActionTag dia = (DoInitActionTag) t; String exportName = getExportName(dia.spriteId); exportName = exportName != null ? exportName : "_unk_"; - final String pkgPrefix = "__Packages."; String[] classNameParts = null; - if (exportName.startsWith(pkgPrefix)) { - String className = exportName.substring(pkgPrefix.length()); + if (exportName.startsWith(AS2_PKG_PREFIX)) { + String className = exportName.substring(AS2_PKG_PREFIX.length()); if (className.contains(".")) { classNameParts = className.split("\\."); } else { diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2Test.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2Test.java index e2a59b1d0..8d5ddab89 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2Test.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2Test.java @@ -315,6 +315,7 @@ public class ActionScript2Test extends ActionScript2TestBase { + "var tg = new com.jpexs.TestSetterGetter();\r\n" + "var tcg = new com.jpexs.TestCallSetterGetter();\r\n" + "var tvm = new com.jpexs.TestVarsMethods();\r\n" + + "var tmo = new com.jpexs.TestMaintainOrder();\r\n" ); } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2TestClasses.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2TestClasses.java new file mode 100644 index 000000000..120eac591 --- /dev/null +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2TestClasses.java @@ -0,0 +1,146 @@ +/* + * Copyright (C) 2010-2018 JPEXS, All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3.0 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + */ +package com.jpexs.decompiler.flash; + +import com.jpexs.decompiler.flash.action.Action; +import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.helpers.CodeFormatting; +import com.jpexs.decompiler.flash.helpers.HighlightedTextWriter; +import com.jpexs.decompiler.flash.tags.DoInitActionTag; +import com.jpexs.decompiler.flash.tags.Tag; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.IOException; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.fail; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author JPEXS + */ +public class ActionScript2TestClasses extends ActionScript2TestBase { + + @BeforeClass + public void init() throws IOException, InterruptedException { + //Main.initLogging(false); + Configuration.autoDeobfuscate.set(false); + Configuration.simplifyExpressions.set(false); + Configuration.decompile.set(true); + Configuration.registerNameFormat.set("_loc%d_"); + swf = new SWF(new BufferedInputStream(new FileInputStream("testdata/as2/as2.swf")), false); + } + + private void compareSrc(String classFullName, String expectedResult) { + DoInitActionTag dia = getClassSource(classFullName); + assertNotNull(dia); + HighlightedTextWriter writer = new HighlightedTextWriter(new CodeFormatting(), false); + try { + Action.actionsToSource(dia, dia.getActions(), "", writer); + } catch (InterruptedException ex) { + fail(); + } + String actualResult = cleanPCode(writer.toString()); + expectedResult = cleanPCode(expectedResult); + assertEquals(actualResult, expectedResult); + } + + private DoInitActionTag getClassSource(String classFullName) { + for (Tag t : swf.getTags()) { + if (t instanceof DoInitActionTag) { + DoInitActionTag dia = (DoInitActionTag) t; + String exportName = swf.getExportName(dia.spriteId); + if (exportName != null && exportName.startsWith(SWF.AS2_PKG_PREFIX)) { + String exportClassName = exportName.substring(SWF.AS2_PKG_PREFIX.length()); + if (exportClassName.equals(classFullName)) { + return dia; + } + } + } + } + return null; + } + + @Test + public void testVarsMethods() { + compareSrc("com.jpexs.TestVarsMethods", "class com.jpexs.TestVarsMethods\r\n" + + "{\r\n" + + "var instVar = 1;\r\n" + + "static var statVar = 2;\r\n" + + "function TestVarsMethods()\r\n" + + "{\r\n" + + "trace(\"constructor\");\r\n" + + "}\r\n" + + "function instMethod()\r\n" + + "{\r\n" + + "trace(\"instance method\");\r\n" + + "}\r\n" + + "static function statMethod()\r\n" + + "{\r\n" + + "trace(\"static method\");\r\n" + + "}\r\n" + + "}"); + } + + @Test + public void testMaintainOrder() { + compareSrc("com.jpexs.TestMaintainOrder", "class com.jpexs.TestMaintainOrder\r\n" + + "{\r\n" + + "var a = 1;\r\n" + + "static var b = 2;\r\n" + + "var c = 3;\r\n" + + "static var d = 4;\r\n" + + "static var e = 5;\r\n" + + "var f = 6;\r\n" + + "var g = 7;\r\n" + + "var _x1 = \"after method m\";\r\n" + + "function TestMaintainOrder()\r\n" + + "{\r\n" + + "}\r\n" + + "function h()\r\n" + + "{\r\n" + + "trace(\"8\");\r\n" + + "}\r\n" + + "function i()\r\n" + + "{\r\n" + + "trace(\"9\");\r\n" + + "}\r\n" + + "static function j()\r\n" + + "{\r\n" + + "trace(\"10\");\r\n" + + "}\r\n" + + "static function k()\r\n" + + "{\r\n" + + "trace(\"11\");\r\n" + + "}\r\n" + + "function l()\r\n" + + "{\r\n" + + "trace(\"12\");\r\n" + + "}\r\n" + + "static function m()\r\n" + + "{\r\n" + + "trace(\"13\");\r\n" + + "}\r\n" + + "function _x2()\r\n" + + "{\r\n" + + "trace(\"after _x1\");\r\n" + + "}\r\n" + + "}"); + } +} diff --git a/libsrc/ffdec_lib/testdata/as2/as2.fla b/libsrc/ffdec_lib/testdata/as2/as2.fla index e58e46ddeecf5ad7723d60dda18c3c88495d10a9..0bfd24c0fe50d329fe8fb0ac67aeaeadd1dc0ad1 100644 GIT binary patch delta 13957 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 w;mYcvOG=QN#X`` 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 Hujc&NGOm_h&ekrT?7q%UCqc#@ zq=HEs4Z?+Q(uufrRPhIzo9%zncBKmY?Ohw&$I^Uk_#1J_=;~?RWfG|k8mo!#ULpco zVq1b*Ax~;AKJ2)R`O#KWI7}La)@?;6R?rHx2^0#no!%J1!2y%5KrBbH$zf32@vU5q zSgcU{+!b$!|Idz>i*5NgnyaV224@mDtEct#SKnD7HTG?A&KhHEKy|T$Vk=HZB1Q8P zL)7}AsS6-e)w~+k81X!(<8%ExWlShF@MMYj$_zu_TbLDau$+cpWbf|+?V?N zU9Uc+BB_~*mET(f+Rfj1iOt7bj^^U6=GqSj59|ToR>K!Z$igY`L8k)~0n8MH2Pphq z8~&*$lWcv1bOU>4wQ|rT+M_+!9`m+FA*6|ExUl9hN7|UMOO4D#(`-uyL7**2_`oqMK>Y2r+Q_N2$~qP8rtMa=u-jq22^>5cCdi-OFBp9B%)*uE@C zjBdCLft(cIuskoSCTskSoADJUpE@zbv1PpHA}?`euX&VSB@9Ppr}^DiVWOE|{i>9s zk?;{;lY9z`*ic#Q@EKM%nT1_)a6EGOpt{{IToed^DttXDv=S?Qn6vkzvGVkWxXNwfai9 zIxd^-{i(S!wLj^qo5Vht+mHo~hZ?DmSei%2v1_@@`s-FBzM>&jUbQ;B4DcDhjzjPM z)*nEVtF>jG+cy-5M|LTO@``NYSr4JLiU@VuvEt`_U`U@L^KxCDs>hFDv*FYIO7|0m z(*;`jN2mT#B7tDMa&y*7;a<5Aa?ThdHs`S)X9|z1FB7~cF^YgAHiMHSG5p3Da&Xu; zTfACBloe!T;$h|zIvk8KT|j$!nJ;U-ZJIIPpu{O{xwPi%MsqoDYfA~dprCa@&Mj?4 zqb3%&ci6X*zSs4ky=Es!G+x7BR>i-_nf)nA{QJ{S@t|o#xw0vT+{Scgk0`;A9$8Rr zb~BY3az-w7{;bn_E>zP8Xf{PQXu8X4tO_v)?^Dl3ylE;`@H!yn!L{zIq+4SbwiB1c271iO>FSr zXZ&q1UBIh4E~9H%tia#H5P6}P$c25*w_?G65hiB%`Dzhok2xlPFkZ=u*}es`mv+7l zx$w>A5$5+{!MbeKUfEAslpY%z&xd7LZ}dHfD)kVd6ZJ&dlZrE^zal~>C&A1KC=^dF z#N6X>Z{Q_Kv>s?2e8hL@@uGudVD3nE^1N+?`BfyzDFa^qD`Y zaa0XurVm8jqA!+*FB4NMT1s1Ji#lTr?_rT3drPO0qKd;5`?2u;CYl-(l);$v?eP%X z*#heV$yQ_oVT5xwN#Xe$wx_lw_G!N8;Uq9N=Y-=? zl_ctRnBZz%{}kxDKzMy1d2SA9g8wL_c@vZ8TsX_HyKKoQ;=nbmogVy;CMv&kl4KNX zk?}l;g>wwQWoiSns2h(yg=zdtY-!B+c4cw?w2W-Znl5DhHd1d-{+l`W50gX9;ibae ze0>PhNr*a{7MpIsWMue#vB}jdR72FD$JuOCh@@7K{uQ>x%?!gq~=TD2~n2h)kb~NEVYA;CNEhq-eYIC z-$(n{5P;%t(;mEbFh*>;Mtp6fedhh+ha37pRVyo?_N8D85BiD!wK^=)Gg;l7Df5I4AfQ z>8_}ZHkL(tES~24yYw_@N=Y&pYTaJ7K6Q~faUyJU0wuC=y1N$`Y6f~I-7eKj`5?*u zbS(n`^!_KlDb12^^ZP!P_}KN`xXej;f~e@)?gOldYGKy9Rd2OB)f>^9dV~^_aaQ z(cFe_y$TK=CNHFc6-(u=QiDfwT(s>r&VS)Iu2pJmjs-u4EkGd>$oDLA%%;f#auXNX`rd%|8J%9XEXc&@>LzbRFCmhYY#LG+-u)Y@%!L1|b zP4u^aE+Hs?3d{y`Osos{Dw*MS_7rdh4F5P<`y%7lf>VDNNKA~)hMaO{?Tm6nXGL+p zQoJR3Y+sN03~P_0H?#a?#_;FS$u)DX!IR>zwxFfbs{~1~gdP*!(`(PBQQMK&*kgOl zX+&3-t0t+nCx6V~yk1d?mudQ+BJO%=>uHh(tC?;H{m(j6Meo)00=h!#X6kkqz_-KH zLK(xXKfNXuy^m>2o^ERuYNTu|xV8(YO|rROmBrvz@XJ9hG1`c34aSRH8E6^zz5GW+ zuN-}Gee6|@GSGH?%xTBtGuPhax~ttZNr~qfncdl!DmgaH=e7e)9d6xFHq@MLZ5ve* zYm+gn!cVa`V%M-8RVX_X(?R>dj5JO0v6ANkhp9K|8UddSh>E9=FtBSaxS*2JXI?NC)>T%$>UVeFRPn5(V6HxV z1Rsk6d6{b_u?e$5aOyc3m% zwiqYqU8x7U95P~>;_B__QbCWXwJ_-E7)EOn9V1MVa^EI zV?bn^o}x`}0daoot>d0LdP30B`hwQlCRX9f0AhE9#6x^7en_dc>(pAb`8x1;6^gDuCwyNS>wtYx+)bCwWKTDNZW8-han` z@q#~aM_6E(+Oonwm6NOs$oY_Oudj@9*7P^~kza#bR-@Vh@?LSJDq$5%!{OHPZp@Zw zB>coAskY@Xi1^`182rF@v5P8tQ!yNk{H<|$K6H}huE_l61(V=*Lm7e5{2MN6BlUKk z*5n&2-(lnPQ>XQ?aHqH|m$)o;{a}xkYo#F-9fb@+xo3UYaGXtm3462BHe2_DXH|NP z2=yih{<*p|J|dZtY$_;~8cEsUJz2p$N)q~qnSj$C=5=A|LKOwoN+GH`aS;WSq7epC zpiHa(Vvj)Gi2g*6(VbakP55a?UP*A-$h8itDOUJOmRa|3{2W%!ji8;`XK>!5j07f6 ztMTUE$UP*!z8*jtO*Qh?^t0@Und%ENDC4(?Mj?l%O$tE)uPRzqth5-A@;ka~zaOT= zQCkhDkfqPn_T3d^_Aey-&7r>JS6PHu;!jN`EBZ0R5Gr8n)P1>dkouFO$MdgQHc280 zX9JJRErJz}5%vosDl`OUJ&Hxs9cvN?3eFN9OByyF0gzO8$4aq=$;Tp-%1;Q#PWg$| zVur+|T(Td-h-SWHj~jpD*r&Hj%>{qZq0OyXjY0B1R7+<;2vkx-|!1|P?-8!f|nID zz{pDgNGQfdxa#A;}KzMLskdJ}wn0UoZbeF_bmoiw>*X2kJ;<6k24yJr)81gkfrO ze7IyOJC@&P^_z;-EY%kvNUD9<5A!2F&Wzb~fbvtVBaWCOR9m1K4<8#bY^97!r3`GP zuu7#cY$dl!B{ys((}d|d=0%#4VGSLYE=>sbR;D!y3~W}py@6ou2d7UM7_8f;-#H;B z5*hRgM}#`Xa>z8F1RTp~V8L|<*KQk)H3yBZ8=gN7JY6<;Pu9xD7aMLqdF1A+pde$Z z08-@kecI9O63I={C48{do@SxOf)3gGNCDZ;h7m zt=0p1>b64;HTC0(9d~UJXa<7{R`@gT$#1S&Sh*PtqVX11>1REn75%Xjlc}9;xo4_1 zxlPQVzJ2s~(j|rj+jT+9=uMKV(c}Q5ts-;Zj6Eb%GSgFxi6?)ADEE?yf#OF1zM$K* zSJAM zkhYo~PYpwj}r`Y%}`QKlGWnDbG_L@5+X(^fkn0(bteoikV?v(xGaC1g{ckou| z!glg;qOSTT9Y#V`B8pN{hiwxu8l3W^u|A{9pYx`Eh5q#}857i8z~y@qhpkpkwwKdz z#r~W(zZ%NZsS%qcfe~;4;_sU91GyfWEq1|B6s^AL>jpsd)+^!GN%us6W zCHcOtc**2>4oSa!{;U)BX5Rfo?MtCnNX-n+;Fg{3~pg6QOw0kx)UdIt>;uxbGhcpm0DJ^A{{MHR*qr=qk^a$ZBBMc zTE3ffc}-D3bP44DD&TwYr3sui$MblIPyzpQ%A;0Z?!3nlIPj zn9C;?RIr&g)t}^W`AS`7a3MM0IL2^0MfuQ6Y80t`sr`SI^s6tUH=t3y(EZq5WIVu2 zLX01)w!?cF3_Ag05QCRcEXz1RfsJMq%HNCo$+THN$Gam0V=)$fvyx<_Ek40qGcuK3t1q}aLh}L7GC&bXL+t+cObsvf~M!G0^ z{^rD3&Rq2g>q&*8$aqsIsz?@zB*e9bRxbnzRWHB0+lba3TwcNVfT>`4-m9DV) zM&@zUPh)`lQ4=2#=dFE6r(Bp-TC9x!O8qIf=;rSsnr;Vcj9M8*TK|Xi-qrE=rXdb9 zm@#w#W1IN(VV4`aGNIs&BsXSl1$}}jtY{E{oXl3Rgb$xI9v86!6+UYDcxAH$?y2tK zxzIq(vZdvIu#{H#HMlL{p9^hu`)ib0$2EsIG%qkc8E{gWjlNxZrCNFD_4HD?%KZA` z`~FCNV4cAr-|T;K)Qy)H-)Xo-xtx^W(KKrC&kI!Smqdj&owqIob=PAJEPb558H(!e?2>sOlBYTsbJuc7eWbXh?N(Y zumzfXG|!7DG;8wP0ph!~Y;D+uHBvYqH*v%6>Xwp@_Pb%m7qEDskZ%y@hrDf!7Vpmm zKo=CgTSXN9z#pXC9POg!^b z8R3YHbTQUo8lYo7{98BKPzki(#^Uzh47|tG3{*nRP24H6IxbpFYX$N@1BIAJ7Gy?u zTO*_FHl^_!G#>NU?&XBW^M6u?e`nNl`fl9(`B`rj=T~&i(qOBkU+p?Bg|F?=p$yDQ zuj>S~b0V`K>&P`8Kf+%sEO6Lu<1;&}Px&I>qz>VN%yR7{rCHOKOK$pM=>yqxtRKV0 zDirmb4#44^fxmJ<;W(tmR!S!+#uT!NMtPFl(FYW$K1&V zJ$!nCTQ6*DHf|H6sAJ8k1>0PQ6JSNV+W}eXxwweilIf3)5i$AFzj?c{n8M&C3=?@1`eMtFKp5Woo4CHNK5D*EQ z;e02Jp)2x+9Z^DgR6B1o4(g;AR-{Rv!2gF=AF<(z(*VexUH`_IhHH`ByPzOkS{h$! zu@bO3K;%?@ATBUkIbbsD0~2g-wu#G06X9zRF%u)pP2LC(k6VGTW&3kF9S)qepwX=v z;jKl)%ka+?BD9lwgS{nJfF9+#?4ge;m(dhkJcd#WPgI=&SdcMPF4HAcuCGIp*93>I z&jUnZ1v1R1R*)`M{Iwyc0mlp91y5O0=vJ}_$W!s;-MUV%f*)sek|mMTS9w_?UzuTv z|K_k-%njPiOmlS17(%7kw4A-0kO(+TW{f|YGz6LT*-2$vlwldbQ6zb4a5d%cL)qWz zC0dE<#V62Xc5J*2?WYTJk%hYMZf!D zm|fH{u@+6wa_QtOLSo*kXb$dh-)Soz!H@6@HlIZv8uNYrMsleR`3BcP5*BBbB94Ug z5~(ne_a0>6A+)rBRW{sokc;(9CMA;ZH?7@X(k!ZYMq8Q8RAgLKE8cY|$oxy<*wZie zE2W#?{$ZQ$4?5YgER{Z2x(_zdjhq>zm@QT3MFHJCDMOXifn-Vu#|m?8zg^C1)G@^GEFYEj7Vx`M;XU**AX0ce3Xj z2G46qe6G2QhgnO~5RN|eAMMWX+@4m0p6OtR!9P#q?KHs*gF$gy)(WB#8eB}+4PWCj&?qV5^G)taJ7pW+uT&Ykn^i~MeUhtBJu5}Z zR~cF}{JjgNRa+82afV4kfVl3$ubpx+E4##WNylwpSj)Mx~Pguwq1>!YjM9*-p`<6 z9-;qUr1YL57iBE6RDx211J%AMJroMD7)~{Bc=k`uV#Guh%=0WX7K~nPR0i+!^sZouMkR5k)oex$e z*qJA^*Qbgm1UBP3A&T(f(q2O(y>mvG`hAj4FedLY(4bIaq;Q9D6nWsmphD9yjcMYG zg^u9Y2q4K2uAA|f-zN#%re{i0Qd0`!0IdVm`xeMm-I%KC3Q_s*E#Se7 zh0-#V5ge$O7#$WTsVt?I|G`5NRvSL>n%o?n%mX`$l`O9(4Lbh4Zg(|dT+Yv_bjs11 zzs9vvLt!WA#BH&fTfG;lS?8sY9U=ks-?-BlghFK`-mBW8tRmz@MR3NUngpmNb;!b< zQO-|16bAOft-qzSd5#h@TS{C&`@q85vS9p~E>WM%Dr3}u(l$iWCVmt`lW5C;;X*=A z#YcpWZ-qiqLAxX?hz?UPuu4-bVq|fo!aC;UPX8%$;7?{ntETm@7+V>s(}EpFeJ(*G zT%zE7=`&|i{d+HgvL8nws{!Q8d*+Z@(d=%)U%v#uXG^HozKC3zG=6>@YUGtAM zQ~4bFoKivG(`3IkmtgtdOHHxGhE>6VmH7s3{sFDo#(n2?-~81G%pr_RItn2=Z)DfwPdaG8RDLDAh7vh1KHBRBR-+|M*WrJR0?+z>?JmQY1t%aw*cT z2%J^hGW8L-!|%~$#bK<_HXhIy!1CW1eRZ-a3(=i4JlB-U_GTh7m+TVd|MicTclFw5 zgT6zB|9}i=DR-Gs@w)19r3(%r-r;%5eE7cD2ZP9W{(`0XUt0(Ehg_lQN$N#>nkgyo znfjw{_pFBgk5{1W+;BJNM{yUL!->4cvXa?$HHCFx<$C~EeIDx$@SaOdbaA3)6Ju2x zDESFtO#On^=zA&u5$@)~@^2f3h&w^N_a{(+4Vte^)fdM-OyiWLFAuDiGh@&m6u`Ux z0rMms-L>YIcqElkPE_|KcHeVu32Bh9383y2de2%;j0A1%D>V zbdk%s+eF!~*P_q=PQ`~k{Lf+zc{jM%cWG|L9~0NRY8ERXm?Ij1d0rIFJmBMq*LA}$(3MixEY zn?t@gRexb8b%Jh7AYs#qklLgKQUc!Vq>x*%y7HW-0So&vgZfVkVfTKKV8xTtNXNTZ zU2*n2{taP0Oi(k@kR6)2R=5+IwzS|xCc9K-yb22mg+|Gw+BWx$RB5O(PXRb)r9DQ4 zFk|G&4d0s@bq~gvxp#^rMsVEBTw6wsySD{Ro!gB#i~UsCZE8(tG8JfrQvmN~^zYNl zpGB~c#s8q&*Ma+3Pw)5yKOYi7l#D*v05xc?T^*tE^OtKTJ5KJlfJkg?{0$Nr98;#LcXj9E z@9bMe3+eTyfOeMDr0?~WtWjc} zyjPD@V(k}1-)J}lPBwZF``4HYFwHg{I7SnS{bu<|ljmtD0N*`_vC}ga;EU3_si6fD z64Fi)F${qQ9kMkvxS*Ze=CR0cUPid^FA5RGlVcN%_CtR*mT&e@gdQ-m{((59(NiEP zo-tGeg<290^#=CpmTE1d#@`#U$mX^pOG5ZH^*f~(^*ugl0~WrHe5G^`oA4^TFzUY+}Gf5uDLQ?uC|;=g-kPLs!|_i4ww2izCd0o{&k6z^+9m0yd4 zL>l%e_ES3AMEze8o+9?gnF90g%|SFV;d4WMn8Qdw%U{^+Rr^0>6By?qb@P6}{xrr* z5WIaqVZdBesDe*ld^*i9b*ver!8+%yB>Af@8Q$3r#QmNkO&*!#Zt+E*s2OeC&E!F& z`c#0ZI>AW_>cXh4V4_7;gt18Y^6tT??Jj6epKf(_-O)}GN?2XWr-(~Wk=1@>ecR)J zAh;1AY0Cf<_K=%Zc!dPxUD5@{Apz?UmXfTer`XmPwr9~#Qa<}M(;!n zjO&_Rl3el}DqCo)qqbJ;t05eBx*#8@P|^6)2##{qqW6WR$EhBXidb_~{4sQK^-m}y zp1G^+U@YnR+zBhefho=0hcP%?Se0_+EPz+kl8Hg@(E+1XiKHXvWXrB2PP)THmZi8o z&-362_hVf5Aa)DsDyh8LHquJOX)H~xJ6tD*{6^EYL#ASRj-^0!*h`>)$2ij2=6ZE$ zpZnz(m(lUt`Z^3;+6U-Nn3VWw!z3qU;|=mQ*Q?K~NrpKjv5cQ=_TnX5T7m1MHURMS zSl_o?=l7q9eWLz${xKl93R)`a+?O#!{+ycmeU3C-EMFXRu8UXjJ_9*-U~|#TNcxlF zHOaLW;>zjB*iYKe-Cc}4pe#9PJpe^m3E1H;F}W^S z?W5x#Qyd#4=0kqic3!0y+mms}aUUE-FbE3fwo2(?{T(<;fq*WJ|62h*()r66q27J0Vp~;RBHfHZ z3k~LXUXLBw^CiQ}j^%>`CKw2tvB>5Qr?h9K;5-te6U`llp{z;Hwii@QF0J^E|M~W|A4J%GK7nu@fONT1sqJ2F6LTI7*U45R8cJ|Y*3Uh4 zG|rGRj8u&BSVDgV#?3r75Mz%G(yBO#%l&SvQgzC-02Vx25bqdUFs+$;i0HnZbv@FJ0qPGu~a@PvfU44g`(&KfPoV9OoEz<5&YCXG9z9uj`VV z#+8f{&$@V`49Tj$SNo>;_OPHP>cQ(A-6biDszrbTFaFv9g#*e5Lt<9`x1;p+QT$TX1^E4huA9mn{|R#cXB%;X0bFhm01XVqLhVStgo0ZptO3n0WJ9_ z`#|8i^I)?8DBm^4bdz}da<>1nu1{81U{Ex+mN9jSK}|T>kYZxH@uT9GsS{$gnaa-Y z9l|*j2?KIRSLK64CKK(&AM>-gq!jbCyk5wEXIl^H0Zu(TAKu+z##A!8CU$lEw|}PR z>*s!niIAL4yU*!gST(pJ&8x-6}_a)nZf}aVU=Ro<;3d zE_NG9f%x&er#zFMx3wP&N@D&{&N4_SFqU&m*sq zJL_&!az|v;6gfUWOgc`0{p)e=75Q`P?+78)Vh42Kg=7Pai}w(bRfy&v&;bMpSz7xAg2%!~R)Ez@byw^yee^b-gA@jppry&s$Nh``UK3 zaAa1EEgN)R>HjvvPEbZDgr+s!0OQc_mQp+!1k3{y+T1zjBL(&<+vP*6r?D-iJpb;+ zj8r$Dlteyss7zl42WUrEB)s;|Z!Ko_%QcwkFZu3gxGjE-3l`;xi^(X168n8AFIwOZ zjEL=Sqh8hN^O^mzuq70p!rk7=4CnQ_JH7d2CZH~Mr?jXCW471tEEpXiMW$K zWW>|g*rIT=65@RQV^I$Mts37lpM_~$PIb`M|MmT0j3pdr|a#%Z= z27INV71@q8AcuENuW4&PWm;P1=U?E~Nsp~f37JtW-6kC>mUBFIb=hbUpa(pFnZjg- z!6-gt5^w+Nu;PD2iI|A{r$xb51X=ogBZRDI$)hkO8FQV1OMXug-#)(A900Ejj3Y3zo(=>%4y%1Zj31aa^;}jV8EEd*ve_v(Yt(KzC~ zC?}h9kdNmShGAU2Nt)I%9648m`jsX+*Hg;Ny_(T%M?Lw)FkaI_z7C&7`iU zKcUsqQvW-DEMxR*9DGyllDDC#rEw*yo1IQ*dt?(`V%e>x$T?5@?W6Lz5X~=QGB&?f zU!x%ZA4d<6YII`Pktt&!1YwbOhl1={K9laP^zCC6-h`>6evR%i`TMQy3{6~&>3w*w zRC`nmKh{w+Cwupd<=%JlwSw9!#lK@H1b(08(e7HeVbCQ|yiU59;b{ln8Puy^|5-m@>2Sx) zyf*sa37q|ws_qSmz90Dhclf*UCr6dss>zF3Teb$rWmzfq$ByEgev2q2@$+Uya@88T z!pHQI{w*6uNc+P*P#gg?T#}M9bzm5G>GsBU{cfKey<5>9z zgV@*Fm)Su5I{J`OWTlZ(RyKF(BAx*M;gk4}Ydb4NkYC;O^R#O`J5Wbyx%8KEO&lD*%zoi8D#a&%bEB`r3qJkF zfIjoUjuO3p*)(W*QC?r6*Us+RK`T5L&$=roF34Fwe=ZAAxPV^T;WHv!-L`ik1x5~JdEmefznHuXkws9sU#(cWKZ*zW$e;`nO zj?=NK_ZI@D3)da{B3-zZn_qEl?B0+;bD!{EZ=0HD-2d|5k0)KP)?z9qnOJ&t4X##R zE$SjfDO5&%?u!SW{>hgKs??Y`yZSs$o?pE(t|C-XTqwxgtWLf zJq2{!wzGTIF$N0sE{pZ<)j-0aElgOu&Caf;tF-_nXWQBRYax5h=S!_;t=ERE>+xxi zD^mA^ICguiAB6Ws@sPPsMwPD*ZiOm8R@AmfI0*1dWZ!Twh3}cS%ZgcRKkq>Drv2vH z>i_BN4Lm5jJH7lvRxCY=8A-PAN$1$-#|w@dWT3&tsvJB=TrQTqJz4Hk136|N_Nn^9 zZ{7gyZM!I^!c!~D^<8nFKoieWDH8V}&HPQ<4hq3HQH?kJMh1I{zL|1Y*MtMU!aGFM z0!n+c^uXVhgQk9SdeSMl+NHQbUTSr=o`2WuOuJltvqTmjEL_-?|5=wSykKe91FhEd z(tU8vbc9|VwD+H7qc8L52WYU0XuX=?FJS-=PyX0Hcy08rjP){(fzh(v>CZ`xkzCI~ z5g*-^0xtMeAi*QMW<+^ZA3fg+Qp$!imvWui54gHbngeDj?yhysuVe`uevMdE#({aJ zWgY!l_-7;Kn3@VR=vPkzUeKTR^M1%1*Ic(h7{tFW8Sp<8czCaU7+O{JKXIVA;~oLZ z-QxmUUoD4(i@(B+{n@KA{-Z`}=}ZSD*yWIaH{DydRL=^T`kDeiF@G4RXW>{WR;$RO?E-&ku= z{Yu;}gf{iF3IXTn(j}}1R={9}d{JVKSl6Vq{bs-SrqjdhKdhx#ZlN&NG4zWmOT9mZM3GtvQ$_4*c~ zPW*Y9=-{xhnDcp$iNVnclp%6aTtz_lT6vTM4MX8&Bv_D*>29=*iwh0)+Kb9%_D`B& zy_r8tJk`?qW7>BrYt!*#zYzvHX2+(&%hLCM1Nwb6j^viQK#XgI3sudDu>ODYmIJoe@&Y@n%>G>uMN1mb6G zUMe>EzI|#tn1S7VDhDbD89@>p)=7Tq=w3};k??u;(9&!z5pC4`L|PzvH$M^8lS^G| zZ9oJMmCpgAuhrsCDpnoUU2*IhT@QxS-E5OOHnZTp50{$S-BXkN5-5Q~Pj#T;ZOkS? zsrm$^!njueZQagBBDENkvjHO%gNT}*70}0Br2gG9B#w&buzITY8$q~@ZNQ*}V-_&! z8hdk<@kXJp1Pg};1=DcNTY(AZ9j~I6Tqwf=j|jyGMV34*Q%3290OjcF1xm}$ z*}~O{@_h#rGL*KD_4|)^+)z)+nX**qQ2$TK1?80dTb2^~W7vUgoJ7C@c`wqBw zz`q0G9fWSjo~T|9{IAI3fy51$q)Z8-*nWtp+BH z#*%=R2J1&-(fx1K;E-r60%#9#`hVvGz)R6sqA;h5V509>;?Nji{qOH*Il&qK32pG- zcLC#Lnp|s20OpRtVup#ZNba&A0(-xwp+A5NVz89neNJMqq@lUNT(R%DU*MovEJVvy1|ELVra-L_knP zRyVXNAfVz3A-RxfNMaHMtQOR2aVb@+w76BRZC%@{t+lJ#YOU7R*0ySYZ6Eb%wX6DU z?e=Q^Gc)(zBm`{V`(EGo@H4q{=FFTk=bSln&fLkpW#;<$c~jc=eWg!*X{v9+^=0`7 zKFhZrIeoL=j*LDTW4{gB)PE}>L_T78ui;v8<T|y@ z5KZ@fI^p@`==%lB{6x9GRg9IUAHDm1XwwTmXw&bT{*n8E=51BO-M=Mt|MI%unE*DK2awHX9k*Evs8i>P%K9OIJXk4pDZ*GZPG^y>-OlbdL z(m8Qo7` z8}r%pqM0k7*=MqSDp9o#IrG|`NpI|^ioGKn)~oDV@uazTpMN>{(xF#gxU#9>A@#Pv z0|#Cj`ud&&PtE-4K+5}z56AxFieu2i$_nI@^99Or{8;Xo8jR`q1WyR_{^e+_aO1U? z2fh-JK44hfnVuiy%29IC{2tlkUO#;Gt;-VC6W;!pww$;*=S|D6k9-^+`}}c z1KSs03ezq{QGbb{Lv|iN;`nJ13Rtb&r+MUqMZIO2kE9Kc^KuMMU-Bghe}cnL-C7m? zwsGw6$G7Zw@*7j4rXsB7^~3@4_)m{1r~I(+R*CQ0n)jJ+w$FYvE_F=nBFXL<_RVwK zCU)<=H@7Hb*Tkgn2Zv8S_QcxX*M&$f&YyH+UC@%z+kg5wVkfOsTAPPViF^3eaZIPL zGF|c2ns6lOKC55j?RnyN9luy>D&GD%Vr8}9ltp_Ki%JpY` z$<4{+;D5&zU)sYFnsZ(zSfv{l9cnl`cIx~0H{O_cE;iwl(2$B~^GBcgW%`KUhSu!Z8UILS zyr^)`^=03#mRm5Lu|c`<^U?js#2@x=p1Sq7;;Tvi^5fDosi#go^DN!d(SkNj%G7yWiT>{6_K$ayXVQHW%OC@@P1sFOZz<*fH z7Ua(}L~0t4#cH;bV=)|uHRid@L<{?+&Qg=B5#~A*f58FAF;#X{NiN9=8l*uwlvh&1 z*o&-Y%P6C!+U7aVEP)HC#RoGiibFz615%(?DcFfzC>9nzBtU|~RxvJ$3ZNhibG8z9 zA_#CfS%UNi@`LX`5`Sbk2l53FZ>@4+ zZef^*dD0f$-8#YTM1Rzd8WU-~hqM-`Tq-z^@8b9*uIgX~@6QSzn=J-pv$%5CYA;e< zMyrW`QLz4n_$Y5#q`R|mV}yK4oC@^e6*!nxU_4Ra;La6@H3Gu6GuC|a395Wmgxfav z6@+!IN{?nvrIwdhGk^B-@|uRZ8Y`I>>}7em%?am`Y<7*^1(7TA$W8#;z{+TJW|Ogj zYr&WKCUsVWopD8R0{C8>AeSCAIvqAT#%jl4jxuG~waNdQc`Ahex_R=h){AwuvVv^Z zXUJQ8x%G7}=st>F=4G(V182^~K_HhFXNR%9dr^wrJZB2|RDTq3mhVk_7sew2?mers z24ZL+2EM(W)H>*EmSh32 zCl4f(4vIm=?C=U$d64R0S}kC!LAC{~{7JRay*2P!z!QP$5SQvdH~B;P$)C8GJAeEywCc$0Hwkg$=G9=6_niIi?VQtJ53LPo2$}_HH@NcTWMo9iDX0b| zL!4Wmf;3g&F4X1q$q;>3vXA+wLe+>sNL>wM*PC_fn*X_ZRwDR!mjUPcORc~a>J`H_ zRJcODIjD~-)R*hQ&lT#=;Rd)u13BCvS7E`I<^6FSX3l-Lqm6DAWo3*pXX zNht3|LuXoukjY3viVKl))t_ChqIiQH!WwJ{G1wul20PNk)HHx;`Ux>w^MfdWH%(eq z@0k_Zs%lMIq_1@*K6Z#TxB{0E(KLv^;=pV=MM7%443y)xe`Jjo&qPTQhs2h82y_L@fIc^2n9qyHYd?`rR;ItmOYq;ab+SMOLs{Xv`WU!`_ zNK7ZAYhO29V>EUMb{-Jo_RZ}m@ZRpuqp5ooOMj~{5=08-%31Ew4#voLVz@;}q&3)> zOT9;M-^$q~dWxC?o47@yyBxG*sHb)BLr zin)luo6?O&T?QCFiYAY7k8vqf!7ZfTt_!ITyO7>P{Zgm; zeX;ue@UE*EHH$&-vk}zEsi9}mp~Y}-ZGSr{mE;{Y-nXJutBh@5A`KLyA%5@`jFNre zO9@{bqW6!(7xW*O)pp^sB9 z*YwUss|jLQ{ix4OC8M4l^yHQ&5W&2XPB7m}BA9O_ahOqIqaQRGrk0F)rgYO0f`6&X zCzwBE63ibmIn3zC@9T9Vx95VWUB~;%3FgF!1hdZ=g4t&bhuQb;*jJw$>(JHielcbT z!EDhIOwvFJUmRxt?&I@rOwAc}a?hTaaDsVa4#8ZiA(%@w9A-*Z!3lHK?SwvipXfvT zL`?+qr5b|yQVoYWIHPF90K0cU+kdm``i!P>Zy}i18wlq01`c!RXA^c<@=m{cXZDq4 z2~_YK31;|Gf*HOv7p)~#! zjR986<$e@(;wJ?4;z5FX@gRpfL0^_&sb28tS?g+HFN)gocY^Bk7D4rSi$k3_a>}$M z^RyM^)_s*KihAM}LCrctP_xeDA|XVS6uqovYGqRW(uK>dXSW3-hZ66RMj`%PncO=v z1&Dn&Ci!y&roDH#b;_NQ`F~HVhenm3y@}{cC!-J|luQ>1CDTPpNhtG$|9&jR>0Z<3 zCg;xlyr1f|3yazb{^n~0fAckN5alJ)=g%3@a`D=w;{gk4pJ#3poHMs^pTY27$>LU; zXVl&r{n3=iRqs_a<~o$G0E68T{~8YG>o;6py&)nm+aT}R;9jx84S(#+UE$vMjx9|8 zChM29E6VXz=g`C4>mh!X$6VVH8vFI}sXekc&uRVW$LbeqeyZ^LslvM<^5IMQ6AB)S zDxaKR_|e1r9}BEJv~gMqGCz%8eQ(p>*6)08+2E@yobRV7RXWz}LgxDyT&untsE&xd z=~Eu|G=3KZmSYcKAAdA44EX7RxR*2VFJ-_lWa#WI3>^O_b|fzN;p|JpKC$neJhC6| zPYvB5EHyQvKmV1nlGA-MGyB%~qm#bd_{q)r?YU4p5^9?hkO?`hHx>WUf#r?UM zfCdwY23KpSnryJ^M;dLEh5?yPrPf*ozD8*P$aM>zSm5-;;K(6}7lKzGgO?U>f+dV; z6XN?Iz<~%b@;Ty$yXDtzP1;i&torhUh9*pWDkdHbqpLDoS*m2?GlQe%?YbnoP*gy1 zG^W^%kP#9xbbrVKRZ$esKkHzr&fZb6AbHxk!V%MNY^ftdo{p)80M$CZ!N~kobZef| z#3xtOpMLey&q=jMFx{h=?hsfhVYFD*!_6kU!BpFU14C9;8q#a(W+TR=Q=6;Qc0Hpu zn$4C!&D&I0-uP;)Goqvz(vireO2$=55RAZw)Qe+iFn{1SxYgX?%nxWz++zCQ7yEgW zK1z-UHxmyo4D3i}p6nu4Llz!J7p!+8!4AU#o-Q~jyDa57p_P-8XRXN3nEBuZRXv_W z0-$~cQy&U6Y;^{^R?k~7VzF7O~|Rwk&4LJ+YMgI;Tpsi$cU05Xc5%aLJ{t zbf*MiNiW1>O@j_0UNva#Bj?n@{A5SWkb;`lAd}gyc8A9spTqMQs~J@p=He{SM6>{6N0kiNJ%2T2b=NlGY0i65*Q($|FXnttsaE4%0_X$vRHJ;nXCQ$2;0Ns1nzZ=g4n(Fgt=%XqsLE=D6=%|9tqTAapT#UDb;@GOf0f5^9UDly zWhwb8qsFFZ?}{gro3rIsv)K;wZluZ1SVvhkHT-RH8$K>U&P*_5kC5&Zx}A-1?*5St z!Wuito!#zLk~@@Iaxd6k?YS{y*H(AFJ7k|*nZ*Ifw_!NDtn{VYsTT?PSjSwzf9c zD(D>Vc6`aV@FHLz3f6T1`vMp=?&oCDpTGl1-Wynw>BhbvsS7H`DYrb>b?nMqVmTq5 z_Y+z|YQs9O4X3r;IoqPtnPm;_5AgD(<{RwKJ+?nJ3YS zP&EOw_^QJ>t)pnyn6)Uv6%K!!RWMg!eH&xqXUHgALK>?T7;Fi20U^8|G=I9SWyA2E z3)%A)OeE`^013wcLsJmv4!9k15y$HgL;(^P(c)J4@<#_J^z05W?2NKuKy40w`E{8) zS!6jDI@!vkLUQ9tNh5pKHHlPs#r&M=2fwVkIR#>WyS0HekILF=HGXD&Z7nh}^>$oN zQIpFQ?A|p-)M@nfh!+wmp?@POwBdcH5#Gb@t;ZHBRiUqXpG4kZ=S(Ip}bpfRLTv_Rimbdefj=7k}E`U)#*S1G6V` zdk3bPz60}cpccDBfiKh_-;#Z4bJ~G1mNzaEg2&|@K(WRn;?p;`re-2Z z5j&t>?gNVE1~h;S$bTQ|Pd+(y&h3_}rX)3tNaP^WalXLX|0F{6Mb=*&4s0fk0*Mrc zUD}sE=Xk=AI3)a!i$RRpAP>YM+|28Q8;wJ`7cP6F>T6jyuEkp_P-Yp5Z70vsaySIs z%U1)_S}Zx2ekt9!cSh#P3F@3P%Hfm6kDir8^%wvC`lic|W`9i`c)tC+ceZS>UK+5- z@|^F3$@_Qgb?OOcS1((z zyu9waX`6prd{D}4kKR{PcdGFDeZM?sZ>W1EBK!S?-IJG0pHT62_5S4HpS~sDcs7;Q zNFR5N^yW0uhkpn+80y2{6#2wqJ0&lg^cXpP`FN-x1W;8=+LMmNQ9J2eXYm9#3~(co zls6Ek zw^?nUS+5Ac{rZ`ltzvfkeci_&!;POZ8VU8?TSm;2-+!CYt%n0Q68tD`N)E|p9?bnK zj8P`T6XKu$R9**09wxH`QNuiU?wkYl$Za~(*>vfNy|y1-zv7WM_%rPYM$0B~IHuKP zz}ls*%s^^w23g5;l1y^-PgPZ-;e+b_y&gDkR?6i;cBouvB^jif7cH z;uiKBx(Ys|h!6Z}I^Yuc?^VGpnn7vdT-`lWqy0 z>64^84mpADDKI(eBbPuONqFC+D?i>wZ1F<)OMe)TGi(^3-hlWcel)%T_5`loK}aFW zrcfMC`8cDXm{xyh3QXlq)$$A`4AdCTDzGPgO`8JGBwpuxT30X76!Dov%J0HdI=!{2P36Y}`0!1F?ti*?C#X`5> z?jb(l6cI&;+-h_9T27gK^x4BL`g9LE$r(==!T}sbi$%`t+#_Tav6!=+!75Ax8d#6v zwnF?|bcM&w?tkc6%K!*DNrx=;c%Q|2$bW?6nLA_xB8DoGhL1CAbPP>eVwQ`* zeF|~6MgqmVPSQ~56rJ>n$a!qefrjk|*FQ31CrW0i<%m8*WUpQhZU^QT1HPvU>3?+m zG#N-!5BSd;1c)!5Be7Y{t!Y+|%s>?XQpGo&bT zcYChuQy7=>aT6`yIodF~2DxoahJPY90it(0MARYfaIjlP4k6wXk41Xn`js-KuF3sD zs2R(T#aEA4SQaC6LG0a2+bepfw)owrn)+l+Dle(45l|PL|Xc-n*EDGJ=7v3oE1?1vTg;#3PV3)_PHezxTmVexwK22E2 zet;M8+Do4|VIh0-w*zxTyRfi(!NTDtY%bN;gS}Ov>S|=Oxj8U7a?7&$UBHB{Hwe9* z8?PPiH+U$;Isqj|XOCzwX=)6_iDVAIbh0xCShCqi&&DI?FMwA{L%jhI@v$wsDHTyA zAhMM#b!Rb^WfA}KtnwcB%P7%KcDa+go@fdjJ4B+kjyv1#8(prW z>*)1pjgp;w4Gua_$&z~&B9-Q)f_`*Im>#v_f*@{NB+qKqG=C6RJ^!7} zD_GNEPT}KYq=aXqxz>(qv>+Wz1Jax85M$G7Echt2-fp*K3>aWEYc)o_*=8Sr>Of2b zGJ4O2l^dvWi>Sdi%3w0s8Mr9W6nHknj3(OZs!+L+nadc{JTc~KthPjZy`9BKMH=`+ zI%sD#Hxvy=|XEKK%{UX@j3^PQA5wn~G&Mq}Zj zc5q%yVQQr3-Q91L2hzk)MDB$IyCzRd^J4 z<=j=z@_&SdIAKb16$(58ojiIS2A2YS8BW1R>2)`_T*$Q>%=eJYUk!@Fw;#mv2r4`* zu(T+=^Bqaas*V~wu!ImpHwjvILhwL2;^xic}` z_J4+ZB~JKV4sxoz>75rj-ias!Pj0HMsRVaN2-ic&Xv~1LvzEy~RrrWb21?FAN%e!P z=pVjLr(sG`2I}8=A(=n&A_CTh9nWM)1X0doJQRXhSrZ7ql15SA;RHGyj>agu=T3m^ zQr4b_IBb~6z_>g(ajxll79%xV<%Qb255+$I~YNabg;_}cfcdfd6h5- z4W_@MDIpE+dDcVXJWSAsJv<;~%aLqZ#+F0b?GS$H6**6AaN#Ur_yx+a%#-01;F#x> z`%X~*hZv6Oz%V&@;&MhStmDBG_xz3Ujvsi_906IWh7S}cX{-iKrIEey0Vy{uS%2h* zB`}BM(L6-YoQvb}-7A-ayQ~8zTMO*5^mx!N8Jk{;Pav2&g5Uyu2m{tf6QWC z_G#^n%$+kPe34tXxn_0Qw}-bR=52fEjQIavy&fT6H>Pk-W8y%oCf zTxr<}a8-gLq#hg>`N@!;hss1p$2VmLq6HI|9{pkh5_~bCXh6gl_Yd5+a$;-|3VdjH z@ykPc&OcK6Sb`Y!{ZTD^bXLC?3%0!ya&hCtXFs2j(IohE^bKXn!r9YP7F@UzKcfN- z*!=antjm6(*SCLRS~T+hoqxS2uR^8w<%&W+$%zJIikCQ*Wvb(xy)4FT18z=iA$=o-Pv?YDv#4ydl#!;Wl|KaTq(15lwl&Bi) z^K7Z{?DkV_JxluN2A)C^{o_bbCqG*JeJ?@ZoVv2*s`x_+OVY(LyMNxQiP^43yQVY= zuddv+du7VAsS|e{`mhuUX6-_v`vd*@WFkddJqp|%5I-3f6~2nm zOr;ePUPwJmrMT5NO@9MS0JYIvZP2Q5+-)Vl`63jO2C8H5*Wd(ovBqf8t4C{0TC;XG zK<_i_P3qCLIvXZdsyEowM%Rw2%vSX<1AZug#;9gV0*)D|s%_?4tCoSUDtn#A%BX8i zI>t&)IgTGwsvc+1GA0`{RBdAzH3RFN4#Il1kwVoFhLaO}Fn>luL&w-P2BR$zIfPLl zs6(d7*=%W=Y)h$43EU(`fT5(;HKkwf`8 z)IoxA_smm`-!3S!Apb20Eg&~i@okmUr|JD3e9hfwaX4IF8Izp#-ku)0Pqg~$&WYan zi4B(W3SGil5pSOa#6+nRl1)BJ)ga3 zeXd~hn%=E@)&x!KgA{w#qLloDU#*#DL{;&*(#o2Prei0~-@R}VDIPT<-$P>zHCNW6 zZtd(%t|a%HTm$G$uI0f=$g;q9kL>Lk*H=kH1%P(!g#J`x|IC#)$D!5IP!T|mJ9eFF gOqZ9=J3>Gb0KHQ<^!~@rIKw;s+VZ>u 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 v-I$2hNP|UCaw6Qm>r`W^ykx-