From be57555d4f8ee8b710ac4a7847a62327f7f472de Mon Sep 17 00:00:00 2001 From: Nikolay Tatarinov Date: Wed, 18 Feb 2026 13:34:26 +0300 Subject: [PATCH] Enhance Telegram WebApp theme integration and update favicon - Introduced a new function `applyThemeParamsToCss` to map Telegram theme parameters to CSS variables, improving theme customization. - Updated the `applyTheme` function to utilize the new theme parameters and set background/header colors accordingly. - Added a favicon to the project by linking `favicon.png` in `index.html`. - Modified CSS for the light theme to use CSS variables for better flexibility and maintainability. - Enhanced styling for light theme elements, including container borders and calendar sticky behavior. --- webapp/app.js | 38 ++++++++++++++++++++++++++++++++------ webapp/favicon.png | Bin 0 -> 43448 bytes webapp/index.html | 1 + webapp/style.css | 21 +++++++++++++++------ 4 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 webapp/favicon.png diff --git a/webapp/app.js b/webapp/app.js index a135ef5..5e59c46 100644 --- a/webapp/app.js +++ b/webapp/app.js @@ -24,15 +24,41 @@ return "light"; } + /** + * Map Telegram themeParams (snake_case) to CSS variables (--tg-theme-*). + * Only set when Telegram WebApp and themeParams are available. + */ + function applyThemeParamsToCss() { + var twa = window.Telegram?.WebApp; + var params = twa?.themeParams; + if (!params) return; + var root = document.documentElement; + var map = [ + ["bg_color", "bg-color"], + ["secondary_bg_color", "secondary-bg-color"], + ["text_color", "text-color"], + ["hint_color", "hint-color"], + ["link_color", "link-color"], + ["button_color", "button-color"], + ["header_bg_color", "header-bg-color"], + ["accent_text_color", "accent-text-color"] + ]; + map.forEach(function (pair) { + var value = params[pair[0]]; + if (value) root.style.setProperty("--tg-theme-" + pair[1], value); + }); + } + function applyTheme() { var scheme = getTheme(); document.documentElement.dataset.theme = scheme; - var bg = THEME_BG[scheme] || THEME_BG.dark; - if (window.Telegram?.WebApp?.setBackgroundColor) { - window.Telegram.WebApp.setBackgroundColor(bg); - } - if (window.Telegram?.WebApp?.setHeaderColor) { - window.Telegram.WebApp.setHeaderColor(bg); + var twa = window.Telegram?.WebApp; + if (twa) { + if (twa.setBackgroundColor) twa.setBackgroundColor("bg_color"); + if (twa.setHeaderColor) twa.setHeaderColor("bg_color"); + applyThemeParamsToCss(); + } else { + /* Outside Telegram: only data-theme is set; no setBackgroundColor/setHeaderColor. */ } } diff --git a/webapp/favicon.png b/webapp/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..34f4c8dd66765eda4f9fd472c07a933f7fa81b55 GIT binary patch literal 43448 zcmcF~g;N{f_x1*d26uO9ahKrkQXGm~DO#LjDel?=#jT}CaVzdpyu~HB6-scIH=pm! z?@xF$+1X8I=iIw@k38o&=f-GjDq&+$U;zMtt)eXd8UT61lK_2bJQSJ#kKb^9UKj{P2BT{w^<8PgNCuB3D#jm>I!XbOGKvwh zv_5!2t$TUQEu{2ecZO>sB?6D0!T-FcwH{paGnPp!gV}&ig+td``4dzB2!W?cs;xu3 z3PBhc09&Sd75Vdkkw7Q_T8b-~?LOLV^so)tJ}*XYq)bAq%;&5^c!o5bJ1eU`ir3!# zp*F$_j~bAPwnk<4_K)9Krdt8ixn{1-A=i{<(n}b0iq$jZ+=fqyx=i-fimHo<9M+)-5gx1UHGAzGXZE4>e zisYR9`eErE`LI2v!N56BhN>w*UXrKq8%XWjT*iAW=bc4MmSo#BAE4no_e?CFP z{=W$-PkUbe87{yE>SRs%D$)upd`d*F)27nd!Mi_x{~h2merz56#^wI~wMR+R8Dm29 z`X%K*n*5MBL)?dlUPpgZKZjWR>Bn~j;beSeCG-|ywJ)SiM1DC)Q-UkmEOP51R68$N zoyClrhrhjAb6?nI#?hxaZcX?;vp0Wt7r5k;aFRBVRu9|BWnGHKfzru;JPj%H7M$gU-2c&}dZ@JP`(e=98v%WF z!tl_207I6D?N!k$jX#SL~Zor27} zPAgyet_hdc)TH^+RNy0&sHUa&(z^?NBT;#tT@gvq-p29KFN5KEZb#3MjUdf`FNP({ zm2B1A#WO#nvnDW7q|LhJzqRK$s_YVK37}S_hN5WV_bYefHKhw`rDmS)p)~&sG>$#9 zd&nV2`Fng0zk0dE88;MnjvC2e9v^CHrEvH+E@oORkGx-5`nie9l|!5SUaft!N!xm} zUMN-52L*P0`~GmVj9kfYkC*+lhzR8cJ4aavRRQ<;1c;a5qzwD3U>T0eqf+X!PodxD zUL3~E&Z&#Q!;}7bX@bjE?vOLne@03sfhLyZ8=02M6a!=X(Bvuvr)$T&fH*tHi_6zIUgT*I-v1_f4!EC9ypPO0Kyem-opxyX_b^8D z9(>yFhK*9NOelgkb;o7GBU+v4OOw}61f?^|UZe;Cl&uLm^iP~0f3}B(|C#%J7o|&G zRjk4_ePfD=oV@KFk3^C@RZw6h4OYW$Mf$7A6P&)ZgW(desjgn?k*{j3S zkQoB!khNXVAIQsF_w!dX?z3sH56{j-Labc2?0*r>J7_MK8wWW&Fok#TMeTzBbttDyFr&3rxOJ4ije6rkZ`{pqBwIo zJy?H;J=8$BMn4Dqv4JXORn@w!*>O8>i>+MdPyeYqin;n9%mt6{PcaRC%WiftF_ZFz z7Ipnb@7m8Z5Jnm@3Q_wWP1;6>A^skY;w(B-!zBpw$0gjm#ga=VlY1BX7`Kcg*x3(J zWBbojV6?wS3@i2f;)6+hv5~-IuX0KMa`loitRc)d(K6=0JM8gJHM_6+u;I*YE*bLW zlJu=it$7H5G9`fO{qTGh}H5w;EDsT zzR?X8A~VwI6k{#XGF-+Lc2!QS=f<`BV$drFk(r%M&Za075bl}#jr6tj#XC1#JuO`4 zpbpDckji`k$^!ssH1;GDCv)_`y%^VH<+`cSIk`Yj4FYcu$a(nqKGxdE#Kh!;$Vx^- zv(k^H%mh4-Nc|khG5@onv`hn!?p--m{Esa7eIkmV39*BOpi}_wIVR;_#EQrz zOtKCwS7R#}8%Y2AmpuAwT_g}=BFiSax;nDBl)cjX!xq7GZtjc8h4&{KnJ7VLwl&+^ zHFJ(6ozTR-Mzb}py!>YjI7c5dLPhbc{GF1R*~`TeK)U2MsPcM%B?VLku$?#^V`1_| zcZSTI*s8W~O=w5(F`iw>Jl)u|Tm^-eFrwqnFZDwRfC5%dLTUxw^)LQH7hmeT-)O>8 zdcReT%VARoHCGyIx1{@~Z~Ui^7-^n)OpWY6eJDQWBG-6=ErpQn0r%4hd*+@*6z7)} zZNh@ETO)zv^U_3|?~o?OgW~Iy*WP5QRp*HUY;x(-=~DQ)p1VC#@W7f9CRmE>s{(Qn z_jUhYO^QW4OKD1`)|!Vq zUfQJXdm(s57YFm=X*q|2&LQoI++ruS%CZoBV>{6pj~^=qaVk>-k%q$kgTfSd3!tv= zuY?uzE0W9W;%*7dGTCJ((?bvQM6beQTn>mqi@@2%$ghbE)w!I`lEgXU9p{GY2LWG5{M7 zzadOjr)J!ttX5FLYvwG&_P4V9aCPMWViZ{wc2+a$xYBotXp}ok0Eb#}ld_tAFU`!-cD(d)gJEz=+!0O8z#PXWUC{U4 z9g-Lhm7COM{_=+$YBhKkKWjJtAL*iE2M!FYGjZ?&XRm2Kd5JAaEunejELidMLAX7a%XsSm1Vpcnk5xnUAF6i>EI80 zHElpiSJ#Tk(uv=@qOH*s9Adt&UzJUteM|JSKHP~|o5X%AxV)p3Nn<@v4wx4Hn0e;?vyu{ zr8fGQzXdH=1mgR+g$AB@V-JTjw|B!~I_OxUzX0 zR&5c(REs7ZjhSZdnmGTkBuLkapY@);n@C#R&Ny>4uG?W=g>a>z1SgEojhFj(mXN=0ZKDl;kUl;&+iSicdwK@BhlFo|l@akv=dgdeRfQe% zw+3K_N%tX%E>5GXnr-6e3qUACFqm7S=SdFsF;WA!`*w_fH~>EW-C~iJtDlL=qLm;> z_yai^1ojp{mZFXBYBhVoN`8ch)cyg+LsgkzugPKc+7#%^&x1kY4-k;WI=*VGj1M zx-=7;gR*_o=}{ltB_4^+nq1d&naXF!OhfY^$AE3HE)p^a@Bj{*)^Fy>JW)kqz*hDG zP)1*Vc#Nj*cyE{&xMYEIDwe1M-uJia{8OenHY3dTIsj7l1lM6QG(1Z@Gvt1I*4%H9s7O8 zP}13*mBr7%mC=TSX70=t>IwBQeA=8)yX|zn(gl@U0li~o zlWPS#BwK)Wu-$|_qt700P@~qoYk4dZBOe z0T8hHAph6t;A+F~Pc-c=cG&)kDTxNztp0ot0X5LmaF$;o8JF^at=IyB`d{5*d~;Vx z59KEQ;t4>5PC&82&+Jcek5sQNJkP9hBxq`s_Bpp-NG}Buohj)SL;L0hK4!$DVh~bk9z>Myy?Bc&SWOch%Lv3oZ=DpP*G~e>2v*2N^AY zy=xJ(Gh;mu)>2#SMW(BnCkW!{(K|&L=e{L!4m({=4M6;X)p(g zZUS_hAOWShO(76nA8L1aqJ_Pt1w4irB&I*2WMB!!|45e9P;$z^9nTFaHaQXotMoru zAfJS}6TxT+JL1CM8eRlyaFPE`l4&7_j-a`tva`9X-Q21}oKr<5TfY}0+l1Uu_cy*5 zn=`YXs>(usHN39-%vM{@!p0ra|CJEoq*TiM4x8M%DKh|L>uAq%_hsVmu_y|ubi9#J zE9pPr8v$gApeJqYOI&gd=2y`(5};i_QcNAr=8`2xhqL*Z6FTIT_H&H6PtG%L%#td4J{qT#}i28H1>-Yfbe>}x~lXN|spqkTE_R5n`k=)V?HIJkUBFnxSXJH`#b-l&p}Hs2Fhc{hF6>XudlM}I2{7w7E< zjHtVPPH+ftz;A8P(x1Iq#(fruf^GU7!~!w=;T@^+}}pPAbk`qW;I`iu)WQi|qYQByK2N%K!5Tnc)Ei>JPVVWTBQuMeabeP70fD z#xRoWmPHz5ZghaWime~gBXUq$tsMcs4f{yEQ{m~e?D7k_{XC~v0NYsW5fpzzeO@s+ zf&ON<{gH?1jSpG#NGPubiW2{CL z&@HeRp1PQ{{AU!Z_;XcSc!yv`hOY>Y7&z=l<(u4&00%ppZ=s5+9cN=Va+MsNY}ODowN{+4zo0s9DzLviC*S0}iZkZ2!XQSvO?2Vbt(+ z%&WDeQA=*4@$WN}jS1KM9pgwQZ@Lq@^yxj1=ho3NFL@ z=?jJ`|4=m}0UI+8;(Bgjgj4PbcKzOO!n$E6ek*;02rZ|}$8@Jfkd%n(h4&&NlLvoy zH(R9!k#!L%-CV^1N0PJa_g`v%eDiarg=-sl?AAQLEZ4XrsaAJTHGRI;wzw6uHfY)5 zo{1k3O&0Y5$nfnuud#$+7sRgQntj7ORp=*i+N2x^1$2lHsePq#1qptkSfRm-=|m$2 z%|)rqu-&>nJM?h!L$9lu6u-^itYd%Sk0M5Re?wTJPqRslEFhWd8y;QUE&#(%Hq(iX zw^5oBa7BW%Sr%A_7b4R&fv}znErZ5AL@n2F6)O-N5+*J}sRt!XD>@ruH*-)w4~TXV zB!p;-4O^1xS4}*vk9GMqH+-m-`>auWE%mr_+0F=XLD-nD(AL=`U__=g4w<{|bUv{9 z<;3tn!+0_fo+cap&*Z6t!3f^4Ee&eH-#r0Q3r7X6LVNaO%JoG}{i0%g} z{JCzjfGmNnm{>~Ba{s6pd^w!^{35pg=M!29=ooJEx#p=GixI{U_E6l%3B4Kz)+>$< zg2=Jv5vD0sgrV@5q^VMz36f1Biy$C4#!^3707EV3A@h3?t!?o2$TLxCxqH`NO;{_o zj}|VRET2KpN2+N2qJCLIVpyVqbf|P@MX<*v*}fA^^+yTO|fj`2J~(nmY(=X#C-C`OAI;VC zr+nAlAQ+Rk7u}DdPi`1J4Rz(eEUzzm_crfj?OJ!GXuGB4bTUOS*wBbR&8(`)Pxc04 zD-7dJy@<5nUu3I9WM7SZLI^UHXW3_f-thi<$X+)if_=)p4AK-vjs_=t9;rs~VM&v3 zq}oajhb1mB;be5{q1vCB6@j9K|CK42pFvR3sz$6NO~s4M^50vvEx!36Z8hm{MxQp zhB1jYI%(-+TaW*Ev$^p3z7<cX zbk`cev|$EJ`-JQpq`I5iy`LyA-{gIOI|!z9G}~Vy`K2qZ7QTG|Nn0P~XxmZz*zQC3 zSK7Bw6NaNaG-RDS>`5U3P##92foMTMr>LgHihS6Q94b072~POHb7eVjX&i!Vvn!H4 z8}D_;YwN=gRW>h%{1tuXe_7Xm+3WqzEvl{Ki$gd_rSacXjP;qKbeRy7>8c!8VIw}m zDgwC@X&c8dRM4g40r`(b-j@T=Q*L>!En1*BpWVm%^+5SiSL|SjJF#$L8B1?9gT6(L z=aWO-%h&JNevxy2o#_vFmXOq)h=`(eIufr1e#b{Ao12Y@B4-oCTFaw%ZzAyAnri$U z(t2>LNwl*q0i?}(Hq(u&_0?*Q4U~mx;93$)$Ao=`_a7Vp`yl)uL#j(`|7D|-lyxZm zs!WXyXFH=j6~y&8U-U<$Cps|9T2v4ffsovbkQ_oSuSGBR&Es9nMk~Vc+wIIdoLku0 z@a|-2o{;kyfH0P;qP3-Nk-G=$?u_HlPnzoQ*yit|7(UOQCgQ!ffBuq|_0C_({b}p5 zJl^sJf-H-B^{On0OkN7z@^VCmVO^{BZ?^f*S9_>1tIEp1tvNPe=a=2Rrw5A|FPot2C&Vt#O`3@MC5&{IjktN$P-l z@qid)W1rX81{wGb^7MTztFq+ql-+7(MqLwdL#)R;W4Oj$q%>2VRt{S9_Bp-UpkBMF=kbW2kRp z0nbC>KJfOz~E9BB?V zBZ~k^dpL0&zig{v1BPXz;f~{?*Q;oh7$}hTV=uYv~tckAeby zK|I>3HFid|Rxy}_bF-WbQ)|F*dwsmDV05}3iNiDAz!(Ml2NW(cn>Q9~@2UsH0Klje z{mk^HJZ$|R2z{^O- zl6X50P4wJoC;uvGh`qr*kUJilM$=f*2bHyd^o`f4y*&NbppB6jf_S%SUoMiiL{aWY zp|&t%#f@u~e~Y6@Bo0RB)SU7;{r*-JB~IcMxUua&!M}r@a%`q(%PMis()nP#iV4?F zQJ^c!QM@)ly=4E(9E#ahMTsZ)4xfa6!I9 z58q=k4!+8!>#9Y-pn{WQfDVNk;6<_|_@j!mFuWU(2mOLr6m3))F+{1a_w7k1hVt*0 zkZ5!z;ez&u!mo-*C1H))=C>GA*f5uD;GK4b~_!EGKqc(5VGaGe&z>+PbPR7!licY zY}X!PuLnCQIgCg@woD+A#UhEW?-_&)3?i!oi^ew1sO=U(a3Ia@D;}468YtQ`)=VeB}+k6RS-!I#oK1HK*dkJ~pQ9XcjOO6Aprbh5_ zhZGjSKPgO^qpfe}+GQ@0F9;G>)Cr&BFv#OFbXEXJnxscLNnY457?jbS==FtqG6iYw zL~o&tvVV|*f`@5oCEnL+3FI32p>?GlzMQj^p7Jy-LhhECK2$oIDeeO3G7u#qx`JQH z?g!I{^*`Di4SAUR=&1R+{s50vA^^!x0zZLvkTN7mddUoRt5Tfo&rs;=KF?Yb-R=qgGX%7?JhZOZ!(_tu<d7&o)*lAXs5n#Uy#NjuE}+#d7#J?2K*i^|8-cpbVxf1mn;c&6QV-c6l3l&06Dc9 z1%x`H5dWyQkd^OR&$aP;TUvF;E&4&Dv+-Dsm}7uv3Yjj=@bPJ;pjxk4DCxQ1_<=+s zDZdoP)LBifNOXY#MIcOBEQ`0pbVXgrJd0?n!7i_ln&RZQxWg$yZ!By~S{oCmh{uYf z5MkI-CJCW)(oEv=1b^Zk09!;s1zde!VBxV}e!=#Jf-^IrN|$i{j=u$45`$zu`_o`! za2TB;P+9O+^)U>k5-~k8bDx68tgOx2xpqeV8md*g&b|3W>e0pzJ*};;Zxd;F*Zpej z5JO~Y_*GeP@rw6DhIpK(0)i@ViL~NY^(AEc$k+))?ghgR8`9i*net{|kj&(mc0*)| zZ8-Mx>P67$z_EE164_w!UdRw04&Qn&VkKPK!!T;cX?aYJ%5(ZEf`fh$L3xi!=kRPq zK8d42JiirjFyj)dEPnSaEzqhh9+hnM+_Nz4zHYx8ZB9IHSd#BTPlV!%cDS$|eINQX zXOn4Y5gGGO(6XJI#2U=`^EQwXN)1*JMX00oe-5u5Er0?jWp9c6N+R}yql;H5=Y-Y0 z6rUQ@{R6o>HFYX2HL=A&5<-CcHGbfnkgK~wVXt`cB?%Lfbm@46X7-DOW81(S9Slnl zK-c%@Bl|0#%_YWVp0XcVT1_+RH-7m@%7w<_>|y}@uHA?fV1)*!3ft!cZ`GAkdfv7N zplpC6?T^rEG94llF?AVXpc^_Tg1k&`)TUj{q_-UgbK9!D`Sz9l{~f(qK`nb}hVNbb zHlpp{jtTdD!vBY@@DlMLvaC^0T|JN?IwW~7v)R8Z5{MP-eJQ3w39Jn9hdJync28V0 zyf#c@$CQFplW`M|Cn*O_zf(H~JCEdkv>TG@kz0O_%*iX593W4>>n+1CbKpr;rzZ#D z#Q}09`mg>5_j-V))4;i z`4=RLF2`|6VE6j2Q8SM`b2O&u0n>`zBEvQi9y+=4^wmPX`Y(p5L~Xf}_okB?d=Phc z4JkLG+SrLo3O_61`i$%Dgnlsof9VUo_J#ARGg9XSWC%+3q-~sIb7h7p3qE)HKn@2} zd+tVjebZIB4zu&!qSZ~0{2I8iHm7Np*k%|=Y(7AeewL(_OP%ha6mDhuJ(hqPN=Mug z+^H4nl^2#9tIYg56&J@k7V&b$Dtz z2Dh<{+h9$k_ppq<8nusS9+fU)Qh8t3pHs(C24>>D?Z5esGRPDI0>ELGIV&h``?kOs z54f-TV8($=u^PuKRpwuoq9EG$Pf)EA$)G(5DNDHX>}Ny=9Vn1hZzlmwO;uKHTCao_ zMw@yT%^T=>N?PN1WK54}o$GWF)jj>E(7d$=f0VSf6WZ3=2!4_RUNbLGXcHsQjtrY$ zlRbk?OTKR+=mOO8bfO_DvqsLD*;hy1QU9f?TF-VTP{m#sVY7D4FEx#^Tz~7Pk}=f~ zc7QPX0PYm_!Tda}R-%2saO7p`-i=Hfbgi;P zIUM<9ig6iH)!}sO{^9CnkJ$KPfERi7dOC2-xxAYbU5>v+PxSC1`4b@+jfyRgwzY3r z9-R(D-MTBn825qR#}|QqXipRA<0n!R{%tX5|FhS(XFrPN8{bIQCA!^aY*S&YV|rOf zv=`2Y+0B$Aa(9jcSGChw#eibHnod`2 zj8VV6ebVB5L!v$LaY!Uj;Q5*(?OsEf#ruWNpK;n=+cuBv9vR_;aqzx`xoDx+9Bn_- zbhsw%UfwkJfiyw}SpE=J=abI6?_S>uJlX+)L!)-Y37)%*Zs(@OT)jZwHFt~Pw&zsu z@U0!{nz0{cUcfQLud|zHc@n(~btj~hXNUDRZ-3w@x7KlS zt!kZGj*Kd$!PyB;k*(1=Zl$~1LZvDWSKdHOD=|&$+5vQPEZByeYu?o~T0NZ)GhR1A z2P7@vZeWi3p@ zkeE}?(_f}Iuzcw5f@O!G!FaH2uOBh`;YVjOGv8x_!;CH*G;#4&mVGYFhRBW+mMbQ` zOMcp1J??qEiqR~sL+Xw_ygr!p6aR?(yzC-=`3J=y1#K}nV#}4x~uuaFOCZ)+!i91RH0QtRtK+Uc5FI(DX3yaL5UUG zFwa(#7;>_tp^uBE?L;3@q|3-)UUshQ&QsWZLjCWwTpuDqfP` z8zBhSrx+Psdx@>p8{Q?Xcu{;tStr{nEl<|*V(oa;=KY0~W}Ambj_yvU@9--k1?$yV z!s@r0?F&U#R1YnDDstrn8x!3Pj&CWYKrfY&;`f*5GCU-fZkF`#oW(! zv8GTZn`3zwZqgOtv$2)6VbeVY$V^Cg?|P)4Gr~ksEJt>axy?@tn_mURKN@{VJ-45} zNy@8y^x}#!bx6f*e!1LShqk^kxmBu^idJyu3zIM-x;#}L6*u#Zk*5>eJqq-ET z@?toBhTPAgf7-<#cxiFtc~Pi*+RK(tKh#Ga)ZrR3J8Ac|8zhfsCZ-p?RA%R+czzdbn%z;Zj{pT_`zqv1U9%4){J8sCG@R+{|IC2GIVH`t8g z0kE8oN|4w`n)Tc*_5S^sUz@!2`J@DB&9;VG>E-oO%ma(uI>d`_k^*^U4VY$nBP_fq zhIs>xatWkEiSE#%ShN&Z7tfRH1BQ|Ags zH@HQU7)i0R*&@?C+X=8ptT-o)F0WNyB}S>Q2lhIUHGVc*h8|m}{Sr_vf*3Pv9KH zXv;pQyB*(t<5xNyR`p)19H#GNH^2}zPIuRPzcJ+E+P+BMO0M}lJ72)a>ek%_Z}=%| zV94h0ZRx4DZMfAjU)kf-c|{9M2@ZGZ2iSAr(BPR`}O zSpNVMop7J&*?!)oW?14}UGZPkZ+qnYa&W9f?PGVsE7#*?tKY-ba=OLBsw&YFGL}+Q z@YKW|infpZA(G5s*DGr1z&#$5xE3w-L4UcynxA-=6%bkdSV@#osGfenWQ zp9ZJm!}XM+qK&v~oS*F7&JSoCLw1r4H@(-kuwB-Nh8ee3LLjQBOvt%wS4bE8k-xw| zUv8_&sWqJ0zp@D3hJdFg*xAPMU)XEyzCtf3jltrcIdv7M_B4bJcT zI3%{}SMB6Q8^YlWE;k5~Y$#+XSk>~of#PyLO$kqNO7>pk`b|?r*7do}?>J3;M)cqf zhR{V0#g=NEN43#RgZ9xGukhgD=a>%N&Q}2vaH8q$Uq6UKMyfi0ES4P)9SJSA6Sl}2 zvBk!75+zv(EUi-y5LR?LirF)qJK@b%36%K1x1p`O$snN7DRp^?YS6wZwU|y_RDb zo|IwH2N`tWvF>_luCqWM(<+a?4(5x8pH8@o4K8peRZft@T$p;3(_Ic9gG}D7#NlKw zEV1SkED*I*Ma!uyW9&f@=)>Zf?U=+5o~sDSk)v1wITpWgWs07Pmk)IN%P%wp#M3Td+c#-u{qC*GAof&S^G^|Hmu z?y<9mvfc5x3L?%T+P8P@u0OnYizK~D0b}bMZk_ORZ#+dbM{yfvirTKP*rGZxtFU>g z4ZHL7=jM`E|3%P11 zcS`^s6A{v5+WO-@?^DUmwZaxRIK$fTbRH(+d`R(BFa1;*bCcMHFSPn0VBIF--F^$d zJJHn&Z+r1Y9Pib>i`qGa!MJoE$gx$vp%^>Ar$dvYx~424UKZ~fR`-yikK=!cz<*7I zsAZiRt%*H|ZW`}t_J*kn+V=HsZRx1;3ao5N#LtAjf$5-imj{9lYNO{V4zR}A-2TFf05hRk4$!)yZ6yj>2~N3DV{uq>jz8aGEUpzm~#d33g_)zE^wA>sNzmNX|urA|J7 zWkqz?U?ljoy+{&Rz$e?CyFKU1j70x;>F(Hhf<_p*J@atmQP8`RAXSs1w1tb{pR{H9 z@b4KAl}hWIu!SpOv3j8<=;Gp@08x~=+(HMqQRwrD_uWcIoI_!fyyLpOQ57~zDP8OzI|ZL2?&hsSrR?cC!Z z@6sbs1N`)9&k^e*w8HW`d%El|ANDDqaOPYJ^4Mt>dSK1 zhpRa>V}|jQr>$=zt70(ACX#Y-1_mH6+~iR>3*-d7L}Zjdftgg%2yA6j!6jwkOt<}b zO}h5(YOGHo)jd?ysGH*vU@?A}GKbTHr6e81zyAgVl1}6dAKP1vC%im!G z`~ox*<<{}sZ9>hTeeo)cT7E(#m?zASeabQ0>*YhMD7BG6+anbAKfTmFQyh2U0!TO) zsy8KCvWrxx$w*=7ODkW&vr?R3ktTgSM}CF8h? z-xw1Dqhr7vuSUNApWiAglVH6wBmj9nH<>zN}qksw@Pw7pu6UsJ5st7MMql8QA;vWlGWF`X+=cnzxY_nG#4 z;c8fG6Tc7gKH96R3>%jvueYzgo`ZW8guLFYz9)0g_|@2-{H%g9$YoJqfMCC6phm~Q zrq;N)eif&2boyBJKSay`~?BqB#zzg=y79kC&%0h;Kw8Z~fAVc#;wCqpK-@6w!&Yu5`8{f!cFM}hwa=GjdCG#epm8+LX8h6OV0v*O)DZGdgo<0JI=+8< zLhQ}w^)SegNtZC%!{)aL1zg0QCslPHiF37gtY1n_(eWQu1fKeojGtC9xlHv0pCVAK5qaq)S4fry*Sla)#ErXRY?e!^vIR0hPHMjS0Eep8KAPW z?&qSIFOEiOnj#7EvZr{83qOxexys)ozWI;Q+c0BX--xD!Y_W_tv zpI(d+X&Hk0lAkhsF)CX8q8#J|sLzT~y|z@X^Bjjnx#%cg4sYF&S|czZu;x_hh zDD?^MP|-v~n<(Ui+eQ^)hAh-Xv5;;+l$e>$U;0R9P=c3ZoKAhi2z528cMm;q^-cJR z58cwhCgrsc9i#;?lFkz?QPqUJ*FL9i*9C6To;YTH^?UCfN#ou3P;8e*X7H7wg@&em zn#C$=7y7Q*UWpFoBIjlSB+;HSj`r|~KJ^bPN>lDKBe5=e)VaUM;i+y#f-GY@tL5V* zwtVw7aKKLQM^6@-H93FCSCHbj*~0B#$B?#CF~fxFBQ$ZrL?@>{*%zbUw6@V#Q#Exf zh~46#0##rvy`zQCIH^N;1>*pveTBse_a{fQWzEkH+|PonRi0XPybtfvk;{Z4|E8M@ z_+BNnu2kKT9KD^d<#(j=vR`cOsTsDl40d9k&`QA*W{LC7(O$?b*0*TzI(VJnoBY&2 zv!~;#;vGxvK@AY*^vYDQ#|~9)<@SzM`F(!l;abqMqrK(tK#pxDoc!Z*!}9 zT7m*z|3X5pWJgLgK#^eXkc4Ze?~?y?U4nv{G*Ppq?1I?Xa7VW$Dz0b>!7*%Jw}^>& z+dPD7miMLq{=TMUPsHASs4qRWAENnPk4GclA@cDFIi~C-fUavmn1V?WVvsSDH@wY9VbchOn1!}h2e|zD(RVD;^&^)hBG@RW3PW6}X zWC%-Y!lnn&>OuFF$;LyKkL8_MR#N(gO?9l<$QDOHBJ|yU=CVPAu_m?St!VOgZ98KG zUL(1B=TZ7sg>Nno2QQ}M66V;_C*=j$%Z+j9EeU3m*F|AbYw=pwr~&rMm%j>3 zaP{9GB;Go`m9wz`1lr?dA52z0SNhV;6jSmrr{A?KTB(w-mCmw#!P9NwGiRw(LAb zwd-Hz_lP`sIgifNK3{C@AGmG*MAZC(Jc7#>$b5e`DWLVD{h!(X+0E1es}~tT>z7d1 zkwmV6kFK+c&=P3}u*Bb(NC?*y`WKAyLVC${xzJ;U_G3A5N99y7QyKWw6+-ngM!PN- zus%;^w7ysq=FYVIGDsVpf{$pCF<>461u#M<^Zt+m2J>+Y+m@_=C)5XY#sp4^dXC zFCh)DL>Ss4#a*}wRM}0Zy_bH3I9P*QI0vFmg`7IufjGMr|diSYif7l4EaHVGM2 zJ`I_dm)22Pl;x&yiED%=VpVb$PzD7nCV*zOZf|M+gax2XCQhnHe*!IF{*2?6*)fJ*BH7>;MZqwd~e7cppYjeuDF zG^2t~UH2oCHJ3lIk%gWBOER>k_EVDJ>$H5Cd3AqRm9B|6#ue%{bZBCLX!YDr;7vaS9XkHs_Bg*Np5hnHS1TE04%x$yA?*@L z?#?fBao{*k>)?&Du8rZRu)e3ezI)vDfvzfSo1&@FI?$RbJYr=p&Tmx=pThJ*)Z-}4qaWwmS+dd7b{3}yZwOYDEz0X=_uXPpS#SEi6 z-2{t7#KbfS$QAm9r4n;x{H)8Sx;(~nptL%$r-k{c-O1TWR>9MWf+!;4v%rhAe@da= z7XwG}%7MBB56oi6IbfgfBN$<2m&QcWO1<-e4rFA;K@y^Sl0e+lzg8jO$H4&Xbmi5Q@kU+G8lLLjFlI0MFQcS>$}9wb`|E zh?864yXh%{&f<7TstY39M73&wx8|M*EX&Dveax|E?$vkElJz;A)Z6XpAP`pOMzT3Z zukx*=k7-aDQQT0aZseOi37ohW8-o9=_`hFihdhfZlN1u(MDJe2I&r{=r*X!d+L;YQ zhF88uY)HcD4>_l}opmJgDHoA>9{nTe5~(E6Lg$b4#^>i;qwR_#TF=zVu)Nm~j)pOn zlQ$SSW~_XZFiwB@*yc1=B;6mNlA|`QU3eM({QzdWdNTF=2IKF&49O>0LkmxRE{m6* zpi$FmkrMIqQ+%RVI!hpaif@*u<_YBei>(T2V>M1~E3T3=ZUdJ<5d7zqWTpFX*xV?|`+FX<0ma zM`@XIRQcDn^kG$#h6~TR9jmWYqmV9AOKz)IAHH0$H19GRCa??bZHnwT`T~A`e34(@ zL`~O1)0D%?xTJf$424KMk6CNcby8^vzFLvUr8K2N=sv$>2S@(`T7^TaNB$F>UH?{N z>s8z!P_)Oic!GYn*i<+u;-b2?AzaJEF$u5Hnd%HDACW3qQdfQdqT1Uy$}B)qou-t3RV@7lbKEkk5q64g+I~!niQPPpGN@a_PBDQa z-T6!-_T$@i+Q{M`0pAI&;F16fKH~OI$>AnTYI`!0__Gh9HCH`7k7snb`YumB+>HCj zzo%t5n8oYjhuGXtId0Wk#6gyKrm4*(LS}+zy8im$!1goGZg@NfkvtLO8>K`?7`u{E zRe&D%d^@Lk@W<$n`S~y~m~b$X31SRZWgt~y2>k4*;Z@uA%%lkJKXII(AuKz5G@d1X zJr2L#|5ZtDvz{#i#b+i766f8X}&xXC8>6N2%G z28N}U&W1W@ky1Uo`*dxdytMZTP8I)5N(^@XI;(HRGWzFF!3y3geX^a%_D0-sL0L2T zX!;0Y-}U_S5jt{tG4qFl=$01sRQt%)>{^~dECjvn_`=g-z*~_RlL5kRM!W{=D4=+G zWsSXpzSzR5I6hL&fd>6gq;*|5Yn)Db-azC9$Rk)q_o&?$>PpZ+QA*^E^nG~PM#y)% z0{EZTlY%?T*T9OM5l3=9WnW`=EI@A3;pWH|WptGs$%2__y-;q(%* zh?tlbNp&D+Gwu|eTk01T%vFFk;Woorp{@S-7}*(WS4Eo=MW2TlAKhdmMRsNRWk zhKS#pGr?fv7c^7NKX-+YNhVnWl!|+@F{-(-@&Vr7uc-XH5mzKU6w(p8s32;ck>{9bYt2wIC$2se5ztaFCfG~w*fhg^Kco_OizyS=n%?%TCEt|8o z6JB@h35ktvK%MN)8*o>;w3>YDi2cf|o7M`oCJ`FTOlcU+{$-$R6@`6?tZyDp!mLS; zQ9!V)D-A5c9o*RgI=#s^`p(tZH~$U!C*XGy*GLhplSPUJ7O&y7ch+3FPm?DABbz87nuS?BmM8S`MzH?BMOnvuj!z?$0I3sA29F zliwj}m=@RvE0dwX0aM6V;O*h{&2salBLZmnp~wiOfvvNdoC8u(x~NGmGynkAgLjvM zfI4l8)PE<(t275gqmGmtROnZi=Q$l}^37YbwU09BC&O#>Z_1npad-31S-O28NCopa z+Mu9DL;R==;! zaJU@s3nf1pMhlsTs??Ql!IKvxBXplRk*@cH0Lo&1nZrw1p+OC26+m8oY`!_H{*D0Q zkRCr_EipkEHJJ99dE+z?C5!Qjy|b{!F1=XK{By^-Plt<-Wx4djIeZFH`A%;sEwSWN zstPBD4kM^3F%gf*2yK{1mJA@3 zBKZ-zl0l+K?(X0c&9^=TVz>ImTNO6bj-Gb@;o2wXrRv)38a76fQ~7QM{_|&gq-jZG zh#xGg0SGk>X(%oJDJsIu31x%6{2UmxA(i`bLI{ZKJz_Lq0BO6PUI_dxH=PPrO*N@y zxzR1MHHb`a1S*5?43o=T50zWDBmh;iJ$|f=@XXBFVnK+fjqL6Uy216uFktSus}@wQ zYd|7PzknLpzi_;5lxqIe@6T%}UX$M>$D=zxtt#N|c2fYbxJWl(MBOm*(f~$Pl7OD% zNb#vCzMb`ziBumn^BZIA;n)<)dsI?22#J|PX6U`qFE1XbO9KAXaS~$0s9qf_K%H; zCJOOMlX4VM6fSR{Ap`(ii3F2Sg#ZXSJ`f^>QkC;pS`w=CZMb}mJ3;937>pViXn4MG z7F}7p_3IzSj=ORt{aU6v4hH;1?jW*#7x zkLbz*Tq$QO4P&(V&*-iuUYu#Q-c%L~oag(dUGI)0r6*a2zPcA=RSMMtVNmF5fY-UD z_wi4|ADIDC7F2c%{iI1k*sX)#_-pH!OP4>$Oy#j}t}s`9_jT^H)H#^E)I4bBOCJK9 zX8|cqY5Qm%a4zZNx$8dpt5>7$3#)}6r#}fpM_K+i&$FM%2Sqj(zOf%eac5C@#+=6t zq!+&JF3(eW1y}mn_8q+gF*R}WV3oiuMiHH!<-#96mm(eOAAIKSQO9yrmMSF3eKNn9 z6Sxk+G+fn;$6ew#RG0v|{dMNM%R)%?V2|o&xaRM&5zZ@hlpXhLi2UkyY1`-2`+KL0 z^iOD#&x0XC8T#)ygV6xRNLFR2VM*~I)0Z_r`X=%~(IUQbablJR2v46p|JmrQDsU2PXW#`#=W&<0+cQ^~_#B3DL zd1ItDH)UR+&#a++d9fr`?Pz~4Gf3)4CjSB}gb!5=Qx+e%Jki33xyv@9vt<7cT}w&+ zSQMp}ZJ*ZpQ;KYU1q4(-13mLYV<@A4rv+s0{2G5pq2Zy?Q*iwh^KTSkjfRQp^U!{8 zl)&&uoRY!j9pi=eZ1=C zkKYkncmimNllZX2f79ZJ#Dvd$ZWPw4EiSn#`-B&R3x)s8t~n7m6D)*OzXg4}-Bpbg z&Nc`U;qWc845dD6f!y#iNp9(bP6NeX1bm3 zcisYmSDK@3Ny^7**BvgXIm|^mv8t^_&=B{d02~q^di;qkiDH7YGxUp;`zo&G;69LM z_>9Ar-S1{;-Hu9AL9ZS~L1?cnm ze>G87AG~zg27zbys7rOu)O*kbd-o|MrbRR4hZ4={%%{ioVrOn-Q^K$=1G9#ao2N{ByWOy=# zRA1Pq;5~CuZwRU^XQ?maWzB+}G7;0K>7WuC#5N*huA-su2m$Vrg=EY*t)>uqo~1DZ zy(_4Ff`ii6d{|;U7)9e}vUira2fb*E*C1eZOPE)f!*6WP3C7~X%x|BJ`u#0;alJQD3rf z0Dg%D$igr5u3wc3k{08JvEK<~J|eFV!@rmq({r>^V&_1Ra7TR*S>EPue+=YCzwCgp z*Sp`K?yP8pH#g&TfJtK0iRcb8oqQ0wcDFVVgaohAJah_buXp}u2w(Jy& zYCWJjVVcgx%C?Yi=X||-qTHcnY3DN%f2Lz2)0+qR3fWcO`ry2%b*<~E(<~rRHMgOw_Z0FmdPP`I{mDP2EbTGWEk=dD{O|a>vBLh#<)((=!^6qNG+;G zVkUBlGGWa!r{S`?VaiT-`>a;@S9#rjB;zO0{$9!_P4RGoOA z-@ez1`DIr7Uq(u!1w^~C4goNu;c=ci@$AoSI)4;BNiU_Kyq<%lYT^l*CqCVZU(U{Y zy>tJK^3PC@44tQjG~N(SJ4v-!>ATtO&)pfwbm6*~YuiYH%q?+cLkS#U234F$-q`=U z32?*=ye3)zC5BrpVSHCiLz}PbVC1B{+E1yJRqF|fuAE*V`72QHnjb&=Z)*IFCvrRr zSL908i^FNBw?4j-7O0~W(p(G-TLQ**bx!#4s1U};HO=>!07{t_Qgi<_&@XE6lH^K; z4(SNmGpt8wUfjkih}kK%|4x>wZ_YG%RXjLIvA#TxGAE%Mabc|it4Cvc_6;!*;|Ig_B@QHeHF?`wZKgZNL^Z39q7Ql4a_j`H@8lPx2IYZ~0@T1ehTCeD}?a>c& zF1t@pzq}ZJPegTqJ7WMq#inj-0ksczy$iH@fKJ_;#q?w{)hDFmVbPey49K#Oq9y6m z8`7u+NaGh2hgzRN0Vi`#Vgme5IpsyHC3J}FChG@6qPWQbKm7~8pVrnd-xeL7DyQr? zc_c`8=XopfNxVa6dJGT_LJUeDG8VvA7Ds78)sHJObTj~Qb734=$-i1BJg`L|Zsg^l zm#eO3mThu!g3#@sT|)Do3=*S)zR7U{<;R7Sim8rSe8s!l@Pfn_67r56fKsR$j@!2E z{L{_c6H=#7_I#10zUFT|cJDrb#vCU*nkGu{`+d!(Rw#?AnD=sKbmeEEXEke9AtIHi z{p^}QaZy7=Mwn}yY({SakjH{Di+r+444>y*0jAz3d?4CMJw35E!?eCUv?~C^g}oar z8>GW%JKizLB7*q$5WCG>$$!>W~AVvs4 zy;8QXKt2+)UJ;$2qny};n>8&p@1=}4zrkzrSL^9lLeBZV(NDR;{v(%vtGO&Dv^y{G z=hpnxWtz~R6Q*fB-UgQi?Dh_TBICPA`PNqhy+bcS<_wxAliEzJK~I7!2PK>9~$+UZVL=xdDLL9Dkm>xDyfiQA_t!U#OGc| z1z}9~@0bu#C&Gj6E)M5WvwZv+FQ{DIap+TPZL=^_GwvJRZyMX^GR567kd=3uY?B8y zF|IcrP{~!d#j2m^iq0sudmQTn(eCL1RQYyF!b6i}Z_J-}UD3B1CCV*jUSayYB3r?0v*JkX3_;qcE^~p~0dB4G&RKGq1)Nphz(KgKxq~faMVz_@vVq zfGTHN(-7deDfD&&Y*zeC^FE!$Jw1Uk=Wg_$i+>qC`pHdent#OMKp{b_J`|Ioiy4qV zp_QVmclO8RMnZewM~m&jbCByZkaLE&UbS4*SFGs(wv zKnP*#u2gbcf#03M2Qg{~xGY;I?B9Yz+Cpw*FaVf%s#$3F`YBv6UQNdc%hud6NSBrC zx0ni8XrhZ>HqL4CmT*)YKv5(Y~%at zP#%$xC4|@@*8b$(C~|<;d+7AQXsy&W)(}kmmfmFMpX=#eK;x+i0##Krj``ai=;}F4 z@i8wD&LqYNn*lMfp;!d&jkueXj69m3%TuCG{$hBc(kTfn@W1INM443Xl!W-mCK~QU z2o@E=gG+VyyxnFe)a|Enm!Ysv#_*MX1f#z?oiswmy!MYg*N`CeW@|1nD|Lj2)%MS| zyC{fg>{65*Gfkc5{Va5*Yu=-Hc|E`8KXTw+Joi4Xdg85PVTP6%LPqIF9+ z1cm2uPBw{J3)uFziW^@1S~O$^C9_zr8MKFMjei>}3PBBnEk!jZ0Pp!~0WY+~343#* z?khrI0OS%)VJ5^WemIgGo)s43&6VTc#T~Hg-%z`W<`XClcN_3_IV#@jhd&p+M8&xK z_L4PGbK++gf43%DXP4aECpS}( zPixfDz??Sph5o+(CyA$!gqEQ|>GgAx9bgqOMhU=GO%d3xiFKXz6{>RkJ7U-n(5K2q ziBH}z@X6?$uN$sq9{Hv2#`(;h2^Xc_qxL0W{Gozwx}PVMnCJjs7WIhaKvcdExzNKn zaPcEsbdyaTZNzI>*0K~(gmj6ysZW>-3yar=C(ILW4a{Q39OgFKME0vHOZ<9gP~^dJ z8QPKVwiDe(LK7O%%TGOdXSpFkTXDK5_0`x_01JP-D}-VFJ9dvNK%>rBMlA`LcK%#@ zltV}UburC}qR;1K{{8jX|E@{z6NVD61NlHbk%jd1si}p?Ck0GG3K~x4Yac00 zZ+XwK&jg^|XzFRt(T9Hi96j##bKKh^Kqy3C!il(L35#9jUYiPAy3rsz1i<$F)D~WV zgpDZCPx?+5RZWdP%I&dE%I!Wx^z!@K>S+{wm}S{UN+%v+ziajtCDD2}$R!z|RhQc( zP7t~-3@IC)Up|Ka#-GZoSdr~vxUa6P@H0I)Y-l2s6(|k-?;cTzs)u*x3hZUo6Y7Rb zc3EUi_@{k~hh+1Qs3!lzfhK5d|6^UE&6f77k*phL6ag`KZw5{!VJ$j;{T|;H6J$8u z1%Jc@R9FIT%vD`AK%INLBd-EBf&bozJ(_$!7o3VjuRs0mcD)yWs*@CkF^c{V{=Bbn z?D?raVO#Xb5^rHa2Y&Qz)m;lJKc5pVc#l0`@t8Zz)5SP$xcnhxNe1$4&8UwjlokZV z%(b_>t%KBJ=>GRC(}q%_rLO!x=r?Bx-CCyBNKnPndKo`ebz%QSbT%)XjlP8v!YM2g zfIs|;qIk%7;{PhEve;WLmyDKu?3xeYZ&kG_y&POka3q{^fK!#hfNBYVU}CzCw8W4L_tR0ZXma_T$Vydf^Z#Ph8>`}Lb`bH(2x zix-I_ePTbJ_;u?P8lR2)#B!mK;#%~8x1_c;lLA+B+=KK4j5i8|aY*bQ5TCeXrin+i z7FrVV)F3XB7C{WMus$5$vQOOcQ_|V``B6CHPj+1Zhu<_@ITV6|WWd}McmZu#9&hl9 zz>n1DGhQ^f4#wYYS2Yv_pFF!1ga7I93Ezog)Hj=+eKTE1s9HK%|8OC>ZHiwI3cOf( z|7l4EO^@YnodA%3ZVU6dF0c8}tAU0*RCqVIZ&K>M^x=0oRIh!w{FQDiZ(mQjeW3~p z(@;SnXc!j|0v@cfmFGJCe=op(dxZ-_nLz}u)wem3n*n;^NO}}Ffs2ElDfZjl6c?pP zVssY@acT+AKX`^4%Zz3vtFsp9;f&HltxuxI?afu6^+IBh8~QIsZ~wZ4Xz6$CyZ@|x zQSyawUpt7~+e5-BBG|F8x6T1_u0~6NQF*t?Qx`3;};BuS}xZrVhoVhaYO%6 z4y<`0!s_{&F_iTo5!jc-0rhI2FszCJI&0--8ntF6XMqW7*&90ltf5lXir^5IhRmc{ zYQ>K3;LN;cz1Bah8?{C$>>F-XSPqgRf38fduK7S}nI|&*r$a@KSsmyu@NfiZ0L1_4 z(w_=jn7!ko=}&1g{1sIL9n|)|+edHP8vrbDd|kgyVWxh@UFF9WX5y}BP(&J&ym%5!)Ex|xW=`c=%OKcSi+9?(kZ<2Kz%rIs2tCq(o>7wOxz@EliJ=OJD zE4_Z^XysV=JG_tNPI(H0o~~SL-|d4@pSL$r`FlCOG%&#g7=%QrKNshOQl4)ycKk>* zV&s#ulvgV7Y;Gl5vxMTM$VIyoGzhIRy-2in+#s=duKD2)*ii59i{;|M;B()ZSQ6E$ zxh9jW@v6?pM~jjdKPFmlTAG`75>16%q2|WGHq|Tx7(=(dMETfshj1|q6gw}mj z@g`-rx_X10fe4U=wn5m_UFk>v#)v9iIX8~<7NAhD#HRzfuOKT3oK_umzWr~00+U(d zUcUZpx;>n%q%TCB_?_sB1-N-&j0YWnxcHx3b@AI48$WBMCPwlHm`BZ+NDQ5Ia*f;5 znLd|N@aq(S-k;K9ZKECRh@3=vk_Cf_v?OB@5F6!vah7V{C!p8w?furqCXfje@i$R> zuK%m;Yf`?xZDHetI~gKLXwe~ywgJ-lF_%1yY-gWNE!+Pf<}>fp%UbUN%@>H9j{F~k ze&I1L!Jg5goew(UPu@^0{SfO7c`v-s=WY)C)B_+f3@%RU+Swy}v+Ol@y<*lTTeWU+ zPD-BI*I0g&RF{8%+-8!8HYrykQ2Ldq#pB1Mghca(0CZz2d_}n=5ns2Q$VfRgrO4${ zUOspyPq!ds9$Dp+H;&F-XkY~lOw~~5{UveL_LMS`Yo+n{6&g*QGGcT9M%O^#fd8!j zWy|T<%z)In4B`JUdM|}k$9``7HooD2DmuXQ5NQ&oCw6(7!UAgmL16Vr>`-bmYatPj z>XO#LmEpY5+_7(ATXT=etMsa@XM)|`CK6wxR+E{I5k{KFauK<)f;Hb3c%i4}U+*lc z6C<)a2U|JDlWWjEKn9|562ciutDiTaK@M1GvJknFKVi~f0;MHXIHGSFpd*@>(tDa! z6@k_Aq@9L6#yWt~*VDQ28yW1K-S_mD4lN6k>Tlj@JQ)+qJ9NsI$^bFF$2z=a8v^dk zg#I_?y=%8JiL3aX3&UH8k+Yk<>A<61%_^DZFLv)Ih1IgE<UH-Nbq!Q`$EfFe8#fr@2}aWlJI#GzVqr<`oSvpSp1 zUdS095C}OW+s}AY%3`^Zr;wKPuG}nF!Q-$0U}w*-S&3^*AhEG{cls6;E?CxGSbTLa zVnJ0KSCz4;F-ny$->n49>eoN=_iQg6aX(et=@j9cHRzMbfrpDEac^Jz!oAz6L~^U)6+d#&gL|62|HHTf4$;_H8$j9LdOj;F&;6n@;kin^;#hhd z4s1sAhPQ@BIyMjG15rU)_u?B6CwYuDgBJN6uo3hW6Wjs4t6TZ|NRLiv)>i>q$AjWc zF)`A>^jgxTGm=w&XKuL<=uy9vtYH^&Y+?rhb|`7^fr}9*HN49d+?i9-{o{po--E;y zi3b%TAo_G-?mKED%p?kJ$rU&lUKmc1*)F=xb}vm9xtn?>HYBK>PvABp_AGKBOs1hP z*hV)0OvMabTAq3#iZ+$?>7P~kZJ&iazHbFuuHeWH$0&zSf|0_XXcJ5eJ+mx3E6>Hq zGT{l)OwFL#^*hHg!GchkVa5bnR#M6@)NUOA*s^essZuTik0r2VUT%iBq~09W-XTXIENk4ViBerOwS zHp(XIZOCdy5Nrhh9Kt+7y5ybT%0Qy7}dDY!pWKNn$w}y1^+1B%gX~D+Vd9CIe z-MX%m%$usGek2~Pl36N6pNMRn;&z~>kgFneE9Ol z<2&er5=x5_y^q}LvEg^7OYx}Hylyoo)|4?{JpBiUTvT}`$dIab>#y}#U0QM-vm}hf z`JOYVG9%K}lEeRFG0e2;1i&{h&Ag?OKG+LqnfJt zu|MX&Oapf;64yA^BXlSfFaGU~JTr8VPw{L_G67)HP7IrhK-uVB8&9cFvT3T@zDso6 zUk(g7XkQ;4kd@OUn)Ted*^OuL>$&=fZtB^?r2fL@<|T+2S@O6#T+B#FziDZuofJ4R zwk}!T_R%xA29I@zdLpA(#a>B)66W6I3G1!7%ZM$1)D{FSN&x$%3(|usS5@9IZv0Vv zb`iNoH|z|5w?pU3E#~BCSMC^KQkaLt*oma*4UaeYnZZL3#B`V{$>BJ>ZD9GOM}w!5a?QOiT%r-u)|MNIG3ZpTy|B2tw*&j_4fzmE|0hJc5#yfG12wrq4vSz$ z#-Ri!vJ7U8#pq1b-EJNJIXREDnCVLv9uFJ2GL(+ri<_P2)8*r1wO$`1f&cBXfcQMQ zyp7p*)YBr|6y2Q1waYFC&)syg5)@pHwZ>Cge%ZpaNISYy= zcNjje+|(z;alD*2?kK+et7!c2vxWNXXzAo&3DtQ+x=>iObK2XbcTT69akWZl_2?LN z(ht6Z$5One9mI&yAFtrj&9d{EO~Kka?usWat#T{e)u0%o&!){}dgIB*Dp${m%Ij+H z=7>eK==;Kz;+Xz{`1@6FJvm{5g?Dqo;bU|jh)|R8?@4isvSjn0v0sevFzOqwR!Y5? zJ+$}b7wS7FMTTiO1_opB2`FH(fuZdKd9vhUBP$5Ft2v+4eU6S=oCSKUn`X?1GeZ44 zI^FX~RFZ!|wU}0yXvYQ~f|G#?jyJA{hUmPpyYb}6RQ~gkDq9j#Kl4W!<<64AZuYH7 zW2#B4-nWZCK^@PyE?4QFi1Fp=rwyg+V~t*_S1mu^rzrcobWt8>?QP2Y^k*8?v&XN{ zISBKcr$6KFteW+!qxVW~FS)8*MR1Lj4Nes=vZYY-D7WPci!-3kengfAx%B?ut*0w# zvE+e|OmfrG*}!{<_7tQ)9UpIn-E*VPgN@4KnIr+#jhY@9FYHRS{Y5Bb-9co0Jy>2? z^_KI7JQy(i#vUtU5eDvDT+HB`7(HoaQPbDJqefqYe7W3DYCqz!)-#Z&xbpvjY}qA} z7%s}cZ~Z%IHy*A%_W1NvKNA6qYNH>Fny;%xzf)Zp!2-?)*c&Y~KMIQkK~3=ey2A(d zdwdG?YHgUG5#1;pq9D8*Jq^Fr7?i;Oq}CD0(lwAVx~N^EAbQ{u?;^hEX#TG%c(yb& zlMaz3ef<2}2WbCS`EInx(*^Isy;R_9E+1w2_GoYCgIWkm2ge*Pb!VkSK;n}AJOv;@ z`26ra<<+sj_39o9DNaA9_QqiFC-i1eE1amm<0@*(x%5Q`LG^OjQ4_K=!N{8`37y?+ zApkY{X$WazlUsrDcxga-?Sd0Sni9xa?)?75&%?QP?)yp6_Y7FI9pCS_CK!kmZ^psw zmd7=D`P{(Y9v7x==yB6p2{(TCVJHa~tP1)!3VU6N@jU*@*{M3KUr%nCNQG)`#CAb! z{R|dP#gToNROu-7PZf3S&0e$F`ybOABMh^Ce=PC_W%iUSK%Vs4CK0|++Unk#gaYpm z3-yJ5X2q`i(P-74TyEJWp`(GWQrdfs9`QM_`iT^UOuD}VjYqki*v#ngVp%gx)E^6T zQhRgcw`di7ZkD$7j!S%W%qD&wFJ6-?J9U(k2LTjcSnQ!QB38?5WbZtOv!UPQlB+|I z=z=2m*7F~_>&nyhd+u8rW0SvU+y7PfM$fqP;aAptfkc0Q`8R$w42`eh*lFF8nA{vH zXzzD76Z9HxRSmh+XnTJc7XX!WO%5-`Asrom&2WzS+;9qS^$;I#Lgd2_>Z-?X0sw<> z*n#|xxabQv(W}(wQdps+cbcMq4u1}N%ed@pA zsocW+T}x0v406_Yh>HH0Z>)@!GtV0C8J%l-E?&LK*(ZV0GKZ9uCLsn45d zM!96q#~R{q3}u;DE1naCvw2A~AyshAsHh=36KNCI*rVh6{9G@UtNEnIF+benmD$f# z7bz&HF~ob_({HUHMf@25y8S-A;8xky#q5_Sn*mJW#z0vm$MwV}SyzY+4XnYt;YpZn z#wkbtn;*q;U#w2u-DTs%K>`^I%R!Dm7DlBxS{wrvgrQsNP#Wy*m`z)rh5EyJ?^8^9 z0p#>{JQ+x3BZVT zVt+Q>4WWQ!v8#HS|CP6C=nA%F(|!yHHTtgqE*Q1{g-cHDzGzIC753D{S7(5gwI@iU zgZE@nlVFow5)>wfCs`_yE41ywGK6Aht&*1g%*wbVjwz=qPQe0FE*Od zJ)A~QT+Dx;M72#%wYJMvtc7PjHSa@1rJZkTv;BlaWW0O}X4zGyaSzH46&c>Q&2X!N ziV6qWHB$JO*(?K+WkW>obWp-zs9_j;n7Dr~i9g)qzM*?nh>qxhR4L&^Z6BHoLoa^i zVX5pUZ>`8q(!wPGSoD)|OV#Q=vW8oD1GC5WEnLifm&{OFHddO@ z_m2A0{DZ^dB8{OO^aI=neGHCm zJYBlCfU@N!FL!9kKH-&6G%-WHlfsbsaRgO#>%B>DBMC(@S(lj2!DK!?x}pJn;UQjP z{Sj*SL(59yKvZ*OFoAHO&(}Q0Fqi9W{wo~OGr_=<#;7@SmNLrs$CR=T{xb5vjbo(9Kza@E;X_MQmT^dp_N>bMNyJ4w+ngUpDG(EmyF~ zwqDZ>(={i^{GBL}mno&_r`!lJ)ab*BWNb4h@O7t!Y)YYuTBD1Y-#)w08mE{&-bZ_3 zNZrjfMioFuYCpt#)5`fqDYRq|@{YZUk7AY(cUNqlzPC%7EpK{_1wu!ck%5?*aaTeq zl2q1IRT}XCZJ+`vVn?j2i@*Lo-8Xu=^sEDAON)21`Zf3Z_=`Pqes;{mba%uoS*I<$ zXmK1tJMKj&Z;ReihVXBG(o1|kcRDW!`lqXt^(YESKNoqmeWGSto3C{dU!V2J(7RPxW`su3z$W(EX+J- z6#DB~2^kGrN(h;+$FsRc;0s#Ko99T9_GkV?@T}Al)u5%PA^n_G?j;Oaz)YKt!SpS) zA7z`GT<|uIzig!N^BKr_BD8s0!g}}(ONaK9JpcJ(iPH2tzA9e!Vn!?beMTO7@ug>fXmUK2emVJ1ZSAswvAW#rrpBohEt*_Ja$ZB^ccM;)fU zh1}LE%1PgNwY%T7RS#Ro%!!%UMno!CB`R)Q+N4+?S>%XNEPE)1Z{~0>@FMvseph>H zcg41Gc3b~koD9j4X1aTI*d1Ej7}1OKT`l7Xbu9xf5zhd#D;;^9bJ?#V67a`{{`jzz zmc998U3P$n!xPtvxaTmBl3_%8SW?CPtfvS&5hxr+O*H@8ZQD^$g~kPKq>X%0!~B`f ztot_|IhB0MsDfv-)Nzt!K>O7~cN<)OJ>tJscG~{$mHzA*`Ov`h<@0bl@v7uJo`D6RVbkM4;(?Z+DArS~ z0L;@TuUTWTaHECD_)i8dEl1cm!QZW8FeO!=PZ9y&;jiNvWJf*>;{;70Nrm1`?LXW7 zVae9zedfL!cqCBMG24~2FV3+-h|iXpW++o$kk|h}WcS1?{y16aeLpguVhGzbQ7oaa zC^pP6viCjn3>y9%?m_~uRKuxDh98~XabiS=In&9LI%%M^FBQ`dHh zCPdg4yp(&}AK5Ez*fM-yoy&E+m&gdLostp3`*LJe8$3Ru#q_Jz^Gzj>*Zz&ICa}%s zP(b%{)q)G$slc=;{p&+s?M;S;s*(W}mf_C>0zm%{H@D#cPxnW~C6G4h2EoU#MUVED zn^G6#?PMMA*f(TsodT^wOd^7Y>;oQlq+3G1S-C|< zT=|7t+yxoMqvadSt#8e;5oAcfOf<6%Ul=Yjk>ZWud;XwvbtE^nH+OsB|7J&s?euSg z;N8Jc;s@gpKuacqV}GUdiNh|JEBGSjD>kf&!!mPsx@tY~V|iFSmxUeL`)@28*sUZMKCR_oE)+zHfq!Sugn^zB#babTs_8W$*nKfH_J_O%H zcXd%*G?OEbH*wd6>=_GH;+ZYv7GidydjRY4a(w-Byxcb$R=4wVP&up!$qP(Cf8TbN7T-ZXUCzQNKY6Xr z@8!8^j+$yr|F4(oHmqk2?IWBaXTN3t&fd89q718J{QE9fm)?Lw&(XKI+_hZGC!4zR z@IIUqj0}miq(ZCx+_=j}P6^>yC)hd-${qkurAee)_UcIsf=b1x{QbR!u4w&hQih?o z@`?|s_u=WmS7b%WZ7!r&+-NRf^xys5$-h1D636PJl>g()P=UV_AIu?Zbu)a*Gm)HN zyL;gWtt$pH8#J9l2`RL9o%fLS{`|~`nEz^cW?xPevK^U;$uH4lKw!T38vSUS%#u8x z2z1i)^}N7!DTzsXKJ;Kg3N9$S;oivFOT#(5l>&Q6f3rSpp!jen@XD*5HW zQ)0MA7`7KaCs>jV%~k-=jsT?In7wTT0UsJkS^4dxR6dBNa{-1Gc~~HsijF3+&hj4K zv?HLb%(1bvU^wN+&uyiCC^l_GzbD#evA@<6PaB73m@}aFdz>&OxB8t&ZC_R`FaM19geW!648eo@s z4(4A1xeV=jkF{_8m~Th@cBu#Fv>>sq`88;x1g3aWSDE1{6Fj@pV{EC$r;VtlZQV?X zjK>_mvVV`SHZRR?HJ$sLlwZ+SJz^dgWsilC6Kz+^;4AsrSh|;c`?@pLW{fE-r|xJFv6~tYUzAsEm>tKn4Won>NxPMpS0}iTo3hJx97$cYVnyx zRY+x(0H88dGKzgE(0?fcipuK|hy+0mkKfObEhS(spe5vjUbTgjft*sGw`=@qbcV*rNqm^=p(rDWXHlP6tJfS1Y=3xZ9 zt?4Eo*~Iz9Fgv*bmqw+-K;Ve$=guosbY2qqQN~Gbka`rUw{d|2W)&V}A28;SKN8Kd z54g(DYx_q4Y`N@jYlBioy0-(PkdNDB>0?ODy~&yze(>Q)#vCjSn$Q{Zh&Ep zCv*MyBQEYY??!?U-Y!eb)%PDpg#1A-{BJOAVkLFg@W+8Eb=gd{PJ6)3s?_UG9Z{7Y z(?TvznR}BN_5ZbceCgR?FMWT964KsPzF`Pn{gfW@WY^?5PpX>}`Bu-8-jl7;4D%Z1 znJM?0*gHM*>vD^KEga82mA9EbXh-;pk5v{*L(ZK9g z1o~ESMxLYoAZEFeox~4&pP~KFNyH$*-s<;;g`mv@jaV42Vf8XSATO~K+^959Ih{TE zA6w>GDtPZD8d%<^EYng}3+|_B__gdmG>dnD55PD`_o)R(Ca8UlOqMQv%K>9h0DGzH zLxHsd&iyGdD`h=z>L>3+h~r8XD{*+64|#<9VrY&4?ruwTxKN+_ z{pA}zU<(K3xwMu>&t9CO7vT~!@v+u14NvCFXCM|cyBQa5#Z*sDqIaKm>X!XeJ!pL| z;qgqYU!gxZEXmeZPZ(dN3Qv%B763OHO*9$&xB;%`<=uXgI2rFgqB0~&m;Ek!zrJ_{ zY6!PtY9{tJ{;9Xp(qYTifTj{D_SGaTtcP$o+ddmZZlY^=i5)#iC$M}4#m?t6OdKBu zvHRwlr7}3*5^K_3y{oeN#FjN1aQr|B0O7lEA{rVX_uy~8yx@)}aNq>j>fEaSd+Y5U z8!f8t3Xm9mJnFpsEW5O%vIpJ%;$n)#^Dw0aq5-O1mK!+P^b~51Z7R|UvT-JPais!(GsU_8DBD=a3e%86%p36=q+pSG0*IgNlf|9}F zc)v!edP&}b@MFerw)cPMQC9xH)~@m)swUi@U6!t;TRNpdxIJJ3QD(g}V0y!a8;jpW9&q9BfRbY{ud};{Pr3-&KC%z~x*zdkEbA z-OvLes=8{xXYaDeT=s|fOZS( zKeAmnnLl=?IBFbSfjqR2I1Q0LY*r{wxqH!9>MxiZLP?n3_%aZ4P`&i{Ctqviw^WKw z3q)3lIFD`wEQVMB@mfWZX&`X=2nIkN|ew+I>msTkM z7A=@0ryY}%%SNi}Yky3?jVBvCC<7NRJF<<0mnm(pe|sqgl0y%jmbIgyvL*iuH(*{v zT_z!{XL-V=;~xbL@Ly>m1bd=`3HrphQiP!}#`_%)NVyD5ON{Z~K)&+rD+6h6Fe;47 zITN8B6cj8CzybBqBm$IF@i44lk^EDtDchkyups11m|x|UaZ4yiT;vKUK?y;n@H}Q} z@D55(^pk(P!P~twlKQXl=X!}9RV!}*0z=|OTo+vr&Pkd6R7dGFzlj(`{@-H(QzCyi z=rn`TrnVTO`BJJspPaH0wm^9@TCzpMQc8gS&`f=1|KJ*=!` zJk#h^eI%igaNU?=L9t_6%&VYh&rUwH-OWzIDNE_**hwqY8$Ag*e<t;{TQ4vH3k&N>Kk5RaIq^pDG2W8td?q<&#dEGE4gx*pns4_zQ4Q zRE-3WJAz0QP7nWWg!C;XE$&-ylI>@gn(wyTy&)T@XoAv1qY$i^$B?~O09Qk{r2_P# zcL{c%)fmPisNQ2>fr5lLOTQb7$0ph)la!MYE$%UM+EjL;*`BX=8;-d2b&vvClp@^Du8$WTK;MyT_<{j0}MI75j@5g)bv~Z1ylxC`1;yh#8I~fZx5N zaA(&SQCJzswfD3@#48>B$!rq2J~#QQ&eN3D*77iyV3 zx@>e43YGV*B>%f4T|a#7?Hb8Glq>FvL3Ke3KU;b8e1I!)B`9Wkf1Fy07Q}EG7#B|5 zL}-m2$-{N(5?)TZj-ZRpm5Z z@^4_^#;|B0o_fwmlQwIv=U6%B^j@n+Th2-bQq`%r;-NGSq_EOhYMd!{Sm10}OK=f{ zGFC213$KZ4c|E9f2b?6Ju7;P4h~CK#zuaL3c2EnH6TCOYVxo&|>gvgeawcK&22d0- z%SuA$oz#j~!B|rjXbJC@EwW{v+#2=5*`Jfid}JJ;pCQD*tloMbsutSXn#BR?IkVxw ztU;wO?Ql3d=(?#cHbfq+5%Eaf5pWRpD?O49_|Fi*BUrFt^| zQ>+fFkJDP-XfmUNMS?(nX_CM87h$#ifJzQL-ZPF2K$zbtMWhSZlX2o7jd~OBMF59B zb3Z_ay2i)m!#q8k3#eUs&jtc&{{U>V97p)XV!cI)pD8Tq;{I2aT_mJV!yi)nw1@a| z#L(03rP`9kutbo_GWR63Rc!<(^wV=AiJqh_`>eiawW53&{4vJE90HKdoj+lZyG>zY zw0Q&Z03J1vU=@=3s-SS8@SyNRL zwZ*jpg=9SET|ZB|!5lkt#30CoC~OEfyLX*UDHkoDsOvlNHY|lotfDR zvy;DS6_4>N8xMXkL<8ax85=x>ylJv zRFUcn+ob9XOY=h7@bVLkwZCC?X}=qO@OD2yVOohKfy{|@Aw^Xd+97WgyqWncdnMc$ z+?8Zgf`)n}IGq96*930t%&z!vAaC^U9j6;POe8HiOno=rh;HWqhuM4HkdS;AeZGtJ zUY;IH4^&`}WF>WcPG9aJASJI}@~)znZaO6B+@KhH>Lhw#MZ!g`&5k{cJs^CL+0S6G zckPWL;)+I#Y$a_)qa~|9%``)c`VPcy&RK&chyt4Ic3IkCb+p$!TNH+|fsMI&a-#57Td2t6xI1=dHGN?f>!-A#DwYT7Uwvcj zNK-o#`~Ri_ql$KN^(F|5(e>{7dnSEJ2XBXrzK9cMB1b^cZ(OWtX^X>TD-p=W3$TGf z+FhDE?0qDy4lVGh7$^24my)l^-^k@tJd&Z`a1`n`mRJGrNXQxtsg> zCVdOoV<`t*Tc}VEHUD8v98Ks*jGfv&R?ef`?pqF9(-&e4=18^rGrLgAZ$Y@nCP>JA zK=pp?vdNJ7DBGa$A1vT%D=1xfJ--pJQz(|2TV73BCsAoj3%m;WX&p&YwUDYB95(g2 z_%4>9@fC>yizzi-`DRHFb0J(5uElZyhef*C+R>aVCm5OINph>Ft$V~m{4_?ZzvU+R zbhs{lGdk1z%e&zOvf8*TN-&JtgIo%vX>6j`|ew1&gl{lbNzN3wE4n#71&C%>iN4L!^zwB$Adyp+U;Ak{|^I1u#ppYdIFVyj4iPkJAsQ&#qC;b|Hvx}C zNf}rE0{kZ@tqtxcLoH3`@o-B&!DFKv&HLI5uf496j?~>*ad&dz2qCK@%!o@T;x4Rz zrjsT|^t90p;>YOL zXae>j!9O1T=5r)2;{$(~1J}w_#@CW1QO{sM`GJHS_7K$TuCfZNCALL*Lz@h*(!%`< z`2Y@RBdKmxV?3R8NRrgIp2k z2KC*7-j8`ncfy4n8UL*86Je!yuX>9_6QQ!`Tg~TJ3KQYYbt^aQ;A!6%iUJ~8v-*un zc5KZtqsAM`3LEXey)Es3f~S{kelF&S63Utdru}g8A|3nup9K!$XOhnp{4SNf*&F!^iVEze>kpTq!k_+VbcPso{;Ufy`_$KxG!Otr2? zA|;V;T1{FdDf!_CL(0&zW^A+{nHF(N=Kq?BVa!ksBT5y^J<5^(1%lG-xha zx&jv1;l`F*yWjM%Hv;x*zge1AT-di%?Fszjt5=zZjX3hr`WpSxyV?wGjwyG6nC*SbeSck39LDdVZ*fg^)D}`9U?tKl#$wmD}ma? zQ}|b8(X3_LiQfF{+9IPbH5T>`nt34xFR>1x!W^j4hwJonS&b_54{vcf@FN{ zQ!QSj)ZSeD0_$h&sjG2|Guvp*E0#&7{3PthQXlu$byV>=mdCE}VNd>&WEHu{$V_g! zmN9*qJ>3`vrflsIC^dC&k+Q+IJ!;ZaF%3STqS-+0Ou7V3`CFp_`eTAy>4=J31qcaxJj0rK2cl|! zrSiNAdEJ!j^c2qJOqxFnc`r@0i0YFV)ap<}MFVTkq|f>8RGm(g7{+Iocj<*tY!e`M zicm25EABxtj(_X3L5Gejmn5-V9s5o${9AlY;(&|+rwt3lORIzQvr34h$CRlQz3Fth z!06KfpU0KT9NNo%nhi;00=G{IvnR_S2j<>8xiWAS6rLYSw@5z?RrUWKM{!#%p!5wm zh21Iw-zWfJ!u`P4M*3cdA+lw$t;zjs0*5f2nL@bf7^d;}{x{43aO!-VosR<$gE0*P zIdP&w6q>)Z`s`5nETBk9-v>^hW- zo~z8UsOy8S(fr(RlWTDEYe4}kZH0H8k~=Uk0XsnjmJ5Zd64vd*zWLv?cKhMVcWPcZ zwnXyWM4iOY)IV~GKybu`qL*%GV@;suV+%eaxhfr64eqq-U#ALPCbJ9<>eWF^xUHtW zyzVczZvQ48piYX0j`9z~msthbrx3DU?02@y9FPGlkW3+jK*RSBBlG@lvlN?ZSrGjx{AD&&1hH$k4@4@l?-{@5Fq9x31)G=d@j8OcaAEzH=%yj10_Go2G=ZO|8+ z!)%4#Nv15Gb26J#Jg!=8Y(w6$mZ)3*65Uv!zQq_zz0;Pu{BA$RH7{j{I=3tN5#&vxQ*aPZ>| zQ7Djt(+|+?I`fksqzHd!?V~A9BAd_VLOvosRxOZBnknP%bwCcamHtxyWXi%n@?QId zO}I*E>F?$2H?xzHz$IpEENmj(i}6hT1xT35(FtE^*UFO8D;vpK`;EiL<)0J3?txTy zFzMO)nbcv>pC2EDZYO2*&`F_kU;rd#PcIIM

QbBWa4?)VG{`onvIG)ROXaSL>m? zzw*{`-oF3R1_ z_tuE+ss)NOu*FQw39Q*NgX^=Sm&eM3v;)Bb!A)NLI>UWyUxc&y_VI|{Luf?FL#ia` z)JnJo&9B|Xgr1?tV7GjwS7*j2v-BoCHI`^H-o#)E|l_*RQ-@KpDDAmnI-$aOMr0#=MOZ{ z)^BRwlLUnqaFtk1T(}sCA*l;GV77Gcf;{I#p`hk7e|$IQWF_ zbn6uUVH)&IQQ|+>mLj4T50N2m9{aNnw=2I9*8U}?I;VGQEI0|2ex+b*3WFC4MyBS8 zEhT}gGuo)b?u?TQz4O`m-#EfJ-}RWjIt2l@dDFcd=eB7iuN{M2Ba(zZ*NLE0G;Z+o zbm>Eo|3rK{W$U@DKpQ1y#ZB}fW!|4zNba#`mo*B9g-c$FA-|=fws&XJo%tgug)Y3e zq1cI+ehTbuL#d`h)~i4tS3;K~+ejFP8N`J0#04uYtk8DC=&0w&7OJ_H$uBJBW#|^( zD|F+QgI-i#b|h?$3@&&ch;j>^&@*f-%CLuf9^C)46JQ0pkd)20(|!2jIjFhpfzE1| zw$fBRPc2xY^v_O~N7hs9Bi%k@TyhTMkBwUBE-i&#}sZw((NmzMTY z)Nx}XKaSAXa~O3n#hSOBOGcJf*3Yyek@$<%ehbaUY8kdvELF;rvznd1Y4Qw#nCC$* zJZxz4;u+3hIC&%`jL{G~5`-FSB6$G3au~@Rm_Nioxjomvb97 ziT#^{F=VX)2JM3A5HoNnbRW`VhjstLRQZ@_(UMYpELL`XJ%`I5PCD!eq&K{@+oDNF0=RL9dqpGO$_yvRb@Y45vnU#zcS*u8mMe%gUE__QV z^^|)b#olkA#kZ8W;WO1QI)W}RI;Q8gUXsDGciiG?StN_LcQ-1t0~Y31LgLxU2jWto zoPuxaj*TFD4h1bj6$f;LB@Yn zC;mr`-B27c?U&Kd!!MlO^_t>A9Eo%h%DsVrwolSote@u-J_0L&apK{$I}E9LvBS5s z1bT+Y_1aj$wKkF%&+h^FU`@%72x4!aB;;6g{}`(|_%;(oQq|6a z7Bu^hh@M)Qprqhe>e{<9o-sMMIhMuuAV}E|Lx8)qC0|Y&W-;AtqQ0Gvw zeb{P{ak8Nm)pgO-*gRaN0+T8v1pO?~hqnz-U+yVfZ zFvx#vdggBY{tfXWaxY8-2Tl>z^MtN*nL&zX0?a3DFt(RW7g_Cqn85;oR=w3~U-jox z!_ie*^#zl_yJf!ix_MdQ(6)Zevz=`#%DE^PY#gllT(Rik7`C5@Pw}Y=3>~m2U&%>gZRsiMm^-f|Omj+-SR)J(X-h`ak1>a_+jlm*V&&co z5k+GK`Q|6y-WDqH!K+5SL>gq0}Q1x)xEPtxC3(b9hgqi%#0l_`Gs_T zcX)@nN$D{?6nM2(%D#Znv=uBDS+ln}^f#%aW8$gFc!MmSd=N#s(qYJR&>3&ySvXUQ z!Ht+%-`MzT7%*nT@?ls?W-|A%Rx=@|x01@T%|$_;w}KB)m&~mGZqUCrLN%f6IO-Rn z&Wctjjc+KTCcl*3Xh_+_tPN{JTJaI@cN0=}|Cq0y>qJT@7`80tv@xQ@gl7b22{uw~fmJzIU!=g*27gt_9;%$>$r^ z>Q{bMR*h6?J4M|BoX&B5l@ytQz2A)=dB0pYX;E%3vA{w()Qi}`-Y#hE zPO5C&aF5#*RfotcU7ff6&iXJ|#Pu3+3zi@d&1w-_nDEGUc-IZ8q&v~h25D9w%8j5e z;?uo&6QQII09ZF_O7gmXG}Zh@D*BdBNN3$pc4}ze>S0eve0T6U`<-s&8DWP&pA0h_N;GL9pzM4;c`AE7cITOA&Z*kD zc`h3C?KWY4X&p&_gr}|~djX>~4NJkEcrrr>tdYdszl}qq#?md2fV8D9CgnX7R797T zFVI=)Q;KdKuW-I2rp1j4_45pjd@4CKI0iTlzE?GB2NUz+Xu-}>^1*ecv}TOS00V#* z{Xt1)%8nsP`9Yl*;a8a4+8ZV(8`3tqw!I6;L^R7xq1Ml+Z?TbPLd!zHyn`stK+GYj zB-^e=cxEc?Bq&|@dmjRqXjZqW4JwK2k)c9Y%l3*4+`|B@lJqOi6 z?Yf8Jb2oiG!n-A^=Jqo*ov*GKBEPs_(Q`X_kgm1M`N!pZqOA-Hu&tuT|KBM>TWcXwQEw)vcOQ zEnyVfE>d$VLGdm2p|$+sN0=%P#cyfk+~;4;)ZYp0M}{^wAXffa)bfq|_ZzM)JJ9%! zX&sETKET1EGLpG&rjS9toYmZy(lnn0bn2zFO64^Zk%T&Yu)y z0`QZ!SOwy2XdF~>tyvdypu6G$ky_6C=hx4C&`?=LRJnX{{nPTP8#F1pPRit`6{wJJ zY^!Y?)6!*wH`v%)k~5wbOZO z8kBIKHAzJ5(=xGjdOTh*rS)WzYqxin_iQD2PYw8hsNvV~REVrJNNqAprt8707NqOc z0b+YALMcIFI<`%)mK+C0&^W3y4TV}Ghuht)!gEX?7PtWU2W-kPcPa&t~fZf1Y zmjXLn1p4UJ{dda=QKJ++s{;0cz^fNNyD|gz&E;j+o|O~4jKM*emH3gY%?!7qSvy%I z<2kYxM~NtPE*pD`*s%E0E1ld`qn3e}pM%gQ-4=}&79gkOoPBMd4aRO&y;2T*ZK(2mYv>Xj=diWQ8kdOD`UrH<=s8&S=L zTZT<}%ECO}CgGwx^^eN>R}Z=zmewaMf4Y2nfCE)=&V^1e%EhC_sXQIFKb?62wTXj3 zCo5^@wC=oWD~BnC2q^$dAOCe3zfAis3Aq~?Ib7S_sJCFuPk5+R#7dp1SGpm)CCf(M zpQnG1pwWS)_+=8h(AvW|}a?lnhRqVOP?zXHe)gIET~NG;70e6mPeD=<==4h+ae z1_@GBqs<+RmBM}K&C!2`;tNA( zA^zZC#c&18gR~}U5$vDZTCqgE8#{a@vG*bbzq xfMWC#3%gy~jCNcr{7GpYE714<_(eR1M4N%|y(q^~-T+V^HDxWO3I&Uh{{gCmPxSx* literal 0 HcmV?d00001 diff --git a/webapp/index.html b/webapp/index.html index e64ec3f..b55a016 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -3,6 +3,7 @@ + Календарь дежурств diff --git a/webapp/style.css b/webapp/style.css index 990832f..14befdc 100644 --- a/webapp/style.css +++ b/webapp/style.css @@ -11,14 +11,15 @@ --error: #f7768e; } +/* Light theme: prefer Telegram themeParams (--tg-theme-*), fallback to Telegram-like palette */ [data-theme="light"] { - --bg: #d5d6db; - --surface: #b8b9c4; - --text: #343b58; - --muted: #6b7089; - --accent: #2e7de0; + --bg: var(--tg-theme-bg-color, #f0f1f3); + --surface: var(--tg-theme-secondary-bg-color, #e0e2e6); + --text: var(--tg-theme-text-color, #343b58); + --muted: var(--tg-theme-hint-color, #6b7089); + --accent: var(--tg-theme-link-color, #2e7de0); --duty: #587d0a; - --today: #7847b3; + --today: var(--tg-theme-link-color, var(--tg-theme-accent-text-color, #2481cc)); --unavailable: #b8860b; --vacation: #0d6b9e; --error: #c43b3b; @@ -56,6 +57,10 @@ body { padding-bottom: env(safe-area-inset-bottom, 12px); } +[data-theme="light"] .container { + border-radius: 12px; +} + .header { display: flex; align-items: center; @@ -114,6 +119,10 @@ body { box-shadow: 0 4px 6px -4px rgba(0, 0, 0, 0.25); } +[data-theme="light"] .calendar-sticky.is-scrolled { + box-shadow: 0 4px 6px -4px rgba(0, 0, 0, 0.08); +} + .calendar { display: grid; grid-template-columns: repeat(7, 1fr);