From 23ff13fa93298469842a15dfda997979ab6d640b Mon Sep 17 00:00:00 2001 From: Gelin Luo Date: Wed, 2 Oct 2019 08:06:12 +1000 Subject: [PATCH] fix #1211; #1209 - logic and HTML page tune --- CHANGELOG.md | 1 + VERSION_MATRIX.md | 16 ++-- doc/img/gh1209a.gif | Bin 0 -> 96542 bytes .../controller/ControllerProgressGauge.java | 59 +++++++++++++++ .../impl/ReflectedHandlerInvoker.java | 21 ++++-- src/main/java/act/i18n/I18n.java | 34 ++++++--- src/main/java/act/util/ActContext.java | 7 +- .../java/act/util/SimpleProgressGauge.java | 19 ++--- src/main/resources/rythm/act/asyncJob.html | 71 ++++++++---------- .../src/main/java/ghissues/Gh1211.java | 20 +++++ .../main/resources/test/scenarios/1211.yml | 12 +++ 11 files changed, 183 insertions(+), 77 deletions(-) create mode 100644 doc/img/gh1209a.gif create mode 100644 src/main/java/act/handler/builtin/controller/ControllerProgressGauge.java create mode 100644 testapps/GHIssues/src/main/java/ghissues/Gh1211.java create mode 100644 testapps/GHIssues/src/main/resources/test/scenarios/1211.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index f1c6f5a5..be9508de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # ActFramework Change Log **1.8.29** +* Incorrect message returned by `ActContext.i18n(template, args)` #1211 * Provide a default HTML page for async controller response #1209 * Allow it auto refresh when got 409 error during hot-reloading #1207 * "The response has already been started" error #1208 diff --git a/VERSION_MATRIX.md b/VERSION_MATRIX.md index 7ae66871..3aa72a8f 100644 --- a/VERSION_MATRIX.md +++ b/VERSION_MATRIX.md @@ -5,18 +5,18 @@ | aaa | 1.5.4 | 1.5.5 | 1.5.5 | 1.5.5 | 1.5.5 | 1.5.5 | 1.6.0 | 1.6.1 | 1.6.1 | | beetl | 1.4.7 | 1.4.8 | 1.5.1 | 1.5.2 | 1.5.3 | 1.5.4 | 1.6.0 | 1.6.1 | 1.6.1 | | beetlsql | 1.5.7 | 1.5.8 | 1.5.9 | 1.5.10 | 1.5.11 | 1.6.0 | 1.7.0 | 1.7.1 | 1.7.1 | -| ebean-java7 | 1.7.5 | 1.7.6 | 1.7.6 | 1.7.7 | 1.7.7 | 1.7.8 | 1.7.8 | 1.7.8 | 1.7.8 | -| ebean(java8) | 1.7.6 | 1.7.7 | 1.7.7 | 1.7.8 | 1.7.8 | 1.7.9 | 1.7.9 | 1.7.9 | 1.7.9 | -| eclipselink(java8) | 1.5.7 | 1.5.8 | 1.5.8 | 1.5.9 | 1.5.9 | 1.6.0 | 1.6.0 | 1.6.0 | 1.6.0 | -| excel | 1.5.0 | 1.6.0 | 1.6.1 | 1.6.2 | 1.6.2 | 1.6.2 | 1.7.0 | 1.7.1 | 1.7.1 | +| ebean-java7 | 1.7.5 | 1.7.6 | 1.7.6 | 1.7.7 | 1.7.7 | 1.7.8 | 1.7.8 | 1.7.8 | 1.7.9 | +| ebean(java8) | 1.7.6 | 1.7.7 | 1.7.7 | 1.7.8 | 1.7.8 | 1.7.9 | 1.7.9 | 1.7.9 | 1.7.10 | +| eclipselink(java8) | 1.5.7 | 1.5.8 | 1.5.8 | 1.5.9 | 1.5.9 | 1.6.0 | 1.6.0 | 1.6.0 | 1.6.1 | +| excel | 1.5.0 | 1.6.0 | 1.6.1 | 1.6.2 | 1.6.2 | 1.6.2 | 1.7.0 | 1.7.1 | 1.7.2 | | freemarker | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.7 | 1.3.7 | -| hibernate | 1.5.6 | 1.5.7 | 1.5.7 | 1.5.8 | 1.5.8 | 1.6.0 | 1.6.0 | 1.6.0 | 1.6.0 | +| hibernate | 1.5.6 | 1.5.7 | 1.5.7 | 1.5.8 | 1.5.8 | 1.6.0 | 1.6.0 | 1.6.0 | 1.6.1 | | jax-rs(java8) | 1.0.5 | 1.0.5 | 1.0.5 | 1.0.5 | 1.0.5 | 1.0.5 | 1.0.5 | 1.0.5 | 1.0.5 | -| jpa-common | 1.5.6 | 1.5.7 | 1.5.7 | 1.5.8 | 1.5.8 | 1.6.0 | 1.6.0 | 1.6.0 | 1.6.0 | -| morphia | 1.6.6 | 1.6.7 | 1.6.7 | 1.7.1 | 1.7.2 | 1.7.2 | 1.7.2 | 1.7.2 | 1.7.2 | +| jpa-common | 1.5.6 | 1.5.7 | 1.5.7 | 1.5.8 | 1.5.8 | 1.6.0 | 1.6.0 | 1.6.0 | 1.6.1 | +| morphia | 1.6.6 | 1.6.7 | 1.6.7 | 1.7.1 | 1.7.2 | 1.7.2 | 1.7.2 | 1.7.2 | 1.7.3 | | mustache(java8) | 1.4.5 | 1.4.5 | 1.4.6 | 1.4.6 | 1.4.6 | 1.4.6 | 1.4.6 | 1.4.6 | 1.4.6 | | social | 0.12.5 | 0.12.5 | 0.12.6 | 0.12.6 | 0.12.6 | 0.12.6 | 0.12.6 | 0.12.6 | 0.12.6 | -| sql-common | 1.4.4 | 1.4.5 | 1.4.5 | 1.4.6 | 1.4.6 | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 | +| sql-common | 1.4.4 | 1.4.5 | 1.4.5 | 1.4.6 | 1.4.6 | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.1 | | storage(java8) | 0.13.5 | 0.13.6 | 0.13.6 | 0.13.6 | 0.13.6 | 0.13.6 | 0.14.0 | 0.14.0 | 0.14.0 | | thymeleaf | 1.3.5 | 1.3.5 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | | velocity | 1.3.5 | 1.3.5 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.6 | 1.3.7 | 1.3.7 | diff --git a/doc/img/gh1209a.gif b/doc/img/gh1209a.gif new file mode 100644 index 0000000000000000000000000000000000000000..df42f2f571737194a19a90026d52d8c9629413e4 GIT binary patch literal 96542 zcmXV%cTf}0!^YDKB?-Ml=p8~e^w5ixND)NDfQX@}0Z|cK3cV|cfQX?Z&CshFiWEf+ zML{Xj#E7V%eiaeTk9X$%{Bg5)J2!W?v%9zRJkL72I^oSisGwWGUqA!E@lF5_0E`(& z>=XW&FS-wnLZLAjVPRpBm;q5yQAsgTNqtADeFD;D_mNYO-)H}zpscWef>pq(sbf!d zC}Ocn3d%}KO3KR0s;VlgnwqNaF=`5OYHIt{SamHe4ILfL5WJS5rM9+~j;@}L`2ihE z3mt;D&ZR}2It#rxUA;O}{e6s0^=%0_oB__r1m~)c3wAWv$IQs!NTEUALBoBFO%1Dj zj0_Eomh6o8F*Pg?1Ox;G2M34Xv_npWg$JsgI&=C|L-Z*gkIbly2=qm(qROym zFT_(~Vkq(QF~j`l$RcsHwD|JTgv*x`=!ppppRej^U5yvLMx{|7y{E-V(isfK_-0~a zVshS{lzq~(Q?H1n-nfyLm6@KAo|%!E?dY5%o|JPVJ!e2Y_eSnb8JU}Tc{lHr{rk0( zUmC=O8^dKEh(3J4VzGwKv~+Z~@6*%U)6>&C{i%=L|7dXN@#DvAw+Qytv;F=30|Ns? zX$m95!(#;Jv1iYoS{XfkyYno_b8><+RU`9SNMv^Q&AhnOf@IO+yLU@O{pC+TSNR23 zZH(5WT;G=`z8|4+dm1-3Ha^*zY;Jw~+$#9h(RB+9-U=Dn+S=N7)!*LU{_f}d{ris} zXJdYJL4Nf>e?J!a{lxh9?(UxinLm#~dwY9-muCL{-TV8G_pkZVzdt+w{{H*N`^)3; z6nXrfj=nzjwnRrmJscPa000z!L!f*BAV6oo4EVoc0zmKpaLLrEQ#t(%goswqD64ER z1*7a%;?i9HBtz0Da(=YAVk8G^pDyd#QaP3f`%@@|rA(Gt#fLsEac!-Beg}VUV}7i) z=H)#CgHO(_t#+cqB~R!hqcy?d~;X`wg%`^Lhv&a?jNfnnT!MrHc)V4$#e@OW4A>PW8g!BY3`miNyJ zjiMIEyIViJWZGxQd-Sw@oT~M?XR4#>QG!oGKP&a+8~B22a83QQzSXZ9ss7XM1_cxmuQGx{{>kaQs-TUr{$rfNYTUOkO)5qjU)#0 z0(UtDo2;>ts!~8+N&9)Vlf>9Mp8}DL;gpSJ8ows5X5rUsSFZFLD(UW~AJ_7TPMYuY!3iIR(q$u45~boR%b>zGiJI$$VFeNEMda%H>&4L>AJ^|t zhBenkaFaL6F2}Fm|4@46=f@BCs4y)qGf_N}eA$240FH6Jc2QN%bB~%Rl7BezV^v{z z-N)*Z3mYG6n8{ijwUvQSZ=qiKm8sln=-Ak(XASeTqAI*pddTs9ONXEs&wRg)2W*)3 zCTr;0ZX$}TQ~bVR-1O6CE5|PCJv}o)9V$$&EL*#D?fj?Dou?y&Qp7zu3EXaOb^Vu~ z&5loBnBIi`yM61CzvM)Bp8h$O@uw+4|IyTN*)Y1@dv^%!{ExUfAaG!FYp`@O1Sb6T zaP;;Q$x{v6!@o@X6Ghz-%?ymaZ~xH9qFh-E#?2D=WK8|`9TicJwWH_y>vGH=^0_nb$gV5d6_(Dn;81s zC6hfQ78FlHQ^s+?k*e zZ^-QPRT?@PCKFB|G)XogZJ0p*a(2JQ4ioCb?LYj8ZfoscA*T^NVzxs}R0h~a&nVmf zj3(IzzX71bY89#~DIf=ul6wrxp__LN3&zSud*3uK5D8#Aw=m&urlqT(IyDKz8_LC%%`ofm53##A%~a=*dEu zOra3caHkY?mk1TQ5-OX3@0Y)}4Dr2+_B*b`5J&k#IIOd)t1Z7;A;e;m!&Jw7E8)7=n9q#8xX|QJ7(QZr3oiOnE8itoB4=F>KQu+{t%SRRt#+De!*2lW%n_>IVPF-bzQ8h$IoD)$WdD#sCA$K(sqS;feblJv;UnKnNN z87~F2s!`#vBhv!{sTi12G|uU3yO0Ngtbh=uA}#_HL9zf^NypPyO$qe7mF7)ekys@{HQbg{-@$%$bF!M^Y7Q=J1pexo zecp7T^V!0egkQZ&f)Cj z;1TS=?Z+Bb(f*dh^5zwlN20Y*S7nZ=6q3+yB~!8=l$|)Q14h0VY{^Y=UsIC#J?i4w za`XPd07=eNX?w-?xr+eEJCAP+eKxbmlgatpVGAoVik`a$s4#Xp(glBAtL>kT2%ER# zL3#=yh!%CIGrj^lj!#6ktcDyTGSM%#aE8A1Y4D+CiLw(089BG6?O6ljX?Jzc_FEoH zYWFUA+xzzBf#)ARFYith#prrA@cqUT^f48Nz-;p$oG(YqQW8zusPKSCSXVUy z#6W`z4=34)Pp49K3zt)mla=nIXE%ykx(PTGvIROwj+yPqK3Q+_ndj)bY++$Pr$kq5m3XdE#kN>2x6F5Wi*-a@{cspu+=0)Pw zZn)ePJ;BS=#);k2$5f(8!e4NM$dW%>EqDHIlD&F!mH)-I9KQ&&BK;ZpfLiFv>4WRz zm?|pD_^bx5f0e%jtZZk zUd&mvy#9$Me+dM32W;4ejc@P$_a7_g@0&N)u`=;}KVOM;+pPYJ{kSOiRpp&U)se-^ zx558rV;`7BU%q7{_!(m{{&@a<`h~_=v(d=hPkrSz@2H#p`R`{h@9$R5)|-iaT60w( z-sUL$+MWbW7*7)opoz!RBnxTMU9_ExRKwd;egAWZW~eH&X6R9xMj>6Ri>@J25Y~mXIv}Q6$f)@aCUcx{I}Czkq8&cbAs~?p4>F7g35~?61C$9B3?jm$9R!QR zPyz8t0fk9{T}eT+Nx?fwB+2AZd~#Soa(H|)xiC4hD>-^L`OIh%z}d|$p0XqX|1qU~ zs4&Ij9PR=cbm>KZ+QRg@uJnf4^roG3mSjc?KBFxlqa!|}t1zRTn+BUn z{jLlOBf-cNV<+FV+wqzFBFYgY*!XPbi=9l4WY#1;YdRq7b$r%rVbu1*A@Zeg6)6U|^6>&b(CXm0xc8Gd^dhFlVX88u1dCI>) z&PDm`&U}}#e786G#NYYeY5DquTfW`-J5MeArpK&F#3f+XmFzbl1X*W`zme1*gXf zv~W;+Y~D^R#Kfq`*rzD}Qc*!sQDJvc@tdNO-$kWT#Z0r}@*~BSmx`;4ifg-z>)sSM z{4Q>iy2CQN)1p~?RI$J)Uo*UjA%D(7ehCO50zkNup(7>3mr6#9N}hI?jK3*)@wa1dK22!#bemjI}(JCHyoEP;tAX7cqg1>Q1IyG)F9nQ#viWL|>8 zfYps4!0xiAV58rNQrU!@1)*{kzH*g>@}B`Ydw7UWdbv!3;a_f1vXBb!cF<`$lEJ+e)wW>ga^($iOO!dDUU*nlNI`1@oHlC1}vrJpctdTw!=K z&4O-Tn;2M|oKTxuT>Bx1@>>Y>kHR5*8_R;w--UitGQzM$)-Jn?Q24oadz132};n1=pzXnz7U zc&UEK9BQ`&^&vEj?ly3w8z;>hrvn>bCp1naG;rz~=QkP_cN>o~8y`tGjcPTm?KVy% zG>oT1eRAue)G|xPy&*$QFAl_;V)0*~Rpq3i7ZXyx@*pqtKzx_x!f%NC(#;P(M$i)w ztAQloKJ9HH^Fa>M~0OKg&ksj!9I&@hJa+QkEAi<7qwGn07 zy)D{(kG3Da+#YbJ-N&LSaIQVLw>>DM?GYdB;0E-Sl${r|40R&sttLb>7o?F3Qsvyt z)nb)T%FTRhi4V}WEVd3u8nwq-9H4?Uh@i7aL8<_-?hjny2E@V$Lb~Da!n%2(-q-~| z!MIR$F8aH(HEUv%K!~$yJ}_8r0D=iP1H!MY$mo_O%t4<*(p*okN|bL40UJ1TPOk?oInb@A(+(Q^$DuZ zLH6*lpx~|cwWE*LWts-eAARV3w3gAsst`1|)&mQG2J! z#odEikT6&v6Wn8Q^bnNt@K*|?QZs)J;>3YHOy=j!@lUWKEr<`0Iyz&k5dYjtrG^@n zO{hJNU2qh7m5oT@4Csv`E-gVFS-mq#(1RHWe953$ANA(Y`=ZgL4#+# zS?4shz)*7lyyY^omH!D*2O(*$r6-}KEmPT%u4%p$XBFM&zJ~B4;QBI5t`Y<`m?#bf zVa0*xu}+QGL#%S^e*O5TU*q(7+`CgbC_e#R<$oG}-Xi96>Hsux?(kIu|setW`sY zU1!3}KD6YjgJg33u(^IpoM%eRz5{F$^I=M6ZBfIKAdL_qfmodO}UpWlteM-sbBKlSQf)--3r znOpFqhqOjO?kTuohbx-iSpHuWK`#fvA6S96Bz_r!-fdoanFofs@wDkE4%)tj-r=AY zse+#XsJ~1>3JK~@8cl5&EtsEPi-P7+_)D4mDJ1Cjr|D1H9SauF1lDk(<)fhbCLrG- z$i{49D#3a7xk(B@P5s^8P7}aRvKkK(}=Jt13~q3;l50O z00DY87gz(N0=wo0zhDrvbNxghv~gWg#}eWjwJ5hS9-9>G%5&gxmyGy7)B-8^UNX>pG-`n{c z_rcirH?ul}rFZ0#d1Wd`ZYpB`fUYjV#0k(^0`v?4k*hbi-q&Y@vTG32>GKrYUG1fKQ3N)bkr0j)O-KIv|P$;nYRLTump=@VkfnSs1V~ z6O_NT@YE9-MzSm&(3oCAUEVs4<9~N_Ui;YQIeO=np5HX$1oU4lzck^~Yoih95-^b6dYB}z#}fQZMelLY)J-&xh`LG|Sxy*L^<3pcx2yHR z`zicJ6oJP$$n%6({P)^d>tL5y@XRg#>rDPT9QY+BENTAX(cJp-hTf!B<5xgf(Nw=T z6;#b5ykEqkHnFI^EmYKk;A<-ATJ~BJ5Y!5hakK6zr~w)i_}tI}m26n#i}eGSt&MX9 zKT^@xIlv$QJctdvLq&flAyhE|8kw3kGUDixh1?B@t28)>T@b`7&}1X75Dk~++PXrel=0ye=cac0ibHR@Z1-OA|hCv4G_o7UB`jE2@{13*zieY6G5;8D=@?4 zdvt7L@HCjiL2Ex37-b3~g89|3Uw<8ec9+89SuZaNx84!<3v7FAghlkS_<9M@vshH~ z7QFkxCW`|n@-|7FPt2Q7+9S1YfgqQ+kl8rSo13sPJJ^e3&^I^#exHIfc~r#fhnjwv zGk^E{BtL}2)V+H@b6a;L0P4Vj=?JJpG zi*)GM6_m41lsvTJkS?ZsroZJ$y1=Q+$#R9U(1XJnsvh35A5V(3ky<1L%@VaFjQt}W zOn-oqGXP>9rFfvUsH+&x=APy6vg#ap_p6nVB)&FR5z*?N^Mh(l3f33CE}s4rF6ijn z;+c!R6k7fgpO78r3k*G68^m-enO$P_=PEs_bP?KRm!&MUc$6@=ZlMB^_#oe|WyAN< zEPvH2o_F1TZic@&MZ;v*4I%T?4gSr?PJMW-aG>7kucl&;j<8%f@61QKQ>LVG$aL=C z(D&)tS@%xf-P`eD0L6UiYeOVb+3-El;k%X-G+4fxbB~-{?0LRCHDW|uz~eLEz{fGG ziMmlduYy!9?sKIHdddrVW0y+m{S{5lD9A2(g=t=%=9Er5DPg+@aF+Ewe5A@Y;BZJ- zV$J3`5W-}O`OI2{TC1CF99<|_`?h0hP1MiREa{dck6UKF%CfHzl{y(0)9by9ebJ*u zpsd})2k#(}A_TxPP^40lgH$af4*-EIz+jo?E~sL;Vvo3=~J;wzi3>KB3vP1{-d+(c@{D%RpVJ*T+YwbG<%rF%VPezt~d@M z@!^hlqNu$)g4X3)cC#%_LRcFHJK)PK$dGJ9!Z9LDvQqzex%Bp<7fvO9Pbb`DobI_B zPJ9q|`XQApG;6B!32qdr`Cj^Tn3S{3Y34+gsNV`_na#|PFHbQsOv{F8nU6s*S~?`E z(1GBk0v*}T*2Kc&#vw4N?NKB2L-jCf^4;TwLdlY0iN9;ackvKVrd6GbJ=(C2J?LO0 zkX=V$-YTr?_e&o;i8(n$s~+Gxb;J=PQWsFbdtKJ{@l=ioxBbkJu$TLUp32XiAtB@S z!qv^z=Uu3WWz&Q|(IS6#)-Z-o1?%`kFdyNgf?#9&TUG)Br&HA|m(m1oR^u3@lr^NY z!qv(f;RQxmA(v!2%8guRWdna$mN_n2{=#AkVf9~XpXADo6Voms=|RMzP(B9(;ROaL z0c7rDgy}zlvf9_i(asoGWgC?+s$c>i}rMYjsWFY|I`RUh`PBfrz`K~GO{G-^GaflN} z5HB}T6k&}fVMzw50jUh(EGksz1tP<~gv1vw@>Hb60ANza4#I`Yyy1|pKF8(#g2>?Nrv6I|@8Tc{wGKNA)QubbgdYeK7 zNSwRyMJnA@N=?s-#|CR)np3Pe{X*GHd-OOUSpm@O>%Z;vV<#r(THC5tXbdPEg2=~y zDZAW}$`JJ2qC$rnG452@(8@E>*C{HJ!+A(N!d|ikb12=-w_HTfUMgX! zG5K3$P>E)S@a80BWQc8`$rO*1oJbKS&@O@ZfKqN{NO#hTNC7KR&Dg-_;CLD7q``oQ zXD(dJm;sBdOS5rPzy@V$SzZZ(W zl9QW$W z2ZM_Opw8GpfC0n9$`}X42O-8IAe!!zf8~lN##Fjz|+K z!a~5+J~j%!@O5t|G}X?~Y>%wvhb8w#7v?A>N$k-N^i42v`|Dg0rq~Tn!r)dy0nC^K z6d()T6YL5X*Tm5TqVY~cJo4+j8q+boha}H!qVrT2iutEc^h1K4d*^HI?s#texQXT0LA$Xf6oPgfAG{ zNxVlw{wq#J1(NAfqf75@JZ&BEVh8grlCsXkgJpLBaI+?1Bu~`$&4@Q4KIigMYSdmR zN}og*#gvdB*e)P~OAt%O5u_;WRgppf!jNS>C9UD+wuMVQegy84+W%fZ<&q@pVxoAj zq?N&!?ab4C=c1%akmDK8PML!tuOhu z4bwKmvh88hPoSMx+jfq1qL)L#HJvUPSz^o_m zn7Z9kEn!vmfrl?w&RtdvMfIe2r9}bwU05(Y6;%k@G^<1z=wi446bpdD0CT{!*p>2p z3vdKA(cA@!+GP9U8AnLnMhJ$M21uNtHO}BGsSqw*?Uvl?zP+oF`>joa!mxJ%YWmQm zsi>6S3=y(%U90(htt5F6l&F#9jUQ0ek@~{|8ZA|8%!74zG#!+{MlKAqREBN|xKmoa zjZlaaP4D5)QbT}DMiZm9dSe5`co#L`*NI6oT%cBjhKfDE$+KIY^=%K{D357pfW7Y5)Kvg!celbd;f6ksLyS=(FS)T_A=e&6AUa!ZvY@ z^z>Pv6CB2I4q)BT(d?rLchx~VK2>LeJ`+pDvNPjv)&vVY42BH?tw0%cf0sd!qfape))Zgf54hzrz( zns}iEdeJ>8G~W5P5#DZ1sn}@0`RFTC26DZ0_@MK66kT%%ye};$T0-ndkV`aM=6yp| z4*j`3!~qZCWemAEa~WD&-P!qcxgDoi$cPem^yX%(7Td1V4Xn>?y_v}8s3TEH7>wn@ zTa1jyCKB(vV(&Z?#j@BI^ge4@W|P!tu+*qZGe2WlOGSgOhyc0do8Y>Tj6#qofhNRy znmJqIC9CE@rFma*d?j^P2%BupN&>quZXljb9}#76KzgY|nw%%fIR5jOhkG|26^sV& zljuq=G|~7WQ4C0hX|HAAzIneTzDH-0L{B@)I$Z*~`D3udwh+3BJHJUta8J6>z%b{q zFNlJR4vv>Y_*C&A@rrKcE}&w7hav`4&hR*-{Cu*HCV~e_vY(1*02`te%=6XHr5W(# z5Y92vG_tI-6o+=NqUU|3xq$`Wdg2R7Wp`B#I!BxSNymd*!r$l0l+yq?Q<9^Wl4H7( zL-2{`=3U40p7$W!-0wX9B`{PK?N%2f3SR>0a+=;BeB>YnvUL?@065Q)9H1CyUkwAB za3GFE$lXUryOOmuQanj|&?*kJk;C6k1j!+BT~AyxX<|koMQZc?qorKqLmx|S%KJ3C zMu@utnXY&G?aanU>@&Xo+eiBIR|y8QBN)$-0lIo=oYb+7^Rk9c%S>cek9W@~0nkfyZPxzh(M>rZL-MrCd0*#S z(=P44Zclujo=+cqHSPI++G}B&_}?_~D$SLdWJ*;!Rmi}Sr?tqhoRUBRw_cg1`UT#7 z75L=U(N}&)-@gj_?6>y=B*xVP6w=jL2m2gehxxred8^XOTJ{)^ zM$TNg^)jp1LJe~mnCgJW%`zNk6a8kBPR=HupG`>$NPSN?Btv*7Mxg&W_O9oOHTmwmm*098czTa)|)$404PEDLOV)zho(JB zKP&cDYB_mjW05zJK@c`JpSvX6o*`^Pcp*e*aA2j(ID&5i0-S z+&L2bj4mR37+SgnuO=afm-t_k_}7;ZizM{VCnYiu)Z)PrvLWLLkcg?hm}khP$Pm%+ zWyuR65m!P07JP%$H$^7zgb9_Z}fsk^A!AIgq%> zp{?>Th2a&C^|k7|p|OoCHlNoRv}T+LpX%(&$+DjD*cXQ{y!TIjA5icpcm_>t#i*Lf4I8- z;ct>pENc3k>EV;Xr>=haz>q%`i6TYGlcE=$dorgK?76(OYO+@L&Fck0Vd9$S3xqE; zadWh_c*M8dV>F z9Y7J>CkezfXxs8fF0j=U*mf9Hct$?0zW(A=&jq^2A-6IB!+7=>&jw#_vcYYnp`Hr{SQmy(?Whe7 zEJvlkKN7xvU(gxH=)$W&A4IVWGBy|0o+Z3kuU3C9B4+(I_gQ&9#-OF9orYiP+eM{& z9EtLF0^zufHTi7gtC}@x@iZ&10Ij-{N!?L*Ve>z_dG3Zh*jN>?1*uEF5(j&Ds z7NvUQ-j1TxAE50n(nARNzPwNK-Ny6sb744G2q969>VcaI>?vpny2KaT#;*aSS!*O| z;WH$#C@Ym#D{QhkFUyneVNsA(!2(($6c1kqVl@o0m>=E;8IF7AMx3ORq#rWobOiv& zs&lolT3toshY!g_eP?*3&|e(`bRZ=y=t;U?2i+4GLD{0^G@!wq=lpPBM}eQyqFHXP zV4{mf-~o(qceZ2Q&yzW40-J#*J5Y-QuuuYIR>fQ>DP5#?G9~W3Jy@j~rHt>fXMOj647E)CueU%r&WWzbj=RU9Nnl+o z0r3v#biTS@3HK6}sn4Y(F`5|K*+~$Qz~ET?R;Zha)K`}Z81gt2$*iS|aN-lb#+S|H zUsN{iiu9qr0G%4NJ%GTCz)t8rwgPlLY`T#ZMIj+1-MC>bp(*hC49I9p$Ec7p_v^k)P0bVD-;GJ=C|vk<`F=i{ zVR4RP1wa_tjOW_YAXS{61LN zRNV8A8-KHf58+W%Y3{xYxk9Eb5VcG+a67!NU;#%50)zS zDcK@C6++!oSp_3gN`(X|zW*)iB{CIsSJH8C<0ZdJ3>P!q?_2KQTj$?;=5vC{O*Qub z<@?_xvR0-W#a?FR4JRK{@hqK9HQMxlRo|ZowLiQuB(m&P%~!!l36!>cJUKpHkyMCt zza00GQstVQ|H>Gteu#K>-M1R5b<0pG8I71INcHSpEG(6StA`2v6fWgK8|E$YN-=K zAZ|lXVh$efBp-rm`+F$SQv?2^BD6jCzNN?yAe1vi<6ZD$KCCxbekyKYq(qD$TQ)@D z8FI=Fp0o`tOvc5eGWnHUroTNiyvog0%-DQ?t18pznjuK^cp4L_p_cifQYw2?$xe2( zZ!1L)XIp)+qVT`vwF_zg=%ezTd(0H08pLWk>MCJ1Q(oT~A$Cxi^exm+^hH3OsO9fU zhU(xIzGc7mAfVIn(H|4`Q9chPDjJ8nV(l2DBXp$HV`f>BQ4_-6U0MxOk%Gv}4;|3W zvs4_H*XN4g5>;z3_bH_m6c>jEA}XG!bWpa^nmGYCi?sa}4eujsFkm~)g09JYy?}{r zx*AaUI~VF}!CuA2G+60bx&4u+h{G*opSzY=F2b5GdA zGG;*iItc?evguoLmvy!QJk@`**us_{@};#f)Ep#DG9ODa5Le9($Iz9tsYIwzj3w4x zp|Fe2R(MQaZg^eqmsm4xD0nVC%bDp5-S@-3QI!W~siXR6PQQTE3l5O3?1Ei+s+mV3 zxGTU|MKHs-RLmr7m0dM4mT#nH6u8xQB+g>)tX(DRu#I9Tpbn^TU zF;+}UQ&Z>AhCvMhbco^li8O5?m=V6+kiMVl@wJ8J;b?ls{igasaB#%zplg7#PLGF&m_B#v zJ%Me7X1cdj}n6$A2LZecU55l_Y9SWnJ!34*7G z`e73x#ZydJh0b4)RN?5ItA$jBd_b9KHYQ(hC4i6TFkOzuav9nQ06upL7S+OJ2>JOm zbwAI{kCFx6EyY4*0z$*c#V=IaRP9}}BT$qRZ&%Z$OhRkvUIj8Q_#?K^+u(r1xTlB4Z41Gpv?0Fi$+fZWCM%Tb!O zi}xdoyR!_lx*>!g@s>d%zWw~z20U&jNuYrRl;JFkN9oW-b!YX)NCm~zWi^K_yviV6=wRJM9bRwrJ#U2@{JbCEtfQPr54#Jm3$ z%_JoOe{S&`)oK{PexE(sYNi7aV#E@ObV?-_bd)pzxQ-d-M{Q?7yU3_f7yAk84}9*^ zq2Na#pj;c(3ztYt!g8Q$IO-Z7)=q+1D{g>Mq#rc16~q#g`f|%s;7hhc9e_dPPn?exW)+Ujg)Rn# z9IRKxG##>U2B*EvQ>g5h(#O!`>o9ONYDkECDi~p1#@|yHo@jKi8GMA+;N)p1qT|l! zWi!FV(XBv108}G-i{bR%kI&Mh=?>bXRml{Qrc^%o1_uPWT95=@Nu%EhHA z;=0x}pz(f4`URjLDXs<$ul(v=n41Luum$$I-tp#wfNsWmtYG*!Puwcm9^3hM3eIoYDuOJT~R2ya56F|q(xrsqSdRx4Tlk{l4@0_o@}fbCM<;C zk2?TM!NSx4m5ho4B}RsL^?djop;xiI+^nTvp@i0%e4F04db&$Bnz9@XmSlV80*f0$ z#X<^kRb_eO-_IXM%aj+mEoJBoLtnpgR_tYFI~Oc&ML5x8{~3XMjoCqhVkVJQ#f}WMc6}d#{caCCJ9*$|GJJ6M5vy zfcQCfuj-lQRE2={kLRcA?n|c`Ex}WSwl?NT z3Q(OvK6pS^P7MM1Q3tBRR#4h!Y`e|KVB;Ci5Ui={csWl?`?ezlK~F@U!YiS!NmwP9 zH2%x7?d61PBuT{))A5#94m5r?jb_}|P~X1CdvTwq_!%hugKz>%6Xf=*Y}%rI`{l{~ zgiRWXY^z`lj8&DmtYgpnPr>jC{n4wVQ&^ff-tIot_9e9+otTaorimkRl=p0pHV)$q z2K8t8&ds{vbnKrr7ujw;^ZZLw4wxG77=W1Dg01CZ{UGsS%)Aob^nPo*?Xl(Y1M;;? z{FOA$-x&q>0ogvbY(Ag#kAD6i{VH6V3%5UfIa_cxPxzZc+V7dMvVPr4;N{dMd4#iU zK;|_(NPg3{qj?zVl9s2U$kPSGg^vtgp$jR3l(@FCP zrCsDwr4e^U05s7}pwthxvh^yEFGM7DMPZ3XP~`P1P=r!Bwz}f)cK=&Fvm`V^fgy6` z5$+IBv$$frfN#Snp@gnC3vzI()SVwti1&8G4>5jFMMtRuC5Zx5>V2#&IXZQ6kE;LW z=tEapjR#cQGR$Kd;;=aIApY&qF}D2vc7SQRbRQL2$cN#+nkoVyW~qXd0znEDNuGPM zOw*pX(`BpV%+qzqE3%3-B*8gQFl=fTz`FEg%q0b`Hsftv;@}ka0yiqu2zS{abbJIL z3aQtT?|rybp^tzT#7Q#1mfV+&iuXTaw>A-$>W>)VPj#8<+n1K^`j0NCKV%crpV{iI z1+}dm_Y6}A2s?JVSXuH0@`p-bDUaX}0Al*yBjazLP$)t^8BSPaAHly6AUsM{2iiJ!JUO~MgT(evh0Trm(oU38 zUvmN8ZvmKD_DxQN3FI>ZJ4f9o2a$cajdT9npSOcUG23EkyJof zcHJ`!9D#|nQ5!-swHk)&8YXWXrLQ#vM*fM|`0GKgS*&~TPm2Z9j_UKfL*F=>RF}_J z-=bG<^T_WAMZDhdlTCs<{Y;&rt9D0tea9K?&I|RO*R;Dr-J5nR+6NAIm1_4?*Y`AO z_jY{h$d0lp&`#>%X+L~j|8Pnz%Jgshc+NATWqv6>j zo$=v@@fSMJUpEW~Kfh7X5b9oGo4WqD40tT`E(fJMA>KG4uRE#MIH{*QW!gAptvl`1 zIPIzX>Tu($VBOc@jjzw>&Rl4mxu!dt-1zz*08>)?rnu2w^vP3ZKblN{^y$u91Lj}o zF1&7BSkzryZ(RJM`|fAsyMMY%u%;!H-m-Ypvb^4kTGNW2-l}QSsKeo+HgVIxnDns;L%_L6>iocIr~?7or?)xWwE05s^XsP1i+W$y zo4$O}`}(u#>p#6M*n=&U{3=tU@LgUXMg+iozpOi*g%Zzx2?c-% zgEn1^U)LU3u)tPihCoS^L)Yi|jxXPv^#61``144AZ}`F93;n;ZAN*a^-wypc7yJOi zZTe|GXjKcgU@^=QIN+51$KnSl=GXbAGi%m3h%*b~g@gLDp!*ulDHiPP7L<1ufZhV| zv&^xqk3FwJGmYSLEWQUg{!SMEW1PSUOW-ACC4mBDe8DGvMX0loMwIzU90uNuK^q83 zGz%&4VqkMPi!LxV{wwM>>ud>bp&BRb-z;|AK>Sp*_*nx8Pv1(Eg=5)0%4C>#F-%LS zpg&u4-Ubq#%`%S-WJj81)%AXcQepGkkUqVogk}r8eLrB-F#drlVf%OamaKxIl6s4h z{x_k{FLT}mm;(X4Z(>MNfkZ=Is`Ivj1OU{X0HL14KW@Y`zVp_>J9K@d@;R_YtHom@%M(0<&Co5& zsIB!!XLxRG5XDxR^j$T;NCg5?A+=(e0FXQN{TaiBP&SY-xDz>uCxaahwnU^96jc-#1e*v?$mk#Sg3FoACT5bHln;iYV{{{kUM*2C%^M=O8wS$=$ zupw^R#Hr2Exmnto>Uys2kb;S~{TVBNipvSA2k*19Gga;cd+zPF&xg`3O2xjjdU1Cjlc!~6AK>2d#3%^yY}TrdVWVKn|xouvQ!Y^ zJJ6E-NecklYlM)`gDL%5@$LQ$ld$7<%9+$78QS<_x+-l2D zd2N7N?Vw4aEd&D==|wwufj~^t#qjeG9kv4G;)w%vIF7)F09^-PjPbD(So`L8q9fev z;`!^Qht3{IbdFcL*eO7z2^h1%v)iy}YO>FHC>a3n`V8~!-`~`H^+U%eYxYsM_Wddt ziJg3T2S%Z$4DQHvHf8yrPpvrMt3cIb4dR!8FoLm(B@Yd3wY&QD^x+c#i1C1)KqrNt z4w7WUuk3eGU_N?B3qc2x0e1Svar*dE&;D~f(V2M9toT$+vNk{oZ+}!_0Ib0V3a|l| zRGyeL1k4YB7#t^&)d&21y6i&$V4@`D z2w6xRP!3SccmgK=0qM4bq?AB(Cog%>j zW@kmyY7w|E)I@NgdSj+ISty?z4jz^vhEspBR9|vGN{KzbliRwBXiAIss#8W`^v!MR}E;A3hmUtA&&%*8{ zciz9L*fJ|W%JOd2tBL9=T6o*%s~5ny^%XG84$33Q>>6?cK1dMBQ8dQUzzgM){(539 zk`IpFgrk|z(MlFW@&l1#VHwHRV=iO;U1chvXA204TBZt`4 zhp7~lGJT3M1tO*h7Rw{Z2dE0eBUa*63*or02ppRt7@g2mR-2`u)JBJp(io?Zb9x_e z%M`cC+^m8SHBV^DaMpQFFC|PY+h@NLlMRaGl;py~=rSMKw7N}KSaj!j z-|z5U9m>9)>to*?bo71xKC?zN%fdf7-O`D~S|jkki`M`b8z%dB-w_$V30$oyb-}Y` zDZp$!)q4ip^K!ZZW^Y?=ca3iec_7U>#i|)OG&O@}t316%dh;F_9x|gGjB%cVt$G|2 z=7OKNQc*@=J}BjgnUxykUkHP*x6#+_rxMK0xl7et(~L^*wTH<6_|)*AKZLV8_gVPg z)1%FW_pc%%$X;UZ7+OcX;}AXA+Rp{2>QaJ^e^8XypC7M(>q9>H-UkZcFQpj*K*#(k zI_C}*c7Q210r-Kz(??DFIkk19Hml1$DK!@Nbh4U8(gPQR(w-C?yrm8hyQKS;T2zri zkJh=M8bqVN^)20m`&JCSIfVy*4t9Wdi1mOFEy!|MCsq;(QB^k*t@+fiFV@flx?4xy zs+*m>eKc-1rLvugkEBKu@j!llJf=>7pWq&SC)3X7R?7?J7g2gVc+?EFB7qc1g(Erv zRC0J_%vRZlukm-B&wOKdbZ`e;^Oo}i zBY8swH@?!O53mSO&e6p&xzd@S#GkH^=Yt&DKY`%)TBCXzV z{~n&^{clEhn}*XHmvSd;9iiKGz8GEbAmy)Sp&mP0oz-(oF}pKWG#wYM$tn`Z6}~JI zzvp*WqQl{{Roz{LNx9{k#Zr-~H&IwWW9fElgJbcqpWevsXmGU#0|Z}F3~ms(D%tBY z9)_dA^i=k+2_!p~KlA=u6P+tUx1_S@@xEHl%h`5mZDw^_i6!5{FL33}Q<~G9qyHk2 z4ri->1_)=b4_;Wk-B5aOE&<^q=b@vZ!is9?cKFqb-=U*wD_lXgmDhO!X-huDY-ij- z20fzOymV4eeE#6ypY6s6Q`NU0vyhJ;CcWEz=YmVJbB_)UoE_RGY`*Eb^%|_+WgqhR z9+9epEax)eYmgO9g6*5FyhQ{OZnRtN_S=^6aOBfjMJ7cI&Us!v|<|Hr;@Ba+Pk#ms;vexoUnkpaS80GYHd zi?V)@590eRLA}?$%Qxp6dXG{j7jiEDJ#IJjOUo=;+O3ehWn*}jomspWa2+)z@*yB< zHus=yQ{~9xeeha(!SVR!9U!~$&|YhJ_;DGUzQ8y(Eg5fX?xx7XZjyK}>#EkfNh?xd zlIoLH*qOC?Q+m`SBQ2|J{zb)2k*$v}8nVjS+qaZ87ESXfui%OqZT&`OxWiv^h;7BVJ~( zLhHf4jixC3U1#3VoFP;BmhARj7l}ff2`9_e;#hGv6^_NeD9g6;6)_LPLff~mE!*oQ z#Jub|mg@T~-?WE|dV3e%FIltf=$#Pp4d<}S0a?8rWD@a9EwoGGv+A6%5cV(TSSk27 zUt*iRA1Da5-}T8YUfkFZn$TNG?qcfM*lP&x*SGrBkX!Wi;X&w~ZHKeT)8{|S55l|M zA6)F`#-DE-MBLaSKL8+upIy~`BV*k#6gNKCZS_`%uyH!VM6LUnsMupAiX8nNt^2uh zYNNwztdP%x@hC}AC%q!4en0C$iG5_UJ*V>p!FovkD=gK!$hn(j{ZS59QOuP>6?Jbmcu zH8ZuZ0?>TR`_Ye(Cn49a{$1z;_QZ=yXx*@<-K!FDo^GM0TAU{e*Rv0NqdVpqR)T5- zaRZd*Xi9sUXx3#3s#viLI4mf*uay)@D@R(W9{NtfjRtYAW4$6drWVIkd+9e)-kLg} z>`b$7ygs*%I3%n&?w`Q|fYjwTRN7a+2DiVzPic_fGa=FV`{l38vaPVD1SYXwh%xDx z?oH*sejJ!73k60>5$c|kBWbG$V3#{e%k*hrt$P^TIV)Iu73Cppk?Y6Psf)my&xuxd z2;e={zdKw9kqpBjro1#Cs8#X6tXH?e&Zn1b*d`pmell6^4(#Nn`d{&czlZlu-icjM zjQW|AwpsUAy6_atXj?f#u&^<|c=?hHZY|`-`LR(5=N@=_pC2IgS=ser+sAGP3r zSGe&TOF#oDNisrKLKxr`$IEJ{2=e(UfT8I%di>%C&C!UT0^KENhQs{nq?&vRjx7ReWS|X%M zkj+2#yKy};BAs3Kd$1}YSbWeFE!`$MT@2EMFg5H=l0fPhR{QCDsyK6Y688Z;h#hT9 zbmvYMaXy*O#z1n8=|S*^>?5F5g@>P59|O_xwAWE!sFt3nmenW~r3CVqfSZtlmhDeJ zo&!H2;a#HzoQDk!V z09nrP*`!0k8<3|(&B_-zMiP*FcU4B3QMR^3gze!;m9!o^YK4~et2M3IL_Mi2b+Kjw z^m-H4ZN#9mwuIIJeFd<*S(Sp!O3}-*^Etv#{MdNzN{(zp{Rl@4`&(U@Q@Gyj`r21K zR)L?FJs^{_s#U4pOsX^z2^VC$E5iSHFj!#&Q2>>51qC6$5a)Xgu@xx7dP>2vE z`20wj;vq$fB%|Ieu-a7cKMA-J#@4PC5JbCMkU_zLS3v$!s-2Zu;JxipL1nVX$#Pfm zV|7?3ge|nM>B7=rR9>HyW8E%0>*jo%&jt$v;&2}SuL=?R;wKQ z5I_?45UTYPJY=Th-=;kMOFQTqH*<;dyLu`$b?8&y?fu5Xl*~g`Nf;|$dElo!^|4VU z9SB>Z^vm3w-b~A;ZGrFj?m?1zhlrj&L3d0N&Pup79Shn)E@89(1jt(jwp%qDQtl(b zpnb&tu@d-~g5JC}N1IWx3rDq%@g9(yOvj{B9(c9c`UTL-NPrGy_(rBqvnKcECin2q zA-6FXLo)gu&H91eq&vMP_Oh;U%K-CcMwWL96ge39 zzZNBtPaI!S?)kFKKjjP4PYhZKAON%Tqj}wOOHZ~NaJWgx=ii)lvPS$sik&0f6KM** zRr`%>r9XJ(qIL8{iSu3w+gAY40mAcO1X-h|Q!O7{@-yZ5NF8BCdF+=nKEb;;wJ}O- z_ViQ_kuIjjbho-y>(7n(mJ=mkS@vDy8<1N6W)ZYDO3;i2G%xpA7=tll2`#4GTbEo{ zCpgy1vdb)>LJ_)6Z-8eQ^Z(k_G*A}2I7TG}Zc$!=F(F;yD`XbW-Y{=GF{_ih4P?b* zm!!Xo1NcSJ|H%5*svM;7QibpTvd?D%e+U5rXwL$DWf?#XkNh9f$_^>~HV-Oc5Sr^~ z{Crwq$7H!AZMJD;WqS0?WMKm?4dw@iNm~KSKALI05JR@b)BAJreMo!h0-yV2ycfxM zLQj(VWPgnWeqj|o(aLuCge&4;OWn#D(D0QVKow!+@zCI?v~`LFWF}%rz_MLkuiO&O*j6(l_w0mD&_9!{k7oX*R!jtbK2! z(-e?Jfv~`h^3Lu^{gDx(PBi*TvYr3rBMn-CF6`POovV#)WiUWhBPxv`+cRqh9t?!@ zM89-ZkF1JP7i@V_YG%X{#4&{T8HiBUrZx? zEnBS}z_RQyFV4>!$x`>s@}6=nGf96$hX`X*r)FioebDhDn$Q=B)o%eg&$LSeQ|Jkx zgr|_w8}1W)hf+8$vzrSHRtL0g_O<>&k*u-2D2etw^ATpnKRX$*9(l>X47v%gr$LE; zjtcN;g?9lE(4qJxEp{Rm*_4&+_C4;v#@2NWd<~VP^;JuNoOy zgwR0dNS~X*z^GtD$JCPk&)nmV!GGEhoovl9W`6J(>#sBRf$_&Y{z>M? zuJbta>FG6r-1{+%7w>&=c_-B z3?*bf=1Rd8*%{2R=!oTrOnD=Otn?p10Oy`b3#UOoXPwWK`$5edIi%?U{k?Ac>Au-M zxUBTK`Xrn8-v|xd#2w?FSUaAnr8$0!3K>)L67Qpf3@smc@jDj`B8(t*X z52!`X>y^F4jo8I`mQ?6hMUMR~Nz{7EM_jZ@x>jdWyrzSXLRC-@$N;Zh%C0@dhi+h> zeBcOF!~o?Mw_TYe_#VFwM=oT1nUWW*k0`$GmI>;d;UxE_kxQRG`<7JRT)oQDeaJn< zt75GF%XD3aPSC6oIG?WjA1Y|-CI#L@SKmB2V(Gf9YbsY4o_|yJDAswkh>;Eh7E+2h z@)dCO%NNGi+Pt0eI9ZZ$Q0w4jP(+!O#cE_qw7qi4sy@(@bL!3LMHXHRyzFT@Ik_-z zfghWUUw$`9tOCXTu~?NnZ|z=U-+TYtK8wR}{!kc=JyEiHikp7ot@qMIQWa2Npj^!~ zFG6a!Q80X8NTJ5J@l)}8y7hwW;~&TQ!@rJw_HNMvK~XU@NWLQzDMw5Ul!09|1t9%; zAn}@*ZBK%9=};=??T`x^85gbpPeAkav;Q{%B_H+wUjk|zhLWkAELILZzv%Sq15>#T zu*%z-kLSZgnT>;OOZsAHz|zJ9I!Do1>TAj|x4;T@Gg5GNOcg*{BU*QTu}g4sFBJrF z7u2ptmjHQueU}=({Q^YCQ2CAz-sYU*Rt_!VMq?C@A}QbqMf27mR{u3usHpN8y5#P3 znSQH*J9?FOAdZPS<*ep-D_@+S+W?1-qM_&RPF%;+t@bYlhL337=aZ_@h-aH?`OWO1 z7u^Nt0QIJ+bf4^T>lJ8rz9_$&C*!f0GOp5l{(DzT;aZKlf@!&1A4%A;ByzTrQARWP zoB%?)L*gG}Me^TJ>W3mT( zIkD;X$P~V=P`sUYzgVQ=H zpFW!$^L-!TN~kV863n~y!O3NMkWx{+sHxmBL;IDfqGBwQWu|>Lo#en#;AH+Z>v0^H z?_uO!xozh7F=s)A7y{qP9Qz~LZVmOt}*Bh^JYH!+3~~r?A3eEMngBfCvhDHFV~Nr zzSLA~P7V61>X&3ei8ywji=;$4=vc?zDcWkoJVk$?hNxv3d$K;KFZsd|%82Ot?+ue7 zO>plv5!^`NoN~HB-XZ@O6Y-4u!Uv_0Xd_k*Qp=|&fY^p2uMAI1nUHp=jW^~H#0L%= z{m;2KN5$TE-rUqwuOpgl8;1X0>GVF(f4sSLJ>*ja@|_l=?p41{&%szRJ@LPH-C=Yr zgNl^@5CiG!3@JvRV{CmKIJ>4(B1_0++A^$X@JYI8G)J|h+s)S&%FL0tn5|)@jw6Eg zi`TawHs3I5&Yzg`ac=)=KH_9I@}JV#n&`jnMz8gR0ircOkS4}AZnbuyxGlc%XTX$? z+^!?ClN>_YTDQk^xqm1(GI_O{X=w=;g@Nxd5hzl5fLAos6O|1dZzCVO5>yFnP z)m4^Be#M0^qqL>T_OT!pcDuixRy?0I_o9(BC5HlhoZl=mlI)T-iEkK$c%U-A3NcG3 z0oEM}%iifJa~zf9Rv=Ez@o=rOoR&UPBvPCp1f{2mj)~K*lEXmQYuE0hW0L9Qba|E3 zzfliaKrp=6oYpWKd2tt}8qKmWv;5-zuQVUEj?xs&#}LRgJwaiu7+y9UU_(2$&%|#p z21lRbvL%zP?P=x^+mri}uCviQDf7V_j|4NmZT{x7Eiu)WVk+rBWwmv#FRK$*A~>Du zpob-o8AfM*UYM4^DYQXqUg<8}zj&tTD%dK_#v7kmbj1~vGN4Px%!GmsYdEWcT!cu{ zBAa5FA&&f{WklTuN~63|l|}9P)GQBr7OAVb7>Fsduh(R{3aM8VOT< zv>_UhxT4hw8XeNZ0Ap4)cbKb`{LP)|ol!a6b$q~)GHt$%Uql-0p?USEN|>myxl*AV zsFfr{o#hRD=mpS4AWlSu)^G-HU9_!fOp@;MAKnJU0LdrZv^}Ti$(G5>Q(W16*L|v9$4EVgtEFfo{3i6^+E}lAO9`hr@<|G(sq_XYul}u?P#`!}a99!%LXJRJxIez*R3%;a(Puih~V&Fib+GdZ<6( zD@`1-(~CPC4T)aWdGtRpV^;ZSMBVw?ZjJRKL%^a&+U80 z=U&F*DF$&=`!Z9;cQvC79(@9-6RJ^Q@i=lW}J0yP^wv0L9At((zixI4Qa$Uw7+kLjQ zj0oz?mHj-gsEN*Ek8D1Iu-V&U^o(zVzwKA^jEP2^o~mbNkmEiY!g(hi~wIS?-*DN_O)9vc}1m z9M&~o|18_uw^NSK8W)rONZ?`>^TTcH%HQPuv$mE?z{K}t4$^Y+cGm8*Ai#sVIG`lE zP!|-ZZ)sZa+95^Gem}Uh#1!1)cZ^y`NRRc>9;Th%@coZ;n5Jn_LmtEFC-Rbz$kJU;PiS@sfWBsa`5? zUR><*lo7M8neuh{Vif__3TDp#OghNh+eV7tPLVh{foqH;lNM@&mPoSRMFtQM|7493 zr?e2^%MymvjSOz}5k=|!j2Fh3SnxLiidyJizKEcgj$(T2Mo$waR2B6L6y*`)ytxi! zA>K<=x6qdrD3l4F+Qf;`cne#bE7QdI%|tCTXwab??dU-$l*rwFfR#M!-G>p~WzkF~ zQEKk@RjtD8|o**gneIF^~^FhJz2_;Hkp!o4HYO!imhf?lFpqcQ&~8 zuN++fL@^Cwjs%xH0=@qjm+PJs<&@a(pQNqDFqw|r2PE&K$;f71U{8c@%d&|3VmY6j%EB*UdEwJ#*us42u%W) z-V4E}>8pxqm#i-U9xo)eU;O)-v5QYPNRFdOj*>tX>dbkbSnyK8#kCoTLV@-nuMR|B z9qGOLOu|#w;31=U*bW{6EkTOD5(0oY zjnN9sF8M+Qo;n4vrx|kBi&zOjjT4YR4$=oed_yC}x?Z1>Uf+P0N{g1t>X*uUmflP% zy;W0sd$d$#r}PfAOii>*L%&SRvrMjr_R8y4ho`=G=;zK`^ez9zyXu^Z#Fy!bfIEkf zIXsd~Dt`d2a1^a@)~|TzS>cvc;ZalJHCo}lQ{fA(^b@W0*RKrptbAO9Xh%~k#1-IO z1G)4w@348Ni@5ONA&aE)ODysa5t$lN`5aoEAzGcOU!Cn)otsqczF74q9qF(``#zm& zwwbr%$hW8hE9xq3 zwjz8EF9J{fjfgBNsGZoUn}XI)i`M6K)jHHbS!XI=s{8kcyo|0XRA;6>##hbiH*9z| zY$i2KEmo895Lf9Mj;{I&{qibkQRqol7La05s$qMy@p7k;3~lo4Y6x%AGu{qZ_AHMs zD4@p!hnpIKux5I(X2!eK_M%N>JZ%Yk-PZNSYkG}~!)`&%Kq!f(F{GmT9GRxyEH>66 z0c-w8LjJ)cWeY2My5Rd)mae5{ludax)Vul%Kmm&&H#K-CwMZtn>D9KqEkH{BMatDy zH!f1sGy$JMBX5u8soWnC&^`|x5wwc31MMO+RDtqk$jwTHY zt;0Yf2yhlyg$}IprC7ySNTo2WV|GiTZJYlqUj@U!Q z!@8t;d-TajiPbLZ@d|rUgfkF=Nv`NgqJbVt9xirUd%cAGZDnl&2-a42kZ4Ag8jcSk zHO9SDf02vE&=xejh5+41w|)B2lgM77#Zfya1v!>_iy5t*#6h~ya6BG%u+%A?@}@=% zUQT>Nx;;?5RK1Ua^^5hF+#S$|_doE2OdcZV#b6zW$T|RY7(38FMDCMlCdR60QidMZ z5Ok&qJ+`gnLl|WY^EGAcyY6=8lPq>TpdDY4iGgV@RmCRL?4k#hE|6WQp++dw+OB5- zPkX}vxrj&f-=^KiBfg~%zOd_E06=%JBf=cDI~YiMa&v)HTfXwhjWA>Zd?a_5Ogowc zuS>6bu{-3jSe+5}X3%RSuV`?RL?cx4ns_^9SL*8S9WGu(*1<yfL=@s6*c-r`3y^p; z;utf!^5~P(`Ggpepr|}4q)dBVip%N6fXtrOjJcND2(`I?Me8WL{ z#^L3M$o8iHWRz)ha3hO^FMWi;_vuU5>md6i=zFQudlCbbVbf{2&!4y^$XJ+-JuD{~ zqJQ-mNO`{&PPm|>JtH8*Fki_i+A}ng*{kpP5VWVVphEK>&;92oN-6?Ju#n60>c6mX z0<=&V79j;mc~tQSPg`A!(BB)wOU>`%KQE*s8&L2$&bfU6RO83c8~`dAw#D`jIfsEr zhLOtAaF_5mivVba!%l(mqHaBzr1-8Z?Q&Kqe6z=Mr{^l2@_`Xk-^fjlg-gQh&S7C; zeFFQ?94xfOVXT7$rI!43;{y2#H#k#w^^-lZ;Ba^!Gb%kc<&f4UHAZ`7$vifu7DG{W zBDYG@$RO0|JdQ`lRJ<(BC>EI zF%LIbc$t{j)VV+;&EX+3hHyn%L;-503(%Q%4$I!Z8n=jl>FZDbA$ReR0rc=bjz+}@ z{@ws_ee@kq1EK>rC>%OHhk+$vhMJ*>OdNaxdo@XoXx>=kF+k>AS&XrWIoycn!7<|x zcHg8t8gXi6vPs(=R)?2#~yRl7L5+6tGL$CozD{$^=V(* zS?-Jv=#^@Kx2fx5k=Gr16gQ{nxy|wVtm2=;ZjiUn83P4opXD?k^fo+p2}&Y0M{n$t zJ3>Dvo?2hZ7<~;p+q-t4CPpb&-SA@#7{L;udK3WwU&Eq7u;sh2LeHl+3rrGLD_cfE z{0T2_(S5FKT~C?CYS79DAQZm17fvWF2Yj2jNm4TR(_+rh*aup;s_%A2Y?Z_nzsGBc z-D&ILH>x^teX;*4o%Btz3-woRrkhK|R42z2-MmrD7fWIE@gUAz5!e1RIthxCa$ zf`3Bx^#u!yM5?3{d#-nJBeMMODg7ujIO-Z>N8Ef9YkW!%6 z>5=GI3Hj^YMq+3`o|#GS$IMcVpLq_+?`07u!-m-0bT83?3?DO=x7`W9E@Vy3$+lkY zzd!Y&#y<}EZB6UE>f=XL{x@{R^z#0VG|MvH+JHo7n&`<=R%l z{Zy|ve_V_FKiLqTsn2N2LZBNR4_}*s&(?JymNtv83xy14C$FJnPz6D6&OPf|KP^ta zBzFo%O~!C9dbFtB?)p+@mZs3=F(zp{>&25tQB~9N=C4oBugQX*2b#g?U2^z}Ep$Mk#obHg5wYHd6guwee0C0n94Cgt}U64a*IPEQ@a-n9A&54;{Q zJvt#MmK*+L(Jg-erRcn08BpEqRD6BPh{q-%5^*E=;i`$1;y%?H%9XR?Nx54{2)5&2 z$ZqSxv(WwS(|@6d{VWk-KgVv8!;WXIBEnCWHs9S2suIzHPBc&|cak#i=;h+fv2v!ZIAoIM zU*^oU7p$ZF-Q;=bx--w^nGTxDG(Ebf6vRx#y|>9ovAH(EJeVMIBkC}iFKqpT{##|( z%PZycy32KyKYGS-rdg!|4@C^0>YG=XX4kqr6tn-MZ`~jhY|K%(DQZ)%tLpW_v8VjK zq}~wxgG5fhfU9)sQv(+vv-~j^*XwRiC8|{FbM1FAg!7KOL>FwqN02K?Ilf5jiCNJ% z0k>NdPwxd(m=*tUal5_p=U(uT*~?$bn;y*9C%n~L3Uo6CSX;^YMhst{zXS`qt06*+ zV}#60U=M{iIU&Y58>Sv!f3ItXixA^n%}Y5p+;vpWO@iabUmIq+Z~wbF<8sMRCic+d zuKl@bUWHkiu(yq##_-*O@8*@aH$05O^%V-8%x>Kg^fXBgF)tI6ms9(_X`Fp-UZrhO zV@A27I{nEgNh!PL{)VSj@A>>E>)+8`k7^V?gjlv!Skx;&^t7DlvV1#a(cn*Mf8S8Y zs^_~!W2j1wz0s%@fy%NeT0ZrGh@SO;kY)2@dGUKJf31hLEo)Nit6U^PZTg(hVApjV zo627sVw`1Lsi3!q&e9jeqZ!4lc~MvUzqUh?;{YmFw6}NYee&{m%Z~01Z{Kh)99Rxx zHsH8--!ar~U7P6^6pd!5lZF^)sdvqm`vlg9+V8qrb$_}7ZiONfVO8sL1O|IpO7H9ChqOlI{ChLoKc5}1(ujWjJTTb5V?T9; zm|oun^5M9AWCjny+)}^x!K^_uidwprUGvk0Q_{mrZ>$$R@Yc4}gP-Q5O1peaVsz~<)1C5f zmqp3Uyp6tH_8~O_Te@&AtSy?=3zJ5J{#(`^eEqxRz-hdXi{jw-o&Dkio82hXzx24K z->ctyi`D=v<2?EOmwxDOZPwD)I$V}bQ8uLRMY36gMq}pyBIwYTr&Tffj;RT?Zc)ja z7~NSDFCsCbj$;NGugUtP1nJ-p-c$?<<`T~E5%%3=p&}`IDAPW!6JrBYVXsmn30&qu z=xk^Sbz|p+Sa{n7cXw6vov6#_PRCsv?rgd~JJ(~>K2|L?6vA8*O?$K%DnYi@+~bef#VE(143-Sl-i8-cA3D?i8HHw}+*HN1$v z{1wcuVs=6Ak%ZMCNt{yuh`5m|J05lNIF~$h*S6s_;;qJM#QU2nZ4cs???&^WzK`8~ zCJlfKJop*@PwdyF?}G?#4bty$REe zbt%0Sa;4tz1 zhED-J6xXF~IpIXLsV?RXYg*JgA7>qILZ);=MxAGu3j!_{ToxA-$eBp&Q>QPbB!C<5 zN7`q`?Ub~LwW_}HS9)-COZSZ6=#PG&r%Z1UOZuyV)RfbuYq!TyL>SA3~Ry{76Bd>u1QO65^)n6H%HoF9s%_mg&n$$nrHCz}4YRnlmyv z5}YM+i#RjsOw~uX9(W}=_tTb<@}Ba_EA!H{jin7XX^CibuQ|(&Rmr(6(R%Ba3b!d~ z6$x|9HB%D-wC+PX*XmsZhG463$@4<@upwg7(Bxv7?aV7EQQK`?+vB2G#DLR#K%3a5 z?Ng?0mV#s9XOM-kjJ<8KzhI(l*4iSqw2lov7>Q5TfZ7dcm02rezO-#M$>`sQJBYuF zKvPg2sU20qGQ{;VDMonB zM=}I*9*Y-}+yRW(mbJfa9%R{@KSFPgeja&`SM4LocrEF<{gt63aj6u3NYvEUHg9gK z*33&8F)Hix`chYYZ6vKoq$5$kZhSO#{X@P>ewBeW*7wO7H0+M%3XBhOeq8^e*%~ke zd228}4uFw#=Rv51IsiDYz_|IHcCCU2BfJZ){r>RdJ319yR+@?wKn^tSELWXGLBNg< zSJxS26lp&(=S<&C$=elo3(%(fjQgfM>2hzg9LeL5L#=?2DCJh+}0F&XU24t zCU;0Uq^_~}#l&o4AGIO?HJpUU=Tat{uoat7)-r?;V_6gd=XUykm8CBN>R_;Y6qFw? zeyPFnII62$gVoeq;Ny2qTA^O;raFV`;T*Xs9(9ANM z;*PLMYujtjx@#1yfa{;5@1QAkh!zej77z9;FqamN2umj}OJ|8s8t9li#AqH?0MyCs z*P2<$jM;CH-f)UGoGwz{*!bb|_c`@pKJY`@Xg|G)PVy&K1 zMhfDs=spj_los^liCc3+bW)`Th7vI2g|C{LEdp6y8#oJZ3(Mcp)Nie5-!90`SXD-T zf*J$<8?{bdu}&M5;M3qwfQwc17%fqlE_3#6^#HNnz?^Kb0_IC@cC==Cv^*=2LY`lb zti}9nV`6R%Y;B3i30qG8OzWpWL}@cqDA@AWU^rwW0WE zAMeQgK${QVzJb&{(R#ZwL*pSX{?+w~Pz3O* zHgCpi?;yM~BTqTq9xZ6R>_0Br0@vy*!rfF{Le|I7mD^hyE_*HG9768@cWF;TIIMCx ztX=I%=X9aN(K+5gcK0v7zoVH^kz0Z>Lc-H4fh#zfy9wDVZe$eo&-Ufv z^5vg~|M{bB*Ufb*pH3#&F91nM zL2)M?5U^}_)n!^s#Xw$SR_*H-@YI3E)K-4f@F()V_odHLhiJ||F=N1JR>~YM3Wl8M z`$WoIZ{Xe~?#hPSu{z}*15lOv&lkVUr5f*BW%u}O^>-|8RAB0R-JE+H;C%jp(BuQN zbO4#MCM8Vs%b@)|YYGgOI!uZwj7Sw0ObOzi#SVP&c#V-&b%shdI*CiWRdHM5qgA)S z$^c5b_4gOcjdVUk^l^^fba{TL7#5)zKTNzD6%|8*W4U2{(O{M`nJN;3vl}gr`=t{9 zF)z*~_=-7oIf=ENvvtwkv7(iV{p-CZ^gUMkY{q8YVp*w86DUok zNYdfa6XJa`u8RYH8Q;QF!J>D1{sX&anm2P)p`0zk0??c@$g!JpB>9ACb31^&v-w(wq1>RN+Ad8FuM3BXPX!8RJV0)LnYn4<$!Va?qQhE$lqY| zlRBCE%m@XhwEZm^{)M$3ZFVB1J8Ic?&yt;$(i`)|Sqi25yTlE~tTFhUXFj=Aen2aInTkb$lVd`gq znD;rWM~{Z4(g8aSK0n_1>`waZef8N%1AI)~hmeO?hkr-8BvAf(3C6#S3wj%6jDJK! zTKAg6^B4O<@xFf>d@tVlUQYV{dxsK?UD^7Ct8{gma;5g8+pB#87XE5nzTrb1fu%Xv zZ~0`~nC5OZcEHR$jMxAo!U`COVij|Cd{AExZKlamjoo>4!-IL+kX7$i(St^jC+*=ec(4P2k28z?B^-1UU- ze|oYf9r$@I;MYwZnFaingG^0hlN3sfV<7`TGI?NGB2YZ#zTT_jx4(_L4g0UNDcB%9|MH zg$j!P{Q-z#8<&djls$9gHxu0Q~wK2I|zPG4u1Y0kP8sS5**1v z6U7~TH8=lZQHKxDU|m#o!t2Jf4F+@sHUQ>+dDlW1PIbXPv}*G6a!L16_FC8 z7cmqO5i}qOf(P1!(v(JvnP({KcYDadTz z36!s(x%tv?RGK_H^BkP6w+^g40@7IrHkxIf6#Y?Or>PVFRKF3M)E_?=oK^qscxO3K z83DTQ2)gwqtLsZv_q!||F72%5iQZhGD(1K<24ES#UNs4Pn0sRA^od88PCUMG;z{?3 z;gJ(h-<){%W#g%SR>2qG{hi0L>%dXRZ0;AD<}z^PNcQBNjjAIj#d-gbpt0c7D0)k zi_#_X>&LebO_oLW6{+v;xc2f^{ODEjvCH*WcPI;wt9RdNeSI(E`-j(0?%a6OO$AG8 zc=5P%eFbvHk;A;Ug@v$&oL2=~@2(FaseKq8Klv zA@rJrbd>e7kb!nLn9Gw7il1X*;+p1IYR8u6^06#~`2wA?`1wMEhNk%m(B+S9b766iECae zi#YavshrF*d|MG)cJS?m_=e`Um5Cki-(I8)8osMaojCZeI^%8gyP6Yg@84ab!i<(V zd5Q_kwFP=tm+OkHKP+FCwGwB~Nuv6R$~n=iG@^nBn%XGk#nFcWNhBkve1fmMlDzO&+D_VL%oScHD8@Re7wPjsS=@=G>m|4c@6@=HD*_vD|iUj=~Fi<{oxdM z>SpNm+C_AjQ#&wG4q!8zIBI$)uO=%Apaxk5LS8;Tez@W5#38ftcfH0BKvq)?QH_n*N$eolN@mI^*5- zU$ZBEZT)n|Ly@~<8G?n7);S6kbT6zJZVQ9!A!0#@{9gxM(2g5aSJ_Il+wWw6u>Yro zIsk@%Ab=|1f0q#N3b}{&e@jUAumpLP+%GPng!3WKh2j!&JhpK@)~yD8UtYe?VvGUg;i&*Nt!gYfdkhf7N6`zW+!kGnB<<%G zia?uunw$uyJ#40TpAuc-6i9if#Tc05@f^&nEsC0E1hn{tLh? z(seNaMIT5O+*UCFe;fS=fS$E(TK@xp-(&R>YHIMfUdXUq$$tPCh70Am<@DEly89mh znmzf~#@PO4i1Drhco|y!UjR<_{s({qr_UvO#$|pK1MoW(2|=9u64?8{0r-7+v}NB& z*MoJf(XT=YY_ zWTOj|wmhs+n5zw878!MHcg=9Y*Y>0Kyj%sLET%YO0DdSCiUD}gFFkgX3OOnc@>@K+ z+h^{70`PaeLd3S_`us?Ukf{`0Y#3J&by$|KaH!)^!^QAo3_vm5%e)`$ZTGythGhBt z-6h};W$LB8f1%sk?-rz26?`}QWjVAzM=BipwOzgV?e=2YloY->-5|O z{l?Asdb@Mbp-;CVn`81V5r_S*mCJ8E-olFAQ}L0ve0Yx8*&3PbR@FDSd*yy?ujk60 z^^T8A@@dwuz-Si(+^QIWs4a3kb;JOaP`c*omhNuS)(>;b5~Raz>{dNxcJv6uNq0Mv z`ZXD-Z$vMwju?RcCzIUwjbSI>Y{JM)bgyK4_{6ziE7SksNtIkdkz^_+DeNX$R4G*mF1|d7T z?()mKi_dge#;9*q1l5+fJ)3=YuthP6_}pEgZSvX7N)kV3$0u*$?2b=2!Tav5^vfJM z@pY*0S(a+|yU6OwP=5@SIT{o4;7+*XvcIfHz-Rjz3H#xWnk)xdD!*X#wRmEzulk?! z@;g)ZZ-(A^>jf_l^J8**>~L-XjP|RVu3z@Fq3c*rG+nkB%gd9kr@$_#LTr8!?n@=? z-@^vUv$#E|wbT0LZol5P=Rn`oX!+XZej}gfMIra=6w3*2@b#-+ZJCcI za)|Xe(Sj`HC!?|?DqWr@3nP#2bNbP+{TC1iFpNNK@$~4vUAkHVQ^v?u0wB74>Zv3X zAkvdWKW|uDl6>fmvZ(=^X77Y>282szgYcgRC`sOwUfJ_#$OC&PGV^k5JFJ0mwS5oF z0^=+Tnz;MB+7})n!55FcYU2vNV2g}#Gt+P7^!w4cB=DO<#qZ@X|A;VBo740Qn8yG{ z0^vBM7d#|z(S}J$KKyp!>%ZL{b&iu+(Fn->X-P8|~ih8p)jgUL9eevL&1@ z>ckC`&&5^6>d3yxQ(dJgA>871D!DrmApgT#PdKNuE`vQ)7BAQe&M;!hVC4-C3+zV+ zw~+F%?Kt@nKGZpxb~5ruozxkisuLuPc>a0{GE(U5lWyB^!gH1d>i4JSW z`ru3Crh|F`XhYmv7rK0o5MqY~$(1d;s8l+a4N|dySO^^zKjAHDnuLgCgK-EPe4lzt z)#N!1+fVI2KzZRUj@0#d$KBKsJuL9D_w@uPNdO2yz73^ZkKbnuP!J6p>TTxr=$+i< zzly^H41^4;&gW8zsbKYGyj!uFO3xkpJ?@MXbm)_*b32OjIRvg2J#RK8I zSMm_Ol|v7n3~rzJTarE&qyDpLr^Phs@upP$9dO{j_LRrWe}8^;2V+3^i+B%RVvi5q zZcdK9+EMJ}1fyW{kb8(Ag@6iiJb9mHB$l}^XdA$pN>jE57Wt$`%T*gd4Xk_S_ZS!) zrBt^J^QrmvV*lMNv9UucdziV3kvfP-QQ@yXzo&KdvdE1$|~i1+%rX)SOfhgwKq88e43GYMRNJ?*cn;C7jWp zDQ|Gn$!rF%fd@SLGz+4QKkPev+*xytq{iMh)GA!!L-2f{1d$4!U3&c2wUVnhg_VCf zG`M51Rw}^*tSO9#*+u%%Z6^|*WFSu zdNt^_PXW2fxnc>;*fR4TdEV`4oVhW&O69W5iVk&b_l}>oyC2-9Y~^oVvpebjB=lK3 z^VS#?0PwV|dluU0YOVq-+;Kt?kS^S*ZMVBHl;o^(>Tti&SQkivjq}3So^woFy^(nA z$f%>BXXoGYeccjsQhfug?K3o)wEKO$*Lb&kvfuF9c0k{(ZBD9dRG7s^dsZWoDoq5? zB?NplAD^eJCjd%U3E$wnE8a!1S5k{( z`@yK8OzdgE{Z{#_!XBd&`Ha&?S4EQFh)@IxsF26$)qJ~`;aG+JO*_#m&fG*Y9eWi7 zRCiOnpU7vp7Tys@lsy0v>moM+Qp0G#m^f!!h}0rMr_yv1@UdZdxJ?`^j_swGw$qmy zR3ePMDMaK7;8!@3-DJsBZc6$b5;TXkedt0)yC!S_Xx)VF#KNgqFk##{4}h>DSqLu2 zdB1~pbK%l#Knn?VUU(p3yJS-ue1L??(gU=xp#X0BEfOknGOwu=kY0{FsV6l9kZ21G zJ1>X_@DF%29e}c-_ecOrde}WKX#Y+LBZ2XeZ(G9I_JyV1r7^H%ZcNhcB&GA9GsK7~ ztn>$Q!1Sv0fM{H5f}3Dbiua=GCt*PutCAVwyn7Cj&rhQg>{ zOo$@~+A0=Ka*z{E$ZOnF*M!JSJQ$eaK%#&$NjZ5~#9;vNM;!3ecF?R+t|J?!6DQF` zl)AGjDON<4aU}lzqR7f8n^93Bip(@0^@Jn!Lm<;l2BD{v9IrqRa-eafm<$f|sDg!J zskP`Ftd&B~7Jx~$&`L7B1YMG0E|GCQ!z^U$VxDaf+R~u{b_ft^j{&=2x9%2gXSjsq zNpsU7Y~*>;F|Lrwc9#ILp#zk#TigTpR#|Kk3JQ?mk^rZ;lFp&WPLc9&=*C0Y%zGT> zC1yN}Rcb6e2BpAT*sOFm^0%uVzILlK9-No&o$MC8r4*LUftRhq!zdYD%x$`4WPyS7 zCRIG-ApM0R%{C|m@$}2$K@5)6AF6~S3Cb`CFh6hIQVuNSAZm6YIn70PjGib6_~#6Mz)wuRyL9t0pcVks&Gl`ljz z@{tw%Xyld>iZ;}Yh!WwY7l^y1t7yt`M{1xUIax5#TG>In(0Z4>49}AQy zO(&NE*w7ZX@A365kzBCN3$OJWC$j$&qQ|O8j9<=5u5OfIxS+mnZ&It3YB5 zFWt&doCZjVHN{s~PvHlXJh9|RfrKF+U_gZC39AG607W8VKRW;c**+SWTZTvVktK#G zs3z{|Y9dxjC1wu=G$fSn=AwGBDB!B(4=!8k0@?=v3FN}bY*;3nmVt&7*ZdK*OWEk7 zm1K~ku6PtS_6`TCR;gqrgkb-GcIf*=op&XZVGbEk0s>)4g_7`b;*)mk%b`0CUalzx zyx?4p6zv3fyhNm9rHIqZfth zVrZMmlDt+V9&$GAT&We*8IFjl)BCEGxBsjpLkMt{WZHHfXbcoTtAJgFc@DHl={Q8|QS@m_^f`XCK1+f^J+T{V`#r4WhdUU}2fVrpvJxBt zXQD@MOH`62+KEy(`C`eu_^#`niGP9e} zqf5w6ie%Pm!yc-H&P%VNwzjD}{*F6PbA(l(93aplHH-^R-vVCp!d99s9<5-F2S31pleusY5f-$E3irio9_0pS%Xw1dl#|F(Q&edo@eZ@_ z_!+daDa4i*O|Zu!o)M)wsc?HNRE7#bvd6O?dJb|f2?x_2_o6jo5_EAKLh{ZV^eGV4yYRb9Aa9_bx+c zJ4DZ!;!^Ux;d%fCae{` zAl1KG_53|@%Z^=HW7csTc$YfdNwHwE3{4awyy7HF1n^t{@}W9>AfA~5{=I1&ItdpKvcX9`P!%AALCfV-;P zHq7iqYBe&N1ZM*#JxUgX*$!Eo&Vt4i>Sj_1e(KkLf`p5XdoRR6)^lcIlr0tGO93q& z$SD>`6a#9|f}A_>Q}48MzlBgPt|Ab>5Z#Fq|K2?Y`9Use=Oz$Qh)0*iGbsI3SmxGk z@e6W}A}rL&y*!rk5Mh4m3gBoj`l#MIeC{3w_@wQ{)BO`t#z*O{vDhVh=*vo1k zuU_4&tslb4unUU-N(Jkh?#CnLVJAA;Z)=3zbU1KpJnVi~d(BeVJ|py95@2O9J&xLs z)Bu=X*LME~<|@WwoUw!!Iidg>^Yc@8KY%0Yj!JCPzx5$f-)2mSw=>98{-v6B6 zT~676PQ{ZB251C)Y=Ff5XfD6JRPGOPr_Q~EM&%3L%}G&~)axG(JWTxeQoAGiA_-|E zdMjZBLtf#)EC9g}JyTnJH{n=J78zzi{=}*=)xHReN5hX|u|&lW8RPaZ6aZy{STA?U zY(c}6uA=#9+m44WAL~MwEOEgUavTx%Wy_jV2o5#}jph4%IiE&3=9}X9D`g)*Lj0iS z0L4+_WUQRz*76-_)mOK`G&ASSh3!V^8E5>UE&^BsRkDFEzTh{X+e5#r$7sh$Mc#E1 zd=A|NT;TvxhR4^#ZAM}h%=kgNv5gwqiwD@qW`G16{kP5WFUWWC00la-xf-9E%`Ww? ztTHwt!-4=%(XxG{^vhEZv1qlxJYrxT1u^mkI`UeH#DZH=pzVLc2ZSS4)G7pI z086SZgMyZ=V-zZAM^+igF1VjkH%!@>dLFG5BXu-QnRaE)v&?jFSKiA#y2VP?sT&4# z|3^N$ZfpWj#WEhiF*yU_OMu;r!>M+r(7#Z!vJuSOrygPga8|( z^9Ce6V3Wgftt%gVYl*ZBo1=Px)zR!dSLgwaC6?Xn{;Ip*E=TPhJf(VT<-+%er`30` zE!&LJuEacZi|Kp~TyT|muIn>Y;kS4zT-_|9I|t{|A$`Y0bdhlI)iHfJ-h*`Gs3BJ# zyWY2d~1Z|Djx{1I*l@oCo`1G{*XO5Yg=6rE>aeY z6qmKQtMBy|m**cB4iyp2-4yOdw-sV5$@4{XAk2KB;*msi1S1G&9 zS=72itvdOC=8Epe*?`aP{ZO(0hHZmML&^Ou;nyt8^6AC;=B0!Wg=Jl-CVIkpa$TWz z9$~)V^>oB1gyMo4-JMn6lyv2lXDWSwD1uydRZ|A{iVF3YxA{wGH8Tpmbf!>L-`NV1 z=??GhOXq7BQrAC2bcQj$_Wr*13X*{jLKGy;X8WR%7Llh)gF+g`XE}lCX{D2ULpRfq z`)HeKlZHdslnZ4O2x_2N2O1H0u+h{PTbamx&(o!;SWwM%pAJiC=NU&6bk38uS+rE( z>-MI)`5ZX(3^Md$my^k zT-e^UvXJnsP37gt*9&O~JJ0C%m+bdsl*Kjs-R=-IByKJZ&vV9>IuG6GUi%{oSsh_T^TYN7v+0t-N*m;W#D%h&|taE?22xhlKw?bIB+LJD6mpssx^%CZ{ zOZP~^BYm;eb8rkb=8ENv-~Mxso?NZz$ND!^!qs`N*5(H(u@BNFLv!cha;|6~L@sVS z&adlCY_S2aQdoyldyMW{pU>BfWUBv~-JBn|lwY&dr>kL?`SJ3RjpVO&8V|C*JP1xh z*yn`qQm}+!qKb@D{?){p9Ygr_k6mos7x7^rAON}f>xOgD@6pBT?-+WX=6&%S{Bn<~ z^c2G!FQD0zWp^*X!=KqZLRac1!>p#*<+t@jc0mAe+X*Y@EoFi{eb*>tAg_0?6Hp4s zbp;1$L2wA;RFnQFWFr^4PWu3F0%M_*bclk&^MakOb+V)1Zs*&Wq#64;%hhuf^j2>m zN&GtWRT8rU;Y5ErIt?2jxNj>n-|;ewt~^!%GpnyXbtE-LZH}}dV%^x+cW4t--;@bsn(0PZAl3z!2jI}D>b8~S0M@^(kA?P2U(7D`;@z$}|+6@#vE z+e+_x#aWMD7|DyXyz+k73hj@G7fsPsKw{IR<3Oo5RdIy!LYCEuTUCp8Z_$yf)uW+H zUJ0_Hn~OFhvo-5x-RVC2CAxzaAzcxQ#_o8+J<>4OGux9i&a z6$OpeDGkKCTXp)C93HE9^W&{X10Hh3^L&MR_3|#iFh8rNbJf$CyP&!}!8T{)o{jp0 zK53n!-c|up2iKQ9nYICSifLCuF!U@e(kHoOv?+l~AD?dCRueRSHF)4^AWZ^7dQYr4 z3TX5junoFdHh#@DsX4%}Jg}o<{Q8mCoGq}&fh39VjZOmwkt3bKU10$?GC#Grk0#h+ zDE4|MB3%qF@_i+lUzA9m_DpPNkeo8u=Y&`QO(;84)owW1##o#gL zd|YfsQtFi*dn=!jVN;#;!P&*(fD!Aqc3oHLAVJOQl`0cm`-%cHBLsDG zeO5s(sz-_`5#UyZNlY5`2`q(94(jb-lzEw58b^Cy7104?)a1NVfz(am$Uk{;05yjpgYs! zmvEQ1=9x>Fz6$K<_U=q6>U+D|FHC3HEnp% zO~pd$v+PYHR_)0cPBfxKFd$D?^TUq*!ZegvdfWkw74+gT-E5}$Ke4#2s&~Y-!TRo{ zfkOd_(FjfNTk(D$$3-?%^W*THyi&$M=Z=EEyl)E16AkE8Od}63%y$>RSh^iQQi|o zKa<0MjMVVl)b0xl4+%C@0ySA0-#Djyyf)>-G47g&aVHH4T9`;mp0#xHkmE8r(EzQbI1gKtxTUmn+5tg{J;-oX@B+|<>Ht5hP*nt zs(%CW8edOZ66TfShc@+u!s0J)KnfXeZ;;{7(iw27vKsotzn`L@Z|1QRs)YOb(`K=C z?StpQ#39DX7MkUdSm#UF^`ym+Z)eG;@1eBe2rNgBt}P6fJ>o7!6&AyTCW5w`Wk6!$ zo1-XsE*SAZ40tbziEFwQQ*qZc1F|=xlx)!DKxNq_GjYVcLlg(6tUNLXWJ2l2t>5|p zwl-UJFy{3b@|ZDv$lE924^O}tA~PI+@5{$ls)b>B!l|xT-Pk=!6b$u0p>cyAY+{EF?1gR6NiT-H9@VB)O~!q zDulZ)1M*!JWJzTD^A#4gtt|oDt&uQS4~BTtar&Wm^&{BnRi4`qP{4W*f!`HZNKpRX zWmMq2SKzdp0I|w&AYed&Lg&!syu>i0XP~}l6}lY1)v~GEB5yE0z<_ZM8k&Ls1TxO zapX4jAtWJs-rf8h*b>jM#Dm3azLnTa3~<$ybGO8R;<2tVe2=RwpaA@%53j%pQw*&t zSEm@)bKmd!@L;~Hpcnzu9{~&ISR`aXtO!t}4dx*X$cq5mt_mltGXzKPluAB`_GCEV zVP8~PyEu0+{dwPGygE0awiYngROntR&4R(O9E>bX&WtEUs(WT?7mo+ z_jIbAGrTIDC~tZ+jA4hdu;Fp{%9)+Ey(@AdYkN!H+{L!tNoBC)yTsb@sZqwYmIp2d z1Chhxa4oPeH!oAN&4u$a~?>@Fp@HR(*EHckc9f=7M&xCqV~oq_wgEebab=QWERAG z{rHBR?sdn~?zG2>pV6bPfny`sQIxt~$qOET+StT&``lT*q{ORU`?o#F5;TX6`9jBm z^CjDsw(YVSzYn_2oxc9nc6{W+*lpx^h{CA*^_HDUooZMLGtLULCT^%n^=xWu;48zw(_GV6 zcbKnu-luPEPPXrTb?-`R$9~PbORu^V!aFyE?<>qKzX*T+^;Mr+#I2w7Yu8`(q(w{^ zMI7vT(SK#;u{VOhclzP@OkYvNPfDp_6Ds0DmDn=&szSk|D`J1cnP$ViW4htPucx1u z?(O(9z4z;k^pkeSc*FP$Dl)G?qK}nfG?IQ)v*Is<(}o1#*-FJ1*A>mUt-me+d18_>;Fx z@+fn@kM6h*wdd|TXfr)_k!GuIDAQ6)BkeI>!%sX6i6dsF20SfRH9(VgW6MpLCSQMl-WZ9mIR)aLYg&fs>N~4&(7c!eCD2C zndMgt%_EzTU1a~{Sy5CA-IzyLpMrSB&tI^azHsi1T@%Q@z*4RcWXxYMurgn?*!S)g zoq)IUzX-C+k=eK5!*f}5>0%uX?=TD*-W+b*aSLP|GQ8s=$QzSi{TJ^R{!p0;OW;z; z0+xF3q5~1!41To3U%{9UmeZbXrU^gjE`)#9wHPEw+KOP=$wGPhy2Ns>kOPJmW$?`oz)-_Vat1`^9yFUc zB!^G!st?LKfn97O(fP&BL%SQWTS3o2w&?K~jXfH>+R=Zs> z`HobYWfL^MDf)Kg@*a)+{8@1JIzx`b+J~X}V1`{N`3@D-uEgdV-CfG=rQIcad-RS- zY9;!&(RZvt0*HAo>(K93aX;4Ru_f;>G_Yic9{4N+;)O7K3N*O}XwTh|G{mTDfG;k< zcJjMo(Da50#yh>w`-t_4$5;f;C;OoUOa3RhsZWbDkbiaw?e05LyE@xDjz|tM{ntRa zjKi)NP=bIdPk_$m91fr|9t?uK`4AtMd%ITiw$9GtVJqMCQkHGLR03bCuX4Q!oj)%q z1|Q#n5y0XmUg4XkT z*YYF87YI=(Fc=>(TxQrI+8nfHD#7k16tF#S!Hx&A6M*$)z9F{$%z{_>`@Xg>`4Uh& zSD#X33V6LWC)y-P6N7EWQGxZ-v=C(>+2^XrkV<1HmFY|WdW@e3cF_x!GGwx3Fd6G) z_jP@@3|%)MZkb!AfhY{Vq*T+!%2&h**G<{F71Qnw{HorkoZVOkEmI4RD*ZXo z@l)XsZT(H%_Dq=jpS8_5qiOpZPyhKPrE)og_GSO&J^Wi<@wfBcU*3bi_u(6?slQ@TNZaOL zK76CcY-8Zkbl=Vs_k&LimT!Dc-gub*cj(f_u*{#TI~)DwlQ6Du@5ILQMzLD|#E@u1 zpuai(tLCxe=8cCZCd#wdtTrco|4v=noJl_|n!c0GeJB>{XHS0F%o1e__hrv%=Ik-c zSI;`{pLdG>-S$?eYo?FUz0UG!Pv>o^E|NEn56mT zSGZWSf2QWI^mm~T`P)wN%B5d)e|-A$1G#gIuwzyu}B&oiCr-=7)VHkISD52xAw+#Osq z5kKDB@M*(l>B*fe{~L!lZI3a#X&7MCS!)%WKduNbbcu=@kXO0M(?0ERm!QpdLcUjZ(vg@@RJ2{= z#h!MQ{;hM~FEc>w+@aV|@PhVSCk3rh{(i z=gyDPX-uWd&5NIX6+gt|?tepGxz@31?RkY6$DV_hB%!uEQfodAbU$ld8?LNq13Tb$ zPvOp?n0p78RFAM+2EqrT)ZX1oW~^GryRlUCY*rOSOQ8Jg-RAp{tBP?Iz(M)iDvPHU zb|X>HKE=U98bva#i^Asy@6Xq2ALpx@Gp*fBeuT;&aY{OC6Dhmx{@0Efa*T)Mle4P( zQ7bLlmWx z>1ahC92jMDI9UbNjok)9Im>(np$zRc%FqQH=Ah1xNSueZSB9)uLTi!)MSF8%-QG^Toq`<{) zfB9G*6I1U*39IO{nU+P0%qr%TYYUw2)Gx~+OI?)IsqUI46hw3g7IRU+*Z3!d+Bdz$ zQ24#O$#_(72w7%wnQvwt1+-I(K{g7Y5Fs0`96v9s#hymzaT)CpefmChKhA{DbdQ)j zqsMbrp5{Zhw%5w;Uk2Lk7BDBwYh_ImT_r3p^t!jtArF(qZ3I8MFYE@3**-fy-?7EN z?&jr#VdFCXDNGwLhD;>3*(8c^D!jvFm*0u^f2b3?al{4p49cKHNn5^LV2@-Io@LJY zI=qkKchrR__6i}^$k~9UGx6?tjW+0!8W1e5DOBT+AfHgb1eaZ*IjT-0Jdx27l70F* zxaV-?DiK$T6YK1BR{(V%BIo5B&~SJ85Or81s@R~%VQv~hXuozyx)b9$%=bIJ&Dz85 zey?ozo&Httxxz3^#goHl>y2gsDv?xYjVg1x=`0y(O>o_lPKU>@0b!j)2$GEiM{h*I zBMC4KvcN5xHxFrC&XcM*z}l5DFQ4ThNyM46*MK!>_5d?8BygNfTZKV}?jf z)8$Xf;k(bu$Xyef@)nd7@i4u^!lJNLzCvdONKfx;ex>ca%E+PwicTxIyax;uT@yf2 zda}iacD-_n{C+cAN>Nx9*2SMkLq(z$&4}nN_JCQ1XD27DT~lie^ZGS?&?MnO;I#+? zu>HHj`~px}4XKO#G85pLuM!|tl^CTWEo-Lxdi(Cb_P2^xkM)q+FCRHbj$Ys9DP&tC zSd)|i#JAOxF=NqE{zQgJm3gsUqLbo79&>9==t&0-QSq67AO0E}7K~X?%8HM{7t_?R zi{g(tUf9$43pkBi&(c`Kjf$|!!V?ZR*^{4MN6I8aUCU|_xzt6?0OBr>H797LSdn{? z=;2W|CrN6kH+VSRcK-Zv+xQ&o0sssaHtTi3ZXs0V8WGleX4_?@TOuV?qpi5Vm4y6e z@0HLB>$^_-gO|Pd;j=;P;f!#vc&RYWKbgEw#uc@-4q{Vxxs}_JVhOR9+J#j0RA_Ev z)WmG%ZJEEX`*0D0wCLR{(Y4pVt_x40K3=5vI6oJ(yZXf<9q&F$b~P9OLYF@;;lrZc z_))**P|}l%2j?5k8oWI;?Vz>}eZc(ITI)N9gmuz$b1r8L@O8vC8Fwo;8&3IGFJNDn z`?Qkim_5vU$*=(BhTkdrD1CNoE&s+@GDOo2YPOQ8<@oVj&JDia9yI>dRLW zlvXfB*H-14N3VZiZ66zNEI50vqTXClyXckdj_X7ByuR7)dju7|8`ugu`p@9Vq={$e z)0JY)t{;}3c2t8)p}eNZ%avLua=gv{jym!^QgeJh8lKCF=*d~@YJBi%d;8x<{u&_< zME2iy95uN+)AT#(NY=;8n%Ulk8Vl>*4r^AoHh3Q0f6tUFmQ_`6eqGrASNJAiZRp0o zh6>TfSx?cQg&S9=8ILyCloa1D-4OkTi~g-cfycq0k zs*?CD3BO8)-{g2N%4n(eYT$iQAU7WFkvwVmyO*YCNQq~Ns7JESV+%5J%VQtU`tWJP zIlmC^)ETU_yRf#NsSjZob9?bKy~#^zeoa6X#3|*xQ&aWcXZwNQ6F~_cPhSXXpJ(*E zF;P{l2Wl)kX^0){LlG)_JQVtS5*}St5dy#0Ls<1vO@-6itx*gzVyd9>`S~Kn!%?8C zTbkN>P3=ZCXP)C%0;Z3LzohjLW}Hv;02Zp4=wd!f=g~qHaqNB`8q%kkN=0#or1|rm zKk7ntSlX%lP!vr+q7P4S(Pux?EN18}KE$i_nKjYS8PCmmz0#k7Mw}iLK)b1}4qac2 zDyFWWdJLC=rn7KU=^g|Em=#;6hs5ej)3ldGAQe79j{qjAhb`Sz7X^J}4rJU!SHX{H&h+Y`QHlid-P09Tdd!J^xY+aCH-V54BEhGp zUcFDdiDiyIXT0d7f&yz*@y$}{Xtuw*Z7*(&uFWYRYJiyaPWsFA@2Mg9WtxT>U5^J+ zLp}6}p8q*;ScdCTRW^JLQGJK< zDhi-|WIhzXwkQ3 z08u=URz^?tYhAr!Kxn0C2{8mRQtREe;-sO*Fe3M8#`kGgf#%5|ODrfxo(bKv^yhhD z`V2^m5a?D$H%Br2Y-$|qv^Ef>h`c%|nxS1lRavGfS-#V>R5-*8F$@8yMf4%WH+q$3 zL3Yyjczg62UoR14u5u2w3^L-;wsI;|)W9mK&W0Ip%{bz@-{-gu5DL|!8K9>&Lsw}( zpy9>GLHf`{hDrfI3&nt{f%Vh^?^m&)8Gd1EU@b3zOPzF5@8zV&mu@xnm=gQU)xaqk zK&@q(G2t|2;$nz2&}y+-gV={y4zRh}V>Z@g;oazm8%ML@DCKyyWx6@xicL_d5`q4m zLqjx+fR-7fItE1jkY0#DpM_z(hq&Z?ekUKXC?Ryh^LwPlA6xvMvyn6n;dvz}Lti*| z=oDbTgT8k$-;m>c3R>$q_Lfzmsh_ED>8fp6)ho{z$C1+HDx(JqmLy1h_Vidd>HXFh z3+6<=JgP6jZS;^7?X0K2_pG8?01(CL$@~+fKQ<+Sch~5lR@4ElJhZJyeHy7CBY7uy zDqVlY39mDt!@-C%gb_ko{V~2Kq)#y;NL9J75Y4tgEbUI^J7v-u-_{v5^&EKiO%I^^sSf$(}*6!pHg%R(ZRI9I1EDPLp(pc;@&FIlU^=Yp3C`!?`Ryk`l zEy*u~EP8-eRnDExA5RQASwH2Q>BQpIdQFdsmvs4(Y$*c2C@}=mTIpdngPy!Cx*cf@ z^AT=+y&t~2)^p=5=)R|3eqHmbNn4B0UBw2NCp52J>upAJjqY`p*c46sCu zVi0>uq@MU z5te)>c@6D8ipIh#C~Y^7qCUCwx|hd5SyIBQ@2$6flYCH1y3x6xqR|Z?6K|kS(kae7DMX zMpmW#UFmsQvR7pVsMrM5TCLXzDe+kbo^|l(Qx|!Uc?B9x9vveT=)~bc;rNRL3#89c z?UAof?E7rwe{7Hc?i6!t`x~#H%@9=WTh#x@+j|Bz^|$-_E4@SL#Q>pqNGOUZnoy); z=taQLi--XMDWW0t9*{0zKu|Kos?>x+>DX&SQCJh+_~Fo*KR95zIVrJp42la7UY>j ze`hKX(Me!}m%uu*Lmo{TtpP))M68;{*anfW@$aa0A{pug7Fix4PqZWnvSj?g-k5fo z!I#_LXa;=nF#McnY(;T-+eF@uyc=GTisdMcm6G z5NWkFrQgxc$>Tift;m|r*UjeO%k4v#{WRhx024L82P+^If|a}z$Rul>o&@Ls;nttp z6`AX1mr;X7TyVebyN$$y-;`XOGNeO46Q`(Jy>42BKG%~+U;VN6;|Tk#cQiPbqko4? zL!X==2D`a{0)Ms}>#b?mAC~ca6&7uo7w7udY*@oAb6aFaQW8Z;2tYHlD&Lu>N*Phw z&9Zy)sBW|nK^O(wagRWDJiKsMl1-(L51U{ujRZsSZ;N)=iqSY&=X$st93o8sZ_~a= ze#eo=zL#YBC=o_b?}qe?f~ve;iS)BHkW`c93^Hd}n=oSjISca#n{QgPT#g6(4Orfc1*uF7 zc}*N!RS*HW&vxRx+g309Eg9g5f?KW1pUswILx!E~V@7B?#+ zbwxTTvV<&fXbzN;!dQ6D&`qX#|1^y_x;^dlu*s&R5kfw}M4pf-L$H*!uq4TjdBknT zmDz3^Y9qG|C+B@8*AFX4ju^YWLnS;>0HFYMw|UEI_d(Hb72c`aWj6O0ipm||l}TW6_F?6nSTg*K>~+h1Zh0*`S@Ql{ zL#k$KiZNj9T1Mg)HF}e3tq6`bV{rn9Y+P9VR~8#bsF{IOi=VC0{gzJAvA=*%M+ZS7 zSybt)3|Ws~8IUo%A^_59Ew(aj%p9D^JwEZx`KJeVO(9%NxXt7=gdE(Bg$9p$h)A!^ zcuaFWih&nqB6`o5?<%An23JIqk9>GFaVC5M%W$DKQhIv?gS6zg>CQU0VXSp)sf3Ix zhN*zr&au7Q!sivoOLLw`N-roph1G)k><>;}b)3wuo1P*{cl>!WZjrs{bZ@>$t!HVV zWBJdU^m6ONOAqF**r~i!|K8VE@lOSC!a# zqW^W}J)?-if08k>yPYRP?Izi$wUwO9(w;u24vj{DEO%dj`BvstA!U5m=0BSRr%Dd| zRm1%Y)HC0D~_Q;^#IsJe8$<^N`^2BrL6~sq3R*T zG(7s*K~}k<%KIwJ%2bB+0}WDV^LUd|hKRl_$(`k)6S@aF*+HK;Ly&4w@My)(Q{m31 zcf`G#zkW)HA=sM%mol%2bUkZZrs3KCS=~`g`I1M4d1bWcMG3>;*|o5(f@)cx-7LMG z+e3#~bhF;$a>~PQeMgqZDtA@K2HZGSwmos@$UD#5CqalkYjJNM$@&kuT(^{3#oRR9 z*jKf?Ha={!nv6)sQb#Ka!v~qt3U!;24_aN%cs100iC(xAbi3-3m`T)JD95L^S;%7{ z`CX4}RXBaMQb$#BB&)VI<>>4CO|~b036Ci_n&`s^SZT*TJ|D`J+1q$L<@4*=+>hLJ zi#!p9J#AX#{MtA%t>Ak$Dxd-vtE2 zPtZniJKym}M5$QUQ89bH?h%X_mu3T%<}R}^159!u#)Cx9kTl-1j=Q4}H&4reGp+GG z$b7xI3DvSu`^#`0tkDEap6PZ^>q7n9J)Q1Bw@G1{H#cc8^gDi1>F!`B2r9d#GG-9& zApwTgV?T|Xt=B)Wzga%ze&6Cp?^NrXz~FKh@`zpq&kE-(IcumNvpEdM(w6URH=G!T z7@e;_HRU`#zv;637uIv$)n4kJ`gB#%QCAz^fQJvgB(9!vf$WYnE|k4O=eX-kZq7TI zgR&_;!p$`LkXxCvm#^#A@fe!V!D8trQK*KalU0nG4X?v;BqrE*9UAWf#Ui=P_}Kuj zr-_f9dwe5CioKtutY2DqmbNjya2KXAQ8n!l;cuA%eAo&ASmLrs;&QfdUv4=!!fhxs zM>7z}Od`+tgj{!VHlU?bMSNeB*_@z*Fu;uEKL!J>fJ2&QKe0%vr)Fo-=@GnD1Ub}v zRRg_U#BZ%B|I>F$d6|n}RGG{gr%=jm2AqrPDm1z%u<*MxqMe}mO&VczZAM%h`U7imCn_Pnk?mecTh@owX@Ki|qa_Wb&>ep^UzV~~_08gn%R|01l9b?9+Qn2;ir0FKxT zGobBfNIZoo%TiG;Y?f3nA4aaBqQSfn2?}?#KVlD=Ph`brQlM%~l9Uk;^t=#-i5R~5 z{%%QzY40*lZhlwe&eDkUg(zO=Tor&MYv}oM#mck>dCJH<)3OH9I9VHQmkk548o)U; zVgLwr(G=rSkVe25Hk1htHBp6iCfjtomK7gPSoKfPkkF5x)fCNQDr6*e$X@$coW8lL zlsL>Z)^bUjnPf_>4%<=;%F9lSHZWmhugvfAy2>hhUu+BO18xPBpK90)-9OBk*k4j! z(Yjf?V(shT**RBiy%eaXeb>QvX0Dib_N9KD@5r-hwWRBtFAdN3P0E5#)!eb(CJEv1 z4wOGtJFVuY*C6K{_3Ccr{mfS;-L=lDKlCb}Y`)sjlsOD!F*Tk-U+US8mt8+KVE74wI-R#a%o8xF^Ep4CN&Hu;qi6*|TbWF{9vp zcPOGF97`P0G@9Awb1{1QUgAaXj{R5Qd?R(PWlQ7(^k~n^d;9c7=G#4&)hPkjlbr)y z>t+k3MZpB=i9-yMrGd|2sM^$bm3o~(m0w?IHFW+M$YAe_yz9o+!JwREIU}{PgPF_sI_+F~sU7F6In|Fh`3RhVDs<{P;LTh%+E z*PbOVHNoyux|VmaV}8nMDx!HWf`*ibllesIoFsJeuo5}}MJ3v-`HD3n&)y}Sq)9W6 z7yEBtp+2jfw~OAyS?4D~o`wa7(2T+^%C_udq7KYLcKOSWbmx*&utSl7qy?UN<0{*6% z!*r{P@HZp4egF9kq)$Nx`+LAE`X-gblQ#Y znn>UdL$}13#<2Ixk#*YIQow;kn`?&xd@3GR2M_&3zoX{kDtyi!dhA&hd|&5|9<`kl zr`s7$PI%Ork2@`Em9MSQ*_RZTP<{QWPIy)A?dC((R)73;KMrm_I`r}8_g5D`-unIZ z?Z?{yLhoP1k{HI&BgGB@CAzI!FoKuaokd|-@9xrQgL3QvkpsUkHxEE*1(b-?!H;U- zX;RN!y}psO&pd0H!<+vzvdQnPT3M)Qlx{B% z8g&D|D3x;aj%0;_)A}`BoW>}YWY#kOlpk+mBenEl%fZND*A#IyIOOO>-3aY4sIB}? znceEP#LAACeJ5jBc`_BjLD^De=-%u5=FlECN@<}{cPg}`(k3+Xu%k)W!cFfjJPD67 z$<|E64wbza{J85*U?lWy;pqyl6`rUjy6z%(pckRcsfq@N*3GZY)Tw zlLAvQ>dA%r1*fD^vUQ4fKx_#rj#X@!&L(Y_$yzX4_|~u5!O3x%Z>xner+UTiUws0Nly%tGHzVVTuG*Gt8h`=kN$gm80S$?vkWK*)G#1 zm9qNNuS|}ZcJG1m#ctu4vvd`@ z^F@GipJcOa85ex6pVP8r+>|EPWf_Siu1LCTos&1(2{GJM#`RCCsw|vyEq-=SY`iU- ze7s*W%HSiuV=+rdWcHSGLbK#)GhLnSaRria4~Yf}%t(O@Gpz>~sd}8z@aRT)5G;`? zlx&UIj69EL;PVY!Fu|v6SiCB@(}!kblh`!fnJVRS8^cuH#5+fc@7MO?jVNv6^=@ot z?ENi~CvUw9GuvvDE?xCkbabq4z3Ln!dhyRwDZU`r4^9zHmyHM(;N^5%sKm2FnVW;` z+~?Y#de3A_SiSM8UYoH4&Ccjtf{k^Mo}AKbO*v!DieR}5DmRZ)&5)QD=>-)_aDtEtnFe(c z#17d$=Plw%VY-*&I-v7zS*-fdfnX6b%EBoKv0w(rcJXrUe=8fg9v@Yf)eL!!hQi15 zRy9tb$2L`XHQ6@AKPSybOb3i5~ zgt~2j$yFMQ%cIj)p`=C4$30)e?Ub4!jl4U^BG(eDi4|Gi9K?dPfrw0KhBSWwOvYw& zgDOHAeln~z+sZ6;ul%|W!duqoieVwIhU8xI_GxCBW;;ioCGZxl`kKhBy@bqdPquhj zu{m*3^v=_V4!LJ4w&WUfrmKvH+^h)uM#!eLIZPb;nN-hw*TU0ev{mHMu5*&-H}mPN<($m zNLioQ1#1|_W>?7y%y{X}vf-^EO5Tgma{f)TX7N0^q8>=XLb&L*G|5W&IGB+~6UzDm zM&>UKo|mf@bO-fF>YNx;vSxIuraxPQN6Z3bSGSw^54yb zc`d}1++`FdAxGJ~D_!C*kiSnal4!&qc3pd0OQ-JMP_4B*XG<%L8x4}Z(Tm%XfLcnv z-vo(=5nb7v5B=s&|5bb0ZzF$i2#rh#CNN}kD2(SdN-^zX#Y9LffI7*Rag_lmJlXte zcwIB>213k>D+0ntKcS<9q9WD~d?_uch$;yp!C7oH3(uPK7EdLn&qoN4X3T3661<$k ztj4SNAVxSiz9#e#4FlrF+_u)OQHH5cs5Yn|b4e$pT;bvPEW#$4x{_o)npd--?HM)3b2POhqc3 zIJAS{nj;+dp(|JKK)!g{VFr_5v!XR-zODuAs z@YeT2u58h;S<$FZ(O7cPgbykAd*X#tq2c5BPq5&R!S5xk55 zCFd6}qnBP8rK>@8AEk+uk(;duH5_AA0CAPQm%()qZ#wxr1H9`2Xq*wfN{PR`0Q%Yk zzpRP>E=vxiiChIhwIq>b8e4ppyeH`pdMBujd2)n-G$e_=4p$iwFx7{0$H?G6$(WZM zEfZt0NDA(!7G66_GLMZYn8Qaia3ockwk!9fft-UY-xVTM3V$va-<7Qj-dPpuTNR#C6^&poHiCA2-6 z5O7e<0=V2@RqVI~T$f^KECm%C$6xbZ+w{FStHnI4T1a$PpD zeyHHOnV8o#a1b9P#{(qr0Dg-ITHV2hZ1ly3~Ay^yp)t0Qy;Q97wWD2&Hd^&BA<{ zXTjY7jswt-387dm6mz_FJAk9KIQz8}thek9Z$S$b`tcYuiO%jN#bMBLG zQs^5+89@V%-zs}AajY5^X^zJ-0a1D2aC8zz(12&0KiCKMW!H|>)+9bjl)=Mc-C#!! zfTw_PY*O0+nZ^hTK8Oehmw|rSbNr4qic&#oZxSuc@u&RGCH+jSGsjm%w}I%#C72fu zXoAkk18w(O!fY?VXE}I$Bi9Vn`Xo^v5A>po%5;i?1s8A1!Xro>w`4B_<2#O|Bv#z( z2p&IwGw&jJqeEB+jYlUX0vD$oI)Y@*K$kCte7mq>p44ex^m@HDSq%SgSjm&%3J^#L z*aeVK0P^p^U4J2Pw;mY!@6{VB*teg=t;+f@;I3xu;|W(sriR>qRBtbA^awla{>7Vg z6oTkDOKUG%g}_}~gU$GC)v9_SZ_+~6_*}KVX|7Jd&-i;4#qK%S+Tq^zhh=R%x_#!G z8Ur)$k%ER~%tNHd?Lp3y1Z7HwRLJVRr$=K($=0Nf4iuZx`MiIIPI$Z8YYjvdf3W*C zncSwBF`|dRG7l12WWnSQ-P-BIZ&J*y%CNk4;p3|Z)Qf`O?r(VarHW~j*X}-WERfJH z7m+00IA&kF@8;T9=Xy1(91n<@fHwHUro|>KHOi`?h$4R&>UMs4a2K_5&jo|6`e2Rq zikk2fsRy?#T1SdMx;x0o8dIinM;^a@e*gCEt*!q%z};ULHcv6|7AEY{P3=w9<6upPSBHC>bK5a>i6!Me=#!5rRLm^?^xy|BP@q6O@{Bc-MMgI!HaMJY)~ zj+UvV?G0M4h}DiWfhpGQW+6O1_pS5x$HvAztBU-s{8Z8_=E7^mDj%?Ie9=IZlC+nZ zB;a|V*<@6y%1nJNHKJLJBK3a#0zxN`uyRi^B6X{&GQIfRa<&u}6%k2jAB~HU->+GyG&`5IP)%JWSj?;6(YDYVH(2TPKB+Q6L}p z`_qI*pA&e*)qPWpseAf(yW^b!vrFR|jf0myDO+-ec1U|WZP;pt3ne2;yUc7KE@kdC z9hLSPo!!t+?TyLSi%ibQy=WzPpDlk?wi9u-le2+Tu}to^SBy$v!3llbCdAz9hZQ&F zJ2y9Sb)w&a5Yo|0pKO8lcc4u5JZw{r9{#|OTn)(EQKbTY16?=+*U-gO{L9u2INX9h z&46O}F_6yneCZU~Ate{(On1Txl)<|p>@LpV1B+k z^O9&MZ*)1Qt9}2H)5-H@cT^KLhJiuHU=F29YLKMok=!g{`4!li|B=R%uc_WXl{(OqLC!wRR+(Y;f=!!?~ zttgR70?5kvLn-aVa4CcQY$0{gr=)IJB!{hG3fhl!Usp1_`J-a+aC^;d|fA z94$J!M{h7awpzYpTN;sf??3%{p-JJUroBTA2+Pkuo7JWU?2B%*)^wOH@Y`&boo?H= z^IJg%m^QZ0-$H}NV4+l8ONg3|mrtMfAuhwu}QWbs^ zTxaJX*<7Bb8P0H!f5L`qwXC<|#b)-a2J>Q#B$eGw?e=SzOP+_*+s?AqTSIl&y4V%D z2b4ova~xQgLyO~{|wp&zXrXL3qeQZ5K5_Iu$JTmGCLFXGpnsTS3OaVW97BQ8s z_H@hIgXqNsx1Zy{_c4Yr#e7SNnGhd+%8)Af0$8#QY_#JY{i4(ldn`OoWcMf&<;{)q zi);63A6S)9<*Z^G3o8JEJJEe2%wv;;HEmm#>8Y=1;`0y(1KbYRhhEm){_DO5wOLGq zWF^G{VAC$jNMcaA%o31GYp3FI(plSNkK60EWpo|w1rv}5UVkAmbu|F9*DJ;yTy-?K(fT-v@#WIhHOYtjlC6lRA*3F0<}DuE@odN_A|2M zWt8t9WM*BO=jH8L*!eUNKdMy24?6$U*}PI8DLui5rJgsF-YD6S`qXf`FW65eQr1>e zk%Kz?8zk@Qk@=pbe4`gXeRF7H}BdCE%c^IN#Bp&nD6`2%v2 znRRB{Mz&5%25QlZI(b<@H%qR$pJG5&O*VS38#y%cB-ZNsUExD}&(NqdkSW>Djs3Ow zYW8E&v2C6Bf(R&g%Ip3natu_whi0|STQ+AGm{!Q`Uy+s&ST8LL1kINMpyQ-PjT4|u z=QS#5U=8}O2~)u{2c+lOg05}dS^FrKqR;kQZFO%E^BO0UP$zDI2`tA5Gm`TCr-oJ% z6DP9`)|MeXU$)oFU`LGFK)g^M!eocoZgS#%z{*kz{hoNF?oJpfJL)zM z`=T0a?F3@Obv8|&mj!B#s-9yh?QMb!^TnU>8Zpwj-(Kces^IDTK+8KYq+O&p@yKCy zkCJM5nvY_--O;&M$xZ;=dOXN^YaC|s?Ld(x!6ZUg#LVry5%h3Za3&8<23%#9L)Kto zDXrSv?dnNjDR+>PTN%O2rXV6XB?B2;rRi}kFW_2DVPA6L;X4w3%tCxC%!?m3(C=Jr z=ZRm1k@1i>Ns54q2PCMF&VW5=E4-fUHg8wBfOH*S6yFC9<{2qhRpD2)BwH6;*J?`M z^q0I_Ecx)gL?B!G$*eT4Tdgik`L~)lE~r!!1b2N^Y_ zwg&owHeyx+?Hg!OmhibnlhB8-^?s;(H0f{A!i4jT`D4_-fcIa4?Gk`*8^ca<5SlcJ*URVy26mo- z)IS9-W#C+lVYzgyr-$)LQfMw)+mnZAIt$jKlkGte^RM1UL`Y~R{4@h*OM_W*X#PyF zd5-o|JIO#nX!1@-E*?8ZtZNfU`c#N%DMM8mPD#y(tX`NUBk3bd=Ohq(;W}!w2UggE zc(et@Ekj(r_~vPJkQPnRiV45X3$>!ir1FFfhTWMU#7$#JCjo*coE|C;I>^!@EjDZ~!Xp+^%RPjJ59fJ?k zvV4r<_HI{rf->SW?2cl?K)6yOq=b%DC_rj<9S>+Kn`dLXz>t`8m^LCN4 zAxJd=Lp+N0XM<+X!=;Xa+n8u$1}>5g3EPes;KNkAP}g~&bPg_#0Uj41NL~1DRk5^G zjOTW22S2b>fVj%ENX^Hm@Uinua5^8Ac^1<^O-g1)<9DzmBjSuX?YG%`!})RByWq55 z%|IUL6dr3#)8j25q`QQpoesP%7)MpAh>uofqfQeuuJd6Y=5d+~SP|VQplr_$HX`O| zcP$f~CXm|2#++n>UvA)C<|<4xbPsGX&^$qtP=M~ufd&d;kffq@KYU>I6$P%02!5m;B^I!cOhZ{+_s|_;Uw2der+JWJ&=#RVuCGU zz^-?}cWnVUY!Wtw0j_0sq_8mz26%+s(!fNV>r(6nljApTekF328ALAi*2oOSwXnH8j zkO7uvm}zyvw9T-&9Iz(?d7X~UB|=WJF{*5E9)RiNV%xYdCjla(4y93rx*LVE%tlZC zLTX<`bn@Zq3=DX2u!@cG5eyAk;ya*H)D+BB8fJijz7_AL`hx(X(Jg6oXCZm;x<;~b zm64+@nGB5_*4j(e*7rVM^V@!oDhkg)Z%aI53gdw&?I26_14DI!WbV z7qLRn^(v=eO*#c`zkbNGd52@q9sfC_6dqz7UaS^$C94Pa66C(8r_^|;-uDM9sa#vH zRxxu}qoG{A3hR0%0fzjHIj!P$HBRwZxnuyiz{7Xj#GuB<<%+#-N>*&JnX>ozpn9Lb zOQu^}|J7;N@>2g5EmtFrq@IGvHtkQd+Sp|Y<2bg#shJ>8yz#o~OB=Sj822+&?C>XA z3OMJwxVr0xcQsh8^_vHMk-f+M{sVt;2jBABaZ<>1iLX-?9(R;P4@-yz;4y#LKV4@H zUB@Kjc|YT3H_hhM0_HT*=d^H=a)(1y8dMC!N*~S6Ne`8ZZ;8ib9(UhywaEOvq$lT8 zD83%;{6NA@{qzK)i9TGtQ$Z1@sR7IJ9>69u-}@`kuJ&(|6DMzI2tab5&g2O*;`F z;g&6VHCss}VbSNNnqkNcaeY6(?4fcHJjz)l=F+1oXOS1|V2>JnU=Fs9;bh4~@`$^h z;Mb1n;WEdvdX(96iz&g^QH1kQQLt1vNB`Zms~)!$Wad z@bknwp_@@wOk`FZQb=bF>_VjNusw6_S)>48LNZS)vT6emG{(}@rTb+K`~aL!DE)Cn zcJN&iQt~hMbn#R1jmv&X;51UGJF{ejoMh2`t5daW5FY|5<+UCtG0Rtc zHx(dO)cNQx`w>kBQ~LK&Rba@LL;nB~6Ubl5sw6PpN@Muh$6reohz)+t;m3z=K5F9C zNo(W7frAX%u}C`h0HZ#w3lZff{B^oY1R!nZRte)~fn@b_=2ZUGsT! z&paK}$*ew`c_w#@7X9hv$L*KbtjR~}Za%6le*Bz^@Mr4I$G{tDyHB&=?d<0xbSwyO zEK(MDzDv8Ei2yOJw(EtJ(zSM`q8m81=b2^}jr%?t@8e(D*~T7<<7_C@v@{<7JgH!S zaw)I)gPo;4P2B%2;qs9)HG~cC2wu=bCT-Cnv_

phxjMoHCQO;o>wHiR%O$vObMg^;5{fOq(Quy=@?H=h-4_{KxS%%2#MTR+G>kr=){OdoB%Uha#N-WZuh|B%~S2rhurRXZ_?u%QNST-2Oq(!af!a;^>bcdp7zIIzSST` znW)m1L4jVvRFAwTk|-A=X2R(AW%B6SdKG2mxm<$|w4qxA&#gh+0%(h>fSDe9qtv<0wXDvnG2J@nAVH2Q8vU1IHD@1yf{R>!_xo)B zUhB0NRmYp;f@-W>1jBNsUYo&Lbb>1+(6A&929H*xTIHV`WDiLM5IaTWP3UV^A>QV4 zK{hW-9;^Co5$;W69(LWaKd(C<-Bw^xlF`&Ir?_+9DgOi%z4RcTGe6|4NQP{cmG0=a zE>%vTsy(qfLEa~EQrS98R;ioUO3$S8UP#Jr(rc!abC}`50X$i1wO6iOQ-N*$Z!4J) zk03PM(?hQ5ped(z7~QYW4m&0HxBsPn$XBkuUQ@-Ooa(jtDKD6QCorOnyg;>rXB5|l z0=5YmL879zv^$mXeOz#klztZ--59%Grz7{3a#Pb#r+#_n(v}%AM>U9%DOaf3O)L)i z+3_11AR?Cvm2+A5!O0oTtfI?@-q8yx9_FRUR_~Y%kkQG%tLoPSp2WRA>}hw3BK2hP zkuBp~;Q<0zK4mS7ED~2l@6xle%zL03ErvDZD9g4lj*?GE7FmsoY{};eJ3MrHKK&ih zQ%FcjGV{p-epBHM+*7w47|0OfinM$@6t-W0aUSK$HhhPe#!~xi^>`S`2P0%sM#0_- zmShq6A$@c5PW0SiQHF4_mPavmoVYKm7M%B^Q*b@zOA!hrNwlKRqdILaN_H}`DipJG z0Bn=!Rf-LvR|4TN-y9yuZybuvK${7BS5^IB`Ng%o3^Pkn5Ccj8^AOfh3a(BNz&D@0 zY(W^tkc3_uIuqdwbZ4fsvvo;*xz3Duc5V~5&-C?H2 zA*aQu8*INA>VB#&yX8c!z2n;znfrO?TI#f;=&WJ+n^27l8PsTZ(}L`J_&%8TpEKy) zJ(uPhY*fNGqJ2~?<)bnrHD)&Kt^$irMzZc5N3!46`jnq8HG8Szz2@%-b-NT^K<+#V zi*ZD&R4>(-YD}x;9e~{M8FLstUi9=4I_ktDpL<@{dW1pQ|M5|l0ug{aVD+Ez7?$tA z$IAM^|I0^-?F#!3ALYKRv;Weufp+^6l<|{IZjhZ-mJne)meGcH7RxhYDheICgG=k( z!GI}9fE*kyJMUWLDf!I0QiD5nmZqNSo2UJHzRgD=xcgHA65HTA67Ae3XkYyQ@liHz zi@8rP?i10SiH;F1x+9X_(~J6{+(-xUuor)KY0+lHefPlrXCLLBKP&g|cjTW!AKyG= z`(*b%UVMEMP5O~I6&fg!W=DM0>we+_sE09n0Vpk1F*3R)fX%yjb#yfJglQ~v`E^3` zHfXnI^?lB_J=8RTAy9u{cCyEQC zAVZaBE}EgtsXdA9xGaqN_J_W$?`AYT}831R@vJV7xDc(I6{QDU2}ejn(L-OG>bU_w$6&quKIlMKb@la z!HLZwE=neQlXiicvn%B^O%jP^;1}80YICRCix704fw3V|tD-q28c;Aiv3sjKBXZWH zkpj|0+lHl5K%H2w!LYU6xY0Z@cvvx^o`F_LZ;5+`DyaY$sN&3q(F*C2abU&KdLm2X z43m>xQJ?f?{X9oeeW}eGfChIpAndlhv>ELgjwjt@obeMi1(rc(ilH0nB@{x|uI{xJp-8$?sBg*Q=%H|?7^RI^f7Q&Z0@&tu?ry^HRyHD7C zx7XfA2VWv3^VahWPS!B%n^B_ykhr=tJ?@5?6@lmhPu8xGm>1oK!E)+f`A{2 zCq}X)v|hua=0u7mgTW8&Kqw7h2sN+5;?@Hc&>9E3Cr>f|(m7Ki2W4s5)&PDY$T1sy z>xxi1Ks&Bn(MfuoI1;2q;O*m-~F1j_F)MQ|J zMdwVWDbvw@pX(NeGoY^?aOl=KFQ!l_OJi0rRG;pP%EMHUMh5i2I z_M;8_sq=fRR<_14pdejCp}`5^z+=g8a*)oEmKTLM?oAF=v{=hJjq-mY&NKmd+Z5A~ zc!%?rbp3vLT>>d)5bs?xJXbZa*-9$D;1uEDUR8B8FYN9GmwaS)poTW`8Ke4)qvXU zSoTtW^oHj02dg&6!1a}u!P!5TQWq{hd(GMbJV-~Tz5ex22FDxqVfu2K%r3E%OEPdn zpTjXn9QojF-?kei~QY!*RQ@baf3X^SHgWd;%-9D{$u zx$RmmW zC|kmDNy7Wb*!Ejjs5$f{KyqVL@c!t@<;f9+_*P=sAN}O)i~ef5-ozONq$OJ~TQbvG zTXp8BM|%H=<%7jsy=T4W+&iAzVtydi6g?#x3l+7n%NItnH;;nSL(cWmD%Mc^;P2xMx3`Jaz%mj!kWB)tbDLe@Q*@02XgvqNA&Z-aN~czK8c#SR(DbV@b()!uZ6yf z=}-K1I9kGNW|!bpEeaL=3I~zYrOt~|`E;QtY;dPqJLQ_&(OhDUGPG{c zjuVfsz<*4xCc?C|sHmK@BU0nt#QRclXN!ORqf&9~jxCaM%JX;Dnx7|XcZ zfPc-x#?vlw?q^or!cy7g%$SqaDwgy2msMfFT6ND@G3PlAE%*ewc zyAOddz1JYpTFa-0-oJ`Jb>Ina52OF!Tl(U)NAE(t8K+kVzsC1HmjGGXoBy&{{#6DG5SE)k=<0(;5$(dlA$jZ9tnKKQ@=v0FK2iDDjy|fb zMET~>ceZXQkEN0>lGV;cEALOv&}r*d;r!;-o|_dHhrlD5F)hK+;4xnX05L!jCY#t2 z01~u7_mPQ!dnLweKoL2K|0MZJ6G0LrP)#COHrZE!1oAqTs8!?l@EkpMArTr5R_BAT z>;v%;zQ%aUv7~r^*EryOI&}8fBOY#zDg1~CEi@?GQ~5NHtx9q_gV-H_7VMuCOXX(E>95P-xHu2!FF`0Eh){P zmwV!St~ck{)~n?G{Af>R^!Lg`G{E-^JlbIkfEn`PxfC##0@k5`P4N)20Fgq1xbY%5 zvVc$y7uAL0@K6nWlrW|^*N-~QLq%~QZ@ln!bVw)@A#ACovi1Dv^2KdZW=(3*Z1`vm zTz6Rh>$tYTEZ&fY{wBb@&lUFs!0im&Q99Ua6YMASj4_Rda-?R?F-u7zLK_@|juJJ4 z`pE=I0|*8qNqjrKD-0CPK?nnu2Abn1yTh1AAYoU~i0x|xAkx`|B>DjbKJ23zSb+&k zfTLsK|#-uA<&Yl-@1EWwgNdNAnU^@on zI32e}$9*JsUm%q5o`#r{SiFqLrjL&DT*rO)-aDb5~n)kAKfiN`cu3 z3M<9Jz9k6>WKhqHVEWhmE69U11~`Qe7jjNKc&J)7%7YFv6($=^)m9`(G!IqNRXeqU ztfP=iY3S~nBPY&5k^!7hYd6t_ea90WW}Bw&l-*B(yHT9YScszl9FQtT2A3N$&|4gg zKh@g1SA4(VKHfNF#hmzQ^< zG(PE76zG0PRvjR zAdPgC79G?xhbZkrNRwdik0Mh@83T6`!@jW&FNF709#El!6^Vcd$5$OV3<-zO0H|$O zo}+fo$U>#)!%(Hos2a_zr%c>yis*N~$j7czPwD6#yc7|t>_nTt3LBorcbXF0=DikY z1b|h9ibpz1*#YU!AE>5;sCArisOx+PJiH|HRxbN8dZa7Klnq;Yy)bwF@!4`xnvt(aQ03^)odJ~aj!t9Z903_7z2@vm-G2+;Tslz=Wrhz|sInfx=1`2*p|uRRMy*0kk-9 zX>R^MQ7B_hliXvv;#PEQgQt)h1Skq`4G}Quzfx;TH)lX?IJq>szju?Hi=f&g9DbAp z8~09TSAoxUoqF~kK2FLLoK+<5vR4G6EV+Ihl*Yj%Fiv;|C;K+#Zl|0Px;R_@w~G@1 z5e2O!<53}zP&+3078|!IKnO?B{V8R&LLDdmywZzEvl%FMcqj+^g@c_Ih)k1kmwpXQkmdrM zRB&xhWNWnQDdPWP>#f_O4F7%Y8Di+}bm%S#5di@yX=#uK=@JD20f$DqyBnliL>RhZ z=!T)Y8-dyLTYK&OtbH8MJDB2=1a3 z0RoKELNL9}9XNSMez< zjA8R^y6v7q2<08lgll1n|RM*v~P>eSwR8AyX~6PacWdJ-%8I~dv*e#}6#+~<(b znh+GdKLs1E1aF5zR^g58u9TooGR3p7FE8=0;F!qR_r+SuZjWGj{x3*CCtPE|%>k1< zwz&&I1dt~jP;vc_vlFI);<1lDr_tQCWZPW?)&Zm70Hn!~e-eU5Py@_L`90G3`-dxz zb8J?&VRYIV2FsaxREjG<40NqQ@UMp8nh^ib$nftG3_e1)n@>iiO{hOKP|2mx(*T&- zgs2^F(z=RLHU%*HaB4!~?B!?Wb(|5xwOnPd@w=e7oBa4sU>sKdil`LAun*{-kO*5C znvNMrHi#wb0>u-KesMr88 zPuK*B8P-cYymUA^J7%to8PGEqi*ONx4T4;|b^OQ$u_M6;2uhYlT?_<+9G=^BjqzEd zXQIi>1TV%E?<0x4^ZR9>gfc)ab5?WNfV(`Due_m+2;&C~O`--B{~DFe>_3iAUw|!s z=QleQ{5vUvpwY&8cq0e6zk$8rOFrJF6z-0HWN6>m4cUNLE|5`bAh-e(c|yqt1uhC$ zVo1-mLkPMxP>^!Z@?#K(E8aQ)lL3Ivf>DgTP9TtaML-B7fKX!+($+FqC=sD{=MqGh z5i~+EANX-2!Nc-rc6yzTEfvFa8U%Ncg!ME0>l*wB7?AJ1Z5)COU=PLQfC7Y|BQXZ3 z&|#$AR`G^~P|U16)eNh@Mr>H4=EKxzV>+P-0Pnz+wMz^uX{J2$Sz;DDo{QT(j`qi9&K%x97TCv^yFf1(q5P8|~RvZo23)2J)<&&ycG;*Sa z)!RAc8)X?d`J(yz1WQSQ!fFJ(`7v3(V}`*%PKaELyB$9jvqr@*ygOHd+yC-_3ftky z5L%r!&&LjQPD7g50O)^yQ{EU+`9C(1=PqPK4e)jw@scAy=@|KN&>KM6g$TOJf9XHP z;2#I%LNy^kf-^K)LSP;)8Z8Wfzu~>lqHR<&RGEq63kT&gVb=NRuq~kRn}L3}5p2{9 zUjp#|5#o0mxr{`c%EXRzH~^W=Ryp|71Yji^?wQ5qSkVyV9Sc@fE?y@*tq%JyL0%;+ z7jFPYz@SFZ1;^j3NSs)5@dh*o$4gMZ#CXxeq1#1K4#%$mpiC^DQzk~T##Js3;LZ_Z zEMfBVxr%S48_;Q>?3GtF=MwNE&Z^E0d#=N4Fl(?%T>(t|xb^^yegNR=z!(y7d-LKu!Qa<*0`q3S_B?_Qpr&ok&W%MJvX_4&%r4hF~PX zF~7ploTNan2z8SENi@wG_20}tg7HnoJ(B; zB!HvgoeAqAh{>mlz9~V`IbG4q=}^n*S_?8zHj3i zDwM+JJ-JV<*2+Poal)vgJ{M?s*%IG3_7)QQB9k*jqUhz)kqgaY`8aW`vjCm9#_HwT zag6BpT2=Bz;P>4}hM5#%1EK{X3jL~~PAg-g0x~CI#7x|eRCBw~9OTnOi(@VAY}`sH zl9!&#I?o!(rnDy$%n8NS`%P=SR0t>H#0+&#(lA@-;?d4<^Wp$HO%)iih0q=f$wn0r znIPz|rN1i5hvJi0i3UtakLRs_=k_#j*o{3WdbeC=C*>)-y#IBVI67j*`{v;D-)|V| z#y;+?wBnfT@LVbHP8P8dI&+Jjm~_>nwNrlubpm`VxX?r(zDPP|K34pqrVJKas#G4H zL#wm`t@p#e0+i%VDAXTHx!xh#2S#!2lG&tWG=SsSaVKeB~Fidwgy7~B!?YQ1}-Y7=f096!xONb zX!YL>k+adDWt2jx04u;{djk+9DnAd#Q^p78qY~!2S`qUz1GjPyd$#52Giy1GLZabn7Q}fC9C)YEQ@=pu8a+SxYF9xG_@&NK& zX{<8c2I#}ZnaBhVAX|!qY;T!xD`R6Xic27Ooj==OpJwQa^lERYO#OyhsD?nd_%Y{P zTGlb=&41KGt0}^XOQbN07$Iu7IzSY8WiyKr}1u}>ZfxG5NS1~$dXCNesLgZ@3OACQw|48j=p;e#+ z-UU;Wp3z|%D)16+jgd8$((yV^M9h3v#|r54$9DywOBY0#!7l?Cm`gETf|zKlF+h2^ zogh^J3UR<08Y^teK^6JVqCj(B>7&xEK>HZxbWu>LI^*y=mt|1wLf*pG(X)Rog;PU; zZTpqjOjvYL_Gkfw$mlFq%uWvXv%Fx!eOz~>haRjKs$Ce692ID^T?j57X=Gtj!^zsy zr6{h-I#JOIV}7@&`vzqN>VE6rHT%pQzx*1A&4+Le%-7UFB`XDk*v+6X@au*NB(|_5 zq)^$VYJaLG=96Zh$#P6%l~ZYtd$+tLVBZ)^LcK9Q~dXjb(p-FEpF%RFbqw`S&rE zzJt{0Fe9Z=sc&@jNrX86@iU-1@dtBw`r~Mwtw$+_ZPH|2px&8JI%5K)IY1gRZRBTC zPWS%!j$l-pD<~-782HF7R;0`8{Jvfh9l;DHS};%)A?r=8pzI=KDF~bXLZqrhk_!#y zLLwhVVV!o>aC9F2QP$zdsis^2y15?~*1NrKnP;gmz*#ckk1*-opuzd2n{~o|xhkgU z!!Su)ZRVQ~8nF!}ffNH$pc!9jBC%GU<85X(MSu)|);`3o)?s3i<+1250ly8dJO{Iaoh*ld7rHWyI5)7*ivx`4%>E;(KvV_=5opckP>+=9;l zVqxzjltuseuO+#&ziugzq9tMh>9+1E72_+Pb1|6=VBXu}HexS=`*8v$aS7XOByXu~`laPn;Wg7a-u*B^ z9wAkNzk4#T7K^oU2|Tw@wtlVt=5g8_!b9Ol^N;4#T+o80$X+B8azT2$1kcNsHyFqj zu-OcOPS>>GLkz+g$m&bGc^%UnsOCBqP2|IEA_A;5J`#MPC%=wM$OlI-N@GQfcM(OJ z5tFL_tSw(!BnsjG$euaQ?&LQ0va_f4ZKuaasXJaZ;s#|woQAQ}kXuCxc^gQ zbzW1Qq9y26+8)Tgd9O5FZvH5WC7tC#MCCnTEodqgF6xSa+tM5>{2EO%p8ij zfb}_QGf{$OLo4Mj;m0R4M=JI~12((&?NvqzoC>;csx!HI+imn}hV+YZIli~x=+?)o ze$HSkno{`Y(w5Zz_2<|hZ8=Cp4&L(a`O(tHr>eoXaCpk^`MGwjUMd$^evj3&osVwk zVnj399!=H0N0x|W-{JhkH%sbUZ~Fh$3grUOu8ie4y@A>q?K}C(d02V_0V5e`Us&DO zvEP_^Z*5jO7C|0H3aEc=33qs9eZTPm(glQ=^LtZ{K(9&^d=K7tc+WPkURQ_u9(_7} zpo8Y3vB3jA@Dl-WG7%;q!Mi6MGjQMp$qSGM{qxxmb)PAcANSDE=gXoOPu{CgkYJ7f zb$xZm6gg5O!Vk(gA8GFP}UdFBsnJpFhHcRdZ4(|P`oW@ffiCMIB9?Cu4#j_<-6j6l%MrCzQ!2Bzlce>|#qnq!em`S|g%gZWDqFzm*UM*Rq;k8#s zmbRI&OE0KbKe5-Ku-CAm_hXNoU>j1$6{PBhrh^Hvg`pI^CRY~hv+Tjr7Q)iClGnL< zt7Ft>P1^e@vM)2XP_s?`B`UM7Ba38!6iy-vJB*&m6NQ~J06>Uhr`_*v)$j4O|65SM zXJS7%u3w9k^?QAl&vd`{|~eQ2(BUxcpzZfKTvicNP8gIY9Qq6KxoiFSfXN> zk3VKC5J7?iu)u_fEz|{E4aA@g#*z-kJu3PO4JODACThPwq^?N%`aXb}JN0V7hx>g> z!(c|wVCM8-*4AKF&|vm-KgHe)Iv4~KGrvG+s6czD$ZDwg>rhG1P^py?ZthTd!_cpu zp^E9D%B`WQtD$N%8+7ztI^r7qjN~5UgGFN;pk$+=#tMUMk%11d#FfuWCU#t zF+e)D&aBpgn~#}01nyFSPpd3{9or2W+e;kVFC05)7&|Of!!^UCgF7AgRnK*Qu$RAOsjnb%48K-s{s;1Tam8e{;t;V3L zcCkFc7CgzGG&yxN0So#-_%wdG3@M)mTuuWRvy@mQlyL7f%cmi{QA3y9T8K*Ad|_d& zI@zgn=21ZEq*&wBo4+v5rwJN7%_dp3S1ekLl@sgC!$qXpQlmpnTbiOg>f-Lx3c=c_ zGgBaRO+eAm81A&n(`3`uwA#~U~kkEaDB)cG5S6@zE=lXU3+ zs=p}GmTc61>oln=H>q3+`M{$yvNhRgq$L{#v3SxdryVvno|GZe)!m+EHJ;Sv(f*q` z3kp1Yj7_a_~D_Zh_Rt+|Nad4ub@ zQM7rgqT%XgO;H_vUiT@DB&C<=GasJDBauqIzf)0vHSw zJsys}RI;^LC;ajL%8-oi<7?x^#;D%R0`R=wnEs_E|%AZe)seR)Y` ziS+nm?~zJ7&vG&Da_^_*Ia(u9)#VQE;cl{}0jK3*B!{34BW{>+ep(zrH!dDso}e>6 zp7s~guThl^hv6D`B+kx$8iHxBEEKIQHX4V=8!zZ!PdAKD8Al*639+JQG{lOu#)DQi zM@Pn)O(s8?=<}@Z9<3A*uC5znZpy75qN{A9ukLKGDpZ>6My@WYVjuRdUaTmukgZ+m ztX+RvvtD0`uwP3Dn_d>J>7kF_^{ze6tX=!AO-HTWSFQp4mj11*p@_gy)u7KSrT}s{ z$V2H$4vv`&$I2E&pEU(}z;Wf3P>SLBH*i!DRr6Z-W3L(Bm>K3XoK)9*34Qg{cXiSz zoTzV&SY#a}zfRV-PP^K5highKX+%7_M6G6mKfBH-VgU$J-O$+}Up3(jUc-4dXAoJZ zk=)=k;TxY`XRT6YNj7D>S-UA(Kd&(2xKZY8+7RqpL5#H-3*WrpX;;mNT}MQ1NctMT z95Z2*-xSYg=QgoqwYHSB#(veLDtfblp1t|3qOEnTESEfgA#5oTVr2oeT9g>A3R9C2 z8Kuu&f5$uCR=Ef+{vfq7EhfLJ5N*Yky(PuFO6hFQEU(IIvO>`}$~(5jcC)@FyA>v< zJ?B1UOSjo0ysaf-Ax>{oxwd5fc`DYGKXG6>DcT^Swk9_nRHv z9c*`eD?bk#+oo;RZ0n1yp|6cL0`69pv%AjZst6CiPX#SwU)4q-thOOxmi#+b!Sa&@ zPuoI&cSGfO!z4GN{C4(9*JmBE_qlCHC2Z};KLpZE$(;;6jM^j?nD?8h{tQzM& z+f77T$EewYn>IU^?Xr{2a(4D2X7}9aRdquSqN8_XOzeF^Y)hWaN}o**aSsSVdw%T) zG9epgPYoi`UG?Q}e>SMW#sM2`D! zoQBbz*OO1mcpZK+nvGVS%zBKqB=1k^ntJ&;n?;}Ov$_l_Zy$~wZRtA0tWHiPkIzC* zHhE9)ce-@PoKK2v^LUR=#vJaf56_EF0WsqL@b`8{UFzChDx94Wv(^BLGmOwzC>Tys zY8$S+2irSN{noDS$u5|;XTaS(lpL$P6W3+yBV5xnyckCe#2L8)AJz+7Y=yJZCRb{< zG;Ii@ri5hGxrNP@$SXT5=TT^)de@%CEJ{v;I~Uj`Aa^6k4ZXX!YNAZKQ6`R zWYP89WLbyt^mXmXu2@U-+_UuMtVgz)7m0hnNPN5E-nzU(cj@HTNg$h(E!G!C*9{I< z`eOW*#_3Xl;u=lf;WfsW#BH!3`b-<$whG0ZR^tvMnQn9Dg#3%^kFQQO750pJ0r+A% zQq>DGE;Da~-DOj*^Lgxu8{Lg;ZagEto@ZS_w={JW7Hp5VWq#-hS1!nQd=1sT(QvtO z{pMj@vhN~i@XdJ2;+wn9la=GnjmNkhm9fX?lG`h957FIg9X)pqoo}Yr(_c<+xL!@y z1>HK?e08n94Ql@8c6toKvy;EsLb%^v>A$^czMA*ayNfKz`EIj*+jN=M>lsCH-!1w1 zH2G@`;?7XvF3!d)GWyb3-K!bzKDor}gx8BU=Ds%TK7H4VX7^NR+^c5gK6}?Ix_ZTy z;33P{E8oUDr^72(-8+x&q1eW&pu{RM#=D5^OZl$%#Eo0(xOc4SLlvKQ$lO^C#lK3n ze~lfkH)P5JIs@~@S`>sO9(;rMrWrguBVw+=mHD8XYdtxuPW zNB5d+kGfB%kxyU0d;i*(ikL?R-S0ys-ovLd1Gi58Z|_ETeTr`%ANn4d$ey~KF8Jx} zG}xXdPw%JJ)~DZI&2%iyoh~5;Q+yRle0hR=3X(Qv=l;!~`lcg%6`Osn2)@J@yPMv4 z$g({PG+xVBFr-)CH&WnEPEFfegZFo=6{*K<1q$Vhc<_cU_5F+mjeP?#%RItV0aI8y3w z(HV*fPVo5RLN6_Nm3(%&^M!mx%b#)&EiI-Bzy_ z1PCyrKhAL&BjRaFSVPj!YULv%7?gbv-3#VMP$aC|RnE-1n+Z8W+wRDYd-}1sf=1Kl ztJaZ9y{Rgve>ZBK3Rqmde@Q=EhG*}B^eVhAq$c9^ENj|~PIlMhx!BhnjjwGhz-&y8 zs%@N(Ya9Iud@j#zN-OeS1*ceT0&a7?FX(sMYQ#SMeDUEsKG&0%E=etD&i;j+`v-L5 zw5C{thqPoJIqN7nJ8PK$&q;ZX@W@KsYZ#RcwDN5O*-e3{6?hATwI_KT190 zD$=d@h<6@#Ryu;wgJWhO>T7WA)-dic1#l@;v0lILnHjh3w3~8Dew(s%(AW z%*#&~*9h`r->mxwQ+zk`D;SS|LSeLk) z7VJMx)=zr>I}YjF_EjTpx&k9TP|F3Bul+h6_%p20ApvC~`?$ z=c>H%6>iYDWfz_?#z20D&F9L6V~iAjbNHY+2j^OtaN#t~e@;-kiMF14Z4qGVL@^tP z$@hZ>QT4tB1$F z#W!6=KQ38_x8oIIR7k~PBlFF)AL`mIeb$cXDMv7)^Ca)|7}*l1%^6~ieGm%{VRvzlsetl_5h^wjVjuLF4fo$ zffZ~Dmfv3U6+M|{lagqR@txP2N&|*f`=yxoJt zL6}F0M2PKo;FkjYGRqVM1(d%4BDLW=oq55lY;sh*6X7O_^CTQiy#jtw;ilr2PBruN zJn?b%#VMRdaNhXg$|#dBm?03TY05C+LF z6?w!LSYX!np3PgEi#%yLsJe2aYEK3tv%PBwQ=#YGR zgGvqgHo232c|<`Z5UQqfua(!d!~g|wYPb+zg`D@WzTQQKw0*|TiB5~iw4nT8&=r|Q za-7Pcl?-Dt7s?3i3iktxQjF7vakD%|8V=+GMJk=S2vXsw9QvLAqIPnK=_qs54irD? zDo5TrmWc?sC#43AzpbW;fJ6pP0i#?>Vu4tC{@&!ZGG~57hU}gy;ruJO2<@_DtAkGM zAy}Z24zsonUgk78OQl+W`RG4R1TJxLZE;1h1ls8I)Qysm|+aO~?E77tBcX3zhevR{13hSR0t zkrA(Kqfh!~%0eg0ktNO2_@7~miMpGuv7#Ugd}J{lQ>^dZs>yenq>$`mp@2#J&mSy} zIxCvqRq8m4rhP2)2VEBF67Rng(lcK3)7Ds#_~=ulJtbBvBD?>dz)~T}=&JZt-RCI7 zSXtX~DTz5w7VUXVnh{RPG7na=c2`KmCli#9BuyWc&qP*4;S$d&e-Z3yGhwf}Gs00o zDh%Z3ACTP$8O3z>%pokorc^hnJhV?(moLUW!Lq1`vW({DJlyHgoPoeANwob?MsdeN&t zm$(&hJJQ(8qui7{Emo!Kh0DGd)?|J-*lyHpnTYliDrDl>f3MXF3vj+FqRZMZR1;&3 zQ4><#Ti#GgXq_&W6fS4UqR}~hJ?YnXm0R#gtQff1rDWn({-yHJ_|kAnR-pFRjL$}b z&O;lmjBrg1&92%Ua{O2IvATfg*zWWJ)+2JA@^xkQOoJwv;~w#)q<&fU!@upN70Fkv zQ>uqjsCUyr(;k1P>5i@0KE7)1X>7Z!bn(r3HM6iI{QWS>+5gXIug%}r z4?S8s{Im7~FMF2>J4E|9R?Z^dkS|}bde+wC*@t7qZL+?7J*1U=>Jjs}aHsov#FF=m zr?uH}k(c3!wmpeg4{b!FM?e2O_9^~o?V@=;4fsQKK(25# znt|{1i;s58h_9*lZ?xS4Y8q8r)lA5m z_8o8eIpJ*P%|~-c+#xdmZzQjotNnl)@usJF<)Xoc?j-cv%_`!_*}U%+{dvsWuS4kL zGJ|6)7gYGdYtk>=h^r+};@0XiL&pYdbLcOsSl{d>RX!}8X0NfZJ}#Y(e)==le%toV z_t5FB$L6;;3()?5@SO4csAlS=*=L{SFV){iPX9D^6*nK*{CHe@xAxFK+jemr?c+z0 z*0)Z9D8Zs~9S@XvI)B@AbKCxGR^N1#5Yv98YW&Y>X+|ewU^}OxmkNc`1UPHdM)t!0 z?~BLEk8m&AW2)@&55}P4Y(R2WlW}(9dobZR}tTnlqldj=dgbBa~EnZfYp z!R5hJbCQdd=CXBfN^?4~)lDy&7x?pJV&>!*rm)|p)b!>9AJ!Re%&?1daXglPT(4vF zF+7Yi0Pq=CR9e8!E`MlFQ+X3SR7WkmZBHe(IQpW7Qc1hTtiGe(wd)49> z5iQs|3@o#03}GsuVq%lT5lgpZmn?WAGE3-fDDI3{+@sT%kijMM-n<($m29ULf8Ojq zvh3l>meO65ptl;~W_a~bAk%IsBUva}WyuhqD!Z5yo46@gr(9J_E8)ELOvWG?u=N-G z5$?4YeO;CPuAA6X2sSXtQtFre4CJ+R+VDgWLC|9V!Pswu!iJBei-eRX!R%eew=pd8*qO$Wdt1D<1y>H&)#`-fhn;WZ*Yt@Df^{y=^+gJHr zhj!y07%Sa-HV^AvJT+tFIdr8hn`a2yoPTcI>s{4wHt*uyspH6R>EYh(Y(6Kn-_v)S zdrEv)ZN`&qq#la-HcEax+uTyI`c_&0Kq>X7-xI&sg`D6Ah?EBQe>cw zM7Z;&1Us{bX0LqVwbk_~4U1+6`IQExv;QnE4bT7N+f-su#U2^Hw?bzlJ7yEPY8yPp z9zJHKn#~sdycb+&+hD~m4lIiUm3<6Bu!pto#)*{qkF7d~oQLQ)*pSP|jIVzFac7CEHhC=|+3sXkW0nS9x>r+ux|l8z;^q zwVK?a3*Dh8fTNI-tKP(1<)A#z!v-PD)rdmJk-c4EZB?3Y-{|pcvS^k=iL*30r8(IF zC493U`&Zr0eq@?Mtu>Ph>;AVY#IKOXU+Jw}g(s#hZig)gxb4Y@j+0#BPY%r>?(A}| zPR(DP+2!^kM>a1jy5$`+=_`74kA~%b^;$coV^{QfRD`sa_lF!2N>>adJ8rsG3>G_% zeW(~}a*VI7818fYomVk(z&Ke+Ju>Sk8I26G_%+rv<*Ph0#k zyLk@K_g5Bg(n6NisV%jNH6m_aB!A6fuf+JouFG)O`^2@Wc-xuRwbf}-O_Oa$<6^KX z)I;OAifC$xbJLoKiD>I-g6M^}b1ptuGu^ypt7_1TXG2p{np*QxCK+T=MQg(5%;~au zQ}zDl!;P5Bm6FSm=Bbk*-)Udmsk2KILp5xS`(cPHmcMdmqiULSQ^n*Ivx@KEPH?uL zOME3C|9SP9h5efl=h=C_m(sSP_tnA-{C6O8KK!cX%;U>0l8aW&`-9VT9`jS&Y99-y z9M^ahW&U^MXJ~7D&wj2>JJn;t{DZR^=wEUR3HfV>toKJz4Ne?VPoo7vL}nkP6m1Ke!VAa>mY}!S6Vs zFmSkSKO*>ePMlE-^rPf0I(>{j#iZt^E)gJCsF9!n5OK~nWXuLOnP)=Qy5g+A7cD0~tAaw%f-Md+8TC77SY!eDkMXa_-XWN>J*bAnkQM30RtMA0WflAj2p0 z?lw&GO8y;FgOa#V3crvXn^27Sl^g~{?puQxB38jtDAXTFd8YV2K}e~jL8)3uxmoD_ zn-jPrA2Gds?#EDAFu zs*1gKh;*PXd?8tfg0aj_cWAy|adRk3xw&fP4;9|Q{5zFoCP6JbF=-2VCDl-FJjOB$ z5GEbZ>souBfoV7iofuk`dp;@}1|grOB(SS9WaI^-=s@g#PtZYN{P}-Vw?bHm*DSc& zWP@D(HR+e{`f=#g3ejR23OI=AL}KT23pgQ_qHGoizUKwo1Sgushln@^x%E}kJ;ask z1=DD?lFWrh)5#gZGJu(jolH*<=l%loY3&^Gyfyk)1FoG{|1XR}ZBJev#`XlMt z;Qp(8pU*_Cqq;N%e`0yV%~9B+uLSzBG?7d$SAy*Y^hMJMQcccRC_N$_UBehauBL0h zUzCckv(0zm8vtOf>seO;n5kTJ(Ob!$Wq;=*ynK)P&H@3BMJY*~#1O=R*J5CXnlX0a zRAp**^86*b?8nh`rH15%%^O7U==4ZOV!k~($H7RnEfm(rpN z=JnD`afjE?D_+4cSikRS95erTj9q4kKdn_b^0n3Uk<$eDW6-gQZ75QUv|NRrQbDng(w_==etKLG1#J3Ux5ZD+DiU^7!?6*Cl$Hh_Wu!3(XS zOEjvx(;tk;=Lq)_jYLtyXJjI2BHn=&iJlb)xT&QvIS2>H zum=Zt)C%Ha+cqR`1Y#5oiNiNAAtGl)fX~zKz%DJ)B z$WH{{Yoh?LItrkzypZ9&lEK5IPnFL*K%W_kMY}mJkiV0LQX$P$EWt+_(#0M~h!)Xu zkv1>8!fr|xEa7*ly^=8sKwO&<%ZYg`lIE#%|kQ4KwuO_i7c&trP;dYuV8{$J2ZOOOjGN1r9K|l z0bFUWb@95&v(W+lVrUKt>3;Rat1!b*p6|N2u7(I#SWpbl_brmu7JaF(VpCq|l_7UZ z`VV!BGdG+aRiBH;V=LhxGJ&LSqgk95)c)yAw|dl+^Q76KUo0*nZiJhdEqRPTE-f@) zG?jNWR=RxVdbx7r(cB*8U=sMoaKl@<#rTu+*Km|b+GitmTrk-m z$_no1@dzDSORDjf9^squsLz>}&qt{}5;w?xnbv9b4~Ep`zazcFHb> zf3iSBCDL>US&@saMIzT_!5Ie$73njTyo0}-XdDd29~v832P;2kIm8_;HvYZ2t~Q`? zjK$5E@4XqQwaIY&Wa%|H>Vb5r&>Tmpd~Ba-x=DK)-gk7^TAaSQk%NvJe6|T%&Jcbj z534kAkI7g`a(^WUr*rXA4q8oYy#0I5W8kY0wDxp!`woz8=>H}N9wmI&N#tx0oRhL1 z?ta(JV50w%BxvKN@h(6>(k$vr#^#@E(E*l<^SEzqTdatV$^k7u^ThhhR<6*S{?73I zR08jv5s&*(hpNkzxtUGT+xzhE_BCF7Muk5-5G zKw8!Hq2b>{)@QN##)qrge>z9jx15Vp*=rT`Sw{{w-xt=L;VmV;Ctvm6%&kS=wly1X z_`PUdLhZQf#ArYDQ+TvWI=LoPxZR6XXj;GYb?UwSbK%jHClR_TSr6Ke66U#2sv{@qQoQc}pwOZzm#W z^H}{gj7H|+-Zb;%rlVv3vcoU-^6kNV|Bq`n$ldJ^)YKmsdnW%gL4^caPT>QPN(an5 zq`<*-!wR0jhK|ljsvip{;lQCF{%XqvO$bBH0()Jcs#DV`#>z5dq7CvHTl*Q&?#uQw z+ZXW@!-hvKi#+O2<0KqlwjE1-9oTfF9up>Z28m~J(9HbvMm>!GvkZp3zhOFQ%nNZc`lUJZ2UD>ZPp!5_nmk!ffKC= zE$mBFQdG9pe;0u{)}K=0;TqsrQy9`{`@Okly*rGAi=KVEmtI-%4*yZ`B<5#ts-VN_ z$ZK0N!rZ>m`@A4{4j@eIm&s^r<6(r3ifDewo*Y?APSy4A$JXZ4H7Lp3326-KTENR# z(cieL`T%fefpU(TvAw0jTu_!834p5c0Nx#ec=2OuQrI4r`=Q_omG}PkY;(AJKt~<& zu~jl}Lg2rOz;v@NEC9JJ+?ZVVGkZi=s|7}gxn#n2UA*?u7}Wi?5&4_L)bUM zn3HWcezF&rZiI6;?QKNx_pxtA3eDPXMv3l}ZbpmW>}|$KfjG8eWy$Tf;uKlS{!;|* zZzX8Rb8IJS>)LH6>06g=CmVU}Z>N}raO|X7CEM+!*%p`Wq&qh4?_{|4aqMP(oweJ| z^4uxg&Gxz3-_3!DZS~{^-jMC-pU{O*5uhx<_X>cb51S+dm<>R;)OhCZkPQ6kvJwpC1aR$2V|PZ4-{+zbyntOSuc0(uCBP=@WR{wsRrtnWW=z||oK zbRZZEtH1uAZosonOty-%D#hH0iY`J0?sI5Wd+T8jrA@_oAMLlJ^L`S`8lc|LkfFc; zdr8H`5O?#@#V~(AH$R9r)4Q(sh9?`B6Ji@?%d zRqum}=9AW?Umd*vjv8LkeLrs5t@<}>`_1_N1d74eHuZN(;_-ZdP5tw^FW2egC2ZIG z`_;4_;_+(Mruyk*-sSY^w(=Xn^WByMuiyP%N%h_RLGx+*>QM(D;?b#J9r1K$E-bzayNd=r{~se)i+q$0y`&6|nuF7}7*>OUx21;vCc+)M?eUsPrk~CL$j;Sey*B zb6Dm1hV@=MIXVT}W5p{?Ibv~8k=&4g~dz4#LU{J6`6 z$_bMrZpaN4XP3b!g9Sg==Hag}$ufEO|J3{%P5yU}MzDNB*sY6R1>d$bq+%c+YQ-&nzq%Vn71HQPvEQ|VlkXSivo z(lR;oBXbH+?ss2~mus){?U;=d6$U81Z?po#p&-reIc%X^6ar7kfN1XgAg69^#Ib`l z>Yoql&bdHu2#AjH7X;)A24G7`p6UPeaP?)v*4mn@C}{ zlhljlJPfo#a{@b0h~)!62BA0r^D{I^4B0ejrb6&PLwPY#VnO0?e|%%DB$pq`lkgjJ z+Rt}^BAI!3vLpUft(5)DQjo~c{O{jp2DHh{=UZ^BIg=`wuDeP>H;$4$Zz6gbIH+1^DNt2_-xgVjD z8?CB{dD0Tf_W>LQqBR>Rs9RloM4@0aiP8XSzLpS9eEw*yy$xz?soF2XU=%@!6t*E0 zK=~D_N6l5+iFfx-at~}}Zo5g6;~L7@w~i~AseqtF%y;wj<)OMS=L4T&d+C>@aqW%X zp+&E}dwT=GbI*j*HR)HT=!hv{D*}lmYytGNwV{Aa0MU=VcSRGfm=oX|GxLSG>19Tb%rdO!C4`7##?aww=jAiaH8rRskV^u`}%|2$vU#QZ(7QUABN z^nBAY{`chD_`f*?T@*4*$?dm$<=)lGYZ;`~)p==^+9HViu^7p#627McEyTm@xa3VU z@(KQe__s>%7ID|l_k59nc-&Ec`!HAid{d8jI*EDvxXXulm_j_C=Oh`&nYKS&=7fE@ z{*kfu17%MFO&_923c+N5kI@2|nS$UC$YN9ahokwE?unCo`fCXJQ?n~l&HHy>`hyka zXhj3OnFCl$->|0!=xYaXvnz1j1=N!Sz8sL_)epq=2oy#3xGjNYQ-PA6Vp5br`GP^R zit=KfL6^xvO15(H^FgVXK^mfBDx$$^%)z>tuk}-dqw9l>QbkSff?c(PE!btv^+Wu> zgxD%7Sha+R6^1yMiaAk+Dhh{wZPE7d3{^`C^`_MEnGe;z4uyE?1c-(i>V$>N>x89- znSF97L-d4+H-^R9>c)%ywA&85vHr=57Mjj3k~#k~Nc(3lyI!hjxExD(ahP6dYPe`a zctzOToV##sl8Cwip$7ekh|TbpJIUsj2!*MLc1j_n9`LPTWRK$eR?o<%l*l1WNYQ*G zja4L!U8VgpY-&EN`|AB1rSxP=6z^2j>cC4lW%N`}RXpNlJo8U!uva_?Gmi6T5XVCNf@M5E72nI(38$I~ zB8UZE(X@o&t9bGKXvzD8^MQDovS3+*L}SlHMXV5|--(u#iE0Zm3yMk~e)_8#BthyE z^cP<1{Z2ZYN;3KR%JAp^YVSLvnq1p1pA^yqp@=jg6cLaT5D)`GDAK{G;6ZGmh=46% zLpZ_{x-=1x1L%>^JBD5?grcB;MnpwyQBVU4hN2*#%!8iSbG~=JZ`RC@S!>qJtd)QH zcdh%mu6yrm-+N#5*>&-N?8Sp)838RBht6dj*_CljGb8A0`tdvIC$rN}2c)0blpcmn zKl?N-qAZPdCN0V#Ek-siZtTLjvI~i4E+ji#I4^tQ!dPm0OX|gQseeEbcABY|zMlW{ z&iUNz^LYX13pSlE!k#aAno?GlQgJ4w$|2>dY)Z{oa$QSu!dp zok?nUNa~bLx;2*A-I93cTw?F8#D2}h`(G0t+(~$to$x3i;mM|ir`UvNPtUz5JNGK! zoMD10>5)vPOo(Q{L*{tPm5)!aOn$v0l+B&qlsh}71&6`oP99xo$z6Jy`~7P!AjgJN z*+@?|DwK`MVdGlagkiSm0-Ge4Cqd1V^30PC&6CN=ODNJ%7|v5%$Rlg5Vo>tcJoD8< z^EGnvwOaGFhx2t8@+oo!2GjyW&jRDn0+XBq>To{tKcwQJ032`}{`_AYwLOR2uI@tk z+uif>e*sT4c9gG#-~9zo(tWMeTtM=L4y2c)x?|*Hg&!QXeY)1(yBXxPlC77J**QDV zsbq_6O2FNJ!INuK=XTX?7r#fh^1CagOb63`a?~L+r)+{pdx)E&0r9i~A3O1?P|5ZC z`kHG-vh2f=7ZCQM^3cYJvrBcf=KX!Pb)x9RsK{G&^~$?UM0~Qux&ohG$QkkreVt2B zy}5Fs<9V}-VFXL~v&N~Bp7ix`m?E@1E#m2A_72&u^Q!a&y;t{cTsz&}&pN-%cFuM= zubJtk@%7%#8;f%;xq^^zYt$K8i^o8|zK!Y9GJw(`JGf%JtPeOn2e*){hwOUrcJmwg zKj4X#W0vr;g5?qqA;o$?;!3VwfhRB(eI@cmk=xet8wsp85IiZpEU}@F6RQwh`M}!B zcmg?9>>g&P2(j@nuU@@b%C3yel4u79s zl;`aD$GX*@79# z*;}+elr(Lb7BgyBr=0Z*#GzPo&Sas{5~ zE(i)&IO@`p>V*|}vhab^y#i0399{eYPbRO=O)h?d;0fdmx%$`&Jh{3w-M4WCp4jPq zgW$=rZ=Z)Cc=F}>X$YS1w3$APq*pB(jXcYirUT6jjS9ioNH zaR3yY1Fkqj(un2sILEgO_ga=BZCBTLMT5uQ8>s_LJ+`?oXXV@@o; z(sON(>k~Nua)zv8o~_t3;`pRxxS=}aM#a9FyH9Q`G+YJ0RWJ}vL+x^nocPU^-jco0 zoABux7+C46>h$!EXJc*FjY_`_y-)i?8|&ELD*dgUh9BfK)|YOs3f$2<{HV3DfpfO% zu#eNTr^~~Qjm$iWn_!2J96fCe0-9N`VPYY0m02Ok&xc_{naDL-BpAg6P8277I!z(P9rE`E z>{CTF4nIJP2xzMVm`L?#7Fu$tL%hx2I_z`rpTu~Ybe0TPFi%ILGR?qM{J(-2+Fk1)VSBO#v^O>tC)t2}#Z@?^^=S0y?u{!s^kUvxsm z_{B@Ch1@377lFI0Dxyr7Y`6^RBv3!>tQ(PIDh_;E5OI6{N3`I856&5GcirCO*W6v91?9xY_n5%{rUmW(v=5Wpd-n$|c*&8UYM|K> zh2DxW%UiiJ?P=0Vc5JMCTIU}V+(0$1de#IvGM{b9oUp1oE!%iY9{lvY4MgB~_MSTU z^15pMm)V?P&PaEvYSgIbM$NZTYb8Fd^04xH)s<$QsHn56B0gHx=JLK5US4sJRjIRX z3!V*_r#0!thh0`^L1!;ymNEi0C98K>DuT7Anf98(kot6J&+QZJ^D%m|_d z3HsZjB^=3KuVbXGR%pRtH4#bj&G%hlYUU4KL$sja0zvyOiIzwyU!esZ3)_=TP)wg> zvo9K|DYQTi3nlKwAGu%;w=1NXn%B3ZV6^Pf47V%YmLf!ubl~EiQ?i~S>&#dH#x@k9 z1&<%$0Wx!LK>+$dK12)pmSv-$NNX=HDrf+r1+9;8XbPig_-5zC0D{1oa8VXf#Ve%+vVu-lC;R_&MRkcmw%|J zbJU7bEn4!iMYv4_R+iO8LdNMMF^{qw8oAJuw#@Zu<^*A?x!zHbA zpj?(W(Y8j2Maxg!_BRJ>ZY#unJkV_Gs5yP-KhT0RD~`-F{U(3Yf@qytp3UlCwBW{x z*@tvHozH`R(SlWf#$lB9C&q}XQnq){%Bf% zIz4%_RT4M-?g+!$@qR1Rv=p72DR)aPq!=LyHr)s$RaEYZb4%^pUhrhR;DcI6td_f$ zAtSM+e(YiCjyjv|2Ri-Lwkk4HaW<@TwdKb@yzIX=M^p2Z{v9Q;xZwjzre1Bf|9Z>J z`ykeOK7Fkg2C?pnTL9g1)9j~}UB=Zr3$R!%$cMp%;bZ#w?Z`-P?$-UPA0^S@?9(c5 zW1cP*K3WIa$V*_JA@EXpe@eLvKyH|bt;Xx<`)i|Z5a`3qNUV$u*>aa~+sZD(^KrDK zOBN4+V+@6mtI=(Z0)``!7cFhFQ-5Wb5kDxlRr|z4Nf+{9w5!M06+ugWM!FSk%TuUn z?QD7AF19w{*Dgc$!G7=miCxBj3Kq1+3NwBPTKvk#ihtV3$7+q27G?&Hmz5Tmk3;Wx z#-XP5k6p&Q@(=&qWdxSD*Yv1|9j@ssFJ@WaH(r0_Sg)<=L__IXd9Y#V)S>L!=b`I$ zz4*GOlP!@K59zjkyjwKcI&mBS_?qzUp{qM*&E+R=EGb?*cHJM}gZrnR}~+!XH%0jyi|10mS1? zMC7C>4(|wnco!F;Pts3Cp9tQF;C8Mvgc0c=ZMCsU(NUT>*e%0d<(n0yeL5;hKL95ZQg6Y@MJmRs-u!|3QXG97q84cCb?&ju-dmm>hfQd?6nZm-$1mH|xbN z_(6uu`YUfd{!Z#o$Ay;!j|Ff91v)dUZtS6^d^~TY z=YnE-sZVcpd;nL{t3>_tHnvaWr&mO@+l7m_fk+%Tefe>_W0o!zli_3s_0T9-T=<&# z&)%(bJw+&izWokM$x_22mEZTj3dz2rR2$ur0BC`*FY~JoafN_2Lh`FfyhlKsG9;Ko zgd5Xo|EOXeRK<2c^4FB0aAQ}h`0HwGCizrbJWqu$Mj}_Pw$POLx$*w)1VhB!Ozo!@_3-#zz0k&cr%e6^bP2_X zL2?PL9~&s$TH)Fs+VJ5qXMb*r^R>o_XU!{9B8a8Lx_VGG_i=k+l#!oom{D*+z*f4r77XS0)KB-csxUE?~ z%>ZNkiNQl$<<8*-@{k|93}*e}+Nqg0FDjb!UbTfUrmgu=bJb1$w7%x4s5%&dcGS70 zJew6a>sH#=Qm*6Fw4jkS++yfp(~9a7SEoOM=M?)`D3I*3t~hj{E~oWB%TtHEy!?Y# z@j=e&8|hI7WECsK&a(p0(RDKzzr9aEHcPi9^ccZ=e-C#0I15yb1-`_O_s*Ve= z>OVh`1iYh^y)qE4iV5qwCXgS+nllT`3bMX+qbp_?r{{ae%C` zK+3-8UmA>t@rf9Ua$fKT(ZXrPlIVp(vz>8Fojz{ZuM`(~sW8Pyo z>=JVwS|0E{bRRp~qYnJRV2>p% z5`i;03^u3dJCRgq+&$-*?JNYw4>bg&E5{N|&q2bSUv2DUL1Y1gr~y3zRktE2kap$F zzJC*o@*>L6%E?xPWg8ZqbE12^K{OGLj~;IL*~Xw@a7aWnC*0wCk&{PRk^J2&Zz+?n zERIO291YH^Tk%#YpoBS3f z?LO0E_Un_1~8Bn5W@Xu9i!;lcJtff z{LFqG-M$yi%Okufg0-psqYPKX=99^$v$Q(59dE^>|6Du1RFXpdIGV1wd4%6S3=MsM z9*eT&BsrdB{wUXUxKF(!a+dy3F>>M258;l#lIMxpnmEY_s7gFr9Gs9nk@hld4%4c;b2T+r5h`=f$U%{`T<~l zpemF!M-dQQG0)3Jelp{lB7U@0mIHNt+avx2<8`}8$MGuaW~7HG%J$#n3|e`4WyfJm z9=JByJCf^?!c#5W0M}oh1!dVwR!Nk~QvFx{7A97j`mG+`wn*~xH%S}XhCXu@c_y9E zk!7YHJkpyK_1dIIyR%P;XcI4hggfhx=1FZywN16|kg`-b+d3k_rHKDIQX^sc(Sa_o`?4juDTv$Z!!CP zBpyz#G;u|y%u1@666c~EAf{a#y6i5;?nJ!DIrt)d{SjAg4K_R8H>wEYkb9S#kBh}= z@0{{$TQ%Q-<}=0beiz#i*g7B<%XYK0)l?W5!QH{vnqU>r&SI6+ z@fq*+xU<*yz}B3twLY&(G^00~ek4=^GG_-m`(WiVzsF|evw##gRkKikbj zQVuu9rG)lG8f|TfiLDnmld~=J5i9MOKfJM=HJ`d>1bi7Ym=~wNnQgJ!dzXZ)q3E_p z-T@pRy2S}Exai=d+^GIO>86m4UqJSbHL3*=Gw%4h52-bP?!5q*{I7)G$k^Kwtj!EjbG(O+3ZLo`h>#4SArwiLNr&udGCZ1%++il%+5e#gk!+iJSbyh1 zuI}aDLl1l^O;Rk#%A&rdT$dH~wmA}s=85!7Pc?&kt?{cuK&jFou}6DVEA(qwdy%`8 z1$j=Z#mJ8YfPspcQLjpW!KiOZWtHh*mHz9r3%ckhT>v)mKc zaJ&7Eu&)?iIo};~8%8|BT@@XhTz%rT zA78RZ?7`d0QGgAXfZr~9S{+t57CPTqX!uBRPZ0i2^Bb}3yM4}vkI=sf-mI=1LSPpB z@m{16DV^`PbiT9I*RAS;Qj1pUe;2mnE`zJOI2W~@X)I{?h*zfe=@{n4Widd}tW=Q$ z9uMMVKa9c*ILHH(JOq_&Ez`lXuBQd9cQk*y472BUC7#SnFti7{Lhc=xc~x6pKn5M& zK6OAGjg*4S?RieEcXF@IWfsV=VaRq6Zjh5vq;QTGjH{w4GSUmQ%N#Pl<6J31utkBr zJMBx|_QAn`%NWP|oRrV68PgK6&Ry#m3iee&-$=Qbx7~VUc~=8w*`DY9m7U7s&uOI< zds+YXn3vL6U*a+mxO;JU=w4%EQ~$)#u*GM5(Wd5Zm&xEui_ZnFO|4J*Cr@2ld?8F} zy8hnfQ|PnBm-F|UZqD_83SV6O?}aKBt4CgDDE)@cGu$ZNFKeZ} zJN>ezvvR}vUaRqJHyX$Fbh@(&9ag<_FGufw>uX!p#2_A1_GDDAhrtE`E!z>DQ_6)= zgzq2Jzi<_^cPuy6CW(-}#pK_Dv{j_L&AD=YBx|7CZbRnU&3t5AGipu#BT1J%U!*NU z?(X;wBnO%JOa;(ljqBH&RE6#HJNEUKiR(6;4V@1QqS+{^X~7MbVB#_(z+3aYILRet z(X?;YavD7J2LIP$Qe#n`uaFm|Qha11{H+i@>;)w^NkTlWOTmVoFywwlbM?z8>=zJa zXj5YSV8C>FY0m?#-}w}UdwXNlg{Hvv?%U>5FKIn9?ZzE95KpV<$@@*t& zzhgYiCI&E2hK8cG4AdMOkK&=1*;pdy%oDb#rx1T>og$vAS4|TW@ka%*iGxgHj}YO` z+;u6=eVk3K<-#H#0VxzwVlg&?c935pNd(cJzNm2khY=od=fV(d{0LiQgpNbd(90Zj z>ZzbFbI}K8fi|}2(>IuPP(Dv8s)#2RN?Fg~p^H8Pl{7IwK6Mz%65yamxYScISOX9< zE5rtXG1S*q@2&7e0N%wWhBD0t=ESOb2u~hR%NO-yh*P$~7y?2F-2uN0VmJ0kiP1Jq zGVn^i0YnOVgpUg~5p4yCvmhoF6;o)hk$3P6kB~LL`oj z8fJtCnqYCf1T+VLf*DmcwtVu!u7fQ58Gs(!0?LvZ=40x8_0LiO9}N*ah*>y(dQyl+ zfwpXBlz}CR$039@quqlyU<3pzxFIbMJIjr>{VieELv`McC{I~kp+S)6n%)`^V{oHN zIKb`@ID&3mO#vdfqLr$Ncrq-9mn-g3ERR87hv!;0!+0~%-HpNiIqIyET2%;Oo$`> z){*KQLf;wi2#_dLj}s;ZfUrzqQU_fmfRuO-&~c?)Dj~xa$Z&Dqrm$3_W3Mqh5*o)r z5Av0BmxW2yY=j<{kjX|>#YYA(F~fX9I^Rm?efI1f8J5?YLlQF1X}PRzYY)`|sVJER zS-HrX06>nOZK*z~3bV`4bt}pJK4xCfv-hYK31r#fNiZUg{U|7xRRcH~Y?~|y_`EB> zBM&AXc|tv3ejDqA7^JPMm2b5?tak8_HdRJxF5hA&$@#UNT~q$1C&#q{^KCo}Z9@y~ za|#_>3!R4xT^9=Jaz)#zMQ)x&J41^+a*8}#i}nl`?OP~f$Q652i+w$d{X&cVbBY67 ziw_SMA6+PB%9R9DOHO!}oC+-o$tigoE3GzA624FZ%9Tb^OQStYV?#^hb4n9hOOuv| zOH&p~Q{~FisAUHTgl~WY`OA$YI&h&d2wiYX-;{0YkB2xdG$g$ zN3NolT2b#=(HL6MoKw--T5)~2;wH6%Oij23^M%rtZiiO(U$#FIWABT0QDn{jRktmweu$7{~$9>K-COxvSIEtFxY0 zzl2_$&$+tLdUa_S(oS3jsqb$vs&H7T8ey~foa{!tK#LbI+IIv)N6HS z&uVdeB5mMeZ2Cf(PU5xsW&_Ms7c66ikq1{cy2aSICCe)PlRw4Q<6Mi|M zDROc3-o-`+UgcULz7@b-*q9rYSRZnznV#s8#l+z_tdzxOJNcH)CmR3!u->(_C9t<8 ze6&U3pq4n7;7)4FU*A|LzrHxpHUQ9G$2?edsOf50O(3h-UObubHlSXBzxjA~>zm!J5s!mhBgxXw#B~!2$ODo`gH{LZE|^*j9`9}aeOxL) z<)kxQq96!3RTD5aFYP|S6=O+@^P-ss>zua1FeIwThIzT44{L9 z4iMt?$ZVxPJ>v&D$1h3AYWusRQ6E9fOaV}|5jq*b=xPAdsW&gbUR;R0C$xpPxAB2?EM|ry5LW`Bw%n96CcVzHIgk;$bLn9D=L&8)x|>>p8BJgPtc>F2}Ou3wn)S- zT#E2u7$vinE`p(l%F_sqwp!#!m>wBl#I5lIh$uSj9vOa?jrX0w+jMo4-gk?8X@!7D zJrGT4&v}yZ=cpa3gMp%ggfKobh;gYE1nk-P01^yE3rF+LmmfxD8=!qjKp5LQp|?!r z^}Yx?P71u+LpuB6H71<|R0Bl!q+YR--ovIRCu-KBm~cH3aF30R;}dqw;>$sAF@Gpv z2iZXBM{#i}On}S*a>%z$El)*dmM*aaUVh^e>^6Q`il^mnIQ$+m&W%JuircK7r3 zWhO>(Atar!TeuQ(oW*h(Ho*z@1livJ>f>MVhG4jSdvcUA>FZZ@)!GN|t_L8PE{Kyv zjbeNSYk*iXAhS)Ol8xT=P_YX{Zh5M6_#Ds&piYo2s6xEiSzH{=pu`(XJ{bh%I5GIq zMi0=rB1z%?KSSh398mzs3kn6wt5bLG z$J3=ln=)Une|grdjkEsdG2_)P1Hpz19hjoS!G~V@UwA-DA?fxN;HNBSh9njb@kL5{ z3$}@53DHf2H^EwO>I|ONQU*1?7telt@I;$1E%8!svdC=>49ZfZ(fJ$q6>ClCW5142 zQuwXcZbs#e43hB$0V6h7inNYsWpZ);WVq}1Q4eZ|{6-lf1zXANhv&f#s=f1YEkcBes}cyy8v^N@4k2R(02hZUy0EO42G-r@cVFAnT-hr5$1yEeS+9bur;v#mAPPjg{XV zuY5UP{e7IH_@UPPL;b!Fjfw(a@6p?r-kn4E7^T3NiXS^}zCCfTke%{w6+^00|6`x- z$6GfGyHnojc-i((e!TbnqrKdO9Pshc%L!)6#M9~zTR%*UDgvFNlXm43Z;ws{nZFn8 zD;$40*?)A>$Mw^!>$}PClj@F*KEXHK`IgSBg>VaDj-?P4A;jbgacx4vE1~GJkfbyv zVKF7Oe@Z%HN+x$ou5C);)f8l$O8oS0$<@L-5$j9Swzx2@)i$mDYFc-BnxZsguxv47 zxPQhtV#XwQhT1k`_G-p_8R9}`tt@73_RpF{kjYFh!j@^TNxgVBE=P!EQ$D-x|GYEe zvq$b{&$iEdUVYxT{F$Nj#oOYG@BS}-5nudszXY~@IsEF&(d92prMX~>ImR;f)Uml7 zChmml;M~0$3E>>5G#_a(AH9D*Hex;=(t)?lC%u|aS)NZ-`kH3(HDmwR%!sd9xnFbI zzFvOy^~&JD2>nprwov(Mp?Z0NqqJCSu~>2Coqy1$=dP2jZHw1m zE#6#S6z~PXQJN*_kVjF@ogyg+i=^r=Z{`} zgM72@U;XsP;ybbFt$+BZfr#&dw(q04MeidfT8~Xm94mSm{^^DJ^6dSk`K?8t+ZF+F znl%s!t#WL#=&!9}iEGTGWwyPsNm!+`uPbZYh;7Q6&EZJd?W6W-a?V$5vbVo=%v9TZ zGg@}XJLepuBQLwMca+#=Za(|vxvZOjp1Q&au1kb&jGX(pTe*AHzHb7zLr#@@ zZ-k3L&JIJ#v`aX%bC1<_H6D3!Ge&;ndu~G@F<-4&TEnyD?6>bC3Leak`e?M0?PZUt zH{~bwP{_Y2;1yYe^gq@Esf=`W*A-a<-Aj_?0wPm8Mj4Q-*}(X)M4^uj6tK9*x5Kxf zM}0#^YPP`^j8qa4p|B~~T2z@9Jt`R57OiHjW)ax~Q;Q?YZ!jLJ6rV19otWq13}(DW zk>uB6S5X73ZjWP?-9tx}hkY<2I?{A-1q#qp!d2qtZsuPTV zsb+(SO|9ITDs>{?_ja;TaKcO8HcHcDKqaDwe`a;Os>tQOJtT}-L*rX d@c&$y{Fk)&|NjHPAffli|2RMYx0b~8zX8Ld25bNT literal 0 HcmV?d00001 diff --git a/src/main/java/act/handler/builtin/controller/ControllerProgressGauge.java b/src/main/java/act/handler/builtin/controller/ControllerProgressGauge.java new file mode 100644 index 00000000..b811a165 --- /dev/null +++ b/src/main/java/act/handler/builtin/controller/ControllerProgressGauge.java @@ -0,0 +1,59 @@ +package act.handler.builtin.controller; + +/*- + * #%L + * ACT Framework + * %% + * Copyright (C) 2014 - 2019 ActFramework + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import act.Act; +import act.util.SimpleProgressGauge; + +/** + * Used for track async request handler method progress + */ +public class ControllerProgressGauge extends SimpleProgressGauge { + + @Override + public void fail(String error) { + this.error = error; + // do not trigger update event yet + } + + @Override + public void stepBy(int steps) { + currentSteps += steps; + if (!isDone()) { + triggerUpdateEvent(); + } + } + + @Override + public void stepTo(int steps) { + if (currentSteps != steps) { + currentSteps = steps; + if (!isDone()) { + triggerUpdateEvent(); + } + } + } + + public void commitFinalState() { + triggerUpdateEvent(true); + Act.LOGGER.info("!!!!!!!!!!!!!!!!! final state committed"); + } +} diff --git a/src/main/java/act/handler/builtin/controller/impl/ReflectedHandlerInvoker.java b/src/main/java/act/handler/builtin/controller/impl/ReflectedHandlerInvoker.java index 4563dd5a..2a279203 100644 --- a/src/main/java/act/handler/builtin/controller/impl/ReflectedHandlerInvoker.java +++ b/src/main/java/act/handler/builtin/controller/impl/ReflectedHandlerInvoker.java @@ -73,6 +73,7 @@ import java.lang.reflect.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.TimeUnit; import javax.enterprise.context.ApplicationScoped; import javax.validation.ConstraintViolation; @@ -655,19 +656,27 @@ public class ReflectedHandlerInvoker extends Lo if (async) { final JobManager jobManager = context.app().jobManager(); final String jobId = jobManager.randomJobId(); + final String reqInfo = context.req().toString(); jobManager.prepare(jobId, new TrackableWorker() { @Override protected void run(ProgressGauge progressGauge) { + if (isTraceEnabled()) { + trace("about invoking request handler[%s] asynchronously: %s", reqInfo, jobId); + } try { Object o = invoke(context, controller, params); if (null == o) { o = "done"; } jobManager.cacheResult(jobId, o, method); + context.progress().commitFinalState(); } catch (Exception e) { - warn(e, "Error executing async handler: " + method); - context.progress().fail(e.getMessage()); - jobManager.cacheResult(jobId, C.Map("failed", true), method); + String errMsg = S.buffer("Error handling request: ").append(reqInfo).toString(); + warn(e, errMsg); + ControllerProgressGauge gauge = context.progress(); + gauge.fail(errMsg); + jobManager.cacheResult(jobId, C.Map("error", e.getLocalizedMessage()), method); + gauge.commitFinalState(); } } }); @@ -675,12 +684,14 @@ public class ReflectedHandlerInvoker extends Lo WebSocketConnectionManager wscm = app.getInstance(WebSocketConnectionManager.class); wscm.subscribe(context.session(), SimpleProgressGauge.wsJobProgressTag(jobId)); jobManager.now(jobId); - if (context.req().accept() == H.Format.HTML) { + boolean isHtml = context.req().accept() == H.Format.HTML; + if (isHtml) { context.templatePath("/act/asyncJob.html"); context.renderArg("jobId", jobId); return RenderTemplate.get(); } else { - return new RenderJSON(C.Map("jobId", jobId, "jobResultUrl", S.concat("/~/jobs/", jobId, "/result"))); + String resultUrl = context.router().fullUrl("/~/jobs/%s/result", jobId); + return new RenderJSON(C.Map("jobId", jobId, "resultUrl", resultUrl)); } } diff --git a/src/main/java/act/i18n/I18n.java b/src/main/java/act/i18n/I18n.java index 84861c26..d6cea1a6 100644 --- a/src/main/java/act/i18n/I18n.java +++ b/src/main/java/act/i18n/I18n.java @@ -88,21 +88,26 @@ public class I18n { bundleName = act_messages.class.getName(); } ResourceBundle bundle; + String msg = msgId; try { bundle = ResourceBundle.getBundle(bundleName, $.requireNotNull(locale), Act.app().classLoader()); } catch (MissingResourceException e) { - return msgId; - } - String msg = msgId; - if (ignoreError) { - if (bundle.containsKey(msgId)) { - msg = bundle.getString(msgId); + if (ignoreError) { + logger.warn("Cannot find bundle: %s", bundleName); } - } else { - try { - msg = bundle.getString(msgId); - } catch (MissingResourceException e) { - logger.warn("Cannot find i18n message key: %s", msgId); + bundle = null; + } + if (null != bundle) { + if (ignoreError) { + if (bundle.containsKey(msgId)) { + msg = bundle.getString(msgId); + } + } else { + try { + msg = bundle.getString(msgId); + } catch (MissingResourceException e) { + logger.warn("Cannot find i18n message key: %s", msgId); + } } } int len = args.length; @@ -116,6 +121,13 @@ public class I18n { resolvedArgs[i] = arg; } } + if (msg.contains("%")) { + // try String.format first + String result = S.fmt(msg, resolvedArgs); + if (S.neq(result, msg)) { + return result; + } + } MessageFormat formatter = new MessageFormat(msg, locale); msg = formatter.format(resolvedArgs); } diff --git a/src/main/java/act/util/ActContext.java b/src/main/java/act/util/ActContext.java index 0fb78e57..150b7c8e 100644 --- a/src/main/java/act/util/ActContext.java +++ b/src/main/java/act/util/ActContext.java @@ -28,6 +28,7 @@ import act.app.ActionContext; import act.app.App; import act.cli.CliContext; import act.conf.AppConfig; +import act.handler.builtin.controller.ControllerProgressGauge; import act.i18n.I18n; import act.mail.MailerContext; import act.view.Template; @@ -277,7 +278,7 @@ public interface ActContext extends ParamValueProvi private Locale locale; private int fieldOutputVarCount; private boolean noTemplateCache; - private volatile ProgressGauge progress; + private volatile ControllerProgressGauge progress; protected String jobId; private Method handlerMethod; private Method currentMethod; @@ -720,11 +721,11 @@ public interface ActContext extends ParamValueProvi app().jobManager().setJobProgressGauge(jobId, progress()); } - public ProgressGauge progress() { + public ControllerProgressGauge progress() { if (null == progress) { synchronized (this) { if (null == progress) { - progress = new SimpleProgressGauge(); + progress = new ControllerProgressGauge(); } } } diff --git a/src/main/java/act/util/SimpleProgressGauge.java b/src/main/java/act/util/SimpleProgressGauge.java index 5d4c5d92..92dec507 100644 --- a/src/main/java/act/util/SimpleProgressGauge.java +++ b/src/main/java/act/util/SimpleProgressGauge.java @@ -83,12 +83,12 @@ public class SimpleProgressGauge extends DestroyableBase implements ProgressGaug private String id; private boolean markedAsDown; - private int maxHint; - private int currentSteps; - private String error; + protected int maxHint; + protected int currentSteps; + protected String error; private Map payload = new HashMap<>(); private transient int percent; - private ProgressGauge delegate; + protected ProgressGauge delegate; private List listeners = new ArrayList<>(); private ReadWriteLock listenerListLock = new ReentrantReadWriteLock(); @@ -161,12 +161,7 @@ public class SimpleProgressGauge extends DestroyableBase implements ProgressGaug @Override public void step() { - if (null != delegate) { - delegate.step(); - } else { - currentSteps++; - triggerUpdateEvent(); - } + this.stepBy(1); } @Override @@ -310,11 +305,11 @@ public class SimpleProgressGauge extends DestroyableBase implements ProgressGaug return this.payload; } - private void triggerUpdateEvent() { + protected void triggerUpdateEvent() { triggerUpdateEvent(false); } - private void triggerUpdateEvent(boolean forceTriggerEvent) { + protected void triggerUpdateEvent(boolean forceTriggerEvent) { if (forceTriggerEvent || percentageChanged()) { Lock lock = listenerListLock.readLock(); lock.lock(); diff --git a/src/main/resources/rythm/act/asyncJob.html b/src/main/resources/rythm/act/asyncJob.html index 380748e5..3ae04b88 100644 --- a/src/main/resources/rythm/act/asyncJob.html +++ b/src/main/resources/rythm/act/asyncJob.html @@ -15,7 +15,7 @@ font-family: "Noto Sans", Tahoma, "Segoe UI", "Helvetica Neue", Arial, sans-serif; font-size: 14px; } - #test-result { + #job-result { display: none; } #in-progress { @@ -120,10 +120,17 @@ font-weight: bold; margin-top: 4px; } - pre#result { + #result-detail { + margin-top: 30px; padding: 10px; border: 1px solid #aaa; font-family: "Envy Code R", "Fira Code", "Source Code Pro Semibold", Monaco, Courier, monospace; + font-weight: bold; + font-size: 13px; + } + #result-detail.error { + border-color: #ff4848; + color: #ff4848; } @@ -136,44 +143,14 @@

-
    -
-
+

Job Result

@(_app.name().capFirst())-@(_app.version().getVersion())
-

+  

 
\ No newline at end of file diff --git a/testapps/GHIssues/src/main/java/ghissues/Gh1211.java b/testapps/GHIssues/src/main/java/ghissues/Gh1211.java new file mode 100644 index 00000000..d9f7cbb1 --- /dev/null +++ b/testapps/GHIssues/src/main/java/ghissues/Gh1211.java @@ -0,0 +1,20 @@ +package ghissues; + +import act.app.ActionContext; +import act.controller.annotation.UrlContext; +import org.osgl.mvc.annotation.GetAction; + +@UrlContext("1211") +public class Gh1211 extends BaseController { + + @GetAction + public String test(ActionContext context) { + return context.i18n("hello %s", "world"); + } + + @GetAction("2") + public String test2(ActionContext context) { + return context.i18n("hello {0}", "world"); + } + +} diff --git a/testapps/GHIssues/src/main/resources/test/scenarios/1211.yml b/testapps/GHIssues/src/main/resources/test/scenarios/1211.yml new file mode 100644 index 00000000..1768c8a6 --- /dev/null +++ b/testapps/GHIssues/src/main/resources/test/scenarios/1211.yml @@ -0,0 +1,12 @@ +Scenario(1211): + interactions: + - description: test case 1 + request: + get: 1211 + response: + result: hello world + - description: test case 2 + request: + get: 1211/2 + response: + result: hello world \ No newline at end of file