From 78fa4b0f436632d0f4a76cccdb95a1c870682a66 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 4 Mar 2006 08:24:35 +0000 Subject: [PATCH] Updated WinCE support by Dmitry (with some tweaks) Converted the disk audio driver to SDL_RWops for portability --- VisualC.zip | Bin 42516 -> 52980 bytes VisualCE.zip | Bin 41295 -> 49431 bytes include/SDL_config_win32.h | 30 +++++-- include/SDL_thread.h | 5 +- src/SDL.c | 6 +- src/audio/SDL_wave.c | 13 +-- src/audio/disk/SDL_diskaudio.c | 82 ++++++------------- src/audio/disk/SDL_diskaudio.h | 9 ++- src/file/SDL_rwops.c | 60 ++++++++++---- src/main/win32/SDL_win32_main.c | 33 +++----- src/stdlib/SDL_malloc.c | 15 ++-- src/video/gapi/SDL_gapivideo.c | 102 ++++++++++++++++++++---- src/video/gapi/SDL_gapivideo.h | 1 + src/video/wincommon/SDL_lowvideo.h | 10 +++ src/video/wincommon/SDL_sysevents.c | 37 ++++++++- src/video/wincommon/SDL_syswm.c | 3 - src/video/windib/SDL_dibvideo.c | 118 ++++++++++++++++++++++++---- src/video/windib/SDL_dibvideo.h | 8 +- test/testalpha.c | 23 +++--- 19 files changed, 376 insertions(+), 179 deletions(-) diff --git a/VisualC.zip b/VisualC.zip index 9e5f6e2551f297302ff6050bfa123d62395f8e23..b99187216fa751f966271fd0527d1edb9830edcf 100644 GIT binary patch literal 52980 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%0DCqS=zC=z@L=Zbq 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 T<9-+?Nz46p7Lw%iiU0cpI0m@_ diff --git a/VisualCE.zip b/VisualCE.zip index 57853427c250430cbdb7f2b708a16cf8b4ff8538..e568a8a0723510d9c9940b0444c43e705adb1750 100644 GIT binary patch delta 46248 zcmZ6S19T)`xArr!Z9AE8f{AV0nAo;c@x;~y6B`rTwrxyoJNf31_ult@=ht0lcdzH1 zQ`M_i)w8R2PxgSO1b_hw(qQ1QAb+(VVMeTf2mfwh{`6`VPA&%4!lI1-D@*+UWT^iw zv$nIdcQbG``CE?;0tx~R(pPWDiir+Nz5)#b(yRmmLim65z<&nF{0Y?mjAU>%vOm)~ zvD=YA{qT;v=D+oP=r#UIzKz%L-H*fx7cVk8-W!c4GLHu zI8a(fIpL(b>Pk3=H6|#jJpXf^P%KIvuJs8peRuJ_KhY{Nf$u9t>JRqA_N0Dep;@jh zc|L@5Bq^;RTnBcfP_X%H`E%PZ&M_3{g{5WRu1vUE?kf+FgTOmK3VZaVa zSnXN-4ecY5Up^F;2i_Tb7;MnhM+HwxFwG{dw1Di{0n94EXvd5iL6V-i44E@a<(O*G7{}lq$8=P6BGYhpY5gNe_qc77utv z9kJRHG3Fx(Bzh0nyfeIaW8AsQZ}-$+r^vR|TZLyH`O>;ejbS0Yx8N-@+NCX{by};A zaCjPb`tLr+Jt=Y(di-k)Y!)OnHo)Tb_gb5%XSjXx*3+bLJNh4@2T^;7Sn*%uvFO;b zlzT%exggfa)Y>#=15C@NMRE<6e#xF<_Bv1*KxuO|u!8o+5uwz7mCcECwh+f>SN&H1 zb>6(x7pM_BRY}6eRH}Q@qoD|D+T`obZ{AYio8HAr{tn};^(hMVHFpwS>l;KWWD8S1XC==`Xtir$zT9tUg~YqnFdMv<%WV# zUy4#n>32mjgU?;Ct|mFkVWulCD5Xm#k$$Fqim-?qbd(GT6Z5mP2Na8 zUgEc0dxu(_KMFp+az2ZxFI}%Ua&xg*(Nu?5$gQgD^4oLJz$r)~z!L$+n+{Q>Dp&@d zGa+WQC4?^8;jr1g0w|1!o_0TD#;a-w_yuKU>E0DfM%|JIb=Vs2!LYT=v2xN|e~JbE zX#R<4WmG2ibvC$O?yDW@da6-Kc(t&;$O1*Py&mNHxY-B7!lG@sd>$^2*V;?An~j>Fpa_RT?+xR(|E17pjIf@^zw z?2ly0rr=!r(NlG5t*LJH&3u7|&L#p=Kez3slR9MBeVUt}^GlzB#M0*=t>-rN+iD6= z>oC6U&+H4gT}eUuf|U(>QD7k)a~oVb5|v0;`L;2fI;lmxJN6{a%sQ#eNz-IS_68W? z$8#S<)RvEN_wQX>f*#_R*{7`TkL;gLXN0?}b;PjOk$*HotZQcL67u&I(nXR*4{{A4 z8-5Bp$E~8e^lXI&cB-7$==@Tb?N%mTg_od5zxAT_plFQr2hf?$DCJVGqoe*0Moche%<%WR%PM{reh?fC|D)?Kwwkhx2>iB{ZU0 z6l8RFe3pHJfXg`VDVkqnNEJk9qT+JOSlX*61c=<;B&%5^pm?5pvdD$?vVr#qq}EQp z`3-w}LI^QP)RV~{8vXS+b>-H#lJBe3Fqbx zW4R@C6HlbjXHce1<3{{74^*(h{2e{HDTZas@uwy&~j>I&V zj|GiNLz@|Vb~+v6v7?G$Y;ftFjG2g-NS2^{bpeJR%m!#`enPQyxoBV*sI<n}R z=LTQ?O41GGHvajyhS!-1lT1t;=G@|$`bB1nR)`X-H`aP?u3hlyy>Kn{5no!A*>uv`GoI>6A1Ea|g zQ@_ezw`bI6Z;akuLd9Jz8MG!Ks#z`&+uuA}%htF3AVlB;@I;_G_7tk}$DRHm#s#ymN%3mM{ie`!g{ z&rXz-63d20&Ov=L%vEU{5u%>qLVR2!EGs#Ia;gEj0ZfqtOtOlT6$Y{+xZk0XwjY3P z?}}WV8QZbh>q5P%x>@1<1~yc+L0QY-AsgEDH!&&hOKk25c<(We^9%#l0kO9%zb|sQ z5A&|rt>ZT??#6j{FJIhnTF0m;P4P__6`O`7WSsFI&KYd)v+TEn;HY#swtHZ(_!t=I znyP#Pg3;(Q^tZv`s5BlgtL#TG@;qwXRv3?)|1JwXQ54ppm%-ZTUmdNY0>ySL+vFa9zW7F zdUJnTXIb&7sGnPwpC2EEQZxcqZ-NLtP&>GJAGa>Eo%@K{kKp0%VGWHlN{|V&$P7dRwU4UPj!Un@(_Y0x5PAg937V z<+?@o!tMe;7L#cxL}`#G4cYFJZH|&X*;)~Phim}J$7vFp`uy51Hd*Wq`&Ay8|bEn zeWPZj{$9u8yO@j^!>kt+wzIcAoqXlata#=@vdvKa8F5%1XDLk{Sy@tDE!7BaOkVQw z3(og6aw=abqqeER3}@2grG11eq3VpG6gQefMPz37g=O*A7{Sdh5&c1E zYPB{rrd6{ybW}A&G?J22$x;Q zUuVbJ5;xkuP>DM8v5pNV*^+{Y>v5k%Q-bxL-iPehg$m$fvH>jv=4=q0Ho3s5Wgscf zw}MG^QD+yv(<8E8kt46;S&%mSYL-t;!m_JMLwRHClD`Gl^5qZk;oJ-Lxj2xrnfs(r z%>nWyO7DbZoPEOEcD`m3IqlNI+AG&%571Qy+}5k!-e)(OaNaiZ`yg<-9n7Z&>sD2_ zlQvfhr83XoK>!Mtmtu+9gV69cN*!qG=MHo@jeeMK#hAA5A?nn=js+{OQ?I3dnWYh=2I4ol(@s2Tm&X1xh z04m)EP67C#?#hc;)cm*iOY@P8CZq_iW!$LjNhzgua^<|8A;@O8BNsP zDxS|5eOb zk`459rD&>2K?aqKgx_x($hRXd2NF z@~&%kW=_<$uvDI}nUbwd4yq#C$yesbx`GwDnTGArZ4UKBt}x4S(Z7JdZ1VKh`PG2l z?6Su6dqt;YxFUHu4$rcEmFc8(`N)+J>JbPq(=76xV7Dc)WHJ`TAJ-*XolSR?;GFBe;oswyIwc{H;eZEH;V@ToaFy*2!FQ!lWi-D z$oy9ZJ@_YszBJ($UNQgySuH~WLI3}yf8-2m!U|{YR!*x!HH9xv&LSUB2>0GgR)%HT z$;ORqd|W6E7$bfcw|3<0G#r=*DY?ZT7R&gGBUgp zaRV1``g57*b?d~puU8XgS@-t`ST95$MhCYsnesrL>xA5-_B226YVhuGa+b2G_3`T6 zu={!xg>>)s{x+FVn;CPE)%mmWquR-n|2(>F;~dKF)#o744aYgq%gpTJ{H|>8EBpK7 zSxU@VuiA4=>-PX6#)~zN4^8_UpYDs!cfdFHeKZfNhC2)HVhv;c>HIKhYXWKq2JQ8_ zU@PU^ob6QZP2h6qS5SfrbyKx-6oeaZtW4cj!%KWt2eRyq)iO&K9N}{TI>DcLv+s71 zs4f8RXc4aXLv-`zl-lkX{@2DBGri7^w=?S^m$P8*X<*>pxv14?mca8ZQ}Lk{@WKeY zmXAxl&|x6=;v!=6m?Em3!b5W9^YMPsGy6bkouhNkb2y(^UhhLHqA0xst#vMJw1ygyvIu{h%+iVA#bzb`ew!+`*AeLNqb1RX}t?6VWcy>GQ!s8#n-6!&XzaBiu zZ0yYeUX~H$FdI%wxE%(4+}3VL(cCU9rWU{bV)@wSVXofg2%F@8Y(Kwra`Pnk*s(bg zK42=Xwg>)r?3YY}gU$~xm{@V-q%ms2d~b9Pn$*JcJk5R zI=Gg78b5aQA1)8?M%Ne3#G$5v%r@_<`@PY(b}X|Gv%SGAvOwZ%60uQQ{C1x=*N?a9 zjq|d+JUv&vHV%MyiI;1Qe|3G;tGUt5-Pzsw`uyw|Lu*}si?40wM*T#Y{3pRvU-5+G z!qJi?*UYQ~rN^>bx5mZ?L%VliVgi`lu3LS1KiOE{3H;D_znGXj zcgJ1(IChr%-W#K9=Y3sp=dyxOSSxuOaaejoD@JJN#+D(r_~F8UW0v(gyGJ!`^=jn1 zy=>x6B)2~O>&C8=@BM^`n;-D@x_)^os?|GyyLu!{@(p&=lg}+^hWENb9$Y!5>+tdR zFS3g#@&&AYI0!x7wpU{E7=Lc^3N01Q*1B!_M*Ot7_3`8n`{@l_=pUHzKkux5Kb&1{ z7V>NpXxRMe{qDVn7u_b=bpK^qeG=>SM&EaOBI_Uv@t!*llIQ2-w6OC%QN)WVQB%wg zQ`W?6!72U6@z}>H-N(CQlg`kr_;%z60nG7E)+UfU_%XBWoMo3aA^*<7>(yktqbL8% zyG3C+v$m7(1LYIR^Hvsc_WH`tKcVLYybr!inzeHCf1td*IrzRM=sz>nMEjoec6_Xq zeK@d3y`L~YcRxkn%*ykNe_Rc;Z2)u=j}~jaMNE8K6g$Jl<^t%yULR!%qa>$+nwcrx)_r1 z5Bpf1m&3qXdAm&?j`Yo^+gIJ4yv+^YpZr(2Yzq!ocdM-nDUDPW6ddnQi!uD(Po9qW zw+p{1pWP1*wkI~$w>M5Cp7Ps;_=gcvvmNjaU1=#;h^0k$0{gfbr+p=5wMO} z?$a(enJ;euXD(-2FSTvfG-|>?b5)LMh5@zx75y#i=g&5-H6NenXJ=az5z3LW2l2S1 z>duGJ>5cc{jfjL}@U_HTn{;8DG&I5DC+ccCko48=@BV5l2_;2vtFlfXD9b&`?rpDZlBJF zXBUhf#WK6kS>MZ*6;z06=}a%%Tf@E_hf8Qa7<~E`kQ3dr_a6FlUEOtxY&LAb`U3+yzyRznRs(2Jo+~11{H&510KX zz3X`iwGXWq-`aRqV)D24Ru{#S{tPH1*J)(Wa z>EHZ?$WE16cQfA2m+`@*zL9T;C)2N{p$K#xjF)~Xd@U| z;<=DWyxmd}Z@<0);9Jnlq*~xTFCAm29l!RqT)kCb9@FEvAPl`y}pzJt! zsx-c@gbk4v=r1iz-K%3-QT75W9crvJI4w(UQYS1-TFM~xOERKK>qG5*R*FPjHt@zU z_Nr)*AEnBzZ;O!Pp|$z#^n5qW=yidFbniOp%jwzZ_4s`GcD}k;#OS7X*2&B3@pOE7 zxur|tSi#m-JY#K~3GGbQVBcgBnyE}4mxveBAex=u>xq|iA$rc|I;8SA~k z1o*M3N9zyye~I!pU^al)*6_78X>nHs@<_og71D@t5WvjHA3ZAQ}r6#fDylt`NdeyXenz4Yb)4as{s1 zzfdJHbp^Cp0xYUU2XRp=RZ(YK1YK;(ORJr{UdI|Q@7m_a-umdQ`pfqVngsB|c(4Xer9w^wk&!w8 zA?z8GTK~;^g<}#j1 z0pYpk+?e!rWDBOs`IGL*k#2yW+TAIYplgbhtbj3bqnJ=PdNz1>|^WMv^jy_8csU97Us&%;6CE_wj(n~DWn zjhqO>@4eTj3#?ybeNJ4X z5iUFGzCUfcC08TVj}3_8Gi%B#7Pyk;sx?6%TG-T?R9!lf?f5f3?vECm%sewU_z&*-l2mX!;dQw~oGy?PxPUMe;gl#W-#t)Zo z%Z#mddT-Z!%({r*&fB@YtAQrKP3s41ZL-u)O)IAic_&f{)0H!+ZumZrvH>FvD|CmK@W1iKXTRZxBVV5 zl%9QrC~3$#QE_{6{6oPbq%L<*G0e;cU(EpQSTyYuMVN6#GBQu+OJtVH<8rWS z$T-MtCAycC7cP|E%0GIZpB2E(wV9rjfl^dp#Df3fSm32Z;Q4d@t92}aa-(ZzzZ)hc zwQ_H^OdPGO#(*#G5bhUE%hW#?d;XzS%P`vWxINJ63V*?^kl%>fEgCGWzt5=aj7dm$e$953*lgEl? zhhjBxsV>(1*?pIOCTDpcN3SKik3D%Dyd5-oA5lbGQuiUGYX{B)JOpeeh`!TwbYcpvSVC)B3DM(~+?Ee72+ibJ z$}cMcW63>V)rScCc2#~VxFqiMQOnim(h-sm(!0#s`SYiX^uB3MIk|0k3A0CXt075M zq4}U_zH`gjF?-B<&9=6Bq1|qXaNWpW4qPB@ir}53pA2u>F|^Ju)f-`D>H*g$M4KHV zFVFJ)x*{K8k)aWXIKVNzbD>t3r>x-nWAD-Oft+!_%l@4h)gTuC`{f5m*oj+Z%k24O zk(JqAS@2s8HnQ%C*W;Hh;Nt<{|8TzEUOigof1m8#f_kxInv0^#Ie#=b{o{k5jb_&w zb5lIqbZ^~?R?|J%ZLjm1fw+{%-`Bp!&w`r>s96lB9eq@`$dAKJ(xVJligk-kyXk%6 zF|GzXy%*$l6(g}0kXc1 z{0<35w#ktC*R@Y8ya4lets*R&tw|z;x1ruBpL~xmH8u4C%nHeHz=(p0UpYu@&Y+)$ z9J00pxF9z4D42oym&+u)4#dPuj9yVxU5Bo6#*>xUq<*azK2C~effq*?NC+dZGG$tn zAK=d>Mn;AtIJhbB1UX4jQDG_8<~rx(M(X+U%$}ljdwE%Vs?2PZLp5`14+Tg<~k7)KnP`0n6nbdMj-mr(@M)ulC! zJ}yj$Ng_QDu*~Yr^C3Lvdf#cJwe#Xdgd(j@To*6j;*SXKimb=&j)h0jwCHn2&v5Cr z^s%<9q!`A$qfz)bTmIX!?FSjcnsuq$_#O-X=b~Kk`XPyOApfEMr+MIbz_{U(siy2S zsG$HI7F5O0w0o{s z*_LF-a-`nnrYvKCOuc|wPl%2|3=(E^vyxDt|GeR~c2;_MVv`U~K9VitddVZd*4Iy& zrkR~qX(XJObb%iF+MwSN8YWpYidhY8xXPFwF>yhtJ5E}!6xQ7uc~)y@>9+`RgyH92 zP|LgndQC)5rq9w!EAiI!WEe~Ol4#Y`viawcZ^!#`{qdgxM^bl@2dwg!e&bL&@y`P^ zMexa$FiM6oGt8tUOJ)D?V`yZG*AWc_@?K2Q;E#~MQNvt@@`U6K{3$s3TL#>qtBx)|O-Exn)99)}^lmv9_moEh zfcFy%%psxcDryK=fyJ|=l|gr796~g#gQApf?X0kzN=oMq6MT-1<3^2wxe!KZ2m${w zpEmIhiQ{0i(h7UB>Q7Nc2a`-Ktzbb$Go7eEgDDe!MCeBzO9vHyC;?)DM2s{CqRGr_ z99E;?#5SCkWiTIqSG}ThEEIt0D(Kn`IJPaaCF7*lK_$Sd@NS{%B!`YxtU*S4ra4SU z!Z`web)(eZF~m^B6mg=;L`A;oqskJ3kzI%KU{c5I_=|eU8D38xFP$s(fR$_1*C8Q>$>Y^^7 zT&aP#`An8%tU6Nr1g)~#&N>w7k|x8znCg=X_@w#-r}?-WhLV$7L`aN;rB>;UFw=>u zh?GlNsF}c7RR6n#&`?iqVgvP1n8^xU5%eF1aycM!ghf!}>S*P9yX25O{gcmO-?*H*$r z@Df*xSj#`}NqvQD-dr8hPN^d@;M6kaJYKeeF&eYp@suMalO3N>`^8%uO&lA}5}4c*oS9;g>Uv^0>!WEyvSU|xVaPIOZIOPl{3LTRK@gI@ z6qq&W{bavzcDH6wq%PDO{X0+OSK4nmS>~utZaJT@IBqFN1v`!MI!378vgIZ$n%gVw ziAQRvr`G8SEEDhoVLI{Hv z#+DjV6VytV>X7`ppG|PIP=NsdB6KlCl<=RdB`+>9vpG-}0X??+RKgYi^l_$rjO`xz zunr~jTE+?)R_IKixDfJ=>fHUyT+PUdg=>PlzWk0q248H8nUQF}1us5{kqf@{koAy> z?a+=T(G(2Vs9U4t8UUKB>PO9m?x)q#Yc`eTzV;7Ew@qP;xo1ia(d`<_bS}>efzRQt_BW)S)HsZIKtNLjRM));RJ1Fkt_KBw3 z!}k4PUqQ6_-e5KK8JSO#B<`om-AU+eMP3(6EM=OUCotbihO8{Euy_ugKNW|Jn;-Fm zEVis7z$V2guoc?%wuWGT!Jyt^ zUd6Iu*`DJabBq|Z$qzBGu_BqBd+^L>r{Y?(f(bW-!Z~c}9||Nn+utqS))uOxzshWQ zpDslfmH?8tJc%uz8rUeOkxQ`AEP`I7xT5f%zWyF!EYgo75O;dA%Tk)5Ku`W;OH4V9 z9*n?Z5n>VS!72zHfb$oIBkQJdpg2 z09QVmjdLZ4wYEBnG>mzn`3*sFpyfeF+}*09Ysl_KYsP5#9}Z?g3C{vt1zWRq9j%%t zJQ`Q0LiWnrR+n5i-Sh8klE+sT8s=GPR&5OPOq17b4AYIgfxr3iUV+WionkP@s*`50 z@jkm396eyqzN-kD06<^;vglLUi}!QW%K8vkp@iZZLtsR;2IHd#oA1yzvNg4D4NPRM zPmf08H5Q1HA*#z3t;0^L2@Wo20~ed@=p&3Akk)?hSPLSh+ITocO{4`OtUE7*o}G`4 z252nprHKA1eZ5qZ?y)cwmP2!5A>8tq?4j|)tuKpVf-^Ld2aMJFJKjgi!))5qm_Yu5 zcJ2kZC7T~sY+Gnp^diXRzKt+jQrLH)I^|2yQU7W?Jh1DEsj@BG*Vq1ICE=^<4* zf0KC{ZK}~3)w}MYy88+R$7R3S1Oy=5Ch2#TU%Hm{NVin~MomYHOX&jFUY4ckSA&FwT{+Ir@ z-?hHu6Q$n#I!4=7G1G+ z8)UK#FWIz=ei43>kccrp4TqN$`vslieOo*CBSNe1_neL&8Rhc65Q&2>aYP!qiV)|W z#VPhFw&k5WF+@I4yhs#)IhCtr_nAdJ-HI-L3gp0WzT!1!^X$9tS02#z(|Da%s7#*3 zBNy`4H>qce8XCh>s8gu=Qj1tnCDzhDe>i)^%5W$;KhZb{5Gu@nX)utZQr`MAOe5}!VoM)K%GlovB0`=iGKxqVIG3LxR2z35*)QNl)Q1@%A&qrj4(i&2*= znvvlr*OFBIOXxCE;}Q}pzKk-yH*K`Vb4RxHMvAlceAt_sj;5q$hkyx(A;ETNVgT6; zD3?kQ43TDL;g@Z8t1sA;-WCY1y%--YAbe8!;GYGh$l-JB)4OZ}5Y_;4LUc5h+K4g+ zK_0js=u}D%)6N11%4Rbp{%*wKm?&R<|J5-H_YctH}kvF+^OX=-vNPczv(v}wGm2+w@S>HY!5=h1^ zA66<*7GX_{C!37WfFJ^ZO;3@@ihV(jG=&XGCBto2NRGhnC@@N}XQyU<_9$RyQ5Nj7~Oh1f~xRkkma-uu1zG;d?h%TtB22kL^g;RP7 zw*@%T81P$OLiim919OtWLcga3eix?*6HOv-T1|9dUE)oNe=`Ei4a~pJPQ~A{3H;dy z%E1bWaxt#hXu3?=SOnv|Zc5c;-M}e~99kjuph{?6lolnct8TTP|Dndm30cS062<p14U8Y8`4)$G5SEqQ&?lgT_Un^pN8;{^pmV$XtJKr zs&!I2+jEFJ>bX3H7$IJ*&`JH=>ZRP-4bk5L5ACDM7+;T^~C+xJ}>WKlRpHJJSjZUh2u0n2enL00m*F&^VbzBEdCkGZ*MP_)2 zqp0nS?D$z2Yb+7-mFt#dD^Xh3zgzC5=}+f+r50@p;tnCpZ~SMtti&jkdJy->C>GuQ zxir2Cf#9CkwZxRqUUM<16mm=qq!Sz*CaKP#CB^sAz~bQPR|ClBgacSIddaU2DD*w z-rA`@!&uwa3n&NcG#i1i=vShrDvs$l^J$3D2L84r12ko<=fH{W#OXidGxj-^_JQ0O zYG#6P690l3LW=ZjgU3D7G4A53w0``x-Ps^Om7a&$JKH^55<&XxRVUW=epc|N^H8!Im1DfvgYCf6z~(>9zMBz z^gUN1Urqu|46lfrS0pfN^^Lssz2~6zHJ1F^_SIlWoP`d9reJc=gs6fTOpDBf_5a0u z?gtH%bU|tX3D;wOVA;e&2f(Hb>a!Dy5lS|L&Bb#A!>*Yb$hXa9H8uOop0fb1nk-f; zaNEqu1|yc096^$W)M6(Z?Q*D_3@Qen$FbS%U1MX|d^g6;1P=!8V4~IOJKnE4i;+BO zhA)*&@2>e=9M6mT)c9=+VWKW|;09dd*Q`<5Zl5_(|D2rUY?=Lqk^z~V6_Tb!q}RCj z>GiJ6mfdvNjQwFQEbSFThK_kT- zBcYPM!ST_X1bKSLxq4qD{;_z~^usfC($Al-pL;41G&LEtCrcEqlYdqW)`!vIu@x#b zs4QoktG_t&S9$}|(%{7da&}cu`1_x)n0HJxGPrEsr*ID8|12cjm_zCb*6zO{V0Tzw z>22mE%AplZ<661|vsv=}qS(mJQ(tZ)6U_+cZ#0XLX#U!s!Z#_uCKj<6vnSB`kE&37TcIOyP`FY%sB08ebYuF?t+f!K2o}tw5Z`e;*Wf z1zSciW{+JL_$wG6IwXt8Jp^$RuEz9C;J9ljW!B>PdFq|`&+ERaY-nN7DlN=z;36M#EtRg|Bg-iE58Uyt z#7Ak%D8)Ou6Poq)1sxH79U^+UjMFKyvndf`YLxR773I(iQzNA-ir<5J3ePYc;D_aI zj#yXB_y5%9Oe_OUoj3DY5WH>&?d;A6MD6KiQNO?cxy^eQW2YxK5uIgsPp8)2FRI!) z0VjDo5e@O{!Ff1OqoPpox`K+|sBY8-~r>PHAdw8>eLfU#L zQbUq+$Y1kRr;Bbt$8v(Aij^Zte@2Agnu&O^$hh|ZQG!WHv* zBWHmNefv^ECzK~!zg+mU<)Xr>80CyUBRA!&M&Pfx5;`H4_y{9qhG@@xX~s{Y$+R_^ z<_NAgg1Xq24m~1ir!QUBX=J@-46;l?M#%ceb3MdeI}lqg5KWOU30wJ`X~O$64v#0l@|Jw~6(hS5I=tFhN7sQfg#ua7cf}$|ONR2N|nRw4M~!f=Nj$gGL8h{x0}? z6y&s^vy2*V1Kx0BLebnpMqT0lZDT!oO57>Q0?M>?Yt)Z2?tz-F;QmB~N(S-2r-%>+ zi4!zN#z82A_KB%~HRX9s*L;(`Hl`m*IFmKqcpUk@(J*k^fN^pxY)!^OfRIe}hazU+ z2ze)HM}2jh;p}#ai>t@W^ry*;MJtt=dEM5y>#G*ErTa}Sl^1d({yKaQqp$X=bOdqOJmPoi<(UF z!4s(dy@p@LvLl*keSJL?f?{-<$PNkY3weom0$k;qQDF7+OCv-Ter^&@zS7)xfu!8O!arRU>h^A$hCP2l(D13>Qd>Yjm=*tJ^X zJ&lSCK8;oyiE!D{(a1#oCd0omH5wJ2&Nf$IrN$K=gccG~92;Yn0X~USz$t~VZwiUg z>7W|-#Y3PdH&zoCltaxJ#I*GM=>3~fPD>GYT+zT>!Rg;bUq|NK=<<)hX?)5uifa{h zInC9&v&oJtqk`rDN?{S1Fh1R3&FL*E00z0Z-oATf=XKnynh@{4svdlsCbc8pNc>BdamdH&G=ooDQxn7)TJt1_@d`wL1@jBP%|@c2BlI5XQi&9H5pCm`Y)gpR!3z24GAt`Hq1` zV=GJ>>m`E2WamsKgMGnmOQ1f6TT}d(Y0B0-5r$=&rGKfJHQlyjV@HmgScjm&#Sb>m zq3;StjKC>2r=$r|vGmLB&K8gdfuT_13{V9xgH}T+C)E(Gk`jU&QtSQ);7>(c3Ysv?SzVVM-CNY-zcTTm8iY7JAe$^;ywE zll)v$k}ov`N~Pg@_G}Yz8B_VW^z{uwtR3pnR)RCUt>*_6IF90!HXD7aXE&c0rveO?L3rUlCq5Z(-D3{}(` zetSbLvvV4jSX|O9H{de*e42}8#B05CYxwn)WTppn;BP9UAtD)LD1{SphG_s_(p-`q z>UlL9Vzq&9T!i@2Rvh*ku-c(!3L0whomF&ds8w5{JAb1_K`3TSBpdQ)X}tHp(_I-sQMx-5lHphF+wQkz4&EmDZTZnQB9HiO6*yptCcs z$$dMk{`uBMZXfEv>FjASa2Y}+kJDVG(8ldX-L$f{cKyeAzCJp`fm=p)61aGpj(z1t zc)#cHaoq=d-YA%nVbIB4wlDtb?h_x61aJZ}$OEChvq!Vsf1E0)!54n@j`fmQuTOuQ zj%;>TO(6xmzx{)7#3W>a|BQe|Hmh@L$`sD(ab)V!9zHYLp8}HV^>BCyWgmz@$pBBm z_Uv!rCOux-kmJn*lBVmdtA*WhbVWnXPGK8Iw&2rV8-o|~U*N}>6bz+M*GYkvV3*?l zr0~BdR=`~;@1RCRhYAPl&l%>gAc`H)$P(uWV>_6mp4rbhkFDcutQhy06-rSeb<2SH zhl*q{YJ@~cDX@Z^O?2=-LnY-%D}z=kW{RN{zh4uyI=S8lHUE=^DmYCObLxHe~5YSB8v*9#H@kKh3s zY}z44A9Vfc)OnXbQ_QR9brM+R#Cve-c&^Pp0RArCf6a4qs*iiU93<*^zd9QoUcR~+ z@38LS&s8#K4BRRoh51qt&7kH+j$%%SIv1&;^z z1W*ZJi0MJ{>lPXOz++87P~V{OD;z9_ia-+73{mM}NNtwuren9J8F+FD1oJ3f>Z=mq z{zquDT%mm^4q|~rJRQ?D4ayPjaVAJ+PKW>Z!h>Q6nBBR&8pbJ*Q42xt3Q>O3q+fFJ z{PTFf>SUv^?njBCsQ>~otQwMXbb-zSA08QC2x|jH$%yb5!Y&Jp+R#gua)6q&R4u)P zWw40Y5Nb^j9ZrtEP$Dvg$S{ZpdO#2{iNxycHxlt76vsMx11zN=bP~~3r6>|n2^1yc zAaVr7zqDYtw$P}5v^b=N!l}rAYC)k3z6mA9VmL;ZPjCXItvgEU;-1Uu&F1+cQtEsw z(gU5LBz}L;_v1tr6pBSASI$V0K${6-{b6t-k{nB6JPbZbokJ+Z8{`Rnr-6S=A{BKk zjHhX${y6K+oS?j;L3zyJ(7UEl~hn%gC ziQb`SeiAonhA!Y0cMCsCJHbFpj4HinS)ttPo`d2<&s(NPe@id08DlrxDVWH>{`)IX(t*B3D5uf+T z+4fVk>vG=E$s%j)s(h1s=UR)Q@%V?P1B#6u1i$p2)RKprKdvWv?yyKP;&cb|rubFO z=7}atUK+Mw2QF`}r;E&vG&el^pel!Kqk2~`?cZQx0CNZpZ3M>%vHMi@asqY0-Swny#wlV z?=W~N$Hki`ob95V-|Pq>rE(v@RzDCje}tJ%?q@&4uteO(TsS z#gdesP8()iqn}L|mtwhh0F*N?HwE<&)0N+>3-#6vakykuU#8)46M!Gp`Ge%*rDWa&;^wIt3)b1}Na9)-BQ z)xdtoWC00V&yDbE0&riOPZLfJ#p{p2Y{s_D+K*G6HStGNiEz;<)9ZoY5ySnns@?k97}&~u+h84~&%Ih8cLY{I#^0;aGm{%S(U@`OcJ_ypMo z&N6Z`2=9ctMbaVik$n3n9qb2CdH{5Rj-PZ(wHcfY%FZ#;g}e}0M>I*6#rc~u%m}Vf zBVJHD9#CbjP?V-eIA=WsY3wn)tOjTv2@5j1+SKWg-m~N%qg-)bJt{-A?H|VGywVSO zA-H-Za}nSd0`UyGC|DpZIe3!;5#wg}3?Nv*BqKB7d%$q~=g5^IZQUc{fgZ%PQPCVI z$DU}xUi30>&gUeaJeY-(xg(JFDltMAb_XmA@s7U-X2n|V4h&DYP^JRHJTOWS2?lg- zn>wyB%*4sOO(33fpz_M5>yTJ!T;{7^aSR#{zyd$D4)C!~{evLAAQ}<+@ z$TaJWl!@RC=qSP*g&7{8_Y$zIHYZ+3kIpH!C*BCmtStUz40~Y?&~GbA#Qbqln6xqK zVAk7zqvWOgc2XuEg4dQHD9n`7X;>Pm{{ohsgTr}^TjY*&v3;?vL&MsG)G{g`3H}jG zNzxWE57M1&)@;Xd?_Z8C9npV?K^F$A^p@?^*F$}}Qz#1BRmL@Thmh zP8d(;Dc-h>246*k1XTFa2d`p0Xb;Jec9YGDaSa zBjo5^zK;AY+&rW_3X1?vbGm%3jo`NF-exP%KSPmuWHl*Zf3GuO`g+)})4c2!Mkw)X zneegm`^rq{Bkv*9ch|I;RcALxX0&SKh~8+OpX|;2RfC7r@&JM>B;` zrGc|&T%>D+%G+NeOhNwi+xRHFs00a4ea^$Fw%Z^m7i!A-1kN^X9EEs-J3TZO6Qqp> ztkS45;_SB%pbwxg9JWER8&e@nQ?`I}KNFLrdd@aN2bUF?C=x7UDm#!APK%~ipBaL} z_&G&XF2A_4q})#2z6TL@r6gmJBZxMz;wz#cQ*`YY)-zs^`ej_QEKV_o%<4;4rlnU} zo=+r0Q@&R##W=#Nv2DWHB|x-)vvYI8PXN!{M-f2)nm!LgqC>+IUG@RwYiJxPv67_4 zM8;52pF_|(;V>Nn_rR5*zAWKHIe6M!TVoT=#^lxcag6D_3R8qLz{XokUuz2zSu{BB zpnXUQl4=0W^anFZKSM~b!O6H&1U8rtOM+elzV3uOLPdGnFOjh^Uc(WM_x#C8w_c-p zCg$JCyxEgACV(CbF4?2agEJc`Jp07}j|M`*E^p*L5{^T}WggC-*}FJU8ry*3H+I$rQlThZfUbsXO~t$IDmkib^J>^Tm6wu>19w z^VxkDwcyM5Eu-hnyzXa{k3wrXxxTC>Yo9h-y*RLdo6TCP!%BEl)7=CT@)U;fw4WjO zG!_DJ$ab3h!Va96JhJoHUnx>4z#(y8tqF(|>gapoqYOoo{O;Hn7>-4vL2*@Pww^<7 zq~1_%#h7Yk(e=%iBA7H#+DSL>Eqr;)dj#duW=f7&&a%#v8)9#4RTCq33m2!T+-~Vu z#URdrZtHtyQg~yLu{vE||5{ItILu7-R9xC#=fS^BYQo2YY*>GcV4*Q+pBP}%(k;?{ z2a5vli!j@}KSyb|P>h6AB9K*ov=orlK`H7d^7zai_Lo$*h45>RFEAh@*r#rH(1<)nov3hj5mg&ZWD*Y^&SdbN~4#w z`l#f0@G}Db88hN?Fs$RrEAz5B=g(9Q5%{bA_1TnQwzpnWMWULtth^${fPjR9X_!AE zu+*s91$zAhnEc~dMmi~2Oa*A@FA(x&?+-%4k4QyF;FL*766o#T3GD#nQlStt;Cyqq z816GcLa{s7S{`UPu;E>)_C2N7DZG5<{)F(z(NF_*B4Qx`Z?VUPC}i zAxKc#H8?^@>EU&AK5im_d;C%nRTVW{5~4L5)&Y*w)))UnU8al5GA#{`2882kyIQTv*Q>6ZS%g#2?yq7c(hX z;K0{+W!Q7YSX zTtk5p^?`-on_Yxzq#?OBQTtt8Qaw;6^5+r}pOP5U8COLg)QsUl&T<1vW$C;)VbY+! ziY#wuzeqZ<Y#2D%5o!5B53cQ+`U-EKzrE~=HCQmauGKiE0ZmEpBx$)R~%Oy zqi-#)FXLekL@39JTmWH$3>xGM6gVh|{J3vMdedX#-`yE%eDPZ5w;D(9PHTqSNDL;a z-h3*Rf7KBZigVqBz2HY7APc20SK&27F6)E-1v>E#;+!MzWOVIw*gSHI!ELx!l|?hAI%ds{Ph;8ckidRTAY z`bh%s01{YYCY}-ZmTeG1>>M9{#&r6?qMI|<=h){sX1rss)AHX7wXNd~yCMA(b7$GU1(Rg&hq&|yUlE71p2T|~$3+sYO+mv(s$7uB5 ztxLfFGB3rMf(b*6u>CbtHC-$*-jN43AjX|Y?O1~o44Tt|3`g%{Bss{n8_Wt}{^ZM0 zFBc+dC;FjGvd0%@!L)XzCgPSU7nK-lsd>D&M%vwM44N{ zjUXy?awl$90AvQBNI+6;W%DBrVn5yNR<577_A5>!(k_k_ZH2kCm2$E*3_wu=e6CV5 z8LZ&I?OAHbUmH5o5B^`@W;lCO&i_1Q9nO9t3HDm8{uK9zQ2M$X@f|8_DM(G8bm61@ z5Gn;>CX{+mtrLsuZ23-;Ym30la23St9gKA(TqE!`=*4H=beKdRIm8p<7w@dYdIccQ z#$(cN)}MM|+{79RR{D8I-Pj8v4{QM@@a#+p*o%P`V~p(BrQ$w5y1yDqiPbWbifz{Y zDR(42ywbATGQQqIiD@2);hb`rn79ZnN*@Sv;QVZG^PMgba2fvxyUP@eDsjew_kc=d znS{l&WCDcDyM|RHi)T%8?Cf`rU#*Z) z`6%6GPm*S6^VK*N)fdQY(Hg@+s+0(HMMborLiNq_@T96j;e`G()uwqp=f|ic{MUhjl7_yOD zmBm)osHL*jz;tSIHdI42s)#nqI+fO+#=`>&8SA%&tUVIuGYx?H3|@fN0ChC zPG4(NzkF_0ulI3yzh^>4GZCZa1_7JuQ zE&KWy02|zy@wfNdyI83xK;oC4nqeQ0L_3WHi_$9&3v{qx8rHJk>?EUPwj)p+-mfU; zHO#AFug)W^H<#w? zeK3Q^S6Y6Gn6?kJm85gESja0Bs}$$WGNznlsBoWb6?NF7pj9Ar0WpTp@4G^18ms+Ysg5g*-4x!UXg_o7R$6;k)p>MDlRbCkeSK+- zi7Y?cGFU3I0X$Q`j)widlw}V;>Hn*1ObErIzh!^3-cj8Aq40m3LUvIPbz8Ek%6@G} z8=I2^2g!B7M^p}sJAUIxMTT7akm;u^ZNmjR4fik*FpIYeCjJNuz+Ub=SAxeXc*6Q4P~{; zR|w4PCyE`6c=0l_r_Kk?2NlE>))*CFyB-oPs(kccVm}#@2;9z$-!_ngd5hgMr z+}uH>scTG7h{d2GQx?w)7e)&rgOF&2`ohy`tY-Qz^(Jbnd7b2|x#n*fVFRCv!gh#X zmIZW|OkqjL^nob1Bk;cS2xnXiMoC0T`OV!}Xq2D$wwunCJ#`Sn?+EDs90XHZZBl^3 z|7rh=RktMtM4pKdw-NoC&&eNye8@u^Td`EX!QbVOYr4lsf8!<7D4FLYL(5WjqK}8u zF0#Xv5*0|TW+MoSVfpB2T%Rv}>T1x$m~H?`G8gU+PsVues^$Tsm?igu+rszt$|LQB z_#SR9^0z%l8{juaeUjlo0^H|*ZF-&G+`p-p>8F4hB4%0q@>9tqayi<{yOp~+<(|ki zAW&&3hFT$qK<8W3&@@unY{}}|w3z_?=EA`0Hj$e{vBHf%x8ZPe{L%$OzkFO=9#`{e z{x81LzE!Wd7rffc!&&=!&v;dqdKZk>m6)GZKlU_`eOB66+s|vg%z#HS{t-nYLkY2Z0^nq2BnJ&_&$;bq;;< zP_Rd>A$?`xqKHp+e6?~M;+%+2bX<%i?D74hl*}2##Uup34`JEzR)9z;I64-j4NcK;`b2gkJ3W^W0eF+ojF^FvHWca_?TB z<%2K%YfW;6eh)aBp7}WnZ)Za16BosQl#|=BI!1xHT}4zGtl?YxMHjjvIf#xAD^C|m9rvrrpi72$CR63- z{m;f&a8NW;@Pi(Ujm9mcIDjC_CzH=d#KmGA;VmW*`A2=a@bdT$t_@_+H?z}wq`3Hr z_^Tsn!lR)>6bft{RKW@HE~`n13SY|XYbz8Pv<@@Oy#|JRhHHm#9rqC-)yIP>25R86 z!M_?9FD`%mJwS*OdTJO_rQ9@WN5Y<;kq)2izU%5Tad*Sy>aveMN&vL@>7ji#%`(nf zG0u`s7X+shZlvZCX(F<&!qJ_rG+qqAAj#CE{2=l%_!?>#z7HcAK?yZlaL zlWU^JNR#uNUQomc^YcJ>>=em0kfWMNiKZqp6~+kDAPspaxGs`QgZyj_0=RN7{bi|-ETVpX% zx{KMRnG%>$MXQ>!X2bAirpcQXiKfA%!Emx7)dmK6cbZg-lJ#y`e;E!;=g^X!*3YQ8 zx1>VCB4>}6JTn2(CCMq%amsMY8n64|xWR6zewxs@DQ`g~6;Aegce*e!8ut#4GS&&X zONGuqcN5htJW)9M@*BZ5V{A6@w?04)$`~4wbtZg2uM2Os&bG3S*0BD}Mia)xlknni z$tYGJm{^h>Kb>@1vc+!Z!}~CiYRLAwY}Wa_&RF_wt|<;6l9w+z4Y9rS^DALc+Y^{i zA?@F~D?;NYbyQW{peSWjB=sU5EX*#NPO=yuvf8RI+GMwTe!9nj`GcPMcXDAkREP!x z1u*<(&l@4N6w>irnR&%yt1&_ESaeI;9Aq1TA-b=3f>@jg+0)uxnAT}>bLH*JQ7Lyv$$Y?kVe!Jr32%y`5M~a(BgehitYbXhe&FL7GNoCUm%wN^Z?L(T zx_Yl>)!ml`5AriSM@=Voyk=hmBo(g3-_RGp}X%lTG#o zj_vc-=;k4FO;g9L3F%Sdh949X?*thBhX?CH4fua>Va0#8%>CnNq`oyKs|!@fI*gwS z3X1t(I7S9B?Gjg>o0w9TJsgzgP_?3fq~HvVQC?_#$$0bSIQjl}l8(-GEciL!Ip0P& zPWM}xPyy`eMjV#6uPI=9itd6*(G$(PPcU21O57_<#`VSKVH1t3tuTw9C+@)64YKMT z3q{}MIMy2Un14k(WZmVJZz1bq%u=d{1ewL-_TvFA6J?WU(MOzIN6)3c2^`bV;t3u& zX4!1(JbXDAxss(6L@t4ZnU6BcySyeCT!Ne09{>rR4~(@2*X|*g5L9|&7rpwK*>=hX zQSW-`hUtcdlCi4E;H5>)Uew6-`brpH-T3G3_SMK`=ec#AdIv1N8uqNI#XDelfN>jc z-(!1#{kA@cCAI^1lnO-v|1GaKdpNnI>HegTpaBZ*(Ec$n#ES7Jr1R8_t0VVp=fo%^ zAD~Ok<^S%xS=TbL|5RRhto=f60Q-`jH{|#G@Ng!xItfbv;Qi}mao&F%^}>H{{sF7) z`eg9OcX!er#C2IBgkS)#V*Gb3^f3OfvG8Hc>}W<>T2&i7ptol8r^GA7wroH4Cc;O0 zSVJ9Btd&kwQe{3acxeNm4mAdQPlrSq35JgjFKwCd2v*0qOHhR_ArE!6A}8+vPdgFL zc!*?U=ITLgneQ(8c5nsimIVU|nfnfL|vOE4c;bgZtTq}H`m)c#%W4m)sA zYw^khMRJwosIvvZc~lV%@#F_^ylWX+gwJ#*U-N1z63}de_W&Qlr=-{7B&OdSGMC%B z=gvR;nys0L9Ltt=gxNd;?x{ynBU~?7|H_sPZ(LN{9f1b)(gC~M_w$?;@o$YhZ?fv$ z#$>*l<86zg4Rnp#Bgyx2ltl+iI}PL%Y^ z%X0nRbddQ&((bF|4(wKIY3x|qbi5*T;}(am$xe%LNFukpeX3{;&zQ$~mhVq)`Y}1l ze_s}7{s6*W4NG!cF@)Ap2HVtM^q8-|v%Rte`;=@elq~B2&DH2wKsze?WtAm+g5=|C z>pSjg!Ld+>*-*x#HS_YyTV0;miX9(PgGJ>}p5jw3`p*9%>#QHHUk6_M7Y--LI2W>n zM3daG?5Xo%Tb&b=W;jC)YJxd3z*Qrt82u(DABs_*;o<9-3oR%}I2cq!5*%Tco(yB* zy;M2U_LCM2rxO%$a>-qV8n<<%p{`?ckYYm3HJ?R0CVyoH7^?6 z+s<xkM+mMR{PRS z<{{suHm#d1Fg(_?B@;>TlbSpP|DzZvx-ywvWair(AMfdeSL;@4&NVffE_R#Cu82O9 ze_`>rZp+d0%dQ5R-y4N(Eno?`TD@-*aSdnr`FxkFgY#h(1|#ChZZ9iF97*2oe{p-G z;D$zSuYiIySu6KtgSB6-=39p1usz4 z+cIE&>I$-X`c#Tdq#|FTXo7l!&d4iPG)ejXSXGTZRWgpo+q`EBRFaI1H3DS|Ve zz0G3@a(?zJCj;7(e;l3KS&?skmnWpD80|Xg4Hy@nriI!GeCCrYVvqlQTNx6l`=qsW zsnChf{WM#7^%SA>k3T?*pzY7njp&jC$uhYBhjZ!opHx3)w}0!``fg(o2Y6jEzdFts zy|Q!=%Venl@7vHH?~J~!WK9aeIlju29Rs~nhduu&rn){29zXswhxXrvb^Sy@Dz&Z& z^;gT*U{Q`Env?`{x>DqvmY^hF`Ajy%^cf^k`;1*u0qbm`5~1nQ(g{xdda+|B~TgTma#PpySOP?{mD*B8`zanOqm zR9l3yfk_o=-mcnxS;@-5d)V|d|Rk=vnl@gsAPzO;ta!{#Bewe zp@D}hl%ZxkF}pmW`#3TG902SIx1zzcnT-FzVT+gfh(HfnkV`%%{lS6$N5LK8ipoyE z!g_*-&rnrWT%3tkUKU{;m#6sIGTNzLHj`JxOtKGbhd2+t!KH;m)-haiBKeG@UUmzv zU3@r8S^*3RN4bNmkJLiR()pTQwtH zqxhnB@EVl~sp2MbbCAK3#@6NPtlhg+t|69RqXvmE51%Q|kHNCPY zCgquozpaV{Xaz;bi}=A0gQqAQAeHn9{Ne`{ELn+ikgcZQzyu3{#~K+~8Ma4QT?`5? z0}R3iKIt>gN;QoZk0IP=^;%8{(#2V{okC|n0?c3(=w(g}zc1HjZZ15x`2jQG0LIbq zoN^9oCjEJTfNd1o=1{mJ2OQ=XI&jf%fyUniY5MkdE7wZC*&^MlZI(6cy|m79l{I7~ z8B>CYAXr+#%%&F;0=F3 zDZK(72!|T4O1wkE4G$wOhldD2u>OE*hi?BIt^w&6h=OJT_XA~*ct9u|z=>>htq!Rc zSN8MMAiv%|2r};n}^*5&TOR zye6hQd>fQOFcWK!kE+TW8}R;1V{pQnnmP_S54f7~7)vU=htYz+PRlFaG2LmDq?hEA zY!@Lt$u^CPq@WkW3l@T}kc)yZlNbHPB=Q#tnRaU+sR8u2&#vEI9BKWeUVs-sKuKUX zAhR-yl@UAvJ;qO67XFua`^c+)ib1rd$XCp2jg@`jLM-bf%a2EO;Bc-8ZnM9u3LdXD zO|Gb?ZbuIt2dfBl(HU*VbE2W)@fg>>sr*OwjOC1(duF>*b`-nTr}vH8;c~(T1=s}* z8J%{gwBLFYPoORT==2UVWsAZUgi~%}sW`F!1moYkrG;oWxPH3%0bC+k6!xJE~g)XL^K5kB)9=bPl0Q^rDI1{P#JAZUX{n)Z3} zH~0N$(=pFdUv*PW&h(b2ZSw#onO7!PCKtXigS``0Va^0+%#&!`fv*h2YECH~1_!y208ycQ&?Qou+IsVyuvacV5%HRmQT4z9IE*&cV);y;+c*xqI|lFg z>N9^~BP6>0-p83a=nDDrX8ylnildiVWbRIx{tcL7gxeyL`o{jS|x z=gME1ZfA`Wvf5y2Ju>ohq<^rhrLel8=E3W@IPj#W*gn806<2Sxb2+XDvS756T^a3- zHOm@4Yw9=wxfun@E0c11_o_|?C6&qLR$~qJD6XxoD;`AUN0XX`5?+d+4x zZp@#h9fp!@rir6pe)I#MofJ%cytk~ZA;`_lTzsrX0&%^)9A|Jl`JNqrCamLc<5#cP zHWw^9vbf5PrsRVvTQuCk_+syM1Tb zn>jvvpaAfE#JGDXe9P@>y&G~07WrwpW6=5J%NG87+u$Yjo9F(M(4Ph56^Y;Od9U9* zeP@N<{@ZpIEWu_R+sNVB6v$v;NH9_0VAx<_i8-n`iQ}q-py4=}CzXgKkW{W=QWBjr z!F4a&t?L)5#A-@*rrNjcMZx~Hv*(P|)b3Oi36-mWcBGKGIA;-^2EDC~vJ^Rrn>3}u z-;PhAl7j7M%-qd}PAR~z<;U&L_B=9|kS2M*F-4wV(jT5)z3f((R%xi(E!|!Q))x^)U0y^ZxK_NONPV@2~EQ zjt%d2;JTtoYt#Gwc?WoIQX492A~#*m#8W%f^Yub+sUQAGbGPNLbrl8hxwl5aGLRKl z*?P3!&2QP9?=2!Ym{i^D7*J2NQ`Nhx`c5gNmb}OUj7!Dfw4GaJDJ7n3_d@LKlUdnb z$>{_g{ALV1%G{ZqV;7Fm5&~;VE%X{_R=hd9DROez?uowv;_;U?7qWfvC0Z?wzMt03 zFa1jU1J?M=)d4?khJ1WxHrApjc1eGf(~nZ)rtvxw*x1?o2=gQlXicGGFiBm4ld4+p zV>em?6h-(@XVgae3v5mmi8+~2s`}Z({@51sG^uUke9=xv9lB^G8SY#XacI`( zgngJo*5fE3ea#GCvq8_EjU$+2@_IVaZ}Csg%fW|Bp!C{tT~_mU#3;{*=1tQKEU$N` zr}xfgsn4D1aYB@#xVLfhKkUV~jfi8AztTAXZcwWF+vqnRDab0oaE%UfQcxci$8g)uu+Mk@4EIJ11987y3u?C}& z09dA>nf(5W*~3X~KChYt6}Njzr%uz8%??ZTfg{XpwMA=Nu} zTGq{{_=T}_%l_(;n2WFR`P9X({&Dz6_qx^OTCUpF`ax9>8&uXQ$Oi#|xw(Lr^@ChVNdO`l8B$kh$TJ6#_24ueDbHEp9~G zK?vG^g% z7O2}?E(SOeaRzAEFmJMIQnN<*E%GX?mZ9y-5ZOaD=-uE@2N*X&|LEv#N-=xzp}c-d`_R3aOS)JX5u5CwrRPMw4?1Bzr_G)u+iH zW%~^|RzG=sJ9;Dt|GA%_Li<>qZ1+_V+~%v`jHCDQ{rP3~i_YOSY4TA~^_a^%Cs1$%vm8P8+6^IyIFbmHY9;L6g3Vni9Iz?1a-vRVxizRU(KwFhb$vXM9Xn7uKQw}p!vJw18wbcu{F3f*8%A8>nT3V}sOhdjSG-?9$ zv21QTq-2%(|M0cKGb=*c`RE{+o!K!fY$1ld)H92>aetzm@VI)-}9_^u0JjU6G-X4c5G66^*|y%U^SeaW(g5rr0ozMVQs zhPTWSNfSDaLX!6#9a5rg1(;{l)q^-pU8st=W1P5II3>{a*KPusUUx7_ZESC zueLcqY7zUWIMi7B?nRL+C$W1thdTgz)%Pe+B;T!L=3uFYEX=5CK46b$S@w7}OB-iF z^3B%JOJB(d%pP*RhpQIJzJ{%7K3+-8p%dB~axIW64?wcUhFjZG4qo5kYC&=gS%=$Wh{oRi9T2j;!~GK}06Tj7lywLH zCrnq6(~fWQkE#d-o?&BdXC!^dLbUpiT2N$f2?^VMlIkBpgWVTG4~3RXUL|pm&nnFP=?+lsedc3U?M+4BbLAC zm&Cs{BY{i*Cda~5CBXJdpN~!o+OqO5c_jUeS#ZzXLwbP@#`r5RO$cmTu0AWy0o@FwMP}$w!__1}1##+zdlBylF_5A*;roBG15@s4H0~_&?ReRcjCzmic9!njLG2!=Yy20O?#Lg>O81eZkwaj^+~I-FBm{7|gY*#_dFu!V)F}S8jn28364Kq%6YlgKJ>q8uvor3K1#%jazhLI8)s#nfefX!y zfTzmy4Q=DqY2V-OfCTCl^ldC!ZU1%;Q194ZpWyzE`fcF9n*SqS_uBb>A;y2TN?dAO zO0j?1wmnHZ%gFanq+7#KO+kPD5lpB}gOjdmy;g>(s({yrIW!7)joTd@UMb;!etr%E z5Tb3g@Z9{C{GCHZ3oA^gFG_jb-= zw|fs5arHjxaD5Z5Qb$+u+#E?@oJvK~$6z1FT$j(7c=sYlIkqyAuGgg4SeygUZ}x=R z-ThZzi_Dp&P7oKgk$*>LE!Y`$Q@^jM{XL2l=w8If!! z#~II9&0pJzD%|79(B^tFH=?;){u?>+a}|@iv=jUl!=_aCu<>z$W%>1-M9gKHEcQl& zDV^%vd<^A#41wP91YcmF;sw$qlB|wz(`-X^`?khB{rA1Spb`px^>KWUrsC7&T-Djs z@%be!AuIZOzKA1?YH>ym|06XJK~O-z&A z;RaCe@Be03iBu_&kzV)9`(1Cs<*43NV&fP4d9XOPS()k=s++6L;m!8oqL8 z`=z;sdW`d#ESRxT7=k}WPLkkKoMSg0XTp6ZexQGM?_c>5($(L|crV3gfXCaxoF#b4 zOT6FpEH>BeijoZ6blakn&rLpppSK0AR?B;BX)u*ZZ{#sH-ex;L#D7#Jd=vV!iQ+#y z=8D&va3D|q`XmGe2FAew28IguKle~%a%KFgRTn;JMTh~=nZQ71P-=SNohNK+(?-9(wb_jn%nUa05! z;Zf*y%Yyam&o4&HLt&h>W!H8kI|ZTmsF5z}{z(vitFnN zCMxGbRcE5Rbe13T$JngR>b2=u2!>QlL^g~@SAW9uSnyrb*= z`HUDNU6aiMl+w!L^HB|J?(3+nnS5sP2-j5MV=8f0$$fc^SE-WYZG~aL9)jn~i&fXQ z$90|d#MA3o%Yl~ZBF6@hZ*!5Bc+mV1W#nZbn>#DK^)2C${^7*}r25z%yiI);jeJ!k zNktGmHu?S`<2~$rQMM$tWyH_H3nh$JqrU3}cU;L}|KXGS=z)&Dox$^htVlKwF^tEo z1Yl@bfIT}#{dQnLj8w3y)NxBhqAqYwsF+*=X48wK*oP0*iF6+5H9m#&c;s*WV3#pKZ+ z|Flgs@4VoR+OJXyx~o7jHUcQJ5ogqoEdAhM{2T;~<(L4HlpK{tfBd`8_B=T9X}iX# zpxY8Hz(szCWz9n)U$z^VmknxY=3}9Sw5j#G(gL_));w?@0(VJfNJ1fdNAY92z%Lcy zL4{R=02MY_7*tqvP+?^QML*GkBf_gdWJ7Kou9efLpMid*?yWuTiPdEu8w_I^)mLnN z;0J#H^gcEE^5psEC1_P3@!mjwt}yU2KH!S~|9|R$p4l8O2mwT5;9y{}u>Xgrj;5H_ zWs-_r9}DX6HgtDC@ZE#HZzFOg=-X`aVv}_pGi1c&q{mWGLpIyMm1BETjDWp;UOg=2 z?(f!pfGL$&CNv0pTwJg;Z#T*>*H1q9AUe#s2oa-&&5#1^5$=_wi2lx^j-4c$N#7gS`4wmChySmxuYjs!$=ZeB z!QCan;o$DUJ-9<~cXt{Hp5X584#73JCb$N7hv5Fm&7FTTcji@{)2q8zf4ldtRb8vL zRiOyX(jnU`Z)=cp9gl1(C0`suyyI8c;QCr~tF3xPyb`D6D@iTsj?;EZFzRzw{0(`} zY;LyK8)R(!y%QPMOC4nh7kRP6(ADt)*&OEI+vR@zd%N710sgOo`f~hpw_I6$bDKX* zjK6lwRk~My1^Z%Re1`%KMgSIDl|cj?=~&w4N?<*30+88w<$G2Np z;B95fZc(Gtz@cFx#OL*GAq?N{u=P9YK}LXL;*5&9^IMzA-|ymb-d6?h@TXOBwVG|e z25ZH8*X;`}FY8(o?rX3}itR*r&ojk0#x9N`zp9DfeJ&-}Oki1{BFNL6@>B%yy|X)? z^#69-aRU$&KjIx+yn1UmD%_%_?HSB^5!aGPK6@jj9?F7}^?>L8(UoM$_W&Pi zKv7&!ATsh{N$UJc=yoAqaI4nb9&~f65%*Q5$QzPR?p%gYI|V}AF@wf81CC(y1mrlq zcO?X0%@mk)>d5vs?2`X1+t}h|ud{upt}t^MZKk@FEGi~kSQ#%nAl!!vo(c1Je|Fg9fRPpfe(qc5t&yj6**=lq}J7>{z?VP&rP~I@M zR-h5c5JyD%G{tzfZ3iO6W$(SZ=&#|+@*`dtVC_`*47i5%poC4(Lm?Rl&POR;c1_or z^Z=Vx8+{%C${JIeQRW3nzEjk1_>~4?XDx12o8WdnAIOx)qtT}NaoBkvCy+V(6mFoQ zTSUztsL7-}RAFFDneH|6xCZO+*T; z7bz>|DZcMhf#NM_IYyebf@ymWmt5;C5ci+0>#*;2uE3c>kBmauu1NX57< zJEgW%vD&mfkhG|&>J>l27!b7L*1C9a7*jj4m^jbHn0og583$2fjc@fnsU-LkE-8bQ zHhqR6Siz9Kd?yLd(Y!J%%r&^E@{|||&O3XWVCbC!Okol>38Jk5w_eAC#blXOknuJ2JtE4SxI4b0kkjLsKlbVN#9b5jEhR3nK-;|a{th!ucjNnm zq3_`-;`m4woAqT`uzOQ%Zi6gIa!$VlaJnTC#dsg~{XLHrhFw$GclkB-&l59s3To#; zr7$T&#z3-;-s9x+ggJ!#?GXgp6fy1U1A*@1H(FvhYc@~jMo0bU61s}1V|Q0OsJnC6 zG7b{Preu%U;@LzQ808GPfcHuo90%$|PJLsHY{-3hpO#vD0P$Dx9c0ePdB z-Le((@oGA=fgYO4GF6R~=;vjsAEG+Uc*vi3hyqM<2kW6yO5lXj4RAtpAv5BsQz|A{ z8BYD@ENndFS$DwcQ!X6Lctpm>Ly-||WF~?(RHEl#{pXG{4sxrx?B!Mw?o?$ZH9wTo zbJiV3Kk9v)1ilk+#=m=Z+(|LK-`(aBcP(s{koUeozHOk@o9WMnu9F1@P9uy)`aNJ)c3X1J78;b6XTJI&YP7@FFy%<{&k-V ziH9rQRy{S%xtZ6agI7S9!{P0~7ox`&NO@AnDwk5o{zN}5qWQV`{m_B_&gn;^;h9k^ zf~AY9YIM|GulZQ?*bU~bs1!V01dBLm3RW`7vNL623km)lRKlr+ zS3<1Pvrs9R=3<}-yB@{xwHPLS5-Doj+Q|^8=#Y7{t{CYq-V2g;oX_(9y&KI`;x0w&dB6r*b zRUWr_AupeO$qYkq!MdKAAIV&}$~MO__>L-L+sil(XRb}Ib_=@W-P?uz6WzWhVItke zYR@Ta_b-g{DJ?1LL^VT-nc3*8A+_?guaq!rKb065%@>GP7g-R8S)DXS=#_rlt0=?6 zod-H&P_Po)n%7UKFtIBucGpX3=~Z>?qxZw;>zday)`pLCb;u`FMwXpbOswIZRLn6k z6YFx;PcdGeF4|qErJ+|09e5WCI>6qZ@-zgQ;26ofyxXSu?{`1R){Wk5i9l09H`w^RVW?He3 z!afe3;ADG=n7~|&!^X!}J@yiNcOrtN#>J~-0!}Oi2w6uAIY;K+^D>b-qYqhR050M^ zWObk2XJyDOoCW2PkUYe`r(|Y`tvL>^?5mWu+e?4u^C5owt1 zsh;WW_~?e3Dd*wZRjQVydMFb*ikLcsDV-vXXmv~C1$y|n6OzgwqMAY0w3L?C?Xx8K zw=wUr51dkW%%m#d0lF~TQ|prXs1oIHYbk@ezH{wT6x`;hAOlfSYm%$) zswpf!DdQSUKl!lST?WsTFfjt0?1SB2M)sD zTEuXK6^+|sWZ!C{uYJhbzvPxZ6RH)33s;RdaF34XOtBf)ZsA0)NwURIaBWv0)8`x# zpu0z_@-i_me*1pX1S3xeoaXY2HNP#9LTszMNVw0r#2HmwXn}kg^^bI0B5K$`A}1_Y z;sC#|d7>H9ONJq6L4~{!XMpxZ#GFPyEGEq-I^5_Wkx)fKM1epWX|{Ze_!zf@@`e({ z@GY%CN$&Mcg6?V4F2>fuI73*NGO5%mRCAQ*Hk7rmd4~M5Ajb*D;Iua`LySU)n32VA znS(gty6vLX5DFH8`-T&$mVJeWKUNGSpJ{n7y1DG}7X+mqz}Nn8lL5lk!k$PhC4{SU zqS;Y`@iGfMve?dAh?5sGm{lE3A634$wb)#5tIjiN8e0UruMDIjk3SfbqcYK80w(Eu zh8B(H?To{(YAMmbX5hfJBj)B*?+7l_KHwF&(fMKRICr~?P_qkd;d0P6k=xr|WF0dYPKe@Hw48Rcwmp^0S;JKx5Qax$n?s0qZ52Nxf~Omr zy9^@BsX^yP9amVcTh9BpCAzvxO~dvjiyx@y=_P0`xn<|I75y7 zv&b6>4t#dB-PYzN;b;uy2nqe`x%`hyR%2G%*a_XeoxldcV|kRx9Q{V{IO2P4 z3Vchp{`^hm!j<#ZhkdLSbA|T3cVb&=i`LX=TAG(Ipe_EqJ^OP}t|MYaKK=fy>dK0H z4$MgU=J}--gK5mB4e@1x_saRsxoyArbJ586)?I-|r3?hxHJH1Pl*kJa;OR>gMeu$z zkxTt;g>X*T!OwR`!aJI+t+AVtfNc`e10a9tyy$yYe>WiJkMw<}(!aoS8(Dj?SbxE- zpm}Z1kXLD!v;L#`9fW4aC)4{S9|t}qpr_U+Kn_C75y8sx8m`v;>u8v%xtz`jEmMYv zU6ASB&eX*zC_VEElBF?&D=2C9uwR?r0526Ib2aSpGDyG_Y1Duoa(&k1uC`ol`z?_;L8TN-9}x?lJk> z`=7b`+5;1x&;!r|5|#2|iPBb6S6fDIDB3s#IRss)FK@T|>)|?oRcUCu2>{&<-7Qfm zo%V%SFiJ26wob`s*;Uz99d0*UZ=!^()R)>KvrECp@s<6n3vQshlvRh;=3c$CEk9ZH zk)`3eptN$AT^9Qc+pM&*McH0`YHJTj0YF_eMxTeV-ICK3>Tm72GqTXUPQu333@X+L z(2YJCm_eAOhsKt}S|Q;kacs%(^D(G-K+&J2a*2#`0Eyp0PEbbi`(420$x*3gR^7hQ zjd?{v4Hol?YJ34Nrj7Dfo1(RtKv)FhSo}o{?84G=Wzj12yjx#w8 z(X_U9?PlbQSdy;skM=H3whI8%QOxr^?RBYT1KTVm>F^;MT3VIWRcr$?A2fM zaY3ZF$k!t#=-~55YjMTV(4Kcnx-rCgOkx0s9C!Ubp#1FVbzxbuK#MRE12HO_SQJ+H z#Akt@K*6<(UTJZGJbRi`M ztydO5T;$}tSykRjBT?z2@RX-l=ac!#O^1XiOQPU=cssl@{X z-C=kx@AD%fHIGW~h8a7l%Hp=p1_)ntNG!gGB{V)T9s7@H)C#k_bLC)+Bl11 zCu^h_;tW|*GHh4yyBKyztWuF+l1>Z}HyZPTFottnIp?4RvGpXzQk84OMG8{9-cUg! zt6a}2lX11duv*%-1FbTH!9D~J4u6h7XcF&l>6`mq*TUk6_eT1H+S=MZuP=I0Gc(m_nWECUXH6Z6^GDRS=0+V!?Y^J^gbA zE>gCPRy`38M0^!!PBQ!!Gw&u4$0Yl4A&R_?fh(3Vo2eBG;*fUo7})!QYT)AuQ~D4f zcxf0ju{d^0pKDT{bFP-Am{ z7pb1L3CDaG1>LbmAR%Pn5XAs=A zAax$q=&Zb@HtWz4o)%~2G(UzEdAnkf%CL~1@ptul&C(go(Y~6XY@=}CY$ThD8ZT>e zE-#4OP-F(NuXMc%!~fv@$#kphLL`Dg2klrOyBSP{T+R92Ik}_b=rvxIy1Brxh=ua^)kkQYHuT+5!ujv@ zAK4-~VJmzmtiSNPcyt->NFVXqJ(`|3bD4dG#F=NN8-458nG5})O&$xsrTd^+41?`0 zLV)`_y^1ThYmu&-~la`X5Kj(bn;ahR;4SIz_5aFmV3paV;~KN zfU8G*4J`GS_ZuvWkZEq-f)GepxJJ4QWHC}l+86vQe$)-?G+b}n8JS$$-X8>En@oIC z)BVt>_m=6?vG=2Yn3_wu6F7LgMeaIc>#!e7%Sr!HmP*6s0GJ>PO-a>SQ4MxcQO|rq zPfKZltO}NlijWEQI8a38C>Pg>PL4rMTjewy9*`s0NCbNeAFLNyWsp$k~t6AFq`z!8zhf4-E4#$wTt1y>iksKt8Cvok}KK`N0@@0SZ1GJ`O_8hbNw zRh&{oE7#c&Mexr~>?P@uNJk_oiye7>a`Sm-i4~E6B zwdYG)*#!5W6-}7@h|@X_?x}q1T~ta%H!e33sk`@-QpXmF9*Y zoQgra!@0K=6U#CG)3#VEwG7-P3vw>wwcf@}Ch8+PQ1ud(MLWH4q`D>?YJK16Y(Gwq zZDzn{S>=`5);NcHC@20j-I&P&X&ZX~Ji*to*`uUczrJ+1)X_3mJ zqc{5iz)$<~{%C}<|3cY?T-mmqRLjX#KeEaLc;~@0#`Pf4W5Pc5B^boBKkWrS=L9~! zd`airGl~$c&H?M$QCtw6A~_zZ^`-oSbu#ie9@CMt>kLbqm&6IuNqNI?YWJ~+G)FFY z=QvkQDgM4Fu|tm2?rqnoFRN1&RIXYLUAB@tu=B=ae)xj34Bx*EX7_8q`Dr$DY|zUR zXOp4OijDP@2LRim+BcY?+oqp{eTU^v`(R62NS=(ME`&{d*i?4cZkC{d|L;Gq;45!4daQlb(OW@DDsEA2a z-C?Pr0iiV(?+CGk13rjIx(pbC##KU40bzVTp1CRvtKKo=Ugj@2c=aIC_ecUl9@T~+ zRfpA2IKmG$?_R(8DU5InE)a<@sJK3O<(T#rZ?lOrW^KX#Y*HIW&d}`HF%(_6CIf+m z{uR==fiMzP=*A||BN|DB6oyq9Pq!K`qEpgpFkHJU`a@I)@}#F+;dM&v{mII*GvHBv z!1ICg)-;rwxfI=vG?v$ogL!AtO<0;Fkd1d^QoT(VX1JSH3J+Jhi3|f?It4WUo}OAZ z29c+uhcz)oKhg2b)AOJ2<{J_~GQXXdv1HZ$&R zBGv-ifbobu(bID9=lw0$=RfC<(&hTB?4eeNgfBiKYy~hd(%+Lk2V09H?E~8d36y7< z{Ci@Q{a`U!fApVb2X-oqQ8^#U{CSUs^USQ}^zc1r7jz2O=&w6g%7}f>U)?F0EWHynJ0fNw5W!80sq0|Hw+K%~?>u>ddDr>Of<)BXgj}~YZewT!K zr;LS~9~<k0@r7Q{qaDob>A3u!)Bez&lxZ;5Khh#fdb7LdF$w$psaRbL?DcKL z68ItCk^SH+^x30QRVYhQULCh%s!;pTG1xn%v;6rz7*# zGqy$nAfurx<*sp+%A+Y-RqkqF;z&VE_zqd3khm5dPbjh3Kjf^KOc-M~3=)mmUR(qP z*_p^UMIwbj(8Fv{#l({iht&Y@rW{{SilOjgnv#PPs8;5cxdI72xmGTcg%N;3u##YZ zI^=?J1zQjD@HJ^6WTSq_Zovz1VONF4iPgg&}=YtO?pAUrdG;WyXUMV z_My50c*U`C0XJqCfK(GV{v&qZ!aK^V&n|z4&aJv#j&$biL*=0fym<5kQo?|IrIkr7 zA(lM!QIfkyyE8s&0{PBoy_IY9*qE&DR+1~qH)7!Bt?fR30IN>2D_P=BdiTQiR?}oj zuB@hM`BPXpc2ufmZ{KG<-SrM>oI{Qtz#-x3qH2SHP0MA?4Ms{2ic5@?EYN8C z2V=q%YXZfYss)q(`>4{TKz!KdIGvT12*0oex8nH63$FqhBG6v0*4+cCZCt9R6s!Vh zJYO-JO6SS^_WL~y_pvu`f-3h z@N|Ap;tt|<+dY-D_4fGwS?QoiBCVEY==|Z@kE4QreY~{Tw8A8!*&|sOgV!7L(Ua}$ zV!CItR*OfS#~}M4Ql)fs5_xNizs1gAw#Tu&YUPN4z-O*z`6RBC*=0+e23Ejq3;Nb9 zU;F5YCzCt49GS}V7QB{1q|>X%Su&^-fQ92D_rLUQHjacp{dke`IoJVm{+<6$c!d(4 z991^P^v56h=ys4@Rl(%&3R20{+G2f$Ch^Rk49?(`h7!2>sSZa#gC zGG~14t~PyOb^7xM3Q(bvZ>g>$}ws-#z-nm075&*&GM?}#}mX~C%kTkRV`nSp<6n>6xtrk=G(s7 z@5Y23p}h6|J>hbuvgcnKBvxNEr4UtJKqyoqcdd16n7Q%VLmhW zjStD~b&n3S64YdlD~eqrq=sM`(p5=h>ln(;^B)fX&;Ky3pn|=u-hfW|aND|%bt!sEKzhz;^Q1|c-^U*?q9S8~Hke{17ja z-TX{)+BcGj_7!({X1u4!D8#s?#zEScUWd2HJy==UrF*UmC_wHo4F2SP$MCbe>*>8z z_6|-68*$13I8(U%4a}5NQU2{NO97F+m6HP*R&tfVv&c{KeeJ90w+(l8x5vJ0*OqEK zkCi%5a2!4KnB(`ULH-tMN5aaEI9SbozVVH2M8hAbqoj z<~CMwdpMZ-SAfzvVT$TufPEW}8SD4bSV>>5q+#j}K}IjvQ!TB%ON*V?`;j5RtKVI` z^0GZg$)Ib#@OZ(u3;4SWezc?U65D=H!FL+MCz9@R#IPkSq`a!1)h&VBf^@0i`4(y~ z!q~jtZ|)Pci$CcZQ(Vx`2C5ID;@8b|1f!Hs`;Zc|R+~VRI%Pv-R^#zpgAvZy82PS# zfHiyEW1gwM`)LS*Jm}DHUlXrP3bI1Da}dwKTh`zsyx#2_-WkwrkEw>TDOzTI&%`{+ z_NOE63~}fYfHZh_PPid!@Jl+LPTpjRUu9J&8#4UvBiJ&6$=!auOOn3tK#dxfzL?mEBv_`I4kV4(4xWv8bc$hKuG82WWMTad1g>TdG4&;=y zP}LgdX&6#ax0$%x^ss@xMxtmmb(5Oa8mNwx@k9OE*(8Y$@eT@uq3hLD3A9^MxgS#F z$7X?D6gdQsV<{f9CR^3!z)8{r?hR3&B>S(TrRQqJ>QFzLc)AQn1}tg_+-djWt0k|C z-Hl?vwdJjn#!b~zhZ-Fwd?^~IkfX0SFT~s?QX2>-ak;6!*RLd#M2ISYI;An>m(Sm* z@u2swT?X$GZdD&m_OsMWF5*?=t375^DhL2}P!#Z|O7JqoWSMY@*barzTJhm5i-U3d zoDNf9wXU$aP!K2M=hc`lSL?L9=CgR2nuJ?rm-!B8sZXUEIwx#;;0V0w`Fh1{C|7-| ze3vpD_4n8+pKwgVaJe%GUs=|X(q0}ojx9Bx6Tdk{3NwJ)BHV3k_nm>knl=DGIAaHz zmr62JAyYB~m*SG%T^3AJW2(Srt88aVmH;>rP>7t%Mkt;du~Jg;=xh&Oh$Y&^=QkmD zB4paGn&HwK$#!zO-tIa6fn+kN*O%}^nV#`o)SNf1p+6H(EBgBm+X>a$#Nzjh;rvbF zII_#AJ{3~gf+j}Qttz6Gr;`+?C5iy!yfy<~ErXr}95}gg^+`H4G)3sGoI)d6{B;k# zqrB`YZu2M@;p4nFvMt?`!usYDjK(yD;#ZOo9A0=<%s$gU*2M9iA(UV*p{N7yN~n7P zINuc1*AZI|>y}~zAF#tsQQhpZsy`LjQJ^{cUexLH_$?f4p)Ted7O)y@J6QoN;>c?x zygNwnu$d%E=2P*SO=LTGKl?o@w7KZFEq(EFnyxSIgltzEWNmA33^< z-nK#F77kgeDmLJ{e!M$+T4N3XY~QTy?!H)hv^XFj;CT$bQAEPWY+a%4rYVJrXE0{) z>GOK7JIled7i@4-bqvP(+refS`a=cqd_D{8#pzi0C6TS|zmd5-P4&AQ)x3s2@TBj_ z)Wxn0{fIm6f@;B>=Os4Cm_YDz>dKMDmyppi7Pk|L3~bT=8DAWDf2ivZJp3HA&z`Vi zcOZs0U=b>xoHSwT@7lMQjZ0nM+lwH1w)l}5d55cWno{%}Yja4~VVtl4DRB7VgG(E` zpR^XDnETBzn3%w50^N|#hm4RmGA_XJ_67+zjd>Ky8bXPm#LR_1$V_MHV!1mN>qD=4%n3kFRsn?0U5i*{|P zH$H&8f=ds}SuJ#JY|WkV42eL|I&@WqG6Rr{gOsm1J}z2860K&)0UQuof$8GMamfT3 z>a%dRL@mjM6xxRySbkStqdCnBZz~$;Kgewk!8I+yPc4?+5k)i*4A0@sJM%_Z>G}SM z29J!DTM=Jlvj`kfX20|{Uo4zzHUJ@y3)g%g)tndEk2X!Nj*J#h&>cr&BSCuI!aDX4a2Oy@QRC|F z4K+@C=ki+VOzR<);_edwlMOLmUMjSzaxYa0C_P>suj&dJ8 zlL1?~4R;jL&v9l<)+Ng8)-Qg71pJCiSrNVBVbso4lzV&uijk35EfC-_yRKeSt~d6p zW>c#LS43Q+EQF({oNXrHympG*e*IjQs;e7J#Cy-L*3T6tVEVVxU^CT|9DPo5dp^Y` z;mo-!fZQUufqRLnNXUDMQ%f;_wvA4P7U|r~nqi?*3oKlVWKM)IHtAVj0rbTDy@L&G;zy363$<)+nRP{p*CEdXG0R_9(?{zH_X`una}&o#3^E z!&<6_ddkchb`hapB~|qYGz7x2tZ*!5VjaGGQ$*oc0411!iS2hEYVrfbke*TYUiN~M zVG-Fi>#QlAY&jGZCLM1zGqP}PHN5ctiGi39LcZrJ^+U`nPFoJtrRWP^DTv{C1V<`` zHdqE-JQS@QVL7}Qt-ThW0Boe^d>9k#v+~~E{XNt6KW!aoIw02L@a&)E&@Z{%ri(U_^ft0Dp1Afq|+0PXaP8 zl+<1*(YqMh{hJsp*j&8G{B)i2s#&@eA@Bu>|}lzrXS@{zU(; z2@BJ?WC&_JM~wo^j?6cu+c zpcBv&(ElT=`Txnn{ok@m!qWfA(|pVRQ~ob`Y%o+H5FjWZsc!}8me*Ka3P3y$|_2R zvri$!n5f|iC&bXKzs~AV?zb^WU4X?2nSsgUpm$E~*OAlu4l|#%?+#kuD_ys)V|1oJ zxJo&X)nu!WA1o`o*e_u%WtQ;(?u~Lr&-BIIrCCpqvNrioxy;T_=NQA+=b!Z1T$^@T zR>e=Zz6VjyU(Zutub=JR67(qL5^b|>B~cwh}_Lw(Gs zR|f}K@P}!CCKYkDMWfvd57DrdVKj(a<^x{LDbB+}#3l5X|)YTY`;2jk=4{PVTY z`#`{-ce5QurRm#c&c@%NT5de0S^PSMOD>`PQzdE{9{?Ua@K0jE&HlS(V|Le)Da`5c z(roD8*x4Un&c%(kX3F=rS+-y2`Cl_SZV!zB-bb`q>CKI8j{H>{QTl1jm;Lf#&1pc% zt6RMoo~t*w+P#J9{g>lY?|nV|Uy`p!9~o6Ae6Id=|NF=@qv^TCBHLhn%4DuSEMM4-lGd`l|J_60W&M+arVO6}C+;e@zMep+!sPndeB z2*`m@f) zWQqvJrmYv?DYSk>xKbCv=X2}Q6(XDKcg79|xh37#`){~(Xw^wgZIW5x3$7(2m zt?3!?fp^eMkOgVhbg}c|{%d^D?Ow;!jS2sqZrUwC5{G9otFSjY4Z|)2n*AHT1*%=tWr`(x3AHVv# z&n_Z9W15-qq~FiKn0`n7M!34&L-}I$P1OOodmi$7qL{smU#v$SZ~K;fIQ!Z^tgnXt z)-#QA_l*_o?%N%VpH8Q)=KkSOVQ=<%dH14k6<4S*}`%x8t=O86_$=yGn5Me9v$HXV6G=YCrgb*4J{{*P7n%%E0F)IALXV2N}PiNl9&}TKeg|w%?)EH+^Ls#~PTpzj2x}P`n%aBgp zZ#J(^$5Sb|^mnCZh-nff+?p8~zotn0<$vM^d0YeR?{;@?K1MI5hRs5AV|{r6FDzbr zXx0^bdwb&s_xHUDPQWqzUoW5S(->lJ`&SVgF9gfJ*b8g~u58ub9(7k1e$|oqvHUECbpa{opIhMDye72G5_2KSn zQ+3-`#lTqcSx0WS%XL#J3`cqfOxj{pvXgjG@vvUnCFJ)n>Gm5~S-Guz+HJdOdfrDC zH+Hwa*~9p*m)ra~$Ijhcq`#8T;|>U`b|^shAkd2-j_~t7}9m2~;X1hmom~u&`~b7T#4z2C3sG^C-29M_=b|aS)1< z_(qfkd8YtuM+)=$7g>3sGceX5*%{N(%$x<_IltIh_ghA68!zIPK1h}$Fjie@YoT(K zptt;sPhr63xt<6B;I`R%8JSsx7PAyPO?UJ;HhX&j>D~G=f?IFBP+`e-@J8U z^QL%nv~#Iz@ZJ4q+Ck+>U~^Cq;cxFs)ZBSFJ;^v}KEMya-RQEEb^2FFJ4zPS{1{uS zx7ky_w8w9wD#l@L|9o%>4!vHn(z_{ISq6gQn^vZ2QadWMgl4c`m3toA0n&HLlH?xL zTn$OZ!z!iHj`dS2==4H-txw)}6&rLWYLPR!OSn$pzUcF_KP9$WJE4yxyek*0_Ev>k z{#@rH??>nX-u5h6nta5Joa$?9>sL8eS5{Z~wm5iJSJyfCR@Znoxz{!=t?@93#?W5N zB2XoyqKJjtOz&=Mn!OGH2VZL+L~l8>!_UJ6@KbVhrp?v#KCOEfB`;iNfQ!pAPn$xI zP2`~|rm&30x9HAI))H$Q%o(z`UYXntRGnuINxV;2yaBmrXMPwbh%{-w;{eX#tPP2ET zX5>ckw6m6HyDg}<$s5E*oJ1R^gWYm?Z*_Jc9O1>+rvq~F@r!^C|^>EZ}bzlwM zO(7i6Fj(n5smlM?W-YZ7A(3Z+6dBcGm?Xi>eCcuuNJ19vOw6nv z@UPB%uPxxiJT<18A0^#V&*iNlK8jhr490TpLtl;Zm>jVsON-w`o*voSSmnLxjN1o9 zX9GSxoQ%w_ckGR>FLyJdFSGJ5_lJ&-c1`yiID(TSnCrA^nd?vz0)em&lM}U$5}&_* zwzsP4G4XPD-;FbbMruU2{^Bg^JWPF+?)_FDu!$_!OZO+RiOh8-QIgrHSpWDmMbGkJUUG-Y6rFskf0nnz*+Jt|N@Q!6x&^-wL=z2Fo6hs=tv zot;k#2AdhB1A)pk!dBy=R9%&bQBaT5_&KsQy-a@o&bG}|yZQli-cSyP78`Iz?lDww zrG5l$GWKd5aH4*j$@q&aO_EK+S(!%8tl~j|5$B`IS}&5c{=vTvmWSyG3zM!k@x^E{ z)m;CuruF@uVc&LzCZVY@LridWsmhW~V_~c?O+YI;FLpG>U4hK9fJ_)G#Dspt;r4J| z`hMXt`(ao*1JGLUdfU7ooB+uDTZlb`=L6f|edqM__kOABkGPVTL#^x0SoH#WCa~=# z)1+4x3k|0o%I)Z$!VX9a1AIqVcoVZOeh2^CV?TYpj5RbeE>mEf5je#!TKJm zt|g8@tZubBqjgg{3ul=_p0*-FUH8AH?X`_wH?H{(FZZ)UQ>UZTIFRl9*?+HO_9u^a zrCue8 zq23+T&rASh4m9Mv|L=w<~|2-%mA{5Enc1PV$-Hcr}XBrkmBG;Ov-q zKTy0~QM~fNL)*O9^p)bon@h-f__HjDyMk;-ebzd`-Xv~oZlN3Rb`OK1ty@en6tRu= z11pnyja=hVa}=`4q}&KijPhVGLr{6TH8SMT~9)}vV4PLfzWEo7KN33%hHDbvwE%p8-|P1+A$0 zvI@@3tCLBZ1OT~C?Gg)$XoN;E?J)HcbLC>Y1;W1YV|26DxdPs`O5FM5$CEEUU3asx z51SL`iD;q6uK#MkKi#|w?VnD6WLw|)1<7$Z1$E#gbzBWVI67?aAHU&uZ(-P#IB&_j zP7G1?0jRiM2O*Vueezy$CbWqO28tVlQ=Cq;pT*={ZEr_Ir)I*#5wo%y<@murNRt+) zkF66Lq3O!)CnL9A6X`hgitQUi&b%5Hw(|?^Wz0Ap8#B38+s@7nPhF0qDHqH?JCtuf zP>2c&L*kN7FYA&dr?LNdlj)Q_CCWSwTmRH{0+c?7x@V1{lvOE`MiG~ynbacbHqXd( z$84Tfc5h_Gw98&L@Y{Fnz+Xy0H+|5*(+XE^b$0qJf5Y9K{i^HU<*5CZyP4hn7-z|i zy&2HiekKjF46p6%IvN?P$M+`N7t62v_v;0JwD2p6-}RVFi8iP!kFfje>g7Ob-3=13 zUT;{F|1o~u{igRg_?Vs9v&y>`a}Dnz%D=S$y3N1Y{n5yL3ai?k&MkEh{@K~(A@`%} z>#Bdagj@G7{hc@T*Rg9c_vtq0Zmg-U;mPmv;qd(!uPKg)(+vk$pS`GITldL6R#=~d zbqq6SjK3$VwXi-flO7$8-1}R1p<70Pmm;BU=@5SVV%?YMkooX?#J>l6^Pi*-y)Rpx zaQw#`;P8Mu_w%6T4O*U&8#89#4qv7~wf1wI%jH;zs%~C*@5CGT?{F)CCaw@pqlCsU z38`jAtw)liBALxK2S)i+5G@@>+G0?dgsP}7Y!uA;>*E^0|7QR2Iet5e@Kq0R&MrTE z#;CZYLlLccGQ?`HYXp{;N~X)#spFx9NGSaE8b=EU6Ju;6o=0kxA}mwqDFJazZCv3xCi${DE{Hvp{x(rh&*cM83TPk*J|+#|P&hw$M$nw7 zACwG){7qrI8@FO0qk7|jD(%^XyD64mWLOZw}dB|T;JBfW^L zL3uTy>=9yQB>b>v=p{y+i0XX6zWF6+_J0ierUJ`6_&ZT3Hzkll=C&;i|>U z2jSgaiPQ{WN-_P8*N$Nd8irXkk09X!8Yyaon@g{607Pi@^}v%{fioIPc?2Y`RZu$ItS!%8h^0^M8mQxr1O}f-Vmh;hI?BFC1qs zM2pV>7K)Ba1R|tw-tiY15kzp`q*xD`ot7zB))RMjKWs;5mfIUfD!4XGT^Pr*pqGfF zp^yWYCP0L{Y%j82B`lZ{FN8Y1*0!Sps zTm%CN-j1WgKmZ()w+ZhdtbHJ-aYoaewjnusc)pKL;N|1xgROxdBy?vcrb~_xiF9q| z1_n1k=m(b%@IR&vViAG`4SBW4Q;Sw%&Y#rFk?z~aF>o8W_FaJgsNZMb`9|s;4k=)h zGX9q_BG!aD#GnoT?dE@Qde~$(KVR$2IJvy=?66ZjG%gZFK7nxY5MPB?xBF7UG$rUq ztjW9marzUanG}!0AlYR?uqvXr45H#^T(4y=c;pa$K{?chq6Ip{@WlZpvMQMGC^vI2 zJ8Z8chT%;tjOtzjjeHw)m?5QSLI%FwSL4qy|14 zP*WyQAqb8>>?T$dF+fdPE^x}iFwRlWG}3&{>6U(fIsG))DENt|_cMaUEXK^!%85Sf z3upXJvA)CR^LmW|tTdTXyzvfTR483Aah>(7MQt2v4DdE%9$~W})f9~idPikl$H~~K zKQN}==f>H!pT~^Mce5;9lE0e)- zw(Do=sIOI<`tT|As=2sIf6HK-$SE~}k*VC+R-u3#2`RtK9|K++g?vMNw`_<+p@RdVk6T0yE7d@h z)9@n^P9P0G(c?gLJ?M`K&1$OT@7!P=Vzdtq?LvrfVA5Vq1PS(% z7DCX5aD!FTcEX$YF8oRxarfgKK2E|IIgQ2fj=XH_7tQD#L$iMv{W?g>&fLycUigr) zo)x^;iEvyB{aw&vClG>>HDa>4kbngsEeRr#bTN^y6e845pRQMXJfKw_pGK~gHnxQy zkpuGhu&1?#2#sO5zpsDp)Zo-^d1-55t>*HhD?+%sD6;9N-OFiz6TZ$%TsFP;hI;Wgrdgnt@QKaA@#??#zq6tMfjcs#5d_ z>U*Wg480*^oFvjY{1UqWGfn+AX_eGp?tvx-h}-J4DF$=%^U`{?Xo|)qf-rpqN@fJdO^oW2?Pk6x2%vCz_+0@^5b4w=IS9H|3R!Dx2S@0 zvA;TOwKXhdMc0E1NF671B`seeY|+lCgHKf{SwraH$@n3>6EmnnYTlNYnBG&Gw~&u0 zS}i{dvo6u}8_SwvmVRNd=W+~fT3@Dy{A@|s>2&f&)oOF{)%RzoGaapl+mKOnlnVnQ zjfM`)gQOw_NF(xsjR4JIAGCO(c59AknIVVWudBrQ>3IzvfL|P`#8IfG#P9Q5^*ZBc z*3%@l5fW)1t3D#G`I%p~2@UooNgOgb31re4A^PESsSamSXA61-)z?24hMm2P+$bHW zvbfDypxZ;2rv|V#gZciB`#g|;Ts6;xZf6ctH#1++0#110$#l!PA92G8-l|U(4RnHx z)(Pl3?SsnCqdL2|>nL3i{D2S@%7|Zp2yRQ$a`M+s0Ek6-An-l@TR_;OiqS^7NO}V3 zLs7ZBj!^#Jk+AvMrYB@?gjD8e!r+Xps7DYolj(~#v5EY^a*XYb??47fcX@Tjs+NC`w&_nY7 zB5fc8gu&?ybS^-b24(eh4i3pUF<^VOJ|-BzUcrXLi5SK07g|WMTTz>G@XIUl2ZMQX zK##Q)Tfl_5Jkb`9^K)LU@dj64WY4O`NG-xDg1Jenh`;}t;Gk4I* z#0o`^36^VRIZU#k7xE>H9{OL?YQXUAfdKFi5HsRSdw$X(j>b$u#4rV%72D1MHG~Gg z`T~N$S)G}BhYXF%EsX{{P2yll^UD&5E}jCP!~aF87rdbx*OPb0`31qFNGZL>!1GqV z8^1OlbSq-L-#}w~pU9_)sV-<{Wl{k>6^I{@vcbA+7rCMzYFu?Vtnvn0AB_FkSSfXJRWOGO8vCh; zUT*b_+6i@gop4aJpMnOdkE#z2-APcCJ0X73b}oA@0a)ozdJuIeupB@F2%+r>+~;lF zPkOu+2xHJy@r60ORYK~N3T>-8$J-l@#XaRnrOLic%U$)IZ>V3Xi({XYl!g7wvkWbX z;Qk;fy#QVTt$`ddLC7&m@A0-BKJ?jElT*9LdHvFvxSQcn-Qkd>mbD#{Ep9I3MVEVI zQX`e@?V!6wo4C8c2b_+Jc){f!Yq$1%NON-9Ok=s)+HE+rg_o8)+%2{|NuqKO8qZ~B z9QE%i+G8To@dn0kE7qy4OyOK5`?rhRN_ebOV%y1F?lNaErt1I5*5|J18lLp6%0hQo zSaHQ@RDl501*`m|@;andGH|d^*OtIqa%E~6+OVJP%{lRt1=vFs8yPnZi6)tc2UtNn z;E1kh!LY~7XGGj!Qqff>(ER~J5hIRikR@TXhpYO5OMu3j*+-hva~ffn3g$Jwof zJ;#jsN=xPyJgK>3i`5c&kgUR(655RWYY;s^=PV2l5rxE6eryFe^vQf;A@pg_(dj!h zU!o2iYBJQi1k_h@jhSG8w;BZTqPd(`r0}k@Z;%t_*>}?w1)R;bYg~HZI!!+qrV8eydU8t0qq3e(n%nL2pR`6aAp9a zD}nU?Jlu$MqMzz~xGLwA5-ZM8nxVp;o(tX_7~v&(u9(4*_(jcH1J@MUIc%NR8Xk{| z(=GfW0Qkq=E08cFe+V2NxfzVG@0_x~-NFo04yDv~+4QvoOI)2O{sq2r zRQ)GX{GC;8X&XTWi&@fMShGXr-LVtEE3q2{J6WS|nr z5{Etm1>tlB|2#`#GE2gNX^zwYrAeCM0q&qls_T=Z3sa(N&0R8O3vVsopUO!KK%k|k&F>~g$vKIG_Y0kf^0k-d{0Cyp< z;-4e7lo1_;{wp#^WQO=0F7JpZdrimEt-f><4lhAz#Y)S7eiYDHz!`reoQ`54TfnKo zXpEm9NFVbJT~Rq9RXcOuR0?f7y2?+?E}+3RsRoTpRtRa}W`D@fU4IL;hs-a*o>Uw#|d z#}-Kvjg69YsCUp5gByyNFCkbabBvRg?m&|X_loMe8bxk2fOg?JIf;a%nA@c!OAQV0aOTRN zQs@SG;D*Jw4>yk&y2quv#~+0(ktyrKhx*e0cu_Zx%cx9;?zc>sx|au&5129jP)$D` z9V6M28-gK~M$yC?Y`(xCODb6wBF(*f1@YvE23F9B!Gf3prJujId$|M=a?p@2W^)#+Jro=9>%aw*_4vT2VV=;i@vjANx9^2jI2K5e)FkaO|?f!@b@X@=l%Csjg? zIao|Em&yn1k!IB^cm)I*TZ;BT!dhLO$zw zS!4AU8>MjO>$&Ng>PahxR0*RLDVtfRpl*8zsU?3y9=hh6WoK?`w)~5K-JUcTDd=cP zm9ah(A}kn*geZ-nzq+yl&49+VN=ih~B#==s6cJTdoIVF4k}#>vqad||+Qr!zd}SfP zf>x&8e0*JmK7+;QP{>+nHAIz-Yrbz(lm;=<*u*akB2U3)R)4uv#t`#9c{{b)QqEDT zGdN)h-{||hLxm+Q;jiNWNNtI&u|JFEKfC7^1<0rX)6aA1!Wv9m3#Wp~c((Zj&QIB` z7Ram!S&`yArP)%=cI)^Y=>R6~Z~sfdS^!4%OY&gz4hjkxv7%02pAYfJfMD%8nJk(t znjrCobwn5;aadT57ws_!spER)2wp_v@59RTg1CzxvM`)f2L*Az1*0i~IW+#mPn&lI z=n^nx!A9i(_Y*K|e;0ph^_O&lNS*N^09lf;T|lePS3hA~yn$ zYApN26uCczse3@G`UtY|0CGqe1#k}n$-4ko#jdCjBs)xvf^^+&9<^&SP61f^A9-g* zJ#Nc~D5U0+;JxM$A{bhCg9y$dV@itF%p)i{)v{S1WoL+lsVWJtAmUmNsfq$_GFZla zb3~q|WNPsUnKG%^#2Ubd*_++;lio(m4|UM@ZAaF|eC_rnvei zQkt{#6BAmomNa7`c&hGo#I>68@eMp!=F0fkC$N6G+9fg<$t$#%o#FRYD(JDuzru5b z<%!SPhkI1$^%-!FK#l z(|tJf0Zkl#;OKC)H*vHLh*x2IIJ*rR@b^RUQSslaG@th%O~k z_rX|=frWo1lYEYMW!tECtuwGlhONVaHGR=5JF zX;39@(V*!dEWua)4{s98N5S8ngN=RpzV3kMhawL;Xiw;b9oSXXk zBYVG5`q1K{_#zKa37IIA&X#8m1z-Wg27&X3^!F9u&ml-?)F&5B7c!(TbuO4=WJzh@ zo^O3!`&(kfD!x24q;FKim?V3NKE+FTC166BVb*`kqg0BwHol%Ib#tF4hs zd?xFkSe?&g46Mg=YMOepOK9&xMsSGj!a8y#kKuNg=4!#K(W)E6F11OWN@n%V8CWo} zCk)}p@#|wij3TGdvuL@r9++%r`ElQ#44(G4Ex##_%fA2N@JtEtrck9{`mej&UtSLH zXGcHJCqWDWb6I+&q-s0`J&K^Lgk5P zx!-kEunLqfUP<9vbE>n!zU6loJ#}0Sm2;d8b!_G$zNK}eNj2rdx!YyV$cr?E;;iF? zR1P{y4tk}=bIN@fKeN&4vm0sk9!eB))aH<40epZEm~06P*vT&={>fRJ10x9x&)7eI zYtv~V^RTi+m`-`enft*Y{jFg6F|y!@)JD)83qS0UYXvJ1sV9r~q0j__>|ssRv+c=d_E0<%yJ`RM1@l#L*LijZf*7MXKVc4RGnOv*o?5=?jH6&-10|yl*nhC8(+Dc~(8m?c z+xXR*-P>@`L;S@=ovzLX?y*|b!I$qY{&-l{*`i&GoKoJj%QQx;ExPJIu5t-zt+=OG zWBE9Y@a@)KI!mE$dv`RUc{z-b?T*3(_HAW)d2<9T0_o9Nab{f>_@l(!OyOMBU?kY zDXRy7lDLD&tz{s9{1hl`y~d9NQPk9$LZYM4mTl?K-gPwK=K;g_7uy+k<0H3R66*q& zJy?57cxiI!`QcvKEoOl%4y@3IB!UXgbK3K}#s=dF!MQS)&YQX>DVmJbKL{)VhCI&x ze~!;C$ew)l zc0aOhacs7?t|J4qq=@n|*EN%NE+r@16z^nK+=^c8R3&3r6}#1vt7Jgj$b{FxOcjkX z0`|`HRjFoa>9^=c&rK$|b-3MU$$1N{$6zFXOd2@Y7(p+{j`BXJYVbNs+|Iro9s$lG zpKlsN&x4zs9#334{k_hk5>;hG`^A!i`(@QGx9)=xB&px>!^gOm*HtxKw+S9M-onfV zAb&4*`LW+5`%lyV?4;~)h>&}u?=rDWUL~+jPO$3}-q`Eb;3R|d$_(X=*-nD|O7q;u zSlRgJ5Q5@tf~)<*3#w?3`AEv`0niBWS#`C21AX>9+|PAew%K+Y%KtoBvufAtuBvFk zYexc{$Ut09*)-#Pyk7Q%zxS=LZbbdv`+3Ku<8~qnxcYiQe3Y3!9rE7j!tqql^U3;L z%yyqIsjkZ3zB+0``4IWC#C*Lq--FHTdRaOZ^WoVSKRAA#deJ)Ih9&Tk1Z;}>?7NUa zpS+fJb6X(%Rg2%&72``ehUeP%Jpgr|kB?0lvBM9=`}!c!JLzJ+&E~$tA(&DCitv;n z=u)VzCrwQG-D}eBc5D zIjl@SSiBZWX1F@9$xW_+S-V&)y!D*Ys{KChtj2ykWQ~9F>BI{ydhp!OEJG{F*9|M+<=<4SJ4@0ytM;mC?)L{%3I|%ra>+IywB4jRoAeH z-J9TM|Q;hrQmMqcm2kG>~Pp1o{MnBG-( zCks?D0nA_^_tOuqCK7iQjkUW^HDy^M^7;qFveZTH_rjIk;aOB8F9%0I>3fE!#bl~U zxA!~3UjUdmYDiMWCh{{G5m3otl$!fc-ROWd2&rl7f-2z|22%}x$T&cNFa98`(opG? zHMqiV%qkrRomWjQq*jzvJFXMO`gJD#(3p_6JQAuyvdQQ&wBaeCc7AYKAon5eRo6At zYjRd!%^D-8D7G^X;V?f4JRh7eCkmrzJD~WsY5~|Rv94H{K;q>4fn9aAM? zT@N!Vu2EW{x;Wi1*a=gl%HJ%M{J(1-VvqBk+b;xzRo^2qeuyzisg;wb43yP7?BU<$2@6bry0j&9y1-tqVv^`GP;x+_28y_L1cXz=H5H6~hg>FOOmK%h1vQ6oz*vI!*M-Cq zoxft8Cv@fAVl~53iViAJSC?>sUx~T21|TAXth0@U#-(oX{DjfRhwT<;cCT!cvlm8P zVs0L#!w=(8HYZpxvIskfArA~+U+3a(aga|}=U{=1N*^j$p|gc3Xa>v$foLJZyRxmP zwe0-9r~prF*4>nDYl?RAa;k&uAe`)g4onRMaWXnr3Zv!g>UM!R?TBCnXlj%{Tjk{=qH08k3bEfVS?;L zsYz;p*O*he3X89O*!hOO#k(RtFa1qq$G#jf77B*`>0hWYT`A(ZX8}0WqzTlpu=)Q| zQqfQf&*<`lgy zIM>8y013vmf)^MaR4K#2nVN~3CG-6bO3bbV?VHEsJMqMjlSQCc7Q69D`P6j=EM#qy&C#2 zt%i|CVUp@--cJZcZv>iK+MQYEpr0#*kU+IYNF5aFztKe$kW47X{#1BJ`H;Si^j(oC zxRtaAJ*o=i_st-p3m8Dx1~q92PJ&As4WEDUi9ksCBt4Fm z=p5JUoX{Q$7bL|_4^I(T9DJnP0igucg`5ktR?WCNRiv889=wX_L^mjHK>BC{A9@71 zHS>+$fJb72Qq&NlD1C*jcAUp31rshxG(I|{ARC1eVh~)Qw&fnB3gH_7xj#DDU4Qk! z!iwwn=da%&6#f7;Q5obn1|u~nUX6m5qGn78P&QUk%}5l^LMkhs$^a)NYQYHn9K`m3 zO3FFGF{Dys6#986s3Bgc{tBI&kjNxR`?$tqUZ`meQMh0kl=Ius0gu(Xgvh$5*%yQCliAP$qX;E0y{TQLI5SaHHIK;AN(DJkdoR;lWi@r867JC_nJ z-IGdPeDd!_I%Ug^rSeO0wNV4-2$Y6}WMW_{)dJM69#RL~Td%*=^ zXx!3p&9n)f{nHjIW^2}>Dt&a8!X^Rn=u&z_B`wQ|wt|Ls2&zaf0Lh{xakK>Ij*ikC ze9%JL0x0Vv*@u9Xj>NAEt8d11K34z=DxN$5$!V-8lGb^$Opcl^sECCHs+2+oPGLG{ znN)Z(CxcjlfjdwC;_PNsi5#D}4?V1g;}8j5qleg_j!d&@LsQi${nYurao(k&D9v|u zI`4e5qk7BvqSeR&u+H_B+vRcoINW~8&jBjujYAtv2wGt17xaXxV-E#SD{co7(lg_3 z$?;8E70sXZ=78_J>$b=n1m%(R7B{|F`^kCE&u47S)$;TS;((!2th>h}e|J?ybq5yq zGymm)%ODLbG?cK)7q6mi4RtcxIrM`Sn24|;e*}#*Ko|!A6ZD-T$D*eV2g510gWJ2o z8PHOLcPh*kFI!*i-B$zxMQK6IX3Yxrf#pYu*l36`CmdUc)dUh^E-7FR8?=W`t&eDB z11>llzca7P49_=uQ>qw(fDg)OXgIJm6vil)nm?9GBB8|aojo)T;o2`L^-V+D(cQ*&cF*VFdmO3+5E?gJhr9<5`CK&MPTV zhipHoMNZy-yVO|Q(%hXy=+keHghopy>yi+r!d{asuuibmb5@Ur+xK*>EJPw-1fnpw zX7He_pr&plqOgI^rQDmYu_6wNLO^jG*#F@4VGs@A@e9P&|FBa-)@qFgt9pPc7~HqG zPD0s**NG=|ffMX-DCB^pb%UOsPmQKo|Ab>LZ6hj6_WEuOi*w)iIhg6Hr1;sM!Zl`T z57-b16Sp(Xa-`^VKAWlAT?I>*)m92VRq}mKW#7qYQ;p47OeU6X;$o(Jz_LMw^;VIS zjrt9cVK(TXqm>A2x@qc)sU}-7B6~hofmGfeZmD9ALdJ_Ya5(l6hLn)O(Lhseh>~TQ ztX|Gaeb&rUK4df6YZ0#3=BPM%B(v^8t1G%i(IdceTFZzk<-Qapf9&hoN$Jz^YDOZvLy#!y4 zKDf4;RoGO>dy|cJ_SuJlg0XNb;>w&ho|5E77(oB8-d|KC2e%`@-oZQ=f@5vCxO0+f z-LN7qqnwkJ#|yUn(SbzpAsm={`r=NZ>H$AT9pUU1>=j^JDd)BZUnnnF5RKLc)tBUP zs7#A{WdpN9WVqq*Y|gW9JytW|Lu04ccEB4w-Uh>L$s0!u=H^4@`5dbK& z6@W0rWc0LIC|?hS4fD}Y6tSiG=DP-9*6{WqQ&Ft9;w#d7jrt6BJrAF4LC1M^xj=zF zeC_|m);B;$vUQDSVkZ-OV%xTD+qTuQCdtIMZQHhOI}=U(GWUMp|K9r7Tc`Kx>Z*gP zb9SBH-lQY(!#J!G7`B-TlkUZ(UMD$YtJu}cv-!XGOu%{E%Oz3IX82w=0}5iA&Y+dm z9W*>HS3$Wfs5;7|aWrz}4=q3}k&^Lh?v_%40nx{aoyTA)=bYgdsXP?493~Q4Cm{=M z0%Eoj(q*fJ7UFiMqaJ9d9@QRPo2M&I!+R{@N>@kD?yaUlep%~_dVYfQ_o+NP$lhsL z`_V6;S!n&pn^5eRIGMVZgBEo}W6!)JEb&iJw!M{=EjG$<&8QUV^@S+WznkJ%=3)wB z0rdd=PyNdq&mJiD$}9l{{%<9N`3F+)a_Q~6^tGLTkk@Cg%-yUYszGFXES}z+5upWb z@B-m^dy6~gCpac{=|lT*;GGi6D-OGMpV#C(?YXHY|aQ68NnwCq}I8k0sako05yUfqjrfFS~<96Xr=TB zF6@qo7euB*CXS=>w+!u-HPL4N-GJ;|n};5Ma!+X#w%VO0zZ>4i%K-Vh2v;+4$}ia? z_nFR9Ahns!?je?$&ZHycS=wPkNHn@J2NtY4`vg>JG*AVUX*{g@*R3)G!u+dNo#Fkz zPImZ}r9N2tHDIz}`qiW=4+|~9Qic&&vZ^G_u>1t(FG-WJ!E&C=D}gREm4^dWXhbjL zSG;6FiD3>r@C+;C`-Yij8k-8O!X&N{RMJ}D;xQ%fq_`}iU3a?oSPqqwJKUCiyI}G9 zYq7P{VOZAt>VB}Rgx?v^nB!FF?NrLj^jSM1FUfETEl6>wAV8WpKwd&T?HnNbd!bO; zJg7UL<2y7ll?kf=>7g=-cwvfH0$Z*#szSsWvB*P2K-$0sQY?SIqUm>IMLE;})v{JT zc}bd72({Ih1$=eoAYmeuXvHH$V?}AO0C~w)o)`%d4G7B7db=DzEO%x|i@;JV3%gg7 z*%>}aYVjriUWJppJd?--q^Du@RzZ%bB6-IQcUk4eyiw>6^~j_LY6fwwdE4E{&eSe;?j>X7erPSmBn5RJ2J<*}Jp*y$qcV$U- zYH|xtbEXD1)@95&Y^-~OeKIGM?i8&U`>As?su=G@NG+YR|G>2%!_+lnXJ0ybs{oIY%9RQRuI$e}l;;L$>E z$V{WTZQ+30!!zYyk~^IBM1fS|0~u{(fvQ9_vHn(T74neDvZt%tofoyGvar0QKnJAKVirefiIyWLX~QPu{XrqP^>jp#TrpIj#YF}mJk`G`8| z9;gh@`O>`g|9s!Bf*@@DAI41TuajMu8-YA`oiM8i?}! zspi#3#2s}|Ll$>{O3T?PBr0&dXLAXC&tPW39?w-<&)}34_DLnQu;0vG(L+Z=0MeIS zo2$u{n8tqrm;g2E>$X{6&6VJt*Z~uzO9s&uVR*G-7vEnMvvwst+3}x=iBN5;Nvxy4 zluKonYMj5RV3X!ylYN;{s zXhWjWhU&MDVN(h~ZLQB^W&{{G7yKeu@5G5&GSxGtv5G0mD3I7l0AoF{Jc2UU9D*t6 z>u{tLgAAQ4H9htZ1IrOtbd|NA&0vY5%M76cr?Emdo5vE}vA{A3tO-IUF^QpAfg4{y zbyzkW)>)OScTuc<7bt_lU)*y}ooQ92#r!ZwY22qdr zL`{B!p*<&SyqV^B{H_DGI89MJe)T8F{)dq4+mGO!*VQutsD3d4uAy-Og(Q2E{|{Ly zz0|%f_`}x;uXic06x?4yu2xw03&liO zhS4kpG-J>PiO(rvq(X=|_6`sgD7(lFTo8#tDe94;*aaezb1Ws*@f7xBlt-7q2V|}R zeswv1XE08o?i3o>aW124BqaD6odvjG67R*3!@FhRGKu|yCg)*DFr2fZTFnSJ25iF& zghfY=0K;ufR`8N^|c@^$IQ;n`yGPbGx4;&T6VTFv?28$c;d`)cJnUxd`tZW$~M zYK^s-Bcu|O&=J?3oq7^bL~s8oocs+ahk0^z={>TcA*rlQz`hHA9`G((`b|V54l@^5 zk_ti?ID*dz)#iau4+#sLzcCf;4o>!%u~H2% zSu44~9hG6{*tIHhc3K%qO&~QASGDw0m_A&ekglwgEf($T))lO~BJxA>L&yOZCzC(% z3B)1eLY5|R0%GLsEO>oRwEc}=wc{=&ly@5v<`re7IA|t68&J^U{wXx?-Z0EyX}~i6 zMKRGP0tz*$Mohz|(UaPJlNr$#l1>C!+q+%+FkM3ilHFt+s6X8k%tKF~-Vchop+RVf zreqm^2+?6xfZWa@X!yGVEFf(8TNC=x@wLlTUt?%gj9hq(nHu{?te0a(jVFk&%w8yJ z^NOY+CDy=u$eM4b(*KGn#~cBxsduVIOGa zJE0FqZ4QQC3Zync^i?s`v{`crC?rEW8?I%6%G3IQaW+V4MZq2d6jh4^Ta;bGzJ^}J z>`l`SWUMYSDWI!Y7nu$hZH4j^V9jGZBCKL3??nL&aPW=WD`XSs%;V__~X*mR_P9if) zkYLu7kWv?zI9el&O?f^BqZ)Ozh<}%omyyCR>j6bhe1K;UKOkmI2ZD>00A^lR};nGHkOWzP}lc|&Nw zTBlrB&fMQhK{B1LP>(!5VJC~6Fm6-kvB#F1Y&X{7{EGL{;j6|q3me=?>_xbKzRxPUR0 z)R2U6sU3W#-=ZDtsTbYEzBVVnCIuP*DXc+=SR$!h2#=DeKMWHcxhJlk@pE+WK-1Q- z5q+;Iv>&2!uto1tNoH|LnI`RhGpegC_6ZF=$i&x-$Zmr^v?fU+s4=pmS&-J9x0&tc zYVHlN#BFN}dmdsVF`hsZd#HYBZzsf!Zc23E;H0!+n`Z1bKjQUsx`VO19#b~Gy_%tx zu}C`dxe)H%ZK=EQ?&{&{Let?k_Ug+?`sJ)@zQdZ)m2?x^!I`*PUuQ>TzJNiwlnXhf zgp^bsnO~5D6%3ye98zMSrodgDE&VK*Hqj3tHkbgmGxOc68lK&}TbhY#!>WTKIFJKK zfq}mSCmA?mEC86NS0BY|%_%p$tSH=Af&?fp4xT#nXAYqOFj`7U-s#SX9}vFHXqX=n zPy_Y;TMAL%K}cpa&tp{NEp7NkK}gR-A)? z?wFez*78oT?_GC}>6VlWjMalgO^d_W4>i7`cKjePwmw{&~PdmU;8z z-6XBYeq?C08^`|q^Yf1v+Q;Fos-)yhmtnnZkgklAR>}5%q%S(?>5ng0X~t=K`wy1& zHQ7_=4;fsW$vB)sG&3nWH*K7zT3bkMbg*Oxta zlg}$e+Gdm{IckrLXlRjIw$?H-bayrMc$sn=KwYmS(&5&?DLZRj+FMW=ZxqeU ztr~W;%lz7lv2SdBNMX5cEYI}j8*w&o>V5v>ZP`@p#fiIo@9r-RDTB1jkSLnV1I=dasEY}H&1F@oM3$~z zo_})3Vt<29eU^L4vWZzP8DYBBcSf=zdvCWoF(Sf$HlOjc=2*=oh$A-$aSB0oy!hiSA{fRdj_7n?O!#0evY=6 zf1GUoS@Uw+{Cv5pUbp)EoO;uHNW`A@wQwC;o;rAL{wLJq`RB{$mybWlKY=MxA%Wyo z7@1R*iE;4Zfq;t3zX73tMW)Pkz(7^`8xixwU`psO{5LXXe5(U4pq?G-Lfg|12%Kh? z)kiH@Z<0!5dy@w9AG$u0ib?~y%v6f#b z*^Bz(65USyS=n{>x_I)G*!NAkH6iH4 zYyj<<;OHKC& z&PUyo=k@#UZ2Fjh$MxiT{%6{JS_YMonCL(z*8J)EANwQZ#Y4gvQ=2wR)uCkgFnNXS z(1sc%+G{jlPIFe;?G8pXR!M{`m!ZvXD#7(*PO@!vhic|G0QftL-AmP0`o{UPkJz-* z>6K^swDI0hr>S=$pE@0?$!b;i6_ZYN#KNEKleZg9sSU~&WLNLUwG(z3LzEFJiBLKu z+L4bx`QDgiBWrKZUP7~vD#)-eOCRJFzRUmmF48^Hv*CI!&Sf<3Lz$A7<(d=*&0_gL zp)!ZjU9lik3JAMCm+ES(DA-ai)IoZc)YTK_5#aVDcDL79rLu!FDUcDjdK8?Sx7{zP z)1zL8gE$_BL#y+97cnWs3_YgK8Ll7-!_X0*n}<3>(wk#$^&t!^zuU-@WW#P}CK`S@opkWAUI)IBDnequKp3oxvbHzJ0msN<(i?KFjY*-(PP zn0#i~j>~htA=>H5{l%vlmcc9)Dmv!E=%E|#{dygAZFK#L1jbXwFtb<&)6f?vzU(-> zT$B(t54>qUs6gBho-~JtB^FA&0F}nIml1}i(r7;diU6V$7ay=q4>`xjuOrQ>$Tx~d_W2_nYqMZmik(h{GgOp$jSi4-%McxFQFVL>AGg7A z*Hu&rm0aU!dvQ*WXIa70v^!j-Zr9K|+1xRBsn4A}jRzq9M(#l6&8-zrArkmv$|{E)-w4S1D0k7Ve%oD;jeGb7Vdhfoqr$hkX`!cL`MQQ~ zncR3pB}O+>o8I9_D_hoR>gD=5DADPtS;?^`x7H|URy=vPv{KZhTKS`>bg4#ONnN^A z5kMqrHqxlOr}3G#^q#3R^pLgN8oU0(D>i|7=28NONk`1!I;Fido5sZYA{Q5A+KkvR z4xx$x8v_UzNun6;ghR9{3{qySQSSM5aI-Kq=HBvQMw^(yGl5!~nmd3V$+E~xhSGyt z+q0R1&-<+Zc%s2xpKG+6*;UBuhEibprWaa&}Io-P5iDy=E* zc^Gj8ZcNazXHdTW0Ml2R7^Pk0oN)}x& z6>=7M%I;-3%kHxV^ec?=xv-Edcv)mttbrEEKU%!!DB83o$Ll5%I?a4F={mVVihzlV z$V_f1hpg4PhSPiJcr_VI0huSEH;Kr)pyDO3Tv-#W^oe^F34Eo}%$w6HX5uyRSL3#m z11DFrG(9pK-)a9aHd@R~N4FdutzpoHLZh7by{+};cCUJ`#(oIt)yyKwVISR+fs@F3 z`9@KJ(AT2vr+07z0}3U1u>DA*HqH^-otMsCo=T65FkM^3>JaTxK=uaX?9i*Z`I= z{QtMeeh5$9+0qI;@qd+y@+${Y$6gIY_^G@J2fR6+semg7H0NLSIbIpw{V>`y;)kI%C1w&}1!Wx1Z?%X03LXIY)jP91W=FhMcz7ma6dzZtvCcEC!m4FgQq zq|roXpVvzAiWBAI0_he7XSn|sx(W~9iUw!p6z8;JwaOo#zEBGVyo#LcrmHlG14==TY))LW~yR}EEc?ql+-dJ?PNQe%gp zZuUzz@KcXcWtfntkf<9O8p@;qcW}5q(Em?4utO(xw}sUN(=>r=9Gj}sEJQ=nk#BQ> zDtcd2XvmZhAohi+j^h~ZFovR)b z1rueJlY73YW>ofIsh}-+ksm|uuBnDM^_E6sp)@^nigwqXfMcL&6fdtANhJEbrMWpe zdV+h+C8(cg+u)`6hmR|#@FWF_k%2aNTiI$%*7rrW+O5Wq>i#?{rA~{(BC^%`E6OQ= znKUOG1B=$H9O!~vaB+M;-Y?mq#$uQ^S=Oxh?qS;pACOhABR_#Er;Y`u!fj#rZjIvi zK8LEtsrt=Y=90<}mJVCwWgH-Dko6wc8aV4}rl$By(Y2H{~YhQMz;WPXMi@qn|p2Su{U(hY{{kmcUsahpnyubMW=sHM+zH=>NGu_CFV7OK^qxS!3Y7Jb3sYIf>Sz4AER^ z8s<&>uy?>)zS;V5{itoih8YF>>M(E(@YSsI!)|p2GX~lHygMb~OKI5UZ@0rmCh)}F zby?uI!}bTxH*kB$ZR<~_HOSvf*k3i4JwI$FZIDQJntuNC*k4co$Z5p2+lbgA2Bi(M z+{0p@nO?o2Z;ibI-sEqi&!xB071c5@JnCno|M%3guYG|O%B{Z@U_y9l7j=9m($jDe1hPb?A(JKZ0NBk!0UT2G6vQZp~^ORzYyvl zyvjtj9?p}}j{F}iV`84LiG9D<8uSVvW-))g*o)&IlPAr)bTDP& z{4c+EyLyYp>oGq1BHzFqyi8zDFlXo!l;4O8*p@^|5Py*Zdu2)rK%FiBnuUn>chUc@ zz3zOeQXI*@NMOUy^&^|2i$I8*1pez)_DeH4*fjfc{0qsZsV(ay;PG|Db!T zfGZc|4KL}x)8-moLu04vh2nh$M)2N#IoDM1ZFW*f{{ROUm=n|)@&xgt37!C;p{%@u z+Ma=9q-1G>KCwHO)*O0){wm8Ck@0a^IgfyYR^*{xrlrqnw~V{S^#1MXL>2JR9L32C z1!2R67Wb2`nN2qR+)08-DqXCd_;GQplnL!s8B|#}JYr4*7iZNa? zZ;cj;sg7izOs9Wff^v{GnUo9tT{66m)pVj#vv^1`nS9S|7mEj}*6I}SY*QbTYxeb8 z?b4Sot>3jfoQzq=v8HBu77oZ1b!D-nCT_!>l=O$+FxHcbr9K#I!oxC_L1iP$nGQ~+ z4r_Y*#^+K&1O;oLW<`^`6W2p40=r6yaIJW;jV$erIXv)yuO}x)mJy|dMN@iXloB z$T8PS69Km*)Thi7KRO&Xv zTxXgk)hP%wK{tddiw`j&ol$vSclIL*G1?)G*8g6O9G1SOF|)K2iF&)= zJd+;3Cxtv9G76U4NU=~HHQJqfwVk9-=CY;EkVWLk+I9+R&j%#T8{`ss&Yjj)-Eo|q z{z!XEYjt7rQb`A3q*D9ddxZXRZDrPZmTxm=B=wcTJmx}vV{%E{`r!L7ZwU#csm;Tb z$ln)5_YDXL8ypA-@qcAapj8!8`-jcUfZ`VV3;$&^FO_>G`}q+&(O(dzJs0Kabp@#w zOqBv{kk(>!g8+3hLs;ooA;g-*2ir2zW#o9mny0<~CR-Cmre@o;Tu|@AMZbALWRg%o zQF>tJ$?$p;86_E#M>(Tf<>>puru0XQ`OuZ1ipfT(Wcn8 z)fCUHrnJIdMRD|RWNl4l^v3kk4__2)Qo=l0sYsE<{sJ7BVR16~Y@AZL6_zLM!Qp1~ z?|!6JLq4j?&s~?Q*|E6PZMReRb5E~V=8^M$KSSS}3AA%3Purzxxf`qhalMO3ewn74 z%U@6793cTp{Fa<%^ZO@bcg>#=d3bpyY0z!e_h5R=Ld;)#5V{g~c-}cgNylzH>(|4#a0+Lz*(A0=eD_P~w*iZn3*?5OJm7<^t;hLS32E{bg+i?|`E7KjW` zHpi`j?o-eu7>c#MC&j)CE4dhK)WdZ5o`EUHOY-*dT)xTqbBJPmMTJ&Jc$GS`(115x zSQ@L&JxPo@Hh{c{OtEKfJ*GL=LRH(jEn?2L(_^l`a{ zqqCZ-ie9XZo{EWx1L|JMn^Nb~iU$>-GoDlEv%%^2lg)tMX8UczFGXz+{1785p3P(% z5hY_D`>+eoB#QKC^pgP<=}kyHu1i(E)P#d%u@<=ef=C6N=&`2<_7ExS^?H}pllH0# zxYUS>OGu9%#gQ1Dp&2S7iYr{rfUrMulMU{800ns{G#619gc#De=1!5q0-{A8?Z2yio3USPITROa#NcDp@% z!5Hb${@j}f^mFr9%>iXwR-pmFfibNAE#f-xPP4#ywgmEOe*7z_{5Nbsek(KnplXT4 z@YVBbuxpBAh- z$6vsXvPM{@&Yw1Twl%y1A6h;|gD?0o>tIi*)tONywT;qaCeHeaH+B<%7sk>i>-Nwj zspZ29F3GAYstPLDEViF}P;^R6%w5L=7hJry(~fHjlOQk%!G9XE@;tOq2Z2>TC@;ww z&9}cNoSh1Hgh*?}lMpWK+ISi@Wo^$oq?EUsN3^I~I2$KU7WG|o5TCi)3^KVXqa(c3 zMIDoXvLoU|@9HBGgar12V8Vm0WbB4Xs7%`r7?)YFFADAgu;8JQjoHbCQ+9h| z)I$P=g1@>&HfN_dj}IZD)X?ewo><u}0X951vMD=;aL%q@jCn|)AlTm_zHC0t^FxTpHEjC7CzKcM za=+?N@1^Y(PohtE+wk5!5TsF0^VLHg(f~g>uWUo9>smB_0R7*zHK6}1ZO!-p zwE@c*SlIrXx+ctKO6V{AcQc5mPQdww8o%3xi{WTz`OkghY5@0+yrVIrKJE zcLmEl!8!_bK zZ2yDGPe&Y>3Lu))dgAPr8~i6lQ2S3KR*GTgw4r&b=0qW9W{n{@x|;NLbGrcvc1sgW zHJu=p#vrRSBu)Qrb$)1DKjNNba65>a0DI~$xM>F=n4xyQzF*)!)Rbr%QZT&s1+O*b zr+@u8cw9Y&4uJIEby3;T_x-%>r$e`_UglQvXRR{@dI!|vB4F%fp!vs zO3_2coII}Q~=GVO2c|VzI9)1Y?0SG zV5ox(yXngiit$OeJECMgr!zqm83eAPq%Ca{m9?C%xGlZo#D>a!=M$TGq%+}LbjrWk z`3|cv7yw}IZbJr%MdI%QDJcLL>TK7V5TWBgezP}_E;9P_i&*7}hL?fx!&SNO(lv8+ z0_zVv4o4D{*$%vlNqcSxwo2&=m0mvsvuO>mFLusni0}R=-nE=WRh_k-?J~ag5X=QK zGk)-c-?dR0-Vzz2=8!69rH+5jkf7!`0}I;RmH;600%}%IpYH=o!sxwKFQOD+43Ttz zwZhu51AQ*bQ3UthhppAe`dvwDJ4R9%VHPGun#_1SVOd>*GHyL)%kxb}{1jJD9(ltL zaZ|>YZ|R}5qPh?-e7_NW<(Hce)_HFUMbVi75tZQhiezy;Hmt&4M(mR9n~e1H+jnlC zQW^mA4!D&UM~Q8(m$5I)(UY8Wb#+?~2Obw+`%EH;Oj!>_L+A`E4YA5@;8Z`i2Ig2)kR%vx=sg~zNc4vl>8zWugYU`d0 zy5vnQHmy#%a#Z@~F{o$)mP%2sB=Cz^mE)vkq8Y~nfGfDYL`rnue{?Qj!J7HGX@HSM zqKpZr7&4OhH)VgFN)jrGLY&s54ouqaR=-MoR{Wz*(35P3k+@IX5-#2EfoNn+9u2^b z90b$+58xlYVE0U{s3xbi_^3GRQ!A}*S&B_^S#Fvmz*wBTe+IuXHGylf2HfjlbCDg| zJ}uzLRh(K^Lz7!%BH#eN_tXNv=y4_kZ;K(ai(n|I8Pv)7#vx#}JR0ARps16^s?RwdCX}X_ef1{lFmYAP!bU$1-dFu^Hb?7{j z#q@|f+iqd8ETf_2xxc>bhp~80pbUV+Z4RDoTJEyj1LYQz(-0>4v~rgtT}a#_QZ-&yKxM;L?y-(a1YNG199R5-pmHJaW#-U z;u?}*f>2?y@pKWW4a1)kaH z=O7Nj-<%hwb@?Yn30sZ#n3SbO8t7--6=XJw!>QY{lHL49M=9leLTLE`gj0g`i790* z+#W1Q>pgCQ>Vh9MkVui>R+v zi-|X&dIVlBB4y>^+DB=W&8}c+l(I59?-pFFZ{-`*iPaTIBgTn{bmc3*$0-R^RiV^1 z2Jzx5#=zHdnMG(zs=%!QS!I;-tX*b2jqM>k!iw26`V6pjOmrvNez9XSF`Nfgo1*PyImh=LmRPTV>Km7xfJh_R+D z_^ZHW$jf95C&6eNsbEbCJX3FZkP4#R%MmDQ!Jk4aX; z5E7%>2+r~JV5&pt*TJshKw|kE`JL^T9sSzVGLzo!sxS*^S-u16dPoi3YGTtK70aWk z79gC-b4*IPV252D46BckPPkBv(J^#UMSKb8s6L_Bs=bt3e3UlDiCEJTmaA(Hi{91> zLbZ|!@(M0pKBp#53*#?20CC2G?1$DP`y7&W6e~ zDT!jA*+v#18{sG~JKr>TA&^J58Ynz`EuhE?eRzW+$sCN`3ISC(Q#Y|^Du4kht$C!e z39FMZ!=nK^00YH^B!<8*CdJTOdQS; zQa&AIn?o>6j8j8l(oXbzsVBpUHb3AU5CR4mfDIQ4!KhW^E$S17l>iReCH%#x z5`Eiuv!Wgy^Z<^c`Q16uWx&p9`}VERM>~pn2|dZ_ScgKE{FSPb0FLChsHT|l`y9sU z2>oJtW%!fcfhFc(MAFbpdXg90=G9^&8iVYCWp(}CNV?ms<2q90udT^+tLbf(5xTkI zMe%-sw*iOLL>5j64-~LBSL)bMR&`zTwN%PpA*f~+4dCaEVnyf{Sm>2659u&|wkXcw zJUv!}&LLRUk~O_xIW3c+RwdJQXzToD6?>8_ zFhCXEGTV+;vpll*_6T2z>p&$G%=3svmBp9Bf^0d642H5-$TA6xJo-zzaVUdIlatcky*uLQ5!UO$?@<1{X&ys1SQ zuXfETDPA#w1kD5A3URhx2(@jh4!sgo!sx~))ak~h;Z*hluMbAD`{F5c&DUx>$WWfP zMZc-J#8jPz>CN_bg`(nuo^#ZcbF8ody3&Z4cu?BZ32^n}L5uGa_&wN48*man$F%2M zT5ro8SD$Jqll5h2T}5mu)K403T1&Zf^?*@VOPYoFlcD#rNirLDcnmWS`y05OETr)t zrN+4017niZr6>a4peB*mww?(sy>$i41%b;2k@!wV-*S-G;MdtwYk*?k-!p*$;dNv; zQhQ|bWB}l&EjH3o8SSS_Hk+`z_+?EgRhy`p$EgfYZ{0a8veDEY3n<&+rcDy`tkx;- zh%t7j<)9p!s9kF%Pl}tVlwX~^lKg!@$`hye1KbSgKarQYG5gw)p9V0a<*4u7nBRRF z={w-ou|<92JIm9p7AA3UH}m)aOv@b)RvxeO)%!GMPJHZVuVlX_{95C^Z+z{L$wV$6 z6_VGUXaF3Y?|*jf5)TvA-j6SPs*SdtLvGBKp(NOb;pY@)Pe<&H1-I#W&LIX0rbCmE zGr8UGbN1nLu`>s8+NOv(G25yFDc}J7>**rJ`5)ic`10nvxqdNCGycc}IC1w3`x~_g zSx2uD6+!jJBW9jWm|;N39pPyUlYN@mdd!wy$(cnsM4QRjyA63|2uh#+kO~hT)rZ@C zSrxBGmoqb?!;1io2m%oSzC@kfh-3jN60AC6&wWsi2})`r&~;)L(k5R5d<(y7xWk0^~>dd1%(a*0T)~e^`rRe z6CMq+f$yuzpIk;A8_8P!TEv$_vA?7Cqlh(#<*?_l&zwRNMF5xmbme0d_2>7uui?*m z{}$YvTTU4D2!Zl+Sipa$xDTSC^A7m{=#65!>l5&WvfYa-u&6N6j4#SB?5I z)t~IpB;ekEoclB+cehpD;ijD&|7%F{Z+caP{|~Pz^gsDkolTsa-TupLW_>Z5f8oCj z;s2Ew-e@v1n=?a0(m(+L#i{*=kL>vm9~opdCG;2m+w4-?#%@m>>BBqri0|I>so$6d z)JQxeXrH);G>{b$WyJW{c$Covto*f< z7PdQ&R)Kn+^%^&*ov5NrT|_VZatsSAt;jUL%fxp$B5+L@&|l)`Sr>gC8EA7HjseSj zZ*nMrXXN~DtY7|dJqF;#d2draAptjC^*<_-VqQf4fNGSHO2)lM)na9Ub9U`>R9?C6 zCi=j7s0tO|;Sy?jw--(ijY=QiZSL|*;WA9%xWBC;$r+M)!eA*sEcmGnkUeGmqZl2nAbC1-c@Hs*r!9$4(VljZqN-fWw07RFQ0}9VEeAXyU@eFD zYvVRFU$3oCf2IXx#$M1G6cBQXkI6HJr4UQYx8rs54mAOT<)O4I-*oCdr<0Chv~bS) zfyf&y+{y~h8yU2^(15d$DJ2k5dR~`H_)@1$v_RwxIF%3@^g!E8@DM!IM21;-szKfyfX_7tTgKbkFRYlBq??{R_joD1RCi^A9e zhU5z}tK(h#3TaTL6#kPWmJ?gLW2MVt-B|dYjUhb1#u*`vdYwW`g0u2VWoM<{#1P0E zy(3cyD60O|unz}*L*r$1duP%r`kXSDuHjs^whpaJ=Sr1(zFAYMZigVX$Wk|6iGFtN zRH~S-wR@|mK95@)K8)`X&DD?#aM~1ulVQq!S+Vpu4;WUmE?JR>q(*n`WtK+?cP$_f z#xN~?A5%82q~nUG&t>R{0}k3hx#@OZgJkFi_yn=|Oyqd-+`asEc?x312KlzRrhe9> zMR15VnH5?<#aL%-r2+VLxaLw+MRYqLC`}I^*+=c<0t=zVsS4F|!nvjTsd{!3_6$fx zmgPvIL8r9VAXlcu(KClmwDd=pv~FMHq)L=})1%6K#YbT!-b|La$zW@7O{B?CDbI!h z6e8)-DpO_1>#r&$RVq_0s@B(18jx!lakHHSqqxYo*)6q^;{UfOj9EHM37_aUfT!?3`vOogQKVl{4Jz zdB4Qq3TVm4qtr6De&7Qmjf9E=vX4koBaAG_a=3N)pu?Q4!{fBkuB5tsjsnC)tl5|Dz(m%oq$8Im?RQ3!_GK|CVUP?~ z7ja^|d$sj$JHhp7am^CN6VFls9os;JcRi)@iJu$NrV^A#*PU{y(Ca$lw&VaLC{a7YYnU7b5XS73L5@((K@734*q0 z%~t4e>x*DNNq`K?Lh1bPBi-8wgzbKIm4~HgupG=LOnik2h!_yyB!)KtK&qThy~s`e z@GZE-F8oflSi6~k*C9~1fQy8I9z)TPCYY~y1Vi)TR4-qe2G&2k(>Wik8M`1@!vB=hvd48E@LI%jJKVX_yzo~EGMv9n9soz?PdYEPC9fB9ky5%gkT^eBYgWVG^>ru#KG{D-7}?s?-!?$7*LFa z5WfbI(SCq`q6||P5CQ>t-4SprlNENtwnxeq>@^OUwFqEEFJM2NObparyTE~y;?>{rcubN2Ke9Oc&l<9ytjktT9a|nUyhb9tg?QO~ z1F{vv)zw48%XdZ$lQ-vvR6e}O9S;pY*eQ9CxUQAH6sa`;bbZ$j`3k)G6jH;FE6Wb7 zNwQV!Dl8R~yS5S;p5^BLP!KosiR60y2A*n@Gj(m&@2c3P(( zM7x2k)U(4BCB}<;$Kg-<)5qgk^B=u}={M9rk+{I}awfmH53+)}$`54NnJjCRO~ntj zr>udS^)!pVq(OoHr<%}@zTb!8k9qDk)qsI>7!4Cn8;TYZRx3;?SXL^mR40`iu`c2p zNAJCCh`9(>338PWc3vLA^Tq*vp=IRY-DY_mFKmdOh%r7;O(+)Rupw?PxBau-DKp|A zA7{pWGfQlLt`4Tae?EtZ?1|siXR+s1C86+7J*Q9soJE)j(4~sH$+1bq>-J*AG6daJ z3`yg~rr}v>P_;&>BP>%r88NkzQs=Pw1QiX)<_*Mphm08C+o4WD6!79W@NVu#5@=Ww z`+a2@1ei<~WgX(+N9Caxoi7uhW^^E?<3>N7!sDeIvnDJe?r`#oCvk|W*$bcY5%4Ks zg$IuS7~v2OET97;6+dIc(TJR=hNO#I7z1aJHp2!MJC7UX{BTTPGNsV94uamm#t|#dUU_l*VZ1)`K<3kP zCib>ze6Mco;<+0C5%Krn|7+_T6fz|A7ye6L)qf=j2R8r#{g=Fh`CsH6^8c$!_)Fax zSlgQ${Hshz`l9Xr!hd`Ezx18b7kzj20nGoGzPmR90>b~&6L1y~{HrI>wVV?A3;%6) zseS2`CyxC2RzUgLkK^`ZshmZCSpyj_n-Xl|%O)Vg)ai9WRRI#&q<{T3E~TyQ^WBpl zHUikwK@O?RFeo)E>&mnZzytS(>8!NQhV!WNr@dVyDj3zt&olS95YeJi4s-qV?b?gH zrZRwmvZ#;5Fx=Q+G?m4Ya$b%F{wTs6X#P1F$a>W0(ubS(y%Xg+73@G9%p{H6B1-nV z*aEAKj^ix4HCLHM&K+_Z!G!NS>g{p~fJYE`8?*QH_PYfhi(Qqd9t3dSm2&=A4uV^T zUm9B{lBH%+(O4XeG`aBfnVB<*MNhJ(br?Wd27~cUJ8D`%0%PVJHstoZbRT4eSK2|E zt9FeO2;A#4s_!5Hd;(*!XN8QghT+s zP+m4?&tJN#bEEmz@?__u-D!AnBp@7UNsF&$h&rrMUM_p9T^cjk~Mg$hdH-9iG z@YA-%K$l3=Qz0ip^@%MYNtTpBB7vk3cT)?ru(~#6-TRpKu)>#vG^aiFIiopARWs7c zB5|D&=BUppSJMw9vtPbQJV*Lq-blc%6al!no>O6E5oCkc1JsdhT3!#9+E#!^-bs7C ztXT)qy0ek>G&`hnIPkEM2HKGCi1YzAOj%)}i7cTBjGQu&F!3CHODkSZQBkTKh_zE! z_RUIPNC2D$*i$aLu#g7YD1U%nSYFavdl9t-$Y`c0S6Y4*hT#vPqR-NK(J;WvA&9$2 zxM0)}+6S8Wb-fKsC~%ug&5D)N_gl2duJC~>&L$Es4Up`EH7A;BRF6ebWp;!KK^i3& zSoC#HRb`+RW=&grDpz;mcMX#urjVlYLo6NCu|}-^WG%r;-J@XW%`X>=M9bh$E0Y_b z6v41L5cr29k$8*c)88JQAEf~8(wjxc&LK#XG~WDE%}&*0%}Et_qS36KRzW%)2N05V z(nV@an!0j^k62t)X?vyvtS0XOvlMw|4_@X>_o+=kFRGfZxoHFG!T4rM%m$1~qnNGo%Gi>wxiBHHJdBf`?eogK_Wu!tw46R=U7!`rXPyE zp^*qobogwqB@T0MskY$U-9YM|$F(3fa6vK(PrgMP@DHp32=TZdw5O?n4~9RY#Vhug z$5Oz}JQ6G|>9aG5*30$eeK2!Iqx0H3-V!=)&%Vg=$rJT!5h$MlM7q5A&IPhF9l&1ev*O@>=y}ogLkR{vLim}U zh9e)3wsd4PwlUYP4z0TSGRZ8g@8jv=(>y{LbB(T>wD|> zL8e|?&dyFPufz+jopExe?&yc->EBBxi26yZ+ac&iY(t1OtHx)do-U-_<`bJ}d25HF zsF49h`Kr}!E2Z&7mhWXk@xOAoANH&)@|lAm63Yo1829ov)6wA>E2Wh)dQzs+AF-+B ziE^OR=C>~@E@zxiB_0xxyMcc%`o-E?Bu%F7GI`U^MD2wabhmGk*e4pd)Pm5aD`a=GQ;|kRYxeY!LA5{hwhdA;OmevO#(KjL zU?=eyG@?v&u!pJBK}{|67GCmIXnUHF05%o4Hd}cWyCZYW8XENuyR=GoFs=s&)vlGk z9~GT_Lu#q8F}a+T0}`pJp#Ox6&9QX50%PYK&Im#|5-F}C&}%O$3NUEi5TE9%D&GIzmWW6VoMbl zWUh!m;4mzKc~KI0c2n6&Wle6^13TX2t(9w)h}MBnZknhu*~JP^VnyP0OP%{Z9HTe{ zbHoO!8le;%;fwL9q6z6%fnW#E>=<Okg<5){^1402w+S?F3$XSvPPC2iIX7tRMUtDQF6N*3zqx#U_{=rQ+D44BZ=E z_L;hFck!@ZO-dkx!RdCrueFsV4_BWi6+9sox`s%ya#hlhu1iTQwDp*vY^Y1=gL$ru zYu9+@f|};EC~g{nt>Yy>1oUejOhwa`_5#PtxV~aOqo(@28b6IyU#b zSe&y0zfo3vH=yaNoNe)nY8DYRW=`^&c(7+%Li_$@h6+lsKMjeyUFM}nD)gkVi(fe( zLse4FGD#H06K%+l@o9yZyoTEa|J z`}wJ&su3jNf;H1*GfpeK=c#tPQO1S|DOCSRzvhEd?T{rgmv*Zb*y%~eO9N*~KSUjZ zzFE9Bd!5Gb@~03}CwRJ2F30Nm3Kzz)4AAcLHA`vB;JIqX?Sexu{h6pk=;poGR|Dpy zWv}Br_NV{ebs3vomSVX33d~Fn0E`#`0KEU)yTP@K&kOyl$Yb4R)q6sl?pUwnfQxP= z4x%54@q+u{cWe`O=?fN=DgOR`S=ssB-qmQ7VWYiK3lWcybA9iAj=2yC=DFc`k;R@) z_E2l@yX^<-+r3Ywp}}?jnofF=EwIquB+_Hzg8g-UA*4J=!>FQ|&uMWANhy|(uAHv2 z%qWoM<6#g=hMgHnHWQcx8caU0MsH}k_gVX|gigFgOs`SfYM|{-0Pa3O|KSs zin`O5tiX|pP5v~9kTsFoWyN}@raoI%mB8SEONP5xHmIY=glWhQf|O>*Ko)5IT#my$ zK|QVxDl8vQYV7hwZ@%MWnurobxc2j4gTpt*m5(f?%i12#{%%&$Y}@;C#3lp(F6MK) zg7D=ruqn6NS0UrC`qY$|^6O6*E91D!h`I6wh#zVm@`R`6>}8MMnjj^{^`a#OF$gl7 z6j`IKIVo0(Id$EyU;D>v#=IP(MI3u~%sNKQ8=>g8mn`IK@b^iYXsYisYd>MGV`No} zdl4BwQqD)hv;;fDaQRLggbsN3OBAba4!dfQ%WLyn!J;g09awh<*lz0l_5}M*P)4@K zOi^#AU;W6rag-az4j_@@X2z_^kv9V8VuQkOAvr{!HBNf@3iz@NgvV~H=!gyPx^#8% zx~D@sHS5BHl8x_HZCZ{L(E@oDon(gTMdtd8O2XJRh^?^af?U|&omG#ZWDt4NR2 zoXd-Gd0jKBJ7Hg2r{k2@y@{B|)szy;%ws{r4$-u=X(Rpc6_?QDklx!R3!(uvM+HHZ z^C*k)f%AzMN;pJP9$Jj|+?o_AqPCX6U_+o7@C6awK~Q_khM)kyYHpzFT9W#GV(UQ9 zb>d@}7nfJH#fB#1a@jH$4eDaSt_9M;ePBBkuRopGBqKxb9gD5=$$WSc07Lb;?vHjh z_`G$Qh?!p(jyU(3f$7?Sxi#1y_cI152OYXrxWwY_jzXin2iX=$M5b1Yn8MbFuSQmSyWTva?o6C zg1DSur0eT?RrmCP!1>ke+k(`X!f6t`{{c?u z*O+Tsc0@=*ej%;==%R06vP!4e!~W%bM@r{3`K3*|dVcYjQ`Q;viCpd(*Vf&UgQQHX zEdB4rfv&be8gJwVmlQ&}(m(Y>P5MHmaNz^IhZ319ay>Dd^k0p$o|Xh(XJdb*R&1j6SIZ zlAvjRZtP`Jp_!59H-}NG-^iv~`FvZA+uB(iD2n)@+kfa-i5n(-y!}wPFJ(y!aMUHg zsLrWku>xbz^OWI;Ugp*#x0jD!rk#uPr72a|{q%*q{Y%!ARP(@!?`${Ms1hy-NxpKY zVIg*8YO>@Ckm2pak!rE`)(6N0g}#hvvO3p}i{T(MAx}gSo&M(8~xIF3g7+pGD^L%vKG*s=_W|7vSqa`EL7zO2kgJv$y7J7eby z);rThJ-(2GUk-`y|Bi&53$I>CW@Dea_o+?7xRZUvrT#a8D`|m74Kh=>YNXXtJyhM{ z)~ErP$5>0#nl~3Y;e8UfqpBZ+2z4# zOl57c>(M<#@>W>oC2EO1tsT0G4)JF~RHbfh)CGZ2n=IEvPz}sfZ0@D&`34$>8uWJ6&)~h#9O$0s$g0>%zBIx>mM*XT${|jY=kHhx&f3SW? z*6}QYT>XSaSf5`tuBX?>{ucaU3nSx?pa}Zb6KlA58Vl`T!{SFR`Oy`w)JjX3L4wxx zr2BvATu&3CJiZTxCr}Y)ksx|KA^caF^t8KCL8l`ByJm_Holq}5VG+FfwOV@O4gRo2 zaYT0ze5Q?)5Ido6dSVV&uKzi9^=N!o9zxuN9Np*U`@#Tomdn6 z{59)$;^%ia<9}Gg4T@<91VRe%XTq;L*wX}x^zY;233R+a7W(g%BgIby006{)yUqXr Jck{kK{SR)67*+rP diff --git a/include/SDL_config_win32.h b/include/SDL_config_win32.h index 92d57f0f0..049c38879 100644 --- a/include/SDL_config_win32.h +++ b/include/SDL_config_win32.h @@ -26,18 +26,34 @@ /* This is a set of defines to configure the SDL features */ #ifdef _MSC_VER -typedef __int8 int8_t; +typedef signed __int8 int8_t; typedef unsigned __int8 uint8_t; -typedef __int16 int16_t; +typedef signed __int16 int16_t; typedef unsigned __int16 uint16_t; -typedef __int32 int32_t; +typedef signed __int32 int32_t; typedef unsigned __int32 uint32_t; -typedef __int64 int64_t; +typedef signed __int64 int64_t; typedef unsigned __int64 uint64_t; -#if _MSC_VER <= 1200 -typedef unsigned long uintptr_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; #endif +#define _UINTPTR_T_DEFINED #endif +#else +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +typedef unsigned int size_t; +typedef unsigned long uintptr_t; +#endif /* _MSC_VER */ #define SDL_HAS_64BIT_TYPE 1 /* Useful headers */ @@ -79,8 +95,10 @@ typedef unsigned long uintptr_t; #define SDL_VIDEO_DRIVER_WINDIB 1 /* Enable OpenGL support */ +#ifndef _WIN32_WCE #define SDL_VIDEO_OPENGL 1 #define SDL_VIDEO_OPENGL_WGL 1 +#endif /* Enable assembly routines */ #define SDL_ASSEMBLY_ROUTINES 1 diff --git a/include/SDL_thread.h b/include/SDL_thread.h index cf3ba82c3..fc430224f 100644 --- a/include/SDL_thread.h +++ b/include/SDL_thread.h @@ -59,7 +59,9 @@ typedef struct SDL_Thread SDL_Thread; So, in short: Always use the _beginthread() and _endthread() of the calling runtime library! */ +#ifndef _WIN32_WCE #include // This has _beginthread() and _endthread() defined! +#endif #ifdef __EMX__ #include // This has _beginthread() and _endthread() defined, if -Zmt flag is used! #endif @@ -68,9 +70,6 @@ typedef struct SDL_Thread SDL_Thread; typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void *arg); typedef void (*pfnSDL_CurrentEndThread)(void); #else -#ifdef __GNUC__ -#include -#endif typedef uintptr_t (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned, unsigned (__stdcall *func)(void *), void *arg, unsigned, unsigned *threadID); diff --git a/src/SDL.c b/src/SDL.c index 47368c1b8..f170ef149 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -325,8 +325,8 @@ unsigned _System LibMain(unsigned hmod, unsigned termination) #elif defined(__WIN32__) -#if !defined(HAVE_LIBC) || defined(_WIN32_WCE) || (defined(__WATCOMC__) && defined(BUILD_DLL)) -/* Need to include DllMain() on Windows CE and Watcom C for some reason.. */ +#if !defined(HAVE_LIBC) || (defined(__WATCOMC__) && defined(BUILD_DLL)) +/* Need to include DllMain() on Watcom C for some reason.. */ #define WIN32_LEAN_AND_MEAN #include @@ -343,6 +343,6 @@ BOOL APIENTRY _DllMainCRTStartup( HANDLE hModule, } return TRUE; } -#endif /* _WIN32_WCE and building DLL with Watcom C */ +#endif /* building DLL with Watcom C */ #endif /* OS/2 elif __WIN32__ */ diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c index 7e3f4a5b1..b2399bd96 100644 --- a/src/audio/SDL_wave.c +++ b/src/audio/SDL_wave.c @@ -550,12 +550,13 @@ SDL_AudioSpec * SDL_LoadWAV_RW (SDL_RWops *src, int freesrc, if ( format != NULL ) { SDL_free(format); } - if ( freesrc && src ) { - SDL_RWclose(src); - } - else { - // seek to the end of the file (given by the RIFF chunk) - SDL_RWseek(src, wavelen - chunk.length - headerDiff, RW_SEEK_CUR); + if ( src ) { + if ( freesrc ) { + SDL_RWclose(src); + } else { + // seek to the end of the file (given by the RIFF chunk) + SDL_RWseek(src, wavelen - chunk.length - headerDiff, RW_SEEK_CUR); + } } if ( was_error ) { spec = NULL; diff --git a/src/audio/disk/SDL_diskaudio.c b/src/audio/disk/SDL_diskaudio.c index 04f50f337..e0ba43332 100644 --- a/src/audio/disk/SDL_diskaudio.c +++ b/src/audio/disk/SDL_diskaudio.c @@ -26,16 +26,11 @@ /* Output raw audio data to a file. */ +#if HAVE_STDIO_H #include -#include /* For strerror() */ -#include -#include -#include -#include -#include -#include - +#endif +#include "SDL_rwops.h" #include "SDL_timer.h" #include "SDL_audio.h" #include "../SDL_audiomem.h" @@ -61,44 +56,18 @@ static void DISKAUD_CloseAudio(_THIS); static const char *DISKAUD_GetOutputFilename(void) { - const char *envr = SDL_getenv(DISKENVR_OUTFILE); - return((envr != NULL) ? envr : DISKDEFAULT_OUTFILE); + const char *envr = SDL_getenv(DISKENVR_OUTFILE); + return((envr != NULL) ? envr : DISKDEFAULT_OUTFILE); } /* Audio driver bootstrap functions */ static int DISKAUD_Available(void) { -#if 0 - int fd; - int available; - int exists = 0; - struct stat statbuf; - const char *fname = DISKAUD_GetOutputFilename(); - const char *envr = SDL_getenv("SDL_AUDIODRIVER"); - available = 0; - - if ((envr) && (SDL_strcmp(envr, DISKAUD_DRIVER_NAME) == 0)) { - if (stat(fname, &statbuf) == 0) - exists = 1; - - fd = open(fname, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR); - if ( fd != -1 ) { - available = 1; - close(fd); - if (!exists) { - unlink(fname); - } - } - } - return(available); -#else const char *envr = SDL_getenv("SDL_AUDIODRIVER"); - if ((envr) && (SDL_strcmp(envr, DISKAUD_DRIVER_NAME) == 0)) { + if (envr && (SDL_strcmp(envr, DISKAUD_DRIVER_NAME) == 0)) { return(1); } - return(0); -#endif } static void DISKAUD_DeleteDevice(SDL_AudioDevice *device) @@ -110,7 +79,7 @@ static void DISKAUD_DeleteDevice(SDL_AudioDevice *device) static SDL_AudioDevice *DISKAUD_CreateDevice(int devindex) { SDL_AudioDevice *this; - const char *envr; + const char *envr; /* Initialize all variables that we clean on shutdown */ this = (SDL_AudioDevice *)SDL_malloc(sizeof(SDL_AudioDevice)); @@ -128,8 +97,8 @@ static SDL_AudioDevice *DISKAUD_CreateDevice(int devindex) } SDL_memset(this->hidden, 0, (sizeof *this->hidden)); - envr = SDL_getenv(DISKENVR_WRITEDELAY); - this->hidden->write_delay = (envr) ? SDL_atoi(envr) : DISKDEFAULT_WRITEDELAY; + envr = SDL_getenv(DISKENVR_WRITEDELAY); + this->hidden->write_delay = (envr) ? SDL_atoi(envr) : DISKDEFAULT_WRITEDELAY; /* Set the function pointers */ this->OpenAudio = DISKAUD_OpenAudio; @@ -151,26 +120,20 @@ AudioBootStrap DISKAUD_bootstrap = { /* This function waits until it is possible to write a full sound buffer */ static void DISKAUD_WaitAudio(_THIS) { - SDL_Delay(this->hidden->write_delay); + SDL_Delay(this->hidden->write_delay); } static void DISKAUD_PlayAudio(_THIS) { int written; - /* Write the audio data, checking for EAGAIN on broken audio drivers */ - do { - written = write(this->hidden->audio_fd, - this->hidden->mixbuf, + /* Write the audio data */ + written = SDL_RWwrite(this->hidden->output, + this->hidden->mixbuf, 1, this->hidden->mixlen); - if ( (written < 0) && ((errno == 0) || (errno == EAGAIN)) ) { - SDL_Delay(1); /* Let a little CPU time go by */ - } - } while ( (written < 0) && - ((errno == 0) || (errno == EAGAIN) || (errno == EINTR)) ); /* If we couldn't write, assume fatal error for now */ - if ( written < 0 ) { + if ( written != this->hidden->mixlen ) { this->enabled = 0; } #ifdef DEBUG_AUDIO @@ -189,25 +152,26 @@ static void DISKAUD_CloseAudio(_THIS) SDL_FreeAudioMem(this->hidden->mixbuf); this->hidden->mixbuf = NULL; } - if ( this->hidden->audio_fd >= 0 ) { - close(this->hidden->audio_fd); - this->hidden->audio_fd = -1; + if ( this->hidden->output != NULL ) { + SDL_RWclose(this->hidden->output); + this->hidden->output = NULL; } } static int DISKAUD_OpenAudio(_THIS, SDL_AudioSpec *spec) { - const char *fname = DISKAUD_GetOutputFilename(); + const char *fname = DISKAUD_GetOutputFilename(); /* Open the audio device */ - this->hidden->audio_fd = open(fname, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); - if ( this->hidden->audio_fd < 0 ) { - SDL_SetError("Couldn't open %s: %s", fname, strerror(errno)); + this->hidden->output = SDL_RWFromFile(fname, "wb"); + if ( this->hidden->output == NULL ) { return(-1); } - fprintf(stderr, "WARNING: You are using the SDL disk writer" +#if HAVE_STDIO_H + fprintf(stderr, "WARNING: You are using the SDL disk writer" " audio driver!\n Writing to file [%s].\n", fname); +#endif /* Allocate mixing buffer */ this->hidden->mixlen = spec->size; diff --git a/src/audio/disk/SDL_diskaudio.h b/src/audio/disk/SDL_diskaudio.h index 891ae3412..2ddd68f95 100644 --- a/src/audio/disk/SDL_diskaudio.h +++ b/src/audio/disk/SDL_diskaudio.h @@ -24,6 +24,7 @@ #ifndef _SDL_diskaudio_h #define _SDL_diskaudio_h +#include "SDL_rwops.h" #include "../SDL_sysaudio.h" /* Hidden "this" pointer for the video functions */ @@ -31,10 +32,10 @@ struct SDL_PrivateAudioData { /* The file descriptor for the audio device */ - int audio_fd; - Uint8 *mixbuf; - Uint32 mixlen; - Uint32 write_delay; + SDL_RWops *output; + Uint8 *mixbuf; + Uint32 mixlen; + Uint32 write_delay; }; #endif /* _SDL_diskaudio_h */ diff --git a/src/file/SDL_rwops.c b/src/file/SDL_rwops.c index c09718a29..c4b2b1807 100644 --- a/src/file/SDL_rwops.c +++ b/src/file/SDL_rwops.c @@ -29,16 +29,25 @@ #include "SDL_rwops.h" -#ifdef __WIN32__ +#if defined(__WIN32__) /* Functions to read/write Win32 API file pointers */ +/* Will not use it on WinCE because stdio is buffered, it means + faster, and all stdio functions anyway are embedded in coredll.dll - + the main wince dll*/ #define WINDOWS_LEAN_AND_MEAN #include -static int win32_file_open(SDL_RWops *context, const char *filename, const char *mode) { - +#ifndef INVALID_SET_FILE_POINTER +#define INVALID_SET_FILE_POINTER 0xFFFFFFFF +#endif + +static int win32_file_open(SDL_RWops *context, const char *filename, const char *mode) +{ +#ifndef _WIN32_WCE UINT old_error_mode; +#endif HANDLE h; DWORD r_right, w_right; DWORD must_exist, truncate; @@ -64,15 +73,31 @@ static int win32_file_open(SDL_RWops *context, const char *filename, const char if (!r_right && !w_right) /* inconsistent mode */ return -1; /* failed (invalid call)*/ - + +#ifdef _WIN32_WCE + { + size_t size = SDL_strlen(filename)+1; + wchar_t *filenameW = SDL_stack_alloc(wchar_t, size); + + if ( MultiByteToWideChar(CP_UTF8, 0, filename, -1, filenameW, size) == 0 ) { + SDL_SetError("Unable to convert filename to Unicode"); + SDL_stack_free(filenameW); + return -1; + } + h = CreateFile(filenameW, (w_right|r_right), (w_right)? 0 : FILE_SHARE_READ, + NULL, (must_exist|truncate|a_mode), FILE_ATTRIBUTE_NORMAL,NULL); + SDL_stack_free(filenameW); + } +#else /* Do not open a dialog box if failure */ - old_error_mode = SetErrorMode(SEM_NOOPENFILEERRORBOX|SEM_FAILCRITICALERRORS); - + old_error_mode = SetErrorMode(SEM_NOOPENFILEERRORBOX|SEM_FAILCRITICALERRORS); + h = CreateFile(filename, (w_right|r_right), (w_right)? 0 : FILE_SHARE_READ, NULL, (must_exist|truncate|a_mode), FILE_ATTRIBUTE_NORMAL,NULL); - + /* restore old behaviour */ SetErrorMode(old_error_mode); +#endif /* _WIN32_WCE */ if (h==INVALID_HANDLE_VALUE) { SDL_SetError("Couldn't open %s",filename); @@ -83,7 +108,8 @@ static int win32_file_open(SDL_RWops *context, const char *filename, const char return 0; /* ok */ } -static int win32_file_seek(SDL_RWops *context, int offset, int whence) { +static int win32_file_seek(SDL_RWops *context, int offset, int whence) +{ DWORD win32whence; int file_pos; @@ -112,7 +138,8 @@ static int win32_file_seek(SDL_RWops *context, int offset, int whence) { SDL_Error(SDL_EFSEEK); return -1; /* error */ } -static int win32_file_read(SDL_RWops *context, void *ptr, int size, int maxnum) { +static int win32_file_read(SDL_RWops *context, void *ptr, int size, int maxnum) +{ int total_bytes; DWORD byte_read,nread; @@ -129,7 +156,8 @@ static int win32_file_read(SDL_RWops *context, void *ptr, int size, int maxnum) nread = byte_read/size; return nread; } -static int win32_file_write(SDL_RWops *context, const void *ptr, int size, int num) { +static int win32_file_write(SDL_RWops *context, const void *ptr, int size, int num) +{ int total_bytes; DWORD byte_written,nwritten; @@ -155,7 +183,8 @@ static int win32_file_write(SDL_RWops *context, const void *ptr, int size, int n nwritten = byte_written/size; return nwritten; } -static int win32_file_close(SDL_RWops *context) { +static int win32_file_close(SDL_RWops *context) +{ if ( context ) { if (context->hidden.win32io.h != INVALID_HANDLE_VALUE) { @@ -249,7 +278,7 @@ static int mem_read(SDL_RWops *context, void *ptr, int size, int maxnum) size_t mem_available; total_bytes = (maxnum * size); - if ( (maxnum <= 0) || (size <= 0) || ((total_bytes / maxnum) != size) ) { + if ( (maxnum <= 0) || (size <= 0) || ((total_bytes / maxnum) != (size_t) size) ) { return 0; } @@ -335,13 +364,15 @@ static char *unix_to_mac(const char *file) SDL_RWops *SDL_RWFromFile(const char *file, const char *mode) { SDL_RWops *rwops = NULL; - +#ifdef HAVE_STDIO_H + FILE *fp = NULL; +#endif if ( !file || !*file || !mode || !*mode ) { SDL_SetError("SDL_RWFromFile(): No file or no mode specified"); return NULL; } -#ifdef __WIN32__ +#if defined(__WIN32__) rwops = SDL_AllocRW(); if (!rwops) return NULL; /* SDL_SetError already setup by SDL_AllocRW() */ @@ -356,7 +387,6 @@ SDL_RWops *SDL_RWFromFile(const char *file, const char *mode) rwops->close = win32_file_close; #elif HAVE_STDIO_H - FILE *fp; #ifdef __MACOS__ { diff --git a/src/main/win32/SDL_win32_main.c b/src/main/win32/SDL_win32_main.c index fa4ef2761..7f6393d16 100644 --- a/src/main/win32/SDL_win32_main.c +++ b/src/main/win32/SDL_win32_main.c @@ -51,27 +51,6 @@ #if defined(_WIN32_WCE) && _WIN32_WCE < 300 /* seems to be undefined in Win CE although in online help */ #define isspace(a) (((CHAR)a == ' ') || ((CHAR)a == '\t')) - -/* seems to be undefined in Win CE although in online help */ -char *SDL_strrchr(char *str, int c) -{ - char *p; - - /* Skip to the end of the string */ - p=str; - while (*p) - p++; - - /* Look for the given character */ - while ( (p >= str) && (*p != (CHAR)c) ) - p--; - - /* Return NULL if character not found */ - if ( p < str ) { - p = NULL; - } - return p; -} #endif /* _WIN32_WCE < 300 */ /* Parse a command line buffer into arguments */ @@ -281,8 +260,13 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) } path[pathlen] = '\0'; +#ifdef _WIN32_WCE + wcsncpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); + wcsncat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); +#else SDL_strlcpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); SDL_strlcat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); +#endif /* Redirect standard input and standard output */ newfp = freopen(stdoutPath, TEXT("w"), stdout); @@ -300,8 +284,13 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) } #endif /* _WIN32_WCE */ +#ifdef _WIN32_WCE + wcsncpy( stderrPath, path, SDL_arraysize(stdoutPath) ); + wcsncat( stderrPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); +#else SDL_strlcpy( stderrPath, path, SDL_arraysize(stderrPath) ); SDL_strlcat( stderrPath, DIR_SEPERATOR STDERR_FILE, SDL_arraysize(stderrPath) ); +#endif newfp = freopen(stderrPath, TEXT("w"), stderr); #ifndef _WIN32_WCE @@ -329,7 +318,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) wcscpy (bufp+wcslen(bufp), TEXT("\" ")); wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp)); nLen = wcslen(bufp)+1; - cmdline = SDL_stack_alloc(wchar_t, nLen); + cmdline = SDL_stack_alloc(char, nLen); if ( cmdline == NULL ) { return OutOfMemory(); } diff --git a/src/stdlib/SDL_malloc.c b/src/stdlib/SDL_malloc.c index 550937c9c..3d973f625 100644 --- a/src/stdlib/SDL_malloc.c +++ b/src/stdlib/SDL_malloc.c @@ -27,17 +27,12 @@ #ifndef HAVE_MALLOC +#define LACKS_SYS_TYPES_H #define LACKS_STDIO_H #define LACKS_STRINGS_H #define LACKS_STRING_H #define LACKS_STDLIB_H #define ABORT -#define memset SDL_memset -#define memcpy SDL_memcpy -#define malloc SDL_malloc -#define calloc SDL_calloc -#define realloc SDL_realloc -#define free SDL_free /* This is a version (aka dlmalloc) of malloc/free/realloc written by @@ -496,6 +491,7 @@ DEFAULT_MMAP_THRESHOLD default: 256K #define LACKS_STRINGS_H #define LACKS_SYS_TYPES_H #define LACKS_ERRNO_H +#define LACKS_FCNTL_H #define MALLOC_FAILURE_ACTION #define MMAP_CLEARS 0 /* WINCE and some others apparently don't clear */ #endif /* WIN32 */ @@ -613,6 +609,13 @@ DEFAULT_MMAP_THRESHOLD default: 256K #define MALLINFO_FIELD_TYPE size_t #endif /* MALLINFO_FIELD_TYPE */ +#define memset SDL_memset +#define memcpy SDL_memcpy +#define malloc SDL_malloc +#define calloc SDL_calloc +#define realloc SDL_realloc +#define free SDL_free + /* mallopt tuning options. SVID/XPG defines four standard parameter numbers for mallopt, normally defined in malloc.h. None of these diff --git a/src/video/gapi/SDL_gapivideo.c b/src/video/gapi/SDL_gapivideo.c index f9d8fed67..d79a7b582 100644 --- a/src/video/gapi/SDL_gapivideo.c +++ b/src/video/gapi/SDL_gapivideo.c @@ -33,15 +33,24 @@ Inspired by http://arisme.free.fr/ports/SDL.php // TODO: windib on SH3 PPC2000 landscape test // TODO: optimize 8bpp landscape mode +// there is some problems in runnings apps from a device landscape mode +// due to WinCE bugs. Some works and some - does not. +// TODO: finish Axim Dell X30 and user landscape mode, device landscape mode +// TODO: finish Axim Dell X30 user portrait, device landscape stylus conversion +// TODO: fix running GAPI apps from landscape mode - +// wince goes to portrait mode, but does not update video memory + + +#include "SDL.h" +#include "SDL_error.h" #include "SDL_video.h" #include "SDL_mouse.h" #include "../SDL_sysvideo.h" #include "../SDL_pixels_c.h" #include "../../events/SDL_events_c.h" - -#include "SDL_syswm_c.h" -#include "SDL_sysmouse_c.h" -#include "SDL_dibevents_c.h" +#include "../wincommon/SDL_syswm_c.h" +#include "../wincommon/SDL_sysmouse_c.h" +#include "../windib/SDL_dibevents_c.h" #include "SDL_gapivideo.h" @@ -55,6 +64,8 @@ Inspired by http://arisme.free.fr/ports/SDL.php // for testing with GapiEmu #define USE_GAPI_EMU 0 +#define EMULATE_AXIM_X30 0 +#define WITHOUT_GAPI 0 #if USE_GAPI_EMU && !REPORT_VIDEO_INFO #pragma message("Warning: Using GapiEmu in release build. I assume you'd like to set USE_GAPI_EMU to zero.") @@ -113,7 +124,25 @@ static struct _RawFrameBufferInfo g_RawFrameBufferInfo = {0}; #define FORMAT_565 1 #define FORMAT_555 2 -#define FORMAT_OTHER 3 +#define FORMAT_OTHER 3 + +/* Dell Axim x30 hangs when we use GAPI from landscape, + so lets avoid using GxOpenDisplay there via GETGXINFO trick + It seems that GAPI subsystem use the same ExtEscape code. +*/ +#define GETGXINFO 0x00020000 + +typedef struct GXDeviceInfo +{ +long Version; //00 (should filled with 100 before calling ExtEscape) +void * pvFrameBuffer; //04 +unsigned long cbStride; //08 +unsigned long cxWidth; //0c +unsigned long cyHeight; //10 +unsigned long cBPP; //14 +unsigned long ffFormat; //18 +char Unused[0x84-7*4]; +} GXDeviceInfo; static int GAPI_Available(void) { @@ -123,6 +152,10 @@ static int GAPI_Available(void) ReleaseDC(NULL, hdc); g_bRawBufferAvailable = result > 0; +#if WITHOUT_GAPI + return g_bRawBufferAvailable; +#endif + #if USE_GAPI_EMU g_hGapiLib = LoadLibrary(_T("GAPI_Emu.dll")); if( !g_hGapiLib ) @@ -332,6 +365,8 @@ static void FillStructs(_THIS, BOOL useVga) this->hidden->needUpdate = 1; this->hidden->hiresFix = 0; this->hidden->useVga = 0; + this->hidden->useGXOpenDisplay = 1; + #ifdef _ARM_ /* check some devices and extract addition info */ SystemParametersInfo( SPI_GETOEMINFO, sizeof( oemstr ), oemstr, 0 ); @@ -344,6 +379,29 @@ static void FillStructs(_THIS, BOOL useVga) this->hidden->gxProperties.cbyPitch = 2; this->hidden->needUpdate = 0; } +#if (EMULATE_AXIM_X30 == 0) + // buggy Dell Axim X30 + if( _tcsncmp(oemstr, L"Dell Axim X30", 13) == 0 ) +#endif + { + GXDeviceInfo gxInfo = {0}; + HDC hdc = GetDC(NULL); + int result; + + gxInfo.Version = 100; + result = ExtEscape(hdc, GETGXINFO, 0, NULL, sizeof(gxInfo), (char *)&gxInfo); + if( result > 0 ) + { + this->hidden->useGXOpenDisplay = 0; + this->hidden->videoMem = gxInfo.pvFrameBuffer; + this->hidden->needUpdate = 0; + this->hidden->gxProperties.cbxPitch = 2; + this->hidden->gxProperties.cbyPitch = 480; + this->hidden->gxProperties.cxWidth = gxInfo.cxWidth; + this->hidden->gxProperties.cyHeight = gxInfo.cyHeight; + this->hidden->gxProperties.ffFormat = gxInfo.ffFormat; + } + } #endif } else { @@ -598,7 +656,7 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, return(NULL); } - /* detect landscape mode */ + /* detect user landscape mode */ if( (width > height) && (GetSystemMetrics(SM_CXSCREEN) < GetSystemMetrics(SM_CYSCREEN))) gapi->userOrientation = SDL_ORIENTATION_RIGHT; @@ -610,7 +668,8 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, gapi->hiresFix = 1; } else if( (width > GetSystemMetrics(SM_CXSCREEN)) || (height > GetSystemMetrics(SM_CYSCREEN))) - gapi->hiresFix = 1; + if( !((width == GetSystemMetrics(SM_CYSCREEN)) && (height == GetSystemMetrics(SM_CXSCREEN)))) // user portrait, device landscape + gapi->hiresFix = 1; switch( gapi->userOrientation ) { @@ -652,7 +711,7 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, if (!SDL_windowid) SetWindowLong(SDL_Window, GWL_STYLE, style); - + /* Allocate bitmap */ if(gapiBuffer) { @@ -672,6 +731,14 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, ShowWindow(SDL_Window, SW_SHOW); SetForegroundWindow(SDL_Window); + /* Open GAPI display */ + if( !gapi->useVga && this->hidden->useGXOpenDisplay ) + if( !gapi->gxFunc.GXOpenDisplay(SDL_Window, GX_FULLSCREEN) ) + { + SDL_SetError("Couldn't initialize GAPI"); + return(NULL); + } + #if REPORT_VIDEO_INFO printf("Video properties:\n"); printf("display bpp: %d\n", gapi->gxProperties.cBPP); @@ -680,24 +747,24 @@ SDL_Surface *GAPI_SetVideoMode(_THIS, SDL_Surface *current, printf("x pitch: %d\n", gapi->gxProperties.cbxPitch); printf("y pitch: %d\n", gapi->gxProperties.cbyPitch); printf("gapi flags: 0x%x\n", gapi->gxProperties.ffFormat); + + if( !gapi->useVga && this->hidden->useGXOpenDisplay && gapi->needUpdate) + { + gapi->videoMem = gapi->gxFunc.GXBeginDraw(); + gapi->gxFunc.GXEndDraw(); + } + printf("video memory: 0x%x\n", gapi->videoMem); printf("need update: %d\n", gapi->needUpdate); printf("hi-res fix: %d\n", gapi->hiresFix); printf("VGA is available on the device: %d\n", g_bRawBufferAvailable); - printf("use VGA resolution: %d\n", gapi->useVga); + printf("use raw framebuffer: %d\n", gapi->useVga); printf("video surface bpp: %d\n", video->format->BitsPerPixel); printf("video surface width: %d\n", video->w); printf("video surface height: %d\n", video->h); #endif - /* Open GAPI display */ - if( !gapi->useVga ) - if( !gapi->gxFunc.GXOpenDisplay(SDL_Window, GX_FULLSCREEN) ) - { - SDL_SetError("Couldn't initialize GAPI"); - return(NULL); - } - + /* Blank screen */ allScreen.x = allScreen.y = 0; allScreen.w = video->w - 1; @@ -790,6 +857,7 @@ static int updateLine16to16(_THIS, PIXEL *srcPointer, PIXEL *destPointer, int wi else { destPointer += gapi->gxProperties.cbyPitch / 2; + while(width--) // iPaq 3660 { *(DWORD*)destPointer =(*line1++ << 16) | *line2++; diff --git a/src/video/gapi/SDL_gapivideo.h b/src/video/gapi/SDL_gapivideo.h index a0de69e5e..ffef78e07 100644 --- a/src/video/gapi/SDL_gapivideo.h +++ b/src/video/gapi/SDL_gapivideo.h @@ -136,6 +136,7 @@ struct SDL_PrivateVideoData { int invert; char hiresFix; // using hires mode without defining hires resource // -------------- + int useGXOpenDisplay; /* use GXOpenDispplay */ int w, h; enum SDL_ScreenOrientation gapiOrientation; diff --git a/src/video/wincommon/SDL_lowvideo.h b/src/video/wincommon/SDL_lowvideo.h index 08e10bd5a..99220b190 100644 --- a/src/video/wincommon/SDL_lowvideo.h +++ b/src/video/wincommon/SDL_lowvideo.h @@ -27,6 +27,16 @@ #define WIN32_LEAN_AND_MEAN #include +#ifndef SetClassLongPtr +#define SetClassLongPtr SetClassLong +#endif +#ifndef GetWindowLongPtr +#define GetWindowLongPtr GetWindowLong +#endif +#ifndef SetWindowLongPtr +#define SetWindowLongPtr SetWindowLong +#endif + #include "../SDL_sysvideo.h" /* Hidden "this" pointer for the video functions */ diff --git a/src/video/wincommon/SDL_sysevents.c b/src/video/wincommon/SDL_sysevents.c index b26e48867..859f211a6 100644 --- a/src/video/wincommon/SDL_sysevents.c +++ b/src/video/wincommon/SDL_sysevents.c @@ -40,10 +40,14 @@ #endif #ifdef _WIN32_WCE -#include "SDL_gapivideo.h" +#include "../gapi/SDL_gapivideo.h" + +#define IsZoomed(HWND) 1 #define NO_GETKEYBOARDSTATE +#if _WIN32_WCE < 420 #define NO_CHANGEDISPLAYSETTINGS #endif +#endif /* The window we use for everything... */ #ifdef _WIN32_WCE @@ -120,6 +124,29 @@ static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, S switch(rotate) { case SDL_ORIENTATION_UP: + { +/* this code needs testing on a real device! + So it will be enabled later */ +/* +#ifdef _WIN32_WCE +#if _WIN32_WCE >= 420 + // test device orientation + // FIXME: do not check every mouse message + DEVMODE settings; + SDL_memset(&settings, 0, sizeof(DEVMODE)); + settings.dmSize = sizeof(DEVMODE); + settings.dmFields = DM_DISPLAYORIENTATION; + ChangeDisplaySettingsEx(NULL, &settings, NULL, CDS_TEST, NULL); + if( settings.dmOrientation == DMDO_90 ) + { + rotatedX = SDL_VideoSurface->h - *x; + rotatedY = *y; + *x = rotatedX; + *y = rotatedY; + } +#endif +#endif */ + } break; case SDL_ORIENTATION_RIGHT: if (!SDL_VideoSurface) @@ -144,17 +171,21 @@ static void GapiTransform(SDL_ScreenOrientation rotate, char hires, Sint16 *x, S static void SDL_RestoreGameMode(void) { -#ifndef NO_CHANGEDISPLAYSETTINGS ShowWindow(SDL_Window, SW_RESTORE); +#ifndef NO_CHANGEDISPLAYSETTINGS +#ifndef _WIN32_WCE ChangeDisplaySettings(&SDL_fullscreen_mode, CDS_FULLSCREEN); #endif +#endif /* NO_CHANGEDISPLAYSETTINGS */ } static void SDL_RestoreDesktopMode(void) { -#ifndef NO_CHANGEDISPLAYSETTINGS ShowWindow(SDL_Window, SW_MINIMIZE); +#ifndef NO_CHANGEDISPLAYSETTINGS +#ifndef _WIN32_WCE ChangeDisplaySettings(NULL, 0); #endif +#endif /* NO_CHANGEDISPLAYSETTINGS */ } #ifdef WM_MOUSELEAVE diff --git a/src/video/wincommon/SDL_syswm.c b/src/video/wincommon/SDL_syswm.c index 2635b0ce5..73b27bc0b 100644 --- a/src/video/wincommon/SDL_syswm.c +++ b/src/video/wincommon/SDL_syswm.c @@ -220,9 +220,6 @@ void WIN_SetWMIcon(_THIS, SDL_Surface *icon, Uint8 *mask) if ( screen_icn == NULL ) { SDL_SetError("Couldn't create Win32 icon handle"); } else { -#ifndef SetClassLongPtr -#define SetClassLongPtr SetClassLong -#endif SetClassLongPtr(SDL_Window, GCL_HICON, (LONG_PTR)screen_icn); } SDL_stack_free(icon_win32); diff --git a/src/video/windib/SDL_dibvideo.c b/src/video/windib/SDL_dibvideo.c index 2b1358b0f..9e78f0111 100644 --- a/src/video/windib/SDL_dibvideo.c +++ b/src/video/windib/SDL_dibvideo.c @@ -24,13 +24,6 @@ #define WIN32_LEAN_AND_MEAN #include -#if defined(_WIN32_WCE) - -// defined and used in SDL_sysevents.c -extern HINSTANCE aygshell; - -#endif - /* Not yet in the mingw32 cross-compile headers */ #ifndef CDS_FULLSCREEN #define CDS_FULLSCREEN 4 @@ -49,8 +42,12 @@ extern HINSTANCE aygshell; #ifdef _WIN32_WCE #define NO_GETDIBITS -#define NO_CHANGEDISPLAYSETTINGS #define NO_GAMMA_SUPPORT + #if _WIN32_WCE < 420 + #define NO_CHANGEDISPLAYSETTINGS + #else + #define ChangeDisplaySettings(lpDevMode, dwFlags) ChangeDisplaySettingsEx(NULL, (lpDevMode), 0, (dwFlags), 0) + #endif #endif #ifndef WS_MAXIMIZE #define WS_MAXIMIZE 0 @@ -65,6 +62,11 @@ extern HINSTANCE aygshell; #define PC_NOCOLLAPSE 0 #endif +#ifdef _WIN32_WCE +// defined and used in SDL_sysevents.c +extern HINSTANCE aygshell; +#endif + /* Initialization/Query functions */ static int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat); static SDL_Rect **DIB_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags); @@ -190,8 +192,6 @@ VideoBootStrap WINDIB_bootstrap = { DIB_Available, DIB_CreateDevice }; -#ifndef NO_CHANGEDISPLAYSETTINGS - static int cmpmodes(const void *va, const void *vb) { SDL_Rect *a = *(SDL_Rect **)va; @@ -248,8 +248,6 @@ static int DIB_AddMode(_THIS, int bpp, int w, int h) return(0); } -#endif /* !NO_CHANGEDISPLAYSETTINGS */ - static HPALETTE DIB_CreatePalette(int bpp) { /* RJR: March 28, 2000 @@ -326,6 +324,13 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) DIB_CheckGamma(this); #ifndef NO_CHANGEDISPLAYSETTINGS + + settings.dmSize = sizeof(DEVMODE); + settings.dmDriverExtra = 0; +#ifdef _WIN32_WCE + settings.dmFields = DM_DISPLAYQUERYORIENTATION; + this->hidden->supportRotation = ChangeDisplaySettingsEx(NULL, &settings, NULL, CDS_TEST, NULL) == DISP_CHANGE_SUCCESSFUL; +#endif /* Query for the desktop resolution */ EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &SDL_desktop_mode); @@ -333,13 +338,30 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) for ( i=0; EnumDisplaySettings(NULL, i, &settings); ++i ) { DIB_AddMode(this, settings.dmBitsPerPel, settings.dmPelsWidth, settings.dmPelsHeight); +#ifdef _WIN32_WCE + if( this->hidden->supportRotation ) + DIB_AddMode(this, settings.dmBitsPerPel, + settings.dmPelsHeight, settings.dmPelsWidth); +#endif } /* Sort the mode lists */ + if( i > 1 ) for ( i=0; i 0 ) { SDL_qsort(SDL_modelist[i], SDL_nummodes[i], sizeof *SDL_modelist[i], cmpmodes); } } +#else + // WinCE and fullscreen mode: + // We use only vformat->BitsPerPixel that allow SDL to + // emulate other bpp (8, 32) and use triple buffer, + // because SDL surface conversion is much faster than the WinCE one. + // Although it should be tested on devices with graphics accelerator. + + DIB_AddMode(this, vformat->BitsPerPixel, + GetDeviceCaps(GetDC(NULL), HORZRES), + GetDeviceCaps(GetDC(NULL), VERTRES)); + #endif /* !NO_CHANGEDISPLAYSETTINGS */ /* Grab an identity palette if we are in a palettized mode */ @@ -352,6 +374,10 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) /* Fill in some window manager capabilities */ this->info.wm_available = 1; +#ifdef _WIN32_WCE + this->hidden->origRotation = -1; +#endif + /* We're done! */ return(0); } @@ -359,15 +385,11 @@ int DIB_VideoInit(_THIS, SDL_PixelFormat *vformat) /* We support any format at any dimension */ SDL_Rect **DIB_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags) { -#ifdef NO_CHANGEDISPLAYSETTINGS - return((SDL_Rect **)-1); -#else if ( (flags & SDL_FULLSCREEN) == SDL_FULLSCREEN ) { return(SDL_modelist[((format->BitsPerPixel+7)/8)-1]); } else { return((SDL_Rect **)-1); } -#endif } @@ -531,6 +553,61 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, SDL_memset(&settings, 0, sizeof(DEVMODE)); settings.dmSize = sizeof(DEVMODE); + +#ifdef _WIN32_WCE + // try to rotate screen to fit requested resolution + if( this->hidden->supportRotation ) + { + DWORD rotation; + + // ask current mode + settings.dmFields = DM_DISPLAYORIENTATION; + ChangeDisplaySettingsEx(NULL, &settings, NULL, CDS_TEST, NULL); + rotation = settings.dmDisplayOrientation; + + if( (width > GetDeviceCaps(GetDC(NULL), HORZRES)) + && (height < GetDeviceCaps(GetDC(NULL), VERTRES))) + { + switch( rotation ) + { + case DMDO_0: + settings.dmDisplayOrientation = DMDO_90; + break; + case DMDO_270: + settings.dmDisplayOrientation = DMDO_180; + break; + } + if( settings.dmDisplayOrientation != rotation ) + { + // go to landscape + this->hidden->origRotation = rotation; + ChangeDisplaySettingsEx(NULL,&settings,NULL,CDS_RESET,NULL); + } + } + if( (width < GetDeviceCaps(GetDC(NULL), HORZRES)) + && (height > GetDeviceCaps(GetDC(NULL), VERTRES))) + { + switch( rotation ) + { + case DMDO_90: + settings.dmDisplayOrientation = DMDO_0; + break; + case DMDO_180: + settings.dmDisplayOrientation = DMDO_270; + break; + } + if( settings.dmDisplayOrientation != rotation ) + { + // go to portrait + this->hidden->origRotation = rotation; + ChangeDisplaySettingsEx(NULL,&settings,NULL,CDS_RESET,NULL); + } + } + + } +#endif + +#ifndef _WIN32_WCE settings.dmBitsPerPel = video->format->BitsPerPixel; settings.dmPelsWidth = width; settings.dmPelsHeight = height; @@ -545,10 +622,14 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, settings.dmFields &= ~DM_DISPLAYFREQUENCY; changed = (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL); } +#else + changed = 1; +#endif if ( changed ) { video->flags |= SDL_FULLSCREEN; SDL_fullscreen_mode = settings; } + } #endif /* !NO_CHANGEDISPLAYSETTINGS */ @@ -669,9 +750,12 @@ SDL_Surface *DIB_SetVideoMode(_THIS, SDL_Surface *current, video->flags |= SDL_HWPALETTE; } } - +#ifndef _WIN32_WCE /* Resize the window */ if ( !SDL_windowid && !IsZoomed(SDL_Window) ) { +#else + if ( !SDL_windowid ) { +#endif HWND top; UINT swp_flags; const char *window = NULL; diff --git a/src/video/windib/SDL_dibvideo.h b/src/video/windib/SDL_dibvideo.h index 99f9b9a6d..b759bec86 100644 --- a/src/video/windib/SDL_dibvideo.h +++ b/src/video/windib/SDL_dibvideo.h @@ -46,8 +46,12 @@ struct SDL_PrivateVideoData { SDL_Rect **SDL_modelist[NUM_MODELISTS]; SDL_ScreenOrientation orientation; - int invert; - char hiresFix; // using hires mode without defining hires resource +#ifdef _WIN32_WCE + int invert; /* do to remove, used by GAPI driver! */ + char hiresFix; /* using hires mode without defining hires resource */ + int supportRotation; /* for Pocket PC devices */ + DWORD origRotation; /* for Pocket PC devices */ +#endif }; /* Old variable names */ #define screen_bmp (this->hidden->screen_bmp) diff --git a/test/testalpha.c b/test/testalpha.c index ff4633474..58f73e42c 100644 --- a/test/testalpha.c +++ b/test/testalpha.c @@ -45,7 +45,7 @@ static void FillBackground(SDL_Surface *screen) { for ( i=0; ih; ++i ) { gradient=((i*255)/screen->h); - color = SDL_MapRGB(screen->format, gradient, gradient, gradient); + color = (Uint16)SDL_MapRGB(screen->format, gradient, gradient, gradient); buffer16=(Uint16*)buffer; for (k=0; kw; k++) { @@ -340,8 +340,14 @@ int main(int argc, char *argv[]) } /* Alpha blending doesn't work well at 8-bit color */ +#ifdef _WIN32_WCE + /* Pocket PC */ + w = 240; + h = 320; +#else w = 640; h = 480; +#endif info = SDL_GetVideoInfo(); if ( info->vfmt->BitsPerPixel > 8 ) { video_bpp = info->vfmt->BitsPerPixel; @@ -386,21 +392,12 @@ int main(int argc, char *argv[]) } } - /* Set 640x480 video mode */ -#ifndef _WIN32_WCE + /* Set video mode */ if ( (screen=SDL_SetVideoMode(w,h,video_bpp,videoflags)) == NULL ) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); - quit(2); - } -#else - /* Pocket PC */ - if ( (screen=SDL_SetVideoMode(240,320,video_bpp,SDL_FULLSCREEN)) == NULL ) { - fprintf(stderr, "Couldn't set 240x320x%d video mode: %s\n", - video_bpp, SDL_GetError()); + fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n", + w, h, video_bpp, SDL_GetError()); quit(2); } -#endif FillBackground(screen); /* Create the light */