From 516cfdbbd8f463c0481ca82df43d4fa35420d9cf Mon Sep 17 00:00:00 2001 From: Bryan1029384756 <23323626+Bryan1029384756@users.noreply.github.com> Date: Mon, 9 Feb 2026 23:54:49 -0600 Subject: [PATCH] feat: initialize Discord clone application with core backend services and Electron frontend. --- .claude/plans/sorted-beaming-comet.md | 47 ++++ .claude/settings.local.json | 15 ++ Backend/routes/auth.js | 2 +- Backend/routes/channels.js | 2 +- Backend/routes/dms.js | 79 ++++++ Backend/schema.sql | 8 +- Backend/scripts/migrate_dms.js | 32 +++ Backend/server.js | 2 + Backend/uploads/1767493519909-231561716.enc | Bin 1828788 -> 0 bytes Backend/uploads/1767493677800-686548739.enc | Bin 749622 -> 0 bytes Backend/uploads/1767496855215-848429954.enc | Bin 20931 -> 0 bytes Backend/uploads/1767497306694-744544719.enc | Bin 20931 -> 0 bytes Backend/uploads/1767571577033-791228774.enc | Bin 20931 -> 0 bytes Backend/uploads/1767731525251-885122068.enc | Bin 1145392 -> 0 bytes Backend/uploads/1767736657939-176839166.enc | Bin 1828788 -> 0 bytes Backend/uploads/1767736668121-484246219.enc | Bin 69656 -> 0 bytes CLAUDE.md | 1 + .../{index-UkvvH8Ct.js => index-B1qeTixj.js} | 80 +++--- .../dist-react/assets/ping-LfakLpwb.mp3 | Bin 0 -> 8576 bytes Frontend/Electron/dist-react/index.html | 26 +- Frontend/Electron/src/components/DMList.jsx | 240 +++++++++++++----- .../Electron/src/components/FriendsView.jsx | 35 ++- Frontend/Electron/src/components/Sidebar.jsx | 17 +- Frontend/Electron/src/pages/Chat.jsx | 174 +++++++++++-- package-lock.json | 10 + package.json | 13 + 26 files changed, 622 insertions(+), 161 deletions(-) create mode 100644 .claude/plans/sorted-beaming-comet.md create mode 100644 .claude/settings.local.json create mode 100644 Backend/routes/dms.js create mode 100644 Backend/scripts/migrate_dms.js delete mode 100644 Backend/uploads/1767493519909-231561716.enc delete mode 100644 Backend/uploads/1767493677800-686548739.enc delete mode 100644 Backend/uploads/1767496855215-848429954.enc delete mode 100644 Backend/uploads/1767497306694-744544719.enc delete mode 100644 Backend/uploads/1767571577033-791228774.enc delete mode 100644 Backend/uploads/1767731525251-885122068.enc delete mode 100644 Backend/uploads/1767736657939-176839166.enc delete mode 100644 Backend/uploads/1767736668121-484246219.enc create mode 100644 CLAUDE.md rename Frontend/Electron/dist-react/assets/{index-UkvvH8Ct.js => index-B1qeTixj.js} (55%) create mode 100644 Frontend/Electron/dist-react/assets/ping-LfakLpwb.mp3 create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.claude/plans/sorted-beaming-comet.md b/.claude/plans/sorted-beaming-comet.md new file mode 100644 index 0000000..bd25199 --- /dev/null +++ b/.claude/plans/sorted-beaming-comet.md @@ -0,0 +1,47 @@ +# Fix JSX Syntax Errors Blocking Electron Dev + +## Problem +`npm run dev:electron` fails with two issues: +1. **Sidebar.jsx:632** — Fatal: "Adjacent JSX elements must be wrapped in an enclosing tag" +2. **ScreenShareModal.jsx:70** — Warning: Duplicate `width` key in object literal + +## Root Cause Analysis + +### Sidebar.jsx — Duplicate opening `
^E%K!@&}{j9NRXL2?!n zV|Kb!BM4D?^A9)^76+(kpIxzO7ge!#Rdd?4>|&(-dY{wnDz1h_=&A zRQ}A7idKE!cp|Q-q#jc6<|s@L0w-n6_ab%Xpf!Mt$pH+WR|p;tlACiO<0_NINsBST zix~bbu<7ih9BDy7K}+!*78}msT}j?0P?A-)w`V)+YCFjcjxOG% (dbo$QBUa<8AUet1^n}VoFJB+g```L+-pzcCx0l zH(z+w=v8O|A1kG EHXZWHy*W}x=Y%2I8NXY`Oc;* gUkh1!vB>bc^(gpocjz6c{1!66{1Olev-9Jg$ z(eKBT<@m+tO1PvjI%ejcn49Qc&4-#saVpgi>suYu$&{;w?s3u$vE2BuG~iTAdkeRr z%SOq_Ca7y(F#d2D=01dP@|K1D`BiWKvWYw6xj$KbGXJTG(PoRa78J$+!(>p&qNTcg z5}prU@}bN%g{=+MuJ7++c$VDqbjRm_VwP-JKD(lRqM&8zv^S+xpng+KiA0T&Q~sFI zV?~}+ZHHrdJ$nl`Oqh4izFQqBX0U%KB>TWjgeD!zt-|@?R*c_>LxIT uM}MRlR?Jx$xFB-%p^IXF!&zp=XK2uNs#IY?p<;H@em ztgENl8?u`!>!u=_1n^f?nqP}(EWlExemG-{$TIQA>X!%oeI*?=($*u{lQ*#36zKD8 zwK3B>8G`Gv&q3_PfPweu(yL*me5=VmoDjU(ksp|clV=!+5FI&NA;%MqrOoLk@3MBU zb)^=JMnjAwhrFJ;SHaaX*_GQ{l{h@e?51+0#b1F#<9s+zVyoJ!RbsZ&5@g3eW$dPX zGUVL+CJ<`E6Q8#NSl7MfjQzuSJA;X?9A~K!2S!UKXg`_-g@dnpiToui$L#=UrgXen zyZkFNu4;4ZF?e5#QNE48R8O)PqN*7Vl)Gm(weL4f;HL?ztu^8m=+`X3rm2fmN1BM& z ry`Ni#|kf!7zW!1 z*uQim?6#=9=ulF_c!5#sq%R))J*V7oPN&HVLR!hove~hdPclWTfdg=wHuE`($KApx zFN dyYx;>J8 zq4P&VT{C6TUW_H!U##cW-T!k;bYoYPP7O@bi6Fvo`2Qz&EQoR@NW+1dlmdYa@GwbV z5p+X4=dLXL+B#pskS zwY<4LWDi)^Paf` zp{g7*t^(P?)`==$nKrcb-g2mZ5CNn5dZt3rKQ(+<( FJo6nM-<&6`w77Vk )a1XviEc{u3aknG8T0Zder94?0!3RXg|Cjr>$8PpoHWZ}9vUUKXLq$Ww8Jr*Z0iWUWU5L21s{{GkNPo8}4+|x`Ox}wQwhy3F z6TwTags6@U^5t>31I24eqmH{m_%OOVANn}92~jJj#;3<#9`|>)14ojbBSQQZpYipN z&$(s1z02uoCqXMC}tH+C7ZIFIiT&$-2~J5*Nnk%)+1E L+^je!oA$Y>T}+Dxm?Esr)jiWg=bB12ZUz7~ZE4?Lg2P_0I}HXB1!Y1$%=ELB zYNi6QWEqloD;36^4%^*LtuumGO0ilBNW$jHZa`?=v3#nMh5`zFKb9%(39pD^iNku| zR!{;hbj?p0Vr9CR7IYkSq+C~U$7yj$hIMkd(7^DYyZSl+WND;#G~0-#&espiE1j`o zvnOK%4NdVq`2}BZa+XpBVdK&CQ_a)*9;_iYM&u7_5D8fVj5A(gRv#I%@P}4*2$HQ@ zq&x$ucCO%<3l2n(FvZTb}=|xEsC^cCtv;FR9`5oTNs}ZSAtam_8f)qGD^y<8s z>MSj5^l-K|y_oxv%_mLe`=6bH(Gf+{xM&z1Be7$*JV`^Q;~8Ivi!M^~z5i+%Fr!C4 ziRe3VNb_NIv|>WG?+kv`Z2d@LAlXDAE{hj9hr9u*1Yz|FQgU)X^VWJuT59x@+Hp*z zKQyTu%-B(@RSK@_vR?3#0As@_Q@r3*x>2 kd#?%Hy3Gr0^5~oVqKu47zIzWD1CelX`Q3d} zfdxFsciME72Q_H}6LV^MH4)p2;7~6d4eZnxT%5$E(P)>i;v*gU>S#ZuqD|+M@u1X; z#I9z;s^gw_u|I*C?ARC5+%XG&yc8NnyfL}(_FZ)=x{ zyUOz%5_H<3Z+?iGa%{5eqFi385* Vk3)Y^Bj?Kv$p|B3dsD-F2Ug5{hNxD_cZD!zmNS72|i;lIm_*fJUAC(qx zp(VYLu>aF=rO4-A2mJt fB4RZAR!2QCd{WnL!s z8BT3+NlE*JCKO_a!QPg^gt+miSe9xPPq6HQSZBGPe8WSSL*zYAvQIfR@9Sa(D^-gy z1yXcw;#$e=BnVqPv5MeU;0Y)-#50Eq#`q?&stS%-HMNo%m1uu|bx4r)heESfqG+tR zU}yqG0}g!4q^AsSel^1%u1c=ZRUo8L?~ct#g9$DY#OQ~kJ~$eGp+3ib)7CP)&F9@D zA@t9)pcCWZzAP$rtQqYe8jsb@!=B7!9KpQR>orwTHn%>EMfJ2NrKP;d4n7`|+Y?aW z62vSpr9#XCO)1{Gjd#wSwA$UI<>OgvWTneh^WuEc&S;OsV7On{AnX`xH5r}MBUU}} zj`~pGGkF4G%^n#+Do))K>~@ E$b-&YOK{hWD@{mmq7=XrSAm=qw;+y{fp z=WknFss+rjj0nVOHbCzUQ}`z~j*Q{hlt4$5W0W|Q%_N=r6CbYiujua-OtwJ95T8)b z&Sg^_3hqv&NPI&cFgSA)ve<=0dz!S_jU6b^U|+g0KhXGZ#lRMvK UkuzLXaY( z!wjG{OitGZ4r#rVUC%nU;J|Jq2x!WDE^ G zbTh8GrnDgm@wE3u4@B4Nm>I%ub$J D3jL?pyx;3r1C&HDTD0ppEc<#u z!Ee{Z{7LnixmoQ~h=7a4A^}I7BL!>FC)TpueE3o@-*9;+ WL?tpgYW%ek$0Fn{3Cf|ajI zeeXiFv){QA2XX2b8w@AjjSG)kdP_cOxp;?;>@tY5SHhjP)|8cUP3)gbWg7u4;{=AQGLq>AZ=)`jED(rk8_w6xK)%Y zIw9Wg0>Hik*C@c`JrE|{MOLN%ct Ul2`r2JBius`|wO|GOQP8aJqmg6r7eQBve+l>!PN3F}^*O6i4jXY`+Gv zYqHPyA7X3vVG3o;;h_}g^EEox7+2hME0u5l_Hzb>=1j%0K4SB_4&dcReqVKIE76h} zwX*yT_ql-NQxg+G0fZQmH?oX c$q723N$0&*)f2v}=!;{ZH6#E)|PRUuv*9u_+N4Hz!G z5}7#ip*3CGjyY%@g|FIUps&q6E* dpvP2*^g `XQ|cMQf6c5^-IGR269F>(xlaXcTQfvDggjssx3Df9NoXl57LI8dL8oaRws&mP zIVd&ha4`;#X21JiArd()0S%Hb1mwxu7f%3cSA0r1!QmGR{DfN9ivN!uwx+I%Q-1o> zc7f_lDSu&Pt78q~ryx5lyXj-MF9Wd$i$WmI(H;R{l!v6O=QMc6x$XHL0lj<77ac6H zF7aVD?Ll-RB&{|Ski$5FWHNVi2eO=8et(z1L@6eTb<~BHyfVcVvcEW_wd3DFhW#fn zE$6SCrLwUF-QfEi1RdBAk2fsXBxS4#y=R9LBh;V9z{@Z+*ND4?8zQCk-Io}r9 z4r2V;4A@3*Lb&k~; 8m=v>X@&96xgi_9~JVW?xPdF>-|-q(rXWr z65dxV6mU@huR;7$)1i+PwDMkmaCI*!dsYt7w~6?$2>=A8X~S8n_(;g6aY_Jrp6JQs z{b&^CHfEUyD1WuL;SEbLc;~Bu6hDEFGx-Vj$@*Q8$&jL~7i$EuliQ B?5L>EIvmc<#_=I4tt9$wLHEcA(e7F;L$9DPwB7oGg?U0n`t z|1mNSh1tHF1 !DLUcjv|GBA>iC7Cu6}vT*?R z0jIvybSf&sN ca^%%gg^9{1DYzpH%`kVHigt z2IKQ(YKCN7+W1@dp#ulN(cUNm<79KA?FgM@?pv}bJ56O)!YSGWQxaZuBElLZ$)0dI zMf(Ske-K;ExzTXskuq=wi)ul&zbIM$bLaa%%lBCyilARWrmU%YPFYl7e8OczC^67N z`?1MWo!J45u-NWA!~ 6+2fkOLRHMA+f$2JsLed{6gyo$NXOo3(PROd<~AR*Cs^w zH@v1zGdEMP5#@*#Fx{AwFDln+o7<#*_r*`%nc8%=p*?ZcVewNckhKr{siLa`d8!(b z>j)*lM=vxBV+&-6y=dInXwH$%KHBOKh+^V3Z^m_cycPs}W_p~L7Z|F$+#B<9Xa(m} zF`R{3z8j-80NZO@d&7_GP!A{k+bGT^DEel?@g||#3l@2rOkdVI);iWL7Y5bLXn-H2 zNwyvpY SbH)_zbCBlGVB1g9)r`K)jwE@*9-p30yhu+3j6Zhd=bl}&a{nh@KB=m z7(z$VE2KiGJ=WTSDjKg|!z5`t!QPG0@JB(L$$Y^3K`nzDq0g7vy+{*^PkAZbP;&^7 zs20gyn*G^;mBcX=mge&GerxzvaZ)3fs3h+>1t(wLDK`e2aNy`rZq2ztatwe}M|ni~ zshS5$mRRBc2)YK}dv_%Y?k+a8BQ^hh-{2&6lSV0&L7=HeGj|7$rSSYR>cxm9K*EsF z;;7Xyw>6mI{&S_mHr8#0zNESq(rfeffFP6D8fP>xJJPj1;}VW{eY^cE-T}%-gbomi zq=18DaTOsv=1)sS5s~1@4NZYhnmdu`5hXRO^_L^u=%%&>>n^w*CqyG`U2MBOXQz59 zDt8m$3X@UngkoGdu8Ic-vd9w7Fx+~^!A=v+tqHq2b} !n5dU1#GLN#iDtZOy*B_&fH_F hlyJRm?zOw2JHk0jS* zgE2pg(~3~g!#k|B1S6enu_3}oK5-q0k&)OhzNpMzh+ ?kw2mcn5^ zbOs%<^#c9?y6j-NZ7vlPjo10P2*}(iw=E>od*!9<7%v(ku1WJ=NU%rsajxTZ2vz|u z_}*)n!8QKz8A9pI@BlESk!ZZ3|CXBOMS{ZW?^SWo#LEV%jY{ SZ8D$D&hQxr!fYp; dO_6uv3x2W#q6r$PDnSXmM8LMQkII z?xc5hZW901F;Z0d7*#7rj)@}q*`=c(KjkWl{q1E(?ue+Wa+Hx_^(v0_%*5_QRVZJH zUMMg#ckGHLF)JNP0j@-yf-HOWW$flTC4nKgLAe9JxdqZZ)xJ=HysPB-yIqJG2|vJp zeu-G}BO?G2rxL{lZb3@#U)oRm`JQ{+X|t&P2KPbVC0`xY9bCR2*cDQZX4dyRN5Dx? zz9dztE(f^T>1@Tdg^k4}5`O#-X>Zg2Fj&YYkO#r1_u6FPFd~Qi5PNNVeIJKRAFCM& z(6s@Ro^y35`sj<#O#K=F1&Ez6G4zjBy!xkr&q#YbTMrioFjsLHW?r8Q&ISx5;wHn1 zspuxK;vhY>!3sTel`93%rhx@ivAwo$6Aq=)55Im1Z}~KcV&!9Z?*}thSMFI<$)0UUtY%J)ay;qk`=wwaH`v z8^0BxK;>7< D-pUmG#+SK z#YbMUn`GiDAU5)>nf~QD)*Jyy*xVza@HnRj8Co8ezupR&t%C{JmYhuj)9q!}ecI!~ zY891u--N3$IX3k@#={uQbEbkkhE%0DmnURCVI_7Jy=;umpTeSwX|R^!C=MTIFVJpq z`GOwE?1UI +jowE-1D;WH-G{bQ;=Lx0c&b3rqLJ{) z_`I2)nceS_EbU1EMvQVv%!xK<3!zOa%l sJpv|s9H`5KDqj#Dzltj-K4u}B!m1}!XbpO(` 9iRBEcsJqPAVk-owk1uS^G-d(9l zOKR;UYy7S?kI~~ze0xcGoNR> h^D$L~Axqn|yG~ bVp zaOgrV8-!2}AP-jkD8=N *un z;Zmi=dp#PgE6tAZ``OEClxr3#r(#pK-2AoKZ0IWmqMP5dZl!e+j#-IWkQvD>k$@2o zyKUYc0;E(LI;2zI`o?wiiN~ybQCH7)&m<#8d@zn~DhJ_GkNQEVHZiYby2}3F13L^q zBHjWXDzsY4h$c5+#cyQ=E#F)XV^*Jt=>zrlnk}6d?ADn{B~)wAtz_$+zI{^mk!!Z5 zhqho!DRN2esi4 zm5!9&EMg$x=7hhw7o=<_Yf|EhsB5K!R8sWD731Ois-&&tW+0a(=(7gC1gL_iA)s`# zO*b%DAAxFl`V`}Of}&o4DjlE_seie%FuueS=}ZTu0py;xl@x6`#mWGLFj267{_0vA zGYd!6f6$a~^vxh>;{x=GX!@8whO%X}sI7R|4KIk7J(V*zD9|}kCiR}2+@^Vd{Ll8J z5w)-dS&R0~rNhu`d5~;)*y?sCYdI{&6^$^c5BokQ T-r*GytZnDOk) zJn-E445%0=wn!q*g|U(wgdj0JyE;;3@5M~WImi9``Itzc v4(16Pv(Gv5tdnJ`k6cCJ3*7r;VuuB-;VBqA<}JHAN5;jWf;V zDmSG*WnX*C3N=A_es@Ks(~NOnqQGg6yGP-0(ME&QHIbi s _*=eKs?<>H}nh?Tml&hn1T*?mWI~MI(7$!LxYV(bygmGp w-c*REdH+Nq-W+McYo~A1nt983)=)(k$idGL&)US0X%`-c1D2fu2p2%=vv!#tV?p ztwHX)g&TcIcx5dg(+1dn7Uo1?d{l_4iYol?_lyIf0+BG;XH9qBpC1PAvU1AiX0j~n zj>Gr*pR=I9Xdo@%2eh)1^rFCS94>f-h pTZ-Q{tia z%bUD?4ZjyAn5t#mHH%Q3z6l-OGFS~meR=zgg<}2<*~a_4&u2+J{4dd3@L0$I5tIRE zsQsW#;u4CbKqziG#@WKQgP>pRb3`q+N-lVG0E>hV1UV&2jPZ+j@I%A0rY4!KVSb#- zo+|tvn~ oDsgFFpvRlTwFh?xko)oa(5XT+yh+*GuWjDPuA`+WSLo*Kv$Ek&RWv1 zj17HQNmYS6f!4YIILh1_67m5n%(7Xms#>bV6)Heq<*uy2Wpb~!Zpi2aVi2)Yz=BVc zIES|2D#DwjzEVHNu#D2L=0bgtlrTUJ$7JsXI%ZKB*=Sg6k6ZCm80c5(dpDDEK70=} zY1Qp!RQ{-i`+%otUW+ 7`CGw@d5#DJuwc8CU}Z9 z7~Cpj{8P_A!}GV2i{6T$ @q``UfUX`LvvAy6HXJB#VZtZ*hX#ztRaoAe{-nV;nRq5`?%^I z#?I0)MC7w2!%(_NM|Eiudd-7cvsXhk v0*}(RA5V-c})Vmx3e`1;SMd^JYj3yr@Xdl^XzB;euxSCE5g85&> zWBS#st0{xH)`*HsZV-V^9)Ay!^c=^(84sqVS|;iu76oMUO9@LtH3mA2?#V_97CZJm zK_3<$7z2YPxFYAl#ykF6Om)-Q>Vx~~1ho;spw( 9%j;OQGYGq?;dikX#%0^ z?c`lyor_jDmF*5+uDzks>bHaWA;$6zv2r(lb5)vA#RpulM;3yJ_+;lAS?KR;MZ#SZ zi8BC64WUWPS*hG<6Q|e)5XznW-9uauXC%je*PAV|1CsZakzbLke5iTr-Ux0VWr`19 z?U@9Uo@*I=vjySsXyU59Os{;^t@Ykpg!nhQ>L{~n<3%*LPA%<17FhSpE2oTGEv0-I z+$Cr0G!56H-i%cSf}YgFkeEZ$IX@la2OO|mkr1+o$-ZVO5oyE|;S3~WYmm}?0{5Kb z!WRBf@zII>h&A9^(I+1a-2nx*yLZZn@fn>^;tN*3Z;2Zq8WWE%{~L_u+iIHsRfOH| zX zcxc9f$8=Ckg@!dzAS;GJS{V)TT@b?L_x#6qSsxFmNyl`@57N~}`I`~=^kt6O=U6eR z`BR>Aq6oonum|j>F(8iWU_7Ftu4($K3XxT&MhoBk$V9_w_Ia~>Bi5Pr1d+`BSl+Uw zHg$&&SPiBQkZk4cBLFbR!%AuXA-J-nO^$m)#{R3%_f`k^O=W;*_}x!eiO3XVwnaqXFSwfGRCbCtfd&h*a&z z!b}MzZdYR}9qy)g5Bt~#s4J^}1Af6|2)M2-59x-FIk8K_2lt{_x-_S8wX{h4efHuf zzAL=shXrr5Ad+pk-Rg+WpiQY_)=L6XI^dq{`ND>`Xkefo>r72 j7r zdA{M90R<<6ixASX8jb#PMovP>BjN>Ef1BaG7ew_EDuazu@#-$?rrx(WQ97rEF|~+< z%Z(S{$*WU9V@k1qy+Y|%E*!sD0=|-=j-IFVkNTnSt;`*^Y%9gazH>$4B9^wWW>3H? zJtZNqNxVB@cd+p6pyC>X!{vN#HCw{+nRPICOEKL*_^0K(li{uDO*84=V24Xl*$g#U zs%6~ 1CtVgpG({9W#5J4TKK{Ck9P+A~ynrc>bM z3UJToPc?X?J%K~NyCYxeKS%YlTJvkv@B8<2XNxY>YlF~{HCHc|k&v+BiyiI|ZO{8D z*v$=f&(J#Q`nh2Ul?c1IFG1}qF>H~;(;VucO~$9!@)g`z!4X+K&gv}s6@TtGN73D& zK#Onr<(r8o@_*Goz}0qsR0?%riR&ImT(U04^$?EQ%~P?yK|^P=#2T+8SaOAxRx9z~ z>cwdf6I0s8Y8Mb0rkINBSECK>p@6g7Ua0jcQzf}(halXCrm?2d+un8xO~z$)I5&20 zjnk@+SUWAJ{rABsYexa?sR=3w%NM3kNZ<#-H~TZ^R5X|~WMU@a<8WJEo;xgm`5yTB z26fQ~t5z>;WXU(&gpf_@@!6p=vxxn;`ANi`_|nP9y_9esfKXxIHf9ZNYIww&?v^$) zpxtcQ-FU4ES>i+D5N;#!s1X1)q#@=1m=5!%oC3z)eg!>Pa-C%hEV0ytW?wNC93cJZ zyst@7B_X59yq-~F4w>5yliHRh_fui?z+T}0t(%fE6532oqRyZ5S7m7iRke4%`wdr_ zij~x{Ax}oC5oe*Be~h6%1c&OOkf?OR>F1%PtGRDR1`kDDj+zJcK;JA+o)WlW3MVOj z660|5CT@3215^X`U%Q%Ljt(0HoZe;-j4e^}I$CN*u7!T%2mMdZ$>Z+golCgHglLtK z(dkg*@A1p&JhP3EIFP<#pt|`K`bv1I%%_l~B{ykw7xLe>K=n4nCKNWf2UNGhMTVz}zk(WSWu^CFz1oW`eV(Km?>gU#MB4zYlomtm_{99Z4 zK8Vk1$~Ly4na|!aq&F6h@rgy;q0GK2#p_VmVpx6(TYj$ 3oDwSE z1SD4xN+PhWv32xG?$MW?z`bk7Nkq<1o^O_5=gjlABou8BFXBtH%$jMEuf|O=Gjgme z4_vw%$A~$Nmgr)Y7VBUZ3^JTeXr?btlH7|N>m 5skyFx>D?5;qg{NE*z4(NCRh z(_`!(9?@l4JGoGpJ+LWrM ekD44_{`=0(iXE6<-#LPa82LCkUCCL&A|CYkT zk z?XKn)@2yvFb-(G7&rjS+j30fM>jA^(H_a>gjLqy|CKspj_4w^OE68zhS*E7*T*sB0 zu%F3gL0ZNa4s+ABAw1zLe6);q#C~YcG#~Z_QKOSlif%>FKtHPYK#7<0l<22KKsD6= zCyWw8SO%6h;!g5gAYYQj{t_8|X{OOQG&eygAs2Rvr>!|ovzM*bK?izV$RS1PZN;RS z( D%w&jm~w#N;+nx3W0@bW^0Q)z>tYb^?1aOc$D LVoX{j6M5Xf+A(S0 z1T)XWWOw^TrO)WqTat(e+?}U~bI(#&AXyH3Qfu>Bz+UyhEb~CyXg}x>=nh!=k^S}| zz*bSU@sgnsh-|l)T+n!9KudpS7%>YnFiW@P$lsx57eS9VgTF^$J=o1xs*M-XtY*h2 z@Ok{eN1!hFv|Nxi4+{9I&d6{v2r%<}ZrrWqjmNRrk-nCbPGqsM;?fYkClY8I;@Ulf z+f^o}0C!X;)&DUJ mZs+coy+h8dW+@G0r>N+W31_GY|3o@Nm)IQ#H!CfABW2 z&L OIBV z$165g6^t4sk?~s`7zr)ciRtaT#dpn|A69h2$_?McGMJ}IS N)2} zH2Jajr3Q8r6nEb@lbS(*ZE2$@|1Yu@?i9lb@}~h6CB Ud|1HP4*IXCP1X8C6VdCL*1rjZHBRL#R{T}k>G`#4|f^P7JOrke< z4HSZV-k+x?E%02roFv;(6Iq ~bco>E}^Tv9u%|bpRq`aC>VkFwmjFCOJ z;;DFISE<3QiEL!WvM>a1fC}7#vE67mFHl*Q`^?y8Xe?xdE91OeWt#5$tiUK>g{g6p z^1D^ZA)@Ci5zdBS85-~jr!z%-YcslR#h~A5sRl+)rhjn9-yb9GH8}(v1^*(sEk9!o z&w+alUIaO6gGJCto_E!*< >U{Xcs{&hIR@## O3VF?u21fOtORoyfAXKmM@~+K`bzRW*6CpA=)bw9SPW0NE zxK;JJs=yorugqr|IIE6=!5}zN#YDU~BPH@zMzq=I6YYsYePPLVGzT3rDX;3*A##u4 z%4#*p4QnIYBnL6o*wn1)wg|B&dC5PqWw-YvlDlzGkmy$|5HW7kypODbI-^NVP_c+( zZaRR^ENaEa6w=hN1;D>ykuB?#oH76%u1Y(skKiBWsJQko@V&E$ZaOq!{BDTMZx)TU z0lV40Y(DY;uF-Mkt(K(=YmreateTd?!bHZ_VYb`<3cslg3KQvOb_6)>C1;;iN69K= z%IgQ%($@ho8Yq)Aj_`&aL#j-xUZb^9>c$<*{xiDZv=%59yKRwRi((%TX7z9cslLcq zAR09Xl#mk(|Gc~T3ysv(H6G*ka#ibT#U9}B>a`=EnSx?l8R6w7_#+LEN=3?;y+Q$5 zuF{_aJ*=qj`kdQdyW*k(J|*LeHgb6lhdpngAQk~v7xfmJ;bI~&O7v_Riy|9GH?`*L z14-C1GUmBDYQw%xG{6GP;AxEef06-A56V|BG_Lb^53Eh)(fLwS(zLx1CCPr-k2>b= zBZsN1GPje_BDW1G6GJuAr?f9cMJH!BL42n1U6`pk`8h~HPz3mO(T86n{2~daCCBiV zMS8N0nh$Z~ZLdkb>ACCAo6_pcih=^??wL{1C9m<$L0aI=QA1rZy~$to)6%*9KdgRO zhi#Fd+X*@B{>b=2*N2uvgvS1!C_J4p?1U8FXi6r`RW~Z?SO|MSGXvF@&8;o*&cclD z^~3pZ$;Q}#8};0Njh*Bd#& CBinGKM=e6on 1$;E>stB9LmWt`TCof22rV2F1-H6*GAKbKJVL zA^`*RSb9x^Mrxh6Y$ozgmPbSS?B#)L>JB0ZDQrF+GdWXaJ=LD+6U#JmMMRg{H%7E& zb8u_jbBCA+>g|buqFLDJ*6spna`wYz0b(jX%rivnmq!MtY@Kcx9Ivw%hc36*oph<{ z80ElOqy^#)S|tvZB4@w78o~R6U-LXs_+DU`oaVuD;%99wH!C8|_rj$z^5lLk3^_{W z{6po;JiK|HE~oo`pD4c0_xOg;hl`xYX;v`uDqq^u)BOeZYY9~0L)b8TaG+5ADskU- z6OOvs3q@vL&h-Clni3` @a1rNPu9l3rYfVG5Y7dt-8$6+tBf!hfNXR$k`@;N} zQ`8fCn#(5L4OqIxDON4Rj%U2=U8DVoXUMPDz5!9dJunU|U#eq>=P5{e>J^-zQHLIt z@?fiCoWYXLc$iPh^5v_n2Zo}zn-uFO`Vu_2Jw~X%^XZNLYVhK9OCq5( otbBuf^pj`SmI}pP-cM=S2h?$)X5C?oYD^hMb@p zX{1=v!?+?Lls);7dSuOwuNBVc?o^a;qH@S!8KpCDMz1RQ)kee>GZusU>OAs8_NRve z4z=(`J^hE=Z)|WYnnTKJ$^Q3$k2juUEcJWX-pp)}>Lyr(XrVr+aRHSNBDJ1fXtxRD zgqJa~y&mg7FBDO4U*)(3{rh1(ds4;7@kQt40or3_rlowr{Ulei!K*GH|2VSLFK~Hi zUxg4OyRe}iDyp2)4%!&u08T(26>%TP;wz77$a^YL70oV~w3<#YqQCUAF^OxVPaqPB zVOkVqPl>>|X2u+N5lNxkQ$85H@nxcQMQMet`w6Ly-_JgS-r==L?!_8gTP0&2o*DhQ z0rweAma1GKK7cB2p~Pb{({%AC3^44a@LGP6tt-SW&8UD%E1hf*X4bs--p2dJpTNBl zkc#V;iiV;)54zW^vi8HU=_ZuRv2i54{ZtF_4LEfcbVc#f_F{&=DSOfy20_PLK5JnK z&nadAv`y^4f&d9XQXNlw!8So)%qJ-NuO?BP%KQvT$y_`)h4~JV@;~R?R?>FBGA{ky z?uzzxky~#L6}xT=4Ihw z5}`S!_;-jUQ(;&!j*t-~33 or-mHh! z@oC>ty!ZeI3wmREGcKHr*vdT|pUb*cjmhju27nk+q(L*|`&?E4kwub-#7G@9YP9(m zwRypl5aqU`De{;kXV{rqodxJG97L3YN_P$ALw$7$*d5j%^|||9|AyWK+rOhCmVM>1 z^8{_agFXe&Nv5#^T0y|e@RS?9$JRy+20ICC+j@dH;Ik~^nkp3g(f6~ ;A`XY3)2+5)VL(V4$3M*SE;X-;bZtN4lna^*v=yC zCj#eP`*ZF6;FEiCl|l?I? >L;BFH3az z*k=(hIht`QZP7muRZPB|*|TJ&Ko+f64%J4N98S@u_6Eq)4O+p~56L}WVL`k_fi5K` z7F`w%%HC$Jp|}SfE%6h|oeSiy>&pryb{w@Im%iKq~;~0uJ5LC)&rNEzH7KT )vV%&+0Wpk75XxnqioU~-2c*jO^TCrAt>4Re@0F3` z4kO1x^~%xs1ya(za5C{$#`hLse8`O220=g42#ns-U9ATjVfjhW~M z49dh5Vx{v$qBP_55hQcS$4ifn{Rq4{_KprWr~%)D9R#Sq&lL+x92&{St~&TKfnn6f zmD-w$m+=Eh20C;Ly0QvF3BrFK_Pt>5NOb`M1c|wOUMek4r 5=>wOoTLc8w;^ zry7<>IS&4*Pjmyfpt5N&((8ZtIz3Ai?ZEeY-U`*ST38f*#%Wdph)5ns6Y&y~#g;#v z&hcwsn}H^&K|daZB;-B-kwXi$H{NUCugC*C%4N>hHN{R-3)}8j_i^Qz zFSHV!AA^a;VZ}eIck_C_HLmFoX4hnK=IwIYK(VZ^y-&?tBj@X5&kk*&_YVxqqg}!~ z^mz&3-kWKJyji<)TM$9&x&xkNFr$3iDoiCq{)LHU22N8&nEe~^OWJbeb=S&C@{ivD z0=2v93-?B5#gEIMh8+~!eO^~~Uv|9CC@mF63{)qWwB+M*SO#y6rre?dn{l;|D#>B4 zXdCwCubg%A-q%&7j44Fso|FHnT2GT%6V@I0b;?n_ZB6bQP?{GFhW;p+aW!4)#q4M! z{GoKdoZF<-Y*ki@yTb$f0_Kj!Qojl?nJST!L}C7)?atc#;u~Oa MV3j8%`NCjhNgJW$o$8cH+>kM&TCD7{U zw5{T(H$kBVQgsKDDj * zxWTb}nUtflG56KVeZfbU6koIcbWP&=BWti_@ajNtjfz{Vg+rSRxmDwWrSR4iq%Id6 z62SU{qyd=w{Gk-=;ohDDHHh74gU?SZeO;CII=%Pa>myOf#X+KC?`chi?kQTznm4n} zupv%)EP1?hQ%Ne}#M^~nB?NVm?ZdM8z=gr_RdzTYR !jvL51SoBtCqErrDoUaJcK zs~>}fVF$%gCw-Bd`0xtRNBIs0ZQVSFm15>aCtS|FOjDlXj!w~@bJ2qV+UimQ4W4QI zrrP^#Xg{efCUFu&;jEk9I}6M{Y#q+?DSB z0EJK_!GDsTB0SU|?J|WBFMLq2p8+sZkrcUppusli(VoMZFN|~9e@2`-_IYuKEa*9u zS9mrlsa~986`j_GS=v-7pnGcE{l56VU{^%?U^q5}xCkuaOhPrrv8SS!{t92ca&LF7 z _Vpv^c=#ZqC{r_&g^z;{)y)eoR%^-O4pa~>vg5dt77nxSm*VuXD6}zyI zTG~#fJ!ZcBQ%grxYgR?>>m(>tl-s<%4c~Uq2iSU`w(VBn)##-y=~VbYbX~<)2a%g5 zcaPVNk}ME=FCUtH0zvh}fAu18nJLG217LEwIIE@T704CwMuovr=sXdZgT1d=(Dn$( z` _oB9+Du(=-t0E9nvt@cyV8)^cV#mi?<7g2)>0H z(xlh9O+x{(Z5@OOEPI^BhH%2oe_GHJPf}1BqUc*+r=>HAm;h_VZT|#GRY-fA3Wt&s z9kEd!M@R%ea0gAC4IAEFjXaC5>Z)FRB~O!DdCX!=WdieY9nP<9w)L3`Yv4fhC=tu< z;hMwI4*3-1pQHacb)3R?(7?2wKSvh3>zI6CH3H2(e`jWf(NeDaG~Bb($X+@x$8Jo( zDI|rjzkY?to77 57)6 zxPh4vlTQo;on#Ik5kE&{e1SE?;Q@{4n3bl0!57k_)Zr1s-i}Y!0b$Yh7>VJmu}v!@ zP_6bUU?Z}l3$WcRXAAT9*)u>H(ct@5$fcIWK`#siBk*}OmQG2JS5W3Abvm47mFPw& zg9~nrN25MjEB#S9 l3NTZoUq?sI6dRn-;X;S*E^HKtbBxe{xu>#ZCC;K@ z*rfYSDU*4oaOiS*5c$|2m(e9Uyl);(y`Gd6^8%Wc{=}g%T+RG1q6iB7WdF}ukfFD& zw)*G>oT*1cM3vdtSxgEN?EF(iEavnxk1a4F$i+h>5)p7##|=;1^DOk>kdF*b4Hs *`Gtf)|7>LWzxa3mdqAfG>`x4r{uKvt{~ETaC_w#z+rjd--~wL0 zAhIZFWPp7)7S0JmYU$XIE*$0*(heTQly0=Ph!cToDOWrD28j_c=8R~u&T_$>GKG*% z(lV-G5X43e#%w9)AL9$%B4XbknEFuhgn z?OL#_mQ@0pc&Ubm@8>x^w~ z+cC-2xhq?28 8hmGl3mXZP}w&2MeTMY=G$3M{-b!$fjfKB3c8zaL_jH2qX8xHNkIPjoea1IyM!d{ zgURE|z}Ok0?5&nb9b!kTGk<|f1|5#G0_WfRtt<1!XFBP8cs*sZo=CAd0iV6Of4`&0 z1x&edQV89fu4&{$Q393 LQkekd$L)-_3me6;HL^Pd78BO_-DHkU#e{%umA?f^V zqNCju(l49rlu34%%f)?(=SiP`A70RB{?$z}0~}geF}ibu2UN19km~X~$ICmbQMm7G z{8Zb7emrp~pv(N)$-1gXayS)yKZhL-AG}e9H%1j*(!HLy1)acN^V{K7CexOWIEm_S z^CX`(;4kEc1f}?xWX^f?J=paV41m-JyE!wP2B)IIma%XDA}OAQm0)Er|DNRkl+@rb zjw|E&S(ZciYoxAc-HT2NB+trosCHC_?kJ}=B{3Y*Za(q7K%(`Sd-_3sP*XYs0v&DD zu76&+|7~)fKhWl_>`=mq_^Q=$S~TlH{JfQmR@8kp6h8#1V=Oa*&AlIs$xG&_HPz<2 zkjQk6BiE8u1A56^pEoG(bIcu;9-UyIh>INitK>FOpq39Pw~A7q8&|_QoQ-0%_yW}< zZHgZ_kA&ivlql<-fU*G*hNeZ5)U$x63LkSXCUO`onG*mX77ZnWz@wZIpo%p^Q>Xcl zMOC_H`U{xVZn#%A9Y&l?Lvr0r*(Aw-&t|-O@CL-$dQ1X&>q+R!uwsA>Ju7=;H+8$) zGBh2e89qoJEdLIOL)6NPE8pkYFP=b6Ba6Q0<>k%Uz3A!g1O2RbV84KMRiD2&!?KJ0 zMmH1#^Cq8FpktOgr{!0d1j@fhVB2*1#{ft_x~)P-^>ZTf20u^OGTR8Z2)4mVL<7wj zo#0A)W-1q2d^T!>i^l^7-9p(Tm;4&i;ki)J)y?Loa$_h>Skecv*dCNRzyhkE)7tLr zu!9;)SdZa}>0EOyOzmgzS6TvE!E3x7_#sNsHxG`y^%0AsL$0T+!|Xg-Cl?CbRKKEw zc|P#Gu~_E$Vp6{1JT>Q1+DKFY%pN8GdZ39ae@9~5UR;PFLK{{Gqp~)~XV29~);V~O zAD|wW?hnt`9*0=wIV@7lXq`MCM`st9kiW4$X`a~IT}1gM?EpZj0q*EgMJ8bx;Akr$ zoP{>U>jBr1c&vH?Ct{Xc%vsxg@i*9*=1?mhM9}0QXxEkD-w52iC+xi)NO&<7q|+}J z@b>h4y;6VWZgMg>6ESS->m_zK$-`#EKlh1!+0Iap^~#n;tGw1cUbzFR-_{|)&P+$R zQgg?Z3LXTL)@-CVhSbMEup_lsB$bJ8xEE6?pGh-TLv{F-NW*`}>{^n|lv;JWSEFUE z*@tBNpXE9srZ{rSgZ}VmJrZGPv-A!*$YAzhRV6z0F-?uxvH>C(hePp&Q(%5KV8IU! zwO#lE@`OwcWm-Z__SAS3Fce74dA%9V4MP=3N)UP-xomv8X{Zf1715*t#{Z&%dQ&nE zb|i=>QIp@FjHzQ45Em}(UBE2qek| _R(0#q|>Uqv@Sjj+^yxji8@Cb&`Ea*y#~1< zfpfXQ3UgAJ0ePK3)t)Tm`6MPFRpjlCZ9ilLcTLeq5!YWEU~BzGctL`8ixCq>m&q@o z$CaMr>|AvSrP<$a=D3)2Zd{ZV`V1+g+6OEOE;slckjhNCq1JHSr~Opxnk4TO^CI`6 zQfT)dsB@wWg5f#$xKFwWtY0O#JR?oH+h0>tbY#p)9D+krc4xnHSD)Tv!PEQ;eA&rz zPx|nT3giI8wz=-Gp&H$h!?)J*gH7=iL%K>51KHEdyMW_Gb&FQSVkj>^VM=uRE%$Zv z)Ls8eOoxsD6uqhIgpE%h8*ZHo!-pg3gh^sdp3nvCR%IjvNmG>j>J2*t9e;SaOo_G4 zu5~;&mESf dHZP~e zzBpTf+0Il_e*GdJQL3sUSQB+VQD&2=Bx6L7?eCp-)&5hxx26<65aQ6?n__s@6zlnc z2G+J%Mdfgebr=R77V&w>rW)e|+0BttM%xY5in4as5FQicK?sB uzS1m04 z{@8xhhUr{EGKlAw0Ipz`*ZUJ@nffOg!#!utWj#o2;eVFo4m;&pJLm9Oq)pNTM=X2G zrGE3YqctcojMIr%4i3Xb I# pf;L>zEwYL`i zrq#P)wo{D_AlSGg!Aqc-4R#H6LZT~7(tF&(jFyw-&9*>RI d32YpIf8>q;<7PCm>u`ygKneunn6C+!Gn%9GicD^D26pl)Dr zcVUMaD+?d fXfj%T%c>4g9na@iB2^2txumNt$(7Kb)V z)WKZLZ9CNBaR!9CJ7M@Q01g&{SPSfQGd6@*bfkL$M<@(Sk91
6qQeVZXq}|&X$UnAE6;{n_!fm4kl)i2V?f>F8En5;M z0a8)sPX+s9oE}s U_ IvY9n!L-wD|1d_6V+7 z09d^Wg#zeSgv*sS0m1W@M#BjxogKsl5ugicjGe0K5MGFuF#HXVwJIbSg_%^Q!o%@U zUut&D5AE#By4EA;l=vhy(^}8nlY$6;3=)+I1`}~%vz3xJ=d|qn&?g*lM@`tQp0J;g zs`3H-*hF^Se31inRLNP HR& O2HGoS}x%OR>;6vj}SS4pTj2%RR#vlLaUxbwBjo7 zVQWx==40ME9z^e~b~)2*L3Xmv=$zW@CI1JrX1whPyjuCNzrluX89plozOsm ;Xq~5+a0{P_4fb!C_ zgAw{oda~ULX$&OV2he(2XLtc((iqaM9jy1wvPq%$;_Zn&1Ad_ SP1#G*~PML5INdf^Z81i$(3TL$`)hVpSXmW6wgXA`G zwBjD8f%VWFYA%Pgn@b*BlK$A-rQb08eSdOkr(W>?{%kn0NM7j$A^#s`ueok~?{7PA z&fJPqf5(rG@JlfCwi~SG0}mo_Wet##58!b70yQ0w?*xX?-=F<{e}dlJBXNh*9Im0G z&3BH0n$qXj^85gwcC}I95}n&Y&=)FN@B8W8o@wYtesA?L(tv|%v~OBKNXOCXf@3va zR}YmAl5nLwfgkEvsk*+;h6`oKxk>Qjk1ccG!U+_;b2)TmD-MOuV_`;7(6^RztB99p z$rl|iAuyGlsBo$CgCb~MIB{114FFe@je{E zM?WVn!$yQ$La9w`HyVZ{26r#QsdY?tX`wYbJ)*0DUQ^<`b1z#fF4j4j7e#T_5@_WC zev0>=y@_@b#v}lZqa27XuG*$70YO&Hx k6 zyeXh&F*s`_9Au-n*6; 5uCT%iBWP&1FS z0M6GIP%GY622nEjX7Su3PIiyJxt9tn77^Nn_Q##!nUI;9a+#&)L~@$QLdAX${e ?y7M|@1>T>KL>Jv4HG2`c95d(9oQ{d|Wvzn4OGzIdqsur3jVCx0jxAX&YY=E8 zL0lZ8Fe=;Z9_O!oe1K2rRKGuq@)jLpBOSVZ7s$qqou@MSO@BHX#gd=2UQ79lsz#*C z!lp-XT>VeG=tU%r<}nZ%%OmlBA)&xXp?IHY`uah@C$z0ow(cAKO#w}qz;TmHR`$V( zePFV}(Ki1x4(95o7MB{(x0O+%;!`XLCq2Z!_+VhGAw?k EQu%ZAmk7=7Z6ineWf@ z^v9#Kv6^f}XQGDxpvUgSS3I9LLRr<2$L |Y`vEJB#zgq_*M3@G zIaBgzA6Jf8aC2|}Pag*yMPKY-lV8srq0is(gLVd%;nH9hI! f%x@YKxj$DR8ekwHY`-uE$wA+XGe%L< zS|_f{t?u-WI#eG!oU28};-3$Lq4F7NbwY=`ru}Fd8HX=E@4u0%dM_;oubhX$(FvEb zhK92azo!(y+(K|vZbB7v#N)*8y_{j7BYDc4jFe0}^??K3XGldUS$@%r=6CdXG=L;$ zbz3qrZVzKX($>&_Sv9gQ0db(&Ykib1Vy`K?G|2Vgyutg!yYj4gOcSNqxgvApYLSo; z{~SJqgWQ(ofJKTsVVBVMt|Gx9B_?#md9TK`q`GGxvn5%IF@rT20`$PLL|KbHu5{I! zHr86LOVrp>iI5$@1s})y|5Ns>|G$yC_2&>%Nc}Oacq;vJI3YKc%&}#eS3WuFu$pox z9QvQJ5MG<2 }3`ALd;46k8cM3c^b~Jv* z3m^#k6#(t@vrqZ*A-ln@VsS;I`;S{&WXt^kV!OK&?;{-Ru}#g)=aG%qW+o;+dyf?2 zS+{NZnK|S4F$=Yy0i9OWMEUDMHjt#|s4VYIp?uJn;I44e;``a2q3^xCo8XzGjZUPt zE>* )&TV%(fyH9D+g5*Uo%1fmGc0gMS 9q{`ez?X9OzLIi@tR;wn# zkF>R8^EYMa?_uzA3EVl-y D+6yw-X`I9i+ fk7;__X2C4;Q z<})35x55=c)CkoK&wi+qJ{BY<@14lB)GTQTmjS_={&Q(gy5&rIoz#UZY6zw9CT82) zg}*xTUBseGj6}<$>^sTJKoPAKyM)2YVRbyUrQT{?kn_t#6q?lSQw?f5N87j?eT|Fw z@_mA3Ds!XsVEPDRT!j$pj6X^OlqA-QTTG)Lb1&?W(Iq*pwY1CS1VomI!;Vaah*oO^ z6HC)!*hMN@^fqHeox40JPvHBCp$MJfa$9c);_O`%GejA?7Q${@Z!7UXQL*gB8)g3Q z+U!l(4j?U2Ondp+l~&T>{#;Sqd5J@j8#wK-?|XjoWz>YIx|id6`k0HB(Axj=W-f<$ z(v}MwTG5iG6s_)*4hq)DI0=IWMop0fc`#KA8r&d}2>KZ|^ZE>i@czL E|aH87t#s#0(Xx?9l-Mx8+gFz3#H6G>e{`F_sX$TMj`lEq3KPz#Kf*=@f^ z0Af&V1m^9w;-AAo=cetNIKLm6j#ouC@9>-IJUH(39oj&I%r&FlzUa=@)s537Ue*`> zE=@M_lGv{#=f#`EDJ3!nB=8XW0%KANj>Qr>XRjpK4Faq~#{vXA$!TR92jkPyyOzRz z@yzS@co+ZkJ}8uIW(vn7aJ;S4ZEMH{P5 #Dv49{e&Dl80BEo420#$BXUv7Kj){Rfb3;euF))Kn z;W_OkLsfUkJ@c9Gdc9#(o5hEP2e6SnUmd~2!IIHQran;^4(+A&p1G(eJoVGN2+l=5 z)yp_WMn6AFvfI>_1tvnmbM8deVK%x$6%MNdeQgnZ>>W7?SF8p)hj$nvncGdO`X8jg zYH^#Sb>yv}H?rS^O(z>rUg=-bX=9JYT95Dt3f}ASP?7}-xtOTc%#e~#q~8G`A@ELp zPIz!rxFyEzZnKG=aK;>&yDGG_<0YWKI%@h#038{NYlNipGY7*?>KxugD*=$viY*GYt#8Lx4|+4hKX9AN z&3woWI@>E+S~MIyAy#n;m-K`?R*7j7yiABsC{1s3JfDEv++uc7IFQH-J0d|{_Q`K$*=_WNu& }k|# z7){Mfw8%q)x9}xFKf{snDT^7vWI==lnF1E$e^mg_3F9gX^*kgY*yd3WG1)Bz%n*6i zSoQDQR}j-|xn_cN4Si&7*j?*%(PL)CPlAKYAK;{ gv}NKiABFY)bmu$U#BJ5IJok})zb ;_n=jXI%6Y8L9(pB03Ah@>`Sw2l;Lf|-@}Lh1v28g;_=+e@ziA^ z$yopG?|QJb$4&{(8HEATVWcQ-v8rkuAla#s_7WeFf~BW+vROQVyXQNq8lEgN%0Yq- z@OXA^Et;X9HY8INgbfcAee>$c#4tp}S2Qy2?$0Uvdv~jpXggzLFth>}2|kfiKd18y z11VYah#^+c&T9g6oPy~U7?3%k%+*?I6UbH^Pr`U4;6JOW3l#1&?3v^Dk*bMH2|yNZ z4!v3Ya(_}jH*D%fp)0+7;Wl4~KN(c4_SinCy-4pw(%K@QoWzKAD{KdBjR|>Fx~vpD zT1V6Tt!=qHi%9TBh>4=MN%yy|vb|-P3w>^O@yDL;T9gaiZ$|8OC~TPXU~mV0Aeqs2 zKx?!)c4>fCReBwtmqD^jGkSn1UD*d9bpgVQ{htQh=X0-n>8{A9kZn#UBMhTki8fQo zcjueb%>dHz3VW*4%7gl40_id{%(HPo#2jbS`sY(}CPgvATt{c8+zM*{;z1=oC?7}t zJd)9;33l~Ip)9j~Kcp+M-P}5r#MYpG6dN4@4 d 1o4RqaY%9*8R+vMOHmq zar4jMHNVmEHGst++x}2{K^m2#L^2>%34!Aff~B1&%x_14M8jU@rE0Gd+!)QmO#A?% z)t#Yk^d=2)OfI8UsnFwh1XIG;cRO8>+J{z-;CR4V9Nc9s8)nAo8Gx52(pC&}EDfXz zt|%avNk)VhVQW;p@hIc_bS|`5)qo`{E~npAya#R`dn|Qi%o-37Lh}#)j&4a~-n#@?<5GVC zOl=X!hM!Md!b+N)8}nVn@_+irl(!?E6}4X4X8OjeY~+q0SrjugbbLAb($o%qE3F}J ze0)`1lWy{&aWBm>S!7sN+a7+jP2;@?6on9Uo@9wJmMozTE*S${&5IlFl!If4U6d?A zQJYP7*%bxN $ (8bo1>^tNygRkCH)XfQ-NZ&U=uoZ3->eHO+QK#@KbAo)6CA|?zw~gz` zG9pg1K;ha|CA3dzsCkxOT7$%mwGQ&L_5TARS(f^-yc0#?gFqcwpvQDabwipO53hIj zj`luQa$t=`P}7yq4G?6Vs6X!4nhVlX9*fQ=c+JR)4)r0qe?3ZwX_mwl{rC_(SH?9h zknD7#NBSALB;!|q9*@GkbHC?{8Hm7wdT-R#zb^D023yV=cG;r=ry^N=0tc?1%@-^@ z>9lURFkI;&n)|8#zGM^Kc0Zq?nr~49oM43F6Xw?6W@FbTUIQZ)V=0E$u7p3Py4zfr zQs}-cLR$c0=aAoPR+uXwi{d#9J0r~=L~%oxi=vvmYy8!A z$+dh$j)DI&Mb+Ze=k|+UQx^3_Cl@kpfZWZhV?Kv-r(4fOKKZ+|?f&52=(qX(O=UA< zQS7Z#4K=ZXo`4#ccx1^UYI5(AadT!xLnBmL4}gWQ9C+T=N;q!KJX$1#fajpK$9BPx zaKrPEQT#PY%(fe8C<8GR{2_$r*(=PABE(b9vBF`c#m9eAQ;(VYpE=6W@VGzgA4yIm zXdLy2!G>?_$r6%q-Vhs}(&K3PtVwX1(nGM-`{mIlNze?lcrvgs8>?svN!s+BdKd&8 zF!O{b`nogEGSPnU$AENQ8G_Xz^N4SrRG&OniQ%+5dGp*6Oi}5{S2%qE>(?FSRU1Dd zsm-u;RUP3#gL48_V^5K0n|w-H#R6LEtzO&jf#tv3p?u`v9!;rU0=h-#rjF$-*|!V% z4}bxbqgNgr2WUtH5xupr^;W#zReV6Vuo4f=GeIx5FZybm$+i2Zg3jSXpc4S(9urJ& z$F(Xx2>~ vITf~liP+pvb{m|)#;+0#_FOwXL`tPHdEc#; z!a1icGM8&QTkRc-ZZ3|KnmSk?!ddlfEPy``Afs4MQWRX|zRG^fYj+5M6eg@hh_tfp zj6wMb>NZ95R{0Z}(nl1d5aicJQiDT4mSarCzprYeZ1k+0jxvXo{5|SZi;h7H<`U$8 z&_*y=g?A`+tu~rzJ0!X6s#GlSSq;=o8OpI~7UimQCArtus*Otq@;+6gKvdmW8U9=F z6{J8Y&cbq$36QKFLt}bAA4V)Y({#lEibpB(LlbP~L-|qth9sow Q-r1nb6e7W3?D z4P7>&FU6?whus{=;PsWQx4F$HSC9*aaypqZ5Q!MZ-ti4PdG!US h-Ab-psKnQ}hir@`CVCL7Rq^twDG$hmyo()LwxFlR_w89JY?4n*&sB9}8d zph6&T!QHna>JbBi$(IXr;_w$lqkPlEkRxopf?^aL`ndmbm1V^+K9=DQoO?YS(QI0=L5wablJB(~H zq6opd{)v$VUnH=hPNvKnQRd2~cy&bl6`f8|*hLz94RW7zBV8i`qKDjqg>bLdw9AX9 zKkPIM*W0*8&2p3h#^G_v%Qch($HU+IVG)3FG+i+Jlji~7DiiWIAaR>I_?HK6C|7kK zB`qDP0~FH>t9^|M+cCk1iyiM86Nps!(d25To $nxq_LE zC#o`9QM^iXYO}dG#exDT5n@vIrzEt0(clJ}{YmN(UPY#qrx%|VcFqaPC}#zVCUC54 zI(6A_h|iI1_>#!b^FI*07hk~Q<(@c4@&0QR4z&~+3G3*17!Q06i8PL^a(j})fx&t~ z)ZnA#axi!SH8Fj*I!nJP-VgXxZ8+2 L6}Du{poT5#l$gKa>r* zV^L6ZoePLOwhcrMpmKBJZhyT8r`D@-OP8a7^bOu6l+>oW2A(t|M+^{#kF^8tf8Ub~ zEo>#bq^@g1!rKe-V0+;**?VFh>e4Tjwyk)q)vi6+mw~MXVR5+*hi;D6 zrK}yisR*I_69l`k8Hc4bG$Lrn{wh#kN|kL;(iI0*l1*h&E)?aA)CdEe>r&~K;FfA? zF@ukdrAKpfRL6+yxMEqLv`{|?7Ut5Cj8D2^S&;*KH=&C}D>PUeVDjGdYzTlkxO-3) zprb0C7VqTE22Rz`2&*sD;?A?AEj;vV!-Nit4gKQ3RSJ(?23-u#8WGid@Om6`Yt6Xy zetl<**Qt(C=0V-K!z;E3rMMI9fcfOA4^(P#Y$#btSk%W=8+MUFW176pa-|ejfxgKp zBeeV}+D9dZ_ypDSkz%?c{ljpqO8cVXmkA#f(O~rvm-&I6`|>(}vjG3GSxqhW 9SJCcrrH36{Y%SsfEIc8aI9IS7n(msAdxocL=;=7G^kHxcP`D7$uR2jK zrK{ M^TeGNi8GCNj*#Z&JV zpPzpTHZlnMxVG97_ZeWgQ&NLD&r5A8;5ZoJK61cz=HOr4I%Fc~=6vMGVB^-GK7Q89 zLZKqlr)IgcPUMXBQb_qYmKtq$itLt^jAspH`rt)2pZvA ecJp}OXIbG}|6H(*l}Tw&TLD4?Q5;u*JbRSY%~5@_p* zG9Y+=WJ6o7J{C#^t|P (fzN5;ZJJo) zu5HM*&6L&4!h$5_v{uWkYkrSN2<+l_Z0mY+QC+8zgVon3Y1m@^EMkzH^5hS>JdYw4 zs<;O^8q?W{W1Ibbe$n}~gNtZd{*Q&3rA=>E;@H)yKvI68(V)MPq;MBSln|u!pI&Y( zi2CoE$0$UZyY1TD?N{g9v {TiGSnLdWI?VPf)e)^i2J+J9m zKKh(HSN(^=hA2EVLFmmv#;(qRqzR-5p_aWUFLVs;J8yuFc#o5&mc#h7-Mj&U8FsQHC4qngGV*ur_dF0r|C{4nB#(Yi-%)}(pP)+nSR}XQ#`Ay#byp- zoOBJmHYys2bI;uv|MrMrQ0tL%&H<{CxDu$tyrBTTT-|J5LBytexp3LYDkQ}>qnpw7 zr)VK8=P;}ZGDd`@hti%>hOA@SpLTWVbK>f^Je}Psws#*X&DeLx&^AtbOTgDP%h|Qd zOC~rQ1<_G+o2EyKa79VeSl1aI{W~?SU%of&*K@ctLN8Rnpmj#AS_Pj^Qga!%Ulbtm z@0Ou%M4le3no9v`A~-CS(K;mV$z) IN_RC6VP1#>=4Nw)dKfCVlg#e4tBL~+ zz-}*1bFQH&Zr0YehsypjfaIDSdL;QQu=}Os=tRRr+eH+}4tXNmq;%-Rc$lKA@$6Ww z)2m-Jm|L*`wP&-l;dO@7^sP&R+*oNgZEM#Y5*Ei# rC i*H6d-S9MT$ z1lXnD`>RU(5$xTrcu+zB!zAOFU% +e+v9lE^ejgkqVo3}?m&hS=3^@C+=ZHQ{8CRe<9JZ0$u;rA4449om+>zrP zE|Xj>ha(~^!f}QTga`#T)sH>xO<<0wYHH}Uk%%STVy!_us9!}?aSg=ddB=>3xzGY8 z5-%gr9Y#55e?EP8Y)v6NjPpk+g+zv^QH`xbRk+$;lr1RPy@}%9r&6(sp!M|87+?1S zMN&XBO|$t+$Q9 WRt3LE#_A^GKr4E>e=t!f3 h<)&2LrM}MQIns3*Xn}6^IrUd!^m+g$MFfQm*Lozchl%^wdO0xmCp|Z!9 zn;0~xQ$`EPu8^5M@7>;IgpkD>m2FA;Ax}SOlW>6r$sQEG@dfSz@g46b#a l>9-xxaW1m zv7`pnr`m+?&oqpr=*L`9W`rluUQ=3q5bBAW#`o8Bwxc+~TQqtcyy~jt)5`?mPDF*a zP#i7gzrZMC)Qbs7p#X-*-V|s#687WjPHmbG;!S{lPbF+G{o7PHuhG_!dHb2|jtrTW zfp(%$SYRPWi_44fo6W!A+2a?T?)8_ksNRhtj z@oOL&basL$x)@I(ySe>?_ulzg5`j&`-yY-*E)cb@{Vl_x)5jxoKJEcXdEm2GVo6y{ zK7Oj)`u`r{=^(m3Y93v&;SIN3xV>&BFOFgFm$iBcv)6)DJ-W^>V)?YBcYL71l}rpg za}3gvZ9e@nPYQsP&!s k?aT!YD9frPQiKVx5OlA@MdqROP{A&sIPQnC*SK-psm6`J z>r>T~m4t>DKQUQnWqZdng+DxFCc~bM*2YC6yfqByDwP#eQDbXRFEH$;TOGg=(U0;0 zT?gddYIG;&v6h%M$by^~Z@P3cz6ox(iGJGFXl;_E@-YXT#n`h9XJky`L%{lBy`|N{ z1?~C>A_jw)e?_8EE%)76s8_1e#=zCIvf2eK{X~VEyal<=U%zL2@32Db65SVzVaZ;i z%@Tg`T9#nDL*ue0>(;t*y5;G*dH+R~?kxVYPCh@jD_`*BJKc9r^#RHCkz?nBy(QYD z_&7cr$#dLs2|DXBI<9HN7K~;z$ yV9;L>3*gqWO{b@vAU(Z?11*4`c>En#Y{`8aFa5wD1CD1@r9gZ+QAV zx}47s>H#Bz)asZ3zq VTLk2)qaeM h529mfdjdG#eWzcgny{i*Pg b-7l`dg zR^(3Vu%>}7^Vp0#Zo?m>*OYBkb}J7Cx!L_`mc0%RmAWmutDPX5&|IlunRug+Ng#-A zDkr}HR`^g(WIsb{k% 6FgrZ1GS?n#XI=nuXXr&OX(!I%XU8rW&hWvF-}m;0B6e1QrxV>Y|0(40 zc#EfX<4sNb_B*?y< 8V!J>{qz;1M+=VFEH%h19nxO%pq#79U6jG|%h3s}69+pj;eBXpFx843)#a zeKCY0A7SI=fBwT&pIE?Xio3D`Nr^T?#B*Ya15vaV)%D@A{7|&h(;9tk^U5K9?4xKX zfEnI!ntVIpmGO7KsWL*}g(;l_%@F|H70bSX)lAd`ua)X5ALv0(f@lER&@okOU?Dsv zl!##^Wgg*a#bixgQZ`d^Z2BqgXYK4JWQ&=p(lEf;IQ+QAMb1oUxe(Ni243~n2hpis ziFBokE%F5hknVT;7pUfJkZB`aM3Uw12?q3o>T)D*>89{m)tD8uL%RDFFFa0<$C$eU zPvy~CqKueYf#}#>MA!YLct_#|QgE##ZZ Qcs`)0luU!Zc%cs+}N8A z{SP9UpF6&nJqgPyH Q{W)O*)y@C=iGz=aG>pn1-q(0Ws|T<%O@3hDB4ij zkLOZK!p7lrI*Q9-j&-(A{V Oz+Hz z&mDbX)|efVzwxAim$brY6B)nBK8cs5Sg^0;ocUoVjZG a{ZX9xQE8-U!` !~*SM`#+b3a*R>Zrdw8$7R=KebLBibS-XJ+ltG= zS$RhQ_0oC6b~+Z(cV_wE6U__4)VrtA;3)Hx+6OIhOrbd#yn@W>0jpy^7wlPw)uvpa ze+&ou&BE%jr^(VnExi88V22tlnu5(+@%#j7E&4r1IOV)yC?g9D fWI)86}liwKN6$Q7?NJmmhO{Qaj;V(b3l=F`U<5d#|Hp;^3Ji{IJh z86~`xv`1sM#x?2J^i1q#tR^Z%^tnI5><-*iqy|a8NuEkqb$xOnz_ihhorS`x9ExFs zZGM;p-uCj2_y!KDu7Z$VGmR)=ljer9Ny4?)Ni4oR%+xqs>KZexJP_Cx_gu#ER82z6 zVX}B()gyDQIb&h;Xy8rhOjXS~zKIcl$E4Y<|0t8_4Y2!oho5@O0eRgU<(kySh8ZXt zYjF{0^XC=}<}k|!+VKwgn)^I)i kI>hmcs9D#AR(hspx=ePN}6?~whj2_@aBF#qUu zD5HsbgHf%f=%OpWWmps A<6YVy?i)-Bxc~yt=UgWD; zKBIOEMBkdoAqa;ROk@q6`a-Tyy~?#9o6~Ie!Ot29Z1*VlgZpPJ4ZpIOF?)QO ;^%Kgi3pADwqf$uB3NKXf&y}_c1ijr=Tvm9@fR4OX7F704KC@>v}uD zK&$>rQGN_6osSmz`1M0c6SO$3XY7_&H9n!bN!3mJegSi 1{Ga?gcO)FVplssX~*LDo`t8Bo$O))gmVL+1YkWf2~-713|_36qKn zmU&GkSxp^kehvU%o@I)sHswe?xolU1it=RwB{5TDO=T920Am8n$z2Gt8&o14N;!gB zvPEsUB;v`-qKEcbA6S2Lta2QhFSpZ`r&|oJkr2loj^M(8X6MZ9I<3LiE%zRS(CR(7 zksta8$~RWQwOW1)DoC(!>$_v*+E~s1e_4a{%Tk@-xLHX!Swq07O&9%?I~Z%AWOk*w z&}J4xYygyA6LAX1QZ#4+STv~mi{%{itGz0sj?(!i9Xe=LV`fkxY$I>mYje0~?&Sg& z>IigCXNirJ5*=TH0YoRH5{y8Bm@S6-D8Ppom??DrywzU=pdOO;^>zeCT$L5$r5-T* zR;)oAT=cAy2ja}xFDNb8SywTk>R2AGY`A=^kFqUsJMsQ4F)b}33y4}qOClq}t8`(D zAhCr^q|AH{yqOT~D;R64fuLK`q_v>Kx@IXpyyFe6ObSYC=5}!oM-I?f?a3>6$XKxj zgyxG=m3!Qsl+jJ>jL*ZU@|o!Z%mP~I4q!Fe>)s*Fj8kIlqn_nY^C@(*fXUsSMuqOG zG~-|HZmLrb&VdQy29eFW!~)9=V_B*t;r{e*KUD+q^yCK23t~t+!%8G>5kYsAz#)NJ zm3FH&;a6V#%i`P|2LL1PvFBn7Xw?dl0|vdC#;on~ilkBipN};bVjvX7g0wejciL-R zp><;;bfYfQ@CB;v1!3rO1&Q!zHdA!&!q7i!tm |NSHFHX{jXh=D@E=Xz*VA>$pwIJh)nd0Ax+n40Sd3;6OWq`6(?r*E0b-R z@Uz<9Dq^gFO5fu8u0C(8j6}lGPKL!~%#-vMV$+lW^8H$by6oGGY@=)?FAcB@mvBqz z>DuT0z$q9@laBZYOr=)4U-@TAw~F<7B++*ExZhy6SzI>d@mtPwixm8`6o$$!YfFKM zFLg-I?{TaqSH1b-@W1CQGX#pX1e?a~AuSa9yz`&FcRriW!-*zHg`RWWxOgkl4)0)G z{G(HwihktOAGHMHUc8Anjw%K2>%G1!dOTBFj?8?WnloJSb=D9c)#Ce*pqMT&$Cs1` z&=$d=ySYyv3k1_Br#Hrt>`HUl;^7V5%?nS)7Wxk%lVq~8*+>w{3Dth&9PODAqehWa zf%2!J0x|T#rkx