From 4ecf56cadf263406775f2a689dd1641fd14e4b5e Mon Sep 17 00:00:00 2001 From: Gingeh <39150378+Gingeh@users.noreply.github.com> Date: Thu, 31 Oct 2024 12:29:03 +1100 Subject: [PATCH] LibWeb: Allow calculated values in css filters --- .../Screenshot/css-filter-drop-shadow.html | 1 + Tests/LibWeb/Screenshot/css-filter.html | 74 ++++++++++++++++++ .../images/css-filter-drop-shadow-ref.png | Bin 6700 -> 6701 bytes .../Screenshot/images/css-filter-ref.png | Bin 0 -> 115603 bytes .../Screenshot/reference/css-filter-ref.html | 10 +++ .../Text/expected/css/calc-coverage.txt | 16 ++-- .../Libraries/LibWeb/CSS/Parser/Parser.cpp | 63 ++++++++------- Userland/Libraries/LibWeb/CSS/Parser/Parser.h | 1 + .../StyleValues/FilterValueListStyleValue.cpp | 34 +++++--- .../StyleValues/FilterValueListStyleValue.h | 17 ++-- Userland/Libraries/LibWeb/Layout/Node.cpp | 9 ++- 11 files changed, 166 insertions(+), 59 deletions(-) create mode 100644 Tests/LibWeb/Screenshot/css-filter.html create mode 100644 Tests/LibWeb/Screenshot/images/css-filter-ref.png create mode 100644 Tests/LibWeb/Screenshot/reference/css-filter-ref.html diff --git a/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html b/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html index 84a285d8eb7..ef380851ac9 100644 --- a/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html +++ b/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html @@ -20,3 +20,4 @@
+ diff --git a/Tests/LibWeb/Screenshot/css-filter.html b/Tests/LibWeb/Screenshot/css-filter.html new file mode 100644 index 00000000000..4344a29075b --- /dev/null +++ b/Tests/LibWeb/Screenshot/css-filter.html @@ -0,0 +1,74 @@ + + + + + + +WqQ3y&&*{} zgX4;(!gVPcfL gn*pi>%_theeLvKXj`!I%4<7oGkm}uP$=( J%8^}9KRs#Onz>VLxz({P&6id*6cz1u zH@tP)Xj6$Di)+pTrJw{2*Me4stc}Wz-y)WXr%OnNm+dVOc3tnPe~A0q+LY7B3Y~H# zr1Cfanse2r@OogMjP=2Z!jokz&D2VtASKOB=MyLYJfJ^9Kg^7BC&%Zr$4)lZxAj9zVd z=c%sZzl7s~vGOJlaMPFbi!|FJMoxqI#TPdS^wzApn`dlg)%AVe#*K!0d%s+=>)w=i z*UBvKjz{eEp5ES#wZF^cDjqQQ$=RNI@ gPlwy;IDhevd%kOG&i&Mh-`ccsqaa&&zo3U_q2Tn#ohonNWuz#$xm^AneKk2W zVE#?H`T5JPE#VZNa>;7XF>vcxt;*}>{N=Z{-oE~*IjA~y*= pLXr zwfsxhq;s!IXFPnG6S2L`H~QMf+Sh8+di#>*F1EEglU#o1_?0Inv)AvKQ~j=T#=XP* z1^--c&zNI#?#)TdRquF?^T|AV_x{Z?J1ggqr9CUXrfhc*HFVM1x 8uxO9{L z!B^^YI6F!;3$4QQj9fc)WiFkV(ew7X-;w|a MkgG5zGrdwdEhH2>vK|_fkxBcp06E^8>T>U+EQfkmX_Tsr~Okb-l zQC+g+(<0V&yc)A_vud-+WM9uuI=xIb=iaX7i>apzt{IuxoSOH0|M`!Tk5~L 7ioQL}-f65}@#TTAOvMicew&hp$-%)a?_c_y-SBVEW(is8#Q(ha zpIM&2>6CrCEbsnrh2&&yi6}D vX+-wfXM5{{jj>wr^XW>M%#eDyxE{t(}Wy!@&i5 z*)M!N*G?2Tm}Ai$zV}<|8=G?R-+B9{Zp@AT`EM@&hSXZ|VkLtOS#$2)S}QYi-{h_C za;e_C)3Ppmz5Ds?txVMi!E-y`B=McE*jM^|aZk>@lbqEP9vw;S%A1}siSOF9Os%_J zLWV5789WxuTeU9Es0*5C^2^m$_)kX$kBHlfz$;NI$EI+ks!X55oD}7^*j@T>;WcNI zgF8%Dew@G6^L_?*x8|K1IoEe*FB z;>$W&&)HcaOKMG==$eC7?Y|n>`rW24n#$oNHc|hBbJC0HcPi8Vo(Og5IoZ?a$*}BO z%PzmDvl8bTUT1CW=}(_7pA~%Iynx8*OM7pa7_FEwqicrbq|I&TpQc{_!?C;U-J@&K z>(XBzi?t~@ZntapHGwofL%VH_YY*?<@%hB}%91SmudBMIGDq*IJ%7C-<-cvrpQh=L z{YxrK-q)4U46%u36@tonQE-QyL9ZG_N}No@?Z@ls=d?O=Yw43>F_1^+pSsFrDPJ zi5hK!EmGZ^D;FK$GQ3v7yMwn)e&4ImH#X(!_it|Q=Z!wT 3z?5040Laq~U%Q%B8EMQOz`7v|2^M#GHBvS*^U&Um>>K(XqaY~i01 z+VwMHpTB$Z>-N6G>%L0gD1W|o&CLR__EpI_5oX8MB_99IAO6Pv;zFt0XQm~w#{Yh| zeaG{O?3F)R#V^mDnezYb{U?*2YFBI!l6&uEbtA)R>AJZG+&BMq` qTfkMHmEh|rkb{K9ddg>MT_f>fDyPeNBrJt8G%fEMKZuz~F zZM@PmX3k7J+9lf4-*0SbdGh1q 2k q(4U{MN>HYu3f=eV^u> zKA)a++wI-HpJHMB)^RoO*p_{NpIjN?zPHBo>j4I}s0|YXG^fleGVO@){MgjLQlqtV z g<&u-8E zX> XaAfVUu}K;|G(oCBQD16pT&Lu3tQUs?Gp1N&UU) UsG@6#Epr1 z5u2H+pWltyl_WWR&r8!k*T4VgJ#N*w;CN)7;;)A9U4}1LiZ2ezR<86F+0_-0UUebk zmD;=Jd6IQ50=*)7KQAhjuAXJx`n-Li)}mRh9zU O;EdO-SVY2D)?E1^L}#%Lx&E{3+MT(7cCMJ^i*Ge z^Ly+1%g6dxNPP0uYT@}8bZA#wMOsXFcWRAI_n(YkB_^k4Y8`4gduchN!-4~w(sG)% z|GA=naogdVf86qmi>s&4_P=xJcKzolyMGJg7cNTsx@vR9Vbk}EN{gmkU46ay!^hu0 zPr2JUFG#D%5!DXMd-U$N{n<^r^RDmt_Vv%%_kS%Ha> fy;r{In`^$5ev8Q-VdAYi$#|$t@-u&{ &BmZ zJ@0+@-hWvB-_5Tx6nuQP?0m*69@KxvXk*%(=KgsP`tANIszin9Nhe-C#l7Rb-s!%N z-j#=6>p#41|0Uk?ru8w7#%+;(Ung3raA}H8>Z(}#yD#FkKwwjvSfk4I6^s2jdV2P_ zTy89gWQ*c!)Y#V2xiPTr<^BIUhtGZ3xV~=IyM59-p8nvu{_ofCA5&ldn_wk%PHO&x z*!8>GE+(744)-tkFUU`ti!V*is`qY>T5I>(z|QWR z^}UaLU5g%Y$NymZez#mc{?8-v%JbFt4$uF4bN<3rYvT6Ky1w^asf=yal&h=5i$6SY zwENiUzhIS4{JuF;wZn_f+kW4Wch@TJ`>yLB_kG{nzjNo#kd0c?-^R}1xxYc->^@x< znX^V`^O>4DS7vzo9+@drGhM^!#j=V6$7j7CP@$gRZjoLpd z)pkEE>prH}&-l3Q=qWBg7K3wXk*N$DC6q<}?l`2f%wek1Zz0zW=N_)nS@rsrkHK&0 z{U4?Gf7I9g@YVj;+a>M2ORC;XaS<+X%dl*gN-e1|*8d&9e&OCcX4mQ&x##a6O%;Ft z;DoTd A`gIL5OoLnzyy+1{jCIY`*$xz08XjZ>3~7Wifx zlseh(c|Yy)AMhCR&8Nrzt(~Z|{MZbY&0Lez9{R3(w5#$a%k@7mcHh`g#C~{fV%gkk zO=~^t`HTH!lwNSYtA9| c}?8riL>_=Dl2MiHa5Pq z^EqFI%BQ~nkN4Jmel7oOZT|mIgFf>;PuITL_te|-;AHJW(@U#W-Y>jABcS-w9ur~B z%J}k`rv+6)*NeIv^fh&u_D#!u=#sfs@~Qg0A4bQnZPUEPy8GPiW7_BU_Z;V!cl;~x z{eJm`tEZ @A0E#!IQ3m_*L=~_ z;h(pO$DCpR_r$#NDgVC4 y*6EL>am`0v-Bpuy3EO0>gRV}JbE&BlFanecNT%?4$u4eFnqq+ zGwZ;;sP1CEWS+;5AMg3to1gOa)m6}#O!jp>y rjM#H#Ilcs<8 z_kI8T@V&1>&zw8ADebJ(y8Zut* @%imluKe{=O^!ymftT@AmzF-%2D`e4c&( z%)7h0f7`l?t@`x*chcObpIM1J6S8%u?|=I|(`t5AFH2UBRg;#j{6q~OS?dG6@_(7; z9+zMI?%an9-}jwATP>e(b=K4~+hks!v+SNcd9%#FQ`al6Ti-u4eP5CA(@l(iGFFGC z+80>1mh$lP7vF5%ZIRCN?^C(m3Cs0+o6i6F7_Sug % !%z&SA1~FOSXL3RLcXc`WF42z1o!(=k3nzdX)6 GYS#*-dYizTSPo{@S&%c%|TiVo8=AS5ow+?)3e4E9TR+ zXJ2Q;e7hDg+oWC6!Xy6klqKvdcgAx)GG!J>zI66vq iUP>@;_w`io|^SblRfi zh26FMJ15_*ztgZd;R0Vkmg8!Prx)MfJu6-RE2?dJ@5ecF&!=y&ZOZC@Y|Os%Te;nV z-21<(55;&Hca+`}FUswx3{9@u@Z|jNF6|&?gP^Cf+AkmSzht~0wYz6^T#a7zyxmHn z8#j8EMQ-tmt2o%26K#I*-EH}2s`^&l_CLSO4-(k%>gf6>8=Hf3Zf|MY|NmKdfbhkj z4`vV8n9T3~?*H@1|DVQb_jZf?=Qp?9;!`T|JNN0}|Ie~9|L5MG@v3swu0>p?le(mn zdt6QK7MmKM&I+o$Cmh`-^x?o#VZ~`zBv=KG&kEK3cULw1<00MX0<~o}vf5Kp4|40( zD9*l?`?$@z{PQgC_(RX_{;7*Z72FgJFTDTo_>G-)(&jaf-)p)^7I-zLU$J_3uUz>0 zzOUkv(vjyr#tKUMpt%;6X_{|DWUhpT6&2-+nLT6!*taE6xeugMV$(o@FGvDkibI zI|)>s-;3V9?R=5R$!FZZ3)aN!oHTvkm!)$`uSNbf+H)=H)TSqgxb;*1{`z{S?)Te0 zFI@E>?RvfLu*Bihao>#i k#XSIZ@2WmBJ@o4e(9 zZphS^FEi_2Z?Ef~owuvgZ@F{q_2mqGtqdzG!^{snxwL&R_j )$;2_x_#Jx9@++%Gpr!_gJ*VU6X?! z+xb4N(vI)wl&fK1Zo2LE ;1=vrtfJ; zI&tw-rL-TbsndlStJ1TA%q3W*nZsJ#@BiQ3{b<*(kH#zwHfvc{KWA3e6u#fiwUPCl z$Q3Ofo%qvz;`7fR;nwrHYVX1Bmi*>=`knuK*(J?HbHhKg?=RPNpJ#C@x&KZ2il-~m z(>0F>Z*`ZscjiYzclrN2(laBr&*RY4+;RQr)KixB6{@$-#dh n zC!Ep?)7bbeg0V0&&ib05$EKymhxmI#8m`Sd ~dVFHN}P?W}roMu^JMhaT~#mKcV2XI7P3xNn$tMI$0Oc!R*Do;lwIVovRJ z2##AKu|{Ie$*RB;^HsmUH*k10ZJnCR%F8bwwJ+0>^7?jIBBuU+a6_ugxgJ=yUFbFW zj?zlWoW!92R-7BkGI~Di@9g3(-`5lrB(P>loY}RAMQ(C`{^hL-^S#@YegFGync7DJ zzvXQkwAp9Aopa>2hd=Y|w^C8sUiW@<+aLb5^|fQ`t?-hq-Mbjq)qL#VRCc{`&E%&s zpI`ky;BNoxVO^GE@YQ428$8 i4(Ka~$sRn*I9TZ+4ry9~{5=ZH`TlUSu48d6B}86L-2!bbYgU zU;BIa%n0*Fp^v2s- M-|h#@*|& ep6yz`qW*2 z_ngmVF^4`~)A|39ef`73^ +3Cz*FCQk4q~J$;JabNhW<-wmFB4Qevss~+ zCHv;4)R>}^s&mTkRsQ7)<(?iK`t9xQ>;6Ii@816#JFnsqr(ER|!LCIMF2DRzUBko2 zXJlh@#`^wGziVrw*_ZsY*&EltNoVJyE^UkFbBZ&zM#U7LHLZD~EN`jG?i#vs)hhmm zS#^qM>$c2Us$^?CSNCGT<78h&ukS}5-}%4xwq?od+}bq1Vi{+jrFrJ|_0q;0mptaK z`*-Vp^3_>W*WBMR^X9ze5>ku8+9!&orP&{UR`qAQ{U2>U*%}_^8;cHXWBV|*;CuM~ zbIs*;eI@*xe&^et7q$QVelx%3It@Xehe7@-^OvT&_RT*6ol9X=P!&6SHhE2 PA-**-c)y3?ON`gCby?g z9y+g?GV84MwNHnx$DA!bZ?CTyd`ji)#>`D8qmOQ7uY9ybq2Kr6?ulz3H(xpUptd)B zVX*tEQ^v;Ofj_0r1{Y~{y^?(39{W(xYHQH-c{}}jzps?!->I|yRE@Ht;n~$E(><6y zR7{@>dpg#A_S)#UYTecUvF~)|F?~0Ak+I1uq*%&Dh0T3SX_f-p3<*Qu4RK-t)*3Re zbRXq1DFixB$~hBtFiNOlLfg{`Hj!BZlV63aTl@auFnij*Vo|NV(2PyTzBpdVtcMN@ zA5JUnJ!bPKc+Kfu2cLR;u=#YszUbSu=fOSsj?D*I-D5>|1}-bQZ2yPXcI}QYmEl2A zr 8m00H z>@Mb6#~l2e?=54JzVE(p (pn%?M_D;5>qcXq#7b1f@u zt(1b4tLlZI=II>?Ki-?)IqUHDM(M}2Ba+v0W6tmLea#U#)23!pU|7+&ZD;rVnI&HI z@ALfGvxH}bybBMRka6*W=IuUqYkz}sml-Q @&F^~dbH|L30K zFL+wHdxPJN9f`8hX6uxX95|Rf`3zsrrk8IvS6-f~|9sKsbH^8TEP1_YgOg6nE$zc= zC*6F>Zds7hw=;`PZClg(B_}7pSoq4}YU|FGKV9b7Tx@3Zij;Yrys_tV>x08-Q=7lf zOFcbJF!{;CcDbbA-`=i?*}3VwnaN&jhP*u=-S&KsDLBX)k$rPRBD1u4p31Qk6P4XH zx|-hJ-d_CmYWU|p&u#e^%rCfiV$YuMJUl!Grlv<1I=8?0TD2x_@2>c{t5=>04HYde zF8 K5>#jLIiI@7>2neUmExZE^tcLW7! zUs29p=`?#`;*Fon%r`vew>z@x?QDzZtELONE4m%*Txe{{zBzbJ)w^d?_UzbjWudm@ z{S7nC_rE!s6T81HbNa4K%jC^UZb5U?g$>Uo#GL%GZS#%ao&EyW>c1S<@;k{oX?bVL zD*G93Te40mYKh;By(^aQm$&
)SX@6Xc*fN}VnqPZj z@TFKMY1Y+#PveY|d4UHxJ|A6MY<^yC;q4_=KQrC@4HXsirXC7?9+d9)Jm7WEQ@!a7 z9#cx1H=TRn!)4R6p<(CA+Yt}iyV4YYW 8Is$=4n $^zBX`MIqkZS=TVpJj@9=!Ot%03KyF)J Zey@eqXOYcaAr@@^k9?gwWl-Ct@$Er~4a3vYxxYNqMRs z-^qRjuZKL*>S2ZdR>vQn)f>GsO7+Pf%h2ZKOiq*5-E2A(HfMLD?*9Kr^^LA7GcGKW znBlwEG3u~^!IXQsjHT+j!n- s{eULtlXI5W*2kZp8XgB4{ms}K#qd|AU+w(j zM3XtiIrsL=-2eCX{-w9yehX#yWnH&O 01M9 z=HGTdGxdJ{++O&kk@?Qwr_zSOo|m4OUXqh-Ss2)NXRCeah0QA!GgX?_TYP&_x9<0| z?G-OJs!M#-ynpiegu@EHwI+)ce|dZnJubJWzx&=NF`sHnMGeJ<&0dMR_ndj=W$GUZ z2%N&UGI;sNX^}4HKN}x8b6Gc_`e;U@rq0|rU(0 |I(@}nso1t2><;m?bJERz8b)^ItLHU zq;q6Mjz`s_X{xNxd(94e%z8VWb@Sg@7phlXno^apf 6xj<2d7g1iEA~sbzf^ux-1xuO zX65v2;8ie5-<`8HOpZ^8jo6kWxp<#SMnB`$H+TP5F1eok|KIyho&NjU*Vnz)pE1Ys zNJx5D^!ptXEpI>lBwrCc$>dlAzoF=Y(^FrZyH~?l{k?8x^uF(rIfo+>1PcGMH+OdC znkX8a q>4;*V$yPz5Ux3h-d9F6gg*b{k4Hvm{IJN zj13`SKfj&jH;`uHw=J2p|4(=Hk89!b3Ex_lo8NwX?zUXof$4i*J+&4rQhyZl&+3@T zwiwDu4vs 6ENIvkLzL(3D K!T*PRKM)%Ml=&a `oQDt%kzvq>O1Xy%qpbA_IqzT R4wRi~s);eWUIx|D$8aGI)D8 zJ!REjVATBP_oeNZmn;mNQ+mT~nQFnCd(}7Ve!BX^)ENc_pPQ!fcinxjBOY4k)y*#D z_6khr-}roTJ?q9};ih&Ds!kuA)^lAkytLMKpTQN!nVj9vE9;isxNM}5#S@tAqVqIh z_B=`TZ$iCc{$DGe$mcD7tK%5F=<b*o^QMtZ+y8B?Ap6XDI)sG zfxAgL@7_*KP3~$sqW*K?@>cmIU7_H~@@G9?oYQ3plWdvu4pNJm+4ng3uClnAcevv2 zvUO{!X~8G1?o zfJjbPaj3Aw$I@5HN@`ONhbi;$PV?DT6*AYu#lkSU`13pWjGbl&S=JP r_pT;}Jp z?}zyJ%hu0cg!Y}UE0ee55$au@Dw@pX#8kVL&4laiBG v40@1&2i4=lL wlebuXuMW_s;(pe?^WeFuP7#-r#8ZV1tFAiksf8 z60_@X@1CCcGMVM8he?N9(w8OY-oE_1@up_oPw)6ACw%y8`upSm-(=}gamra*>mu}k zqtr?<)%t0xj_rAWYkR40hb5eM-*t2OwNuR4*!a!O&CBNtKbn(#dYW#{m&Nj_kB{}* zd^(~0_fJ0?j|syP4X&h~H#asm=hy$fJ;$bUlm6|fh^XzA_LZMh=Ks2~+@kW6N@(cE zR{ffV@lRK2bk!~Y*7{(Xj`ypYSkE2_%>dqz&9YG+C6-N1@j9B(-K)QILLYyG=Ys4{ z|EhO PW=JsIAj>I=e@dT`N2FFj1*ZBKYuZgX>S{`Tvt`-}f)I zr|Q+o$SbURmCyY@+|Vt5pmIr0axtIg&tsjQ;!7mz- UY-SH0`jlSv13yBZl!eN$Mw&@t-pVVN7%mk|qkzFjp9yu9RF ZFg;V+cOW3%co>iOu2T!Xc1eL z& ig&CtiJvBB(TA{J({Jl)XVum{KXX57|NTGz_TAT4QvLj=@YWQ5N41@^IZtd@ zRLB|O`M}f9YHfe>RZX9y6U=Qsv#h<8WpZE2e|RZ*Vsp8BYv)U;Fi$Vb{$yp*Q%jki z?%@x6kk#m^yH3a>SK}P_42k@WU#8@7xytMEbd||0eD-htyVTo<7kenLye49)v;FSI zHr?p94=vv7wEc5Lx7mKzU31nVRqbdgi`#*PjWgdQJ!V^D^HN1^8NZNLv+}1U5;5lw zui!|QnO6FJ^N!u^$NAo+t}$}V&{?|R$ia`vC8DQGo}bEah@S2uJ*CjlZPS+BCmz1! zJQurX$~-5=#$z+ii0+=}^5?Ab_s{2NZ(lfZ%dAiV%YR>Lw}1TcPFFI2`IOUVID2#R zS+-s*ayDygeK_gXg*hkscTRfVe!6yUQr*u_PksFS_BGwH&F0DIS-5}y{D1%I%HH2Q z`{heX`))%cBd3)iivl!C-p${9hc}t0wzk&C$7e&%O{1=(N)GJ0or^j^v#K^ dvUyx*R_|A?eRNWgtNHT^ zS&NP=lZl5EQlF)~6DeBr>p^uy#n;;#FCBfYtGM;_vHgG5#nwmqb~)cz@xc0~L`9bF zq%%wJit4@anOOYn|F74U8`s_Yx6}UT|2r&y%=*J~9p?SGcD wc?w-!Ak2slG?wevhc^Agjy?1vN~9 z%X{{0P*=Y5(@yK7Mum{9s*01sEvbpSdWATWHKuW?SIEeDRf^a&_KA3TwfH)6^e8)6 za4>4?MS07#sucEkB~1y+n0q$y);Cu5*;_M|ncqI2>vZSFx$NAXE8etaSKd5+i?w=p z#`&(#YZA719#Y{n^W3oV&=M`}S6{t9ZIzuKGSlNfwr-KU(LW~A)$aEC?QHJhJ1W$G3-#A^tMbob;||6_>{FIKgWi!Xc=HB0I9 zh0vnN>T9Jr_cu-SI-GVSKu0@l?X$V>f7;wGv-MeOcIu+Id79l#x1^ -;KUgs&*9?t0qlu*tTcm{}8{o_H&EFV@@rT<=>QXFf(HEr7XWshkyTTinsat zeUHV~$!W!12V1pguIQPdbz}4I!b98An#CJ=6goHa{@7-epRRl$!ooS$^JK9`*;C8E zhg@@R)J(YMGufn6Fls~9Q=z;)iKf=u`U2Ohy|D~9$kDi!E3?+__ebp+Ia_|5t!=m5 zl0D =eqmZ`ss)@N2>`4X(UKjf)Z!6-uOSMXj7OdmlWQB=AQlZ{vy5^m*rwy_MeZ zRqWQX25Hnw)k zAEi#V>>$5bfr4Lu^z>pkPGK*9|71%gx5wH gex#-|e>L-}hS^_V_>}v+Seo0!{XR4%;sYTmA8M{Qp^dtG{2m zd)HTQ`fC#fZgIVof`SQCwZk`+z7Au%BPluuwibY$-Flyb{oj}Vl}{$ROUTMDy_sWV zVR7Qh6%jAZvbVQfC#lS3JMq2tkwqPAeag2D*NTp@+c)*;1nxa|Vzd9oM~60Rlzv@Q z%l^88=dHz&Z}0y$u|8ja?EUMd@4rmmm|>$B==AAD{V(?}TgKD(zL$y3Efm{2lg-L! zVjQ2lQ*wp*!;j1%WjTojXMdXX_ctgP?CxH(>#MU)<#Fo|)8{qaj$Klj)AHv}<&8PV z7Zv-tvs8MB?3*v7)jj(=XO7u@trN$#wKBZ6Q2GB?x;QCz@7v<|Klk(4>ZIE@{4X>8 zJNq&B>1xBil%KPvuBp4vTl4<({ig?fy4^&KFJu+CmFwH?<(_b9LNV{L&mNOmWL)#@ z7~B^ hPSby&5l h$43+kOPMa`B!)O; zsrrS_OG)7oZj<0iuYKkh_vc{$N?E%uQ#-G$4xvS^-5TF^_T=Ag4%3o;Z^*X(#rz9} zXJo9JwnoaBg&pA*pYVQ~&s*y`qL2HSgNlA0xA#r1nsv-)YS>!0D>(}m%`ox2<#(5D z`C5smr+W53*eQAP%;%Vx^R+YAx6Pj$_iX*do!! K40nVD1*G(cbH!t@K^la)%-r{vJv&!kn z!mV!7a~GNfrQNrmuB T}TtEN#{=Zk8d)Gbls@rq#(T?A1#DWf;Dn9?T zE&JV*-T!}H-g3;O(EFl5*FDFG3%tips^#0foV )wt6QzJu{vugK$&X-r-))sJmW`@s&E-jVJrYlV~E9Y-qsoYYyZDQT? z_Wh^&>;F!dk)3zU-+2Bcl}6Xt)I0wezrC@YvNCb&@BiET>*O9v=vh` GMh#AP>bD6TuwqT3wEmKuCYwf*JB7L_w>w)REWBmew5u5VPc z#Z5y;ugjwC(xHx{OO K zpOX0Y?yz>QJNZvxzI;`l-;?7pCqKJSU*qC+a_94Tr%SKL9uMFDD|FeiWgLemnE1{# z&zIY~cdu;ay-21VQzj*C?3gl1#na=mh$73*n7*H%pBEow6)!j@nZBXqWzZ#)rB|~) z`v3ppFYCH`=FFMrswI*&rh57K_z1WPGL+vbWViqS^Sou #q@IV{*ylNB9bWkS+oreib!Xc5f7w0fR_uZ)+%t5h+^`H@7$tdF!gGq(lAs;? z_-`#1I<~-fx7i6B&kzZr-k#zgC(~zEJ(PUaUiNTzTaw}Nm-4@DV zgJE7#%d`ds0($_^`?H;AiXOS|3-=Oj|ak zXMLoN`n9X~d(8j;-QD`X;c=+v3pL-5GLG*jIZE|Poj=?1Ms9ua9=Xly10I|V>;CnH zqp)<=3em||gzpvHRjt^|d?j0VQk1c_7 CKN@<(%!yK7RZV+s)&p@>K51#lUNS z?!}&XCzPkxE~0m7;`)^qmx9c*GMcWM*GU9wJ@{egWRdH1O(#+MmXg1O(MpfIZbCs* zC#kK9y`ioW*u$kfDXgRF=FDwQm%>*6oiX><{dtKUe9Ar|iHkX;kKb@foi#hEIrDVr zxvKIlXPK8ie^_aE>1$!k{$!CED-%-BUeSIepq?hv_dH!WCGK|P-Oq7}IX|MJz)b}H z!X>#%-yb~S%Ial%cv0r7vf{@OFU5DuN@d*A5_T~ba!+zQq#9l`qw$hcl(FGiH{t7_ zUvhC(F!gxtczH~JbNcPe6=4ErLp%=&EaW}A 6 z6<=t1eX^_h{(F9ERgRQ@!`FpRocj3}KQ4V&^?$misN(Zx?M;R{YkBv5iP*AYdf48B z|7JeFVZU+q#AAg~2krW<%v)j_xjeKt(?#%V*rBcA`x wLal-ih;c%3?=lzQAh}+S+~voN9X4P}JYwyD7V4Q^8f! P+70YK z_`a?b-1p~Rxx+q|ee)edKK +>AD{bwc>9gvRFy(Y>va*ru>7OZqmyDMOIX!4 z9_^B|*zkWke is-gtD-R}B;gTT-QKS9OHT8CpSz!!CbcB6C6n9v z%+%7aQI>IYnLqXZ_c_OF@%2=9#QsA4^EO*~k88 TXA z&$&_ff+a=l_yNo1!IE}I-l>-ro(dHYwk%kX`$j#Y?BP+BKo23;6&7`!?2CeWuD$ri zF>$7B=Owl+$7bd1dGR#w{>>c|&&FL=3!dq xkSHybdsowLibFW-#W_)D*_J794 znZ03)Pid;pKfI24_C&^r? z`@K`w_C^~rt!cb0m0h?;CO@uRi+|sSdF EI+^F$JqPDVo75fe zW`*Y5uAQS{w1jPv$HZr*mG%cFZpgfCa5b&@M%#=@s)k)&p_`vy%yi+FIy+;s|I5b* z&T+AxKQ3|lneXBi0ja i{|7_0v4+^vARSFb1?m7~vZ0ww=DIw9ah4I#7=GW_zA2;S+naq*nC8f^d z=Oyr@u=VibYO}!nkiyF|;_fGu9tzle$UgtJv#wysVYcTwwlmMR^EJdDh&ZflZSK6r zXtUvK1#Tg2*;{Gv7ARetvu)PGiJ9+eU&ZC^{S&qA-TmphGT9N)_GapzlGi=?`EXsG z&H3cFx3=co*wDCqew~%}8JYI5)vecNsd&D4^-9T8sK+p-_UqL*_x8@#=(-S9eugDo zbQP#$us80wgtOlC!xGM0qf!sI@g6Dk*?cqQ=clJ{?(W|19Cm+Gs`vBXoQfJETr)#T ze*e#$RrG9Tx{-;=5zua +{{5o- zmn-M|-uC&%&&%-}Kg`)|eAZGk 0Kh<*UZ#CHb*}C85c8hAh z)#TrDw~yU8!E*mszWmc={QIVw$8T(#fA_!1CD!dTFQ}V_MSWXeFPApUV>KiD_K0Vv z{(si{_UHBCC0>u8b6YqS)g1S` SFX*PlOe z!|kltn^nOZ&d-yK-2L~f+2o!rn_tCje)nWvdx^1%ONCtD`-c^JeUH=hvU87WC!4Ii zCNZ}+K6CCofkKYsXKh$-6 v1h0Lsn~mTW2S;4 z<2jqpOxyluF$*hCuKBXN{# 4Qa&y!s zzi__n U|$gt}(&K17% zwUztE#=@4Ed&)VkE}5rJT$Iw}5 FhSIN!jsYL5N? zTeWvSG~R!H$$bCZ_V@o8J?xEH&rD@(cb^yUZ=1y+)N=6T&p!|P?4MTq-|6=fF0zzY zWR?E@cBxeB8vD8#)%?B2xhxYe`nVh3c0aDbyRqt8;mxLKhPRE&e}2p@|G0Us^#n&g z;kE@zZEkKx!G}%+OtL$kmUc@-;PBF^$&lXv{)kscB@RcX&pn#lZ+q;-36A*xzpn56 zcuacdpHHWE{{Q#eT4?XS_sT5~Zl=#)dNZfYZ829X)BK-j(knh3WDoQzy)ePH`rC!9 ztvB}9*SB9bwC*eY^P@1NI_1~>Rk4-xj;q`M^aPD5=uKDdQktalvM1R!u;u-4A3wh` z3&qv;HSB#~Bya6$eywjmyS4k-$BX|TNB?=@zW>?B hAT2KF3a4(Ymp1Y5KgzXst>1#iH+iPM`SX^n+@PrAAAi zY8Nnb*73cxh?u=-D#P{;U+J7*oA)PuSj6plxFcp^gS177esr6@j^n!SAZ0hbsGiao zfoU(S<7W%Me)a17pNspWCx4Ky+*8H;>Fa(b&5MUNJ@#O|ob~D5_qetRe60IBjHcz@ z{w^$eaBY2!al8C|FDcEGo9!Y?d<|Bnp8xB=AT-R`EwQ6h*=xrR;mH=k$s)DQfr^ |^o4D3t{w|sHWvw}( zp11rq^i5GOlR2g6CB$|u_Sl(?hCQscpMvJNb#zECVVb~q`dW;O&{iWBl`fClyd8eQ zKC3QT)vlDdzB!|@E^^|%x_fRyasMjk9 I3mc5h2E~=y?@i=Jm+VbCTHBami}kWP?ci0}&Mxlc%>>sf7rJS*aWokp6Ic+5M$W z&Rt6%FtW*2ev@Nzf21}`Wm`<)x6mG5c_)boyL#5O1yfdKEh;s;UtRPzNI;?GS?fYs zm4y$>*HxQ4am|TgOckA7maDu?u>R}D=*a(f5*Jx4)z%MWi&6I6`Y@dTz2YUQRMSL> zg~`oRRA&Y2ot)ylJ-X${g2y77I!ae3r1iS5Vr>m-xWFX&BSZP-hZl}5&o7yDX>?XR zUi#U>Eaqs$=|8En(heUqQ@N%V;drfqqhoEtqX*n3k6T{f|7mRz^x&C{H>T<7yts z@BX}q- b2>>AIV&tJx;E^BbR$mRUXYx0jt%xl%!qdARUsQD>+neYiM zc2z5V6Jem~w{XHvx!*z;?tH$(wnY2FuFhWNbylx?Wu&axu5DOUZ@0K`a$1scrjgF{ zu=Zyzb!Vp9*hjp1xnrTcRY`|NSH<_;_j{*IQs6K+20D^r%e9(U!Si1&kl38o%8)th z(+TDNl3ASwJf4$Sju);7TYV*KYhTK`pjFK|8EYpRNi%DUbxS0FsFhFV@wfY#;(pJ( zFZtS<$ip8#7%+5;>o2>SRqD38MPN?p=iCI|b)s`Bi}d|A9@&3yw_LW#+9jRuInLR= zHYvLFY486p%+q4a%<|41HW4`_D)CS`_T;M9dPhHQ3Q`I`q1 (iGc-FN zKP~)gbBQZP{Xikp8qWj89#Xy& z0*V5{lZ|vf|zWx6ExGJ&8x3iWi=oZr{(DEEDQ{ z+_* 0Zpsq6G!xM+q-kLRHd6`s!M&FS4st}5lVs;r%$a%Pr{=+PyG zO<|tbbhdQ=U$g1Ng(jZ2A12l{@H9=Av)x}?#i5>UXJkKl`ua`67JUls!cR8+|IK*m z`^0tAO~d VBqzp}JdJNV)Pm{t z6#M^Ys-Bg8z1(Ho-6{Hc`p1j2|229@ZfRQ)ntpGO9ot_!yYCnC3*KeEexdt=C2rcy z*rg2jC)<2IBp7noIeNn(MwWE~HBa8YKfa)IvFE=x@9R7_i%wed;iL5RjRl^aE7Q8& zl$E@6f}+ &j90#e?{T|snzwPnf z@%&qVVrb7LyFevNGaDD(EXAcqtr|LS1?`%7@YFB+A2xsQF6H^ Tx{tx%?X%4WTNKa%XeuJji?ZkRbs z=(yqG!-rcEZ+tv8E7vYf_Qw7nNA)k=zU?jI%ApvsB|~ug{W@#UNei|vyP9QK|F6bt zsnGl%N7OC;ez~kU)vF?I+Ka-qt%0*9>&J9zl{aq4FyfcXX0iWyvr0yXIj-^b{};|r zxGg`(&im7T|AIx;9H;62>tdXq#I&5@G3B@WrsH4#a=*f7##^rsaqf!TkYX5T*uPa% zQ|fhUu*kJS!&93c3fH??*fwg27Ct|81I%E3p+VR-!n44Wt4d<>_C>XrMi>MX8Zl`6=URY zP7^3=R(Ra_r0B;_8|B$@_8YHXjXBwWJyK@3AD`wFmSbsKbF#VgDt;do`NPCF)9Q}$ z|4$4V1-mwF5nwCJyL044MaRYkx8$lWr74`aaq(}?-G9c9T+-JaU~7^&a;oSz`~SYJ z&+i;Dwyx`%&V5Tx %8%Sv9X|`saf--508SH zHKrM9ZU~cIc5KIwRo{a@#I~H+(=Yeq=l9JQm(QEGM$&MW?`=8tIWnisA|`Fn?Va6J zdegqBVgB1n# j(?I-+P3kera@Qsl_QXe_Q#*utY0{9zPTi5 zWx?00;ge54wK{v~eEq-T9z)qHhoep(>y?(2mVQ0qbmKXTD;txK-`G`}y &fDE S?hig%=Xs|6YafSL#~Sx4BZpb*`XZw(jN2mpwFp9unWzFlCa{ z!UI>Xh&+D$SR&ct>)q`aa<&z;IPZ%|@GPHr|4*87<{c$(sngZ>YE|cn$Xt?oy|d!b zrkuMor-<=C^5~rXUC?8ViABYid7CC2 k@1O51{d{-6DZ+#lbq Wz zyT58IwzQmo+*{Xa`Alv-C2bSkh_#-FH9kijNLqBpKy!X^;Zpu<3NqeLTWw|jpA~*_ zBxcmn__NO$u2a@%q9Rz2&vPlF#gZArx1W#(ik&l2)VV^{@O+{bkljossEd zxV2jR>f+-L5>-`Q>LoJl^X~P0P|4hPWM}zZzlFQoRlHVQUA985X5zIcDo%$!amU?j zXqnlQvzu|_TSJ{Mr!9o_wQp_Q>{=bRK|1-iTSKIv{p*t-KN)Mk+RPp8?i+Vv`bXO| zY5whZ3%1PPF4)hbS>eg3U955b0$*~;?wbKKP4ZU7J<9uY?eT|r!Tv8sDMvnTRy%S! zby>^e=y_HPAvro)hJBj$mQ4{e6$R(D>GrRC{^j)bM_i43!q@)4cFth_d2h`=-}tmM zmfVxFm;;v;b+SHkN#@=0^UT>h4A&ZMf6G1UOn-k+WrB9;##dWDcTTptbW(unc*E=i z$Mbg0_CB{`p6+@3juO?>`wkpWZ@;uRBS1RwO{fk?DaW8vR3XkDL*GZB8BOVzXeUbB7sgw7Z!^QLI z$@9f(G;eI(eCTq&ta{k2cZ-f^F4uQCs<}?t(8@J2^Wu}{^0~)OaX;VqaHsf3*+z{e zHBZ)ke)ccxhKgTAOn9G6~DDqoM^LQaVEm)i%H0p&;^Fe*gTf;`^B&ItZCpzW67f zdLgjhe!=awBTAQ5wr!a$#9Vl1U*F9&KR2)yxfW#3X8&bVQXu|4r%vk9jCD2U&(~Y@ z?g~=5baa`T^y?tqcXj94cmDe_)n-R2^QDh3KeE*SZtOSMzg&8$lGN6Y=X~;sIVCJD zr=#C~fn?vy-2P6QQ#C!e`u>|&@rd) !3 z4HkXYDqn8C*It_P{oP%gpHC)hEY+CmwI*igB#XZIhl|#2efI5k{_{J<=Tk2)^R?)6 z7GSwkcwF|&*RKnwEQ(uS{NMm%TYI~pQ^BdP=8vlNBs{ZpPE6SzQ>Eu`zmq-L^yi$@ zU*GTH@!uuWt29OXz{d%1{|KZkn|Y|P;PcNn^R!v~^w|4UdV+&i8yT`HzqCyk^ iyU|`vdd*nG-#yh;cl=tRu4HLwSAsJXY?AZ_~6_ zM9+`Pw|^eHtxu&@gDdk|x uVh_V z6*}Y29~q-S$(5g*xZ@iemK07gRXFK=w7T8+qTVIr&HJX$i_X5?<-cuncGAE2b2ppz z25<3Ret7bN*bSGTc|AyN-BV&)AlssB{4&;EX{o~*t0^~m?*53E5|}zqps-{5@rOG- z^22zwi%Y&YG3awxeED%${mZUd+CM*5btm86BX;RD&$`c+?CUcE1#@ zyj>rQe>fg^@*~h?)`M&f3)?^Ec;k}}?l~G$c+vMqp~L=quGiP%m`@3~2^#lG)@^=z z+@+93D9l9faCxoGan<>!gU^*-?n>VG|HED%bM>F+{P+29HSJ~CwRiH%uSGg>Gm>kp z+-6U4Nj>Vh%Jf#6G*4lU0LQ0!{_*S2-xU91ShL4*g>cqZwMJou C(x`->HsKUeQ~(UofAB6~CV@g?u`%9l6`MJ}!}z4`NoK;aXGiEn0` zGq2 JD }%|hQ~Y_U`ri3R zjf{D_9w;$geIOEEboS` apxK{8^|d5#Gv@&_m$_LpM3s# z=b{dFxr&CWz32Gre>h9^vN8OunHQsXyor^2MTnNHKmP*by3`&;&q;hM_bgxD{`s7B z|HFrgQ-ZE!nZ{gK^$pJ2DrJ7Z#(3X*V>`QhnGQDRA3vL&pZ4$1&o$B8`I32#CQU4T zeQn}0%|MaB_17z(%}lp?aauZmkLXmXE$2L5ZH*9oVtcRpZR;8BXFH!dU%woFMp;1S zYMX|Ti*xXkXXOt)J2_-@n66Lsa93E;Jo)nmk10kgR!U7>K7V=1r=%MHfHyDIE-LI1 z`gu>!tnPWcil@`}2R1gxnlLX|61wcho`0G(;-7Zf99@?; zEvAll*^I*q9sggx2akYHUeC+&B-B!2U%K(j;|9$Q-i;5w+-v9-pJMstM{!8ovcgL& z-KoK=Pe$ad peye3hE_ ze)18nmi`0J_vzO*XVu9WPcB>*9nV(~ N ZUy#mS zA^xy}<7L?e{uHx08n{uJ3v3(tG&yqZy{=Q}lmsRESf4owe@C@z)xBubKM}Y}?e| z&BW5Z@DE!>-eX}O{_CE%uB?2faYM?dzv1f5w%t=cTq}?7@?@O5x9;xm^^1427#kbd z2?{S$3>FT^P74#%Vw3-%Tk|;o--ODv2^C3g2Afz~nPzZg%G$iV82aYniG#U4{O^x# z<&$XKcENc4{IsQATNQ#dEbQiqoKZ2n<}f|{(Uf ?fJZL>zc}Y5Sckc@9Ay zqSyC+z1H(4c(ss!udo*L (j`bJ<^dN0d#z1UN2ywVb~ zvTqki1qTOjiPCj*cfY;(h}iMMiu2X?K6kM_X_L-d5Tj>oY<&2~4+}3%H8r&i6De8u zV#Q6>A3^I@Y|bZFRn0Qs(G=m5ZArZ*{^Y^IW?80RZ>qn1{~o+H%=(4*B9<`c3Fmnl zq&B9Ot3I2#(dzX5J#F`n)@EFHSFqS0km9KDBJxhVw(*?<{yf(E{%6~`KRUs4_D $D{<8J{`87Mar>gvDWH&oFso?H(dp~~*$L|ge^Uo*0HoV0;J;z*a z)%A!EZId6Pds+nM5TS#Dkzr+s|2lEUl#zkLsROxAw#!KU40 z>yuh>{=*4|$5*D#pIl_OT%4iqY8WVTSf0UM3j_snb_32xNLEu5n~o>(yJewo!bU zhHk~5pSd}!OmB)V+hbtkwRq|!-Plh{WeOLcdu5%UT5?)%(Mqmk94*laXQo)Z-c)Kb zTX$JMU+{}r#~;i*ZK$Q{Y4TYAU2@T9x131=9*yy*=H4hYndKudtrRbn@bIPjL^s1i z5#!n)uB)oc8^d-uZF=*^bj1c&p|&M~Q)a$6^DFwr7Uk&fYjYpTCEq@uYc~7Fyz>>D zfh92i_Q3yUxC#xxp#z%oVewhRb@VY}d!G*e<%>X8YO21-JHetqBm<|0?HjJO6OT z8qeFWVplakm|-^k>2|sH+kMGpC2Mr`-|XPq^!C8JUv}>1c7;jnSMQu8zkajDHyyr< z3st9=7uble=E>80tpB{~U_3(|{}VO^4F@6Tkj4Y&H=T)+kh1OKGCm-%z-;q;H{Kvt zr-R$l`7X&cmGHRnJKZ|->q89ZE8QJmnd4KgzdOF-%oRbmzzK3o-8xIf_xFZvKKbDS z<1^9f$bDJ7nNo{|kM3J+ePhRW#Yra8ve8S|EtuCLQf$d|UHPJ>rG0<*afiYQOP2<} zJU#bF)1{S9njM8q4~Kl#h w+=E=jl%Q@@JwMp4zx@ z`uL}IY!GR9_~M1ek*{Vf+`qF!SDbI?b386{=L3t3Ez4u)f&}?3t7fiFUML-<7+>?; z*JfKi``0MZRFQevnyrubyglTdVJ0mjVe6NFGySaQ>dxTSAVKRsx#tW2vKyP1Tz}k^ zk_A~qcJW`UOQ4J0{NtZ(E}6VN@pjtj)T-)g&FQC0%FD|uWVS~2DsbGY%(G_s92t2p z^6BcxnRk1o&5aBV9k)h3Juy+aC9&i6E|G56S!dNiRjqaTyCqR;%RF9sPTElRHfq*c zHD_n%DW_Az)<#Xu{ib>J;o 4nf(=Z-32+IkEV$gzf>Wrbboof^NB>l;4kz-pkvy>-3UJ{_|U7%Kl}Yd#_dG zcJT2XS8h#ln=CWcoFgnxjc)J%d!A?BZ?~eqdo3 L*>CgS5&=hUTu6@vG%CL1b1Io7N-YU-E6Da-47J5u(Er7 z{5a=cnOmYKTpsSSTljv{a 3i*#F!dUlrA2+o{x+T$%;mGM2hN?j@Wt+) zcQ@NFXznX9RC4CZ5Px`RkC5(!x5m2z(^YpKO*5Xh+4 >` zLuXU$9qZgp8bR9x8+tA$%8I{EOAp(yJF-xJ^Y=|}n;Osko;m%mj3j5R*i(y#j|%Rr zDai0 !#oiC1RP%mSg!-Z%J--nCs&s4}W+6K~E 5KkGc1y{oSsgP$U23gx$ImE|c!Goj!AKN}Bu=u|w+i^|E#Ac=?VM+`D96 zc Qa$G~pSOt%_RX5S%kTN)@_X)z1s`puw|Ty_)II*-l;gbno0|6(%{=Qb zyYz ?o{LM-Q5|BSB7bec-^(xmtDP0SeRwO+c_uucM2WX z*)>sxbHYNt&Bxb>yk8R)x-!H`({+-HOQ6fvsHFiK0V_iUoJuBiCm-)qT FNV z{A3kJug;*Z %6zpf&svEuS!quxs+jym4ynK03 z!g*=X!Vs;ErLV8`<*dIZ_1dfF!jFCJ$~Hl=4;2L7etbU7i$l=jl9JQu9kVBW7Jcfl zVae(PDKd|~KHsEvK+wYBe3#>eS#om=ZvOfCB(!C6RL}c~%Q%0kq=tr@-|liPyRN+M z_x}BUQff=Ij(!bVWIJ2(=Ki_H_e;#a&J $VGmT8x+xthbFvPER|>C{)9ClxBs zKRjf=tF`m6A^W?3^F!LdJ#^)b>NRTTmrwn 1WBD=BJp<4g~E`& z_eXoBOr%x& nlr?(cZ3?f*01@1v1V!nS~C^^Q+-p3mPP zHu)iY#4YKvxkupuU_rzTr{7xP#iO7F${;JpIm8JG^77^+71((-!`sGBGzj@pzGoQ_} zh;h@(cWX8pHknz)1fR4`;jiPn)yTetahgK4fcS)K7wmb@-g&kxnAO}t>_!Y5+X~(X z5ATW3OD%rea9CTL>w%C8`|k9G>&}+cw)}r6UElXlxc@`_|7+hrUpy`Ue1*)W>Mh5U z`|BoE%kAj5|9ANQ lty1X9j-v9J-<^7}He}3JTd-h>t_6fD39Z{b<{q0UQf44iZ``?Sb zHh&Iwn^-OP&UWg2w%v Rc({o~*D z(Xd@za^Fd&73CCzI#@VflXdzrz0S^U6QIYnNwpvk-sSx4)|Iq@iO6 ~DM2fM-pZwp{I(z<2xq*Zupz|9=91 z{g1;9s(!1wJ~N7Me0r$1oqL|umoF _0kQ{!RhGU;^V |8eeb?+hRK4=f_Lxn(&66c$T)E`` z9*uwe=ePVJ?K4{hrv0ut7hZ3 iF<;~d9=n(FKm8*e<{y#Lc_ zi?4^OEC0*ypMU)Si@RsC91B*YBsWMT7fCXI$^Bp#_RDscYWz%vldl?fo#kxE6!?AY z{mPu ; ug z?AILye{B8#{Hx8EiTAhrHLQN4KfUH>{deCx{~w8eTxkC{x$d`r-Q+jsJCf9Ha^-lr z^USlz<`k6?UCEX8Ioz(oOW)%QOG2=b;kgg9EO!_8?A`Gsq l{R-|G02o2irUR} z&{ +>u{*1{>o!E+3`v+GoZz384qW!*pwIt zSw)RlNsd)9yY<$j6|9Udysq@&(Ok*tZGFni16m*31$aHnI8k%F{Ex)!!^>Che9W5e z_u<&~8u9L#zk8?Tjj{xNy-#bp5>PHFvKUTwfjMCHUgV z%@q&D_qJ{2PWD;k@iJd}@2*g}^RpU$T${Mt=YG6;n};S}ymsgmC#N>AoTyV;7fs}z zv*@>aEZ}({&ilDF+3vNan9TI9=gRHwZ?+fD`5Z7c|IhJwH=g3Gl^KEa>OYCte-h4r zP`&RhyM@l7oz>?*v8Kx ?&30^a% 0a9u`4gdwl8~w{+{hCG=2y!`*No5 z;5T1igOwAFwqNTC_!#_cNyH_^EM8vI^w+K{&WBpgIk-E=^N|PZnyTY=?@oNooOpQa zw$1OVf|3}fy9-%td{lWhS#dA>{iveAJ1;J l5Xewu+dP&av8iUb^nn**^!i*QsAReDmq)$_M)nOcuBEaenZy|F7Ngbn7jjYZt|T zx*Gqn`ORCq{_f}JFJ4`3Q}y+{ _`S{D2LionY)0-KHpevH!Cd% =E9`*m@i2omZ|L`uEO*>x8q`&{k^yDP(QSJJV7eWu6oAdO} f>Ey5Ds!~gURc)}kUQIQT1UX%hi8+L@6Q&ybEB%OH?^jY@l3+C zLphAIUl;ro(s}-DbI`NweeZtr#D;RmzPo8(Jj;ClOYxuQ-v6n3aea@C9tZ!Nr-!Gv zD74=H|0I6HW}Y|Oy{A3;aZvxS*Szg_9^Yv#jtPBwe!X0vi9%uCzD?7u|GlzQbMGnS zUfE@6*PIj{D%qB}`)JLp6raZbR}>?4#LlD{-`ckHef7H7-N$O|?&n$lZ_EF|meh0G z@$2Q~{-399-_v@1-?yzxrdZVdu>c)J{rueA! ++2Qk@vq(*(a3Nxb3d`)0Xd3AIbQ!`nyQGOI7_bGU92Cn!0G7 z%Q5qSYs|AtQ!j6gIX(6Az7LYStz+JsUx_-vY5)84e|^pTf_sW_7T>?5#(mGte-QuY z2>-^{Q=i*^6REHGD17GqUg?$0$KyXL%>EjBYLz-qC;y*Ew>`r7EsDSK+|6mbQ)?e8 z6~uqYA>(_#^zR+u%(*1w!#%|<9sw%iAxxI}9}3$qef^ jZlQN|TP+`_dY+7tvCg87! @$QxjO`R ztd?djHNW)CZ%t^O)U9p$U**1+Z`AvP-MUx4OsE$+YWkXIA)%4v8 gZEaq9ND@!?y-mtu2 z@6Mmu{7sB`deTX^bporOUJOiF-dZC&P4LvIT?z-A@6QkPKIoac;z5@C?)?ehf5^GF zv)laI=l)~a`yZ+A?(T1o&{}e6(zLRT{CX319eI{;c4_zXA2Z|sC!VS?cs6~>j*0Ob z&v!nsX%_#sM VXK{+T_w$rlGtG_XsIXmEc*K#LAgHw2*IV10 z?{cck^NRVFrnk*!h&L^B(mS;BX`!ENbWz2YN4ETb4ex)>jX(WoovN%?ys`6|H+o8O zQ_gO9c GCO}`v60;9bDnhqV_|iM NE6~gTHQTrJ-7FuM R1}rhcFIv}k8*wC|eG z>gsA4>$0B3iu2WwAW6$*a=k@o$Opl1I;wkJDI51W8 zTUAqC#caxx4;4;d9*Bge#?)MXw7A_u`H1Dc?Q^X5J-D~q@57{I-T7O0r>s1+|M%YS zh9&MVPV~ol`+H``{fyLCUOB1g*^67ML4F(N2>ZVg?mv4n$nur3ySr_;-A{}6e@>bg zrmg!Cb)%a%lDV