From 7a28891db4b5f41f104b83a87c165bb19b02dcfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20G=C3=BCnther?= Date: Sat, 5 Jul 2014 05:51:57 +0000 Subject: [PATCH] Media Kit: Add MP3 audio stream decoder test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - This test currently fails and thus showing that there is something wrong in the Media Kit. - This test was first developed and tested on Haiku R1 Alpha 4.1 where every thing was hacked together to make this test succeed, thus showing that the current Media Kit state of affair has some issues and not this test :) - The test comes with documentation (@see mp3_decoder_test.cpp). Signed-off-by: Colin Günther --- src/tests/kits/media/Jamfile | 1 + .../AVCodecTestMp3AudioStreamRaw | Bin 0 -> 103680 bytes src/tests/kits/media/mp3_decoder_test/Jamfile | 17 ++ .../mp3_decoder_test/mp3_decoder_test.cpp | 279 ++++++++++++++++++ 4 files changed, 297 insertions(+) create mode 100644 src/tests/kits/media/mp3_decoder_test/AVCodecTestMp3AudioStreamRaw create mode 100644 src/tests/kits/media/mp3_decoder_test/Jamfile create mode 100644 src/tests/kits/media/mp3_decoder_test/mp3_decoder_test.cpp diff --git a/src/tests/kits/media/Jamfile b/src/tests/kits/media/Jamfile index 72923007d5..41c4ae219e 100644 --- a/src/tests/kits/media/Jamfile +++ b/src/tests/kits/media/Jamfile @@ -19,6 +19,7 @@ SimpleTest mediaDescriptions : SubInclude HAIKU_TOP src tests kits media media_decoder ; SubInclude HAIKU_TOP src tests kits media mpeg2_decoder_test ; +SubInclude HAIKU_TOP src tests kits media mp3_decoder_test ; SubInclude HAIKU_TOP src tests kits media notificationtest ; SubInclude HAIKU_TOP src tests kits media nodetest ; SubInclude HAIKU_TOP src tests kits media playwav ; diff --git a/src/tests/kits/media/mp3_decoder_test/AVCodecTestMp3AudioStreamRaw b/src/tests/kits/media/mp3_decoder_test/AVCodecTestMp3AudioStreamRaw new file mode 100644 index 0000000000000000000000000000000000000000..3dce1ed4837b196b7b10d6aaa9da3c82ecafbcbc GIT binary patch literal 103680 zcmZU52T)V_9POqS2+x@bQX{9C?vNN_zGj<4w(262u8bz5-M>TXRH{f^Y}VUT(s;p|^YUP!}3g2U*Ie>iSCJhU`ot+=o=~`_$dSgVJUA z+)%{S@HCWA&qn1bK-j>W<{N|@H@maEVDS9+afcSc#@FX(ovefmu}k%J%7O|JQkEc% z<&Fr(Bx2gKfZgWP4jDHG`*XG53*)t>+&@`na%1_6#OdEgGn?Pa+=tiS`oU1~dHX=c z9z9oMD`f6oCV1)8Q;?%&xvgF^OXIf!r8#;2R;*IqS`Wygc>Ct_OBlqo!Zn@x1QJ>} zHpQEJi(^8CP_Sy~X~fryvJiySxTJ7Xq0WdphvKMS!RdFL}RMBl7 zhN_=E9zLp-CMODx=67lnO7pha;{PcPut4$I|vP@?;QD(O1BT2AIYi){g)+NkS ziI1@%`}ZLqa|geUM_Ih?Q%)d_?!s<;;I-QQ80bgqae`B2D2>HeR1N+x!X%9Hz zDZ%L2>aTx^4@Oh$TbF8Gs8EInqJ4_o^<2;Ym8~cUp?^Nh`gQsozg4uGtqU`%_|=-B zjyOMOia>^d0))Aj#>;@(ia0hPQX*e6YcxqrfA@ll^{yWv^7vazi$g z)M5|!x?=EAE!zR#1TQ=*BC$7P=Ia{WQsYCC()FdSql$NV(!}vWEsnBjykn(aErkLJ*wpJk719;P@;+=CR{k8ei2PEzX^(*`Jb;YugoP7RGnZo#xIaPfd z97br~JtjHY+FEf$4Z2Y5kY*8P$Xmn*>WeBX$~a$`v@^EAS@(|Dc*j=>Y$Hep222L-jzS%O?A*lyHVS`Q0ODp&{{( z%TI%xm3vYr`qKxEBiXff$QNd37yt07P2~2uM_?*O32G~q*O+9ten9vZob1_tyE}8| z2P1Nejqy8K{QI%3V`l~}BXR{Y0tJ>_sTO<#=PVw4t339*d%bI&R|g2JrG>a{j_ zK>bKo{Jhi|E=o{XX4Z$>2!?q|;-RWTRKD>D)co?-$5s>XFJf(%VM~#%n_{`?EJmH` zsM|yQDQizg27jfsru#&ZZow5fYm=r<%jzYA37VH^AvigP^v!NFewh6Ozp%&xtxHmhP^)b9!>h6A$rsen2t7x~0E9ZTjmruBD>>)o$&Kf0)vA zf0MqwS1`!GpiMF(PtL->5ApQ_Vp~x&y31p8>8U!#R-)gUGh5xHuK+Aa*K@VBpkRTO4fje4^QVtkS$iv>N^OqQR9MhZ_bY zwYHc##AH+nM#U~b*X5BCVe25F%P08KWa4mr`Y=9)<7$BT>5Yhh=CpHChHsbVRG=7$ zMQL*bg^9T4SU0O0Onj=*x(roRbq-xt!>!l4jD+-OfN^@jyM8*Qjx1(1dolf@)oQt4 zM`!O!kw(0p^R7L*A${hmd;L|}^1eoIkd?}$9H&KTlrqm{WwDRHSe$$|5QbYNe!Uj? zS@T8P`>L8(k%C+#^hjRhmbO?gFPi;%4h5c_k}zJ%j-`BK9$Lk?E!ZdD@SK~A!5R>u zY9dk{cm5oVVgxE5)5Z(Po~^no!)bMov&sp=9tici+(!v2ihu5*PPr^yq*>zK$*y%S zDiLGE36c!9UG5w{=tlR?Wst@F3cX27Y$m^D>`j9@SCC~b295z6=rH-Jb&l|(obk7Q z9myBS22im7@K4!w06#|rgsM?U<&q;9%hR9%rD)}f3_!%_4U}CP1%S{V@E6GLy2@7z z%~@my^#RA@vy_qgN2)CfT-+u021OC=2g{qIS$u1IuBzI_Yh2p9BljJK=9>;z;hl^f zhh&;KG85EKu&J0zwGdYQ{D!1v0A~WX@m$=+s*c+i7Rx_{p!{L|*3ofkqLKf4u&qWm zl$_Z5@-BsIZ$(UEWs_mdZrdU}(Ia2T%9ybn;Ua{=H^WlrZ3w;)B|}O4V3=1&B#(e4 zkq%==)mkv-OTr#qNaA|Q9@M}`=i789=BN4m@ZXv45ZBAM12D` za6LG_kX^0e5I282RT=3s-@YFMrP@?YQ)3TQVFT%4CKTh4@QWfOLCxbiJFYy={7q^* zM#Fi)NKn8}$6M2$wxnkeHjtDiFT%uN;GKqlOg%}tYuexYG>Tx1j{>?xCFMj@JAHV>iYGesE0Qqbm zS!D{~oB>Njr`M@B7pVXah(t*x=}1M8qyl|ryMcdG=lJrLJmJ5Rd2ld3TGY8?GwuQzPY zSK`oJI-pZhXZ^Gz%BQP1Dp>;~uJtKH0%wF-8wmX)zDsvh&C3=&2FZx-rf2Lct(*j#BEqUK;9AKT#EkgWyw^Mr?wx%3+h@6R=K2^o*&{G_Hb%l; zoF{8=!-hKFc<1A+oN>SGF=n+_kI5FFCjM;2qqT&7mjPR7D;-T4J6M&;GAKgn6&t1T z82O#nItDx}2W4$o4mXnP=Jm8+&yf<`Y7r!FQHzK`cH2;eqAc6gzzkd4XpZEbl zQeB!Vwn4~H1~NR2f+|f!9U+H)(8YM7dLX3$~k{I&Yeh(?hJBTsN%6@u|n}*a-+<1N7zl36=tyEO3e5P4;^>v-)a$Z|%bI&qQ^u*NJDCGK6 zq3j&W%<~iA=wlh|ik_N>jov;TxeKdG(_u0%KXCTy;`d7(4rWJ#LT77{BCY1yWn{Oq zdT#~nh-C0(hr|`OYZb+&uAI=(fGrAcn3pr(kBxhC_tX}<)**7vta&uCe61ipNFDDX zG1wjC6ewo$FSug5(K)RJG!ua}aj9QSmOGwJ+*oejVD)N&@%;V74CO!GYUb>o+p2*= z2%;SQ+14|aSwr)51-CB5_T>-P)IP{u^pzAlJy4Qqs)J2Q@-$+;OKkg; zj!SZ&(-+@6Vx~5+gv^iu6Wz*`c9Ao8SK_3ExM9@RrMo8>?)}Lal*0nyuc@;$6?!|k zkl87wsq0LgNef?>A!A>g=fqvdwK7Ll5b{CIqiX&1T;7hVJV%dyh663S13K2f(iZ39CkO zn2HJPDsDE>qp+$(Ami{@1ZmdKCMj%ZPGwCb5FV(60N{&*S^aU6*gJmV}H8BHI2!YYwOH zrqMMsC%FABW7`Yh~bE^X$@-KB#f z{qJAG-^Q}EF(|8pvPLXNwJ>S`(W)P!J99a;0CndDlhFps<>bq>Y7JR^;!x1T#ZYmr z`!IC9)a2{z;}|W^mu>x)mR7Bv>b8O*GsaT)A83&G-F+UZUpsXL3~Z zpoUv=WAZ#?Ru2Xue0Uu?S8qJvPPyh&2j87RZ2RmZOKdNzdhCMeH2|e6Iyk;P_h$di zgrMcx8A|)dc4hkdMo_(tV!!Mm1;Zi$kRek=g%kNDzz^3%|WD=@6g-7ZebA5 zjzhIcBAPW#iNUdjt9UsvbL`gYnv6hrv0VDPjlx==P1TPdiGRj3LIbvd8#*ilzVhK( z`^+1t8?j*$zpL}%;su*AE_;bA^t@GtL0Ag69=y$j508Q#>6c0P-}pJ=AJ9Mg9{?yv zFX|C~2sVKfAbH^c^9%&8z2;HidffmdFSmCAzh=rERNX`=Ele~G;zJl{Hq3>DLb#Ka zfCm62Alm~CfT$qYOniy1)Na8fS)Q740pY;Hh0xkC(Frp6N@cW!J?({A;wP87)$iZt z7*Tjskf^Oz$0%Q9vSOO;xwy1=>ws9xDV_EP@0Dbz;xa3A#Yn|j$y}eN&9JLV43u9k z64@HmPDYBR#$)n2wDwJ}=WkxVcD3x8Y@=uF&Xtgbfyt;^oBVpaZojZ!Jd<|O({q5( z;?irvrOxbryXRZ5f(2P@@68*(yn;L-L}ifft<;OKDVsEwb89vFW_4RlV(LNH4bSje166Eq@UK6h^+{Eb&s zu@SRi)M+x{N*##9e+ts-_zYDx>t+=lXC3$MPi;IBGEJR+VbC&^>YxAiKio&^)kv@Q#;H_NLbfQVYRXan40z}x z3^jD_H;f*!Pq_?<^CQ_uI6rM+yJ^&ncv~5rTF!Z;SF0Yb08@e0@CmEJ8>9@48I0Hk z25TTt0tKd&wp{nc zF9N3sHd0|GhiiRyg?sa1OS3d$=#R1BH;~v9()aWO(37T@V!d~tm&HpDMeH%z8xb2r zPs{tzXGB>wBGk+!!TQTKsLivg?EA=wlf2H7tLNsJqYWv_}cGhOFmfC5}7qjkxy z5V-ql@Ypx7WF91;p_mklCQ+#I?%@x0Uj>iMdAl;PZh?z>6ibj)$E~k@N!4B*u<{e6 zJ@kD~m(AU;iE%YgopNw;g6Pv_>7Y|TevL39sEFQ|y&_>aUj@ldnEYG6Ee(3anmjM>2+B@4=fr8qu$k-{(*e#{d8(!CS)~Pp)VVjR+Y>$GW!OqsF{~CQ` zRUA%WsP9Z>sZQ74^KGnqM+~6C9{FgMyEQB}aoyb3uiLnKb1P;3IrB3kI&$Z=2Q{z4 zMA=6)$#;&4okl6>@NcYiC^={&IW5E=`%@ov<~R@qsj-6x*`RgRG4-b5NQDvI?2Yyn zG}9BDbbf5V)ZJ3Ni`g zVj}+0WM-V!gs-kU$kY1Om)~L{>>K}}JSO>4 z-NjvX==mNoaM!?8se}d$WZF=-NE}}Yj^4g6^)k&^n<(ov*GEM z*76U`ZhayFTrr6@K`sFVvsv z^Ql!}rj?`Nt~sA$^84CN=QV85KIvb zrw&Gt6>+t6pBo0tVG5Aujt{WnHSWLh6JGMSfBxD3C<6HTkAH4_4QSVqenpJWmdj5>>}z#ANFHKppiyBfm|f^TooY3}5UDuz=z(Ck{5 zE3#_yz)+wg5{B{GTN!Nl*WHG{PH7pQJs45O&Fc#~9yrXoTehP0aRcCuklgdXa+=)+ zVsZGfZ7Xvf%j7|^>{R*UIpcBB+=QEkEtG&x%XLX!5^hKn1;fCo7+B#Xn<~LBrZ6Jk z)|>9}++O;I3L*Yt%M;CB8|l>9oK3dq!fYjYY<-d=5^*OJy>{gAR&w2P#-9rr7wyN;3}P z*$eM~c_lh`sAvNTXk}_>kmqpy845b0Z(o=tU%ZJZNu1qd!{l7j;Wj*k&>9cN2rqcg z!;Jp9!`uDqHVPEIjQ&@U6mC9@U1*{5s}U=dct{whOGs0u*^&4ufG@%nEKOeFZfA9!~QL9VWx3iXu4w)Z0&;qn4P%1tiy zTg2$aJ=#-WgtAD6I?h8x!cLE@pH&f37}{btV_AW8s%~^uCDz95!5VLRC`YMS6zWrX zQCB+TB9YKRl1y5)_+YH5Y`l!2WUT4Qw8YB_BTy0p@D!TC+EK<5FfftqUf)D4Qqg;E znC(nzUAjL1Rj-gI6+##ZZSp_dxjLy5yfN^rjM90hv{@u*(CTx`+rY1Pu#%SR5gYNF zk*s>Rw9}p!PoK&-%87UW>iT@R<(E+4{p@Dhp_MAmFWy_!Y6)wE17!_XMm!Re)F={B zn}?c9%%3)D*B)T*X(VQjMp z37>^-56B6cE4hBD`{S+Y%C?b`peKCQhoO|$=%pag=siPY;^ic42-9{2FA+u}1ERQ# z9OSb~Q?38HKI7LU0nUZgDDZ#SpA720-Q{=Y@!$M2Ve?P@`v34lt$uN|y^*jDRL@6q z3t;Z`Gr2c+sZoM1RKhRvT1iD%Oa2)8PTX^72{wqPs{GQop*(7%K(^KNV%NvNAIM2Y zVj##w>!D3&4;OY|o~=^H&3s^dXg?FL!=r<*f&!C2$7P}~?f#m6MkYyTz10|Kct^gWXMOX{C+HPVmpTy&B~{vqoj2?LkSD3BIInJf#qEmlvnZpj@ID^BnF-VQ=T_S03oNYySCe98 zh+}u+?u;i!>fK|>h^~Xv)Z?`l(n=fbbpsG0HP6snT1nOp_O)`!+fs(8X!b)%1%y3Xc*bb`_+1h3{G)_P=f(#~0d z#14E@iTR%6ozLA}P75Dz#sn;k;Pcu{!yjG5t<$;hMXh9)2-sYFQA2d5u-TJ0W89bN z13%gF55`O4t^;7{PF|VZXm74(K(#+?`Zr4%y^7=;6zh}Fn}0`pVv=^Qe7JVX8OW4{ zq(V2V>BhRJ8(&#;v)ck0iniP-d}QXED29tSx?+DN$q+PXjE~Wqf!3)u?{_)Q>O8F1 zK(VrTQztKZYvw=xj6q$sl*0w^wD}Ce>I?LucY{#GFA(NE?fGfKWRvO_3oPRKt$kff>aiG zBMcE4&>HEYDxx9QD_DHGp-eY?7RD5+h)Ldqb*nuZ8-IL_6y?=V0arRfQ>Aowb&W~r z59HQCufxvjEO<;{2|_~%p^>pbUc~0E#PK942aPtkSww72pjT4OYn||ed^o%a#OS)` zuk5GgoaX#zv?3YM*}jMSE$S@RYWC5FBG=8LUz+(1i4JU^LS>`HafYJlAlt?Y|u{(UK zB+Cqa2I{F_SJ#2pWZ#E}U!PT$doYV^#~=0N1Z*1*8lwa<>b(?fV6+*ONi35=6<7D_ zFdImk3E^O{~SlLspeQqcN{LJ=BxDCItPTy<2NX-r4h z)f{w5cTkHWHvHw+_kp@6PRT~)kgJ>e?9mT(>Ulap$GmCXyXG*v?^~b@6Ba-rbI16> zdB~xo8FCbX0z2w|x@3?1kLyqWbJRcoBY*v0{{svzj)v|)atFk#8Ax7Z>dhmx&_hgc z-Sxn@MQ;K|VSeI%kvv@AMgVLoZOz}C3mpjnmbl;<{CF5;apKWg`XO>+iKj(W z`BCdM_n3U@4&Dj@r({8@oM5#9BVDn;l-dqGdxKqhyV?Xb$?V*V!LBb4Fer=u?nzf^ z)LI0?E6fntJdv*nv}|m-iw-vvqZVCbUA>F;4B0o5U!2OfiD6*E+C0HiRnrqexWLPZ zf+jpR)DM$gb}Q!OT2n}<`$w)F(SSE2Y>&V~8meYCbXji+D~2Cf?@J4sWXj2lkAH2l zp1`GYm*1-%yPq#PY?vde9d$i_eJuj(36>XE$h}l5q`W()CdMxP!116!{V%cvm4SDaLhi+BF}kwC{9 zgCbYex2ue(oQ#PiS9OWndz>%s89bcuOEJO41d|i)%34ciF)*H!$g5>yygrW>fu;}R z^LgLvSN}DdH!9y-zY}9mEK;UJtAfOf(S{s7;7a&eF5)QZLfEz*4Q9Ofj5e8~uc2XU zdu#pc!2P20hLGsg!)_%(5o&G!I!dnq4?Ubwf;GnK{H2e$*!-Z|^^!`%@iIa< zaFogBNaVU@qZgG~t=D&2Nlbfa1=vP2HH%HKCR!)QlSjOlVoTz@7D6N1=QZ#A`$bpm z%ImqempW`VN3WyimtxLRM1keQly=Wd5A13%;#^XRLlsnUZ#nh=k-^W2cSuP1)pq3j zy^@#Jw)W(rf?Av>siQL=tcoKETk)l*n3s0D&`ByYl$9;wChdua{yHPR4#DRo%SsHc z(`&II$WB>m{N^iZUt_0~B@BJ=q$@fZkHu&tFNP}AjH&88D=s$%L84oI` zQV_sdoPPo(Z}yK+=2YJD*z@^^RNd{6#b#EDS{p^BW`?vy$oMLA&glojYC`ovHUi47 zk(->84sneu-FLP=KkNRet>zC0_5?Ah?egT?@jjw4&qdGX3}faq_-Cpc5p$}J#Tr1WhxP?`-iqd%T-ILMdVl>|Y(R{1THKksAKybKoYEAPEqD#bMy_0*>E%{_S zd?tvsKA*cWKl9fj;&1)|;Pe0XKXg_4#m1lh=kNBpp>wAJn0$@Wo4>0Mu3#HFk05m4 zzv`y2N-sLR5O-7PlgobX#L6mLA3vhw5!&7#K(4LAB&{&xIrvdm|+iz%#}N7RC2quScR(l@=Q*GuuD zO+^8fJZ4!{*|hY1tq)p@my_Bk?ijY3G{-RkWVA+vtnr(Jlys0OYjKyKhP9bn85G$k z1VSJBY8S7QFd4rHLE>4l2PGZ3%kmvQI***a_1EIPQ~fG)hgZTnyl#EfK@kgj1)_?- z94-$vutB7BYRRGLE zsg`5EXIl%Qo0~koe{m!{2HZ~;M)r#M3EAa4@E0UqT(Ibq8+Vo_>R;{{V?AAQ!*;fA zbtg`DN7q8YOnmXo2`3`7L!3h?rmO$#Za->j+tds2Vnhtv3oe=LvaM^_j7KmDS9 z`*$PaXMP7B!3u;T1+`Opw6}_)bz*=`AYlGZD*`ISJwV8wXvcibtgVM)1nsi(1%cuE zsUCN>!9iC@E5cqmRKIE(%bLG9F17cZXu#-TVz*6=Cnvf+6Pfu(@NpFeA9hC>S4Ony z0-JoHtnf9lrD^`RzGY(^r>&V&2hl1y&gub!)*54c{lI%VDc8+yWm*kxTUYA;NLc?$Ds-(yr}}ZldZ$^`lfj-ECMCdjLS9t)u@sEw>3a)$f*G&Y z6NSgsim09Lcg}O3;O>1$7=bE^N%62e1DkiG3IF@0jzYt$oRbv`TRJ zH>LJr4RT~LE_BE3ZfWYy0SNVla+?<+(T+=}9dvn%0^d8D>B4<_8LLwmW~l9-EOQ9d z+TEbQU2fH89ODN4g-2UawDg&Oo$pf~&9;`XSLQjbD~@WdgEMjN=24(4YXWC3)9<4z z9PKK|L!r@AdU6nVw1lz{x1u;t3cN1c+9Vo-SYCaLm_V@6yVqa4eKn#)7?4n|J>j}M zJul-K>}B3e-ju-&RMjxOc(!h3FisWI;T$Tb#tG$*2Cd_itL6Y#Vj(ruv@;giRyA!X znQ)2jk}L&0kw5w8uHFCmM;F^{1Juty^$VC@a2!ckLR%3|Wg8GMdR+)>NdwqN`#HV% z8RI)>`2zdx`99POwKgjLurYd^3qTZW>Ar*7l~Y?q!2V&a3m`cau+LGo4kgjidlfR* z)AFCYKg#tiWAy}y_(`RSZJ5U_X?J<%(ba+^ z0Y9Y^FWU`yR~p=3Mb^4x4bDMph)^by2km%m`raM8ygY?JD%LDV4)PW$9za=ILs1RX zai|WB)q|kVSSBaa;H+dX2{XGth!%3UAv@kaV_5GLPqmq?(m*#omIurCnW%%G$nOh-2hJA ztWAva+IoEPl21@jkdupRtT)A8DbI!lfP7s;*uM!6__{A2=7&m=@PawYXZ<&%HMJg~ z*5xvH+x$AZDaThC(V>v5K(JRT-eOM9MEVpFwr##n|0~krRiVlIn9VTwO!VSL{6_A8 zdAUJRig{sZE5)9HQ~~b@wp}Sb1G_t0X7zh!fXi^5l8&E(jlipp_7&}d^(GequFlmW zdkQdq^xt(Bg+3^*-d34!X$*npkOU$w0PHi;jBHw_P93dPuBeI>*(KxckmC}izH@=q z9;iR8U*69Slp2ANRI@7G20j=TMX>frW8RGRl}KZWX%gnhKi@U^PychoKmYL00Dit5 z70@-(cNc-f7s^MQKZ(`A(3DQ8Jwi|y7Vy%Ppxa|XH?faRu4U)khCUo3Gt?0PG5Cr)a2jn2oS*N_$!aJ%h{E_W*g$NAcyVq19EGnozU*Vrcsc z7MlO`p0M)Z%|WO0gP=PT*cQ*A7W<%*wdZ;*w(>RmDRMyk7<`otq_xMlK~~D_oK*do z&m_!qrAvkP6$M5Wi&KW(S(zaqPCs|gXeKE4-c`Yj{)|(c42Z2e_1#Y6yU8bxinCm1 z3%8s2n$GHc(41%ilCG7xc{#8K7-m3HJ;k4iK*C5)XZ7Xk?L!4UIRtQu>J_8scHX4% z4?e7y&mAtdBSPt}0tzWycnq+YCKM6Mx7h~mo^EKLi>Tw(npOifg?oWQiZX_(ruCM> z(k!+|^7yi2BaxDYmn3!GeOA9c2Fkb6#E?5O(hEW*IT#oNN&b+|P2dnn*o!vb)Lf?INDsf^hi3ZhWKk% z&_)9tnbF0C#wx%W7M%a#yP~$P@A5Pww!UbAq*RiDtg+LO?_aXJWGtRDfZ* zupd0tk2t6A@jiw!PIH#o0CqAqB#Vj*M#i%o0x+8HV`TLqk8574?T+1Nr;q)n!*h4# zy_0g)G)i$q$NUuX;%(HV*6XG;*9YTgKAh09^iBS%^4?wXp1p;WBzR&`C{?G(o>=VH zOH$u1-qx#new+5;AY)`bG9YSrdqR`qRX;l3P{*)v^0p})-`bBBS%o!7oi?^%Aaxfy zN(Y8YwYTvW(`mG`L{Y_IujJe33zRq?p*JI$66prO(nU3=e!X87!dYUvpyvB)v+u64 z^!K-3eJ$)LYSrNGZ#uJdssg4a97;{&)$!WWmg6*E!{zh1w&TO(<>d#hahbwG>*r+M zgxS>EQ0!hz!v&$p0cb`ZPmHexR37?O!tGhZE47Yj)-HNOcu=$c^^}W?Cwa43X)zS7 zuL5~s7BU5e6&PsGa-J)@lDu4QuxsC3gp!;#1a@&WG6S=a=hd{82{EQl=3hUK;E^xc z1=Ar{^UTjVo+KVCZ?OpaviR=d7{2+-V+9rNQd@|EB=2uCLycY?a;Lzp)Svhn===|U zjtmgc|NKM0e(ulT9R>=-pZfK)I;7XBH3J!b>B#roo>_kLKr!X3-))91qHt1>D7@>F z73GBk;RQMR*9Va@7lolzw+l}xOU@k23!2aU&|-+R8|R+OTY}T$;^O#{l`E93rs7`# z51$?Fx>-XoUwQY!fWtmLF3|lP{AAA4sLICm=A2~w>_qRl{Zjf#N< zF71}dz|trs|CECAK-tl&?L`rWzr~-5k%qe#AVd-`Eo0lgHTqIBtzdN?lcDjF$lw2z zczU|2SuntC^fqy1p`>`*cr6}2(A)*=gnFtJ#jf7BtVJw2E-R%j>J@C!j4Sto*z=+d z7j3F2Bx*p6v?qK;gxgTkUa9m_jlY&JtYDZGKG2c^m~`6GzWzc=(OLbH#nls6lK2MZ zV$i^1x($1e;ptJ|=*`f6xWY)?L@B-pi!B}XBzL))a=~N`I4mwpHa$Cx5&C!Yf41ZR2qZfi_Qj+CIxoGP^r| zJdk0oVueDeL8lKzyRDW{2GauBiqd{;88|8J`0s2?n4ws`M?e#_;8n!rBnI)l*=?1u zY2D$pwQSFt*e!Y%VJ#w-sw{E3#lu#yl0QWv3szC?#7O1|yNrq0Lxf0BPFG5UO^WXt zA3v9~iGb6WST+hMJ%&i~dISi(jKv#|!maIeOpsLXT{n-@&AhFOArRmMjT&@#TAw)T za6!!VObZ`$@ED4xE{eM z9uLa(*2C={y54rJEVaHggQN`rx=5lrCd(TaN3{2q1H0O)h!XqBWT~y6{8Ov*5B&VY zKObQyhfV?3$EtA&G{6A;Jg>7)FGACn>YK;Z8qcb;7Psd%WE#c349n=8o*Af49n8uS zKPa6Q=J>_peS$G>6$JPR0z2PoB!=-W5lo}lal4Z=@|i%e^f6k)dSe{h@AN%l&)tYx&mpiQk1 zj?IS;uo?$xBF~ieY}dNN==v_`I(xk-DQi{kyE`8>$g2&D0ZqL?=S8erq3WMJUSp(5 zmZYZOE5)r~=&E&pCCRO?z2PL>XsN@QlOe4T&Qri0M5;Kq#SEg>=}S?zmD+3hVaoD+V4i0aBAXpX{?HT% zRokGFAJ=!cPaF?COd(lM`@?S4D5`R~Z);E91WYvCH6RnTs08Wtv#MCewj96Px|Gtp zFk-{-YM>M3pQIuYfT8^Cc~K0w8?64jckKrM#l zpToJnq@s;@lCjX}t*|oN>AKCM-`y zSI~0CWj3Ht^q8nfGWo0%`>azeupGZT$$d1NTQso&nla~8Qn^;et4IMVK_l>PabTj3} zV_5M4roC%*V6{^uET*IIgJAJlBVn;zyDeiH*WFm}eAl_kdj>^L1+zxsNyW&(m)|d* zc>}2=D1Y7kFazYldi?O5G=#-y{P4pZj9$?g+yGRtbeT_AnYD+*uJJ73d*xy6_Ut4pn6T%+x5aOoSc=6-rZ ze_yT^>dG|EOVOgG>(Xcyy}3SHo=Aa(vhZMlTZdo624T5RN1Yz1bbi$A=9p5ez@S-E z3X_PO<#J^kZgW7=HOMol@h#Hm8ixbJBYVI@Qed^cE$sOI$ptSYtqz(mG7=>_tg)9U z$FG_z$A_nkBBQOdgg}{(Golh(OT^ukg7%e(i}q>lwB+* z5e(FvFDurp`fH)Yso@nlcCyA<54bCLaw{Ud-Mhgpx`W|}4M?h<4ZiL&9-}KRO1P*u zW>@nb>yYkcr44=4wevi)~%0K0150y10~$@b9QA# zRVA1hG$r2Z6j|{KKRiChGo?_&Es$IpvaCW}3A^CjjEQg3pGLs ziwbmTS%N5j&;dTjM8FH{+0L2@(^=p;0}<^BIn^Wl`+S7LJ%|m#Um17lsqXRCSCPUe z3UQ+umQ?-L3I%R{StlWlfwR%MC=i{?1(pSwy_6!P&qJu9K~c1sS{H=9f}gH20~=)N z*bGXwn$C@`j0Nu(B^jRfP|S&!QSZ{2jxG+CVU0@i&ZuMo{atavFu&22j6n>Oa$tHR zPUefsA5MCCHk6?3jYmQ6E*P}Fk5(4E`}=eVi+NQ}C2ZR^&U88Z(?<00F2TShw9MdS zz>iiVs}wUE3-9;P?^8Bym4mm; zm3z*-N%VxKu&X9LI4IVW9e8;AYEIzc;A)s2#n}d6b*i~gCHVhP^_@{oCS12R5GhLU zp!86Mkc46x=>!N$NCG6Fv;@*ns)A*t6C_AWfKa3cNC-WlSY||elNum^BM2xc&giJ) zI5Y3P56*Y*dOy~)Sc`uw*g0pPbN1d3Roy!BTju%dkvbnZ0X$CtZbC0?nmy$O=9$$} zc6Gq*-KyxR!@F26`h!_3EkfdDzq_vgNLwdAB61dC5FVh+Z#kMg>!y_5wM^+>_w}q* zMV2f!&p#$qCr)GHpf^Y#27kJjIA7t=NIK2^J$s{PvY!>@Yjw?5f#yo*>DcY#2Ngv? zqY3zbH_%kw3;(}=ad!7RSVJXXJ_UpuYz~hD@E#7grEgC#9@Uq)1|Qh|vp zHDG!)Gm?^#Y>&;RqOU5~qY2>nIz^hIHaO&TngB=LRiW-leWnMt0`V*Ppz6#RGsc zwf%dHvBF|YbPg@_lcx&nAMqcY<{Upwj{yn<9kjffRz5IOoc3JJ)ERn3cioK9Kl*!t zoK?}WoT|~{kNBOM%aJ8F<-h1eiJtVOHtLhheHH7Q$iSK}+Lzd6!0)Q*I)Q$W^fBXX z^}Xrx(o_f&ONwvKx7-_4JeyuiOg{VU;A+^m2{@pXKj?gLvyJ?TnzC9R=aPD zL8qzasfi=N91)BLStUW%qWaT4RM-Ab^sj%>J|4JrH^L~uZL#Pg=$;G1gt%St4%$`#X{QEM5 zyc*m?NnNpVx@mSJu4jjBPb@?>G7jd6XS>#gH{Ar%UTC2d0Z@DAiIboqp*Zo9wMWSUJiuly~_dB}otI%z^bPeDm37BRZJbZFS%QC!H{l^91ody4Rv~ZeN z)ngu%@SHMUWc=hRlh5lCA&oU#0tzJ^<-hai*^>SGLqG!uRA+$y{1<-q3sB!aeqM7p zAP$$>0kEI_1{N(?0abr`^J{}!OCq-tYd()FuYlSgRuzX?g(>>#7d^e6wP7$C)8Z!^ zX)`7gA%8Vrw2SJFFkc?BH;eOnRoW1O>TeXuRKKX&VH4ft2E6*ST{NR0*pQD8qsWi^+>Y%$cf4K-WljYjby$ot<}O*6;)NFc}@@;bfYhe5i1+^LX1% zht_quL7(}!1t@KPnZiNwNIs-^av_(t8JehMZA=I}1Bu6NcVE=$P;W2Euj}H?{T8;agTzz_H$byc8Q6zMR96n#fYcfzAE+Y#vbW}XWW`LB z<7%zvP;t=-Tdhiwxi4|4Vv1ql%Hsk_6CC$z1G_%;fpn8s=bA2({C$3_{S^47l&mXs zQIU(DaJ_Ly`6|w(or2~};A;sZo)@7Ly)F3oe64U-15Xc5(ELNlsYr)+FD7GDLpS?_ z7USUZ#ziy6s#i(P{ ze319rnSrHJq9Us{@GdUXL%31 z_r4v^5UN%s8xXjNWRK-ax})zWjaiCcA%{Q zjsRuJhDrMW^V5#ZPp|DX?d}y78L99K$hsfytB!*7rauK18zNyHX8C~Ow~OJc<`G|a z0eCvE1To&WU-cD61+EGbBl7?L5vSaLBpFEdXzC+%hj-wVHQxrD{rR7>KmVsr<br zZvP1k?|^A%|3|?}3$T6OUqJr_sv0;pbjq9aY4@?gkYtYjAEUpLNkj8bEd$-;Rnn(b zQ8Lxx9eD6!l5DqP1NG~}tAjGiPhDDb9;i9Ar3NcQ%*c}ci=R6TX}#>B>?16Ma$$Ri zER`40i95#<<@nbsYjPe#Z;k!Q7`s{YsnpPQrdw-TTR}{3a%dwT-q#YdpgOhoAmQEL zjAVmgt->=#ofiouuMf_O&j8ll!QQBxq5%)hT<2Z%3Y-7c_@aJFqP~V7a&X>mGj^;k zK6uwy5vi3KDx0PZ%~4HrN3-W>^Y1_iGS0)N_dI>{k5Y^{>eb`nJ64*Zo?gl&cE=q6 zL&^B>a;DTLmL)g@H$k+56}H;DB+i0CIoY~q6F8=5Pawg}HxKgj$0*^HN2jo*o?)8gpKAqrdoJyCj9jP- zSKj=i(OKHCU2ZIRWvknh!dwP>-T(bR(&@Ob>zM2;zFz)MKT4eYRO4=rbRf+PbVb{A z{u=Q#AgR+vJIWqLZ#I>-k_KkWvf{8djA?5?4w4r(sar`@J{6xOLy7R8D!8ftIj>U( z-xPB0KE9n2{i?t{!&)7x{#m!ks${Owzryk7_93(AZ;($!!pF(=G6fjoRrXqU#M9qs z5RtcMIv`h&R+i!E81CaISpt~901EU!{pA@d|+dfya_!+#=*4vlA{5+XhV6M9su)sze`eT$oJi6isSeC{%lfE=R{$qW+`&lV( zi<)fn@Yl>5S!W$m7gwfW@oK?%?knECkVjYb$EaN^Ea1O=H5eE5l=!?Ob}y~?m`R&V zu*%KreF+VbvD#&r1;82O?9;RAPz9V2P;(1i&&H9z)vkg*DUKMI7up$iK06zB-g?rh zBUdjkP(?86@%GM%yYwnl0KiCwn zWj8~*mzVQ^X@6f|EnMAIU`}+rRO6%QVYyy^@h1MCx41u=%6B8q*5tdGu;ZO4eU!BE zHOPO7`GJjQFO^C1h1cqETU${n61I9>}6u2$SFJs+Z|h+)DPJ z+Q&~I{-+)?XS~K=$pA7AnqUgSr z_v8mx1HZhJ8+)c{=DwVvCvD%$kBwduu#^@Q>8TmlxQw23Z^JgBogm*7w>~LXTJNl&Te~w>QPP3t=y~s7b<4 zcbGl=KNl{0Pyf|*e&lgpl3#esbiIy;UjJFh3ZiiR35;Hwj3eoVMRPuntiAOoTpm4B z<^5Wu-vuAoqls#_+(r^IBh{m;ZXT_7@gY=EdID1}fY2&l{}6X}oDR$WJg91KNmM`? z)?f8_QNA;kPg6_zYSC`y^rk@#5Keq*+(Muc)TIt`0x4{K?<6-$+&8N_mX3|hdhALp=K6!LFnb<6x-@RJN?=V0X znlN3%@^7r$_DB0|Jbza6+GWyp-cz|f%mTbM8XJMjPRE#n&BVm^@pHj&A3wkd22`N` z#?Su#nPZ@S`_EdI9Uy!L)$A{!0SPpP4Gi&*P6HCM7AVb%JAyG_&@Zdsg3Nv~c<0`A zPvC*?sK>+KyvV(*u{9G1SFFe#xs)-XSQ%XRfip_#@ZQmy&B00VYt(g;RD#BRnQTz# zJ$Le@G@X>EQ8r3W$OjzAKRzt-dDc`}wT(kkXxE5W+Mrwb4ZFNpu%51glB5knSm=_` z5BTDgDNCIZmNKTP@cXgaufg8oto10h$qF-C02rIzSkjveL1=obXx!hnX-~uF=yLH8 zEL<5$sawRfGy^z{6eQ6R>Wo@-u!9_H4qISga=X1gn@v$BMZ2bjXsLx^0 z1hb8N)=k)Fl3$&k>7`A(iLIO=%zg3|oAN&gCO|()o_1c%w&f+`q%1p+<(ELMh+zhy z7_l{?Ykq@io`6LX3Ytt1aHOZZ?yOjPnB-V}yhqdVyw9Sw2mBvMzV-I-V%azLnz`;1 z5mS;vGlLHymhHV}BzuG+OZA~uLO}^Aw`YtSKia9}>0v~^bcP$BwN%pBKkP81 zOU)AU%}JphgTaz_n{rEygx5Lm@<$b6KQN$(#`zQnUFRue{dtDf7nT?^xjqa#c9rsC zHF78|%+>vIOwz7*y{V4KSy{!pbbfdJsTpCg))iqgx&lr(fzoa;YPlGiWKXdB6VbcP};?nBQ}4Ygj}BW&nUA zJQLdhM6g!&nN|Wmp7EgGyE}7VgR!bAIR>imwTcC0nNZ9YF(81cq>~Q>E^W3CMk8;^ zJ)@JcPqf7HBOlrypGs?jBU3G{m54XU{@sLmDqJ$Ju|WST)Um2D*^#$mjP+s$Zgy-( z4putg#9`8jwuO;|42*KfEw=$?6Dg>ec#a=ftRpjh>o2TTrQzm|4PJWP$$k-@TgbKV z0BfkD>fP(I$D8e+2|ss|R&+;Hc1%7m4T^XBEA{;xGg8(8dYYfA>!Ht)-_jQ$>RD=2 zn(JGC-nsuHL(r~3bIuxa0@s-2%LN!$Iz|YjC@NPIzFcMh&6W&?>vmpSlnyTiKO=SX z-fWWS8aVr$mVtO?Qu&JpDEFD)z1U&ff>L!pHz0y>-7^l@YMaQ`#;v8K77|3GUWY*s ziZ9d_8g917)$HJ1Q3!KvpJ~lJ>anK7fCZOR#Zxo%Vqy~Zcx1Rime1M55Tw8S&80uu zywV0<90R7xjg$D#E-3Vqs~jvdqq?|LQ$mRwlxj*|D#OLWRwUIop(AF&(}U7>Hia=( zdh!oVYyE|>%v069XQ9-7Spm(S7r}QNfLnlHlLy zzVp8`7Le5vZ#TK726iymB(?2^`)>uV`e9C856!^+=S=5nI!s2|iw8f=KwxzDs~-xA zzt8W&b^t$k06r+RGsL~%|MQ#( zN~L^xyI|+rZUnvv{vD+F$zbD!WsV-G=hnAaGFJF;0oGN61!ZI(->H}@(zBBAPtTc} zcyp^^SUMk0VX|DAa2aI1F`4XhN!KWQ%4RV^aox@}mL9ECFlTNB`<)G-SaCxSY;8LQ z8>miJ;_=IOEjDZ_z*(EjNS4TMJ_ho7Y&WXw_p7k}K(G z&1bq0%hu7pD%Rn;j!IfVXC6MRb)TN3Cw;Ms&CZ-R5DaV23r3n($If;2o&a$Z_`aF; zr@_D5UYhND)@=FyDK!{yM)O-^-6RUlo-SF$PZITJ4O6#d%nHWsoCGqnYZk?Zk9-GD z96UoE0*>mF<=bZe)JDH~{Ig@YsokvgCo!*EgDsSS=F^hD<+QY`_tsAQZtv4!8<$4* z2;^Sdlzir}*=1v}@)Ik+{N3k^kUjQl^hL!zFXrmGhiRKKvygfh9yvsEzy3V@g8+Ch z_QgNeU>(58w*TC{aNs~6Z~!B*IJ+DUKOkW7RE8=$JF+T6qAJ@~HwCnn8xUF$@VbDw zU4S*JBpI=qUbdv{)%{_CNYz>wc~&X^}Z=3Jz|H!V&WG^xVIB$Gw$jCE>La&|dR0I>#oi!3AD4_lh_= z!4CD6(BJslgfWA>0*oO!)MEto0I(0DVp2R zCbGOCwnf7`rwOJJ^L9O>DgK=7 z5twFOogv<(4wBGOSgh9R7Vyu4(z3jWw*6nkvj6=_SY*Z5?Xg8bTTA#?x^V%z{6N}1UA5jjKf%@$V!rajd2KT zx6;E0G)TD$iX-3@h!<*TuA%N75A5gfho4F*@z3qdBph0pzWmyXcWO2AThw3)c=J?7 zE;z<1m^S+X-O!@=3XPrf_Ml>6LB)WEJrY-%-$HQMqx=1!T@4YEMIXk(;x~kIpQOl@sbg#C*e9 zbLFkvni-EMrM~GKX=)BO`p0getu6|RG#M-HO%v{J zYX^m1_Et@cv)790&RLFKew6KBKO{;Q8v2$CWU%twJ<(KV>EB|$PD7qs=Rdm^!3AR& z)8kitGhFh!1&Ge@pw9fj2FJ-GA=>-(N6iqx56b%c`4q^X2l5k+9r%u)UD~(rH+T*L z#!6qTO#EZx_Unq|rJ$svmAC&qRUi=xmCjwDi~B)e(aCKNu1-11o_iP(Mgg+Mj+y5 z9A+RYVVC8ibG7Ps>h1WZAaK>jHUFXVU-hmYb+R-_jfZLW*j(Lqt*or6i2|`+8qUHe z<5$ph#{id3gQGSl+%jQ8wPkaM+&0m2R6Xow;%NP#pKEHOTGDE<&!B?KOkz-h8#YQX z+eZ!zgqpjve(ri_@FL&El4b(t+{({?MQd(~4FYkIX153$0cQt7I? zzCA((xBJcEet!PL$u&WvLzl=2b0dRjp@ga*WYK)Tw>Wtz zZ#rdA(nC+&wzCpSUAS+jn8EQ6&M6|dVKQ0HQ597kx-=GnKI@rRm zWFwe=$23I+{Oo)EX_)@rzy8G!Xup3s9FPaL0nXv8|}w+9Y+_aT6NgTO=+eG27T&fGe8KfbTP$D|Ox+~H6s zRVHo)nA*hiugUp;wwrsVT;2TX*C^*xuZ^7@pm&0bCTFox&``$|+1+}WbQo|a=!}hx z>^{Bv#nbTB@_J3UD8L{e+gaL{XS*6>97yXj!-YZ}leL@K12_C@e>TJ>AFL%YU7gN$ zsicdxYxSfD5~HXiHPR(pX7fw7A!Sx7V%}jnZv{0dRJ%|(jd(9hGqzDdEG8x$p;tu}K>^Dp9#5pN$j-kzD z^p$VHjORMffWbMfUm&H1t=#ys7XMnFpn6eS+@lWp^3v0y)beGE@^Tk~oOP5Q42(*= z;g7sH{;At$P~Qg)`xJjFp6aZi6Y#QXbZLm!-1(+w`$$DgKgc30J$v{oBjf!FKf1O}iPUUOjo?1_%$Kx>nQ=x)sn@N5`~bG%DU z9?Hl0cX-@3`K0`cA0T0p4FbUjrne|714Q*|M_z&O_tIw>(o?F9V97QFq0;#~eg-`M zr+)$VFS-5tQvg4*kDu)QcVE~87x_#0JgiAr^HQn-I$8}Pd3LO@&0@Oe4gTVx%C z7L0r{dAWDw2W@bzxo~@WlQIfJV;qV^==R1tDchiJa)yb>#PAa@4mq)m#x!Cmn-FT>4 z{`5}N@C`q&l_T|NUOErDm~*3|xSqOAUYZ8EP0%HGq$!1WfutV3&eE8%wm{D}(a4}~;l16`s}EViqzW8kY=MdKef z#4zX1@xP?$1DnWt^_=-vQb!+PkPUf^yqFMIfkGpT;qVInzNef2wR@Q5`8x}w7)v9AfL`F(pOBL&+ zH9-mxgMeW`mtl94OzI4LanA?TXq-!q6FY%Glv?}{4@&mZeF_ivvkSvROD7t0d~8bw zls7j7GBvN3CW(7evZX109XDPS?a=B68UBu41+i9d<2cru9#Bo{0Orj>%Jv`LRqrb7 zn#nPkbRLI#(g|i63kc|A2J<-b_0IFT#v09yo{Ox4=p#@qYZsrGDL<=GoIfOVwU1u6})(mApk)v$=# zeHhPSSdN6q8{XB^dwi#9AUAJUWQUsc{T$jr-QeM9q7JdZ%q zDT;>KA97S|Gcw~dooDcY9AujnC_8=N#Z`FGn0aSFnuR`SWT9gK+u!8n(ei4_Ce4%P zpJ|CRd>V=ei>N@F>(JUr)SU&p7_XtNVtk4IJGdyLs^c*B||T{JaOOJG-X=3f;O zil_n>k-b6`F2%E1)IUxp7}ei?qaAY;zz`5lf079btF(K~j0BC0W2U}B!<|W(kme!| z+Na6zUJMY@o5{#<*W#IqmSB6}*;yDrg@d9K25#rShUr-a`6+Q0^*V;RE*HR)W1l&5 zB@r&c^L+X})Ht*y$fYb)vjd4i;q?kyi&+Tp`ZZ@w_If_m^gdHGBurw>227@BEkG}j zSI(78DR!q8QF7f)rS!oDq3!ws2z4ByVH9W0p5TmdW$FyHl`5l^l~rALbiM{g6f4j) zol`>|hPS^0^CH>T&&7?PeddW1LL~GaT1sn-YUPa6;lfff6lWu^YAjQ_#==MHS^|zF zFFto2L)@nr&X#(|4r8>;he8$)p zyQrF9cNy8CgbsDN*TK3zbTgC8sE))%3&_w22+eVncwW0sxL`(66)m4CT$AFrE8g43 zkM2hTFns~ptGc>!|I@#|gX#tSf1MoEZ3Bcxc3 znt=-utWjTUB=j5D6$L6f$+XKUu#E)69oDg+N{P#~W3gZJepBiww|;ge zz2nbM%If)s=b!v@nO@Pn=%k#g(+q84oX}?=@pU&+Oc$_T6yan9l#7Y(wG4hGSimk! zdSX{mMMSttZ#B^%T;eV4xkBc{zwS-tzL|dm_8SQ|Etb`CW=}h0T8H7q?vor){`XC> zA6qVSAo>&8IJeS2E84QIZSLyETP%lkbiO<8l=yFPD=C~aX zVWMm6UFyf=e?U-jz`|Z0$y;)8JCjRtL`Ur(N?y9l$E`ctWdfYii z#1P7)S-3im8gy)2q8kKl=513|EiUE7xaqIZdSl+kbCCInw^OnH!gl(tmhp$D&6XAm zWQwA|8{rL+4EIrn_;U*$vl_^}2;+T{Ni zemExCdEQkAz$d<4wf%h>A*SHt;vWEAM8~s&U?pfqF%?}Jz{JL91O_#f;kdIgw7|monHZ7BbCN zuVEdM@}Y;@hAGcH@<00CdGxUyAy;ZxU?HBT6Z5(4ALw22NjaiyX2&G1mFhyD;zf9y z2&ir{l!u3mt@X=0+ZL5hpM?>2nqfgu&9(e86JMNoUN}g! zXuf;_1?b-`{N3!`E*>zT7cme%E`|jL3!t)3Gzr!u*&HvQ*LCt<3pI)|)KP4E?axzb z*oXF>rdA!qE=7sOR{bBPMmMpOPXgyFjs~(^?K!^wLTIgXlcMe4;ft9NAL|(R<#Y?% zyIF_t-%1xO*1yebq>%GfOeXc!mq>`eeSUrEcqrQtG(>MY?g2}Dbd0+=*|NV#qb$Iv zx;zQOWSU5{xX^I&2{&F_cX^9-wA@FDr^UbI5S*!eJYB@D!{aAk0vFOM$K}66s!xclA z{NCyx0S~hsdqcQn23Q*S`#I2K!}sgYA2|Si00imj>B@hf-}fo>{{E-_tqDMYzBO_= zwsUzdE(&O9A;M+eCtkq^x_|8mLZd@~Xb8b_VnbPy%36j|^&Q(CzYiuD8>H05d<^$W zak2qy<*vW^C*+o3_0~Uas~khp;y5|y`& zHw+QyceJ13)5HT~W`X1qtYq*Qz zJ!G+m@l1g-&KR6?Tr7t|(0FUy(6LAk4tycqNy``P30%Aq_s9#-UmreR7!0!8>nJhN zpM9#~u^g#M4`hd_3&D1F{taWZY4eMi_`&v9Wqe~R)aR>kJ+_0Khl2Uo@=&n>QL4UZ z5pOK0E;yAQ?2u9L7v^)tifFVvI$klrWiB9| z8AMPfvX>LYU(goUGHf<7Kr-zmZ2C^y`^X8OW0-{w7#DNKlpkcEaDg}^rDL{mM86|z zSScs85q5s>&$X}D$RA&C(U*1faUfb}c*{eJLLZX`{$XYlovfq$13YqSNsLF?oT4V# zK3V^Jyj=3gOu`lv*W$6Rq&BDM*Fmo$2Z<-wp1CKsg-DerLu+<2C!U09@*mT}wNI9_ zZY-)N6iL;YPewvd4f3mfaE<5gU%LE7`8cla&YUts(Zjtkh^3XU`;u9Bi6h^r*{x1# z%ifzfH4AS$)k5HLqfaTcX1w?#Hl{2;Q~RKqOt@tcvgfk06m0_W9|5GnS3r%VrZ1QB zOBU7IsO_U}EnSW}u1@seDT6=jhjx8zA1sq~-~Du!*n+mkL#SlTf?OJL2HmCV;3cPl z-pm;@QEpOjU8dMhQ1$B1yU4h?&MQOPbOSKGGQL4lGreTDd}UPLYyFmx{30DcK!;mM z?KS0IabI7Y%jXd#R(KYa1GA8nb0w}_^J@5#NAd-kyihFh_qr+1K;6lVdK-yp* zr~WYfNILxtj!@b{5m_Xx*R4Fg5vG2*LgTfz{@B9M0w^Ct>c2(1Z>&kTGSwGXR&Lnu za{cHJr2_x{YQxJWYVoPasIza|=ZqhDyn5?`Ep}Am(!>RVYICoJdL4~@{KPJN?_YZR z1V{&XP0IHXe!u?oWoPe?U)dZ-v(6cxxCI}y5P?Vg#482h(E;eP0Q@2vcypZamqcM@ z%+cWZKQCvv##4p;6<%RjnLgR+BZm!*V{|xQokTMo&f=R&dANtt~U@ zrm#&>w}u6An;&09YJN$-neU;fAJiXtFA&`#AKU0d!8$H9wc(VxZk46>H?Ww-&(^2w zPgM})@4(HN+RC53Orx6>^I&C)-wtnUWNE@`$esP!3ZiYYCyIe9)Z z{aMjuj8dR^j`wQTBvI|CRZ-Hq6JMh4%VTX<+$$I6rO4CK5J8x@iJ#18)t{rY>Y=T- z4XzW5$k=X%GHCi|?^M=FvcUr8RSPVBSR=+}zQTY<>c9>?xurVXF7m~`-nGaYmbNfU z#)%ftihIZLh%%F_$KVb0+ppJWkLY3APf8p-7AoT3?^K@^W3LUIeSu~ijUdInD)u~< z=Vvy7hw*h!m{D#u(90!YZNFvjENJdrPD_C8{kGkL~CuUGHBl1k*qc)zI5zZh== z$syrjPwd7rkCd_$#Jl}>ZxsIdBi|aV8VP4rtd7{}Xv>4Un3Jyk;vE|{oy_YjQEr)I zF}u569+pLulXPDn>Xf1D&sj0IT{`>xl3m^wwU!+|aWHV17f&=}KW%x41LOKW;gNpX zT+i+sYR0M=NKQ2D+iyQWLP`FllG{9T5Gn0fvb(VKyZ>~R1K`KmNe>K`m)HHiKm50U z?Q%9a`)LV%btYzWCtUQ4-~e(MXdk>%00HBJXQI4`gCfYs8;6V_b)fNwpahvN=0SQ4PmOX5F;9PpUFX%I~u( znnL=0k%ZZ3@3Wk%y5{0-Gz-hpQ%_$O_dNq!H#-*8x>TYG% zN0iH-q|%IHoX2LF!Of(R_vN*zH^snkk4YQ(57DHRev?S`?Rs9j$M(+sfK!WRRrZAc zD2IF0)Nsx2?cyRID0!u{K-3$Y++l^)5|*UCtZjakefH4gtDz6ZekRVLltS?hu78eQ zFjuRqSzi5{QmGo{>{hj>x}#FFA6|);>+y*5bb$FF+77zCY-EtGjkY}@ z!I;Rcju+9}6*pvdQ-8ej_*W(7%#7E^cN3(#tb=$*qCLwqq$#&3`O6b2HAC3ICAK^2 zZZj*$EO3{GMHy<|6#Fqf#H3>iIE@!7vTmd zAG8u0jqyPj2c#7?Z z57*o=9j@)w)Qzrr95w2@YXzozuKIhAWz>N^_L8J7Y7za3E{(e1nA! z2d#32o#DFCHgcH~Ez@wmLe}C$-`{r<^vzeep0?q*2z(vYbxCXb+Eg{@n^ewrai`@p z^}f7|B)UAkfAvl&mffJZ2veMCrz67(&*cTpF(>1+@^r(zRC9CkUP~|;93@2yCc~)p z#jn<_k}UtdWE>-e*KQ_UZXqY#>VAMZ>g{7O&qXkl8mIdmf;lUTtnE_Uz??AFEL6ZL zQ-U_fir%uD{pPA{UsZ4>NTjJF_XwRD9Ul+n~PK=j%|sI^9jffNUEk=X1a`_v9s=$~2(1iQbnbD+QqWAMAil-!K5 z9>4~qYUtd=eHVJ&PihUpXEki`Vp#S3cd?BtD=H^w=cYfVrAoGg2h|H)aD9dG9(@?e zD>$O^8z`?3y8<2P44k#uesktgHHl4i=e*CiqN2?LvxoTIi%0|frO*bu$#C^){(vW{ zHocep<34`yRA7I&e}C82{r7(Q|M)W(c+?oZ&jd5c0XO*BC>fmEl6Sz7Kb$X&37rnrbV3D^s?}HgoivD*(9f>ozvv4rsFOjpqFK`tw3N|c1cN6 z9&g>PS&>Dgvs56pW0mQ~=~E}p^6dL2%<_oFFWVW$KA_^6lg}>Cr(qsK9~aex122G@ zwfIQRF+sH#c!qD;3|8QmAOEPsQ_o@8&k~J~C|xTbImhw!#bAZ)*p(7a&F~z$>lW$# z#6XKUp9hztK(5gRZ=c-#{E==fT6C56m0wiK!=0K{madhgjC2{St)o9^&!UK}xdsZ} zHU`Gzw%O?V3gzofo`XV%8$|bi-adVfV!>-8lzp&iP_JU$$f|-`PCdD80tle4 zgV5rx*kUHTj(>J_X8P*(-(Z$(^UhxJso{ywnIBbbagxn+fklxN0)-IsaM>^U&E#<5 z0QWN9!}o+7YPQw#X3}dTg*=#-*zY3Pd{G`GjHvDiUgjfX(HCQI|K>-De{s47ml=`qMqI-gpN3`fm!3BxBcM?s0 zdF&BB;>WoCn9FSX>&meV{n07?BX^r1w>`&sT-hF%fD5KolddwI545sJcI0>?&hG=w zp3>iV=iT$8^tvJZ21TF8i)hE1kd3-D*Dn=$Wwfxtf+EE*gEc%`F6dmCP`99Q^K;UL zx;mf5EzMi=6Ior%loD5^sM?o*iX90Lu%RE|BcL_;3Dd%F@UfczWn0}(=R3)(8kNT zK3xWNROJ=wFm6xdtCtZKGH_==LHdjw13N07H#G2(L39$P&K{c%@FkHY}72 z1>C_0=Q?EU)18g|P%M7Sc3$zMe@lc~AqLL8rlD7OZL~y-Ivi%DTtD<_{K}D;-(T`0 z(UOC)T>k(Rp7Z#VU@G|8s^MAFhdmGrljR@i3BOQxDf z&bGMSKRD+NrR}jVXFfZ$$#Z`Z!$I_VFWx>JYZ~tWB@zu+&e6#z<9V)3?CSv}_rUJB z)Hld4MmX9mD|@w#PCCODGwKhAPf?Uk^_IrQL|T2{|785|FMjmo_5L@1Zrp9@+uh=j zcqGfsc^}AJfFjceKv2CfDBUlBQ5=$>ju47M07vA}iu9!yl^|`V%0{-r^}YEsrZx%5 z2_Q*%bo;O(y$7j&(xKDeWxn3g!;5i#`u38jYma6*N##%;Mw1_Rg z{pa6yh}20^)i*DqgfM`IBKY=4DPDMW__cAZy3PU`YlxRKx53sdc-%g?Fc5+4kUqhM zw${qVyVR+PW(~u?mK_a~Wp$rM7-qY-59@XcQ@p3sMS~wdh zFV^WbRDQ9m$4F|yJ>Yf(C`(zny_t;t*{YQs_`+K6ucEzxIjogvUEXx6YnIBr;=B|$ zM{i!M5XDu+viQ9oWDRkF4B5Znq+9U)3k%2djigZnH!}=HjCyhzs;gF$FSz~msafY$ zLjGi!9|;RNO05JZ`NlJLEchT}P){J;ZuH4o#c89Rm!Vp}V>i&4xKl!t2y%#avrPgg zMxf;;?P=;6s-Pa_S8bMMr2$WpG>;bFw&1!8J5-DnS9&s&k5?Qsr`K)2kgdq?ij0gL zMphR(aXIG_I=75_5SYH{CsE-(yu>UHGU-L!&?HSUiQZ&-sDE!k<67T_yIe{&4BYOf z;!HWLIzh)Fo%(X``R(^F_Q8Gr49I`<^mP88e(d}Hr=zch(+BuXIb6u5JUVVJ05Tus z;)li;`{4b8@FhVROyH&(&wdg8wSxZjWVUK>dg80+a#giu7H!~^koAmeXz{&Q$Wg<_4N(UcjCrX@D3n8Oi1$w;2SWo6`7XepnVTd`#OU)v z`M#cJ1?ffqu{k);u1P_u{WON{N0mp5Jyt;jda0;o_O^TR&nEI8ly6Xu6OAwCJ( zZ*aFM58jxL;ZNw}uu?taITkL7nAqa*>eDD@UH(Lk$)Jaag?U!(kdUmq=@=D4a$TnW z%b&}P_VELOSnKM^|M&g}$l7S$&)?wmH9@v~;QB%Y6orN|hzUygc>jPQ6@2{?F+&u; zh)Z7jCHH7}hS6q$^%z6de#0|)?2(s&DyS;boCGmzTu{!|6UP?&U^?4Y`FZ5>Ld=O< zqe|_iQSuhOZAddrv&J9&2JxQvJH0?1u~!?b;KvT(VdX|g|j-!eBY}4*MrG{A#z3AFN}x7F1qeC=UNvC zS>aaVPx_b!>pWlJm#-%69j>UQVF_pW55&(xP+FZyo5ngfeT!;9m5`A^MVc6E3%VDJ zGqu{jR|>O$8LX`3PSMNlyQwwTONPjPYPib0N2h;*RPOnb-WT+k6XFjKKE3HRWYT=> z8|YKG<)joi|6-x9cJykl#eKuAr-M>g23tt)FsFDv?$d(FPNzetMeu6fM48sM*87F5 zE8MUZD!FZFK>CHK%Px1^0VTBJ=@DW16J*RXrp@r~$Eb&p$;(%qWUm=;>8wi`TjVI* z#XC5@vphPX$AoOTt?VlmP98&dD#hwCHI(I z5I?9Kqwz+oEn=QIs%zo;$NS!1uaglG7%FQ^i%!OF^Q-sk&-m#CfIkBS8rVPoH+}%* zv;egS(Cu*{^F;_q0o()Mn%StDwy>l9|5^~br>egSsy`IeUo$R_v9-(LIF37Mzz#%#hAnPXgq zW7Ry)sHDTYWbYx8JoV2a3Gzt7(7f5?#y}q@PuJk=TCye_`<|A-*E6jFbPNae@Q`a( zn!Lzb6usbijPR|M_)}WsZ~y4=!17=f2hmavIc}K7GiVm-@JN`q;@d;J&2RiaQ>EqP z^h9T*CdK+K?20m8p<|A-N*vK%>I&_Xr~t|GyoIo;7o|Vl%6q>ME^KMC2GzLd^}LE! zjT*3U{UWF>=`=ddJU&}gkFkxwVm}0-_$+Tu&@%;ns#ci6&8yf?DnFvR+B+5 z&2{B5=%!H_EBC@|HM!OeaMvoThW$^QXbUDYkUQHi8L6bIM(y*OLfp>+Ar4;}mYqBC zbX5ID2zWKhWb9nto;xpi;Np)Po+mr+P{-stbl zYR*V&dVM#{R!uxa6O$2g&p?yp9_%f%X7bRboP?2NidpC9vuV@B0~j>q}+bT z5vL<2(x~c9XXnm|bAUSf9dzmu0%5Bo97FB~V8$tYdb>Ibl5XavD96?$eM43UtgoRj zcuIG|6Q5n)sFOP*brhkeJ&Cy2{0D3-QgNKHOkK09S$llyi&@cRBvB1)GV=GCd*^mh zcQGZ;_`G0CD;`%}D6}J%kDOqu^>CkuimtOo_Wq300O>>cDzE8LrDXcQ$Rh zdES*T^bIn9+k1Kea1tR9%vhQ4^0Lc^p8AbZ!x#dH#H{nw znATd+gOdu4|P~R z_nVQ_%;WV>KSUO>j}kS{5Y}TTD|Wot5Vx-0a^-IS#O^x`9>vn>=+H)1Lec%|YwNwO zTGyrqG$>n+$D_O#9okE*D5INtV8dszr+)swT)lTZ+k5{$-lMG=<)A1rYS%tiQlssu z6%nF@AR%fcBoVFIR>ys6)rt}XF;0<$M50z=RZpqCY6d}1sZmth(|N{ypZoXL&-&iK z{Qdqf*W>xTUeD+Cysls_tmxx+AOD0kpy^*^p+7wc46fq(#vmKI0rD}R{B#pJ9NVpVRFW?uDS(hvhE6KQCN1KUM7XHn@`6HQdw6ehiRy$$q#Ea?Pca_EMZ3ue z%nc{=;5(pKJK-Vk)TH)ssx0MWnR&vx;}oJNY_I!gBzY(pIWgUpk%=?q~50lz+%PrY9f*5i8yk zIodjUVJ1o`!F)!{g&;4b>gDE*K!F^wDyEP{@@x2ppJo(Le_U;V0ph9u;Lj|MfYaE` zp*3=PY!-@qP<{xUG8QKcOIpTeE`<%DaRQ)!1!wGN-8K9*U*bx2^iF=@hh4uSc_p1f zUUivk6*l)y1!@sAGDkMkssOaJo+~8PoKt@Oe4aDfa{sKCFmv9sH#<~(i2L^^j zPj{(reJE`8O2to59|b5sw^TzYJZWq98AjCWweC#$Wyd0ytk1BVJ#{H1eq^mX2Cyo%K%W_p@x&3{*fdso<=W@%HlNJ-!bF1Aw z2EW;qbgBD~!c;B=-4-!o;QPul?GO8(AcDkKSB~e>-@jls*!SEYatbRq+}Bs5=%nJu z(fL8{b9JF?blWwxQ(&IOhsP78H0zWDDXV-zl8Jg-JJq(*0D^`geM$@;6bzBzPWmOd z?J&NJZm~lnBSUlK^k#&UCx1~J)l zHN3XkUI*lGfz2vu!Od9}@xgM;PWlsOd6}5XSr=qf?rWOy7Yu`!a~cKol+KjEo7)(% zzhwGnO?wgi;}DBCUnHG-V)_gD9%zHTvD8nIvuE5VE&bk+kUfL^LJb57M6tcDY+t+< z82gmkj2II>Q_@jcLr)*}FZ(rsKLhb8*47F-y5ELB?s{^-{tLrlb#pk?zzDi7@BD%i zDslmhKaHi)u*v0Nv;eX|g!`&~b42~#Ze6CWeyZJNT?o&}e{w6c)H(Jomnqi4whhUQ zuJi2Adr@yqMv0`q_b~y1E#!P7O)IG4s~3v-^$b>H>Xy zkmpytRn;W(2%SjwDv6CUsSLl^#_eC=Ha{j9r&=q_{Ut1!Ne;fH7X9SIUE8fdvu=!%lNi#EYZbRK$%G^J_5-d9dfDd&?pN;X;_#{Q zXWin@sJM&l9ueNIT;L`IovfnN$9~RzSJ-KKo-@{sgn&FlgVeZyAC~gsm$jw5ejNfx z$RF?xUPVtQ?fzEULmIfqpHRxx(be}&B>06V7mMPxQeE!MQa1;S8;vJC=$&>4#u{v? zKCN^4S#KU)?TV$32q77{Dun}#ILrNABQ?)(*n(t3yr2FcB~C&;&NBM4f@z?s8-pK^ zLEFu+;4+e-(`0tq%WS<&Kd2?I$W+MBO_KB-)ha`)nkKf_iq)RC>DJ5r-3wwvh0Y3# zWR52n)rvS=!b4$k(KtrvM3Frys`s1_)f$&?p*-g@b*Afsn>$x#-QKbFjaM9Lk5v=| z1HP3)!MFMovWd3=-d{lfQc(DR-|wtO77&?29|NB7wp+zMxMH8A1zb`YHlqxeu^g5O zBCrCImO_9QmU8;%d%u2?KgAtluY2BhfUAZiH+mx0c)j zyGE+)fVo7BsL&>`{93TD^?0vKxuHlYIWB{(8XO$lrnEIM9CSxeerB#(t|G^Y3H#o$}}1!llMLyyD@rIL!V zdmGGPz7@QEWISs=V=R8GFbO}|x!fLhuOhTnM$*bvz3`6i06O-(UWeKCDVFG0;3S=7 zrBC(q$dNuoZ^^Bd! zyUMT2|Im$vg=f4@w1(7g)6m9eHI{E@tW4Pu(eW^uVy4XoxT&|MpXLx>E8`kbuI#;P zxp?rk>)FXlkEzk_5y{B;6#^ID8Yl1MZ_N6#)hb#5d+Wgzz)|5JKL4C1?dDlm=1+r; zRonkSfYANNZe*>IL*mO0yxcIdoR&Z52xO_x^Q8W9Dev!T(W|hZ5WHG z^{+AJoAQygV!cQPiRA=&V2h3u^WfC%?N!xOd|q#OHMB221Cxwo%oeIQbf*Q+K9e)~ zmDV!W7N+2N?z!Ho>GJ5Q3Oat-|4MfEQL8KPH;mjH7WrncOJoYoEczIsga|~1q=KF( zRp_Rqi_|P^KQPi`<+=WX!z#OJCloIp*uGpDornf4bEfzbpZITwW|yX~#mtZh$Z;Y^N3!+^OWymeWdDTn&r; zV}B$%JE}Tr_zuNYTgu3^c4boyL`EcEcyn@EX*68Q@>i{65z&_lAxWxQIolI&8vz~g z-c>0B-GNSdXn*D3=SWBbTdr8ron$w!ap{|W%xmuO{SM53to~EK3e0~RIBZU4cjF^h z#S)aOvX3hbi&_k0`G;i!^=B2wsv_)E+<8sU7=D?2A~fa1+TC;7|46cX{LhtVK5yz= zjAio#c{lWA)No>N`gpgDKlQZEx9Jm0jVnI}y>!ww2g@m^`YdRCev2K**v!?W%E8+C zf~3qII1C~`@?2bDKQl%&nFj=Uv@Pk^$h7!9KRLlSE1x~tu;8*Dcd9`M=1HFRYcQSU z3fXa_7qfP&!uh*#-5yDq9$S<|h5mh%CK>73S|MfR<6)Ibs+?vs^iC%?q+8Ng8WY#f zNw(S;`}#u!&E2uS`3$lkqXcn_hvbF{lu5DB#iLsE{gXJIKmTmJ|CV5)w7fh;r;X{g zY;1Xl`!HNN9I#oS$~KU?<8>q>PoP*QQ=XWb7-4PL0Njg2>Jh@W>%%kr1-sFr7Y)rM#q z;ZIh*?;}ZEOq0$6aorxYf&@MVDS=73m?gU@#(p5d6pZ(u-TTeBmC$rxhxI2LIhuc$ zhy+jTRNz~M5}4Ia8VMup-T!j)Y~cCyWOB;Q>;Ce*Q)e|v=KP6`6X2K7wRD2t3hW>> z=mbQLlvMYvfB78lFAn*SuI_*6SHJoHa7+$IKz2u`eOyrp6p&(Ff=yP&(dco&B}QpA zc_$QDzUQcF=SUi4M(@t$YR==6AyN0a*Nqa}y;Hnv(PYE8p$Cv^xeMZh2o9ey=+7HPc2wzX_8#i^&5eT$Il1IvL$rpS)(==W$(`8bdFU%+& z%HqviirYpB(gXU*!3FG*`$NI^8XOY&7lVQzqQYUdHg#ALa#q;YD$QMQf2E6zP<7EZ zcFsyYDmQ|L-VC_Ec$@!Ith-cE;YgD@LYaD+v=o5m^~6A54(kIvq^MkCdGvnN5a3yr z)j%YNUK82dEMLQCE)eMuIek)Aqx~0svK4|7z2wUGitU76FGvQJmXl}75)0cMarWq* z7K8R36Zq3XE8`qxR)H^Q@k+?wqF<5?;xbvB>w#^gglfZDnNE5(i7`*Y@TsTNkBozP zIyr-yljN>9gKZ3DzIz)B5|CM%j=MZh2qq`+X9~b@qUH31$Aiph=SgEwR1gaaOX4 zgh9#kko1KM43d|4Yle{tbS^=OU86LMp{uI7X*Tamo<@P;&~OtO|{EqGfjEcgvFiU8YuCsWeoU=HFY(mZ~ltv8_ zlJanwtC=O{xm2xeZJ(C;(D)Ic>5gm+k(w*iT21S)l5xG1HyzQC_Z^Q&Zg=$Am&wFTB5Qs^NGF`_Dk2pRIlkvt zyv+~M1l^=Qt6FUzpMH@TDD!%hB))$i$#6Idasp3|J(IEH9XC9G5dWazhKV=hkLPL%0fDCQa3Pyl0adJ1P?Q*y!T52kQu*Ee zrN`|d^BG-|Zya%bufn?8VjrR)@(m(r*SZ*$6~gH0ghhX~crFckWTNB^OTllvZj0Y| z*ojDR_4;Z&|Ma3cxg6SMiQk&#$Bs-3BU@H9^+LJNPY!??VxvYUBvuMrB~9X8?@4FX zUljHh>nnVlKmX%U|Lk(8pZ|~k1c~pJS(+k16XJXBX~Z5J(C>VC{T;ld@J?!o|qLf9CORP+P4+^`y8nN))>EQhGGL{ z>JQE`2Oi}2N7CX~SgS75nx7cVgeAN9U)zJTKiJq91S__?NBlTWO{LfX;S)zNty!*h zC;EqS$t9Ly82F;Osmp81&lzslK{qidz~!=-{mS~8DeRPq;n(Qs*QlCkkP13-e7?oV z!`^g5$K>}F%i^7$A#Bj=856p@_?U*@3tN)8@P(_hqAf(`{13OB%<>c-65s6KXwA*j z!E({vcH|2TioxftA&GY*LJeoh_<@Xp7>y%MEMhVL@>UDQ=tFA5STtllYHrjSkgq0AS?Z90c>g6WK;hL8I`Z2N=HUg{s1XrfV=Qh3K(%z6;-|#0R z)r0wOBHYz%%~tOIoOhkLFu$0aS!U(axx0%fC9#kO&(s=LXrgQ3<+o8&96GdnYT=># zRpS9kdsc#K?KZnB?m^hIOgF=f0$vUoA3V{T?mq-;3*BCNU*tFajsKjN{DvRrL;sEc z*?*-1`X3HE=MX)d>c+aML-7wzF$}PAN-76l?^wYqc~L8A7|?CJyqmRAZ3kGptXcd+ zR$Ux=Y!qcq_bHhPFG2Fjgw`b(-93oh)f8SpP(5`jXx~Tg}#AG zt)#dL)w8>sx>Nz1p(NyKU{U(2XlL4-xstE*wUWJf)jl|&=bwPtErjoV3$BJqB?Yp+3p~ z%h72!v$;+MkV!4NK3Id6;l=Qb5gSsNm?KWZ_QL72hM^^ngP*}Kmj<69pT2f4=63Dd z>5%PoI%G5avZJ@QT4KcAAQW-T_R2T>L|!`VUnmzKZt8#T-}Mv@@zV|B0PnA+#-_S_ z6kvUY^256NV)6cjOkjH&6t|-uw-c6ZtC6v*pA)@DM;kyCt+dmq3M#46oLC1A4Z2bHPvrrR3+kYepJk zpBtU+SJaHo!yCs~*kS!<+;Gu)*iSEPZ3@VurA+~9wbrfYu6~N0ylwA#xvbWPa-4?G zkR5wynXwA_)sa*Zv+1q|+T<|&Fb`MMcdT9+R;64llsEtSecV;qw-18vx0ap;V>g@n zE8Gpv=}P=%KbedXHt?#fk-fTB8kU_sjdx0zdmSB?(sw8@F9-`W%5_^dCmj)W%H?To zaaH|!#7K%!Q&Q?6{G*P~;Q4Xq$b0sL@T}UWP4HReqaMYn$~=j&O*U6P@q~t{yZubj z?k-^(A*0qJp!JLIWd~D4{M|3zg>BR$u2Upev8{(>%;ldox!_J}qimZYb>JP$CYtg~ zcsNQ#ta#MRH12qv>`v%*EVy6eGf>c z1APTPBIn*^oeICh{^jBNU-&uHZ~PDc`G%jv+pk&<@Qi0Dpilv5up-ufDUKG1%dEh% zMC7k(ZgZ8dzT|%dhiF57K^1FEl2GhkXcAtZZBM*61 z`I$_irm)bxakU0Tj^Nx!Rx%Dpqb6cph|^WLQv)=h2rf= zZG7}5cT;C-ROXbA3|L-jtYpou>7vmh-z zPh+`mb6l|iWtT>(DnSIi_^=Z*S8>XGZ=1X~kmc=^Qc}AX!^;E|Gu9_tDA(|!r}gWe zRU0xc7e95}n5TDE&`OIFJev#MC!=PDor&r%PU8c&+1+U<*3&o1EqbGcD5H(W37heO z3rMH73$`1!NOLUKN7#l$(R3au*9;~qF5-sclic=P0*BhMlyxj+Td=PBLguVI7}LF> zC)1DFx<*jtnaD(dV1eZ(nqmAOTm$q9cYHJ~K3_+^nP{alO6^NVQuU-J$Sx*38sf+er=s@2Yizd2{q+JRIPhdf`L;Pea z9?pLb*BAeJf68tI=yN?Au6OB(<8fsK%FhQ7uA+pv40IR`gBw~S3{{d#S8obKh=w8Y zkXPB+>NN4F!awTbJJ+hdyr%r|YeIy$Id?(QSNicTwK4eRTI?y+Y**dbey5Q7_81c8 zCwW0Qox%AUZ}4yNfs!`l{m6i`K8Xc+1Z@QZbdS>Hw|PIQ+`q#m+IS5zL<;>_Owq6o z_9jG_iAeJXhYePZwo{+|q+@kpQXoGCS+1cgrN!O1=!B|3N ziKSKo#)%J)kQMUl;gal`JWOiHjfhC=BOAJfr!`#p66FmcQ2ydL46+L-$&&ds!06-; z6@fyi&g?n6_F8A9O>LA^tktU+-ank;q&6V4VW0dnTH26o(d5-fpNAe?fU8t!uZa+K zd5p?fn>|bIOPLW*_enva;OQufoc5XoRGNMJ$^5zt?zKACM$?8d)0%TcfFZ>De5I=^Qhx6w{`lIl_{p(PFNF?^KI6vo* zyXiTXKF$HhJ3tdd1Nv3GA8`4FPF_L_Ft`rj1Or1n5rh-IxU;jG@%2jli7VHT@+_>vf{kf^g`h% zkb)7-T5%oU?&{K2XR*g3RFd1B5M)sqd z1gj88Me%oD@~1B9J#7dsQS?zgt3-mui_1K_`{|9ZD9p5+Qhp_K?@U&sF1km>)5Et5 z?pVdEfUPY1_eAoYPWPa5J`ojver!XZz32iZaXi8cp~YIhJd_Xok2*gs;oeL-NXSHx zLX!np2R{ZDcK`O$t*CMedy(MW?}S0VZ|*F&u4pKkOpYJwmcf)QAP^+`W11rG=WZUb zX<{(<+U5ZAt+jY_^ru?+5k=KwG5J58jCoCA9{UmXr z`+E;xgSD=NZ}&SZhyE>x_ZPqc&;RtVL;N%y9`7`=IP|V=n|UDug#t#1XcTaE>W@xV zA>0QMI#uK9S5r>|mpi)os^O`IwJ8e~+X(W;=qr`qO2t24cH}M)>WdR-CXHvJx);!t z3@JZk*+FcAL`#0v<;Z>k!zSFpbL>xn9uGDj129azz-<2%b27%sZZd3&d3`ZJxl#VK#hb_p zYmM+S{AxT?GAhkCcW1<`PmnHa@tuz@=GIzM0v%>{$~F15U6YNG7h2B>B?!U`=D#=c z?$6w+1JbhE{7M|#WHHBO@@`c!T8`EX^nVoenAvx{@464qwsmr0%?zmA>|{rh6?mdYt_#OpfYYpDJ5R1OXAGqpp>@Q?#LY-KVD2*1f;MvOl-@@JdP$S z*Bv_&GifIK)`>CwzO}wC*7l9CWMJoXm|hMzhvZO_Af5MR z$A49zzRafZvc>xegehRx;qb{Qq@!fvmNDODJaeSZ!(BNo78$GA`*e{TAyLC;%K)cF zX1bM2(aS%dkv4&qareeyuL{mvEfchs2_}TPua87qIq7=+;N{s0@oqUHX7(F@*8c?X zpF{UCfd2fy_^IV_0Qbx~;0?yH6$St|?+Ba<8YesyKeJTBXk|E7`OOYs1PvIuyvht@ z<-oRz)cA>NXGH&mqVXhZu1bRPbe-{$Mx<=>_<)W1o8bW3pBD~GQ!ip+zxcTCOMbfRp8 zp8Ng}*N^{phBFys?r`j!WcV~MLZgYXn;E0vVKY5^9p^vVgH^a-!0W(pi*%D4bH8XV z2E!I{U9r;2t-?I#pIyi~qna<-P4h+H35bk`v#uiy^YW`HzvJNg{Kh#<0lyvxn!WI; zZu{N(FOiONzVP%!v`uFmY$j`Hr6@>=U!&;<-vSr3VNZkkZC8_(mx1ukIhnfGUS}L5&&uQt#nkQ%hTBf?UE;djl|`QMMVlIp#|Fs} zF^hZ-;Q8-3*D6!l*1+bK2RA3_IC&)S;gHwFb#!s$qv zmRsa=J@>DoZ9hO!t+DUqqR0NEnhGL4yvu%a4r^5lUPqaYNT@Gm2LVQZld&B?)BFdfGMRb*$xg zh9x;fdHj%2i`1zkv>YV)+8 zieY4?jv2okVj3Re=idI|{O7QJDf~zO0uJBHbN7G?jCUN{%_0=wya5LE&&sG||1f?z z);|c?qLMq*ZY~108xc9~uTldeQzgPeyp&eFu}3Di@|oV|9_}OHLqy zk+ach&5*&joS&nZHv%rilyp{5rU>Jw)o_39TucjH#IoUKPPUHPUd}QTCfD?$6Jg5| zTgyvh(2{(2W3St$(L!40?`De7-pM)XGJPWmMug1$1u66_kEwsH;949UOtlJfZ=d!K zzbo_T!Gnmig15*@;SoycN~QV`>FUHFjaA;?UKzQV8e|A&(J7s)LzVs>JI_Tlazf>5 zdyB8%npHUSd-YcJp!{u%DkG`uV?{tdpM#pL!*NC*ELC1i{~2%*-KdkL%yjV(Cz?$d z=c>B;D_7PV*(232%)YRy_Zc^q@tB`479})LznA3VOh@P~f&uf?^xU7y|xk#?4 z3X>%pmU~}1M*yu@AS}y|9edDVoOrDu_#m?@^Iz?k9gx~Q#LlRaPmf8RdWpJx&+`xRK$8&!n8L$(Pv5 zbT^;})>8F1pVsMMvSTMcs{3Epi$JwJrU+26Fp8i?bJcNb@DfzUBqGki>1|E*`Foa} z=PeyMzxg$d$KN8!2*c(pV)b2FF3ReSk};}UGbQ#O{){RfbM4%XzM%WA@AA0$6xFaQ zpJ8=-wVc`2)=KjpES29}{K3|}i(gYJHv}fxn4+6To}9v(jr*M+?;9z!K9xUuM&eZn z!;hRSXueSP)apyG8WAzR-}K1icTOb=doBQ)lPN%}xf@TdM8M&O!)6s;{#2PZ5I1A| z_E3c7gIBy!+-G^1ApPw%jzlV~u#%pKXIwM67tQ%jI!vWAU)Qg`Yl^Y!+*eaPhq|C1 znbh}l3Ar*~qh2 z3AXIc7&Ii}I5Js28IS?tf zq5D{l*ZnFA`K;9`=_cR7${O&=YXgtGJ_!_CRQg<1XwW&LsJLrP8p!qGrH6?b4%ry_ zaCv z-a@P|HiwC1CZ#HryZon!+^e;xEezw+MWxu*K+Cff&~hw;NkoMP%ennC($cChK* znd1|(_IGE3koHsYT>)oZGK&$QwVQ~L#oK?}t0zoNCbvo0W+zCgDdYrQ9?sw9c3Gm* z;_jo1Y6@%?hpO@qVmY5*EqV85dTt%}QDGI7#>_ucWhC!bB<~sAKL3?!;FsOCn+O$p zxCW)Xxs>l=&vpn4;_>n%qpT4=KP2;=lt+GjimL4Lo(aRPm*RGxkXf75;SS`*%o)iR zRg7)_$uar{#LTiZn*YhShLWJO7tRbqN2Q;EzVEE%jqG4 z!9MIpMuHf&3Bz_l6UG7-z6$2)m_|b~0jggXmf*D{_J#DdWyvq%97LmBiKF7uCyHw* zWZV4a`}D4m2bf(y<(G_OwwLpn>dWNGo=6|xpvaPX+vt>Xn!#t*IIdLgN%LPtp~AfP zq!3{?Ip!q108bwM#(ygRtNt9W-~V6!13bQR00s?+pgA`4^C)2Zjz1liLC4b6!dOA% zuj+S(tM1zBWlDxu!}S0w@#>p$Iu^Ena55FsLc)zOI^oC-8O~H<@nkbt|!_=Gw z=^Q7GM>FFjy!_`XG(YFGlAL{87w*(<3xwD={&jVb3&?^z{S|Ga5Y;^8FVN-Ng|}4I zggr`;S;p-YT0EoufS7M>Pc~lQ%~RtP_nHVb>pmqv-B@!Un>?#M?2Bx6X+ZEswZ)_Ut z|26O$jt!{||NT-9v7BYuCukZ1*La9TAtxad0grDR>9uE7`4bJ8gTW&C0XyG==9;4z zof3X7rq8HJTT_TesGh2UZ*ftRML~4!5LK4yPwNeghRnvM&4e%fw%!^Vzqws;c}viv zL~7WudaiX5`#{Y}d>x+?$;4n@UK{3}9#XhSf+<1TB-K9~Kr><#F6(K2%g2w#uznEM+=*!RiG1srum2z!!sR3c`>cDPs zi92N-T{b-7^69dJ3zO$V3Z|ShCb_;JafinpSbW2JU6LGt@`!0?{oU(al^K@XXcHSi;66p+5CP8 z^%Hy*%FQR4%ikNcZ>ppot+;#p)k^i`_X_W)nhumO&i#0_G@;bAs^|BMiDw~#31Ak; zKlHfc^Ew(`CF2_II^kTNb?Z@^4vf_BMv4S41?%`(k_g(uYo!YXLf}h5_g2#brb0u# zheiI#(_ni)j|{i0^p7eRbnux-3DHs~GhM<1&C>?WrAca8?LW; zg&DSGu7!39gi|ml`6)H90!=vO*+}KL3kH8MGoGKlQZDN?DfYBjC>ueV$(XR(s4YGP z%P@@KXTcl=Jr|YiEVqAmGVSi?>{0rn=T{I>dM1RKO9g+Bb2jYdw1PJj65#%=@-6ML zWes;~tWDcan1%Nqom0)~Fz{)pYmyR&$TTVn*O+a=yAwMk0!*;lUn1t~($>@3Rwv$n zT$fy%I<-8|=yIfZq05Qin7uGXq%Wg*+FFP8XS3(q`^(1W|M&hf=DY>^7d@q$^BJuB z{LniA5BUGku>OHJ>(PLEBWXD3-q+BZhvLIC_m-+Nb~fUE$ECPk7GlN@rj+4uo|6DC z^>TB21`?D{RYc~c(zn}rp`iOtC+}Jed5!zL+IwE^?r5DJ_`!cBBSS3>icixfCHXzC zEP;a(DgrGe<)wr&z4SR%Qc6R}V-&4lhWpPvu_@E0&n0 zjCo+nw%T-6gA% zv4a6$p5_j7glq;`1eI@!uiUYN*ABY$|NTNfP_H7f0{Zup=xoeN@ScJB!9iNqL66Go zF7DC5uTPZQLT||MwxaSzfA6_oUX_c2$=_@ zAL#B`f2bb2-`A#E7b*335oG1dOv8q%F7|Jtu-rESvn?RUV1#AwtzU~mVC53by26H# zhr&Nk+}Y55l1;wj&VFv^uj}V#V%k=5!VVr|*jDk@qcerXCYhlT3Pra!rhlY3wKo{-9vydBf7EX7tlrrH zCWpBEz`E2xM!u1bF6az0a{nmaE-*0KPg!9#)>?cP%_gK>PDEfez<5qb!%P(swDV*G{BXdNbhphE_0@-+yg7+a|4d+Ci8hFnB=z0 z8EVmXQ{=Zp*9q|-$4ezQ{5M^lc(6^)?9R__zOh3MZ&$Z?l+}K9kn~7=Iggj=U=sAh z-Oqoe7Hmu=y=Xb&htj?&MNsxV6@Tr%`10K_v5WFuF_)ewwP6-yimp*UgfwkNSWH1? z8b!nhjVuub!Vqj>>W#uvmmJF@H95V&3~`+A0e1k07Rnlyci84 zCap+}r~Z9$T3^hYBQP74@9u%@KOFNgu?cQFkFrjtJw;I0DqB0MIq;H*)wx1Oq^fwI znF&xGixd0;K|W0(Hjgp-+Oh%j%V7x5V@0h5{V@!;f;Q<&B#IkZ^UH+&7HODI>r#X5 z(wtL@yh(eiZA+yKqhU@cpHu{U7*Y z6A$@wEwF-buscoz%%jjK|FGmh9Ic8Vpp)yd_l9flj69^OM$iL+93DK4aF#O|ymIwg zSk`DpRti?SQFEy6%Liz;u8cElpXS z&mssf85M<_Z%{&;MnWQ`?8q?|IzbKHK`{RfY#) zKD@*?@D4cvpIOcu$IOdl)E9Y zHm38IE9nMrUrOZ@UU=7`G377tSlO`;Gt5f%&ry5d8%J=zs8Y>`;GL{s7=VO#p<<>!#cR^%xF` zg(?E8FKnhNE^{Sr_{!ZAXOi7FQ(-&#H;w3Q7V9RX55g^b2Vx?`OjXAo?#KqM5|_)k z<~l2JO6G}Z(xp887Gxlp+_Z$AuXhK`939rqU*~~tY`=W}*Y~EWIw<{9EK2e(iJ<-C zp3W%f%e?H*r}+O|^(2Iu+V~j%Zg>Id5_ay&GVB)5ekC>pw4g*3LYMCO1#g`Enj3Wd zO4qB7*nm8ag8t^NKcK2WsQFWP0oqA!-piim1WjQxh4e0ZMMi6idsQ0rZUP|7U)q@o@Nn(6NghSj0)GQm1tJ!Xz0w5&~eru)^WCS%8o-(}S3 zKu?%fl(v@Y48uyXh z8RB#9x+y<}W47=}->Z0cgs!p&-b~tm2a*T+rw*BY^X9Xm7Z(&$6=Qx_Z65O1*BuQ= zS>Ft~0zrAlNci)32}5qvkMf^8ApfviHw%Kf_+c->`ezo%960UV^ER$FU$o_579q9- zWKtP@yT6$7IK&T7fPnqQfA_C%_+ix=1I>#CWPmZe(ZKfIU(qLV5x8N-(m>>T5P7)j z-q*Sm6=puMt~v!z&EBTZH_p8r98~3dKR@9Rf~)?DkLe4Fh;^G5tP%Z}5oFpBb#h8f z*kN$~(WTJ~ic+b!-7Vwr@&u#?b8SJmF;vt8iZRhnmsmj5kQ9*OGGcD7twUXnM)LtI zD9I3Gxq&f>Jc%G!iah}A<+%$MTJDy%P-DGN10nSefrV+g*WK!i{vptv=b;SU6%k#~( zz)T#L1;YBHS}^+|`=r#1p${*$G({ia+q~hGUkaVVKj}{;6YY_|sRW`6PqV|;&bWm< zI6DS5q2s*|xI45qlU8cX_FmAD+AM)?WV-S9K8VB`G)+4mLlXaE-1t7|I#Qm6RJH#pucj~R7gVpjM>)gY)+zu3fDH@*gUPT!=|ST0w57RIDR>0Oz`eFy;~tUlu0_A}pS{vr~OnVmrrhol1zJl{2ev z=2>6s&Qs}3z?L}2P^_Ig>pc!y__q2&9_#&V#J^!Ib(&erQca;G1NcX5hN~9VN%|o;2e<9}6y@D@DJo&&h z=|5lG+da53kn<$_0^HHMm?<+A6u5PKGMPSW&-thlTA9|nm>a8i=e%=Uf1N4$M{0EK z_Fy)shCiNeD?8|7cK%tOriwyrSJ6w`&4lqzXQdt$1k<>kbdf@efGBXSAUAVi z!V;b@(L<&DlS#Gt*u^1YUjB}vhmBMDKhPGJvUN)3mjU>-yS+q}Js5t>)&Jpno%CdF%L;mb>0`CIkp8^7o|I3*L)MwTNp3Mr`v zuLd(PQ{dBKW1Zr71Ek8@vKrBldW>)B4M`wZ$jDRLTJZUMgex}ea=G)}mrXd!%O7f) z)yOc~dXNjotUU2q?23dxs_CNUj{hYuzmwc;zo#3eX20q`9h+cBby*=dHJp5s3p=;6 z5uXE3(qi_d_}xiTUmhNupPDn8uJ=xP%SbvsOr*#gX*^}imd*nyX<=7oyPf9v+_|7a zeY4P&;>kHp)9mzEo!5D7>9PZCt0#w6zsXa3G!|xEn_4Rm z_6Suj%-E9S4b|afQome7S|`XwA9oFe+z8KZ1`j-U&#su48xAiL)|qH|{ZwEHIr`#O zFKVqrYW(#E9+qaM=k*$aYNe_|&cwS!__qZ96iG&i~T?nC*t2 z|J}boWOsvdTU&mA|F8Yf{fbV2egj&J4yF4ui!pJFq{1c4hJdsY6jitwe@HWqRT)=@ z&D%O!zg12>q*H6TQ51V596YCc#b!eJ>gkJ7Ts@{ZXsUgo5&GQA8`0u;+bH)RqR<|C4SWHwEy7p%7!zn~6j$d>qL`-mh=n zB0O_r9#3CcG%m2J%;UZ6^&CHc%Mmpo?^;}1e?G;}4%)#R?yo}M5A3w3b#3$Rh}AIm zg0g45d?(O*QKDPSJpd~YBk z{!6R=`@_HT7rysb|84=?Px){C{O|dxHPFCU0aN&g_e}a}I4>0-f4O@d0j8&omwWs4afU_&BstH`QpD~hh)R7;Gi8&1>( zYzCZ25j~^Sa?;PjB4Ubst3~H!U6$kbGbjej)h$qtX`ofQML7S_iCOBGEf|;(zH2f{ zCW_BVr7b~;mx7r0ae;?qDIVxhU;?LJtxkS0n)CdI&Q=qnjpJhB+Z=h3g)+k_U#j>C z&0aXo=Y_@@yw@UycI6vjjfbN|IxM$Y0@4a6IOnVE^IA#BIM#3)f{Of+D&&3=St@JD%DxSm00*0u} zDqpnmXrTuSO22(FgZ9`K>X!HNK%SLC+o!)GoMlPbCHnYAoiapPFQ|auwqtR3>oA8A z$W|dne8@ufJzSkf-l<3LfL_6*)GHj5EP)H&u1M2z`1SRY43zBkAZWFlm^x_jtTuH{ zAKD-Pr)|S53=^WTu}C2zPFlp)B%TBJ#j(~YZ=Tr@q|D84zPtD`VA*MgaaPdk>t%hI zP(lVNhVSuE9`ox7#!WPJ)nBa%hk>FCq1#1EmtyJ09>vk)1kl-L^B9t1=Lkm?X@Fh> z-Bm0*P?$BUO~#_N!jD#i#5^v+)iS3SQb>)01AN}BO0)ez@B#hvreb$wY(o*f`$CR} zuw)~OL+9GWSmpQ2fD5~kPT??PFs2B~)lurpv&!AZtumxHT`1sIuCJz)lz2zTk-eX! zzO<;gh6GLK!b+73AmhYKXT~x0p@Ia4zh#McZFoko!OOK*e=$`br4N^d;tq{7?4YhO z7dQGTc=EGGZ*=^F4(v*HlUFX}MOQ;BdAn_V%7Ixx9`=fpv|~XVh==fv<5gdGdS`C> zjquahSe=Vo^fC|zHovGs?P5AXD>jO=4detJT)2jyXgt!e=&!lzG=Y>KGX`s4-4Z!b zhxx2!LGIjN{Go{PfB3`y|NNA_{i6|(Z!}tL0J1SbV7fP+ z<&U2)xiJsiEO?&v9h?r=q8h9-5?)miY8m)i#^>yKqNkCEdwTZ7G?qPJ(#7W5%7z-m zH(rw+jr4-CE43mvf45Ge5Q91cXy3k9C(2GJ9-kv|17nQP?I2g}z^08Ls}a%2*+#g= zfl(4Fxd~iJ5>@8fSc%n*7;D}A?EZ$T4PLW^wU?mDaxAGuk%CH%i_0#3@y&`WRISC|}Dr zsV$pWf^C_E-|1Q#=i~a;YrfQS62r5Cb>s-AMzu^Q(T{ z-%-4}JO2XqFMt8+|E_-k?r=8(vAMKtqXDJB3}qZ^iNr6B`tmFeP;Q9cO&0^x4Qki~ zEjq@aJds7uS}Vs5X1AO=tNv{pWutb^8Do4fBD5A24b5d*%n_}!`ov9Bxsi=_ut^*2 z+8}ZUbGpU zg)+wHnZ{1?I(*uBM?2d^OLs~zR%Su3g|=y@fV#q){_W93XQH@D$kQ4yjhu|OKsZsu zN6u>EpC4RouyLoig-3|Sw+%d*nV9%(9~DCLbOpT*8JZo3D@GciESf~NDJist<~u2l z%bP}8j`PO8CwyPtHfm^WkBvPW;^))WsD&NJ{vs+8k&v|V_-sA3F|EEv6i4IIYhd9 z8p&cDR%_qp88@*2L!tZl0T}uzL%Da_Sm2vLOer!Q-RC@mC*os-Q8^tiuWKBuB#`>TkG8yJ@DMSg9C@GdnREmJ9k78I+@GARL&c~kL^d*0=*^G`2X%+++Ri4lFGoZ9N3Cnw1xmLIH6!GT~RMai(v_+Amp{}`G?{g&fpYWic>?$7g zQojq*Cf{D(&@+vxx+Nj^nd7<<)Pfsl;MMrUp3!Gi8q1Cv-WO?;6(YTw z#TU*F@n9DG!$F1CLG%sXiByPSoEvfVeFU2P50mjo{<}~ebN+l6LN~uHMLo4k$Opk@dKy%)o)1TVWN6jsf+a zRC9ntr0^s9%J6z>J0-H||AbT;(b*!2*#m8S-pn+1eM4Ku7 z8L)5%OF4^t!=%ALdN9|6eIj~Pr?VCN8D@OD`yc=4ev&yo;dPmfMmim=#Gi!9LBnYv z<9)GzaVu3tFL?6mAw|oNT%Dn3T+ie6QRq$_KGGCVqGm{I^>VQGOT98|DlYT9>k8>V@3K9U~y%o zhL>SxBSFlrr*dH>oVb<_H%(_-0_<_(d-{v)_eD&TY}{y_)Z4a$*|0eAf#!3jZ%VXG zsaZ$!LoGFpvJ93L=1PafjGS{l2O;SZ5j`@W^ga1G8}bOD-Lb6 z$GGPo+yZ9rzdP?&aP5Ae$8Rd{tf+xeYz;KMK3B!uFSxmph;$UMoZxo+g! z=5si63fb;Xe&_Eu1A2KuZ$x9VhGXRD>@eA$VFlm>z(M^$SrZl@K+ zQq4jz7Am38dwX?#NvqXWL&ZNLX;%Voq&)37>3k?Uw z#|p)8nNK8r6%mhnjkA_(MbQt3+?y z9u=i(p~W9HQ+iP$7FH3&64}az@nR8jS?vumV+3T->>ejz;FP^Dyvt(jJw&(K{u$3O z=g_MccF?A9;eyWh@C0yZ2SW!10(1BD=cG-4(n3JO zH;ruN;ADMHIWmMz!9qi(GCwDLS=0}Z@r93e&GfqL_b@c?^T)PdY%i8_2uct3TOe~& zvCqC=3aAE|DAa1!Jqo?0ug$q%%3kBjG`*ZIV5B zjwa%%W&LKS+a148qfi8WR_CFarl*}%0rZ;NPN=S*=(wBqcgj(MU<)1BeDc-6qoA_b z1mku?(D??<5f807d(<}fM-w@-V|u6}O?Rs=P>~9M%-A;9E4IgFenTlbBy!4YZ z2UjbL{+@_X*vMnIWX`|$>!chvS&O=O#hP?dRdcLuiqO>RB2V*8^O?5vwDw~1gMC9O z&~(4E63TtO@?X2J!>2>!@bL>cJ}9mhubCAIpE_W82Lx>QZxD0mr%7b{Mne6*()s z=xV30?~%O6`va90rBON2l8Nn~nZ2i-TwILUa;^$d9rgXJ@urKVEwc?#By>{}(Q~TJ zxIqujvF%#EvE5?a#v+|I>vio|k6yw<$EL{jfxRi=r`n7k$syKP!9#0^$PaD$EguMV zleyzRS_W#^v&2mQ-_jQJxXtQEi*%xBd{=Wa3^pM>aoOqm1Z%Q8s*!FlfkV|h>0m!$ObPde?kQ}baZ0h@~ zuy$uy=7c@kmA7tCAbvN^gAk%RW*Of28V1E>VIAcvqWFMGcqN@w4#QBf3YvDh`}^{){4l&6S~$xJ1bi zjluW^LfhtQKC1yYh_90QO|oJ3em*n`L^X;W+A+}LG3sz!u)-3Co2oa}ZRbkN9#c{H z_MWGr?SY!bazd{ZJQA~w%MOO#yAIm4HjdB`OsDF)pf6u&`|3{j7m_Nr9)+K&uAW&K z>hI)Q&jh36bCXiF3V`#?ewz^JA6TUrLp_lk12m(f?a%E6$qj5Gg}ZX9$x9TUo%CkD&Oa*4!?OhpOMErCy`d5=BpZSVCG?XjU~N5`F~ z1=k%6C@}ye+BqLA z`%oq9#-HHiUHqH@s-ORh9|lnSaDK4s8rbZUpM8MfLmF7dZzSm4}jpQv;%P8cm)af|FAf8m_RvZ2bs? z+i<|to*GGyqnDKCR@{|GIS^2H-ej6^spEW-=owx^u)M*~$c`1ZVF}$E=Si2$_BS&> zAYoio6>&MpXUD+6-~51uI2l-$m;fK9DBpjn?`UhlYZKNVzszy35<RgIVz>Buq`?%$x-2%KL_(%>)R$=BT!ILnkZ+?fe3|q= zGCR`s$y(=OW%fL0!g_Ips8aH%=sD0Fml&9vPSS_}z@>$uOq(WHnKi?#Nn#%qOR@+$ zbHVgY+c7Y&a}MYMa#OH&j(30iqG~LeeXwe3VbrwF5j5WGxM43L z_U&|q>I>4}pd1h%)ZDa;85vj5fFLJon+r5mY5e`&9F*+YQ1U0zHGW?Uxpc#>GHY3a z>gi;^<1CB+i0{{BH?^vYv?0?2fv@P_Yy`gSM%4cVH%^Y$A8V-;(-&rsXU)N=v{T<_ zB!?BZMTkuO(={&NzfbV|}gqyKrqn{*W|cQt=>M$3vXbE=r)c2*AcR z1`}c#wy)xHhMkJxHkNo!;)*LDmygbC7p;>J3^h|i)Ht{aE@N?w?T!f~Tz=hf{7ilj zTc&Hj#FA5-MMw@O>hCCYa`9yFsY-+4R3xy|fiF5zykAjmYSj4X%k!t-W~!KJ)1q5- z`6~^6jg1tu>=j+(WY8d-ON_3g{4QH`@_~+?%lec0gO9Q)=llFZx{uY~ofb?GLf2tz zqGto|K6OW(!nZtP?E9o?TeC2pe%BiXtqG$)eM;g1)@4 z@9!+e!DNKbNZNNcjE18$t>|&^sy5h=Jd0sWP~!jPe83mlNZfcE|0{NZU48K8o$s#@Kp52xAnA}ScDPhdaR zUjRy|#m3DajoLgK_w_}(@(Zeg9vxoKP+2Vpwwa6VZ>1fnx?P&CA9lOzMHGG}>?G{m zo5+JCg)c2fw4)t2O0&X^p>C4J7>i^_jG=0y<92=~Kq4<q&(vCI+g9!s+Sf(nM{(>rx>tHX z_(+eE60e^Z=%KML1y_0#<{GT_iia6{Q5$C8>TQ7+`xHJO4GTDfW3<+-OeRa8%e&uk z(2^i+Xsy{|F&KdhS%9g51jpk>za9^$r|V_g!-z6sv04~;_eI2_gN&;t)!^~VYzFlt zr`c3VNWb{z&C@HP=`nJu)39s@G7S*Q`FcYmQ5gfXvE?k*P`k<~iAXahE(|Okhcn)| z=GE$v>b$!y>YF~(2(|s_6M}LQ+A(L|wnvvqxHBU(<(f!@H7w?wkyQR49ijWqa-XEB zRBELRMj7kQnS;zxN=yWJapy$dCPxJcQhAd0Yai&e` zKUww>8Ts`CMhsSGGvQ!{Rrtk^C&)V?S3>*U(1D8&%oH-_hHy-jN5R>SC5Xu*<4WFf z;37NZ7k>5(0Q0Y1{{&!t`Ty|GyX+yL|2cqVJ1Giw>z`WHsP^TA!SbYU7qUfP09Pxi zq8ltgLYApREvlm$1T)O1coOII;eLktItjR`D|)iJ+-SUPvf@Nj{XH#gEo&}S(M(!) zoP(KonthyMWiG=us;j3QinzO;CdYM}ZH)b2X1B|fPW3RQF&EZuIk>0-%) z$;HCLB+0%!O*j3eM2QE;BqTT1VFGS6+$BRMIX^Yv)y!2MzrKlqU9X>_v9b#kHF9EW zX2@~hY96HUWp2hDY%&N63#AGk%vo`~yY5QLKuSX`-D4o(_9ZSMt|Gw%%!vZ0nuwJx z$M<+Kr93WpA7HQ8BCj`9Z5u!B;#qqG|Zm5R|0#@ivGod zd9V$pgrX;R#o{?7T)-nmVtb(tT<6S32<%>dG(O;Vsa5A42p-xI6P(iS#T%f#NtbAm5U<&uyjztY|m zARTjG{$V$~cytG3M$1CC_~8VxNG+ZjY~JpN%(3_$We-#j)iiDs0pu^s=R5O=xzIy9 z)pX|4pa%Z3e2_>f>HLZgb`vsAS^)Ny=3Xp51)|WiU-;Q~Efj6 zuL)-jL>!jHzc}zmi)Naw3Mf5*=iMC9Q$gmf@K}klL(IUAGVgt{KIjc?u~<;@dA3qk ze=5lkXW!@9?BXQC=S8g|Wz7z4-uaW0$*i(9xCYbJYPfDa)*@)j?QM&&m&rCYw&)A= za{r1aTvS1w<3Q{eodULJj>bJb*J5FNS?MA2td;awR7q@65^eQzzw~K-MeSbKl!Ng* zhYjtc)JzgzF?u&5IlSK-jEV=`(01=XP>SAU6 zr-oAh3aXqc_kVTcDpm1;oyjqNt6Em1jy6TR~>O`q|zJ0Uo#=UhT^ zx{tljTONyL>w+=FB3hb-%BEUpTA{toMER6zCLUjKkJ2p~3xczj_)qr;u*Y=5U!g^A4 zRt3mKcix;%&=GXB=u?Lr`tiNJszXM1o*cJQanir_xiJ!EJ(PXjZi0Kl?@5Sp5PZO$ zcyiQKpyP#B_J@G~&PWx8-_eprw&pcz*+5&1m!PCXE06(Z#@BbOUpK^|&Xjq7$wzxN!@{*P zSKUA>D+_1b0wEwx-G;4jDEQW258tDf|7wg&>tooj<;=|*CV4)gHLa41?22-HHri8S z=Z(ORszRl-)a$z9ghg4T2_uiHPd-L^(6ULZL^F;BYGiw${lzOo-hvOGbJ$;Wo>KrO zE8A_O`U|^3rf21<@8=tBv*%H-uj|f4simRA4$P}xMMQxnD_sl&K7VBwpp+wzJz7jsesS{U)>C}m6j+woJ%j4H~ z_LaW1zdzvXIky(m(}}#bX}McJ|5*#*Cv=xU1ajCee*O)gJrFhr0>Fpu%*SksILa2@**%*CF%GsQ<`=|rl2hp~E4?=3%VJ>W@snYHGzgLY@rvD*P zvrN*$9bal2#XgJlvy0|spPWcL*;2dVU>-hlRh)!yVrE?M%N9>nTIbqmP(&Yv>Ft}I z)#W@bjyYA)yL-yl}rnfsH&e=51j<=cNOiTzxN<>%Du z&$-24I{t$PzV%93sz!E0=vvlz>(nEuzk)pdVxIM7eJe|rE*Qb_8;n)bu64ru^S3^D zSvZ{crN#Em@(9rf*B{m8I|v(n(y)rBXX?ga4JU~fLT5!I!(O6A?R2kE%8zGMFWon; z!+wq1_^&6A`hEW-^Mb}}y^0Cjv|iPj+l*v{QgwBF2DenheZu?_Pfil=h*E|%p{?nV z;)Yu(t;R~|;U4PrqkeP6%Wn!rUTx3m4()AftSgB`+J^zW@~LMTj!B5~wjLc_v;b2a z->-LU$7=&x-w~VPv~n(LDR98CAgV8NFHeF{P-)ha6!&^9TkC_<`BE7Kt?iBVYYE@A z2mS0#V%sR-)Q6y0T1h<2vk*l75%5 zIG$(RKwhEI5KL2d7eBm6fIkG>=Xd!-;C>2H|G)R&tGd`f@Bi!L;eY+h;UI=oScXe~ z7C2Bw+SH6cSe`am6>Yg5E#^llF3;;ME9mk~gb^vi3xq);VcsZolNa$-& zrLgFleP-f~tYXt~+CmwF|9FiL#vPw|tudf^P^ZUf2zdZ+?ty|UGL?sYawv(t(OnU6ue1*sV|in z10(Lmj;360g9>M^T^I5MDLFdf+iRikqzXun`1v~2{kmx!Ly12Q`TVvm)p>s!mAlu& zy%g5pljT#0iFptoAq8@0MaiP?9;lfgCt`u03($|dg#$pD6>3Jjq}_}D=*BFNQi!%# zy17JZx$7CdEGppLz|je$9c1&v0=)=9k#t_L(uq5}G-uAiY z@Wc7dTXup0_*hWIcJRPCJNs4LeCM;QgA(H16xKw8iK6&P5nYxH*?p&4sckb=)WP5% zWTQZ*OilxdR*yUSh^pX3BhsW+!!*v5B^w5NY%VDGX=~89;lG{yhCf$M$d@&ue#`%T z3aRhr40jb%tW@U)3+cS;AVCaM4^B)W`td)^+(nuxDJuI+7!_L0#jB>BNhIZYyJ##( zX(ohEfG<@jjnSKco6u*aOZb%?9n*q`|Z5fc`-VJqOWPvKtbS}GpO8*>8mL6cO~gFNH|L5p0+ z9;KtsN*0HMLD6(dncic(SAe>Mo`n$+``MGk%Hs-vC3zkgB;Yk-g(HnE;Lalde=gnT z5E75BZwc*;PDzJj*V``X0(W(01!i9j`~c7*i6hMim5^#_8(A@kucuz$&YCitv7m=z z3)nsfOH*T-26)I);Y?W#@p^F5S5Hfoz=aaA`m_;sgTJbe7(Qqu2KxJoJDz^m>a}3^ z6?`J@Km+`#fuYolYGEV%NYXK#<{C}qp%YykFvrpK9$FD1g`!o-9Y)<1QRJf1q?B_{ zVa}lXwG_^Ux~Y8O98)dBqA&g`nk{;NOy zkN-~>kiFiD18+usbMELO9Q`S2Ga&I$<&Cc|Z|c8f=<8(ryvVU!O$J;zb}j6(tQs-c z5wFe~VZPV;(3}HGr@xua?+h`QfHjHv%=0EhgO6B$C40)z|9Skx`buus;%|7=Va^c| z-mD!%c^UsrB#G#y8Xz)KDSEmIm8|-7g7F}+cQEbMi;?LUi9*3~19o?%KIprh1Oc%$ zEu{kbY~We?`D)()idOq@d4AS#5KFY@`T0-H`1ZKW8p~BJNo}+UJbdP%DJi1yi=w8b z0$xh6w1md;wrC$^_|Ovn(`e?n-x;?D5iP$Fi@b|2J1bxByNoJbZ>tMddy#r-E;Xwx zZ&cdtI_VB4pWkg}y;f6vOqqoy%59k3i6Ijg0ai|6I)My;XI9q4YsW!?N-v_HN#{5m zPjl?oU9gD>+7nM~;GAy0rY7L?iGc?o&&N)lyc~q2-Bh+SvMZ{Sl2@p{o=s%%YJ5vK zn%zhA;7rXM0+sqgjtKh`tgbgFM<4g-i?- zJsku!DWoUV)=ef%7u^m+^Ji{L++6ETHk%^?egl+ii2ZqFB*1aT#*meQEUYk3-L5I7 z8I8tYN;6w@s@*Fn=`))u?j&A1B$Ebo$S|o?Q6x%x7?ICUPOE&3K0O|yYKd))kWH@{ zt+h9{!9tDsypm8J7jXFm0`o8bRh6kw^cnQ8>nZ;SKlR6f=8MzC?&@M&^vef&DFVyO zz~)ZE;PbR^n#uY)$&N3x9dWzPb?_jnigtGRX1<=Wg85}WPQ7_e%2uh>80m-4h?v3a zDv!q3*QQQ0q0=-C0gvrb2A^XdQ@Wk586g8dIP&(OYh^uHThVfQV0u)v$l4@4P|+aC zhKu7mDKBrNN>0Zz`hRStWq6mnB74UvmSP>-_`_)u*ji(6;`2j2QW2X+plwwGTIWpP zh#ijBupx0)5*J*^;6JOCSpxl2CUFU0XKW2Zv#xF7nbfOT6dcO{>4MGiC*ls>zdZO3h!LNY5$PGi6F_ z<5pi$vE8f$1-|D?70B$?xD>Sh{zd)4UST|`?P=)ojwKDLxFt&^sbH*QN9yhvY!W#F$FjESlf$2vJL#8Ov2uKBvwdCx&?48JkI8iRzFlhZG^BxIFd6fBalf(|BFxknz0eA*IwHm3WWoWa3ufA@Kh(jH&) z_dmX0evKV`{6=oaGl^X~G;eL1ch6eaWHc0UDK!I>!fJogis&G=k$H=mj)-Qy@2!PX zOcZ05W!ihQpYnH}gV0mtil=La{NrIcREjTBr^cXk8jj>wOe+Frl?!&XKlfT1!&7Uz zi;8^XZ)jX~QCe2jsk-YA7tIfC%MA`$8e?LY--M?+syz)il5c`-VFFX7rH%!FeA=|t zF`tcd4PjK?#R=e%~FyD$#^^9qQ|Mz1gZfIxI zua63Y-29h69&o(%d?Db+>@r{POg>yo%@7L0KhAo0 z`If|qOZEVsvIXKt-ff+|52lr_Lr|#FRghp8KU6mWKc41tfPL?O{SWu->JK5oRrL*f z%KoUZug*Wk^9l_01&*dfb@(UE`$Y|@k=jcV^^Q>n*CR!j(j9@*-PPrQ(9T+ufv;o~ z=~O|$)WV>sZ+CAVJ%Kx?tEDdQIjh*XkhFEQagJMf^^zyo?)G0b8*{p%s7e;!lqr4P ztD&VJxv@1cU8y@P8nHaQIm8-h{D=8lHLxsqO#K>;?^E=MLT0L)V@j05;qTg<4!jJ- z^Qrv?gIJ~NOTQJIIHQVjiVXO|V}qfrwt*04ytNGO>~B|L={Lb4k?p=AkT*VAn;rr6 z!;Cq{93n$#ObIq7co>qUr!pIa<1bN+`nH@eo_hs)?lKl8J!|p$rX`2`C%Buiywj%S zup!MuAoPjEwt@Je@U!N=$U{TUs;9(|RU!;}OpN2^12Um#fKMYPo(^Ihn0LCv(ePFm zf*VbW>ZQvJJ`jLG=5@V4VOpR{MI^6uRfU_s!;1JB=^Q5Rh^i>MxM7yB6DwvpjCW6G z_WGqkq$5rMDS}kmB8_^i`qxa&2yXy8X(qa~sY-d`Z>brKEcpB2;zCUfa9jg%D~N#tgGL6AIm@E zSpI6J(1Up+aogTc%FdA-{JT6xHuAVUtk9kNJjH3CRpU#5X?k^N`jDOV3QGKq<*?sF zX1(j{ffe%<#uA2-Lk|7-{<7`_(7Xc{Qu6<^|8?pYe%N&oHi3}Si2m2fentOyMqKUc zjc>=&MXR#IYjWUgbgVu-Ypa}boLvHGVbrlRYqJyT8Fl36D~r7cH#?CV#Ub?xFilor zay2M?SYO%H$oz4imYz3$np;YnrVu`6#Q9hK%#3&)KT`AVff&+-+BV~EQ5@my7wh3y zQFmUe=*$tT*?{j;rLgy)q9kq1P4VtVMMg`dS3+^J7RI&U^vzniBtr&Zu;dEaV<&~D zBr@GKZ##=q?RsPUsv2tdMATdyu5d4c-1ER8dY}awOQ+h-U_Tz@(^ebBbw3htCGsg} zAET=v3C0#m^>IvJzZPSEf-h)#FPFkBQk=>n2Sct!e{pS={+FbA1aY8?lU1tw;5`rI z#OhN~JtRqqP&t@a4_`O{qcJs4?SJCWEXojLo#Y|vhjcrtmj=zer80MZ7Iq7(xNgDw zOXtWQ*kEYo^!@CirNG&rv+Ps3MpF>M>M22<^-i-pR4F}F!f(mcMc^;z_lha%n6O!4 zhDxuYI=U;?QX}1Of68~oYLR#&Nrt5a(}q?o4yF`Dn}fEN`izrHFA$AGJkxsYYIDbb zukX`XM)N?A?>(SIx6P$>mH2G}lW5S4N}&6>S5KoHXG8i5lAubdf|@Z1cU6;=_4^<3 z)co7n_jY~8`et_G=(kY>^~9#%MI6};nWw;i1?DFcPWmk2TSDq>JVL)O^8MZwJ?mRN(@-Xjj``+iXR>+sgH7DhKA67asyZD!*lMeRCSDza^yed`O0^Yh@?;+^3N~d zPxUZvg2{2M@6j8P?LEXW0xyDEalij|=#o}?*@#2EeS~qCl`%1F@VY40XD)SKs=xLw zmNwT=QqEjS;hz=-lbdTtVShHzv_U@YaPl=$@PN+%C+PEpyQgXSd^YMWPpqtNo)#4p zBj)lcM-KZrV!;NRTkndZ)sN>psN1}uij^JqGhR2CMIR+rp`xSulk#Slt0wQ05)U1I zSqMjF8wbH;yxzXO?RKtM=UnuU2R@(uzM?7KwS~^gDI`ri3oW0Xrg0r8C_LpVx$+$R z+hQ?TO@pBF=FOP|J;P$O@PnS?!j0&7G*Wl#7zU3d#b6OlsRn-A!08FRvSu z^e*~om)hcrL)`pAr$mLJ!whYi3?fzzxTpg>+xz6VIfT@qqqg6oau&TKf{)Dk3k@1D z`S>kFersM2A_uu)8<~1B%$g=g(fy~@1wzU7`a-k;IsRI7S4@Yla6fU74KaB`lU08 z16SiWgW#ZV<+h_?WfVV@L7Ep%aHdS9Ud!F-x1-_rxm9znWNzg?`Cs_io4t!4+^zx8 z|G^K?cLC7hq|sxNaE84OUw>K!$#InCJ{BtSRcz&(Fs|5|4{=aJoEZy z>9}{t9y=&&;&gX*c~lQ~+EgZY&}`+(Z$^E~g`uAU(R2OF^GtNhCU*&}>wy9Nj!V;key&55X=7kb4&l3an`43e7P z@R-e`u}lq!?q{0AjvUyZX0=AjSg=;?XO(ECwnz}HV92vV&V&N?RS&) zSF^3w>6lOkhEQI=S)Q<2j<2iAmbJTb^sA*;w;j}da=}0pi7d&2D1~?VN5d7eett7u zm6Mwh_3FlOiJr`1`s&MA^{Qy=*7$h$;}YqloaJ5 zfM8J$3MBaPbt0WsmQtoqJwuZfDr9v_T848gyW^!EOhnVaf^{_IOdltUtz^r>Sxb?b zUkiEyh9v6g-Y;g?u(qmh`j?+~@yfqGK!Oj#%;7OrBSF*9O{2ENtQ#FmkKxB*_RoSe zjI-sk5cy7;_WHz7v#;1UVfQyt<)60pMRiwxG9x_*VI`Y-NyO3Biq0zNsu*6;%WpoH z-X(|uR)L#RiN2wx=9#hnt#0W~Rg1WVH1)Q!nwQ5eq-WtEbJ-4tUibXKM86#j5}09Z>b3<_e02Bo{c>C-^D_^RRL^WjF>$P)M6eIznd-#C4p@9&~FC0*uoQ$iUhVo(#6x zt)Gbxf8hsEu$uq3fBzr++ymglu95zQpNd`l07nLk!|A*0reWm?8-VQw1Ax%UpH!Cl zV*L3u?{g2omj(wWVVGxAqY#ysIeAdVRBA9$dB9Y3K<#a`hjh$Ln8cJEY=A^9vB@+; z`h%}{IGzPG*5&Di6nsgR+51ESA>NpMg>ucQ2y>s5dTB(%h0A3T6@!or`830C80 z0q%JAD-+7u?LQ(k>|i&EFdI&L!dp8n^Yyg#X>w=P^q|Bb%C+6tMm^^%Skz?$ko|=6 z0rID>HoY(GQd^+{8vbUcn^WX5$7{jeYBlhfTn;)77tWOUiUP(zbj0QfjPQ@W4xY7f zht)K_<`~*xnxNOsBX3rUBjp--*reI&vWZmXKJWxsUAa|N+02}*73GMt?PflRq^^4H z-SfN;golbau0=yzOMI1c$$_FWK&yoKbQ^L_@2WkK+o=kDw8#Qa^SR*@xY=#ZS0ui0 z&HxD{c|H$2c^gYny9b`Db_>I$U&54B#Drs)jH#PjhIrl?^t?sJ87yFb5pHJ(pG@(^ z(N2O|RLG#Wy)mIHm`(-5h8V{_P{FWgzK<`7-!=d~wojI8kDa0rQ{&J-a+PmGyeJ75 z_+G~uPh>)CPPdRkW6m$f8!GDaO26Kp-25+f5yxJH?4|J=oofzp5Ck0#)t@NfO|FZ^&CyYB8rAa>0;3~vE9 z=zkNqlj0Oi#pnV9j$Ol+tW8!i3y4CjV#!ik(1z8q3p1On_DPbz?Xg2XIAKIbi0sb~ zzL}SWv#hVkQ+vrFM4W;5$Fnnk>L1HLareo(7ILf=7LITFqNHnh~^asRE)) zsObbTDl=98?Kq*}Ma!P|1D1uZaq(xbUCEjDfhaTYHX=#Bq3L&@pf&f_1&l< z%8Wrn)U*i`LN7Q;6Q8TxvtOC$StTa`{yF;*`!sGPU&#KPUs1Q578g?MU+3aULW`xB z_pSH;KU{rhR1^62?Ti8f3evku?;yQd29O$x5RyPbks1ggD7^??=@5z#2qhG02_zw* zhAKGp-g_PC-G+!|ocE&lzW=-Lt;OOKAAq&9&pG>d&ffAiY3>}In@mmdNQa?`_u?j> z4a9BPZgSdZyUvmD%*oCrXrvbnfR*z0A2NM~k7v?qLwc}BW6U46*%tB{(7h5rzX-V9 z;0z!;3)!?fDvM})^`!{Suuc3XMi;b^2;+lX>r`leDlQ%)m-~=qqTc&u=F90M`|LwvLPkm@8M!Kl zbKac}R9*L1<9=S}5dOucjQ)@I;F+fYG7j-N8H8pgb!%giIe)R0Yk~KGx)D}(Cr~^= z$4NhCwQW3&{;M@}$bl#(%K)ERf2o@#Iwk;KU35igg+D6>UoV6!_9C~ zXqX&j-YcSq$?{n@-V;7MRPY8r){&}yU>O^tchY>R8`SG=6h!gXTj=}{%QaENu~;ur z?Lch1oi)0feP%*+aVw~S%>pD0Kmm7{7y(5GZIlVvT&38%@mJ7KxrLIA5XT)1GJ#ML zm)Zj|eK|LSmc(fb*E)rN5~nfyE$R$-2=#eELd=#CZO&z1iPl=qkfJhcgh>-%&=b{F zzjO?7{WD&U?vzRc;ubYux{nJpmPD{9p0@twuat7iU}qp#uM{9#@nXv+hZuRzO!vs3 zt9Og98X3o5R3JR(i@!bYPZE0|(hq&-unB=F0ox@H;tbR}a#!Yw6l72?ZNd`5%{8=! z?G=UV?vhM2pi?s);niwW1GC1G=hE4c=Z3LZN>C1g?!Q5HNY#^+eHrn+H(&)+GB|zG z$R@sQi6vIgnYU&PI<>_yT_8R9X!K0(0*KW5_`NTa#lU4aQri733JOibg3rei)Mh)j zZL229i|zoh+{91m{TF_;ME`@I|F3_Rr&CWY=^Oc*!GlRC+$rQhEJIf^7jb|qAePW4 zuXcrUH2o*`sgZ}o_T3Li%gzFazrw{(Rh0p^H^;e3tnytpl6$}XY|K2hc5x+#py=_$(C>Wt_@FOh}qcO z_9k0rZ*AtPk5(^Qp(5 zPjud*JV33$`X>KmY4-$JB|bg}H;1pfH6I-0U!Rks1=C}zj)Ld=s+OqznII9;!kuEv z)xTrL45>@ZiN77%I8p1Yy-DPCPa(cBxX46PFP1$JhwV-{RAbrnC=RrEJ1B(EB*tuJ zW)K6J6(u!AxVwKQJQH|nSGsclrra{O!*%7)j&_( zJ?G_-E^yjJ=a8vhlSA-ZXQky2@Pa%{23PrR3<~TtcSmEDYR~OUbIiNhN}&@~yz7u5 zCngJH9~V(T^!k@O<@_Jd8h?rq1M4G_bffQl`q_T1jVMB$4&8VOf&O3kk!}BppPvLI zA+ByluT8(I*KfZGk;v_(bOO33F=ZRF?6vQfC|7|?@h(Bj;c)be#M(t2&ASH4H z{-%2QB?O<{a9p*eawEl2Axv{REQuJjC8(73&l8`elaTLUCl-Q|Enc1FnEkITW#V!z zqUg=6d_PoE%@5_y&%@#I8F+~2PP(>&g7hdOM7B6jblwph1CktFEEgXmj-tgKYbY;d z7$N%2a@oE#g!-*N5KV{3U!N?}0u!lK?gcB1dPj8Rha=O@=eaDn%neN;2Jb>vzMT&2 zQHb_D#oNXM=}e6d^ul`J?cJM)!k&q`_|zZly8Bj|fy~)tMAAoen)ke552^O4IRD=TFS@B(T--cI(>t|N5CVaPC zZru)~S5Xe#v)ro%K%bdr#pn~h9ypx%o{?K(6_8fu%e%NM{fA&K$cU*)1n93-Z zy5O_f@KB&1m(1UZm8n?^>%4kwp$W$%#JHifih(7aCK7UbNR+QFpkuY2gSt_^UtNAh z$+mgpBNfndjDzmEyKxz<_|>PgsM#enp?wElrN{sAv;T3(`iUR90U6x^TFi)!pUi&) z$hVyQjc`P7f2_^v@EKf-l*MPjya>>JobMr_onE&Ts3UX&LgbwE&K)>VWWMH_<+<^o zX|(fDe?Zw%8j4$91m0W_hEVr`1P zv0NGrx2PL@1+=|U&d?F4S)@lket+VC!)mGxrOm7vsPo#JdWe*4yVNVX!=@6_QqfxJ z>YsfzcbwdEU7!^VHZ$0_vl)U-h8%IBMQpj7526-M=-ooA2M`tF!O{p2ul0ubY#+u? z6sD)k6CR8zqrIkfuPr*Fs&2PJ>3N|r8ZAda`}84h(NvDu#_t!}=1M>ZH(Q@sTT!^h zKNyU!I@ho=i0fCH&{u5XG&JMNOLLPNf8V@P7^~`BZNiGx-5!c%&entDa(`{%7Sx%$ z&U-QX5gEX5zJwL?Fj1+fX|NC-?y4xSaqcp1rJGh@;^+=$WxSk(_pU(#6zD6Y?mK(` zaNWHc{TZ+7E`w`aE-NR8=+%>{vazB^LUZQ%HnedI5P_CLe^%kzs(SLTK9|zvRpXXr z`eAG~>@jE7Rb+R&|AOr{=L@z$O8l%KeMqi0G#a*vXeSLh+sRA$YdQsseuf712ulWJ zbQC07z-72wP~Yu~JOb#Z(j33|M`H6o{6oi&+JEuS5uy4UiHaua&(hr!)&mYaGLi|o z5%7{oSvqJM&(u-8+9^1{TXM0eB##yf&f zE^g^(JTcstb87BPCYWrt&Tq^&OjY4;uCLe;7tvp?GmTE&vmw~AC+d0_>lgrH_EqD1 zTH&ZsF8HAAYetXaAXmwYMdpQtzldI6@u68&+&)=SG&akD``iW0#;bONqnNnVMzx3I zM$AbZp3-G6j4wAC8HYKKlFWG$6Ijtg56dob;ER@ZFcI<#N^Id9(P8Hy{X@s-Hh3q7 zLR|J=17#T%0wH9CM{k^A77;qOI9byBF9{{#Xq!oBrp{-ptoSNcA;PD}axe#D9btd1 z)3M7ll5_Mqwh}(whtrm9v-5R{LfLBCs*j{Zyc||`+g)Icar7x42E#9B2v;em7A<6A zYCg}eMv-V}virK}J&{EuA4|qV>oFsz`;;5GZ~a@yi|JiiF_mf7;SU&=8eLo5ifdyI zgr5ln+XEsNGb}x;6C5j1T>o;XwmHii0Irv5R)`5RcRyvj+-!19OGRhI8;Mo$5SF(+ zq9XZufvZ~e=&1qsBsN{=Q#ie=vW}=PzKyz6MNEy!<7E|JnGIP@TR%Yx7N@(l$R&qV zV(k5SLpXpOx>NC@<3R!%@W$u2Yt_ajV5infp{&J5r-6DJ%xH1R1<`8oXo1vR-O9dZ z55WH?|2PT!8$WafNKO2|@Iz{#x6kzVcLUx<)WV}cdiI5`1kP8s9E~VPqsrTBsG}%q zQwrqu%TRL?jsYZy$VI|OXz@iv3X0aZ+<~8^zL4w4 zjWY1Tm99I|V1-JU5d+Vgo$*5SxU6BIm4huT(n=^gFU$C=$XVNa60dg~Oe+6yaf}MK zBv4*cU_zhiqdRUM!6}agzJJ>(+VRRGBDxmD{A#(peD2fPSF=okA^qr089R{mj(pRGGQaH zAnxZfnE2)_YBvpK?;su(ehZPx5uQq92Q3bctmfpR0HP? zai0md^{o$>{h;z{ty4C|3CPl!-wQs zOEh52Lsh*D6{tY}RD1SI3ijy`YA2HjI6u6_L4`#L>f&Xj>DGOjQWYX_ zr}nX9x@<|D0rbrNN$iNBX0Ybxh?^ElT7Jr-aa$UZ4^>|^h zOpCS3tl2nJ$XsHUnlyI&vu`z2=r4z)_WpDM)o*!b%6Nf z0;~L$T9CrEBmNXZgyS0aA2W>60@)l$u+q)UF7(}Vmhjzt^>+sOQkDGbsWr&u%AH4` z*xsi4T(4G=Id_U)u?rDamQFz$is+q>$9CpV*u{M+!wb0BW9KbJKI*=Kv6Rc!bEg=| zvo!tXm?^57?zg8ppwizMsW3E_Ewrb1Qyuj*OV?!F`Dfy`1#@~(#*X*xYkBpq3z-s8EB%-rfZkS4#H>~?MP2;0IrD}3|uCB{;7%N=w z=HmX64U|san**h^UopXc7}Qf}-Q|?cF?k?KbTR~vH3ZUoGdC7%_HEii&I%$xJ~blRiiwvOQx84*i`n+XN>H=x3l0 zlox%?CDVOdCL6Lr^p%GNRV$<~Rd&X>U%o-c%X{rj%zU_C`HDyuVDG9mzd1s09&w35 zg~S__tC|*so7La=Yrg-UxE|!fziJ6vhkWy8EHu^|hAikqn@a-2-+OqS?cdQAV|5tl z8`34!KFjwoKCJ=TFZA8GGO_H>##gAdnx^NZiQDL;t~=jcpa-X^+bM)fcNDlP>8H0JHG<9kLYZ)IZR&z`E#K2AJ^E!apP4N;rtg-4iO4U<90bX>dqdURC=U-S%yN-0^3tT$oBmrn@M7oT>&y~w&;qyQqiC&<%5N!$yvr{WEH2RPGf_T|8usHmAc z@_l1<10S#V^i_DwvPn1dzR+ce=uTUr#A-LiqrfV@Rp1$yo{j$JP zFU+t$&8wyp38mx>vIP<2Kah)(on|%R4GZL&dgw z=}Y+wix{}=__iFYmi1u)l>i0#uC%a@q!_1i!*FUd50nth7ZckdY0&o#smiZB%z(8N zJIS!dlh+oEI!dF#CYQ8@3pD{&LJJ-|c#5zJ>Seapl`*dtu>cnJM=b^@zYTGit&<&Xab{+&NZ5nYxL}z_LlXsJ3`kNQGzJFg^4g0O?jY)0_@lR&%bO#f9Z#G15Jrv z_3Jj~_fLpM>xYoI7%$um*b1Ff@%gGtf*Ae^tye<!)fY7k> zP`(Jy7_D4YOYpK__X!jUUJ2}sl!MU_Ko5FeDTP+;T2^LFyyo}noBF(Z-b_R1s1du7 zdd6Q8qfyHIJ?(}go|AuNCaM=*Y@D#}H>_-x6@p(aWR=hQ!l?DqqE#mZmMdfM%!)8A7C0*p5z(Tr(v@A}DltF!CMnjJ zt@vl$y}G`S^YTNGS15|PP*2^mVshq56>^dDTcKZlZeuYodwIcGXcHJ#+O{GX>Pbs2 zTdtg7Y-nbCEST0;n`nl79Jou@S?PcMFaB{b|H(gIKNBqf)BouI8sO>GtC>W?6Q*=S zVTi@jL|rKij4nG@{rn=;P)82Rak7L;JVu{ZkMlj(bq@}!vK>ZUtDmtv^B=tX;2Ol! zymE#J%CguWgWn9IQ7V62bbjW>c7YltC#Mhb+Tf3{qLcAF9+T;s=_PvH)7Imca=?-L zBwc2tx@Ws@frW9ocA*ba68;!j-ezp)KF%goK3`>rru!LcS_gWb`YtTsv5#3dv#q6Z zSH$n(Ck{W`U+Liy-|_#L=Bz`m#F#V3JNe)KtLxcCvQ2DGt(K!vs!6p_19>*^ns@}p zV8cZTn0ZP+*GU-K$sF=PwXi=R5UnW8nt0%Ih7q3Ij)LfF`$faq1LF8ms^!?%>LTR{ zHHy7MjowD6;_sIhMy!JzUDJ+-pK=0#1@_Bm6WIie(n8hUiK^>1>S^1KUMU(yfqLgh z3>3*ZyqrZMj;og_j$>$bTUd<#svI&WkIMg8-u$DCnXZ|r7vx%~-s%BfWS$i;?*~=C zRKt9+&&ajI@oQ7~0Tuj%cDx)D3gv&w@nrF(j*xLQpyAy|;-o|bI7K|kMN)N3jKb?N3c!Z`$J>Ig<{VLywO&0oL9uBJ~ z1;RsGyZu4Cd7u?O>5+SorhX-#K;m`sCH;0#fo1iFjm|hwbw3693>60yiP#%$*$Aw5 zb0(+q@eAqNS=B6{KfB!K|9uU2SBj%4hK=&HhYcxXaeH@K@N8&H-#0jbal$syveKXqPQyR@}tJIyr zVAqC?twe%r<3QZXJn|R+e4YKp zKXm<>zW?+8_0P4WQaXOz@|+_M+%o7Hr;&&f;t_rPq89qLul$_P2)S6v;@}Bc*!}Zs zhV+|Mc6X8LjV%8Yq-BEv1)qZN*eL3b2pqo&nRcXv+f{#wlgcNWXGSEAgO zxyGf|{M*15kKTmXjyy3rTAH`+JES!kKbfFVT47X+U28XVv+6G|p|#VDJ&ZK3^?Oi+ zLXL=b@d-$C0a|l&(E`avKTNVPkipGXXAZv+79tN$Ois;rc4jKHmIS<``7V+LfkVa$ zuoSg2u6_4jK&s|-6fIx@9ZW?(wBFemAoCZLtt-6XV{^1*Z*)XSt1`d4 zv0>uw(>$(4T@w8POkLJCpVl#T^O|3?RY3uJya?Us*?NHtXwW|FBmCG*=#1PQuc_B; z>2SP1v6W=Atx@R?ZJ1=?veKB5{?Z21T%gC69_p<3qdUWtjZ=}2E^#TxOBvT>?JRmm zrVR2%Iz>uZ%{q!Pcj^|&4acI5JRbhl70o3nYn#HnFK1aZbLrT=+plTuWVjh*C8Z^v zDFSaJL2@9E(id41B`t~{y&g<&j&q|AI=}GaW&sC7;3mc<+*1GcAN$Yy1rcm(!(x;9 zReyKIcCP5&=fB|Eco(Q>`fzb^szS*~88x4TA3>lC5ETOa-RdXSNgkwt8 z4ed)=BuWuBXGL8kQ_h&<-D6rchdms5tjH9BofITdjzx6Y91u04H=m;HOvMKHGFb7r z{>`tY+Hsk&4=&uVcPYiyxsuD*LjaG%bf<3-W8#E|?yB8{_ywPc9lmjM>k-`E)*0b- z|6Raq#e-*e!8#nyM$2DaB1u@ER3C;Tg&XpCNn5{Hm)A+#J+7Z>`h7}cqQzxGtnx0` zCC&+?|5DIHzBrGpeaVS1#ip>C`$q^@BRQTFdsAluHC8U=1t8ypKH|`CX0qH^3y8QXlMAHNk$qd;-LhP-E@troHMJGDCC31!kCUZ)??T>bwq-(M+ST8H9qod)Tzf}?4 z*>CeB(xn$%SB%v`9OLP%6+i1&apX__2{ZQQf^cywUNUF+4}Qq|-%=GwU0J%4)&_PW z2>2ssxO(fv0THt(>tc&(T#QsyqXC6lmX}SFePj<q*Z1+(M5-h5W+CFwue{|ML#AEe&^3fAI7pHWzuWyKf;FrNYE-fVW9DhZLE z&L={J057;Oc4q~)NrTJ_JM_!YhRl{!q6<>Qk`|%COx;9tqOo*6HVbBfo2Ue_UDl|& zHs0LA&m%t-eYalhl_Sp|SJP(7B$+rc>2H?b{NBXb-(0Z0Qpl7 z)GInLsp?~H(A8`nx7&ipDC?YstTbN%F2gj9peB{rXG@>+tauFrv(1XS_x~JvOAi`D zb(P_y9q%gz6d0|lVt?Z2t}vY5K8G2FibJ?06*2#Ap6M7mpqod1`?h6vHg5pR)YupC z^4UZUte1zCg|d2+BH`soC2Ge>)id)$(R)ljaT?7v;0}QE3xBAB$b@M`Ec#pB4I7Bj z)vO5LN>HSel^l&nq#!PD08#XL6IlPG-c#U5=e_(@+T+Uxsm^OB{byM%+SdjJj|5wo z!LmA^iUV|;|K924#~=#K=0;ub*j{GFcs!L6F!D6s?7HLiz9#XWu)9ASY?=Q}cSEwb zFA~`p`3b-)bm+K@7pT#al3i$&Y84JW$A@0?F$2O$u)*6UvOY7SQkVStac6F>ZSH(U zqmB3T7TM$*#I#sCc5ASw&pBu!3Jh(7!eu( zwH!!7bAI1gxUczTRupX9wzolRzoe)Zr@@R>wrLPYbqX1bcYR}Du~4vg6TNRvzIXLs zdM}(c7w$Lf?Uj5qGUb=W&Us?x)wYv1m%!;HC zn{!R1>C1pMA+?S9t^lVoq-UM2qwmZBW=#E*AdH*(95wGGfz(TX^q|zHT>LlDS+j2Q z|8)Kv}-y+kD>~GkZYlJJwz3}w2U};(0 zK#p7N@^6c#uV1$5J#D3=lrS{urpWQ#gpt@ZmGk>=aY?#~zEPJ8wo|oSU+b{?Y|6q> zrjE}&W(_&Est_`oef<+ZUnlAK0f!mE)lJ1EZ7|ROLqBx?7J7d}-~RbDb$4+Mm9UdS z_Z74!meaR4R+aJORlcv^NAJNq7_OFIl}yD5-i#!@U693=JLNt}!9JhcjJ;TU{>JVp zy2Y?RlAck1wtm_=Fi_%GKF??nPGB_W>96+_SJVw?6EW3!l2_|UmAd>z<4Hu=&}py3 zv^JpZv{%c;1)xg4t_pFdVBAic^iv8gT#vVbG@lgZq-DyO%sxY@^b_#`gyBiA$Nsa( zV?@%?M9Wf~=+cIE&rHez(1$N@cU&~{IjyeSoGVq#LyYN)BFM8JjBd*;c>MH@ZGPeO zvQj}AX4bl^oL9ItD&Rvd#Ek#3Z6YaqzbZD%L4VeVh253tqi;ZM*02gAV>R%965~(e z$BS+$5zW$ejY?agnmyxpz6p>VFV*!hJ$9?-L1WRf8%eA3T{*T@Tpiw0Fe+D&{d^-g z;hm4LUJ~MX;78#56Ko~SWVz!#F|sKjDOvQ?&NUrqO}f^?+Hmj#*#JmPSCj*_nH!!= zlyoS8I?}KitW5S>7rX&n{6%|xTbY))gffz$*XtN}v-S$T9Nf2fk??YuBTct{B`*SM zw!_Svd}9#cS+$-e$|)H!52*TMGF@=|Z3+H%Nj!sX2pFSfLy>*=(#2mOW0$5HuqkK!l^&iVnH*X6ur}@C7n6P{2Wb%gdeDj1K1;K$|*@Xhn zk2KDMf-qlx;)nW*jvojeKMx>3_c#8Be|~MxQ|b7bH|GD#EzBe9iyXm>Ov3p#cPKOu z(E>WGC)w*E_nfUpIAXrAdhE4!V>r#8iv&(TK%y+6C{;5KXeo`I$Wj!}VFPQXh}Mjsg{+CJ+^cU;S-Su+*2}(U8dQx$bhMj1-K0Jl`a()HyV0=Y!e{&u9b1^EUtHK2{U+ zbXeutWL@#2OJO;-knPTeVa*VRtN4R~0yiUrFDPEaHfP^7K>-uN(g$TG9@e!G;Ql0f z{YP+4^o^a#{ExHt;Ky;rOa!53DwabtxZU40aA4VXVRKW}m^)%eVf<;WGD}psd$wx6 zhn=O`K7hl0&s zO!d*>NYI#JC7S;DsPHWnQW=ThLIpCgDq06D9fpi^f4qD61pNn3FU#+EDHlS#ro*eu z0X7th#g}0K>}|Ba|;SEI$~6`XT}Qss#%sgdeTm=C$0H)+sV`) z?N7oU_sTUl6?zEn78;ip9^?E3+5^drLUd7TC3IpSz(>&C(My{=J1D|w^keSzXzt45 z#fg;P@%eCs8WUn-#KUW3l*b)F|7*G?Oz3v)?83Im3Neh z1hdmeG&l;I(i1L}+P8b={Y_qdv-4nLWl0ba4o(QL4x}HhToN=g;_P=;_uSngR}iFe zT^P-f=JkG6v!T0K`8{l1OrC&#LtLLYtT{yQZBE$evA9PfQq01QXWq*1_ zmHnR;&-iXD?%Qc`DK@I>1h;!fOc=bn)5yL%-7+Fxz@Vkde!H5HLE=J!4 zxTb39b(ryeBwu!QX+pU*UTY`SReDCwCw7I_*9fQGcB;pGogF7)7~E5yjg_v#t|%_;FU0BVee^#FL$%ZCu#H5CU>v-vKwV=>(N1DA1hmCK3KdL zFauTD-;{mOu84HY-L4tlhHO`Nvj}txt}giK0>v+;G{LLpV%`&64(o!jHrBE%yU6pZ z7-qZ8!9S8Tb)#NNivD-6(CRb8cmXxu)rIu4)Z8?UJWrcGIu;-ZtIV=0^%Z@ zgzDw$rcoa0aZZMVa>Ok#)Vb+>)8jyYt7Au%5N$&>Ek0D&PyT@@!@*u&-kzcAU*?$;|Sj(qf&Q`XbX@>+kVN1mEcpM=a|bB{?>X0snwB6D$_;+cB;#2~0s7^kLo zv>9NxeT6*2z|YL9n)Apjt=l?49yeT8Ca3rSai6siP}JUt;)2=PZU-H1AUySYS^-x258Z9wUCvJM>3ZRaBDDHH*1R#I zd-INH(lwPX9&a;K?NtZQ&86zL;2_(XfLMAUdTV_{hm1~wSg_ZlIN*xE@E&a}OIo-p zt(veV7Q-#;c-kjIi_FeBW7WuXc!`mr1q^KkHUgNl_+}4~g?_uKyvz?L$9>o}R`@O! z`PDS?kGcz#Jtwf!TpycOe0rL6nwTruWUPCZ{``p_tB*hDuTVJr0r;o>^FR2ZM^}wV3Yqj>xxW1~dcGdRmmxahOYqL?ly0XHz+Dm! z(qqp#F_$vL1Ms#NiEUIa-8-d2DhE2*&KL7?#>8Cplv|af*s!X)Uj6A9)aO|O){G92PX`u;@Es293*<}r z+2YSB{39#iliO708~04!T6v*#%2ah3QbF1BFieF8+MeJ5`Py*x_F5>{wPB?~O}9|Z zhQT7=dpc31qTpT?s1>iAy{A!}6c&9=uf8@ajbsHsaCUx!XOvYFeIrN~vLr51Iz* z2d|2DwN6uD=DIfge!OO|e+TSKv))wk};vCadNS(uFU%h^9{_A(27hQB8q^RB2 z(LGN;j1z0(fO~RX@%O^`0(thHHsP}XJf_u^VhmN1}|BD}Ac^s*l?)_|M?s+Tb zLM+m}42|~1Ir=rXzilWyYTsYD-B}gQR1y0$=^BSlOyY_aGsC>`eQ7yKTjQ!+&=#d~ zYCLn=yzVzS%_TLL&XV(>i)SKN6^k!@QAw5Ib{PiWLF#f!tLD0(X#BZieBCj&e$&!q zxmB8p)6-Yf@x8}f#eUy&3-#?ruI<(2Z1qdb_Y4cB-IUayrN&6F$3@LNO#CdFp9hsx z!l#-SKv=^3f-V8 zIq0q%-xi#Hg_LBTzAh0RE znO9dnN(mLN>T@S5XVxu4>Y;>edh9!6nVQWAny(kPL-$B9??W^DMk7{_nRpC8%JkT* z8)6|sJOlKI*nEr5dG9~LVCH(=r#&G~=nKi{Bsd@~pv;f@5BJNWvYbXfl=ULiv+jOH z*iF9%TRb_cyrLOu3OdfwwGGfa;Bwtq&=NdbxbIv1hQeBmP{!xkb<~27Fcqb}c}gWm zX+h7&r!Ain3jN(Hflpcyun*CU^1SrPQdf$mg zBl+R@-Fx4ULdDqme(8t6yFc~AFt1P}BXM!r|I0t+N25RIuY0@&P&gLIEE=*Tk`W<_ zAywnrkDEttHylg!$5@Mdtspe%jYfQ`EF%4DkO6x|$ifxUC7XIQ`lL_X#4-C_UN*}L z`7SKW;LJiTCluV-SmJQO_rOQ6e)N?@XvwSZ1L+Q7yiqD?qoId-K_87yb&P?c`zyZ} zxmB^=z?*a;IqN@42kv7o0P>jFO1%v3L}&3Qo3+W>Wt=>Rv)-$^!oSyyWFfDZM71f7 zB&O>%6}KhDv-RQpf?VFpQh1EwpDi^s(vWfM$e`YCi-;9bL!tIeV zpAA2}#+`C9tsn}Z^+L0zTC5;<_gZcVnJdHPH=9VUUwe3+FDL0%4+QvksDn=pg-C%# zhV$q3(}l2QE1;>%V*$y=`>ut2Q%EWEJ0g|Z_RZcYf(y;;FV*1_V8z^`Y+Sm50I{O? zCfBuKg38|?b_WG@LQ>?&T|5fbr^FC5eh&FvHcA zZ`yB1^&4icQi@)Idu$v+*l^S4iS6A;!nYA;gY%q)xeAxGrGauHf&bDVG^$hYDUsuv ze?bZQue=*D@?q$7P@Ln`X0en9nWp$UiCsjSBjjVckAAF)Pm&B1gac}r$nspsT$nVJ z#jIDM^g3XZjd^;^|5l=gP@ubJ)NtExzw@aeOlz|5c-QAt5mbUTl>xwxA(fG#e+jBt z*4JOU^2`4a&izY2^rELY{lE3=Exr-0Ofrzl1!HeUUpUjl;u6Ds8gO#ukpyZxibOmq zUsdY5nhX6KR&k$F9%7%a>0DZtTbc=;$XnzyIw90^Uy;+BCF&A1k(#9-@M{OdgycF$ z>0s!yC{q)bqO_#JdsLAC-6_)tZlCN*nT4`@AITn!#qT& z;oB;r)rXKyTEYZ42oXHOx8;Cej}N?%cGjPgUI0}Z#&cbO52zYO#MJm5+r?mI#Kt_h z@l}~DE@dn7d|oPv{VQUv!;qE&;?}6VhT7Uf2o?%^VwEH@UW( zB|p-l1O&v4Br+Giqg<|FWvOJkpdA~YJQP{r?owFYRFAz5lBSX=tBRfK`P~ns3CxW) zZY9I-U#W|VG|epurM+YJi@t}qR~A5M_o>jjYF|0L_-l>2OtUBM;!Vz5`b~3t8U4qh zi(ytH;^tK~J!<`)&8jx6S%WkAzPoBJdUH%_yJ#(9-}KNi?euipD%6q;A4bcPUvsji zTl-`jbeq5YApVVQn*9*QmmS3sgpVc z8l`Z|-bc<9aRNh+f#D=*o(itO5uDFc9PX|^2S^RCuaOWXkga%#KvLx46a1hlCOD@^&(Hq^9ARVQecU9+qQjWnDMvHl%!1 z?v2TQ^A-@g3}AKetc2W_4=y#+mKWE!q_4UHePjgxv+sFh;USLSlf-;yYV2M5We?+i zU>Yu0PuJNTiIfWLya#pU7)%Xu1uc8w+YB4}zAb*(xuw&U#Fd=w%g{KN*z-gZsAFJ( zT38Q%*h)LX;i?;kccek-bYITxJFBuYAdQ)9Ye;5p_$V9KD$h!mWX`y+1{J3Jm}#ls z+-jzRR?1V4G?xW_YF>TpcE1iZ-H5-XHn^1W(v1TF z7xz13uW&d=NZ^*}@3&CH`eMz3?t}kjDQhlW&&nY%QS;j3BEVew#DHNAV$SFs=}7g> z^r-g=MQb8U3G&4z<;@t>{m8?AB55mn!A-|DsN|DIB%-K^KlY%tJyJ!@rI8`NjNHL* zRWrV$=H;6d@VD6?*s|n~t1H zvfXDCQqmbqA8syhH|LdgtlQ1hYw`pdU%6Z{{Wvs)9n@Ut1P(5@6^@sLWn~9v6i&-) zXhOxQJnkaLO;wAJ$eN<_W=Q~IAZ_4TlG^$Z-QA#aly~J)@|i^Cw1T5jy`6)uH@P_k zC|T}LjoP3NnoZ;-$X40mx!@s@P0CZ1BYVH{3pVKfhxGadhZt%6Km0?KC!rfi$NIa4 zZV7YFUtA)gk~jw<0e8?`=u7R8Z#X(_y!!D)TOg+9{k=+fN8a&uG%J!k&TL(#R^h%o zd&jvKwD_b3zD7>b8~pAzZoaC`eySh(nai{CQGMl2G)A=D%d<}38S32y%WbMMpx?%N zMOQ$;5amhxi{c=va&q@YWu6b3O}~89uslI| z!X4OWsvA(Ko@5=sj$Ic7tH)NLuAHP+-lbb->&$642v%mV8Sf>K=WH@0s2t;G`}0Mj zNa3ps3ZL6#6ZgAB=I+joA=+-cI$^wZ+DD2Oj>~!u8J!u8NsveF!Osoh^Q$c-IZGGt z-6*}tH01f)spw4!?&9Qqm1-NL?3DM75eBPM_JY+G(x(N&gaDiC-I@K$>YaYG*6ui$oX_OxQNcbUs30-+V*bsJ%;R2Phu@Y0=-|g3d*za(3jxew~^IjM~ zOpCQ&K)7Gz+uwTqNKD?d`QQ78qx$su9S(;>j5Q?wyZ=!rt$Fdeopev*Iy89Jn$J1r z^Nm0=k61bjvBC*@RRmvRd52sB8QI+PJ4>Eyf$a=B{L?}SX-pH6{U%=btdg{|0_Nu1 z754HmY}h57cVDKTPD`E?Q6eMv&ajWU1rbYi)OO{ZU4eVq7BkBo9XlMe*F3i?=i2=G zP`Me#g_(P^39RbH-DQ1~{_O6h`2dt}cB@c>hvb5^=ti%gc3;+F0wW4l=#pwy!#QYw zJHPEgO2fbxYre%yLW9Q1Wpk#TK@r`zAGZPzc$rebNtzVAGg*f7xYq8b)XDb{%fhWy zz*xe@*Xf5*OS+T3Sy~Y(xD1{=uzGk7q3P!Qu7LI3@2vMK^0-;)N$GhfCR&s=v^F46 zd*#LDJJOjlXzDud9N%bp<5Ah)ZV;2aZ;QShE`cq)bOPBk5EUd0F^Gqg(c9c4MUUZ}AG8?z+n^MI)JJ%U&3 z`m)FJwZW`=VYhz&>bZsz z0rZXgyDbIg9>FIPp-*NKdhcb00A>V!G-0(=SwmzBCG)~2D~UAqh3^^~Bzn5FM}2H9 zIYGn)jV8c^?%@Mox1Y25)htSWi>ffObRgVRN@gjjNA>6R?onc4bA;#-=z(1zF} z%WcDUre)Hv`bE3*v;ToZyo@y^IAt;aHsAQ|x8Kk;)uf6eQY8j-&S@*{hC5Q7TnPzj#`axTyI+X#Ud;o`7}7o%EoPeR)gM{N zfuj2AYdkW3Y%He8hx>Ig3B;*Fs!60IZKQ8qjrw%iwKInsLxsJd25FiSZ)mR|<%Lw- z5-ub65K*-|XsvQ{s>qi0^S#3?lMBgU+XK>Ul;YQ+ea@#%vz^Hp9CJ$tQtmiH9!fBrDB740%_zU1J_5ZB zl=pqjy>t>)CD;Q*>fW3UI+E(DFz0R8k)lvC22`=+&+5BmGBig_XwfT!cTvaltDQsh z4W+ui01hPJCEsz-V(?cnrKu3#ddm3Qo%>@GHO-Fp!jidsgV~1hK~i^7giMMMRIXRa zc@>o9P_4yiX*N&GzU}nqNV@T?>hho47KGxGf0A?x>v}-tg%K0%@mcD$7lP~d%nO|j zg;$}!@N;kuhtTmu=O6k7s_cKw@5k-F^!~?ymjj$|!>wiQnXG4qE}lR?|04UglTXnZ zvgiF)_{*=Zvg#8m*F*_gCvglALvN8?DCbGqFqrp6&K72yR-5x+8+8*}HB zHjuQfM4xxXc6)^QI_hntk66{2yDvC0EaNJ-DeVVd9iGjWy#tkBMA%@HJCqi@^vhIS0!wRN)Km&zmbkv+DO1oG6Ct zPqmA#)=x?T`X!F9YEI7O316CwH>@EzIz{CqjSt}D>ui-D05~k2r$JekWAx*p+32O9 zT~`vp!sA#{?(}RhFt_NM6#9=r$*n*}1Sn^3F$-fHo%Q9RNW#0NAI@i#6z_IxK%&WQ z#eU`_&IcmKe2$z@VN_7xNV3wz3#QpnNOo>uW43_-sHezfNsStH`cx}`Y;~Qzm=zE} z+}N9i?_hj*t;i`|vp41niEVPb4ZTV1+%7W{9Q{ilZE8oZYfq)m?2wXf*_7J$03V+a zINnKL96zlFUI0C`HAK_g*Dr@(7tq)4o0^`yR*N7&d^C8;yy#l73G|ulT1&# zq{Oo@<4foEj&FgT#ve5e%bMb>Q#m#m4QpR!sf$|3cril53yQle5z#!}liv02F3vxo zHn_Izl)L!AlB8U?=u6Xz`fHnOhYb&^rpN=VJLZ4dE9OnKeW-legOKOtzl-ttB$1u$ zqBLYg1(FI+~D9*eZ)afz~JV)3(CYb#X0Ui2Oay&*0A@NA9y-SMglp3pNFy(#5Ls%df(pX&|?&zD-mS0 zwqD($)`_vBa%Foy%u>RTC0~um?Jb~i?^zgd~ta=n0)wdRJPgqV$fvulxNC?o;;j zzVk=^$s{x9p6lG@%(<_t!-U0yh}wnjahUc9RF^90>AgkQx4G+E>XjK8P*r-d~!fyA>1dfdP#j)#(3Du~ISWanbW|a+j=1&xDJ~sNyXK<-)YCcHQ2VycH zPFK}qPepbMtG6#Pknxz_ky0JRJ0H$TsSx>%JucVj0?YABbCMHRe6p7=cs8*n&=*$& zb=?h=-qN1`!q3ZBr}Y*-qi+sc9T&`QLQJ4cGX!2ZlM+g{8zJZ}XFxuJ|b=eU~ywRXCb z`$~&CI(}a6*fR^?bjSzgtWD$BS|=}+bQfRz^vD~XR+Cc{@I2ns`gV#*%k}#OcMZ^v zsZ~Z33THG@t%nSu_zY^z8}n}(AJmHuOd|yuq5FAKh3^en2|1{ma%?^MAc%Ze+xa7?h3&|A zgZpxj&0c)>n4TaHIAyOAD76C(5gxqoV}vf)30|+PG@38V>H>8 zsb*s8ixjJZA{x9a9TUE+AE?_8bKRN2o$EL^(M{zVO>q>r|Diq&Q+Xn}C|pEN|?5!H+oU#pgHO(rCB5gQ5chImYR zOX-3EK0Gi^k)DQ4hnQ}pnFT>=aOIp1B&4a6%nBA5`gsU?c4w2d}m;_ zL19=HrpeF_^AcFlOhk>Br|i&QZ@(O7X*0#GAZdJ9+SGF&r^R8^gSxeJljIYON(w1lC2#eoo$9!4`grWiG3C$F;-*d4e?+_7Q+=duW6ihI?8Yw~ z4JC4&PYBFQHJPi$Tel`@%__ZCyyweQ)a(C#iim0-B_3PV)NGvf>}aOQx3u_#xr>Jq zdt;`bPA0JQ+aWtvpx92~6cyfMwPf2U!!XpCt$*~jV;3>gM2)KVxt3JP8LE}&D|u;n z)vEDN_KLnI27q$$UcQ%HRTEoM6!^u^PR>vcM%mi^v9o9MiI@A2)AtvH;D5(26M#YC zANfyby+AzxAyb(daHQD%5sy%L8Gt^D7QIgdM46W{#{(qC%YGRt+6L)_#O6}VoQ9y3%h?%g^#Ul zG$zBRHoO<~zzN>ViW;tDV!8?Qw1GP7l4wGsi299+WezE8i`YlE?4WO7X$rUr8}A(k zr3c6XT*I=OcIY@BO)|$}5C{=&%19M(F-c8}sI=3T2Z;ZYyv?ogQV&~w5eNJ}K8S7Q zS|!c_xm4{L%lkVUFLFg*25{ireNGH>n9G)gq6YVkJ$Jp|tUPwQTldQjSzgg2vJcj(F~(u&vR7_Ii=oue z!DZPQD=iMYn*!tNm0mC*Iq(C`I?HxExZZW+@BU?m%BWxU7r@|hL&~NCsJ#9@4gvc4 zMsmUnBOh)zKlkWwUIl0+Vy9APSAG3qedk1Q{lS~^Wx1}RiLAr9T`^Q=3+#3ZWqe%I z39HZP#b|=pH`E(dkuful=;WqG_>tY}=tC(w!jRO9oymlP0JprQ^8)yHjBcaN^YR76 zuau;7+=nw9LTgdI!R_8%f%0P7Lr^RJsn@T+AeB;Q)ejGw6lwxa~F;zF=ksrMsMd8UK(WhJle3uWpkNY2bnvJ1m9|`leAKa;Bj`Wj^ z*K9Xr7?kCMYNXD6x6;V%mf*%l|5hZFo>6fq*1{~+W8358#6Qgm^DF<*u6N$um#s{D zuz5MT~Qk+y%Am#X^*cogm{qpIV6rVR>nwM3J1rM9)Aa z=vc^T3vSU!CR68%hgIpfpYz`p;y(LbvGWc1L!xtNH-D1%cdq=YmmITv#2!E0$G-mQ zKMBaySd8YL?EAz{Zmmiry6(pfy|kqbt!T~ugKHgjQhv;ylW$_LT+8vvEbRqdwc=0Id-EvirLx*4@5W&13g(GK zZml>r+qr#pJFGNzRQcV4IVJ9utvBn&RR@y`Pio~i?j{B4eQt1|uGX^}IXd3Ga9_{` z-90De$rm%^SAU+pu{L(2vu4%6=FqbDSNsb6c#0oj{TT|?BD-%|DuGKZ43oyOn;ngUDX~5h-Hrktly?wDb(utjXMrF)D)? zi8g+{eK0*J8BK+*-@a9+=cy8Uf2tXN{KvhSuhl80ru@3I{lzBw3zfKK*^k*T!}ta0 zU3HD`FMq2qqj-DfdwU*U?rkr|ug@dyRida0+ef2l0__cIglnlTghmKWq5H}g&v`%3 z>Sn$LOCiN3%S5WY7#gY6n<$0t8}pd#x`S5T+|b!qfA0)`Ts-l*5_-_6DRQ%SOeTVM z34whU{ct11Pzkrq?;IP15MQ-*#Wlefg)Q?v^l~in7XJp;o6ud>LMRL);PsZ&$Ynrqc zSbU-#WHLp?raf1=vwbrGMpi4jR?6cbpOf1yAC+%f6k@HKHUmo(6l>iXYGp{r_WM?9 z444Qu#D_$%q7nvc$#v$+Jr(-2RhxIaQto`y^H#arId$Q< zP8S7!rQ988zPLdXd4}*#tLyNI_M7F2NtE`q@e{!$Sa_w*2H{`lZc`y>#$unq=zLH1 z8#i#J7C6&4uCsF2mW-fl)ds0>V}JkQ$Zz4omfpNrguS0ZC=0BfF}Vo`Qz|Vx!(-6&norTr$^1jFOE2&U@deWN z74nlxYp({${me6U%^XT6ALt%1SmnMi@R^B`<%fczaqUsL*Jtj|#q5q*n=KsKlx{-| zo$dSf>@ovIw(h9UpWTC+MPnUnQS*h@1d|SLSc#M-b_(nSMrkPj(B&=H39>|ktZms& zR1WeDJkf~Sgq5V^I}zWxGQ$QwJ(BrDE(-qbjjaB-_Z<+;6^AZ|=He`do7f(B+_C)- z(IR}etu@4_sYSOx4Kn*ZWl=CI{n`)1l8J!U@tcEpnri0qKypbKgN|XtwcKTiDqAsu z>vOIlWHj3^|AW#x&3}OXKLCTcl*Rw*uddpp2HN*;e7sQaMPFg$0|g{juLg_VtHWwP- z8QoszAHE7zg69|Tb$*?`M3jPR@5)2-9ekYDiD8*tqNDm?{I^ehTY|b_WQUk?IfY_F z!H|9BaoIZ70w;@IhXudHMGW~PQNbunL#j%iD?BLwMvwdPWNvx(i*`l@pH6IH_3isX zcQ5;Q9OjG+)!5>CUkaVUBU`LWRtR@Hn#A8ec#w3dJADh=C0&eQ&vp6qhn>l=`$|+= zYl}+iXi$pWOtw@Ab}pgNPoyXE4_Tk7xJp*9h+C`_!&#Z@^nH>sxB#Kb{-u{j*I- z>e{>_%ES)jhf*?ac*HtHIIG|S8~GI6DL{EL&JqH52l$F@C z-eCWxX4g_zl1Y8s+Dz9K?i`fC+M~yE*Ozr_jq8)>cW#ag*5vY4b9ie#<8p3Y+NV7nEziYINJ1%Z|XbthQJ7@s$&AHX(_q zM3$nHo)E;G$J~eTfCjU1^ZGwOjF$U=2SzeqbY!;^I(HxMN=IzzC1{QFWv<(e=psyk zqx1PTQ9WL3o0RTAT;x>7y2xun-g8)q&u^Y_Ray6zDdQFU*uKeD zYnZB7zVbVBg~q{dm?TK9E>O~{!yb=3S6b!gUF7@{JM3~t8u$5~@hN^j^8Kp6%$#Jj zd3pb_|A%OAY6?A*Z^@r$n=fiCFP19c`9Qb`D_mOkZO50am`OrKj@4!!`q4(!I@2fx zhnT*Jn#Xc{3z_4jL|KoJhsARQ-%u57ahxRFAVaFg>Vnqf~ zCNsJcBWc&KGLT#C`W;Fj5KKs8cRIKEo1-rg60^Z$H+vf`G|s!K`p?hCV-G$%c0YXJ zRa=%)YO!g|1rOlfGv;*>4G@1(^J7}lI9D-bu|(A*Hg9zs%@~ku9B1{U;6_ovZqNfp za&rz;C0rAnO}B1S!FuPc-sygch)C2k5y|?%l8P%UIDmikjFVs6qj7pczUcLYy*_!< z`{NT;`%4dnMqB=xfpJ&hu8k> z!~gUT_8yjygUCI64z`Y5Hamr=L191=6dmoAvaE!QzFe?GBCk%|6JbBHq;iiMSA*U4 zFzO~s#u#{|>w2whg+a=8 zKj5eBOQZ84YNXh>-tY-O3TNDIyuG`eFQx{J$mq+D?{>VrltKI=)+jGnSk0jWRbh-i z@1Wc!+f7_sp6~G_(|tInW2~OD^E%pgIH;g9tW3}on!HMSmIXT9mUd=UDS95$SLIsU z`zm*|-hJ_(3ZH<;2Ks?4@W+q9*iuGm z)H^EGr36zl%vWN5gVnF_a{Xlq}1EBy!~}050_z_R=*!U*S>F)aM4=(UMpoJ3E>d3UsE9;yO*C&nu@rhR)9wvii!+Cm6>JmJ5l!**)mcUq?w1zI@Iv3uJyru9P~<=Id+xeHK1r z#9LkP@c5CBJ_kj~K-Pown^KAJxWfB!<=mDGb2l`gM5AXd>Rs2?{7v#q=Gx)2wgfVv zd3gvt4B@R-VJU(i-?9rK{Od;JxBV|cJubZ#e92NXt?dr_DQc>L;(+u*P^DY011DU= zmFTCQx|`-+=U0(ElX)xp>9We_qtEq`t0>t$e1U=_FFKVo{LthGKWj-etK1gRpZ>ZPtlq-RqKiinN^DHfm&u0(kPY3IzMqnRe5z{@_O^T)Vj z$GWAXwwnV`zMM_mIhN`(Whp+^4|^drVHBwB@Rm)k)VB^Pus@HtkR=+t_Wjzy-Xq9d zAfaL9^NMI><%4$v47SrA?J^ApO)`Nd6`wY&`~$N5dCGWXy%a|4@+0+Zu~Vit3_Xk!!neS|!ja zoUMGfAYl4qe2(oji@c*)b4Ym!N`M8CWkMXMH!2hrgzYVk+PN%}dcKPAh1Nl^-6=-p zWUmGtk~lY2OIVA6kkj1%+wGicCsvUKfp(v8^O z`Emc1z1F8zun@nz{+lr3)c;tzpZcFDM_&_|)Ia-|n*oAn;4t+rMEUTWeicXV6LJ*M zSd40YS3uw4aZqF5YxL~{!deg}3Ra0Mue7xJIL!A0&|~T{v5ZrJFeZnuTwC{$N{KGQ3sQ#fLI3E3h?u-4#(y}^~(=lbp8WJkX7rrm{ zFa52@ie695q{d_3=9A_huB>f5(qzk9aDC$`8}ZJ$&nWOQt3gGo1IoJ+)XG`N{Vf2T zl&t{;<43|4WmpZwlLm%TD-!3O)l;;~CkwB|F$Yah1ee0+xNbi)xHwuQwk=xEz2nxg zbBq)>8yuRo-xAGFo!8YeZ6i`U3zWy0WGLEI*TQEa5vGq-#9coOIGgDymKa_D;V0t0 zlfyvoYK#)9SO#1^mOT(|ZC-hIz2hb4U_@`h`YYjPb0xunN66CMmfpnRlJ|`B7AaF9 z#7WZpuhc(Zwrt=|H6;2w5Ia^>UTiD09&g_l7ZPedc@Lpv3k-u`iBKB%73sO)gQd; zTqm!YxPCd0B6Hk*^K|4ICeBck{aC)POtsll!bG2~wml_8p373*M7r()>E@-Lq=Ao_ zX&nY*NtY_a#9d!z*gQk$lX#A)ZI2Ig-V&hC*^Hb?bhQ}9S=VkzW2^c0%4?MM=k-h* zk!!`#3uhdaiPA52gnZ&ow#V#uU?UX8MyT(;U!%dx2v3-?wV3Tks@*#|<{Qabc0`bK zGv8MxpVw1vF5;nH%5!yky-z zDx+X7nqg;tbv5$ms}D(3qog_LcDA9%J-iR=ebl9KO1+flPPff@w8-jXyfLGjZV84H@c6of{kJnvX?E5O*upoNYk`6?+k<~9 z4-q9YXXZ>gv|0Z!t$&(wKPOt*!t_$uSd&(<|0be9^=23SfochJY0RDGr9b?n5F zO@!6{gieEEM72ng4>nwCZmCv5wm3fewn@A=q*u%CwF;+EhAk;VVx#p$_FeUeqvd_(NH}MpSazMMcA8 zj-PcRfU{BxA%}5HXqxhq`b&8xi{r&?j8||Wd8-5vO>~ErvAi*E7Z3XLeakK%f<0`4 zxb&Wok4=6y7*mc$h8hr(f)8~>#w()GjcDEHF}-qb~7U!(Q}uw^Gn2rr}E+! zQAopc6@l;ct`3Lli@b-#{S_MR;|&!{LRCew-E+>>4%^nxd5cr@5_qe2xdjs;vth(` zy`x@5LiOH!`qs&690uxhz^Al{yS1LsKRb7CrtJKt}ohM%>{QU7$i0@p32ANW{3_&F%x5l8b)%jzFg@aQFF){!>$+~TNhkZX&hK=&G746$ZPInHbxq z{sQ{Hr2oOV0zl+ z-}`8y`4!zV3QvXt5emudH>Q(OpuicQXzE0az0$CE{#~oPx19&wxo@v5!0MQZ`#${K zo*z;MmMg3E<0?E8$IJr*_ib0K&bPu%{c?>hOmnW1F4l#bDTU6@IIusn%5+g7StWU# z+?rJiu-|pbTnqN@EwB`gP-h%dB~i`z6w9^W&y#k}-`_Un->UN)>PoPoYdPR9m?^F1d;FiKwW;ta2n{$~<@U9?7>eUrbV{$Wb1XJX&$>V*O%{r;&uwWwcpu_ZS8eBzd zQ0j@?ng*C#^1Q#7Qv>|zx?7xgEyv|niBV7%*E8W6Hzbi*3cfsMn}HN}9ka|;(w9x^ zunPqmBOWKHS9y7Nn9#ZX*zd24*xgyX;x}!A$&SYyGVy zJ}uaKE@*1$uy`2C(P9}D^H|5Qsr-9BVIQ&EZn&b1xRdBg6iIUwSS)kBuC<)YZkX3T zd!IFBfGPVkcL{cg9qB_C>f}HiMH-d+Wx|Y%F{_xZ##8^ZP5QO|0|oFSt@RK5#4TWb zPxBuWCpQ`&G<-37#68m4r$BG3flUs#f+miuHXr6HB^9+U;qDH7X%k}*dx0E}Uq{s6 zxnq%7TFAQml4u_B$f+vw%JL!YH&N~%k0ucEeK$YN_mAv?J5>Um?nKc-ed+5{Kv0DUlpb8SwkCBqrYMB*4(c0qm)wT7STNI}nr zf6tfY<-5u12H%vKKh$H+g5x+ak=yU(|7;^0tK`f?dVK=EZ-?d0K_wrz$D-W@2eoM;!H^d-H{Nbld{ZO?TM+Y~7eD5&LXJ zL9HFmBB_G$@++LlZ%5F^D6-X$y7%4$82gR}Mo5{xD?w#2}- z`aV_Z*);Na5DQ}GV7e4G%Aa#rF1jA0vaFX!&Iad6)J#eQ`$tFCYx%!}ER42=7tMsF zVayX*??b$jtj?{)#`kROP02l1fcu8Oo+-E`&Z@M1>D=(GC-nZ2m2!IUSov zqSb~;R=)Xr_%wIjd~1Ij`4VPLZp5R@#M&E(HncZ*!e*rOf$I5)Nah6zcb{E1aP}T9 zqlq@YT~<6DmTxAPLjW6iDz`8%(nU_3F<^a9Fra|e*E7JFmU6p@jNQ4PxUPh<-B$9F z8iGfrvO2ZKe##9<(vk{q%_Pb zU7`WBmBXQfH!W;UWWvbYvoy&Zj!K&)Rf97|g$lVmGQV>>YCAbM4rd&?00rBJ>&>4Z zZO#O4cUwkq&&M9ju73cFTixh(b1Lah@7@`auHWHf8i}PI4D02nr=6)x+ujNx@F*P* zq0*t_k_~l^FGfQ=9-|Qy)4`P>^_GeI5sdq3= z7PSFKkWqIpSQwKC<@#7++YQA^NAGzov^Lr?^}~WX=JwN~DeIaB@<>UUmnm%dcNPvs zh3ZnUa(lVzJ1u>?7Q1uCalAu4m{|#~hh_Y*aIeu0!OW9;R9gWiJGsB+VT&g9-AmGE z0+x3smnwf8gpYd2i*1(Ooji8n>n;dVgMN z74WziBEhid8DBOZFui_Y<&#tFS#D9CV@1p%5s9OuW=lNwt{;&>=*rqP zxV5tN(}eR=rQ$lYn*nhTadd#|ol5z~hmRSU<6y+!5GtOeSS4u2*>xE@D(-@q6?z0H ztF#k?fXWXAWfdUW~f*9mRjfl#|X5dDAZ*-4bYsWQ}L3lFe;^VR^Fq`+LW5#K~F_g z{Mjp%_KbVUugbaky%(#8z=~WXgLq?_!B6AQtA+u0?^7+DPDlU zSIjVR#VFj*ToJJkyOMrO0CW_{p?G}nFXurmy)Ovx4bLOlt4z56V{ zh1nWTkrZY8`=MD0Ezj_r;%9g(@)SR(>hJ%>QlC4XmSC4aAAZ8*p7M#!<{b1>2p zL4AGl;PO^>p{LK{lLzuo?k~C}E_h|4Jh9G%Oct*=xMyn7erB-((aJ?^&E;x5Sj(BN zcjOJs^*5N(1w}^!SAwiOzy*zBVTL5g>|)p>157^S^{+<1e_zxs{{>uE1zkC8I|!#s zm*-*J-!Xd`iygw>U>xgq^13_?x<}?VVB}p*E5~>eljU&k)Mp<0@P8pl(3=D-&@rB& zY6aIRq@+e%S{{56U&%Ol6kpo=58M13wKVaU&F6@<>@Tv@FYET4#Jptcyb!L7c0dpS z8Da_rL<#W1DA)qOqZvQbia*PHX@~P3V%JhN$9>Q6g?sN3263Ylz_ce1UFbv6bxFNr z^p#1)-)X$2~w>$_5Zy`*do60%41C@fzM4R;Szg>&*Rsb{&)ZY0hJEGQ2M{KFM#c; zqX4^~c9Ua4Br<$gA`V(8~9mnZdC8jYP+FxJH&AUs?Kb_KK9537}r)CD06_VBEhN z{XJp4gr5HPtNwbu;A?8?>kEkI{trK=5sa1Gx!7>faE44!{=lY7&9{}AwUl)YWv;xd zCmpBjiB<5yIlW2}^orC4C}i*%-@G2cWpXUGQtwnFo>}c!Zl&0SzwcO1FYI^|_Kh)A zIgo}mqXK$?!1(`bsMa>+jV@QApS+f15s6P2d)eb98I3RVqC@}{VCw0Vp(dNr06#S! zAS~zJry8(m@EP=FD`xo%O)UY**zb{$AOfgRVeBGlbmp+)sXPo~W{>_aw2^DICii05 z*Ui!4!sF*FHF+k4DRt~ztOCaUi(Wbx5VtX3D~3Uspl^~*R*`OTUS{U$IaLXjeCZ2X+J(|5-9yFFbsBP%p#P2o7}3%w#6i3L z*m}z1i+XiMcnOo~n;1l=6>gsMrZyE2*Y*K)rNwqy6JqG)=xomv(n)U>)Z+CJ=T)gY zR+(*Zvm&xaU=qDmGU2Q!f=g18%|-9WcO5(M6T;hTAjdaB?Kpdvy}@^nMiG@_dQ{Kr z#5P12LAngU+=wA^Hh@?5P%-feEhp4`UZ7dYOTz0~wP--{yt-B3>0rd=+ZOVI437IwQ)$3pXdG0E@9E>w_Fm70$-Wr)(~C(klq23n zr{`^$Xkha?w8cf>^!q+;3IIsz-~40T0l(@mGZPuZpQM^vafw8d2 z!kT5xq)Ddo;IPN_Yu1=Dp=UucuJ0CZqu;pw_F#%uN~A#`*qMBaGi76&^T2fPaW1Dq zo1oN7ZLrY{Rc$3^xp~fCNbtD7TxBBAlZVTg*~V1~`O2hJSni`dVW>>mjWr-fe<9J? zpW3_<72%0@#64uOq)-51yf^6kO49qc+zzMuq?cTM{*-Y2xC~8HcwBplNhRFr3sD|a zCknt3u=~RMOGdf;w#8R-r;r+D&RFA}0ficu!et2id~iYaG}p2wc$&Oc8}U^b~nP!leH`+nmYUFLDn5@+Q^ml5={$$1f`#;wM{I(=Y@bAa_33N$gEwp-Qpq&J3EGUy$aUWu^-Cvc z+unS6k45KA2{5VdeL8(GG)#mhy!rmzN=64Vs9@z@b}0BHT@q9Xo2cfWlDYYWn}Ts^ za5;V0s6~V4gOjTEMlSKrXM`S2FL?AF^V79KQL^A*oS+E@#_sl+rS>5}>bF4)9FFbC zCuUnq@UU_@c?JH+d*J@ff-Wkz* zTZII*g5(@cWvwK_6M;KiQ2m88KZBc+W6{N-bMnpK>pR;GAE!Q%*N4;uj0~L}49(e| zwV+c;kmX6#YdSW5^~YobNfx=sn_d-&w@NU|!GnpPOrlvpQu ztov8-XfD*BKdGt!pQL3IAdx1pMVR*;n3(U*)e@Nj#Ax&%>;j782tygKLs_bL&<&wc zF5v-UphRv&|CKsCINdod<6T$&h#8dP5Km8mC%mETE<_9eoR1tOj}d7o5a&s2Frstt8hg^ zCn?>#)~i^+#8`Fyi^5Uqn|mI{K*Fm&6*F~bFuv#G@4x4NXH(1=pYNIQGPf!kWP?Lh zB^_5l6fcR>zjHBbyP&r?q_!zEEHni2#$RJ6&A(wkED?6C8C_ z&seg_R2+w5rxuh&>U5vXGIaz5N8Uygt9Tdzl@K1fq{xdz3M5;AI%GE$`r&*0`)Cvs zuUeK7rq*&9-_~0`Jqc}9p zjJXa{_}f`Zvinl6j-uR#dqw4P{G2>ru^;EcE(Q}oy7-cI~ zm_V-RR&Oc$$R9mT#93sEr7?m zE^8E6@4GL=wKqxNsHJx@L;B+9rVv^N%+-~NEPYpK69DD!s(gr54K}U4zYF9t_ z9-Uf$I-UO>HHx{Tf}WY$`}6S)$T;VUImq#1dr6%6rD&a8I2Q%Tjeecinm|o9cP}70 zyfJ;)w|Qy9#ZIl`mlE(;4`;4G~KhZVf#6D{r}V7asB14e7JVG_ncNo$c!H@p}Q3 zKA``cN2k_2b9OcxYojMQYP%dV420d}P4TUQ*Z37AWg=YQ6rsM;#OJISfCx{AU7m7X z6RGP~Zb>gpll{EbH|swiW=p^aLU@5PfQt{QU|bMcnSXA6z4?1p<359`_76+; zyDH9Qu*+^Z5%fGT4j?rI%!K)Mr%0KNz2Vn2d&;1&1o&_89Cm9+_v&*kY2!a^%%%bX z;R_%m2fP|^yPDQjPEVk>w5Rtuxx9wtYSk7W7+>UUUQv;=Jq9Lno8FK>D}fSLG!FY4 zKPxh)`&XlY0v0%_D)xkUqeK z=sd#3i7TbJXCk+Zt2b)}B%9vGBZXEYFN?>o3--ua)*UQU{C$=%fLuETW8(D2yuRP! z4NTcE(5VM{Q^U|z9>Xe9Pw+`bi{NF^&G{57SWD?8u0GCQWy*b(Cuu(KyJa4seFH`I zHRe1z1V3Yr=#*NYdI~rrgIfL>AStP2z@;@Kxf8$5vzxCJk)AH*K(0=h9 zeY%LK++ynkEkeo^`+W6C)!i)DlPO0L?|;Q*>R!s!+x-_Z`%a(YNNXo&$aauHtK5F4 za*wp#(1_vVOp+HMQT)qQG{yrHfm8)jFqto5+U{d#;Qjz1Oe%|$Sba5c=>y+w`v~l} z6Dg9+)`+kK&giLfCtP^1QHk24o6(0;f9Bjn$~BD#gfG62bqieMEh%VI@i>Q|lWdU8 zU-C^s!l{SE<$YR)sWU!<$FpJ|8V9|FTbCWhC2_Sbj)UrcSsK8kh4*guY_&3r)ej{d zHqK7F@JhCueXBgKuRBTlK)EgnWQ8b}(+_5Gl!X++Tyo^0Cnx!yx7%eV%V*kp zbqOm6_PdB7n;kC1T-}a(x?cp3EXtV52T0zGvW4gibfYaVKRMzxJ*y^bj?3uCHQoW=HIso{3rn-7}x5EIXvgA zHd5QFv~F&7(@6S-#i)3=UP+aUFO?El2b_g*!Ej{@3xG8dmU48xccrdQj+{A$mp(Qc z8tB50W)_>&Gj9kpV{H75Fpwl|+R`?8vtafH1GtL;VzBbjHRvu?bJFI6`%Vu@`sCFA wkRAT*(_3`L8X| +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + + +extern "C" { + #include "avcodec.h" + +#ifdef DEBUG + // Needed to fix debug build, otherwise the linker complains about + // "undefined reference to `ff_log2_tab'" + const uint8_t ff_log2_tab[256] = {0}; +#endif + +} // extern "C" + + +const char* kTestAudioFilename = "./AVCodecTestMp3AudioStreamRaw"; + + +class FileDecoder : public BMediaDecoder { +private: + BFile* sourceFile; + +public: + FileDecoder(BFile* file) : BMediaDecoder() { + sourceFile = file; + } + +protected: + virtual status_t GetNextChunk(const void** chunkData, size_t* chunkLen, + media_header* mh) { + static const uint kReadSizeInBytes = 4096; + + memset(mh, 0, sizeof(media_header)); + + void* fileData = malloc(kReadSizeInBytes); + ssize_t readLength = this->sourceFile->Read(fileData, + kReadSizeInBytes); + if (readLength < 0) + return B_ERROR; + + if (readLength == 0) + return B_LAST_BUFFER_ERROR; + + *chunkData = fileData; + *chunkLen = readLength; + + return B_OK; + } +}; + + +typedef struct cookie_decode { + BFile* inputFile; + BMediaDecoder* decoder; + BBufferGroup* decodedDataGroup; + uint32 decodedDataBufferSizeMax; + pthread_cond_t playingFinishedCondition; +} cookie_decode; + + +status_t InitializeMp3DecodingCookie(cookie_decode* cookie); +void FreeMp3DecodingCookie(cookie_decode* cookie); +media_format* CreateMp3MediaFormat(); +media_format CreateRawMediaFormat(); +void Mp3Decoding(void* cookie, void* buffer, size_t bufferSize, + const media_raw_audio_format& format); + + +int +main(int argc, char* argv[]) +{ + BApplication app("application/x-vnd.mp3-decoder-test"); + + cookie_decode decodingCookie; + if (InitializeMp3DecodingCookie(&decodingCookie) != B_OK) + exit(1); + + media_raw_audio_format* audioOutputFormat + = &CreateRawMediaFormat().u.raw_audio; + + BSoundPlayer player(audioOutputFormat, "wave_player", Mp3Decoding, + NULL, &decodingCookie); + player.Start(); + player.SetHasData(true); + player.SetVolume(0.5); + + // Wait as long as we are playing sound + pthread_mutex_t playingFinishedMutex; + pthread_mutex_init(&playingFinishedMutex, NULL); + pthread_mutex_lock(&playingFinishedMutex); + pthread_cond_wait(&decodingCookie.playingFinishedCondition, + &playingFinishedMutex); + + player.SetHasData(false); + player.Stop(); + + // Cleaning up + FreeMp3DecodingCookie(&decodingCookie); + pthread_mutex_destroy(&playingFinishedMutex); +} + + +status_t +InitializeMp3DecodingCookie(cookie_decode* cookie) +{ + cookie->inputFile = new BFile(kTestAudioFilename, O_RDONLY); + cookie->decoder = new FileDecoder(cookie->inputFile); + + media_format* mp3MediaFormat = CreateMp3MediaFormat(); + cookie->decoder->SetTo(mp3MediaFormat); + status_t settingDecoderStatus = cookie->decoder->InitCheck(); + if (settingDecoderStatus < B_OK) + return B_ERROR; + + media_format rawMediaFormat = CreateRawMediaFormat(); + status_t settingDecoderOutputStatus + = cookie->decoder->SetOutputFormat(&rawMediaFormat); + if (settingDecoderOutputStatus < B_OK) + return B_ERROR; + + cookie->decodedDataBufferSizeMax + = rawMediaFormat.u.raw_audio.buffer_size * 3; + cookie->decodedDataGroup + = new BBufferGroup(cookie->decodedDataBufferSizeMax, 25); + + if (pthread_cond_init(&cookie->playingFinishedCondition, NULL) < 0) + return B_ERROR; + + return B_OK; +} + + +void +FreeMp3DecodingCookie(cookie_decode* cookie) +{ + pthread_cond_destroy(&cookie->playingFinishedCondition); + cookie->decodedDataGroup->ReclaimAllBuffers(); + free(cookie->decodedDataGroup); + free(cookie->decoder); + free(cookie->inputFile); +} + + +/*! The caller takes ownership of the returned media_format value. + Thus the caller needs to free the returned value. + The returned value may be NULL, when there was an error. +*/ +media_format* +CreateMp3MediaFormat() +{ + // copy 'n' paste from src/add-ons/media/media-add-ons/dvb/MediaFormat.cpp: + // GetHeaderFormatMpegAudio() + status_t status; + media_format_description desc; + desc.family = B_MISC_FORMAT_FAMILY; + desc.u.misc.file_format = 'ffmp'; + desc.u.misc.codec = CODEC_ID_MP3; + static media_format* sNoMp3MediaFormat = NULL; + + BMediaFormats formats; + status = formats.InitCheck(); + if (status < B_OK) { + printf("formats.InitCheck failed, error %lu\n", status); + return sNoMp3MediaFormat; + } + + media_format* mp3MediaFormat + = static_cast(malloc(sizeof(media_format))); + memset(mp3MediaFormat, 0, sizeof(media_format)); + status = formats.GetFormatFor(desc, mp3MediaFormat); + if (status < B_OK) { + printf("formats.GetFormatFor failed, error %lu\n", status); + return sNoMp3MediaFormat; + } + + // The following code block can be removed, once the ffmpeg addon can + // determine the codec output parameters from the encoded data. + mp3MediaFormat->u.encoded_audio.output.frame_rate = 48000; + mp3MediaFormat->u.encoded_audio.output.channel_count = 2; + mp3MediaFormat->u.encoded_audio.output.buffer_size = 1024; + mp3MediaFormat->u.encoded_audio.output.format + = media_raw_audio_format::B_AUDIO_SHORT; + + return mp3MediaFormat; +} + + +media_format +CreateRawMediaFormat() +{ + media_format rawMediaFormat; + memset(&rawMediaFormat, 0, sizeof(media_format)); + + rawMediaFormat.type = B_MEDIA_RAW_AUDIO; + rawMediaFormat.u.raw_audio.frame_rate = 48000; + rawMediaFormat.u.raw_audio.channel_count = 2; + rawMediaFormat.u.raw_audio.format = media_raw_audio_format::B_AUDIO_SHORT; + rawMediaFormat.u.raw_audio.byte_order = B_MEDIA_HOST_ENDIAN; + rawMediaFormat.u.raw_audio.buffer_size = 32768; + // comment from src/add-ons/media/media-add-ons/dvb/ + // DVBMediaNode.cpp::InitDefaultFormats(): when set to anything + // different from 32768 haiku mixer has problems + + return rawMediaFormat; +} + + +void +Mp3Decoding(void* cookie, void* buffer, size_t bufferSize, + const media_raw_audio_format& format) +{ + cookie_decode* decodingCookie = static_cast(cookie); + int64 rawAudioFrameCount = 0; + media_header mh; + status_t decodingAudioFramesStatus + = decodingCookie->decoder->Decode(buffer, &rawAudioFrameCount, &mh, + NULL); + if (decodingAudioFramesStatus < B_OK) { + sleep(2); + // Give the player some time to catch up playing all decoded data. + // The player may still have some data to play, even though we run + // out of new data, so don't just tell that we finished playing + // quiet yet. + pthread_cond_signal(&decodingCookie->playingFinishedCondition); + } +}