From 5849c9cf1fff9ab4f1f88643ea5574fe4cc25e98 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Fri, 9 Jun 2017 18:34:19 +0000 Subject: [PATCH] upload Pixie v2 git-svn-id: svn://kolibrios.org@6920 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/pixie2/Tupfile.lua | 6 + programs/cmm/pixie2/compile_en.bat | 10 + programs/cmm/pixie2/get_files_list.h | 53 ++++ programs/cmm/pixie2/minimp3 | Bin 0 -> 23595 bytes programs/cmm/pixie2/pixie.c | 436 +++++++++++++++++++++++++++ programs/cmm/pixie2/pixie.ini | 4 + programs/cmm/pixie2/settings.h | 61 ++++ programs/cmm/pixie2/skin.png | Bin 0 -> 2938 bytes 8 files changed, 570 insertions(+) create mode 100644 programs/cmm/pixie2/Tupfile.lua create mode 100644 programs/cmm/pixie2/compile_en.bat create mode 100644 programs/cmm/pixie2/get_files_list.h create mode 100644 programs/cmm/pixie2/minimp3 create mode 100644 programs/cmm/pixie2/pixie.c create mode 100644 programs/cmm/pixie2/pixie.ini create mode 100644 programs/cmm/pixie2/settings.h create mode 100644 programs/cmm/pixie2/skin.png diff --git a/programs/cmm/pixie2/Tupfile.lua b/programs/cmm/pixie2/Tupfile.lua new file mode 100644 index 0000000000..30782d51dc --- /dev/null +++ b/programs/cmm/pixie2/Tupfile.lua @@ -0,0 +1,6 @@ +if tup.getconfig("NO_CMM") ~= "" then return end +if tup.getconfig("LANG") == "ru" +then C_LANG = "LANG_RUS" +else C_LANG = "LANG_ENG" -- this includes default case without config +end +tup.rule("pixie.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "pixie.com") diff --git a/programs/cmm/pixie2/compile_en.bat b/programs/cmm/pixie2/compile_en.bat new file mode 100644 index 0000000000..5466fa8d8e --- /dev/null +++ b/programs/cmm/pixie2/compile_en.bat @@ -0,0 +1,10 @@ +@del lang.h-- +@echo #define LANG_ENG 1 >lang.h-- + +@C-- pixie.c +@del pixie +@kpack pixie.com +@rename pixie.com pixie +@del warning.txt +@del lang.h-- +@pause \ No newline at end of file diff --git a/programs/cmm/pixie2/get_files_list.h b/programs/cmm/pixie2/get_files_list.h new file mode 100644 index 0000000000..19a774c814 --- /dev/null +++ b/programs/cmm/pixie2/get_files_list.h @@ -0,0 +1,53 @@ +int files_mas[2000]; +dword buf; + + +void OpenDirectory(dword folder_path) +{ + int cur; + char temp_filename[4096]; + dword j, filesnum, end_pointer; + + list.count = 0; + if (buf) free(buf); + if (GetDir(#buf, #filesnum, folder_path, DIRS_ONLYREAL)==0) + if (filesnum==0) + { + notify("'Error opening folder' -E"); + } + + for (j=0; j= b) return; + for (j = a; j <= b; j++) + if (strcmp(files_mas[j]*304 + buf+72, files_mas[b]*304 + buf+72)<=0) { files_mas[i] >< files_mas[j]; i++;} + SortByName(a, i-2); + SortByName(i, b); +} + +void SetOpenedFileFirst(dword in_name) +{ + int i; + dword opened_filename = in_name + strrchr(in_name, '/'); + for (i=0; iXwP(w?s!~g(+00001Mv*2LLXK;4&&M|P)WqDOrbNA^=l06LX-oe*;dvnE zf){od+-L|eM!iV7bq>`6#WJqlzU(scO{Ph4>ieUw5m~WQy7I#aSz11n>g?V>T_2>Y zbz+&gMr6l9!KnfVqd{ZXk!_q&!4Avguc35)1>>dL+GdiT5O1Ym1b8=Ci9kP7=;|E% zmZb)^Z%67Pq80I@knh%gHdJVe93nB)oWs zRMAkXSvTXS1lZzY&ff*?v?kXLN}8FVJqJ^RVJ--63*jY-<)Yc`HcC(=2TCZSB~w#> zhnRZP(k??quY(fs{rd~MbM1NSUwvZO*VO)5nWSMeN@I}QGfZ&wJdR0NGytd&eo=hR zy7cri=s9UN_%?DDOZ-k|V1*kGTpiFhenJhiTgx%_D$cI$#|wHU@KtpE3_qRHG%s4U z*_?!$vKfgNV{3v5X;CGj!6PKUd)Fm8YgriUg7NL$8b069y!><|kg)&z`@SH9g zHI*Icc5Gg`5sv^d=MgP9hUpf@69j*K53|CRQ%q;kq$^}!dfdLu^NvX>l=bmR1?2iA zOuy`W@ZOc^X8bZr_84?vMN`!Q|A5A92-%m7MuthWC>6>kPVNt*pf1-%jBDj~EY^D;&J~)V}}%Xzcw;%6qct zx_-CMOJ_)Uh336CP55l1jNPxcG)8%TXn)suDB>*uxK9z__8V_|=g@HDt7p@o9$Py^ zzrgc{ffVt^Q9?5~Oxg251v_zr7*(g{bz(_c1T)ZQA5(au{gAlSjM%qkbo%L?Ayro# z#o}zf##B6(lDPV+4i(K)cIi0RpBS$|N*TB5j$Rh2d<*_=EICkSY;pz+x>ss3;cl|c zu700Y%*sI9^Ge#G{L1*&OVz4p8>{GujX+>D46sS)%?z~B{GNqOri7w%z9o-NyFJ1V zG!qv&-05=Wy{k-Z(uPDx8;E+uymq+nk!zRjSg7kZnvZNYx&mA@ryB5g~ zj=WhZIin1>hO-{X>x+87zTV~cm5zEJJqSpPpNBb?Uzu1M)sy~CD;&ToF7OSCjE~!9 zp}-(YDe9`ynp?c~%ED`vcq%$r1fanN9y{_$!F{`rFU1xwoHkKrC>5h(;$y-P44_sU zjVJZ>5hC;dTDRDkToyKB-BKf)a32KdQVL6}tTN-ZP77~gT>+o8gPc8Pb?o=afmE$> zJFB+6NXS99df-N?Ecn>cl-sxbdoTpWMkQk9HLeO{sv7HP2Qxy^mzK?8YE zC6#3$Ui(W?pl@9PlbcY$;@Pw{@$LYJywRJ5kaG^wZY7D=kMvnoFWs0aHAqCiRo3m3 zM7;9|PVKgu&T837#2Mkv6vLGS!zTalC+V}rehbG&G>_q35gMU(K?iGJ(d1X9Y6U#yQ=KW+fO5Y4rK~|kB-tXP zwW*G(v`_jgeX*5+e2g+Z)*+~-(UG@SWSBz_*Dnj`wNY86WqnSGh<)bRaAF)IRns-{ z6T_z+->62K^&e=v-#6-h+RMN@DjIDZdy#J~YZkP-lktzDwkqaZKG~>*}UuX?|;~P!t;z1DiFJqTZ#}ATt6!2?mul? zk{={6Y?~bO9X9X5u0o_g7WmKTwY4SWL#wh13Hu!W=r~@R!oV^8n37eGU95O!MBoup z+(Do3)#M#>3c&4{B?3w%5Y9nYMUnVId`8!`T2Elcj#R`+ufU#b8aE#Y2!lF$1IEG` z;pMR-cJP%(N4pVEuhYRm!!Eq;DP-TR(4}YFYgNH|zdBOz(W860wJh^b{=0OSY9uM= zmW8=+=a_i*8T^A$xxUP=>UX#Hq*pjW^{UDNfpyYiZA|9RX1%y9jjv!VBv(`ydt# zq{j$bs6a-atuK9MtpFf^9&KrEBzWwfZa>@u^m$GyL$1ySONnr6yyW-308>if<&g`# znXsTjAA~mmPg?Lz1%S0l7^`??^zbD7ME3fN;DrVa3_YN(;L>n%n@^>Uzs><@>==ls z+|Z?bJ?wMA1q{JlyuG+I9T-`Ww^HG7VG-jcU}K1kZGhD;)%FeUu;~GdR(5RM;?#rO z_q0O}6QSAOH9eGZNGOUWa)6a@AWbM4$H6HvXt%=?k)6`qzOf~_oi}a{{**x@mfBA)b+uaeN#M zC?)$mcBBe@`t#~vh(gR-(mpC^TpkA8--R&=73pkr2u?Ztg~?PI{EL(oSE6lI#!Xx@ z^T6-tfD7kW&(cr-sRJmCYW24RRK#4$xlIHYQ5uYQBL@`xwyw3w@S5RT> zDIiK;f{|H-D1y$_JY1#y;{woZa753?BlH2y+XZ6iB}+JK6AejGzB3_`c)PXw4S4&9 z!YZ4YFOG+g9a%l?Zr2F)T&suR`>vE3i1-uu1=txqx8s{QzKva$UFDq0Jrff(h^)X$&zBY~)1cXd^BCk&|CpaOxA)PBrDTBP@FvGa zzKMnv5)GA#dPi{qPBX5|pQeSIA+}IjRONW;DA{%RK**0EzwLwFzy~Bb+-_YNF6@Vf z6bWD$SDbUKq%oCL)Hp-=NnC(c=@C$|{_E(b*pq0~$jAlqHD229wu;GWBA%LJu6AP%dH??bG5VVC{ zm;6YCblZ_(9*7wi;Db^G%g?rlE{b_&;3zZ^MX2%_oUrsGz|3Zbum#LwLsU0~yAkk% z(_i13Q=^(c2($cZyyb4x^lm4owZdS6z(61#3eNStnxOx8PP^OZdPiiPf= z09I--(bi=@FmBl#m36IUwb$BRpGjl(h&9HJUY6-4d>DAWJi?N3Op~q(h0jXvcGP}t z&QsCB;&3@?1q&Q};@bRto{-=Hbst2Ajp?To zK|%uVnWm;6r-4&RxIQ=TPqL&}Lwg&BVI(vUd}8Fnzy~lq8%x!eng4hUeP!|IoLOP@ zb`OJpc(t4tzw-S_E&XSV=Pf-M9Om7Gv-_B=$b5~e5R#7>8C=5aClMB zsM77g_%F^Np0fvj?bI;#m6ps0o)GP%mO zR~&C7nvAIHlFM-8LE-p&?ucS%o4MvfgFfnghi@h_>(7Bt8fiy&*zD+=5+LLZ$eN(Z z>gWOvR{S)F$-x|6$@FB4zo%-dcfUfX>wzo{k|uO>@sL*Q4Od1&pzKG|^m^bXcQp|c zo={xXvaxYNYXcrS8*cyj!6qk6#TTKA_LJMDD+(9=^uYdvIu`1sB3DCmezzR)0~9d5 z;D1paxRbzmV7ot~$3tw0PTxRS=5p2pZrt-^OUvVhvF4EU^YJ334+yMu)TP`|jjivm zs0f!Z#6dzF2IYxLY9rM@x?gdyc>AvMfF#;i77eJ!z$u=P2433YO*9roziWK1S4RKm#In~y+R_PlE2_anw+>AgF__S=o5{WgUg>P zuWdsHMbr7qK4}Z77Yzi85YzfhQ`Bur5ybj+&VUXznMk)E)vQvL6)al}7bW|5RTLD$;b$$MoIyGpsPotdE(& z{T#5$oQEWk#}+53NV^rsQW{<)Hw;LGDMBpEYwvJc%R;)^OP#9IHByq?SL#*-T;(yY zf9AZfZvjm076$2!$tpPx-zkB66NIA`8jcMS^pKly6ymOg9zjngr`TU);-QIEGVRX* zJ-ztAj_6!Ff_B{(Z%Z8_MwCNj;u)zTP_(SG+A%h(NYoUD;8j@ksBNdxERq1~Gx3^Y6Phs`fCy*)y{gS?3;b%r% z8^KuF{kD6&H{?U}cP=ee@Lq-G1dUq|cN@m(T1`hx4iBUn!(>}{X;#XJs$I3G0g7D2 zaVtn=Zl&JYW^>tqa+c=X@QZ208(t8MQ$gGUV7ajDr>?bAg4$-6z#O^H>vwo1PQ&K6 zdt)O$j36XxI(o9qi(B{LY#R)ZdZhpZ2Ans7ey8Dh5U7BxmS{*Qt8 z757K-z(rcRR`cXDlYv{}KK{^naVF(4L%GM2twG~HMJl!q=h(n!DzW*3WLKYVWA#%z zCncoPE)ubOzr*;*BzrQEL3-B>ZZb|+H6kND?zn9h8?bc!7%vEW=(ZLdgzteR@|?3` z;VXqHll%OY+{PvjNg$E@Qcgp zaIcpf7J`)oVc>~VASGQwrnjnJ0&c=988b32nuK0B{)hqW6y_IH{_|N&nzPBzp$eV~ zxLroh-eihNQs0iRbS`mkFb*0{z6X@x7*nz{*q1t`Ud$yk=P%FI(l58&oOv}Y!QALX zR$n4CQfCzQp_p^kj%Klt2`)f1MdwgK=Q?fxT>ITe2H5<}j|T!H;Q$m$b%7;RKOML29~P5ufTshuF5i{h{!)BazQs?R+(!s%O*+K=)Tm znjH&|@86y!;AvwhU5)L12BCI3-VyTxSr36`jAU;%!~uc;7XonVKY6vKT)ovzZPvX* zbFdHM5G98&8uv7wrHriVe21tH`;kN8ZQ+UK}ROGadW=7{wTw}d&$33 zyRx7qBg0AJJ>lz#rl|&;b&nkUH*Dh1FG#SG>CdGhOW8+cL=>L4M-~_pDDF%#Dbh{{ z0RQe^X$s@MQhpf6-w3cbLuQC9kP|B3s!zYR@@H<=p zryPK)G)1)|*)xFZg{>+(`^iMVht2q)PMbeqw3aCHsJ!WqbPF$scs;uEmrawMZ1=-? zWHY$iQ9N%hH*A03tN#l_^VnM7tbl0YKBP&Q<=5M>nXzt;ajtmESr0+axlRAlEGqpz z=XBdZ9rv`DMn)m>by3lr{cNprHDZOr7DPvwS(=vV7$8G)8P_i(?Rht8a2D4$d1vP& zo?83=I{Gq}em1@zTqH@35xeksv`5`FH4_Q`*>O-#>}o_S_S+sI2_9^+!pBNRBArM5 zQ5f_6+jx@Q;hA(~dFV@{y6;I#{?@alPixw&=6=C1Gklt`p9LPPllE(K2A8Sf3j^rK z-D?{oq!3?a!wrcwt`xs=LAB=u;SLD>S6q;u?I^ZV;bW|{03v#^ytnW8ve zHJgc(tvl)9iGx@z&$JmLKrxcXY)s#d_GYKXF?ZEEi`gj;9Ue4iXj#$!YKz3*XBZTR zL@0ezK-|~KFHtID4M$xX`V4!%5a)(9RQ@&YqU@pPDUjTOl9649I;U$NjIP&-1Tlf(*3tOO0vLrHpBu;021BG_L?#M86 zcs|;%63|L|_~}s$bqow*m+bB)gC0k;a&tBZKUZdU!n}{mlyJ7P{^1JZfQ>pVb>&_B`4q{J&HiN zWdyY*xUr9tVik>lB5hW`DRd@i-aQA~`i8u0l$3(mfXt(QnkYJ!zY;ibhdisriEE5F zi2tup#4DaL|1OPe{MaDOU=~L|{8zlG4$eXKNB>E7Vl7E?&onn*s=Y9@;H4Nby)rEQ z(pChUOIIM*&@N7+ZDnv-tNVSsK4ku=f2#v7T85g2kGy=f&J31Yea|0DgQAv%wYPHG zI6drAo|Fi~6bnlH%2Zq_tsJT&rjrmz0tq3i2?`~RNhJep;s^__HHnSIJya^_T)@_Y zybdNOwoXSfR(CPc>MSV#b4N@quskeAA-=WG(iMHVj^4qiWVByYV!|gfq7}IEcy^bE z0>+A>;T^;VHq0Wm_z=)Kkw{Ez>hi= z`j+~80ElcMJ2WcM4C|d2+g;zYllUtNv0<_1pN_g_##vGbN{^v;Gm|u_ckGDs8*Vw( zaFke*qFN{fkpf#=Iw!}w5turZcv|uZ!%ZgxXW41IqS44Psvs;F}5x;(dtCX06C>}d8PqudTKT#~|M zp7Mg(q)*&fvPcyKGEbwC`N~F0j6UftcqDBhp2=I#C51HG6JS)6x=CHm!kAr{q)B$3w69CEHO-w%3uoxS}ePWIgL*i|>GYT*P1)WSBBG7mti+j`*X=#4;e4*7K%ktfKjy(+N}7fW!c zVm%wzkwJ>g+l4E_j~(Pa?+R_MJ_K;bV}SPsJXhNSSEtXk+04|RU!p4H}IOO^ts zSM$y`>GzG--3IZ=k2G(@TB8xeGqwI?Zg(TZyFQ7d2E`IqxU<04{`^5`V0K0A2th6b zo6;E!d$Ey1rOr)t;Z5%u%=~tMuXN5s@I_rWoW{~i3Q^&}y*Mh`7Vi@nYK`^KkDN{h zBCr!5sfz%xo)yCOPVVBHhj6`-UPH(9!1!iE^#{@OZjur5c?_Gbz&ll0g*5Mu+6+c1WF$jS zV3ZiUpXQY=>4dPR{|+aH-uM4oT_-Abp7VuH@~|URnC@pQ;JUIDG{4>Br_MKWhk;N_ z?VM>Cr=Ro(iXnhQAljnj+knd~V)sKdSL*n^mxQ^oBG3O07u@@gG6-FP>Iw65sMS^Y zJ8M>wD+>4%b-FS+zsr5B}3@>LR;J0DIu?(>uwuG)-c!bUpAMXXt zf3vq>56bR(&b>Z`a{L!rYhzWd3=XS;kUdG&MPm+uqTc&FO{?5{w+}YvMLEUfFph|%pl*+pOeu5`K({(jz(sK-pUSH$;_U{>p-$G_V?LQF_@Z0avd79Y z^B<1er(Rar$wQ;h3a%T^mj}bxPTAP-e>|1C-}%v$-Pqz8=WmA?+2&GO46q zp(L}vD}0kEd>MYt~N24zzozn;(n+;Y4HIY~0;tH*g2nhNDv=LIX1by1j zDYo@X%nVQgHzi48io~aGA!h#!35xngw7iApkm;jy>*M4orJ_l{bH|$R^r68kL}(DS zxY}+{Xg4ivA|ge+)ncd%rHQs5v>B@2vJ-|)jQ0ml2F%T3ou_SpCLxM@21)IxNZdTl zNf77Moq|P>A^txl(K6oK5vk8n2cCeWdzm$n#`-+p`n693xhZN3sfNesUTj;(Jz^gq+!eLRvRx6mD_3^f#I0nX=S9I=`2r@00Ciud)$4afO^oflg zFU}_zTIB$-2zqLf<{1L5>=?BPTbt2#?<~HpKi!@6TBJ6AG_KW0$a(io`jBHy{q5&3 zV*6POb#q`mmhsA0`;!g7C!CnCl&AKl{P0hZVdw3*WK&pF7RJIfSt^7u{mxb6pTxwo(T!1GRtbb%?%WkNnhdqqN}64@ z4g}YF`}4f6CUfY|o+}+rivbE68PuNA8UI{6hLNM&h9!yW=#abNda)7(C&C=3FI3k5=x#D%9eqZ_`ei^OjaB#RnC(5O~7fM?j0oW36sqC(j!=0 zWzSNJz%haBSzej}Kh%Xdh<0}XtaEsus*i0JnM+ocVo}$tM?qwp9bX8p4@PS8cluBN zoJ!=78+KL%2@fE>Yxa0+76Nq21Oot;Kw9MC>Qy@op(xnyr5~*4D0kuzy>t{HAuqNg@jUB-iH~3X6>fw0Ru@L9XPQ;O>rEx`I@EI>OHyk5+23Ni>womuz_{?L$Zy*k#=D;--~|rx@vcySYCf%!Z)KSjlzP-qB1kkF2(or} zUxx}o-sagg6!-CQCuf$Z6f2Zgta?XqHB{>P-)i57_X&f$%5kjmKIC4PMPWx8Y+v!8 zVcd;hY7U1)%Ap=~G1&c&OXpili(jwQSr+Ci^p*_;OiYessm@}U3Exh-9}dFWLjS2zT&{cHpmXC^dbu^G?-#^+BqLTJ+ey=Cq;5v6Gl3pb>^Ya_mY zo9#HplLdJh!B4A0BB^Uu$reQNxRP?HR^~Q87Y6Wao+`m@3%zORxxnsfLVp*ho!Q^H zEzuTkHIcNF%S{FwVs92h_MfEGLv|5fDdp5+7Gq><9vJl)Dq=HWBorT)EJbdt6tFG2c; zJpzFIa}{$>IsHSfk6wY1x+MSazuhN1TrY9Q>9I|Xfg94XENcA-D2-xaHwgP5$5gE` z?+{GO#q0K~H&Ai@_?Ad;uKIm8x^J^G;8re@B=O5Q6veU~ZLTescoH57p4x!e2FdNl zBA6Txy8}JDjuMH)hWq-)rHt@OH9RaQKN?is6htn5dZQ_jwmuEfc7PoHRPmcLIBGDsJ|W`d;+(>@JW`jh}2+rb;|k4Y4n2 zK5D+enEME}vX1?d4QV`R10QDJzGmlRu)*up@b7+lfVy6D$G#jy2n3ZWz~vfdY!fQt z0ly_f7&Tp*MJ$9$C=ROTawMHLg#I*neLVTJZ72oKp9gwcU7EV>`_O9hOz^;)Og}6W zJn{(Uw9x&D@HK$J=rLgTJ@SsGm}<;RiD6)aPdXPK^&V=r;^A!+#=5>cW(L#rY^2Rb z$kBv@7UPwseVf$@n#A#CBkd$))v`#&*B<5_`wr#Ay+p_=dyh$GY zAQjr(JofHL5(&F#Q38ibX@J7vP=9rSN?-*iqPvsvI0D8HiPXE9{eq67b`(~> z_UP~Ffw1I{s~sk1-8{W`+XNX$FGxY)pmW8w8a~kWNqL%aLRE9NcsV`_#$OZJ!CH>u zT$^^NMe4Ry1?3Bdy!xpcWXZiySH~kxo}=(Y7w zl*7Qp6RXrfX(v|WXwXuaZVK_`TUck{U&e>?)-qk6wJKnR1_D%0f7M|nWbLA%j|eSy z(dpkM(bIUmBosLPyzW(Vhh8}b@Z+8OA_zR#iajwyaict4Quy6Qfe9bkVYKfROu#pS zluJ^g$Yhx%#pPz|WL%C%EC|rwqn`3tZI-q-+ZRN{7&6Pzpz%PMX#|Q5P>-$BOGrHc zTQdyn*aBP{Xk%u8krPe|hP=OCN47{mf2h zKJ1<@H;i;&bul)F%Vo|sP`gYorRjQ&l9m1OUNU;?6W@LP$hm-#Z zPxAbp{{#wgtZ*!zEZ(CDQb!rr5YjngLg^B)xkYHe1eQ!YSs#AsoABY@l>ckC{3%z1 z{Do~+h03M<_v4?xfd zY!`Ox*3(&MzAr=7w+wjKV|cWhR6J*&DjvQECFD>46*=S;{+6MYd-__JzVQE8bkpD} z{~9b5twlOPBesbE09;3Sf|;D{I)G^;2g-Dmgi4Ml9ik%Tw4`|tAH1DVT_I~;_zXtk z{my%*cC%Hu-p!}g_u)f-8HJIGsyIW@!Ps~vSTEODN{5FYoy^rax*Cwh^pKokvMj)h;`URVKb^jQPrIqHbS~)UiOz(0;w*O3I_dxKQvzEm z9Opgz?EAIhp)zOv^-{MAY;AkbX#O}TVRqIWmcjj#}d;w`JtFS}fx z<}=Z~(APS1jjs+)U;ACOW`*6qE4a*RU-e`M)$f?48K}8%}{_#APRCsN>ii zLqQIa^-HZ+y>Th6iG5X)h!&#R*X+@w4IW1|B(lfQskwC<6mks#)YS@|;e^V+bvA+Z z`tLw0mV-kma1+v=(XDWsu8^RQtzkR=D#Fh?%ZmISzhaM03KNSAGM<3;Wk*Rq8Nud9 z-5Zkdbx;*6wON4sL@c1gS|oc$^GRe;uya!Ck|QVdKQ~5$COSpj4qj2oxqx18cJhGT zKD8UXx4qNOQbhhQXCU}m(@IKfNW~W)X z-5zuyA<#ChGhT|HN62IpURCS#?{tb3y+`pK@G|GMeJPag(&MJ6tHj4RaBTJ*RQGD zvG;#pGC{bu@SbRv$pq4-ECNrO-|%p0 z2w+dUzmtd3AhIHDQe)>bZ)A0}8#7J&W3_Qvjy4t9)omjvKH|<9Cl@5A{g?5?sM`|z zjK$xpnH@P|#ICZzhh4_QQgEvtizkP(ZKo{SnY3z5V$?P54fHk`;x`1DW^^+llF8z& z(hAwW-e9YY&8Z6C8RyQ~1i%J6_i1!HcQzCzSter4pj*3|{m!xUU}dn{)}usCGQY8; zhJTbxlSJv?iRkcag|mH>Ib?Iawf%Tl|9!{^m@bg!V{s%}8HmD(e-|1b76#SQVQX!; znFb^#=CyEfhP82Qmx{asR%2TfF6ev@p3$U*l5Y+V6(6Q4-8LYsh0IPSb;dt8$69e& z9}i5OruYQzqmh&qI@YpM&~krASyh0)cFMUx8aWkB3t8R6gn8Q|{Y4#`AH9e-0CudB zH|E#Im!@7mi}vmH^YEMB?f~OmCjEaxr-;k*5IgX^@^m0{9(~Ww0f`7>JE2BiKO}LY zPTo!JQODp~PxE;jxzcdE08$DVk|CE>cO%C&FV{!RBcBeO8ie**J_J-eq^-qj6##x? zt$hoL;-WoFaoq(~caavL?cCsmQ(Ov_J2akyMo0G5`>ywp?sKHG#d8Xg+yiu*j=;^k z2a!5CMJ-xoZf1RhS#{o=!*m1qieVQ;N_8#T)jK80vXy`#R2uUN(`c4lbD3F^>#OI8 z5`)H=FR5-gEkxj8D~O?fjGA89T##ms2KVRC=TFW=Sk4qL;VLdILsTAf0wz7}Ky*%0 z3vhQL5*Tn5*wPf>s7M`)vKWqGj|GMD_0Syo0LosQded=GThm zGs8=}vnykK(5;bR-!fT5J}*B8pXB_*he@RVNW_4Z2iKNSt;5<*@?9$zv(C)L9$jR; zRi=d@hCXcDI$mZsHQm_lwhX*O$$suc-d>{#fvnX6@Iu!lD2-Fbx1PT1vy_BF*wc9a zQk&f2P$~DY7cEm?#P^cHG2Gr^_8eF0zrI7}?(B$wic~gIwY`p#viSMe=R}w-B9d`!A*q6*1@?6aqKuuI< z*lE;9MQt;7@NGJv^+ycQ9+oLJr2eiTkyHCPspeO2GY%h@;YashA}GUXtVN}pnl(HK zY6!CURzKEW(vd0HzKiJT)O&dVgAsMaBY!Go$bd7)sB2%ZcRu^Nx&=6{X6bJ|U#;{= zmClMswk(@%Y{=?m$j|mxAk}zjE(DsZZyUio2qfnW&5s|nsQIEFcw%M+VNq3%I~DQn zgO8m^pDEs!3_9*}cTXckirvQFf@95329atR_V3=C?%)Bs+HF~0oQxDo~ibsxKk5cEJUp7Ti;cCEjvh^#s^*}8BW zUEFMqk8v&z0rK@W_BE_Qd-=Nt+l>66hB`bk;w3h$2G4d0tdoX(s*i*0D9T4{?3 z;inRTLjns0Kqtp!LlPfqRzG^);dBwX;}Zx8e#An6cACuJfcr#;9ehccYoDcLbW<@v zr^nW_(K!>GnBR)jsn-lPBISY9L9+aOm04(_N^bbymQvhkTeFL~^78|0>PQOS4%T&Z zyYPN-8as6Q;ekt$p{W1MJf6Ody^pHEc0 zW8CojLz7<(TOsnY0VHvP*AB|lY@=@t5P03jhoxrj%FpiZ&d@#WPP5>gEZ$oxPZ)ETG#X9U$UXG132XhyN%{uD8r{`~vEqQXmM z#eYT(nqO_)Ob+ERmD9=DA1c`k_(+Ee=qB^Bhb2I@L*p0H?%_)2Vm=#Nod((0?UQO>&4=1Rauf+XcuAamIYn13tr9(p`@E`JD%SbsIpflL;IIb6ii?M z^@cjNSFHNiqDkq49_)9fx#>Mro#MM`9uSE_nR5Auo&vrH+<$K+(_L_ z@5Rg-T8PLPO;tmGzf`TUgIAJIO>8Ltf2je$$!$#&QU8W)h8>5a!=FOX;!nRV0gl6- z&F&3s>aOWu@YnGO!O)H)-QJw4pKx|{B&8J1DeeIKH1~jUkRW0;U9Ds@%G)8hoM^MX z8?~x#+fbbqK~)z}l=U~L4+R$=pR6(-|6Y+mI`3t>5>HZU2r+v+|T75(l4_DuZSN$O%+yp*3nacYbr-b=+1#2qLwHMeY^dS=Gg{ z&m`ZmE?z|`aSu#Usk=o!Gq8lT9~;Sm_jZN~O~Ze3 z(b#7FAJKD1kN91GnSI*BaYE`46q*`F4k1C(m1(C3e4Vswq8HpI-A-b&We!9Lnp@O0 z@Qij|`=8MXYy?<0*4$*Bx$x_z`Pd08EvmU7G zgHfL|fSl(vd^+KOeclC92SOLqX401E3pn!e9Cc|hAecU7-0X-F`#I?Rg_*etS7UoB zkPV*;i%i(UJr1?UH*T-3pc;Q8gcbpJ2SQY{=p>SHYF)UNZiTMnivjE8#&xQ3)STTci<^-@nB zHEC0|`;ZKp%d<{wyH{owmXgWk<xoV8r;Po2DpIsWH6i$sVE8N|Lb2pf_8g%Jmg%m<|Hg_kjZQwkAI*tTJ zSo%i4B4_VbiH8RRDJ?tllJLc6TFFy7Z0!)-Jg63Z$S@XwNK)j>Nf5*%s-uu`5?UK){^uyLasYz zW+t+G3h|x zg&}XvlumlJO3D21PmQY7yHJ3}sqA!m#<4F-xjZg8zr4h6#%oI1kL`AD zS$#oK4W%SkI*LAZRW(K7qT;9jwdA$NzgvTrxoMvdoC}USVTjLI{r|F|d8v#;5`+kM zeP43RNmVU>toFCCu&EjL=;CRNL4(7g^; zGK`3kqau-icxnD}N^9Cvf~lN#-5N_e`n3lg(Fr zDZQf~$;p{-lC8&wxJGAAR+HLtG~bA>w~I=8o!@YbH=k58FMHpM+zM+`OlGI~(bz$Y z(~755=Y9z_=nhPA2wM8~4k*MWo>ef9RtA?xtJBxBH1KtNqHqKmQB>3? zn8v8AFEU#u;KxMU=;ogq$)3QV>v-pp3dHo?!yW*Cg@tFx5ju_72=Sg)Aisjwi_urq zi@)o#a-R4)Y#<#Za{S`+mxxa~*(+@o9CP;=e7JmlE#(nX$yJKqP{-A<WUw2u!jx|c`H+*T8tz2R1=B~`xdh2Qxj*my&^&`+JoTyxRzH78 z6hJ^*KOQ$ozOO3sajo}xjG(R(%`sg!K+>UF6zWEvVaCN2g^zx)dI38+b7A@ZeJZY?jwV;st^mh)Kc`CwKB-T~b32ydE+B)7i5*g}}S$ zAEw#wR$b~9Jk+z7L0U(!mnr}WDeq}8`LIRei^vzkpSIA-Nr~GTf^oxPMJumY^-)_X z1|M^K#IZ^c-zyD{IwfCE-AFbDAX}XL9VrLwFP_uEsBSoWVC)OZDjXq8(L^n|UHFdL znRk<7%I>Bxs$h)SFbCG9{ZvC&GXWsxvqibY$hzRLYo=-pkoa5|gBDj{D0WkAx!~4K zJ~sFvrWT{h*Drb$)ZHo6A7)r__0Ql-d^0r*`CzQ9B3fZYM?9~E)muhl(=R!eKT4I& zz7pu}Jx6kQgS5xO$KF+ouhvJx?Wfv>*!LR+@cCtUS=@Rijc(N;EcNjM>ofLL#U;7+ zO@pwak&2Pg`;YC909DW#C_-RQ+3%^X7*Ag_i7Ve15RqzUw48M_TY|X)KM(1ky)rH6 z;9;DuJ|P>&HvMddvv4{HvEbWba5Io_F8P;C6>j*pIkzqoB3;m|dfNK~RkV*^LS`Ur zZa2l5)Kb=ej1(7%FaRhpk=h^m_X4z|GAT#De^CZ)lIhJrKI^Yirr8%-PKlob@3B0h z(?@%frrvAIoTM2@3Huj~^nOX5euv4r=n6mO0U8|T<0pK1?kBm5EqxKQ*l1~ss3HUa zxrZ=+FQR>UZDU5}w*J)m?Xdj*&=H_O+rPhRYn8UMoDg&d2eu9tur=*v)>sON#zgUw zy^hvZ=aeqxVK7oJ61L?&5GJsHLEo$i-T`#(GAsQTQAK|* zNeSbJG3j8IF`Ma17i~$OuDS7~(?oPy;6$J1sJFo4Kh3(lT z0}%H%VpByDVpxY`e6T$oTdP8~4mMNQK*+{9<aw;SbgoN>V(OY=J;Q6-vhn*&Y~?C?iR?P z3Taa8zdSZwozr@?KFMVK|Ec3m0S~GNxz-kQ;gzI!CkfX0EuMfm{Oh6z6o#a~{w8+Ijh)ZL>m+BGl69!f*a#zMUUHguOUxe$+^Pl@V?K)SB zwBd!G$VOEUDnpxa)&DuOU1!Q74^gpr>7@-H`jGAku1!EpOlTEc;Ey_Tw(cG<+XeM0V`fF@2(Bq=+kooW>&owwV(ynK$lq?Wen%)+c%p?U- zXaDMW1}tW@3l61{+N?<&i1H8;_;zJaO96lr%T)J2JUcX7>uDK{Fzl1mNBGu=Qkq1z zz1;-C@wcLZ=?NAx?E3~%E%FY8^GzT@;ad4!R$dr-Lh9aH#hdb4>z){x$C^7hCZ?BL zUDPW1Jh)%)v9RL0YcQ#~jn!8DLDZ%=xi7<$m|d49dj=>H@ECxBmigTB2)d^L{7K8C z9kRD1(Uf}Lz_Ocsux_@vgBnvo{OB=@)*nk}H|VP?b@U<9()gJbh%o^Z)S3NJ$jr{M z-?`R`bo_*CduKm^j)Z#b^mmoWQQD)(m`{;iq2z)TpXMOWV`Z2|a_t`sXakPA_mVG*?R*Q$!awhEoAV$p15K}KQbd~RSd*+r{lHG^07c34gt>wmmn)yHH4Iv8AthpQc3^`1s`)R^Izpn%XN%OeVsS;(RDDEl9Y9H zqPT~Sgu6?<0p$(E8jqqDtx?1LU!hN&k6MYr!a zdfS-nFqo$J3qHj&;?=dJntYaqr_6%_Jh9xPS z4S?;WJqhD_hsed0L8xgfG3AEHakNAEHM+7`Hs`Z+sqPuD&Ow+S$>yqH3I^G&6|6c# zsyXyELT0V&^EP(9>)$JLje9^4u9QX})r%{Rpv>WFP0KrhAqD{rgL!T<<}~sO)S;dG8P=+rv@CT6_8(rV#KPhjxl|*9u#|# z>rGDkROmhJE3O45lvf(C253`Q(!|rYpnM3)vvPjIkZ$g{4k{B4=;yH?no;`GqwW9BZuRDKo zfume_d$s$>#9xti>~UDll|#o%3T@hI8jIg=5=Usiqm7JK6;n1v!Uo8y+A|-#2xTY~ zt*C2RR+V6C-#Vz9p`(^>R0uoi%I;;T%vav+fC0qC!%Vm3-)QpEVS4zSG$WV(#~wjc zzF1-w%`X(Io&4QU(D|$6gOs^2q?q%bk&xX%z6c^xVi>HsUEA1JP(pvay+GVESpV|| z-fn)DK?tq9)-<2BSJmEpt$;tK1)pbNkHh^S-dt6KfefuJSLTftPS$Y90O(>YWZXur zL_UmqIi7#_TwK^PV$ULp?mmE~IfsSPNh*&-bP2R@QYo-s{^N|8Gx2GE>69gh+CCKS zCNCl#EGUO<(jS5rbkUmhSHpy$YWbMjyTMzkT<3HoEV}SSdBHl`FlZ~ds!0C3^lxEY zB>Y%rZe5mMFL0!{YR6yL5ZuyAY#3ZcKytck|6e8T)h6?SeN=e$a!&y$tt9P{mm*NF zTJh8H8Kw8!NB5YZD27e}Bso%hlo`s)YfxR=Rwv$Wf4@98CG3^GP31@*gpitTo@mE3 z_cKyaj&B=c*9or;KWoSq!MqNjfV!2F+G26Bpg1CwPz~Hwr;~xP9lNMArf%~NmGWQw zj}j)znYg5dH2XhRiN2;i8bza>Pz5;C30M9G7I>QS zMsTdVPy&s9kImuqDb>0S8@VM{)GsRcojZf?;V3*Eg4?5&^FD=lKhm%cXix8=Fh;UQ z(piB%TYcYOBE+0$^hvY$1++ldmjR7X9-4y|egX&}k?5 z_#QP=OcY`%*|Tt(DIq)@2}#pi9z{pWiH{HWtdR?+x6aBeZ%_PWH#uuWyT z9pMxD4%m(tIhk!aiaN)Aii&IEmb%hH_+?4bxn`z}S3TWq1lr5VFPsW3u~(K%{mt_q zghf}_E!Eo45fypOaa)+9seO5rg@)9AoaCYGyBf?#@iS2Os98!|nJ~)O$W_BNb;F8! zza9h`AKtm!+ZG}R)z~tWAV+SuP=rNZGu93NA;1e~aZvL+5#Zy0E$e0vaj_`E_|P<* zEkJJr#`5pnndFsnQwmow`14zleih5-Kwg165m z68bjA$vr;8a*ASL&UX!#m1+R8mZ3h~U0J>)M2VimLpM@)*xr-AACjCRg=t+J)qh1~ zf>4=_$EFLnIv+?lTgO;8s}CxTcTKNc{)Qg!qOwz)SN$nbSk!^^S=KpwvB}EH0=?18 zQyJe+xGDsbf#`Xlt7Q|J9q@&mO2WV}B@5BZ@!Euv?QOQ!^WDttdHAo@^Ce28Q&b7pQR7CRg3L6>2U}ELOyX zmE^5D3WV!S`nQ+N^0J5W%2N4mcwyq;+$&w+4Lzx2a1BbG73;C7MyGV%@#WFIkFTV*S{1J~_XE0Umzq&Y;=PV0AFoHJ?4a zSedI6As!b^BMz8O*HV6N6=3IVQo$D@&KR+@P_DM4@$c`hX(O-jNL>w3$o6(jpbTZw zx(V59iqE*G3Y}%EKY47d;}wd@CctqNUbxx^IMF=VR4-v(e|NDb^iwZ~ZK>I~^XJwy z$bz-)G*_yxsDO;Z8D}~b-zCQE>vltzfvI0G787u-&F-9*`P&8Y(Yl%Ur?4}H$khq5 zNZ-g(=1)$?74dVjwvT2eIq3}NG|B)7w3bV}o_1UZup_@SO5GE=mG#&<87HxE%b8}< zD0>j-Hz5Mb7UCFktp&`KEte@afog{F0LzPrA)*@t5H|xpKkyl^0V(c3sgnHRdx=rURRxx`~V&HWSS$48pvsidH?yLy#`lf`-&9F zWzn%LxJ@XI>KELIXjJ71EyWDpmMD}2lpm$Gc)X@u<*PfMHhLAGPX0x+1Re?f*N*s; zzxKWNUIP0Fdtwd11qdQ!M}qT6(A>yc5;)9)2{c(gp6B4DDv3pGgx%vSl-KE;!H7>!-T~q1Ab_ z5_sO;{crmA@_Qv3a?VNe#HbI=7rXEH!&Y}22R@Qt5egk~U2^tL{uvMxL0gX*R-!*z zYjakQz3r%>`(J zKuVE2@;kgJQ_xDe>QjT99wzC-pxFrj%%yNQ$ypF<*gzMxA)D#ULvH1{(RScW?v9bD zl07+k3%VwGigW6lkOuSrDoW?#gZ?-ldT9ieB#>fcz3ZE1Vl!r)!DMXgwDNbG%eG<=5CwT+D`FpqI{M z9E)$me3|k<-OX)27sL{&?U?q6ggGko2Mam*ZJ-n(V|@rvaEJA*C+2KfKi9H~;;ji~pU5E`nHnm>JoiGHo_tDMsWGsqhuiTg=!iy%-FH}~%e z9Z*d1t%E5Db3D1BJy{1eY9qHKW^tH62np~cTZWGuw{M^bpFxtSEP2UExi>(rT%)}y zDJ(E@q94|&5c$m_zFAH2sjf|AJiVR~-Q1ufYguBdww(eL9*{q+TDauknFTwTd&03O zp!A|T5-8(@`0F(=GxY=EDQ@y+jCFG1wSb=}jB)HPYW&j)c78o>Q%xt*4*0de-<166 z)b$SZEVpdeZ9lXn@4FekhhQgwgrR3+nRKjxZYRuiJ>kw z?EPfF`ypKr|>W z4)F|x!I%i1174tO%j*k(Ht-6F;F3Cd-_d?tlwJmj8GX*MVp%JYoe!-`>}bgwJn^C~ zwK-)>xKf5PIif_=bGgHPvzN^>iBt} z=o0{wtm_Lq$>`R;B#p^f=(?K%qI5J2zkbM12IYsm`Z4rE;AH`Nid7m&nY8>@nFDcD z5pfXy1MQ3G_#0wr#M(N$Itw&JJUMvgc$4P?_+~7b9zrKSFhKYkgAPXF8FtWbJ?E%} z6k|dybWVx8TAXyxofbPx`%1*K{7wN=dj>!6Ey1jgFwh-)T@mc}`) zX@(A|n3IT_g67UNMACXO$>^~;gUpPl)n8Ql=%7cpfv?63M|tX}2MVuGWUQ^%zrA3; zHM*It#D4neFR})G0A(ZKJYsRfZ1t2+dRNCS9SRr;$f~CeVxDtEgOgS;kZ9a%$w$EG z2}&cmyVs0aiov0r{fVbxQBo9nzYR!u!SU_Gt-G3+!YmIIHyOt0HXe`wJ-aYfb$6yz z_39UHI+N7270k8p98HUypPri&p<0jKP^A?TmBHwEyX1@uQ_0Vk4NtR(JEEwx(f$&2 zdMw&A=pw9AIz22e8cu$~%kr9DLD3iO_Av`ah7qJV8`t~Sb>mvi_{t)kCuMk-5)2_M z8n#pvJxSLflB=Nmsd#Ra3%X!ocAnJs%}1inK9>9P1JqA@FWP$hs1PK>>AG1pZX{1 z0;C{N%lTZOaLEhZm{@-oYGA#(7uR^9Tk@PxXrDZw@1ayvok}5z1?O!BL6Sk&IHe5B z@6`fC>;O3H5**@-v#GO9SnwdF;NjVd8D`EmZH;&Zupq}Dztg`+XmB5$>Nb(k%(=BY z=aj#Oklap*2u~6egIy~Mig4NH%~(g_A$bXelBu_ViT z=y^gJNEe(SKk&f!bixMLuOj)M=MysX2zu80uMULV!4^FIOZiJWYtgH#m1>-D?w#ZE zL!?%37Q{MfvRTd-p#fJ#{6mm@BIh9_`p44OXU_}WSCg2_O(;^_U;v5g}Z z0hjNHEG-qd@C7eL@tFJXR&KEaB^6_b0=&Es=i!$zjO{|!^r(VN^qwOrb!gw3!Yp2B zcyqEl`~nmi;4&+XkG!`3Y$hyIYt-$bv$#EC9e8wK~H5c-=}f`KHL23JJ~M-`4T z58)Go#Q|1=EfR46KyuIM#3oQznSozr^@f#)twGoy=?&vw(7p{d9}kO%4Nq%-9jNu- zejrd(yl{xCo>O@El7@dp(&vX5T}zYmRcjM!fALh;Vdd=8SbhWxDLt2Fs^R!~YfT@y zHjgxgp#fKb^`zH@&o8fN#)>AKWY36YrNtKZzKsUZrS1clp8#E0j2ZC#L0z~e?3ngh zvmCa3BtfJZ($OVU(>d!PHrr%9_-Y+;N+i``uw*_75n`+XTG$Z(K`4>>&fsReT(FX9 zd>k@Wt#MjZ)I&PRuLc%Tjj^+`WyaQTX?>^TKH-Uv=BlUSQIn*Ps-(J_i z!dM24WS|8q=rJ)B!n^>s)#h{SPzBGABo(i@v9*MqbmOa%d#Z&h>o50_A)d&pJpaM3 z#e~l2X$^xwHJmo++svAC;H3u3i_c5{)@#Lr@F2?s=vUQG=25W&)4ksyiRF?%idIl1 zfmw73pWJXt>T9G2w0Mf8W3In2xp+LJD`8jVc&H3W@8`G$tX3TIrmd@xl_1Br$lf6z znhUgt0=T{QfRW;dLZWruD!P(l5V;&_7(n}wTbL*T{PJ;sm`TzNt^s`2S&1}H30dxL zgp*@iJhOcTf{Y%!d-s9<-2@Yd`eA?>TR~y&txgCTOd#vh{e_Gi#Ne1rbyu1D^}zh$ zpX>7nt}7yJ7D}slIXJ;N4Kz_MqHY3LeNOG ziV`AjW$3+9TW%Z5yxu7Yh@U5>UW`R|#RW(Z3Tkx;Sv_?Mn7Olik;3XDTc5m-t8|b) zZj?}}t3Z=QV8SFaw_5mZ$z(>P5v*^)-ZgdX#|DBK89^>Kj{f=^)c}TeQRW{QfV4ia ztwObkc*D?nb}B%_Mfs){h(#-Agm+5*weAiP8!Aeag}xH zPx(T-8t}YP-UIB@12q9u7gc;5%#LFl>dCUQ1Y*{+rrj5(znC4j*@Yn!C+;EAOdR#b z`F5I1J3Ww`V?#GMERqfxlhzJP*IsRoG3!>F;sO=Y0tP_Lr_jKknWD4#QLVYU#ZC#sK^%m&X;b0N!(|wWoaA6^#Xd= z#8*2`A_pO7cR{bFX>XfbG9-RcApq_6#|Kdzmh)`Dlkj7wF{*|N>k45h6A$=~GbZu1&aTth(S?i<$npw6hnLCr9Ne@X!hA z>fb4)^W2wu=~yuML@(#iC%Ad=0T&tROpfqj>h6O0M7EQ$VwouW6GifYM?@wYrCf`5 zQe<^yxR}d`VvOA?eIFrs(J8M_^TcxM@t>We`z&)oq`Nr8PSfLEhG?y() zE>^BnkgN>s-@X90`gfJ{=b6%BjHaJwdB<9o0XsjHm2|Wrl&QXcug}JQuiE({O8v=q zH&JI-Cn&hiuLINi=~hU%0?Z+E#}*&w6=lF`!GRA8N(G1lxV8~$5mjH{bc>hs1)uwC zmxLAO7yaXjeucP;3X_1*eWAi=K4+fg! zRkdMXWGOrYA;!Ik6CGhEsz`hqKhms%KJdLGGe!Zi}$0TZl;Sl_%=>(?NbPZ4*Oj}ZMl#5zy}Q>W<#L|1yj z_=F8!tj{iVLH>qt!hdbkxiL%~^(G==KQT;2b28r89Ub!H6a@JT%6OlXKPei0KMpHY zrHgUY-5Imxt~BzjFoVE(psZ=?!0UaeUM#Jf-i=>vU@|4Sb?J^YatvFcC3Iscs*mJ= z=9cKuqOJbjyXGM&M8S44oesf#_+b7OV_HjVVnbRT`EXwK`E(BR3{<`)sZUv*BuXG+ z1K`Y#47) strcpy(#temp_filename+44, "..."); + + yyy = i*list.item_h+list.y; + + //this is selected file + if (list.cur_y - list.first == i) + { + if (i>=list.count) continue; + DrawBar(list.x, yyy, list.w, list.item_h, theme.color_list_active_bg); + WriteText(12,yyy+list.text_y,list.font_type, theme.color_list_active_text, #temp_filename); + } + //this is not selected file + else + { + if (i>=list.count) continue; + DrawBar(list.x,yyy,list.w, list.item_h, theme.color_list_bg); + WriteText(12,yyy+list.text_y,list.font_type, theme.color_list_text, #temp_filename); + } + //this is cur_y playing file + if (i + list.first == current_playing_file_n) && (playback_mode == PLAYBACK_MODE_PLAYING) + { + WriteText(3, yyy+list.text_y+3,0x80, theme.color_list_active_pointer, "\x10"); + WriteText(12,yyy+list.text_y,list.font_type, theme.color_list_active_text, #temp_filename); + } + } + DrawBar(list.x,list.visible * list.item_h + list.y, list.w, -list.visible * list.item_h + list.h, theme.color_list_bg); + DrawScroller(); +} + + +void draw_window() { + GetProcessInfo(#Form, SelfInfo); + DrawTopPanel(); + IF (Form.status_window>=2) return; + if (window_mode == WINDOW_MODE_NORMAL) + { + DrawPlayList(); + DrawRectangle(0, skin.h-1, skin.w-1, list.h+1, theme.color_list_border); + } +} + + +void DrawTopPanel() +{ + char cur_y_playing_title[245]; + int button_y; + //if (playback_mode == PLAYBACK_MODE_STOPED) img_draw stdcall(skin.image, 13, 0, 22, skin.h, 300, 0); + //Mode depended + if (window_mode == WINDOW_MODE_NORMAL) + { + img_draw stdcall(skin.image, 0, 0, skin.w, skin.h, 0, 0); + strcpy(#cur_y_playing_title, #current_filename); + cur_y_playing_title[strlen(#cur_y_playing_title)-4] = '\0'; + if (strlen(#cur_y_playing_title) > 36) strcpy(#cur_y_playing_title + 33, "..."); + DrawPixieTitle(#work_folder + strrchr(#work_folder, '/')); + WriteText(10, 26, list.font_type, theme.color_top_panel_text, #cur_y_playing_title); + button_y = 45; + DefineHiddenButton(Form.width - 56, button_y, 23, 23, BUTTON_OPEN_DIALOG); + DefineHiddenButton(Form.width - 27, button_y, 23, 23, BUTTON_SHOW_VOLUME); + } + else if (window_mode == WINDOW_MODE_SMALL) + { + img_draw stdcall(skin.image, 0, 0, WIN_W_SMALL, WIN_H_SMALL, skin.w-1, 0); + DefineHiddenButton(0, 0, WIN_W_SMALL, WIN_H_SMALL, 99 + BT_NOFRAME); + button_y = 9; + } + if (!list.count) DrawPixieTitle("Pixie"); + //Playing control buttons + DefineHiddenButton(5, button_y, 23, 23, BUTTON_PLAYBACK_PREV); + DefineHiddenButton(34, button_y-2, 27, 25, BUTTON_PLAYBACK_PLAY_PAUSE); + DefineHiddenButton(65, button_y, 23, 23, BUTTON_PLAYBACK_NEXT); + //Window control buttons + DefineHiddenButton(Form.width - 18, 1, 15, 15, BUTTON_WINDOW_CLOSE); + DefineHiddenButton(Form.width - 18, 16, 15, 15, BUTTON_WINDOW_REDUCE); + DefineHiddenButton(Form.width - 32, 1, 15, 15, BUTTON_WINDOW_MINIMIZE); +} + + +void DrawScroller() +{ + scroll1.max_area = list.count; + scroll1.cur_area = list.visible; + scroll1.position = list.first; + scroll1.all_redraw = 0; + scroll1.start_x = skin.w - scroll1.size_x-1; + scroll1.start_y = list.y-1; + scroll1.size_y = list.h+2; + if (list.count > list.visible) scrollbar_v_draw(#scroll1); +} + +void DrawPixieTitle(dword _title) +{ + WriteTextB(10, 6, list.font_type, theme.color_top_panel_text, _title); +} + +//===================================================// +// // +// EVENTS // +// // +//===================================================// + + +void EventOpenFolder(dword _open_path) +{ + if (ESBYTE[_open_path]) + { + strcpy(#work_folder, _open_path); + work_folder[strrchr(#work_folder, '/')-1]='\0'; + OpenDirectory(#work_folder); + SetOpenedFileFirst(_open_path); + } + list.SetSizes(1, skin.h, skin.w-1, 22*15, 22); + if (list.count <= list.visible) + { + list.h = list.count * list.item_h; + list.visible = list.count; + list.w -= 1; + } + else + { + list.w -= scroll1.size_x; + } + MoveSize(OLD, OLD, OLD, skin.h + list.h); + list.KeyHome(); + current_playing_file_n=0; + EventStopPlayingMp3(); + EventStartPlayingMp3(); +} + + +void EventStopPlayingMp3() +{ + if (player_run_id) player_run_id = KillProcess(player_run_id); + if (notify_run_id) notify_run_id = KillProcess(notify_run_id); + playback_mode = PLAYBACK_MODE_STOPED; + DrawTopPanel(); + DrawPlayList(); +} + + +void EventStartPlayingMp3() +{ + word i; + char item_path[4096]; + char notify_message[512]; + EventStopPlayingMp3(); + if (current_playing_file_n > list.count) { + current_playing_file_n = list.count; + return; + } + if (current_playing_file_n < 0) { + current_playing_file_n = 0; + return; + } + playback_mode = PLAYBACK_MODE_PLAYING; + strlcpy(#current_filename, Getcur_yItemName(), sizeof(current_filename)); + sprintf(#item_path,"\"%s/%s\"",#work_folder,#current_filename); + DrawPlayList(); + DrawTopPanel(); + if (strcmpi(#item_path+strlen(#item_path)-4,".mp3")) player_run_id = RunProgram(abspath("minimp3"), #item_path); + sprintf(#notify_message,"'Now playing:\n%s' -St",#current_filename); + for (i=2; inuQZe_@Q0AW0uX081uPet4Lm17qqLL){ zwV5SsG1u2@%tpWI`{?(_`*=Mb&&TWWe!rg2*YV88>V}|zxBvhEf;Y`f>;Qn{J^OCK z$HU(F$htq+2M5&dh7nNrO>&8Ca6t@j83MqYw8Jb*ydDq%_f1Tn`fA=@bA7`8;DR}u$0 zvp8gKhA~-wlOxGEAs1R5y-|v?%r`gqJ441mP(J056(|2=)syYiNP1+)yjKLB{Po+n z4v!HZ@+590c`te=782pUJ1-O4>IDFbvJ&v%J%(D)QQ-Nabuer8BG2*6Z+p1~yg*4v zfWi(5(@Ky7MEmjNS~ov}+pcCwb-=9C+Y) z_eXkRcVZD~54PZ}Pc9PXNV0gO$}xE!x8YV`6S zq=fAuX^z|f=`4ye5;h2`5}Y{iN2tOycig}1Cqxi=y#-r~Y|@Rl^nG}xxPwk1zQsJ* zh$n;Y^;=lbZAm0DVaBR#!#gtR`|fTG^ii817{(|E73lY9Z#%#N4bv-{%>_SpCyD*VKGe^@wk?^_#gm&lOQObrup528Uf}6kXB#cGPZ$-PVr(9P! z8AKTma8yKC6|2u@is=;d{&9QAsa?suCNOkx>0__+1-zeSTBrjmd}NkVRBhyF%KMeM z?%s?Vk*_}yVHX(zv&8*FRt|bT;s=_6>axSwR+3$AWR_+tY9{bFE35x1M5eerR3BLWVVB+s&qj~fivoT z*A75G5>WwUO~wSIQ_fCUUM5yY3;xA9aC@y56PPIS5Nb7_n=H=8!L~~1LvDPW?_2do ztM^^~yTEUCzf+P1pR874<6g3flMsJ3`YM9b1f@0LIw7qf>E`Pvmrvd|tpAr*aW1Wk z4>y%gC%zW`?6fnUA~OXc%EoSPouax$)`JQj!(N04*;v@_es%-PS}=G5STAji|<8i(DpZ|9`l}9#N+_oo=UH3sXqkUys%~Nn`SUC>hi~-8*Sp zFSk~04y=+P9>yErs9(FK1wB0g^FQ#3u6j_+?0#>85 z%oVjf)Z9q=OJ@R1jM70l93MdKF{9C;mj>RHN354M2!^W2O;eHz9f}I2j{%8jG}x^wwZziQnm;Fpq5q3Z+9n^sy8jbl3to9%0qTdyOW2hJ* zAwilzTYr7}YZrm(U~R81efb!dTfaUV8l|A}S;xK*$umxbPhW{0dg5V79ZXHyUej-& zrgg>LuZ!7AKw`XxJ0^S!e27l-DyBU*Gfa=(S$*}1W)zd=!Rg3(I#D~v~ELU8!KSS8~uTI^DY!R z%HxUM5@U^}V%HD_;1*DE5NH_rZb++(QtXDe-A6jsT8|EwGXmf1;hYEiehehXB;CQG z2EUE>R5Rk_6G!=sr4E%;xe|`z{9-12MGO9}({$fHv)?@tREzVEZkr{iC9l1bDz1H7 zap!98t6c?B#Qa7cU^{GvwGQYSUc})CD z7$Ml(djdQp$GWzSJ!egDGahR@zpTPV!zvWhUDD~Oep-Wjh=swvspCTwye=}PKFbs7 zpuy~o`<}f!bXH6&hz~XRC@Zg8iaF*>RY*r|8KJBOm^#MjH2OGnYo>Ndg-c9x_r2|g zPwee2)M!UI=4wE~YyTr1VC8q(_BT@V52;CN-fNG*XeHiQoIHiTR@0k0863f%5?6D@ zX_Y|D*Tkw$-C!3>OD852NYmo#yv0pS0MtMMc6cQq2H6?R*FN#Nr)fwL9kz1F0@0?X0xj$-V8;=>3 z1*@ey?nC}sCc9CZI~{>fe_g2+wMC|+tTtljGxdu!o>o@2BKl4U74+^}ua~V8V( zL%7BlQn9Ks=cD34u9{dF>kO4eYmc#xq%V9fFQ{Q|5uFp~yPzF}M~$9{izzROG0eg| zZBd!{o@=r0&Tze*9&Ve?&FX1z8*JIP*~}4)h@>=vGqK?B9`z@}E#u|H!?>qXT`QiZ zvE=za%d}~Q;yX z{n`tlT)LeqfPZ_BbHTQCk`BWhpF*y|g%gFlnD*R#!_#*BhGkzcO(%bcJjmIs>!+fveA2-$=8_RdS*&m?{YSevAe`` zdmJtdN*Ipf{}n~mCw*K_28}j2isSzYN3SfY^!k0;$og~&$^^@NxsrU$B;5i-fbGoU% z-4syFK4?Tzu6Njoe>+!_7rrz|8W4CE;bVJ>8mG{2uI7KNNR&M<12;{rOzMp8!2bu9 CEzOVs literal 0 HcmV?d00001