From f7d4557c574175f41b50b86ad14ed79007400ee5 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Tue, 2 Jul 2024 21:46:48 +0200 Subject: [PATCH] #972: Fix for AAIOBE in decodeDeltaBytes --- .../com/twelvemonkeys/io/enc/DecoderStream.java | 4 ++-- ...zontalDeDifferencingFloatingPointStream.java | 4 ++-- .../plugins/tiff/TIFFImageReaderTest.java | 1 + .../resources/tiff/shapes_lzw_predictor3.tif | Bin 0 -> 27852 bytes 4 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 imageio/imageio-tiff/src/test/resources/tiff/shapes_lzw_predictor3.tif diff --git a/common/common-io/src/main/java/com/twelvemonkeys/io/enc/DecoderStream.java b/common/common-io/src/main/java/com/twelvemonkeys/io/enc/DecoderStream.java index 2c421c44..fdd29531 100644 --- a/common/common-io/src/main/java/com/twelvemonkeys/io/enc/DecoderStream.java +++ b/common/common-io/src/main/java/com/twelvemonkeys/io/enc/DecoderStream.java @@ -59,7 +59,7 @@ public final class DecoderStream extends FilterInputStream { * @see java.io.FilterInputStream#in */ public DecoderStream(final InputStream stream, final Decoder decoder) { - // TODO: Let the decoder decide preferred buffer size + // TODO: Let the decoder decide preferred buffer size this(stream, decoder, 1024); } @@ -77,7 +77,7 @@ public final class DecoderStream extends FilterInputStream { super(stream); this.decoder = decoder; - buffer = ByteBuffer.allocate(bufferSize); + buffer = ByteBuffer.allocate(bufferSize); // TODO: Allow decoder to specify minimum buffer size buffer.flip(); } diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/HorizontalDeDifferencingFloatingPointStream.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/HorizontalDeDifferencingFloatingPointStream.java index 3ec305dd..057b28a9 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/HorizontalDeDifferencingFloatingPointStream.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/HorizontalDeDifferencingFloatingPointStream.java @@ -64,10 +64,10 @@ final class HorizontalDeDifferencingFloatingPointStream extends InputStream { this.columns = Validate.isTrue(columns > 0, columns, "width must be greater than 0"); this.samplesPerPixel = samplesPerPixel; Validate.isTrue(isValidBPS(bitsPerSample), bitsPerSample, "Unsupported bits per sample value: %s"); - bytesPerSample = (samplesPerPixel * bitsPerSample + 7) / 8; + bytesPerSample = (bitsPerSample + 7) / 8; channel = Channels.newChannel(Validate.notNull(stream, "stream")); - buffer = ByteBuffer.allocate(columns * bytesPerSample) + buffer = ByteBuffer.allocate(columns * samplesPerPixel * bytesPerSample) .order(byteOrder); fpRow = buffer.array().clone(); diff --git a/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java b/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java index d7658d19..38f4f7ca 100644 --- a/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java +++ b/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java @@ -105,6 +105,7 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTestLxVKdz{5O?4g?gA)y*OxG<`U*{ zXL|XlGEa79$!s05z^fip)hubYTwO)L`JbB;&H`-^rrn0oz-N|o0cXht1oa}XpR-sgT z>zwQJjxjC!kf>WY5FXE&zjV^MW_W)B$L~#}|GB{f%e&P!4;*YAKNR_D;>Gf>rnk|D zUI!>E7xYX!8kb!P$>BYn^;#*X)_C9Oe*fdQXJLBOJ?oD@{{&cQ+TDD=c-S-u+ zeAI##^>T%RL!clQm#$o6y>RbjocNdd$(sv*Elw^ep1M5q`^`~Wr361z+XzfjGau~uhuozl5`fUKNm}#`S=S14+>alID>D5&gHR~YA9h62?dIg z%0RnV!&wm<GHB1Zl=JAfLiteSZe?5Sd{z2mSSpIr z6Wf(mC#pYeEGLa0dB8kn zpvNbkq-Ezai*ijAQN?|soSr9R;+aUn-l&%kS5P1w2xZ6qtnzFs+_abO8e-1d)OySU z@}7SuJnKA#va3QI((lH=+wUeUAE2ZLV_DJY=0{Pj{LS8yRYV<9!L}>>j_K@A637h@ z_m@+{9^D61fzNlhe>l9OiZf^M%EeX7vikjX*SV|Yn`MF*^-BByCbs6?^wsftlDN^o zag=pw3+c)2rJ4JCZ_}k@WFrjL{ky(K$=tre4qE3C5?8PBx1*@#hcuF2s>1ZLKQE5GaCHK!XyfU$*UBwEGTrV~%xA{_p=J`~~@KmV6eQ&IwF<00Z- z(uvwsuyNq;>Umbe@fXQ7t4G1n5*YngNwm_f%Q6s4u9A_749}P0v37Xm@OzRwBb2Wc zjVG&hqx^}yPP7yjVB3`TySsHY@_VLGiHEm)P8dgf+|tO6v_GRFVv_K3aH%37!Fndi zzQJtc91e&>z?dgz8P5aO<_b#JjJ%`7 z4^MS&y0YCW@pRAYyIi0bv6_F4i6b|22_O`87Z6m3>;&K;2W*Y}pZU)beof$qqn~Rq zZ`q}(n8 zadb=rh$~ynviSLgfq4`E&~WeD3h!IrUcGId8O?e-OGIP{aa0LH8qS=sXLOHrx^7=) zlOoF;JNQ?AYAKdi9BOKJB{op3hfreO#aRlBkw9YcZj;!=wn!ws>FI?w_ENvylSfqH zx=tPAvS*%^F0m4ZS6iO7z4zYYqbYk-Ckp~jD8%P@Yttbk&E7FS1ACA|MG4!;QsON6 zy#mg4=}~3^y3D-fsTq16(EGI%^Lw2;^M zQRFeK?@$6+G*4%;g7JE`ZC?@lvJU3+#_h{j3=k}-bWF6n6i;&d;dhum|6RN#{PG(zx6yY^qDxRU^0j&9GvJtws!?tH|DwneBus=E2& zbPL%NtPftj`pBr%b@;f`n{Rs6Efe4Rn5175o0^@L{_Uaf`fmBbujO3h_-_lx@fb}8 z%EE(^=Txoc+N;=au0EQ2a?od;Ek8vS`NA)cz7N?|%SFv#wj1%Ljk}9_B^hlgGBwCu z(?ThNETc@rGt4`90aN#Rz0=U-v-OjG|J|TN^$+KUU1#;>E9BHhc9xz^+r<5=be44# zePX>1L}-G=A0`4cxYW01=&Wmx==x28m!!aOt`EpOGm>k6X?EhqU=G;?pyT{PC$7r?W zPf8!}1$Qjpx#KPKJ|Ug{L$vh7^t?Yus_g;xKRKhkWvgoB?}koyQPKJ$t4JfAv_$RY zyrxrTcD0vPuPokYvBFV+G$YB%*T|I2d)QO@hHRy$?YqS_JUO&YR`-KaYw1#V=yR97F4uQh9Qq-Z zILrkW@A%O1jb~fWmhyjD+;D$*ySb}t+LiQ0A&{H+Bcr=hmon9!bg1WzHF}w4D(&{s zRmiX)vw6cEgHl%^@3|1`HWxE(QFKqRT30UlI_HW~!iB{@ zKULJnueHWI`40pAJD7>qcZV;^HKIW7dGgd?yllJIIw)LPY0^&~LC}#TCH+v%w2#OF z<2&r^EWS`S4@VF0+ff`QH`-`Zb@<%6nyv2MN4}=Lxz+n)#NI-qfBd`=^`!X@kgKwk zc20@M_C>PO>wmlvrTx|o*TWue`{}oF)9=oGYFS|kLkY=h_qH8WExV+849wfA6Xw1*kBt&t(rvmF=S;rAH{wP>iu@({t5u{rsld<_MgbDnO`s|I*t>%N-*9_99U3;wgd4Ayj~4npd|@45Wfyd zISk7?t0G-8{_=rLg|bwSeBDRue_u8i;`;z-l75&yXTR7_K+Juu0hs|rc9|MiS2nt& zD+VHPDltOaGMiQEWE(j~K`usB?(3NR#@+J8oASTuOWXWU;h62^V)NFJ7lpI)XP(TU zzsh&M>$ivw|JFaWm<=`y;?pxI-Hm#50bH|?WjLv)%rH(QLE0J<9c6=V+PddA!^0r59Guka9p+cBei=sjZvk_4p0-#B zBRbbZKJ4u2A+q}xy6^su>>~U6oR+a6JpcmL4_3uvp8z*kC8VN)HVJvkRjvNd*;C%@ z`1UxyZ$QW@O)gIJ)Ilxi2c7XlD_Z!s=d_millF!?+OgE|u14*T4(suI*YD$weM(sW zDQVcbHeLTJb@nu7Cs?dKbuP>si|B2f5AM>xU;6X~kn669d2A>m5_v)tBbqWPrg@MK z0y+>PfUpAvmtnXYH5n~rb~_r3Qzy@8ZFzBhUR|DGQvS&|bn+vkZr{|-u=N_J?2mO{ zE^=vgJ$t}$Yy%6@Ak0s{d$jeYIaa~OAm7{IyE|p;Zo}t+Mr@9n=!=9$j7|YV=bOf} z>_aj`hwhkG^HkXB33JRbbB}xvkIxEEVk{hA9Jq;pHJ6N$ZY5vK zVQY=)cmLdim{hF~WyT1#?NJjQ%pEsx7%1GdwfW7C^ESL05IDJ@%BZ5yjif{iBwn$x z!8M)iw9{LYk#VV^^LJb&T&GF?kRe1eSFEGZuo1# zHa$cZO3wOKy!hl$9m@dCDv`F2Yc*6Pp-R*&QA4z~;>VYBJg+)lZ{$q=aN8n5!X&#j z&X^?7N9P~+<#pSi(RG?W?qMhLsJZ9--MzD^24lcA*Kfo$HFKM88!p9cDT$}wDithb z+Pxc;|2Bwhdbu&*3k_31;FP4$9=FI1oLp3eswl9Eqhb{;^oiG*Z}eyB#x=OfrF-5_ zg6+C`+z*6Lec9?EzqvJXJf|ZI$3nZ%(K6SSHG+ct*uBW+)^!`@{FR1PM_&8C{~ciX z0Xh?`qV#hwd;Q+CKFWIjeMjm_MDrTdTM#gt~DhJV;ldR2nl-8No> zf<*6vLBXa_9~!%vobWMt*@MFev_!8biYB*i@AYmd2=xlTta0IMtd8zyw%*yKcs}Br z0s%g)Xq-^}fDn0jDN=veP4ZyUNrRN{XN22%eky^(NVbP;(Vr&Ji{#6Y!~zsI7S)Ui zocs~M?x(?hGzO1zwr=m1(a4JBO)mtK@wdZH^0*qwo4d4e*wT_>1BV-?Dq1bSVvTT6 zAK*$S8fo`0%^4^DjuLxBJ9$xfWhGAztFeryvFCL5?{AD_>x7(b4qY(s zXtlRjc6K**vkq%YDB}E=vn`P>B_+g$6EpPL0V=!~Nbkc+pS~S_$%~=K;In;biIbxs9aBc;94Z9Y1nt^$5rP-pdDxtfyg1enrGrMn-R%h*Js2 zQ%L(zI_ifHUCU->T#GWi&&qs74(z0InF>6CvTWM}h>qrxhOU-H~Mt4UCPK37fz9YPPUeTloU^x~Jh&n;*{?*KP zS)&|esrRuu0s``a;GpcJ0}*X8Io_vp+S1d#>T-8|-@kGqy*im>|MYkw8s*euo!G_G z-=PS>>%>x0EXmY!k9V=Vf0Me76)ESp4HVGrQLcN_0tMuxiCFmLUI)Q zSoPWS*8wP17H^>lJGwGD#srqGImtJvG%tG9&FDewdR(Ax}kP}kZy*n5-lMzQ8F^I@iIhtwp ztJErR%dYGCTEDYQi;7fA3@4q`E9Mm$_iGltD8dGm=W0~ouZxpn^6qX$QYxBw9eKef zcCL|b{GA^0(sGf=vnK<)bkf%)Gn`tz~9$?tGE5y)+}09xKLMh#Q3J?HJ!)o z7Q(}p(B!+ab4x0Y&_rrE>AA*Iv(KFUS9G_Sp*Z3=CW6FFw0^5jG zX!ML_nEl=J>`_$Et2=aUIZ>rN`#wz~R*vNk@yev>p29k_5Z(&8qKX<=C?#5!yLgIr zWE1V2{!Qa=cSe-zPIxBGGpRfG3P0qWahUf#;(5E@Kod}aIG-$5;$J*q7InSp09n4w z55aoS?GO&J-66QVhZ3KVdZcHvkRn=!%1-nyHy|lzZeA?6+H;j&=hME;$*%pz|B#&z zl|6jQZUf3)lCS}?8|gdJufK7LHaTKT`%Hh07Kim+E0I`3$D%`$y`@BY#9PQW6n z9eo;8{%pd3Yyd!S)ZX__e4J+Jzxnyy>sk8SsH9Nw;=djLoeAn3dY1n+O$vhY@rIu! z%QqW}Qppu>X#dn-PY8YPZ=4dlrRhs0@cxi1YTh+E;r@P_4yaU6+xzIqDlNe6E(QHQ zH2HnQ2{G#M2iJU0!l>P)gEJJZjys0}K6i~F-;LSh((a_~7`HSj=YK0>XZd+#W#Oq6 zi!>gUDC))>-$1#f87Q`gU=*2Kh~&P)iOr7h7$UP5h@g)K-+2Q9-=tl60M<{xE{`iQ z-mJC?pl?#ww(XpdAMM|eawg};7)q5Tj}w(blYIz(oy76S7HNMMXebPvp=KdH8!Y+F zf=K#LZIQNaV($jZTm3gs;P*?GO3J!R)W+oRBi_4I&Fjtb?ZIs4f!$+>NG;BXQrK=#URJbMoeiBTQi`YAhwoe~ut`(`io`NJGE z3Ni;|0Aso&S|oxLpby+!lqRU#^-1Z%$e}y_jox$bek)}>3K3Y$EuS!K81n`2!B*8X zO@IE?>CKjG^5%CbVQZTq@qjT}DHEw|lky}~KGca7I5=gz{X z9WIHlmApCdy!44?Ttwfq35$xs+F?iajI8@;x$}^+o;_CK#gR|7vgbO+ic@zi)=#;F z886+s`B?%UGI(m``JdszIIc`t&m{aBhjXV)FmR^!Z`(F&=;fcv{a%=QXS1&>;m$|g z7aOyPi0Mx?GB=ycHPz$VE4Ocu&(+(`cgxp6sBazp$y!8ZG*fb77XMImpRe@WJ5GZT zmb11Q7TVxc+C}?NQGJvhy|iur$skwZU$X64?%KJrJ-SBFrE*R}-UY=>86MIZL}Q?HD0NNw=ct zVzNG>5TRvgk~6qY=Fa9|@hQ_sc&8)K`jT(NE{6*-JJgCx{$tf1V-eL!tSc{;M>l?& zW(AxH@k=fHQCzC=VnjL`93PZ>^W6IddiK^RcYR;l8KM*U*zVH`NgT`NlEF!u^_j+l zd-Q(XEh_AEen|B5R$A)>GdkdBxt*vD-a;bZ_>Lzp(o#5huwN z&T62AV?zU*E|(sn=`w6FT6IoI?S0}`;r-i;Uds_J1XW|2PV?gtxB4!G+(`{%X`eqE zanViD>%vX9|25xEA9COKw!LXd^sn9X`U29$Vtk!NXRjem`9WQR?c)E7CA9r185Mc) zr8zMxPowfVBm`grZ3Hm`XP}$I@5Lj4U&`YMvfb?GAXRCB7|<$?ovCXr=+$Fcne-dw zXOI@18#`U%-<+oMZJ%zN{_W8M)ON>*0|g;BKLGKwBz^S0?xoL<7Teouncq{tn*Ut# z*K+bD?eO0HGLc4pFm}1-w%WL?Nc?5ull<=L`C}3}*%tyf468HQ)0IR^hc__{nM%e- z=I#DV3eOCrT|-!qn554WD~EnP{--0h;XU^E**Mu7{ig3$5708N#(#Y_!Yjgo@wi{) zAg6STXRAgy4d`%z+goAaiY7|3(#Sb=5134;++v#x zwtz9H1+(6ta(Cb9aNJO{XWy?{Q;HtqoleRMsxh{^Q=aD#m;n_{R$S(DgQ7e8< z-h8G1Y0GdjeE}eZ20=*97SHPKlLgV&%}<(^)2lRwE)??{os(}GeV9LkW<{b0JN_qY z_h)*uh?3TSeE49`^gLYa5s@BbJ~MyUuX*9hpqV6l)}8Dh2bc(XhP)5X#(8>Inr%gUc!qJ>77(tz{+(!EnEd zXSppeoc3(2t~z7<#JI%HPQ*C75cu)-;p$80H12CM>Da8m0Ia5tWR=1O{gFA5Pu;rE z8xZx@i&t;`4wNT=$~WyV@BZF9FP$m4O}Q~z{M0lu{GX*_*)bW(^^Q|kO7sQh)8`ER z9o!N@hEW#49{(7zudCK3V%C(SM?iM#=^{%u1pCcUcVLBo>kSK=U&MTh%IS){G176z z+wpTu-AHQV3xo*d&7|S`b^vAT^nCbag4&oD?c6@*M4j$o?6~9q<_|55z3wrO+Q7Ic zdB*JC&e5HX2@ChV2e*1U7HD3#mG8;(`=8X7g&HZRXwPE-*Qu*FilzK_U%M3>eT}zZ z-ZQ%zo4J(M+FTz{(F=k8cI3k%)Ia^t17t7ltpF4UUDcRv4*H>cbp@MSFg17}zBiwD zpv(DE$Oo#}VD3q3AWJvGfGX9t10v*aVEw&$|6Ac}PG3byGymV?u^=Wa)q0La+zXO( z^hfib#K+n0e|YGt(Jfz3cD+c3>3+LkuHEfYF@w4`ShT1tNBlUxFGZ_3IuDY|$Fu$} zKmS(R5+e7vYU$ds4X?s<&6fW*MVCJBxKavG(S;VBGFNGLFL}(>+tlH*6OuYTe2lQ? zl5d^wd2#p6kJ(MZE@RQFqpFgs!@j2rm(Tv*>=;B>%0K3L0&&q^WnH&z{e_^`8A+W) z&8|5^?+ZWl@g>8x;}fElsGJw^ycmE`g z^fSQ~yM_K}?}qFbPq*70+O7Y~(S0@WIBrkD-2D87UzqimX0x{8p1zH^HHdX}Shymq z1LJr^;}2ysjR!Zaue~jbczt-!p`wPYtPpS8@zjKZ>ZgO>?)M{iUc7v={B90x-8{k<%E^(V}J z5qN*(X3t64TQ|&2l`fl>6}>y@Yw=jeeBovAvv>e{Q5||^sP-ofuf3nVZ`a*6MLpzB z5dF^K)2!f!pF=fwReZb}r}o2+xfnmRUCqI}dCu?ZSp~UXRJR@lbuaG1AKhmXzhz#` zhXki5?k!%tYF@v)bK|Uao6;S-x5HmduFCz7UwHrd|IR72!_aLD$!`xf3b)G}wyQ7Q zd6>T4{zkh`{T7c+?J+LxS(1_)A6-K}79L64{%|Vqb-&4lGeqCd_XuzA7w@N9De7)X zE&BZuH=81J`pY(9**Ss^;H#tfiub;Mzx?E)2t~Lhc?rR4sLxG%kmqsBDqlga{{D$S zHAP41@yh(nqKmk9nH376b_Dwokv$p&_=*nnjB7vW z&@3I_XfaQ+eEi*V8oJ}Dr@CF=O8r5*Wa=EZe!0 zDpGhV9dV>SdE%;i-l~)I@qX}d=8~+4d^n$O`ujC6;8zJ zVPOOMWeTIS)2YKiE^mkfkkZ?>wloa8>l0jTwr?Pw!rJW9ez0;9dHz(_g=L%Cvt4aL zAe^}E&t6-_Sdzz&+wDg9cL!}P=dM{MTxjmIO}=5~5c1s$AX$nRd-;EXS<)X5nw%NQ%9MQY^G!GLq~dVQq47-A4au-aAeWts#>`T3eAc}32n^Q2k-c#KW2{dU z4DdW$0#*z#Z3x-65Wv#Fa+0%)G_m#ySez`(I-Do>CVNvSwl)R;b&&NHJ6grlzMVaI z5C8>851{$Jl6vWQ`*dn_DL0KH_{eF?EG#+-a}b;x(zzyu zgP#e{=tnu?3hW5p&AtLVTADLLZ2nA=D6PN>N^=AiP!S%*-2!nuH#SW>h>(4(AANq^ zeM!J6|50E4lfJ&Eee(lPrJi+LKX0w3u@9ufZy^!5^&A`HBkS1pzrU%{C~&vJOCg=SCJeW zH0LPRGbxRpAd$O6k|R7uEs*DYmL2YraZ{7=T*;F&Ir_|5DfcRAL@%>>b_br2;&wwd zkFXo?F>bSp?x@T&f;c!gu8%8~YY#9<0K+1|fI`QmW3>+ef)bAt3xgO?8<-<3ZQ)a& zvW`N%q^IFgFbjH`3m~5)tUU(K+=z{q29!5B;hHYsP!4N9kMa)NCWpyIWiL>$Tsd^h zYz7DO0^qzziJOIZ2qauHIRLAuV|VANe#c39-fdN{vp5ivUVxC<8}~tIeWTA zBX;?d0b149&}Y{fU*LlPsrTfOp^Crm!MH$4n0CUd_k@Q&0NgwQZOhYoN%()*)rV3J zUR#xFa~4{ZRC`%%0wpeZb>1EOqpkdy;0ztSKGwQ(y3t9mhc|>pxJ{tM+W|O4%|!r# z3`&rIr5mDH`*lr-=;9+8(HyLp1y~3ye-i*~1V0KI^n&C)utGY9kHQS5;y7dsFvJq* zm?Bxfg*Bh_0>Bi3?8*ifo+j#uXEFeqKoin1db(aQmVUDgd|Mc)jf8>m$OU_dg+_pV zX#MLvItRgZ0s>zk3_%M3TD;C*2+)HX=puD2K?|VwO6ncK3czksX3i^vZdRRoZJQFf zwfFtsx4*i$xb)Yznz-nHYRB$!39UKH2(Ao<>lw^FgoKee5H1OG2<6Gu8pGTIu0K6G zL~T$8D`X+WC=@`T1TKEuEl3W^FE`b%{PFmGyx&AWOxTZE@Q1i^TDzY6+l=^!y!1ad zw#LYyqKW=OE?Nu_Al?6m7~c$z5zGS&r_n#&2ZYQZU`Ol%4r1A0029*31q_A)p(J#5 zVK0HYS37y{j-|K$%WspK-xmBDqaS@Mxcyq`&xsevpf9++%MkYvYMKaj+akFE5_^a? z;zCw=HeP&R3MNW-3jMQk0fu7?0~u^DD?^OTT!FIMT(a5{kR$_`wI2qlkk9VS6@Uom zT-$L7Tf1>eZ-4fRKjcHG;iP7O{jfPbN34>KGsq#)vP)&A^Z+VJ2?i$FxBwW?auz&B z#hbDk)&t;{IU1Dlc^dt1&l&qVOcLk$tTw7P9i-`Da15Tl9Yp73A2NVSC9^quU_eFK zpMimY25WbQc8v3i!U^t?{({w@r@!BRvEUL}!A904|184`t)_MUd);pF1w+=P|&24KNgt|T3Hc6(PeswXtPlB^|;@-!go!7lC zmHe8>H-aKE9s>DKn~eCcr=9jJh%!Qcq4|dp;4l2Q> zEHDAkMvH^dup`thpDkda29t6^?M5hFL7`JovA-N@c>NE{4h z-~N==_Nny9fm#+sY(FM60UsV9#J6`f?0IGZNwtbO< z0K=_YXEc!4ypWA~mMcia+3&*u78a&Mm=`(OqX&!FSlibJg=-s}iG{Y?*^#rn(nA>B zVcwxB7_83~M8bNJb1MqjgtM8WZh3;u+1db;tCnrAoK>qjy>cLP#n~z82)b>5=D)8f zdp~573^K_zW7L;dU}#<_i_G3!T`H+CNXQxF=wmq*eIG zfQon@D8l^mp4*rA!y1F3aF!s zyif!RhHnquUVZv`Fx#LLBL0I|$8%sNR&0kABZ86u8g`DHB_g?A(6hCGIT|PM#IjOx z_Nd6~85qtX091ENuoL$sK!A-B*dwA1oz`@Wn`+5Ip@oi!?opUafwJ%Caw1U%VVN(U z<#l#qItL(@GJfy~rZfm}h`g5^3zs+fd)*U^JzZP90D*$w;}VJ-oo98SmwN!#4**YG zsR>4FFLGv0rAdj}+7LG}(KRFovA|;)Bo^Wm`I3pPk%>d|SnMHKIr=bR3toW13WK?P z3W^_jIO;Gw1#-lj4)eibLH*Bxqd#ZsfBpxr&@xtQ8?ugmLmXSo=F}nd9F9fhAWE^k zT7aqz`T|q3E%tn!DS&}-Ha#sXX$MRTgkWbFXz{p-$HFN&^!3YO1`um&PJae$l8`4@ zi=Pg`fXpM+0S0AxbU8$6QD4}$H9&_LbxR<_hvyNF-+D4eu8^_?YMw<%hVZ8i-%MYgts+gqW0edo29Sfqpuqi2wgeCqXt4GR#>%0%%azxNKl6wnnx3|G3p1<3)1@x ztulZPo>K?0{HbjrIOM{nR0N%xfkNDg9@RylaS(t2IIhe*$wKhBv(ZMRfj}!27M!%5 zfSlxm_T_j8kIxZ)$H9N2Z+?&I{b>H{9vckLfZ z=?cBIr@{Nc$ZvFZmltbyWWvnDS%5;CgS9h;qQOQR1s4GF2-a~xSyTlioM0}o2%XEX zhzAK<_#AtK0zZ>%D_BmY61t=OBwr1KTY~fXz#(er{GJL4U2~`Fr;{I%lL(gu%wRlI z4{%Zp7?X3+j#t8_Vv@$w?6l525!~OKDA+iS0m!FHF_!giMw9J1gBr#rP@0MbTrx|9 zg8$0}5-+*fJ?mGMcEE$WyCnY89NV0M5(D!KMVg;X2ks7MzUd01mnD^V!2zId(koBR-&^nCa-l{O zY*8H9;t)r9zOJ`<(*wO;h4ydT2OLK;&3mxD;HX*ELM@O6e85ydeG>pFYna}C-kLQW zh41DTh0(G?@MdySces&KRxHk5G6I_2g28Zo)&VS|$P1adVB)086Ap%~`D05oMhHdb zN!wQ}*Z!paCD-9A~8^HhFAav~Ko`MQ-Y(5t4LebH3+C2(~>KkO{@8-NS=U*=lMw= zgWXX!90LIDMr2gJ)DEc!GN9KvN2rZs3pTAKjq8zoFI8BOhe5AeXA(?k8H8XIykdso zD5^reiHZuF=@yJOFXJkL&Bi+z2n*fGaXvBY)K~xJKf> z*GnfB-}vp!nxpsfHxroCTG)k?POtx~f28Ec=3(pU)6dbg zs$J%_TAhCiri+eqD#i&&oF#-6)~dktNE}R1&LAWa*tsk`RLg|;ZL&zcWd>p^5p`7? ziR5lXIrva;rM+9ZQz`&TvcWcwAgrPdWazL4CYq}ZvGdOr3lx}1*#McVD+PI~AV7dL z4C2-k{2(+dQGv%zLrW5wcv2GcEXNkZR-_|fqje0xl|*POqV*LeciD>l3H-+(0m@VQwFyHW&D-&|}E{gi>BH>cDu#5k}2-(>3g zn8`EcSf@GLeCMwjRnJqhzOB(i4iRCtS8IANUMn{rSUvjF0u`%{6VMeiNgJeD@mnik zy-<{!N0ZJn{Ln-gJ7Er=AlML60Ust5ro! zjYwq-5@et(6$peHUa`-Uxsfdg#J$=mw=y&`QC$$uBogr25`4~vOuaQ7UvQMQe5(M^ zm)B+>X8UDOU%oJn<+39Q2xqtJx42;BVW!W)Qzvg=V5gVlPXPzSz|craZ}e=y#@ElF z1Lsa-m~4J11QSdoay?(=i?<-z?Atk-6R&?~Z#~2+z9U48kkJ(Ep=W`(pM~G09tvV) zh1zPy)9NWkrWbd5|pK(OmEAPddH8S+h_HS8bE(|FeY;(0Z&q6E<` zq3C9w-b_fYJWR*Hqg1Gtio+wMM*)uemaoC&jVn~N1K>N+MZg2=9`^jDD@JP!0DzXU zlaA!cSS0%~PMjgZ)Fu`PB{J5y#(0$}Z6p_{&^J-wwcgtVKvUFdYiJ`5K-Q|z3keXc z%AQtX$s_oYYJi4aJ6H&`10!*e9t;AcSZmgAO`Xh;6lGy2^Kg^XST3MiY9o15Dk3j6 zZZIaWL0Qxxv4%)8-V<1A1lQiJ%)UQghyDi6BMSGc$xi*_f`2!bVTg6+O|MpBfEfi+I(84(HFLB>8Lk3uMNl!dJ$GJI%j z(=-$vE4hFqgaT+mo<}DZMdNwmRxusw&{WFMl;&wL;R&4Jq=fomiTq-Tsr7iyHT+=lJf*|yOlZ@m8MUT0?88J!YO<fVBp1&8+a)z`4zIqD)|79Gtgzk|{HJK~j{5;i{_!HW29*s+hGK^osx?O^r;u=#rrRlb5rgkMlWHFaYeB&J+s`&bKK$nVpZuGp@+P`K1Z zkPut$W`B_sLU=+I4Ng@QH7IkMaY7y@aQ}DuIVo1`j2M!dEJ0K}_Fm|x+T=l9CuJD6 zs?ewe2$BsvCo9~qCX`&PRyl6RXrL_(%95@O zZ%@igvDdw7u^~1&9<4OcXFDk`zeX+3Y$2kjxRZ2QVUjEeSAqvsVLdrm3I(juJmFf~ zpJ`z~Kb!fTL!Eu1gX0J#fiHaa! zN;F8K`;rND8!Pj%k=L|zvL$C$S+ER?4rN5EdM-*{B_IBrLS`%KFcu*YZg%qn(=E`>Adxz=1p@?B zG!p^+QRXdRU>`NbQxGh*o9-i}c*QaP`nW;UPR~0#JJvfP);k5CVwODBqSLoJ`#TGH zE)Yy)9XAwmNvO4moZwRdh&&jx_U8e#5T=AzQ<8PlIwPcK^p3oBLIh`Zn-Nfc}XbwQbxEm!%!6CrV;bh8(ma$68Y6 zUfpeYZuhNAxUNoR%T*NIN47b!$M7~;=`IGS_|cOTEcek2`|-SCw1`3)nFxS*0SR*e zYHb8K58_gen{$EB4t2ry(cFBt|F>PLluu zB#k1hScU^3h`bC8T#cPvh+nG%y%x*ejL^WPGMFTzvoe$U)}8lp&G)y#%PPn>D3C{) z93-)QAA8*;brdkqxGU4!3G_la{y&QNgNip(MaZIY2NlI(s!%>wL$kh8T-98x$tAk$W=5G%JfXQ29J~sA{0gdZz!^^X0)| zu2WcUsw=#*AvGoJrIn)eN$Z#FxYeY`ha9uocHS_xJ(*R58e!*rSQ(Q&Nt)hJGvr`b zofLN4EZ(?aSldRL_`5*2pvB7SrTd2XXj3@YIIv6}z1E$WoUF|C7cY!I?Hk<}j)Yc} zJA572Efxe8kwl{c$&}+Pz9tvPq_^PLL{B7EhQj4Rq#{JeTSk*J<|K2us!*-6OB(L^ zfzS?Z9O8{4w1R_$cNQ$65)>h4iG^JUgI*_ z38HBTLO~+25;Eq}q@F%^u#izi#SEavERR4#9Zc0`B!O%Hq#{KhrOSMYv zxUDk<&gjD7u%ek4X~F+Hd55&&aiVk2&64MfM;Y1naEb#!p9-G(l{EePujOFL))!ID z&+nj1CK8|9Ju11Ow^|Z(YM>^?vgVY3;;*X0s;{@ssCe4W%%h?0S`|VXtB8b1BUzWo zcHUQ%7Gi*(HU#68?WLeTj8M^yUoRuwNf2&Q?rp%at7yD>G>miaQlRk(dnz^DAVDjK z4_i4RARk$15&~;fOCmZmLDrsUR5Z^qf4!&vuu-kZf`!E8nLFIxGjqIiju-!MfP?D zz?EX*@_9ZKp1lfeBFUR*r~h9k-vQTD67@Ux=B5%L^w2{OJs@D{p(6-JL_kDLXaZ6~ z6I2#&LIMFnQCUSr4Tu`Bv91Lb-GHcI#g26YHZ1GLj&amVBkQ8A$_3g**lw z4I4#c`~ob-QtjobE~L$#_fhD6-?%B@5IAn8RWT3EWb=<3B78Q@2dMyo5}>}S0_qV0Z%rjp6qZ~*brm2DFVzigtI`cU zAp;L6b&Z>@?rs7+-6s~EqNmtKpA3+F%+wN+rkK54fa;zX0E-(|D zIna21$H!;x2*O`6O>92gxauwgZ=yW%aORE^I2=i{+p)NFPTRiQhl4vUS0m?XJp-hZ z>D5qm(}!Wq8O2VTzm_>i<&U=afZ6MJPRlOoj=aon6nCiU2L7^b$e~PnKgp43YM++E z71=idgY637v^DIP()o0|pwA2F@*N+&z}BL}f0>{T0~O069OO7-RBPxj(?JgO#TcD= zX3?@Cl-kNWWASD)n0D#vaxe{ERII&b&6 z);dBb?|{cyw+X!eSpa=9vEu0}8;4OqWDZ^!c-1=e>OtkEp;tC)Q%~!LmQA1K_TVFQ z>VRHEoK>3ojJO?p#z9HbscxPxKGt^GwD3iChyRiUMtvPvRwrl-Yn#jeETj6q=%ML_M{-PdQVI*r$7C zLk(z2BjK%Jrd6hp6RC#7AHRp$>)$kv%7puYKC;g%(jjy$*95BWbNUGm18;ma)(Lwm zvMolNtVxnl0n0LbbiB$O@FS;Fa8N@MpuXI;1b?g3UZyT|LpLN5P_TeTXv#qFCuA=h ztz@bjgSqD3_yw?rTPSn7_FQ0p*)ocfk+quhnGU4mpnx8#=|c*Yx)(QT@zWr zP{P_MgKhzOop(J|`Z<&`HP)s+Jks70|JWM9*^ zw5}qkUhq$ogxU;FU~i3wfkaBw>+_2j3m?4+?lH{WDh_Ng=+;!U0J?Sli~7-9c0s5P zm9Lw-;<`s5A}7G3yQpK#|V|*)*RiXJ+vxax4!}yjv+bKG@4pO=iXY{IQ_&^y8Ke>thPEEE3N(S zI<%h7caYzWV(u$l6*ne`e8b&k<8f#E)v>veC%!BM4vg09_L^C`RV|%ev5RzmGK%xq zWVd7gqgBnTqa*g`1kLJbU#TsnwUS`Eb-jj`59r1FHeJ&5iPGTtv5 zchF!oIAQ@5#tFTNTEiaU{VK#1fGRbi)6{B^i-d5d>2RjcfJw z35A1z20@AHt&lsYk9CtofJ%pWOAxh4#|`wj+^v!RRFKjy9Z^_q<`_~OZ@p^4~Pbg&Uw$GboF#E1kZQn z4Zv`aTe2fJk^=RsgaCbaTc*3`V1I97*N6GLKpdj4JwjE}W;><5G8gB;a~$pGp5!3E zdgW){R6*IH-R%7bTXS(|6Q=hw7~O|?^VFlW)trwVUV8o2@1$svxr@!I!v+qI50t|&O3c=;12hy%=3s^8Xq0`xH- z7Gy!k;zA;QIbvG?T-50vfcH8!Rd~<^H_bxZ9o9Cstm3g8pm5dDBHkr z0En~`2zyJ3ZbrrmP}0zEZB|$LOOCkbDv{rzu0aDd#n*cTC79PZ^ORQ5yhFx|#x+s3 zB>*0m__jSyAr~DtI1y=KWErEIa>-Kb)Qfj|YqEXsa)7OPq)&ac8KKOC)%!=5-LyPs z-}tJV6bu^aRy^G~wOuB2TEoGZg2#&!@VCcs=#@$l}Y z{TAdVpcca3w8p~SevPQuIh6T3uJ1Wbbkp6Z?7-XIxBfh)bHsf1lZUpmJYu`7Iz*c) z^<3h}>NXuK^|<3N&Ts2@c3S5m6y23PGj7_w)w9!*K}>1VJ`{)@Ed#kEPt;*s~)solUHIL^u|HPVyF|+sQBv6U7p8#cl|P9Pn6xk zhYV}upI+k=0S7NqaHxubezc_2lsZu98K1<4hZzXODRkBOr6OYWAT+=Oc#z~<&54K3 zj-*n9sQ|B<2Y`h)fB$b$CrB-Pea;kk?9jUIcq4fR%%CG^76El9DnkLU!UXi=q1tNT zP99D-K+6bdl%dp%)K`H(Ur;c^Me74@6gfyZ>8gVj^c^K`SWs(%BpOlWEJX{H} zR*{SkehMi9X)+ELvPonlz&sWKSmQw<%$tj&CBxiCv|Xcyn~VeYq|u|B6~L69Z7icx z6w9cpA`%lOF*V#z-1WV!ZSm~)0H`s*@Td@_2ZZXHr=4>uc^pvvgz)-l4M#x0JwJZ? zg$VcOfwrStim><|0b!Vn*0b&ewDxd|Z~&)> zEO1;pLl}HP#7W~cWx=RB?g5o3%yApgSl2)!5A6q_3>NDIL~@L$6_N*MAfO6xIYH7! zk=V$?$#@H|R6qHENfOCOZUs;tQILg&r$MrKg8Suu?g}x8CCI#R41EITO5o54s;ppz zQSeQkw8aLJ2?)&zt>lbNoxG5lHVRPWT*)?j;C-S)+RB@cf+h8Gyl^6Wo6P8hBi}7c4w7ux6W0&|50}9eQ9C|2A(VXF$7Rxy8Ddfu$_+$K4B?89K6#_)NCGi> zDOqun!mGeMouGnOE65T~R6;HBr;|)@~#MZ1)Wl4Hi!WL`k zNK})+25J!u(z$k@-Pdxm+gl7)-I0iVdYee1|E1`xo7caz?M}=9MObma4l^UQF+F!#~F+Sh{hM5Z*T)p zGvN9HuoU4gtXXXZ2~sIZmPA^Ni!8&J5f4#Ukw(};#T1e%j57gBUs5WQUL?@G3iJq0Paxt5=3c@ACAE* z>_JnbXsfkQ2E(Hjc#GO~`z~*c)F!U(7QMVmQdR+;tzJtq>q;_$&DRtRm{EeqEDx9V zuajITm+th`V~9#CNW=sl29Jj&Jfm>_UcvZfsbuY8=4()T*Z9 z0c5TMB<4aFnI3yLoA7Xm~g*Ch;_T^fwP^w2yGZxLsChol1Bd|O?*C-Rml zq$S67?nOW;cOlxiqRNa}bdy=ECQOwMQ=+Rg}h$5aU(a2HoLd zO`2rt9K*Zup6%VUGZSYE7th|5eC=3Dve2mOnIB=I3Ynmx3|8H6RgD7-c=^};GlWgn zu(VN}1dt>j6!?gf@(3+HLXN&In@H4Jaz2KyD`rD#tS+QSnu zN`$BmI<#M`Rzl4N`1&|_Np#(9`Ow6sojQ@0p? zlCv3SVrH+AdPzuNyZRge7VeShUcW2v8hFSH$FCCA%?M(~7I|y)mT8xMsZ%baC?Mv! z4-ReCy>8acpUz#_Oj|Vq5y+O7>!U9kZHPU3`C8F#t#^Cv=zAs`QA;B>+?ifk2o9h)dGyu`6#O zip6vLv~aVtfT}d5i3%!O&%Der2<-;gh86+l6cE&?76>_7kQ6~7vXECG?Wx>7?tx_c z5@>4cL-SA2s0_N1BR4COeh+{Uyo^c2Ozt8*BCmgrXmD3iOU=yv!fr1-HqDZ;I7zK1 zn?hkl9E31M1KE3$SSB(qj!}Vsxe2CmJmdl#s3dTL04)WlvN4zl#j`k|JCwlDL{JkV zjSZpOYKk>bY)D4}N5z$mGHd-Lf^km_X{5x3M0DgDlUwMpECPTm_!a{kLHJ!}*Dek4 zFBI}0nWqsf(rm3VG_1!`ZO5vZW1AhujysLra~Yce=^AeLU8bxF_qdX=>i&;hl)EBR$JH43E z^=gnb5A|6bbA8%dScC~IT3r3tH&PJ0ti8AI0ifOId}wBJTgl|b**b= z`=G&(&~7AaMb0C65+%uw)B-` zf~6vo+5>0_ak>yak}lb~4^G{>gM#iUGOMW9f=NJ5H3 zTUqHHtVPvP9GqSbcjHkpv-9&1%L}$;UJiiE~8Cf+s3#I6=?o0nhA97jkel zks4yDaV>qSM5@s?LqdP49{5+ez)GxX*9g3WKb5}Goz{R`?`qWS|W;JfPlZMAO05$0lI8)t|M@b`j6on-cqK9_RAprM?=KxVy5m_FFAi^}s z8~3vY;E|_{U9Oh#C~`*D$8JQHLKx8XWYLX#J)E8JH5?0i$%|@64vVYr2q>XCz$`l~e&3ap1IvEeyZiWS z@0klOE_nIjOI?<`3(aR{I|3UtdN?_oAgS9x(+ z@qx0HbC!?9At(VTwGsYe+}7D|-+uKt#9w5W9{MbD(fq7;>(+e`8f;UZl&Vt1E!rY> zdEtBrYpzwl2@uyJVUu~a$xSvFAcK~*>?yU`RB^=|;voCIun|ak?`7UKq%PrKl>kHu zd-8_h1Nge5q9yi{b9-U$g~%Vfar7MVAZH@UfokS*-)BLi@+8jaV=a>@i8=uHK$7Jm zm=T9a@e>o_hgja&ZkER1*ANu*BrPT|)3$*PydrZ%Emf31*&pf*iZw4NGhR7BPF-0B z+PB*L)(7hx*<$ZSWVYE}xT2`vd1dweEa97Rhm9k3kBF~AU(e8TDlr(=T4elHA0hne zM6@x4SZ+A96RBS79?1%laRbJ~@xX`37ekN&)Jp9vo*Ni0tg$^s8V7+%bZj!i0f}0? zK>eoKhQm5`mdcjP3<8)B0ex5@zz?J9fO;wopdi>DrECpGJLD{Yqo5Gz2Ge!4f~^_s z2B`p1wsbU<$AX2*X!n6@J>C*A|^wQhzy zK6kdywxC@-YrRo8U8nCkAh~tyRp3x{wj0o@C$@E?RBnJ1j6&{F4f|HwArVM(kWC@b z*XkPvDf%FAPp~X3f4xoVw4fF8t`D4DPIO{)r0Fe9GN80|Pc+0j8cd&J#fwx~hLrXK zjb{7!ee+nraf1#=e1`*XYJ7Z^vUl=e+Tz72$1~OU9Nu;PoU749zyR3C&KrGAf{fah z+!mG_gU!#%0lP5hm2pj!`RYRoH7$w(#f369--pHqQCa(_tF8m$!Z6&!mJ(%tCN2rjjOw)iVl!=D z-d?+oU#aVCrmg?ckhy zn8}#bqtSfY<@%;UX=5J^q-hQ`T@|RGzVtvM>4#KabcoMPArf^gHK_>Xghl$!9E43E z4wL4^1G;f^+%HL9I7yql*r~SvD`HG`7~hBDFR7C0r#USg1EjBqt`1ZJ;0E)QTpck` zBKAu zY|)w<*THjrQ}JlF1GQQSD(5MJT~=Ak8@J^qUq5-EVD8N`gbH2o@OL?=Pwfxg~JRzlGgB=CbDHLkG~_!VwrY01Gua89G|kP$Yh3IRO{YFF)=GU zS}qG3cicO6amjtIVQ59_D>T@w(ed&)Rji$+o+#3>~3Um8!zshC7788k%DtQs!*5irk>{zUJ7NZb$D>l=&YV zFy|n2-!M7p1+i|}{AX+hR%#{#U-77UXZ7*w$IF1Sm2n!!BboFZWH()YKoCaxJ6ShB ziqaM`fde^oN46=xIVeon?L*o@VywQ>pSY()yy1$N$z&zq_t{v|_<3&L!SdA- zJ_|s~Y@HBVg8Eh}wT5Y{7HpjXAS`qN3{sSX5r{=AJxp~KwzB_8Tlmx+1!{zW4r|PI zmq5nOP;Tq3)1FCb5R+WtYUxj+pgjL-d6W(`-AChP2KmI`S86+TSwj&Ws%8RmTG2rq zDtA|aTc#)TtQtX*x-k1HC4D?X!cW!eBRz2p8fXdRLR5&m7r?F4QLvBENV=kv)~!FN za~Tl5RXEmAgxixG=QF!J0Br=Q4VG%*dC9E)GYpALM=OmD$hed_p~IVWEt{h1Wq=b_ z1nJjJ52L76u}-P$(DWsQml^h_&n=k|f|-%|XBp@NNz*Ia zFj0;XW+8N@RL4e5%W<kb=Np%(OmRH=-QGdZTB>fNYee3IZ~BaCk?#@L)Ln$g|L53(lUs1wOP%Gr*m(y zjdp1BREwJmkJUUE?XA+P*u|H%LltpmZM}0YLZ1zFh6kaN5rD|pjx$GQx!o@a6LA|n z!m%8_iIAIg*jJ+&b!{W?N3;7IeBhO&L3f|`x3TaPrf}*t@-D@2NN#bGPxa;pMUc3 zp@bLr=H9NH^~b#5dJ;9R-rQJM^dhY7;CtIgDcIRBFC>@j6A4e|&E0kCh3Ac8TaU_Oe z4CAoeD-{6TcRKdN0SMnQjA6=mJXu}~LcYl%VOaYIy54s@DNFx5o|JF!o&R~t#?$d7$#si8N;(Mp2_Ea z7>{v^| zG6wdgMo!NuD1>PM)#XySDYic4936o|1YGKE+{U=ROVvbQ!+A3(lIQ?a9(+-V3MxFux{GINsKw0 zFkFl&h++C9Uhp?|`o{A&=1k&@{DKUOXHsWDMt;U59>B14QCTL2ag&WyvnVIC9K%;J zY@Jt@pM&8E4D04+@=Gv(FxE4`x->IA8^bINQ;Xx{LNM$Hu;AzgKj5?dfV*FXR_zFhUCR1^j}=0Q~*Vlcj+6WZN>Z zM)q>^_VRLecfp$fpY-28{Dee@^COLl3gz{l0Kyu92cCo|n;vO)hz|4)X0IR9(# zLwzoj_5IU!jL^(1epy~AW3o}x3-b!giWwyWetIUu`Trcm|Kox`sP%&$PH~x8nZ=m} zSXBwwD9b5WfOU64Mowu?VF4qj;J@nO|6#EobeM#Hk82F*bbJN6^IZV#BIY{#;~YSA zupg+D&DaxcgY5TlFrA!$xncoGG=Kc}xW_Q|{M+?^yTB{4Teu`=0b`OJ5*N=%FDu4; zqLT@kyx;)^XaZee2+V*LU;=004yFQMzyV<(3d{iUU=BzH=^z{AgJMt)DuEExfaRbG z{0ugLEuaH*f<0g#I0Sk@A2V;dEr1H3GN=-&hL%ICp$$+Q)Cv6p9fta#A?Olx6N|ff0=%yk6E$j-j;UG8~j)&*L3*aJn2`t8rk7|M2;a%`SxDP%HUxStKGx#m`E3Ago$64T< zaco=&ZU!zHmxU|FRpIJ!YjN$kJ-8#d)3_@*CGI)y142M_5C-Cm_#%wW0}TAje{DOHC||vHElG5G*dN~ zXs*@#Rr8|ea~hduOADd#X;rk1w8OL;w6|J1T5ei1wDPqYw7Rs0w8piG+P2zZ+8Nqn z?XB7;wD0TSbgXnjbkcRIbvkrT>O9mX=-TN{)6LaguDe_Jg04zWThBu;L9aq@quwz+ zr9MvIR)3m)p8iVxefrn+KN^@C1Q}!+)EVqCxNPvAZcOLUGwJp8z4UAJkA@7xFvEq0 zs|*hr-Zesu9E@ffl^bm~I%)LWSl8IsINiA3c%Sht6WGMTB+g{1$ySqdCT~s6Oe0JM zrt3{lm_9etH{+P)nl+mpH+y2PV;*3hW8Q53oB30Q9wUg6$7o>;FjN*M7LgWZ7Ht+6 zEIwJ)2?4xo~%4p2kW+* zwp)~&$nA*RD|ZL?boY(!SEr~?37@iTO3##+9*!QF9-BQzJas%{JZnAsJ->KO^(yw- zv+ZUVtn>8E6s64{Q${<5+PrINLdogY1KHgLVbI2xbKr2OkK2AL0}8 zQ-~rI7a9>-A9^87J8X8?hOm3#mf;J+cZRDXJR_DyC?fHZ(UGenZ%i|tmOia>nks5) z)K5_Z(bVW!(Ho-2raMe8o_-_-j){s{6LTllCbj@OnHkKOHe=08S7$!X^3PhGHNL=q!I}k6vIDc%W`pfp)>df`LM_!ivI60!KlOKw0Ed^mCD_ zIJ$Uy2~;w#q^DFDn@pW6W0pzEMi&Jv+PG+yPa z$<7*$n&O%pwZ64mq=+;}dZBJg-TJz(^%?bNma~?xUH-Wtz2QuwTVqS(Un{a!Tv+L~ za&r@*si5ils=!t9)mp2UtiHb{X3fE7Mst1ho1f?ZJhawh?Ur?vb!F?6Ez?_i)?2S{ zTK{=N_J(U4gE#JNHEFGDeZMJV)8);a&3m?(ZdtzNqbx@@(iYKnu-&$O?N-9pMOz`=<%oLlcb4sZvMXiR@b1vvJ$sz@wC&a3 zySy88mvuk=h4;(#ebM{+e`Wu=XTQz<)&n{R>JLH(7avp|%08s*nbULWaMa=cBfdut z9CbOmqt~K$<1xKsE00r-i;w^H+mhejDg=t>eGB^T_s{RYeIn_^)q$A<7fwc>96S|% z>cr`w)4vV+5B3iE3>`khK6B`-*V%*TJkK3C?|J^f1+NPSFHXJKGweNl6+-v{c z{`b8~FXge((9v^av&L@UPrv`{LCJ&955}tvQ#!|Y_-!dtNi%pG+GZ|hkEEkq#0ENL|_!Vbl`NV~We=m;R z`CI-li7cPuQdqpe6`NFhyRzI}-QArr4(F1^1*QB7=YkTezlHpVoKS2A;*(JR&-?f4-aCLKGx&9*=E9i&4qfZR>HW~a< zeki{*Gr*nYKE;{k?L37Q&+_*1aPyhs>CE!AoD*_V~V?vyT^}ed=v6F=XV)?u9NNZLp%N5 T3E!w#F9cAq+W(_R11SFs!fzaM literal 0 HcmV?d00001