From 25d879e0ac3f394eb93cf0ecef8ed36c13a53494 Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Fri, 9 Oct 2026 16:57:17 +0400 Subject: [PATCH 1/4] Improve the Charts - Stock demo --- apps/demos/Demos/Charts/Stock/jQuery/data.js | 170 +++-------------- .../Demos/Charts/Stock/jQuery/index.html | 1 + apps/demos/Demos/Charts/Stock/jQuery/index.js | 176 ++++++++++++++---- 3 files changed, 171 insertions(+), 176 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/jQuery/data.js b/apps/demos/Demos/Charts/Stock/jQuery/data.js index 0c54305cbfbd..d458fe0dcd5b 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/data.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/data.js @@ -1,139 +1,31 @@ -const dataSource = [{ - date: new Date(1994, 2, 1), - l: 24.00, - h: 25.00, - o: 25.00, - c: 24.875, -}, { - date: new Date(1994, 2, 2), - l: 23.625, - h: 25.125, - o: 24.00, - c: 24.875, -}, { - date: new Date(1994, 2, 3), - l: 26.25, - h: 28.25, - o: 26.75, - c: 27.00, -}, { - date: new Date(1994, 2, 4), - l: 26.50, - h: 27.875, - o: 26.875, - c: 27.25, -}, { - date: new Date(1994, 2, 7), - l: 26.375, - h: 27.50, - o: 27.375, - c: 26.75, -}, { - date: new Date(1994, 2, 8), - l: 25.75, - h: 26.875, - o: 26.75, - c: 26.00, -}, { - date: new Date(1994, 2, 9), - l: 25.75, - h: 26.75, - o: 26.125, - c: 26.25, -}, { - date: new Date(1994, 2, 10), - l: 25.75, - h: 26.375, - o: 26.375, - c: 25.875, -}, { - date: new Date(1994, 2, 11), - l: 24.875, - h: 26.125, - o: 26.00, - c: 25.375, -}, { - date: new Date(1994, 2, 14), - l: 25.125, - h: 26.00, - o: 25.625, - c: 25.75, -}, { - date: new Date(1994, 2, 15), - l: 25.875, - h: 26.625, - o: 26.125, - c: 26.375, -}, { - date: new Date(1994, 2, 16), - l: 26.25, - h: 27.375, - o: 26.25, - c: 27.25, -}, { - date: new Date(1994, 2, 17), - l: 26.875, - h: 27.25, - o: 27.125, - c: 26.875, -}, { - date: new Date(1994, 2, 18), - l: 26.375, - h: 27.125, - o: 27.00, - c: 27.125, -}, { - date: new Date(1994, 2, 21), - l: 26.75, - h: 27.875, - o: 26.875, - c: 27.75, -}, { - date: new Date(1994, 2, 22), - l: 26.75, - h: 28.375, - o: 27.50, - c: 27.00, -}, { - date: new Date(1994, 2, 23), - l: 26.875, - h: 28.125, - o: 27.00, - c: 28.00, -}, { - date: new Date(1994, 2, 24), - l: 26.25, - h: 27.875, - o: 27.75, - c: 27.625, -}, { - date: new Date(1994, 2, 25), - l: 27.50, - h: 28.75, - o: 27.75, - c: 28.00, -}, { - date: new Date(1994, 2, 28), - l: 25.75, - h: 28.25, - o: 28.00, - c: 27.25, -}, { - date: new Date(1994, 2, 29), - l: 26.375, - h: 27.50, - o: 27.50, - c: 26.875, -}, { - date: new Date(1994, 2, 30), - l: 25.75, - h: 27.50, - o: 26.375, - c: 26.25, -}, { - date: new Date(1994, 2, 31), - l: 24.75, - h: 27.00, - o: 26.50, - c: 25.25, -}]; +function generateStockData(startDate, days) { + function randomOffset(amplitude) { + return (Math.random() - 0.5) * amplitude; + } + + const data = []; + const current = new Date(startDate); + let price = 25; + + while (data.length < days) { + const day = current.getDay(); + if (day !== 0 && day !== 6) { + const open = price + randomOffset(1.5); + const close = open + randomOffset(1.5); + const high = Math.max(open, close) + Math.random() * 0.8; + const low = Math.min(open, close) - Math.random() * 0.8; + + data.push({ + date: new Date(current), + o: +open.toFixed(2), + h: +high.toFixed(2), + l: +low.toFixed(2), + c: +close.toFixed(2), + }); + + price = close; + } + current.setDate(current.getDate() + 1); + } + return data; +} diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.html b/apps/demos/Demos/Charts/Stock/jQuery/index.html index 06da1058e48a..5c2280d22490 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.html +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.html @@ -14,6 +14,7 @@
MR(mh3dQxz|QI2w>SuzoxI8>{V3w!Im@hoBkt>v#v$& z2DI*r*1fzPbX@zS39p^>4Yn!2nD0Y3o?#0L3rb2#^urA=8`|c*@EU$IXd^XYOBAHc zD)45V**A(o)Fo!_*$Rd6Z1(6TcC!kQqr5N&6LAsg2vi4!*JN2OxZsIGjnznkvm&>H z??8UOT&ZvpZ)nn{QM9u}ss2l+G+Ax~(LT7`9n1D376^iiWH9<9P_%AcALuUMdyBqaQ2=Ts`p7M$5bI%0By}rh!9KwuSEUesf9gdWCbkcuvGY zhF_W|Hu;px OELz-;}Fq`U0_N_XKv{Fn6Fgy!kXAIh<92G)}9**Hew zb(T8@K1MR`yW?(D+}xPB7|?OzQ9gUpC0=odh(T?hf&vA|{kzr8P7b n Zx+%>ef{~GO zF!OJ6=QQXtEMNP_^*8~1{HnF&5y5vxztMvSGT^|$uiE QN})~$_X>C(v~oi6_6Cwn)y=WC i7sEb_->!vGQ%4teHs@s(6 ;nlp&zx^dLEsbA~$MoteYZac)0&L0Or6Gk^@^1>~SgTAEDRD@6 zd=IajlW0Vp;7@hFL9+cYIA(^+FA#@)f5@LDdLrRK-OX2DEMdOc5EX8zv=i}hKR8*O zW^WrKcq4D3-lMIH-|TBK?AD2+=OY;e+wRFRUb}ykbWh %5o0dgs4x z6=gXx<9gDs_1m}K=$;}poX=$$5Rq`+pcHxyoPC7ZvDZ4!EPHfH8hOhx=fER~v#%kG zNF7I$r~bJ^EMVgkm#vE*?UxdxqOCD%n1{?v=2y?Y%f27d2g_2-`HFe)n&IxF@yK`s z L3T&B`4$I!{^YyCcBBB$)R_*Y=3~ zv}4R%v&w-Zjt`CH- ItpfFQRT?{`r|ubVtdT85lg} zw~qjZQ~!g{gt@()q4CG|-5O*L2tO?L{{$KS>qwWGkv;t!fM=jAbF%+ zbWhMzdkMjJih!%lK5=gRkf$?Lu&VVjAI}6htk2q$w);CmnH9Car*TdJToSI(Q)}RU zg6LEXmx2KW-DwlY$OGG+uS#mQD^7ozT|S-d>ckv;l?g&9QesF`TRcifX~Am;Jg*)( z3V)_~?#3@ifD%g!!f1XME+i$vvJ}GNm@dbVshz~Zt>@(g>G)?505G+r=8&@jvhBy6 zdXPsMPcR8wY!&Uh_(%Ms$Wp1Psj97~A^ 8g(Jy4xSoZb-vE^B!}OATZo=MmO;fk3>eMwN;-L zil}@2fy30o;&=G6a+v4iPoJ*w`#gR6RQ1OxF0L1Qms&xM+ux1>-wn+~aan%--j?8E z0>t;#t10q#-WpH&2eFCVPI0_{xBVRn23K&rZ3{kX$Wthi^(FGRwl}AguN?!np#?{8 zj?>6CQeRJbJ_B^d%tU*4J?;=dE{-xDxWH2R{n@6Pre{KSkoH#*Pi T?DWj?9_lf;3|HGk8Bw?ts?1|3K4_;aoz_$zkYe^v2I~EzxD9V zHPu#Nx4^J+90!Agf$GQ39cuWFKqG|z)?T|B4XyB)K1MkIpBq{PH>EwKfK>fGe3|TR z!e_L0nfPGLeYdf5(jnm0&ky&(R(nDaLaEc<5e8;TzK;*L0qzZU1SImw-|s(PW6cE# zP7(hrFcH%t=m+lvo@T4QcIF%%hF15!nUx1mG#;SueAx1DHeMe5?KH=kucua2YFBxH z!S9U$F=sPWW1LAq2H8OWJ Ak9 zam?q!zZZ31r)aE4)M$EWYE`&zl0V2|tgO>}`A)3ub%*|<{Z5% (6BjP8M#0a01U+vk `ROB6g1-rt zhj&VL2TTph` Jfus4>etHi*{mi 6cY^r~qeHu}`HF!R7sg=zmxvaSE!`i09g=)~k$HxfT z O0a7oISL;@Sqn_reF`+%>D2w)Yx zzD@K$i?&G3ps+k4b+f|8x5)9yWz#urP5ISx&@(wx-Ej(;;6= z&c{jNVu~!krZavBiNfBriK+W*1n#pWt5oIX3)da+)MjUQkC|+q7|Dh<&hRCXPgyN_ zY6|$nMO)9S4yljDvc|ko3qx{O7JuLfUa4t3FOi0cTz>T*cM8~%0G7fwE^ZvJrQy}T z&Kn!t91}B9{wO=D()B^ygJ!bT5WdT~MZuojsojxTiQ=BqWP)J7F?g(g)SzR|K(W1& z*Gy_is?nB5KoYC$^#IJs*YyPIkQDC4`TF+9TycvXM%R-k=IF!=OQr)GAxxp^i)}cr zDsIuS?0R14Hf3lZGk~Wpe;>eqd bbw9V*|FM=1UxH>? pk;9Fj*HHf)fNdyS#qnkB&_gt9OYDU=0P9MjQN}2sC)6ozGBjXY-f53P%rn%>v*9 z+3fw~UvopbBcbIKa>7{lI_hh33*#p&*M(}upHB&&+jB^G*iDLYb#aBXzsx`Ji7nYFdc(7cKgL*RT74Uq@RJcN<10&%Hdq-W 3`lnBlx_d%yoadf&Wy%{6ktp{4L&IY5SdQeUl{~{{zxkvaP zi-?IF+(?M*T{`9oMi0(PYY*I_g6nST=GSR|NW7AZv$n|Qj{6Y@R5sZ>Im?%zhsG1_ z<==%O0v(oZ_1VMP`u*`n7Ex0E$SebX@+U55@eXhN&vYhmlIbI};AJftp4iL3o{dZl zIw#ER@)!bdEWdD}RZ!@owE10vkko4i#zF5W@8X6JYx?P#OMho q@IB^RxDm)h6DS`9`DN^V^Gz~&FcSO3t^_f?LvnwrPU)_cT=^X)Zj zZ|~y}_&$5Gh@p>o?}r4a6xv|p&yl7R%F5D^uNumM2Y#uXXpfRj!+IfY4b Q66O(;7UI+cQ~C>!?nzc`VZ~~#( z$Oj>PS=S$CYib{fU^u~KPA{6Xs@n|JggrDEp8N(p8fCi1@yihxe8(1J9DX z=}~N>{aY-=Fym;$k?#>t@?QMtW1&fKTPY);@ zYTNAfs~=U@-aY`b(oaQUAZMB)4i3Gxj3HUldnlOmg4reAIRo?3Zz~;hA~ <)Q1ebR^Gh_HgEB!b&GnEOQRM&)<1GKl zR^WcdXY=IW#5B4kD=!JPH0%hq^qc cS^y^IZ%knClk>8ahiPO8}6VeeyFy6Tk|)Lgy`aILMM#uuEcP zF-kJ{%G-TRRM~fcAd2~F#}=o(>B$ xta9=RPDjkl@YKHy{m;d@@aMh z?^VV@*@ngvv*s_RmDxW5vkXUGry1 rAC6GV(n-n>G2VZO0u{6x(puE;g*`iGOzX@4OwX;eYv;6tY@Dj#rM`9$z zKO?t+2DRK-8=b_C1|@mew-y(PFRUP}CiAHdf!neEH6QBspJ@VbZ7`on;j~Z;{_goa zk~K}TsBy+7LsbR$3BW23_uuI09zx*jJQD=Z<$!+eBsx?#`koZK?0K?!3*?@Ty)4{e zG&Zu2kB~u`&1}=I-I<26ut_PZ#l$c$2Q9Z@yz?SCaP6C5eb6_lzj*Xi7pS2r+1o_f zXZ@zw$;w+wTR*ZwtmmXNLKm;?OfQ 1;Kzz~tt; z@|(kG$irPz)%Fjz)Q+EtYCs+!$&u(#r_~GnRIBsj#G*6d4@~O)pLow(er- 6C%2H`2i>C^`3o&18)t-NVttCt5tdGE}`Gja881(Q5Nc zrqQ`!t-LQ)Mgiu>%oX+tAGW394n>mN#=}3AU3aK4*}pB3>;a_S@_CEE7?KqYoZH3s zEt!j)2Yf{B5-+BynA<#mS{pj4`f@((>A(x_xoi8i1CZLuqxQ>Ps`xMp%6QRh+a{ZJYY`_QhJyv70 yxZ68;16e89$(10WIGesBOREQ7}6Bw42$o7$n?wa6tvHu#rc!zy9@OU(NO@AH>D zpMU*a&RYbfqa|VXKUbUdef__Ft)e_mF9vuJoVHg;0}E~%c2$pNsi(vz5VIiXbdH?R zjSfB3^lO4@yd670XFk2V?w;sfrsVqB1^r9=e$k5#{i8Rl^N|+sR@HLB(WrBCSyQ@j zRgBr_P&(+L=S%y-YuM%(7Ljd^CLxi%Ru5n@M|CllN5`+;kGGTKiTLgE5z!S*?PGn% z5`-cgZ!$#0eYcHHh%{5P|D)R}z~UI|qw Mz|ogXe^F3W{PJ*y-kQ-uEoTXAKN|eUompz;-S$_CLfvNQh`5u-qZ5z? zFW(_<^$7w^6*_Mp1PH<-e(Qgc1a#(P2@=uz=j;uBzWnhYJGRz3fU<2*C_45SF)E6R zJkww5uU8iZHrhn{%Gjd-v?P+gI{aFs&)lg%0;p0UQq z`keRp9|1%!G0}X#8uIA4z6JP#Q>s1B`sIpG?K~(6=PzA-2|sC~I}_aOVbGDkwB+}) z=k7ix{rB3L=wTlKXV3 !P?U^rN_xfbS?%fNp(bh41cua)NQR@Tp+5y|P;FwPD z{@ZH9b vX4bb@kojr^dNktQ_B zCH(Fd{s3UlVtKsx4rmxjq~wZIB}j3jFy7~ZAxHxGuy5x|h)z{_YoD;Z{8aN90fYV( zdEA6;QI$NlDIW3a7eI`#i0MlE{LtnpWJ_+$Or>*?PN#!!=j>J*Om(uFLd_}?kXfdo zb<|h$29r_{nR~Z*I#muT<4MBuC?6;$#E{ySv^kMhqdqYvm4oAgs^^T()fCgv_E>kw zXf6)7ux}G0OzDg)7)2e!qTQUQJvxYe*&}%6(O$di@8fXEXbpaS?3vZIG*kml0>!qe zIulcSVt08SwYT64rzD&*buN+EH-VVB{i=liY>GW3R()%X^8mwFa}umi!21Vgi%_>` z$OpcmC{RO)FtEGJ-hcjB%ow{p#u d%S*(19V{Fi`&eB`y z%o1s&Aspr2lfT6kxVsY?)}E^9zO=KwxiA| &SDNTl*7UbI*Qa7nGT9%EUTZkuyX(8r& z3f7dV1el60H)a9eEsUV1jd`@oeW&!uQ&& C5=;sTZC z2r*pQpqex?TZ~bTpjB~Eaxuw*99+5F&&TgIz&Qmks3ND4CDeIVIhFN70|fsn?aFit zEvVDC{-=bYs9C=*0A 772`PjK)LXmwOa>-_!Z8o Tqu`ihHDM1ew4Uk G{->@3dDN6$UAV z&9=;}K@eyV$zl%rym%C5LRJk|b>K&p3VdKKm8j}i3&w=C&ne~LNN-Gw$U|No#K9P! z!8CFlsRJ7` l4xNDB!hlFz-~P9xRo^X=Yc_+@ouTqt;LkU zwRlJDq^iHNS{*K47!ijUN|J6VVU=vD9FiHGpV|<`jw3- ^y(zymO^5&Lg11krah+Fn3FyU-Q{c9QM>j6yGefz}HM5bE`O~DwXj9#mWAh{qq7# z<#QHFg49cTO zASiH*L``v<6d% tB>{~bC1vRV^UX%ZsVF1slhYj|MCoir0w8l$f76Ev*!>W@5yGARAz0IR% zI70(O|NBzdnUjEj2bh8TV0FhOsHHIV<+1EOFI3gc^Gz3OTE%m2EV`)5qDW`D@_W5V zlTSyJqqY?g(p4^lDZ)nlC=TwWYl?H;r<;9fXbRC^J`WNN)i=P}VJF6^JeDaEYk|1A zYP q*F{8#t5c_vyK3ZB|nhUz(i^ZK0#D`VFN{x5b$(-~B&g0=2^ zjzQSrLPtt3%>j>bdR6Ra;FuAw8c^OKd^3fOD9xEG8VdDN9xZisPSOnwQL$^~8m`9M zoF+~r6d8>6phX5TBIAO#2=pL~$2}P#v6+c4)@#F8jChYW>k`364fd8!;C$yK`F^$9 zPHa_N^0Yi6P{*)LLT7p|F&A*6Ew&1KbJ7qv1fgCZ3_MZ_>8g!F+^r+m$0p~5=7e?D zc83^~#GOln15*9n1!Q}iLDVF)y?Ijiu&9AS3>z)DyP(Q^+6@JS)u$kQD6g#ErtWr1 zU>>cY$h6mPZ9!pv1Z@A7WHBiL>8upb!y08|09Hm(FrYm7-AsEOcFER1e_Ix)$*sKz z?=UFiz@0M_y+9~j8>*5fmgBpNlMyNS=@girAE!HYZq_y@s1r5{>k#F_$K$0C!NI zmYK;9S5rg(TvatbneW%3(Zh*Q6uuJHC8OKV4sq(NEUF1z2Ze{MDY);h zrv?5?y7;?IZ6&9y_~{JK%KD87o6gs`+vYf;@~mVf ;&Vs1eo;>(lFBp}Ck(iZ>+=$NNAL-6^{_%CaX(Z@xR^nUa-#(`0-?oAdBM z>Y6ybjVv)Bu=mGm^uqKy&krNF!*o%oJYKJWpmdV^=;SQ6Dln~b$W6!T9>7S+-Jb2A zSGaS*^js#eY}*WmDB3A qGh|fDIL0_@7v}&C99_qAnMc`sLz+n21R*JmvybV z(5|T4&m{P0_>IT=ni^3diuMfxL^65GfAbkd7*Ey#k-dx7Qb5o@dE@y406pY4n-amb zF7g!B+~-EoMR=tZQy^__y%LaJg 7n(b< zOKNti;Pb{4GbytAp}n*W3H2W>&qCpDt!`&ZLC#L#spgqA+l{Trl_Xq+eK^2X6Wm(I zrhF|MfXA)#Ba@y3URa5|%(@ic45JoN4U$9JMgdjLJnVBE_omQr{IHT8w6{Bi5ZgcB zvP@$J;M=)#M=BeS%F}VvK{@h#03xr;ds+$hW8;|-3P|8M&JAf>6q>h`H>LoWl45|7 z-rPol)olRSF6 cnb4Gh{9kWp+JM74*Z-&-suDHY z(MI^tf}o^a+}g%7tYA%19yc*6=N}JiDWFPFJX%XQC9gqcM-k!_|3LpvuHmFj1z5Y) z6dYug$Lk%U1j|5l+q4(C5q5!vk8o zV-Q6}$@4l%E7)4> XlhB;Wi1Wwz0stR z0}i)IcQ=jEcpe%6`Nx~*t_>&`VTik$2Kg zBB^+dd#NsEVoMqk*eNH{U+E%0g-!7_C9-Q^3TRl@DpmF3e)S9)KY2>1-i9djUg4j( zP0Y7Vl{BNT0T82Z-!1}bX=4SfQEyU~ramcCoZKulm{cedYElMr#@J{f mN4I|5j5r@__x)LoW<%vkU!O|Y|yb}<_ifmJ*ljnPc5oBktfL2dZ z45Ii?hy(#rCN1R*zt_+T?TcS<7gc3qv0Mj{VwSKx7WIabmaRUqLJ5rq%2MU<4w$8E zETmGxTyLYu9@^{E6c2I^GlY5t){Df%obeCc0kSkLuybcIu_WJg-kD%9b=BE7y=*zR zHmnXGKi?xxj;rZ#&XI1bgylm U~dR&R7BYwZ1b2vG?1 zzbHNHHgZbJt}dNw;U9P!v&B=_9{$$8Mgn;6n2mN5VZ)PvOIxXe47&yHco-m324<-N zGYNntSBzG%-XMW`9X-8HWK$CoRDQc`D9Hy4wC&@!b zo6zS#wguH5k;l10sxH~J#$niqNQ=pW2EA!N95p5w)7|ZcYOzJxb&eXBS#;GD$u~_X z3lz~@kowBAF$>3f#H)md=k^kruB}&c*^WZqpafoEZpzRI8_FLS3YQNz@AOh8V|v*T z f%;9n`y@wA0ud5E6kj5p8b!m;lE#w_Ki($REp+5*(c$*K7af3r_!Vah}$ zdT>7zI_iSFdq+il0qZxZ0Yj?r<0S^AlkWMZAhHE1Wo#*plN6$$o13<(QMoCh(|~XK z44C)7w#^{DwkB2BSF4hn ZYTgHS9veh;=NZMJB`Xi)#%ycZ|u{;PP8unVlVfn% %wAt zW8JDcoIAtqv7=tf>ST-yjn%hpHl%Ap#i5Y4Nw2?!b=Vm`_vJG%bg~l#Tk`PXITWmT zRdD4nIJEu^E-iSLNX7#Iq=rjb9!Cy;CI|bPmkH-lQh=hnDmZBqKGVBA9$(MO@L7wQ zVS)8awm|N)!L-0m&Ps7A+^tGybmA#ya$`}Wt4esV^83c3ZN|JgTmtA{)o;$(c2QGi zcehaDxRgRS(|Mgr9)?$$^c@1>AV3{1)B)-d=@_Ckwmzpfgpf@E>K*$5iJC5*)fVYt zKfEhnsrqV-gflo_etRx42H*m11EH b{C>cOdgsb*A63GH=QJS6OW #Pxf47EWqgpKd{vC$vaS3YS$%TWdk2l; zr*7CFK;h!Lu^V EF>jFN< +fG`}~pU3wj;pFR$$$fHE2-WG&aj_1i(YF$@)-GqzXQOKadHK~$0;4kc{x zH!72j``~Yq17lAmz!%aBgCigp^a&^+54JFgKpqU$^nqL_u0n zz$GSJ@GM~Fa?7!+yW6@<6ry@bEBJ;#nR9@p>%!fxuCASz3GwlBcV|uz!E(W~Sp-5B zXA*w8nil@%WX_)`%b(mm4lJyS8nVuGfn`7)U>ZMb@L=Hm@^6D^gWgI$$3<|I{#8rR zTUYH-T)L-R72IoQ`>g64XHB=7|H#+^J+(+8r&JWboH0!}MZUoZe!fJ6*!I26SrUf# zN0Hpf$a@f% U6dxKD{DRjfs4zFkc^*=x!9f zJivSTRvpzO)R~i_{Ramf3e=Tif$AM=7A332lqLn!S{eAZFNHmFC2idvTe^ihxOp3P zB;$?7epku4v!AVN7P%}HTV2+oR@EcMzJ%8NGUibw10>dnvld#zi(}uFXJ9wV_fT6a zQ3h9t-OCxx{(?z}3+LSEDCyF=dgL5Z{z}49KeSXz%q>-x+G;q!J?lx $QjsnKT0%QDJ47CzcWTAL__h-R%Q$G8OlEGYj%OhW zwCx3*VpVcvMngGXS~*W0kxMgP;t$-~REniQ85WB&{l;m7I0Z-yzrq^$B9*I@71Qjh z#JVxKR ^?o%R_tCf{Z4GF<5Icf`9if4NFXtuu^ALcL^vU)sMO&3sEEc)0hr5`#H zk%M}cbo(rcPO?Up+PAu{VQ+wL3frS^{i~|>vrmlqg_RN5wl4u+R5wW(wUHlG+NqiO z{9wyHM4 0YR4n8~l_7FUl`)1=l`cZkG9 zWY&Lb>;Nw!VnkI Mb3VO!%#AY! b&a^N@A5cm@UV}(QRq_iqsAjP z`e@X f6NDl!=1g6))EKd>P@Qu_jY!A764(RZS~Lg9mz zq^4w209^Q>o2`h!s=Z+1BRi}}^inA&KHbKrg7O$FeBv)hVs`49euocCrn82LtRxMr zqlcSAU|!&ls*rN37~fvAcSe7ITkvIsqq3^1DLXu ^pv5#?E9Y5Vg$zCf*`~y$HWU;z_0lFjjIQ;q*{wO8hj >Zb7XYjqY*KG_Q2Gy~Vrd>Z OsSWY#JmOJ9H?IY zh>jCNCJN4BH06m%XEE(3FQAO@!S;4fky}K7|3G+~a5)0HO=|0R7h1ndOHGDFD3~(< zUm~pO#b3X5h=o_L7S>jajA*6d@AIIFIRPM$h*hqYNY(T>nP3qCw>cnDS`UO(E}IB4 z(0I9%jZK-?CQcayi#+M)BNc;nB6=_VB|bj>r *#X?9>(+g#F|po{vE PVa+{Y@XGJ1jQ`cWYVRHQ$qmphy_8>H8#m&>^bDpAYA z@#IL0DWuFQ?*FK5^>o@u-#otb(Ed>+W!@c{CW?qhF{;@#^#MnFsGAh}c*;Lsu|7XA zE_GhikVjYh!jxZBTPtRy@>szjHQ7e8u2k5uDN9UX1fM{4dj;wiA!-ZiR}6VfY$_^Q zqv~0z=8;MY^Uqm`(FyT1@IOBzR-FY!q*L8OYz{cm^A=Xpw>I!~{#vh4)2Lu1YFR4z zRX!DG1s#bJ)q%=B2A>T!Hk|{X!1(YH;n9e(AtPOMoGXh?6E$7}8mFGc0|3QjYU)Id zh71fco__78GLQig2cr>9l?r-?B7EL_C#Aqb67p~?l0)TFmWG0+#>Z*RkL*7RRC2Jg z@CKf<5Tet1avvCf8J2|XKDS6n0u$X3Nn|YSH!mFM3TP+7I6F9p6GPzB``rCfZT*=- zp41Np#?gT9@*#u=XXv&LR71*KD(au)1HJk^!FgRK<7@r+8Qr0eP(V)SmwZNroThpp z;nyPv(A&p68d2?lO`*>&t{%8|D`=XI{w^G93v~ozUSZ)28fj10HXW9a_aa8{RcBOy zEc{f#D0fOPBQg@^)atPZOFGQJ8S32}dmIQP9>34tB%KV?YXXMoh)aBWfdk8>9D;~0 zhT!A#1!U#z+Qt$tIT)wjNrYiLPeqNfVcr}thYaGN*lFI=P0=Njpu+=sf+d->2Hv50 zvr*VeSayd-c4tgK+?wlMxh6#_h fzBtG0!>pm5Xvw>w!hPex!*5N&MHgpc7P2g zk3adD3qS$U$vrMu>#h#-d0dVdv@?p0diU0~uM@(BuHxe3iMC>HsHm{5t?eIKCGOLP z8hnx2RDZJhIe&668?4HPl0KIqKq#1=V*a)2lK&5R^FJltGI8?xPjgZzAsO5|y{V~< z$Zp*3?1_!dIL9X=6tB0s`A^D5jpC3%Uu26Tu@zZ1zM32(E;hX|eMUU&1976Hi(He> zLqAR4MxW&Y)J`-ar?O`r@TVW1RFNxcYv>v{d3Ah}c6|OEy~+;J>udm(KA3a0bS)g> zMiaT9INYbVtYwg~Kq1aGQaJYjnk7Jq@;E>e^jIEuF%3JN$OL8{RTZ^SHw+ScF7i!2 z$R^QtLk4NX`f*Pb+9mXnO~hhaG-5DUS5StfWRPzKy_LgT#Dx-jg6KG0ij2aNwt|_o zszR~kAys3;CXJUNt6yDwOrtnpqUlWXpXCTpQ5bPQM3$U2)N)> )4*iMKh92VGjQtxe-n%Mi}ZXkQrhrK1`@s@q>KKVga8byOrw%zpQ zK($=mrwHm>U|)caKH}V=h#2~jp8IIs?D-;PP 8fJXD6XG%hPGKhh;T|HYvkyRZL^}|eUA32 zKY1z>ht=8yozEh#ZO!o<9nB(DXKa1Iq--s`eEO4k)>P^Qse+YDkbJm<(c_+}m(T*K z=0Vd7U^bL8tbix79xNXds5InRHZa?s$RNAYk+Tw_w=eieCEy@A0FEaSX)sp7%3?j$ zsn@}ZQo^A#k(u2JfH-8W7EgkX7X1tzE$^Y&f&cStD)_uMB=eC+ d0hl<;OS)s?38Irs zsS?HV7A+K3wC>=1?tW^Dl0t`A!o`b@b}zfA?~9eHL|c(h=#?k`Gok}=s$pJ9!P%h4 zpiFc=#u0G@T%I(3to=Y33ak8R=nCDj=s57{UFlZtSW{DO9 g+O^`W(3tUzrQccj-bmj`3bPYD;tJzK@K#3t3~pl>tdOQYE2ko zR7t>Edf!5v8PzUHAWkNuqJALO^I m?id_S7+A;1fIqn8(eeWP(0=a#O$~ON!NyJ%sg%P{_%m@*-uG#395(K;ZH5 z;WiYPNq|4Yef$_YUnT^~O9u7Q5JH{B)Y{7#dfLkA$oqQle2$L8`uxf|*rDnkwGp>e z_NYE|j$mMphyfL~S7Y1#Q!12lKNvXJ_44S%>?Q<6N+pRs@6*scK+%YfB6vKD$Xs)P z!?izdmcKh6%>1!x?w-23x&$b_CIkJoxjC!JSDrS&h 63uNrF7oJZ!8fm#<7(Y++al~LOVpgMQA^2axC`Z2a4Bv&Bb1)Yce>Kye;dMXNrxa z0`g{shT(urjawKH`nENfk3%dher(!;k$HU+Nw1bIzplsVsiNY$P6MhbwI C5T zKlqr{cyKH9-dX|cVo =`63GjeL``mO)Q6(#t z|83R-#+%BOuU@C!wi-EShXKkdD8?eBJg`$tqk;Ml8us%E4&3)$sHU`~0QJ|B-^0q1 zO@$vt=(m;wTPtdI*a$X-v(5=a(nbB3yKWGWa-1j3%q*A9MQjbDkknR!;8Ru9N {H$KmGzoq^6ou7Y}<})@eUaC^;Sq7!NE+5@dHxPq8-5>kx8R z<{1QJM}r`_=2t`l{(Qtz=M-l4vW{%`2m39_akT&9mXP5g+}D E+)yx@I ptzs3 zI8ag^7mLORhNAt`DBM#|ECtiUcT@$G4 B`)k5r~V3ZmU zZUBCq*uwt&Y@j|Xh@wVUW<=(M|G(lOv*mklAOkI^eed$va}2*kTCk7E&1HP>jA(3p zTm)pX35H3T1h#_G(q`_kaZ k~Q`cO4lS!H>!W!)xjkJ>2hd(rF<-e6&d@;w0HqU9usXBBg#H8X5jjL?mHY_0x;h z*ClHh^c({)%>i0f%`E19Uz#+`0PZPeI;1Z+`jbbmcD{E$C!q=7T5&%2iYo-(FWJOP zz5uW^UH$hTh_X`NRWtzb)3L;MXKm9KK+gv~+wMpc6B_g|2DQ9Gw6@;BrT|}-uh0-H z%hF(C4+Nf#`UJem2HsRU-hUt>JZ(1k1A}%98`g^yfzJjp>Ct7maB&Pktyt4%m_NO^ z0}BO2P3i|C_p*m2)y+pnKLGWCWKuK7bM)~N7fK1<*XR}Zv-@Aa(CO1BR5p14MaiS0 ze?rhlUa^8{0VrJ{zeyAYpopbdP%a1r?KdCp2T-?rXZYBqytz7jJ8kJ6UYiaDmfGhe zjYGJj*~7DAtnj^cT7Bo;+mRd%e}J)2X_PfVVCQ=ECIAGCYK@HBjo7Ug094lzz)~eH zfKkOOv-U{7mPJ00{B^XP%3RTAUcFpCUX>2ek4u>6EhQ%5Yf=8uhP~=gAxpv@xXjgS z4c_;_vd&+ktUanZlbJ0BE~ZXI0C?IxM#|T68_cMt+yD)X?wbP`l7RkiLoA@Mp8Gxt zV7-MG^U~!zb5+&5%d})}N2;|vF3C|fDK;CqiaV={B&Wq$@iYElD3BcY4dAnzYa|o8 zIKOUK-qp5Q{)XT_am{*tu)xJ_efDJf{51Szg}knj2=e%Vh3I4?nrq)V5sj4G9s#p^ z`0FEdnrYYA;BcYV>npBnn$8&yRQK--Q!`o++yG~6Qd(}?qx;1(7x}LHktPoXXKNH$ zJWi|)vnWUsS73~|?eQU7zXT22F}-O+CUBoTd9iVyfZKMDQ8rnqUVpz>29BV&x|it4 z`X0pnAcxc@((kPe8?+d;-{;7cJQ{Av+PZJ?V37M@o(s*jzPGeG>yszrV+n;QU0I6b zXgqU)?Y{F(@DW$It@DxGn=QZ$2~2N}n~-+8d1vykQT#I@*tp60GigkzQ*ZU1&Ll75 zhVM_Jz05pq;*fJ)K}dd_fDR55z;*-X&@__jLO&mtI48Q2@@8q6i`yO=;Rn=DCnM{< zPT}75RQH}|F+(-4O~i40mGIr$mgM2|tayI)Hy8hvcv|b4?@q~ihFzPG(5IRb3FNc! zVyBVaYj`@lk^g2rRNLBnfOa{#D{cbnwn|^Hm 7?kcZe-n^tNXmiCa~J;GJIlRc`#tT0i7RRZ6)FiU>N76M8`xBC zBS(+My~9Ws5ET_yuUHVknRC+|vT6qdm-mHyknEWXNa3@)y41f|peL2x -{F_*N?uu% z)0#_>O$M74;8(Iuq!kkK8n0$jc`#()GU_=9D%z;ex#I*{Y85Sax7MKaE?qsioYD&p z$*6qisw$BebFdf*x!M0>uW?_)X17a~Nda0^Y{~}mv2{1lq!?ToU4Ns$=I%!GIHlp| z@$e(R+`*G27p%`Nb8m U! qJB3y6cv! )vl#SlMBK3 zq=5z3V@vn?!Ek6mS)?{uY`$N}w!EZ8>Mh_a-v1dyn<9Zz<6Pnni@ohog5#(jI8|xo zhbeRtF}T89bT`8diThxc!Y~UG_>yJM^~!pxJD2H&=4*mCWY?@~&$)zV*TkWN!FLT) zW>?WXn%DLTzK0If!jU9A1zAko(9Z*EnP&}0k18vETPM{s5Ka}RKxgWyDh7q*@kmZD zyr3BXPXkkXzX7o10C)6>LeKscpQX)3uJ&GoWv`X)41@o2@@%`1QxFYV{IV=i(N(6( zvIpN#7y0?Hq?N^9_ckGm zW-_?iQWer7q30 Qh`}SL!Y~Y|qE6z1Ztqy*)1b rjz9TFZf9-+e{<8Xx^hrA{@ z(5|8up0#+-{v00-_jN00vd|eIzT7n7yQN^~ey>2Ym*Te7`~iYP?!$XwD7QpF^7+b= zkkZkJ>J~CkIz9}74WhWzl_{0a0yW)KnpIMhk--|($mfQbEPUO!rHcKLGoli8k44m| zH%rEhh0~HFmDreq+1c_skPh~JOsO*o4+)nk{nm31U~yj )B2}G>Qc$Af!WU1p+x1T?M zERoI3@u>-+u?KN#IzWnXuK4% Pn+Dlb zbcsS~SK$5;m~Da5tMWCN(x&KRJ7qqDE8V03KF;%JR~NnnPFvY #POpk>Ws21ioPZ`QU%HMsGQ0!s2Dk-%uz=XDCN`mDP0W*$_aAaC*=G zCkL8VobQZF$~wD1dy%ptjY?I@Ym(D_MvQwJa6h{^4lzjhy@MsZq<<)dG8Jb6a8&uj z)4?p1j1NTDZTc31$}aN%1Q5O_0f)^h=>sN%`3wURaIr5F81ijwhaUvLgp3>Cm)aPK zcl_?UBwp 7J(KFNRok532txGm@n|MdbJme_P6(oyP2|< z&4zMpHx`0|v!>_93d Lp*3*Ai$)#fIK5bNoRZE9$nCM+JE=;nEDtw*4BE1E!kCya-sW?% z69S$Gm{i!tLcdX6chvS}1o`!G-BK r$$M*^ z(9Z7fwP+r|>9kYLbpYHP{p>C<4;1sjlbA&~AiLa6^9TLyY3K10K+$|8a|@E54?Kag zvP{?Iu0Xle n*?%#o?_fu5ZONzgv6F)Sd%dv?_6$t5vaAuyd|L6-s*~tK{b$ zG)@>V$u9-2_eNCXoPw^8n(pwk-8Py&Wxd{M mfnz Jt#=8V4m%xL563&6t}Ux43hkILgR`eVxt8059aW&m1FUKw zRBF<1t%9!C;~YN!wZloQb^+y%%B9QD^09S${FTt|^+hN1LqoEaifw`BNe+nLO$ekW zW8As~&f%`YX=YZuF?$txS$Zca2VL)X33R8B3UpmW$*~FXLFw#x5{{#evqRXass)SN zDoZaJl;%uj;*`ymZC}s}ogGIduGnt8H`wZ@;l4OfBuTzujpIoHRm=AY tekH?g=Nl+!b{rkos(B$41+^#uf54${PF6X``*)N7} z1%(!bvccj QT~+JXP#Vu{J~UL072MlFAf{9YDJD%B)IN=ihr8vIT79vYBolo jYwhcUJr#;SCG0DPuqQ98p#DJ~1>%O1Sm2NlID`~| z96|~_hexK!P?D2`< fo zCqK_^dL9CNpu~CI?4Z5 m4F^QiV923Iy2W@u%!TPko_n&uDBU~aH5~Db_)Y!QB6q!EfSz{W ?RAu0rKLAG$Z_^uF zBIrTD$5O;f2QrIm#e{{0rE=qOAn<6iP0LCvBITwVDV6oCu1JFNwuX{PQFX_&=F$hj zoIg{s%)7@5xr%7eq7!`PArqhvP7)w00Trp$Ov5bQKO~QZlJ4tXG7|5$$j#H_>)J`Z zQ+DJd!cr^r-7`W1A0opqvFjP^5rzo{_~>Znfoz?)MdR 6Fi6#A02 z@P>*CNSs83K8MXyar@>u8=Jc~&$)NkUEbZB82|ec78f7g%+%Iy{y(A8|DOcbvT~C1 zFx|d! ^q1cW=>N3kc`KBkvG2GE??#=O+}ktA(s0>5)x3ryh=uEtw-^o& zXm{l4f%?YI3sWsw<#p#*_Mf`+_M9lG=v`mpt%KsVFCPc eG-1rD0Bhm@%_3Z4V&cJ2D4?wTOx_?rE?M(A=)4yv## zTJ8B3-=gJ0h^0?ikUG^NA5&G>+HhO7!$y>s^4^ Kptmdd^6Tk*Q1UXeAlOS7hK@WP`wvD7>r!+B*ut~IcRL*82a7X znlyQ5@(RU;sSITSj&hT!;&qRBsXSd1F6+;Qdi0z;AhfQcBo)`Xf|;fxbJU=2>}-pp zZwgeVKc0_itffTQ`X0n68+7Z*%^b%oA(p<>4zbF1gKYzvg>o(8Q(o&Uu3D2e_P#&e zGD0+iONqhv^#%a~F2rqGxLQQ&Z+6saxWTV&=>OH-bCGugQ(&Cg6H5Lw-u$nscY{;^ zJtF>ZYS_q?xlGxbK>>y7J@R&y&=Q%Yi)1U%CS>!y0R8W`_(6 z6WGnrnsi%rN3nkf$|cXj-MRIy5;2S!Z5*}bHzca_c$)7CW9#RB_(>SJ+rMHW<$F&= zpzmS- Z2L$LZ gqY&WwJ?$+(L*O3lDO+!{z(R8{L0hcL(FPH-R`uiBF5q)~ zZ+7Pq_6)$l1)xd<^YO-acCG3+Uas-Ki4yoJYWb(AaFa%^Z|WIN_W;Do$FMUu)Jh7k z2DMU}jTf%NhQpeS6-{h^_l?#d{%L&iyR|5?os_Lk%@z87)~ywT4+q JM$NKF(P+d;Y|snLpvsUdq)b#*LCT z3O|X%uWyqrkID+~i%=eWr_Rk?&V`ca{8rZ1VY^Xc@$B1A?mt(ZuAO`1(s^K!noP}< zEI1c}R12C>O4dl!f1KmHH07~$d5W;oB0i03sdeeKu&KTm-gDZFu!8u8y3VP4eSy(3 zR%oGc;eO(7wvt$jW6vOyUSg19Y}q84HoGiZGaLcI3Zan6JDz<(s<*oz y`H=I--JY(Tz(Bs?YPQh3aM}PukSyx^slAs@ x$>{-caIoP#aAxo-`c`e|1?c!%I=so zcF)NRddda96%zthcm038z}{;4>1Wm5zQ-$pS#mvZh9253yGg*qS<-uS#ed_WB_w}C zU+r{=6jo;0F2uV+K#+KMHu_?jGe5knTJtKTH7wYwB} 7~k7&x8#Eo?FlR{1)|l>ZOR z{Lj|Q!d!jVk_Xs?Q$>6Eg_OSRKwxp~9i{aCf4khDyLmr+s5nc5-|ZXG&t2 ?a zGna@Pf?16>U3~`EI#ISrp0po~)^mI3r-PV0TJ&3=axW<6hJ hw=Bi22NDf36#(XLzhlK3*1q$(ZfkDp={4eu0ZQ6qa*_z90VkvoT$$0hr4ZS zXAnkA4DHEosC-ZR2`@WS%hnIS_v->CN$olN#cC>_v0;VG3=BKa% D4Gip8w9;hm ZaaF}C#WWgGqQ)G8RVARD%AFb z1Q%9S&MiC3sTuA4xcGt}W9kEw+qF1i>$IQvzLTt%J!7}{E7KQz7UIrb>Q?Iq%=9^Y z$HWE+#+THiz4<)p(I!mX&-W#cymH>JxYnV48SMJOZyIl+@zAU}DgX0wWV~0-I=EK( z!LOJoURv;i5 ?!4!JH40}DaR*aPxI;E1-( SL35_b^E||d-g=4^iE#I%tHfTNztM^ulGs;@O<0Z%W zZ%Zrwvoumi1~FJi5vqiRi*$K>8hdQYKJvWs%E>_lGADiW$l72+u^%oXj4v#QP_ws@ zA4>=XMwjk>h|EGbOEz}3Po1$Idw^bmg^akxZ)K`lSWBtXG*>@7?4^lHC}cf8j;txi zQ83o8YLMF_kQIZs&Ic<-f}x>FI+o$NTYuLq_&~FXMPcTSX{vLYl7yQ$jK~kkFJD5D zAdL>ug&Y*1kb0!+>HC=FH*->AAm!y@Y$(*9Y?plF=hI9 xHbqfX02z4m1&?lW{hl=#v z#OnhZy>fEks&HAzPAd!E^tw-Ad+$oiGSZJY!iR8^lvnZ=NZ(rU;u^tUs|wIfuca9h zITXu{I17XE8H!R-y^Bfgr1oJuutgdBjMU%!8w{G4&TJ3dKQ0>OcXK!W`)Zs1S#1_@ zSAup&7&+3@+dIQ+GlFGH 2O3noo^Ir3xD_8-C&v%2uB#LQE4%0q!v{LfsbzC(`i z_tKM_I>z7hwGG0$$#E>+{VIHQ#DL{pyc} B#u_->^sY@9aE *x5z) zvJrPX&6a!X$9ZwBC~oy2G0HJ~HJBipfk$ha{o-UuOoJ-$giUa-Lm`w2K@fTBu?9_x zwH`6e2zMXC*6=qeae`BZwEje-Fg|WSqBpjJOIxmedrf-kUz4m+@$Y*@8zd99qE9_0 zC|`-rAl5{64daX3WoNfqNmh %_R0Ku!!hFBdJ<&;1$oD}