From c7a319651c12d19601b9301c82e8ab9c19d23594 Mon Sep 17 00:00:00 2001 From: Kacper Kula Date: Wed, 15 Jan 2025 14:30:09 +0000 Subject: [PATCH] docs: updating docs based on feedback --- README.md | 4 ++- docs/.vitepress/config.mts | 21 +++++++++++- docs/contributing/diagram.png | Bin 0 -> 117959 bytes docs/contributing/get-started.md | 16 +++++++++ docs/contributing/project-architecture.md | 40 ++++++++++++++++++++++ docs/contributing/reporting-bugs.md | 9 +++++ docs/demo-vault.md | 22 ++++++++++++ docs/faq/comparison-with-dataview.md | 18 ++++++++++ docs/index.md | 4 ++- 9 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 docs/contributing/diagram.png create mode 100644 docs/contributing/get-started.md create mode 100644 docs/contributing/project-architecture.md create mode 100644 docs/contributing/reporting-bugs.md create mode 100644 docs/demo-vault.md create mode 100644 docs/faq/comparison-with-dataview.md diff --git a/README.md b/README.md index 9b2dab6..7981ab6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Obsidian SQLSeal -SQLSeal allows to transform your CSV files located in your vault into fully-fledged SQL database. You can use SQL statements to query this data however you like. +SQLSeal allow you to query for files, tags and tasks in your vault using familar SQL syntax. +It also enables you to preview any CSV file in your vault as a database. +It brings fully featured database into your vault! ## Installation diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index a6892ed..4554575 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -17,6 +17,7 @@ export default defineConfig({ text: 'Documentation', items: [ { text: 'Quick Start', link: '/quick-start' }, + { text: 'Demo Vault', link: '/demo-vault' }, { text: 'Changing Render Methods', link: '/changing-render-method'}, { text: 'Using properties', link: '/using-properties' }, { text: 'Query Vault Content', link: '/query-vault-content' }, @@ -25,12 +26,30 @@ export default defineConfig({ { text: 'CSV Viewer', link: '/csv-viewer'}, { text: 'Troubleshooting', link: '/troubleshooting' }, { text: 'Future Plans', link: '/future-plans' }, + ] + }, + { + text: 'FAQ', + items: [ + { text: 'Comparison with Dataview', link: '/faq/comparison-with-dataview' } + ] + }, + { + text: 'Contributing', + items: [ + { text: 'Contributing', link: '/contributing/get-started' }, + { text: 'Reporting a bug', link: '/contributing/reporting-bugs' }, + { text: 'Project Architecture', link: '/contributing/project-architecture' } + + ] } ], socialLinks: [ - { icon: 'github', link: 'https://github.com/vuejs/vitepress' } + { icon: 'github', link: 'https://github.com/h-sphere/sql-seal' }, + { icon: 'discord', link: 'https://discord.gg/ZMRnFeAWXb' }, + { icon: 'bluesky', link: 'https://bsky.app/profile/hypersphereblog.bsky.social' } ], footer: { message: '', diff --git a/docs/contributing/diagram.png b/docs/contributing/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd10ec5538c9de5b0cdba117f2cd98a5ddfb030 GIT binary patch literal 117959 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

K|jMyQYGdfi;+?KgN1D43@d zy_9kvt(gTio)u=N59_RhIvR7k<%6bGz8ej7O3#PxWd41&HD5DmfCOdlj3 zfUeT$qb17N5kL^^VisEql{-R{&+bBn9&rc^74`OFC?daS$MpyF&y1atwa?UVXX6ADh zF+q4=WOg$Bb|qqZzxH67O9k%r)zo@BG!5#r^nf~@toQZurRpZ?OLSi=uSE?)-G61Q zA^Ib;91dOz-fcEU>cSgPleRSea68#b5csB>=5DPJKU^EQ?-Y}MJ+l0qTS~!K(hP*_ z7w#M(oNdq`U|+3p&E=qG3~euj`pScfnOJ-K(6SLw?iobaLRD0-lq0d@h~mF+2pVB~t;5 zYjm?v*CXrRD%5{@pgg0MK9hK2ijb@J-FUD^dX;7S#!&(sczA@u&9VbQkL(7 zOajoeMF_gYEzq$bCo9^YO1+qz<$~f#tSGEr$Qf?uCaBRV2klF)bFV^YbT||d>bA;`QtO1V;d$3kr+h!*sY$6J%&_!3)zo4%?=Ueu!Eb&a$oFPM z^*lfMJbuBGNrr3TgHE^x@0}2zPR2-|mp)HfeM?s3JrQ=Iy{i;CImM}4hyEUwn+pW>yVK6k#CR50hS z#W(PNyK71-{a6M#*~_00Bp7Qs@Mh|Dyt4e^euX9=;rjlA{B5@gM^=` za=7vA#VA~IdB)bFJRV%K&Nbbw2b9&@W7*~S0WC0BZi)JhE`@I3vObr?Kp@{A+yK3g zqJBW6%3L7oGK+BLBmh%JDhVW}WR1=rKQ#ELcyP8xD!o~y5 zK{dY`fQl?$%>!c+9i>tmzly7J>)wE2DZvI6P+CzDlu|mE0T`sD zl7dQiH%l-!$ilr9L8+xEASoeTqOh<4rCUl$K)Uf8a{>E7WdFaD_uxHv&-}@{?|a6W zV~)D6(aOPt^KY8zJWYPThnut`?n=-Q=qmHA#{+t0UGkx9`ccRA(R_rj9BfC3guH4< z#A%#r%dr1PScTvF8`{-FtUfgabwT_!Jim0ubneXvHV z5AU01wxD%UV#y=qSD}BeOmmmlD23mQJ*)Tk*l~)RW9bEOEQ=8vJf*9{WZ<861*pzv zT>K@W8noU$%`E8D|9rcPcch|CA4)qeS6z|Vrz(m-i0|vR;XV*N0w#T;{j;+rhfI~s z$xqYJ(UR3s>9Pyp`eUO{BMg}m|KxC_`>^PNYdF&w?OWNU#=-h`PN~Tf3ZhE{h9j(L z&dDCtY&rPc|CPCzdSL1!bNPNohROf7dO zP&;O>X5@b%lS0+wu|XPl{5K=6{`aSgL%AgDvLh|DbL_4QQMh{09Bg8(W^adLdUKuK zQNQ8}xtB!mUKoIIhedwpwoR@E`#Y|wiS%ldw~Xfe)lY~`r#;i4H9rpo6pH+gP8oty zyehX?^^e~*{Ui*Kx=$w}b=#g*bgASkP)g@T4P97?3 zB@JU5;U~nU>8AhkAGHf!3TvB)K^oORs^r)_kULgrcwcj;WJ=EWCldfw#rOY1HUF$Ly`d;( zPmGH_uzd(5y=MrHrDT0PcVXbdclPJ9pcWJQmTFXh<^XA3AD9L;Z-X zSlhZlaGvy(>yz=B7Re=6b8UiKzU^_Tu+&=$g*;B9ZKHEwUzrI7+q!y_SB{F_^KYKn zuinNVVaIYw)`v--ygaM3_vBP5J^3@qS-PlRL%y()pr0b~&yCY$7!PibsL-&|)M4x} zl{aG6p1sI2bc5oqZNNY;)$_N9ZVpo2``ATa{enO*GL}@k*tv~v)L5)gnMQxR%a;JX zn$SA2$UUl;dbM*%MPr7o)M=Tk`-{2{^SU!vo!u)UhGHxU)~7_eoQkUn;m9NQzlbB@#>D`@%G@Pmshqs z9K7EOb{-=kz`UTWBGe86Q%#tH=u@4n{QOF}Z>EN3X13CuvQRq#>>!g0vF|1tRKDyR zd_yKg(VrfTmISwXjnqU=(Jrc$m+s*r%{-C#ttHadJQeHp{&iaF;`}+v09;$bAVv_G~nUNuG6$d+LrBaoVU5htJ1BVuyxL9@IFCs)L5|a z`TbuJ)R8nigvy44Ogzc%%(Nx50xgYOe$D7hoUG%(QA^)ox!d10p2Wn~J3k&Z>iSpz zmw>^8y@atS{v;1I!Cw7y@23fsaV}nf)oYx%%(b#XOGPM>pzX3zscdlpDV%G2x4QJm z+Mg!$$B{pHneRcARwCEEfzoU_y~h2$XB+mOQdRqB2@t|oTirUfM164P2(~Oh5vbC` z_+~(j#D@Hm3N7;i8`pq=GO8LwuFm(vdpfR3eYVOIyvDvaz=msAoqwgjDK7fv>uj9; zsLQOQR_VjmSvvKMQjBPO`>?U_T+49VgCSle+C^X11$>V{8x5P>{c!8jN_D^Y{B^S$ z$)TU83Axp!W(`z_+UM%BzTZiYQaP{y7?^}qUMX!b9-Kb@&&hm57?FRR+LnQg`{v@G-nYwA5lL52m(4+&#N5&fMLKl6q%wS^p= z8kCr!f+l?%y2ob{r%#>v$#t2iP-$oUN$LSnzWSk3bCHIZA6U*9Cp`ODK_$9 zj!>P&(4W#R)CH%s(Jf(izO$0b2$8Z_)Pu`kAKD}qQ(>tdp`D*OBgVBmAQ(TJ8oFDI z>%lm8oddTLa|EmT_s1E17>SkW;j}%UDKpter)}|f(PuANn|*J_Aj(pn_$0Ic zTY>eB>RyfMFf)C%A=z?z?NGY6&7H5k7rI!}O_RoXY0v&-#OhhlWcCiS$OYQ~Iw~Az z|ABTemA9mZN@3iF|7NR#aI3&h!OUt!@udE3G=XHlTxbqhBo;(i^UF9T%IPM*sti(^ zN{0)uMLNDaK;Oe;+L*l}(5Up4K)l0vrG-cT0jX`Nr4C<8H;L9A!a1gob62>R?1{Wz zWI2D53p+lEHyRk$($3KV6l^=arS(D(S?Od&K(9=&^Sx?^)9s<2Y%zH}O4nJZ1KC7N zCaJmuP9E7C)sL#I1`rY2c;BEn{QGx3wh1dln(Abp8h0peoB^%*^D>R?m)S!< zlhsq1u#Vlo^IS{#b-v7|eH})L`NEU4+!*h$0ghx5v4HstDxyCOCEZV%%D?a>zGfE9pEt%UIX0eNA1^a;V*N#jh_ zd!y_=a5f66QaGOMw^ub1^Vp-x9_9M|abUVM_(SrqKJB8b&%h~5##LiZb_4bd0P$RJ7@hS+Y}^3n^7BKuUe5#GuyyuLrc zP(-)zNTCN!aA|b}ofl+eA73B6c(l}=&~8t2L`i7RsZoyMC$j^1E@6<3C*H~hqQd3+;F=QKCEFz`N;N~L|a z!dXZ$2jEmUXs6Cz?*tI5z}10v7mV5=S?@8kx-qr3B+^#dw_AA)8CrP(M|s)C6|NFG z+;fY?dgQJtJk=ldGrUWu{<)OXw<{m~>(tcD@oT}aOWhS?D@zB(JarRUDpLLuw23Co zWcnmI;#zqTw52wAIL+OVSk)yUBKjNLZjPR;3kbrUHu*QyBiLS&zq|-=e_?Uy3U2TH zPnk>zGiNc3wDGQj4mwOx0VraZr<8g^l*^#&<1RFZH1lL|+<5V8e`qhiO&wHFd zFt<;nE6zDWHx6x6tJ zK-2G4X_82iooJ2!OI-9;q4sBXlV@1xlVI1Xof#<0iC&zk?WmHZj7Sqo+z znoG^TittYLk{IU)@fB))ZV8kkc*f?@Cin-`%l26L{o>!@EMLidK-aHx_7P+;qScl=8~G%w`xd6%7x{M#_8mFn5Y1BT)B zgLZ@h!(%BU%$4^z;{&wGYgLlkhqzRC@h2TPnRXv zp#C>Tx#JC;_IpTN3tNGFrZKyF=jgqen`d1=OvH)d;(r+Sc!e|S-!G5V4sw53FCNr; z_C7d%+Qz-aFy81V5#chnrMwZ(k+9D6J<>pQ6cr1(HBoClx+z(2ec;%55o(o}T^jXE zi&s?Y7k^!;?Oy}EGZybWg(0HVdA)J)Rp5oOG;P0LeoMF6%AbCW4XCt>0TR#VeC4?t zP#PKJlJbAHlkZ^E_ET}K?NFQM+?>e&!dhM_+&Z<;mK>`}ApjxIUtz-l-<-fxN*>J< zIQ=E`t8ly6OHv+KT(=?!BURpvUyz!u4Bb8d>g`T*zsyu=(z1nF1j97)@3K2=POgZ^ zXq*zL5)NLo5G)-=0N~>ipA)Wi-4uq3CB)YCIhlJYCELnUevk==qM7Nhj>k|``u0)f z`>Wn`POmJTav00i5|oUnyh!fpO5rxTjq-uyNzziP7wlTN3pE}A7rs;NF$%B|iR}%zs<+thQ0a$#JVEJ?TbZe5aia%Nt9*+AvL9`erqOyNg3ND9ck!r|+Tg zML)#8-M9Km7{GatN~-&g6AUvN`rdEl8upR)i>srj$0*yc>2vDe)_~sipO5C(1FYw zXYLBqY%ZHs@npGbpSY*>J)QoOquyog2A}G~c-o?~BW=j%zTAc&$8mQJJ#NOGNn8d2 z(~o~R-ZTD0UNtbAlpIj0;4$T|?P}RMR`X4ThDrS!Vp#GIdF{!3z+FB`H~CTp@631M zqR0Ccg>KL0%vR1k`v7sWAA9S|LL|nLvX9tnz3c6V?8)a{!i)DzlcW7bGwmi_7j$>e zKYJz~(~K)}?%c+VLda9De^r_lmeT7P>RK@(D*`Zi$@3hTUmM(18PrELe80a@^UI?# zp?w=eMGCHA^F(faLGpDir_X}**HoplwmyuBSNj|rkK6i=DtYWfvxj%U4dEd!#r9?g zysz*V0#%q{UiUv28Q$n5dTJ*gUqsR2Tiwhpb|suDocjmKL$ave9y}Le5ny}tw&iS2 z>wvvik)k&pSvO*`2-6cO^r0U7Mwj4YG|&-uHpsNH9^BC_SwYmI@e0wo5XC@ojrd0P zLp)YAORNr6ry5Uow$XH!(UXmF$79*EgEmPo)5-X+t~^nONruPmr zCVFqDXH7zxK!Ye%dgXg5_r1;l8kN5oy)!>(FYFI8Kj?=l{6F5|$Pbbpna;A8 zJ%ZJYlwvL_kyr7)7g3=m77Jx1ySiTu?A^fRYus}7u%3JbleT;wle+(`6L|X1kpj9L z{1ashJe-@OXj){-gEentN{+UX(FhelC17Pq7Su3EHMVJ`h}_KAGJc)CdGy+}|JGVS z*IqXt{@yWut+$r|2OZJg6o{~2+iSNX+BP?hp${hI}o#kx{ z07b6ob~&82wr!T7{6VD0$Q!ChMuBY}0bDbN^AMK^M~P9^$hu0%T^>IarRaXd9Yg+J zg`ZJ<3^eFS`X-4&ADRPGYN{o2MTi06(-G3<_e-D3L|PrH6*#5jQcJgQvh`Z(wMi4o z6sMz|8P&H?IV{mw(3vxOIB;g1rmN8^pvV^rkY~pCJhk^w^w*ZZ!%X7f(f^{F`^Lq) zKA!QFS7N8_SzyuU5cg7LbnMW2iyQv-{Ty37Ci>vX%r2ZbkM>0ep&);QqcQ%A;D@%I zIEQf$wbV3aLz!s5^qBQgB}Rd5^#WaiC^i`==o&kpPxVi< zcROI_Rn=(Vkj$f;d&K3dHdMp z1Wh=C<7ZzN%w5(wBU;iB_au-z-o}V~(9nfxuoF>~mX~z_FGpBaceYg7QK`2ofy_ph zg9WgvsfsQhm)TNEcrv-9VpWD%RbPfAR0j0A0*DKn3wgRhq0YGt60UeMEaDqWm9kDS zwHD8oX;wA-&=Pk6$0l6TOpy4_|KRpZOKX9*WHg6bJ;py@esNVzGZ~EilliLi9}gDm z0*=MM5Rs5xem$iY{A_4MXrA4^wO6ZBG%7wS<@j_rN^`aSt&Ip6NjTV&Oj?dRlx*M^R&k?#nXs?P!x=10^cI zv21|;#j}zd2DW-cdA`H9|$?vGm$kF#E zFd&Fz4nZ5#7%DqrAtA(v$bc`OG`i5PMcF8ekHDlp5sr5OriKxx*ox+*P`5?DJ&NU# z^r{x#bJbB+e&wj5=_}-;K4n@0p74b&u?)%#@h-n%8{D9H1lzy$ox?kRZd;2W_m-}& zFGBR5Br%J%&WjYWke2#Sh5)f{KdLiO5@#`2LUgx{V$H5+P$tJBqDw14EdF^raPsur zdE$jCrXUF$lo9_j zglcJ$AaoHpJ-*lpG=%50EmCDveV8m8puq2|ETiQ^U?>;j*2(4z%e>;E^Jp{@MFa=H z14wSZJ4h^~|2+?a-ARFxbqE>j7J(Rv zCV-vH`?USD)3cCAh$-3Tamhl} zzJX(V5vmYa1o}mH?xw;*YM*0qGQ~ToMy;3T8p3>-`jim}i0r*u%6j=7*k4e7Hh<{% zU0vORV$9ZuZ@ZueLyXqAmW#yww@Iq#^i~~)nTD{n5<$Oz4kiA;D?lazRZUAxC{+-Y zn?9LxU5O^k!zL>Uq~7^6M}z)nP7O-bnbZl8YWHkn|Gd0c<4`jesc)_HAI1NoyR`ru zh;muEc|WuNddo=kQu$D=+J*mM&G*67Quqvis`!P zL63$}rG4=x(14UCe2yEVzJ|yRKMc%R&yMx%Q3N(c&#zDs!o^s|qnGb;I`0-?&+RYE zCw3Vox3AT2gKYu=$E9lG&pAA{A_AdgAeT(|+zt5~$lW-ppW4c6 z7eH%_EuZgx=%O+*`rO53RnoS+M5$mSRlP-+&8SuXF$~ZjRnZA(Tu~X*m~80&dKpu^9ePQ) zD$8jgpy1l7Frw_l1!IbC6Ox*kgTJcp%rl>S^Oaa$7#9Ju<8&tZ?MAY*{Rt+~ndw*X zF_-A5)~!YXr>wKMe7ho{j!fY#%@8xx1UK~(NhCmKy+QP6)29w?xPuPr%RA@@J zDVFtV;gV=uk<;9?+cu&idppp1Vw>qb+W%t5}%7UoQ7%FjvbCkV!&V|XG#o2yPcG5P(-NhyQOp3LcT!9ej!)=jSI*8Lc09}e{ie-j8k8SM z9KugNn9s<~@?3tlxCMbT$~LCbWaBf()+T7i=8w75#;flc77nS#gw!949Bx9V;O%uv zqNw%(sM=0{`vcjHKtamFSirf-$)#^{EqvQ$HzVE}-!V4H?^InN*IK6SO|%^_>aZ;8 z`?n1Jc?{rxAjPNR$fT;ltDTwn;=PUr3xSOOxK@?Ru!C>AU5{Oh391s`u|sgUf2Bo( zvTjn+_|PgB0F2F%Ap3E{GxiiCb=@&x66b3aw|Tv?j$(CS2Dq?=`fh$dX^H?Ud&1Tq)2oJ4w8 zZ{ivKbydyE>piwP{@D+xwOm>xaFCcpM!+e+aqTKOIzaaCMYZN1o}911S$e3+0*$B4 zPO}0!ht2uRGnqX&M|U~V?UC_w*&bdQu@9ytn^b!Ey1 z2%|68j(WghA)^CnsKLFD5Bk_)n;}SQ3>W;<{nLAzze=TJ~(8$;Wn$`{n0jO*NT<(*c;CH5d;^h2Zhic)SL#?Pr%i>^Ba8+t}=AA zhhmbD{!9}L>UC%Cco`p*$IKFPWrGLIC;MA7jtD zFwqtarWAR7?6QBI&a^W{Cnv36C4inclG>&6(9h5F?OYO??_16eFW((;ejvZQ-{NUD zniyO`euU`g=*vVM50#~t)R;66NbpeRv{D6eY{QMGMxJMj&>vheKKX<}Y;tTJH8+~9 z*>P&90$JAaTLGD9!bmdap~)iW+oaAamxp}*rhJeC0U@EfjFi?e#nWBc`fbxr)2S!~ z4TI}Lcct@G7HAsEW3pRTn7b(F-!5)>3B*OA0 zoiqMS$+GP_rwO87WE9)8{(WdYC$x}J5a{CwR{^)SYVgl&9Z#kqF3OV9pCY?(AA9$T zUk)y$ZSGzjpE!)~$AZpA;{*2;l*&LW)s+Mm76LVGLeR%Ebf{@o=u{=aJS0T899fR$+&6}hSFRjVrcf5Xc<#LFk5O@^I|Q?-=FTveA~D3A!T?p1haCG{$2Xze_+&D5&yl_wlBOLw#_?5 zR%d7e>uyD6B)rk4P14@oB+7Lk8TcfpTqLmXmVG6Rfe#oZWCEeN%WL<$#9*e$4F`I) z$a3}_M9jdZa688M4YQ=L_NSsn7&i-yz($Tgc7Q4zBDVdIGQ7xW@#+*E121$*N&=Kc ztttM|>h9(u*xHG>W}?`w8#kW_DSt4!2N_7xe!AF{X(%m^4qFG>w2o(LBRgz$DF7$q z1ixz9k+btZ0D&tX!@maY`8uFr-4d_c?*G#tS)B_NwF%htRzrpx1k~0}%?wC5lUwf( z@~!>P-xnTz{t8sSYUed<5OrSTfMc7$Wi}V?7TZYs|8Eli?^?2S8m&~rQVSku%g+>u zr-cVUzarSRU`(t=aDH2zPY*Es`*aIEW)q{_W_v;^=U93e9inx6+})IXFukMza{95* z%@UOZDX-~lip9m5&i0PdBKPr1%ok_iMJf_cm_(nb0*WWA&YyprN4^G9n%#2LRXqFl z{b(B`b{_o{Tnuy#Y1-Q!^j>K21Y_ereaYhdZF|YO3@IA(h2N1Os{}7ZN^@k}KjtS} z#4bQk1C$7*jk4o!|yGARnQ*_ zkwJyf7;kW3=8eKL{`udoF0T;Zi(>hkT@q*SzCJ!)512nyDf2?byHcNfg_>VoJ7USL z$RYJ$aL`79x9obM&bYMm_+-A9r=o2^YtHZ)-m>QxyhjwjhgF)<^uD7H7Hjk?k2ord z&hvljEY@q1mMEb z_=-pYc{3EZ_4uwpin4KWsYuYb*jy_4$@z14bwZSGdhKT8qk_|WYM+efdK=q}^A+$& zaMp`X?V5VMVA6-^!rYGVUA~V9Gd=!(X?&*Z4eWHE7F_ZC8+6a8h0>NYU{o~=$-cJL zW}rmp&VYry=~nsZJdj>muw3~@wD|ZK;U2P>(D~!|^Cx z$8j?La^&)4VxZ@$_@|K+&c<-~3^o!ph`a0vTD9Lki>;uzlH~q_wOxGLo=E#Tp@GjQ z_vPwt!`+DmDK$6&UtP5r)*et8 zGIQCLlch4h+dAvC62pJrHSr6#j;e!iF@k)HK4?SN^77&MxU&FWdt!|O5bmP zqYqXIf*95T{`E&wK`W85W|=8EI`8-C!HB<~#RD_(ohi|)PO8Y>4dp?EPE(x zp0+=NpL3}&X(eL9-HsYC46<~(BMBA*Kh@c%d+&Oy8^cTPPkSXk$eo{bSz_!Dz(YC8 zj)>;X0dW~hUUdGW=6<=ekfJbgY+JYNO}MXMr27>61-*XZ494e&(eL5~Q;)-AT;~Rs z1L10K9+@qtYeK4iYj;wj~DEhpyV2LpMtPp)9?f*{4d`5b;>*8piZ z34@L<8VvTfPrLJut-P>w%ABAcUfe!o^!qZxQ=GxSPU*@#QX(3>+vAabV$dDG_45Dk z2n`g<|2i^-mao`g>v6q&5pE!A9BhGm?`wH^xq*{f3Vf?d4#q0Qa9m-1*m&T8^7i|P zu?AZC4t%jKAToe7ZP`n9t!Ug#cmYfjj0`L>E%Uz5>qT_n7(9CB&EC4n#p8X5rew1& zenwo$N1`t}$s2sI09aIg*$d+9P7t<}^7iYKt}(5}tr z*LO_9x@~z#*1aOyyyOLF8rUnSWRCxn*m+>q2f?1VC>97o>%V4g_j!PR`xcbSLX^#4 z@GH;VXd4hs=VaO0fHglwyNG=P_L}(;NtGwOrRJOgc*hC_uPx5(xr2fS(82VJ<8&NyMZ|q^?tAf?Xvgk#i!@PEYb1I;`cp;@52w@x} z&5UJisXUi*c!`*z8dicc#23CBN)MCB=W}0v?;2^t+ruY%H7bakwglnq>FF6$NeD*+ z4JXSd+uCEltp(U5K@=Z;g(j2c1W~G1qir#`1OhEVTmHaK6ryxkS8!r0x250t?TDiR zi_wFA&fSz_FK&z$663w)p*J+QnKxg^c(e)oUyf!Kfwae49$1P;4a|t7PB5{h2o6l- z!;hz6WS>AlT=haF|48vv3fAQCnp}(1M6TfLSbPZYb-&G+d8Pyc|2R@?@gI@^hxBZJ#QryRWEBumb zA_6n(9JwiH?w<9XIQIg9Xq!bD%-rko;z+8|m~=qQh<#er(R3%@Dn zR0lfIZZO>8{RNbu5`UL~wGM(WTsbWH{I%>bWyJ3I%P5X=tuVv0#XcaylolAr*rZ~p zgZ|qJ$QT^}%p6Mq#HwW_<8v}%Q#I(BcsXoo=hue*k85J)|7i}b=A^D)C%1x9SHx`* zd$K}=T^G>rfliXp@=Xb$65Wc)SgIQ8hh@ks^#RmdO>FWBEl@Zm#~)Y91FTH$3Sj!1 zbx-sxp*C@--{1PJHR_exRgCghQh?iy2TepfF8W!NF&P zjtS!>=7Si6O~|9=yPLaixu~{3!T^Sw%^a+}S7I-PU+>NaL};496m;fMLiph3!YJ>h zS=5@^%w1yV0w6jSC|O(#5F0^*LmL2IzGXm)6?MDwkbUz5;bSM@Pa=7}(C_Xaz834S%28+F&@?~kMdORdTNZ)sA3(O@TD|Ij%O1j zd7$`{^`a8gwlqgp4`5nQAqf{6X6Q84qngj54BDFD{q0Lb?F_wH?lgm}(g;b)R5%cy@D-}> zs$JTLW%#La_J#~YP>OR*vj4o2nd|w{1rz7QI~MH9&M>-GX_7hcS80)#%S3Cr{#G=D z@ImtA&*|&Ezd-n2%(Qqx17-8ZB`S^RrkTUMuICXuNb6YmdnZ|$apFEZmioIGFGiCm3NAKZ4rB_DfCYC=q)$QG5YH5O>shhoRo>lz}qL z!dEP9P6qf5;Od)qoydsz?S`VF-ggc(A70Rj!gQ1uGKieto{|;?0z6yti&ly z7J1Kxc)#b$jTNi3CG}-f)|r>6Q(%Pzjh|INN)yci`%+8Rnb?l?>JyLrc*kp$S^6~o zK=FdxBjz&jGByUlXN`NNoO8SUk0pn`!r7_~vp{oD6e_!{rCnH$Fs6FrPwJn8O2FG5 zt>Z#n-xx;%coAPr41#e5>h?x?do`Iv2SUFyR~mp6w=NoCyWBUZ4^_1<%LG1Vu}2s&^SD*mM?NrY?QTFs`4i9? z_?gF*sikKDJRjnpcYVHAt(2AT@=pYjE{8h%0eAdMWD25&p2zd`pyXYZyhqg%)p1t$ zf&^LU_Qn0gnGMnd((UqH$=cVrJ#qiQ_%1|0<%Wemci!g*T(9fICoU9zVMz8&lzGbn zEXD<-jr}L(wJj0NlN+EX9}7XLtHvFUAMS`v2N3Z2WlN!7MPnZ0IG>3(;zT;{PC!ep zLfZkP5Yb&B*w)JnhSsIT2TaWfr;b>b4oC|mM3oxk)&@RfO}%ZGXdj-^)iRK;F|PrH zDocy)zX~iJ$H64NH1SauuMdm8c;ZqM*p0gIPsjbHiz_+vf6c);Suo7D`Oe+wGi$Fx z%Jy>kJRH!Y3I3K8yMy1Pe*gJM+p2NECUb;{=b8jqU`ZXZe<2V@R5~lno{V{hdzm;s zggQCW)qNl7>P06za;_#;$VsO5C+g=}Hs6?^4U{tJoQa49<@!@+H6?xbq1XKb2`Lp; zjMdlV7-REffCJJQa5_bi6JHU`e+WunA4GPsVdKI0O*pZ;31LV6qfU$q)dn{Bm{ep? z7+x4eecAepmIjMZxntAV94aE03AT~X(`hr5?C{+w7MCg>W7-BlUdEA+yoN&^NCB2g zj=xM}PxORKuwG;mXap*N{P@QVAt3uZTt)Al(2dYI-#MzNCuiaXoV3po+Kos$1-Gh8 zSDFajsSzXA`G$-#2J`2r>(Sd?(h}k-BXX!1;Y5#= zx_wH8UcOLnZzGoF%(FJSVFISD)qBI0oZSDU4etzxsjbo7Zkhrbpz1%b^qNZVM;Fn@ zFhbM2R9RbF@eaQ|Ur}r0A^(>Ny!k&%Iy++O5fz%o7pAK=7BEP{S14S4q`ODethX5f z0*SzB@36%d^OS59nD0TTFXDAWv%V4$rWaUqB|>1ibT;{JC>xm|IDt#a{FbBO}%@9Y8TEo#Wg?eF*^0$vbMF(-H6 z2Tvg5bBzVAYzddnYl7V1jU&L-vv2^FP$L7%Djpx0SL#-X`nYwK@s~P6J&m^fb>?6I z%AzA{I{sPMnhDpR%$xn~=0t^a;mOj6HL0bAsLr$%F67T`gkQ<4K>Jatk`^jQ0BDhQ z!|pw`RA!kDoXUqQ-9*9=())q+ss%^0vLs$FqE?{K7(`PPaeNY|Z5gp%)JHd$_f$Gb zXXrD6@ylld+i;3eWpTX|J_n5OEz@V>$R1E3HSi(++PII1v|vnbMZE|Ve4IxYos&uY zg;qPC@b;9MlU&a20DIo+{2~iDPmm?~d8$;c9tbEn!f?)W-{B_u5L1C02UN)0y{gx< znhT-xtdP2>5(lQu``2PMkQ3E700Q4=M=xM598b@)Cwe2?wL_sWc{~>^^gy`@Fb6vV z$!5J{_vCtl!?;9HT4`sZuj=ldDVLM_M+z(*fnlx0(^7D0eEo|fvO$EdT3^o5I?obT z`yya^jPl+#&b>oaJq&~qxLA(6e0F~4&^SMwXT9WfMf&43qK>OR!!maN(ew;##sk#3 zSpZj>TRIJx1BQ_<8S<~dL?WE_(-~~n54c5W&U_w<%FU}?9~3+`;~ILO?063%N#x}P z%G2^7AsG;{&C0U<(|Oth;-b_b>2RA=MV;}~&plBy?<^PwP!~Mr)_&lls^D@Of1p2| zTmJ%GzKzWQWOMJA;dN8-Ix5b~{T1*s7d2Ik=`S8P^4cAjh8eBA&zYDYaS2j(|F=Shj4&#;E;KE=U3bv{ z7`ZO;FFF(=KJ5>ut73r^WKX>LxcxJ;X|VGRGFj{jd6UH_s?MZm(eTLmc=QBoA}D*R zmks%6gs)zOaaK4 zmFocX;`$0CFU=z8PJIE%ij>hMAl$Ng;xq^Ey9j+;7cZq=5!W{sonyvMAktnyvJ|~Q z=rzugd69Nmd=&Yr7okAMCVVs>xzv@gwUW`(2EQME_=7p@r#ZcQ0w=^6#x=^CN)Zs= zt(%?oah;Y?;PLK!fP-C(;N}F|;-?cl6sw&9{`zcLs?3QVDWX zn|sT;bYFdtE+|-E-)pw#rHH2^QxNB~T_WFnVpMmD_2Dz1#p{hhKE%JlS!cEc4dtT@ z1ACAK*;wdqQ3nkwv$TwJbOoKfa8cxQGN2WB*BN4iTVGy* zM>6lpFVEnbQhYc>=bvXMT!fl63&(;p8gGOtWS4TrhW~?l*vmIaM=&Fsf>>|d4Qj)Z zj!t+eye!OQ5LwAfvr)f9^9E2RlYfVk1_PvOXVfAdPOPs6j%W5W>;86!w)J~W{Ggr$+ST;Tw(`yi)qxcHnBuJ{%J~f zr+=AC#=ww*P9GoRLCykaWSF(e4kCFTB3DxA?IFa@T~4INc_D7TMo&b)AdqCQQ>f%u zN28b3%(C!}GL}dx8o-@tB6c{Y2v@|I4Bd)j7DtcN`7HqjQ$r>gi(`l{s6$MgO6?R# z;4PJ^&2R(-z!?gY%wHd`qnZGE>z45YRX!xtGb6v2Mke4wfA!@7)hqV1ZBRkPFyC1U z4$pK3lymRxa87h(YDO)Ak=6PF#Txn#>~cMq3ztGVR|nNwZ-@b08x$QW`nA;P+DHN1 zBl2e!!MZqMnejz-Hu;e>(oe@*3V~RFgUP$`quwJuumpu;%6OuvPkG1(F`IKZ=LX)p zcTM%GoVNveJTf3U<4pFzy#|*<{o)?TL9VqVK$-NAe;^ryqS0gZvO5k|?IJ}-yBhjQ zx0sj#Mx4S%^sH4lpAs+BXd{tqbf~7Wkb6A=MtO_C^~q}rf7wXHe3k+Qb0nOu8Y?F_ zA=GT~0J#f^Vy-3Uov7pPgD9N#eaZ>n&4vP{Ja9xa?_3V zl#$OmXp>S5w1AHgOmFWX)vjH;j0YLt9>Cy{AJ-Oyg=h~352X-10WM1Gy`a8SSQrA? zw^6hqeAe)QYxEQw2$};tFdX{fuXP&*?DZ%X85+ukZpwHvyVJ^dAx$N-34Fm^C!V`m_zb$|+ERFO2njzu?X{0^v zu3YzziK{WdeIEz|6=bl`U7wejJA>k}C<7RD+x#%mBo2)s24r2I_$VS$F(you5H9%b%F${3HrYb4EP{83}f-<^ox1mwsRyu+jo=e4O}t=moUPx_pLP!ynh%5^yL1;NH=MmHc?2fQ}`E+ zKl_`s`@_!Q+t9Iy9kwZOv$p2C1;Q>tq7w!4rOV`x5ryRjX=%HwEhWj=CnjA8jAN}J zNRs!mUvJ$|5p(nMSSggV(3)dEY~AbKE5lAv9?Z-F<1-cG(?G`GDuq2+@AR7yx+36bjdE zUre$w?$tvp`EQW@4xpA%@$oyp0U~g5jim9NBkfu4XAEiiOZ1b=XqRiGP>QMu)^erZ zibVWPJY6hsow!SE&<*S;{9(CX#HSd)^*8{OzX+17#+6aFT-9sWa)IHR&5+*<$y&rx z3}CE1N*T+ATN61Lehe;IEAwe3rP??oET~Y}ZhN%inn4rKiSH5R1xiQS%f3RnbHs4d z0p+CHiE`@KbHQFZ{iG>fI$6uk|&thUtHDpC2 zPek%zsu(3?#$KIP{$n@0SC_^*TmY&(P`|X1mCWfP!1#x!X==P6g{ThsnKWag*692eXDe~>Xj!DOBQ@S4UPbO{z z=z>nWT!Pza|KacQP3}d^a1p{{z@qLiuA&EfH%1E zm8qcQ?pig3CD{Y5UK2hsygF5fa#S@?%c9furXHx>xu9E3@&dIf8&RwM?{v}? zhk<2zt{1}ua!Gv;R}DCaKNi|-esA*jCM>Zf#7Kkb`j!xIAbK3{N9QfsdKOdaPQyr) z$*>yf7H6|O&&O}}O$mS;#Vt@jytmJzN|WD)DYi9Zj?$@GtA6wWz7iIF-*J*^&0Tda z(7Bg%O+MvjA0PN|Jis*nqd>XxhjM-K4=*whkXM1Epwr7xyw~9|NHDj2qwYXB#0&SLvB%- ziaDCbw_oIHtVDPuehxIkK+xZG>lKe6y@}>6R8)j2)RLo#6>3$yq)CN)uMZ4(?Ux)n zguyGqvtognh3lX7^VQ8?QSb_!06W38(1}PPf{ap^`$g!&O`o zQ+Wv*tRxYKF|ae>0|^;CS-&bZn)q7jVtPR}J6gefq};GvR2g%vhb59r%1uxpya|p? zbF;`Fb)j(&i?6AdyPmmKp5wRNtIeFG!!|{(7&HeP-$_s%pEl@W-}e`W<3QSn)NpQJU_9P) z-t6l67^38Iul@X@VI#)t!FwU2a+GmV1;20P6>J_5dt4jyJY{bRbiv#Cjxs>>G55 z;TbBcNv?L)V=g<5*vI%7u@Zel-7G_o=#RFYQEvI`IjUUZbAge+VN{h|pL(OJxrE>6 zSGn1M=gg3m-|*0!P{@$gwEX;*i7*U5Q-nfu^Q{!sR{JBB^qq$9HHKD504)y#7ogxrE8CTwqu! zsFj;;^fBGItNgzT?*Dt+|F>@c3eAT9_fNdWg6ZCXXyVp8Dq1uP_$ ze^|&MOL%kAB+~A9^#k8VKa{)u)rC`*sS)aCnvI{_mlpva3F^%am$wmOWuFMvsams_Iq3pz+9pv}8fm1T z(X9_2TY?Bz(?)$ki=iU(sYTwlgiAx(7Ut?rH5H%0&_oI?MKvrEpjfMXwOA_@nY|2JE4894x^89j@J~op74##ra<^7%ZM#4IW%-f> z7x)?2p#IU%6n_8tvKTlVSKfXtHaBi7ZBglz##2ev$D%9Mm^J7kO&P7z-atmkI8Y&Z z20+JTiw-{IF0^LKo|Z|8O{HTCk$bngo)=)2T!FVUf8Vy{!9pE;=R_^?r9vPg{v5Uo zJ*?z@7qF{D@%$7G6J<%2L|)|jabt(K?tR;kZJz+3oPUfyCj8?rY3Y#qxxnh;<}N6J zT;7_SFlnETqK(gXRb5vtYHf&ruTb*JIU~HV#S$nwL(<6puaa5wkG?`oLVrRRXQ_`+TQ7-SK9Al5&Etfn*%p83IbRu@Z@d!I zi-32CtJv-QbLAnvviqna8S@TAy&mleFLDCbwa(PerLxlTpU)aLlZ;9DxUcx^eB5Bp zW@In7xmwwl)mK8NY5(ANJ=B@|s${hTPTA7Nr1E5@v`ld|n61E#m960r7ZCJEmXF%% zgG6zF5&$ABp;s;gulZC&1)NFiO^Mu#IfcQ2T*` zK64=F=69ooOuOmHTEqs{*u6|S%%)i*(cHtXI;RUGH?bIN#7F!5~8vDM4Nh~XUVk4ZVF zc{z+f9$vlJ{u8+XQ|Wt*0T6uJx7XF1ax{_3bD!cLTgl_$Q9T>wIYktFSif}mEYcoj zmo&4Ev78~eHeeQ111$xcHtirkfA*Bxcy8;s;rt3EP!?;4*UF+{_k&AkEZ@7nj*s~M z?`I6eY6)K=4Ka)(9NTUO)E3(gUwh-gG*YHv5w$6Y@!9aot?K}VIxPwc(|?%IurT;R z6xxcvp9N>aC={P@5!MOrq3XsNlFsC4qb~}xrQq&9&29$Ql>}luX@q> ziYL>KW1BNZ3m;&zXA%`Fg61n6j%7lvysAw7%4qBl!(fhGo?agbM~c%xgS1rHIT=(O zIvJODgar_XT>Q(Zx2T%|}vALV+k+=DMkNypSUD_56( z&2_-0?1!FW*23@@TI?i-7Rjlu9b{uOK0!rTcV!a4#&*xghpFrf*Yc+^VWgyXVfN1E zf85W2f7?n`UW=*@|!#M{kASEr~eau_Rfr0+B;YK%51}nTzqJg zD>>LGF|SuHDrz+hX6FY}{tYHVerc-?WmENK^6rOwQdh9S%1?ZJbei6Uug5$P#||79 zW4a7QtIH?9oBBQnzv~~aHyZJ781e3y?t3fCSpkbwQEe-<(I{BpHLRUutDx6!cYJ&n zeBTk9C9h2J-^F^!#l{vQCfd6aa<`+QzHk57&;H-PulWa`HU<-^V6vhg@wOx+IitKj zgBw_-apy6ZWYZ_ZEAg!7)YSJ?SnYTjA zL464}_N6KJMoaq7)^3*j&Uw07?IZ1hw~=JX4_seu!dd*<$H#-abA7ascx3%)sqY6c zNBFKR(_<>C^2ggt_}8riaZy8g+1M(DGf0-qd09)w>+_FOQTB z>*Eu?srAuDYjK>Njg7aY;d(-6TD6m6p_FJg3EHTl<`KkR7`{?nU#LYL==$%N&}jJD<5V9w+$ zv`0DFdM84@1c|w?L9m@OtyUQn)(izNifthqb1N9e5xVAe$h*H6M)EA9*8Slu z2JCxqWDfWb^76!JjQ33ysUO5y_V?#01ic%|Agq5~Bv~xqpHXS4> z-A-zC#b!9*S~{}fO9SDhpO5OU6w93hWx#PWYeQSM1BCTwjK)f6vkCNF^OLOR4JH)_ zdLr2^9}3HedgClipPj9F!`%>ptOb&k#Vx}BqEe0*Que}1puU!T7s_x--#@9VnW*B&>Jh#Gt&9`gS4D&9*YrLAjk z|Na3F%NQN&T63GKacv7qGIIML!EuBU*DyG4tw?Da61shIZ+u@3~9W>hBd2);fdOsj7B^ASUyKeLXA||(=TqP{g{xHkX^lmeio=xBFgR&!+#6(pexNNg$xyhxuEn z1hfsL{8M3jTFa?_vs6yNA=m31nqE==pmg7c4I5Tg>NXbKTkDNB(#hOTfOop15nx@{6bn!#c#Jo9cx8dmdFr3fT zA+_~Rzik(`G}1D*jYrnSR_Wpv9+^fS1<%`M9@XwQCoB0i^t?VYaNT0uvNxibvX+`F zMvrya&bRgD?hqsh^4~?V228BdXrxGp5Cg-i8mxI0y*=kUIA{-+YJ%adbe*~HUudT- zgCT;K#*4#{wroZ}{3@|Rm#nbPXO4php}g_M5KU$YDZzYlR_9?Fh5wCSAOMUAtdo~v zc$B(K29nkxVQs6kj`Aet0=|`2BmE^B;kbcaI3R30_uo?@D+#H=C&jDth*2uTR9H{KkZ0KU)gDhFC0s8S|?*Fmc@I_tsf#|q@d zEgW9E!W78F?23zXSVz(16GK`U`R-A=L^~Kvh3CUv%Mw_Z8+rkN6n2uapitc!;vSU2WEBuz8rtB1saG1rN8BT0gg{Ac=6 zS?d~=ZZMkg>M4o)pVrR$PXuS|!|rFS7>IUKckQisrb6DrE7!^+?|w^BhitM&cE$ik zrz<)CBaZ_iwJ_+-Wa^*qOp}UNp)@b>twhs0&hb*Dp1Ng`F`lMQmlnfu7mj3apnc|F z_rd=F5X1%5qeu`Lwwv(|j-X>F-M6k6H*T*d*Ftl(&`KBuh_)jwqJ z25cTMi2-FBS{sql7qHuwH!pS8F|bNykiWeQZF)w8o90z428@q+!=9!LsXoIVUP>SeeT;oDS2)4tuduR8+*m; za=I@cTkV4%nP?YgY)6nv8YRtoJ_D<1|F=s3MYn)v@``&crkzP7LNn58F8aI|iB zpHsK!8kG-1rl_blzi)6JO-5U+ZGIZQ>Y-VW=)^A0$OH!5dPm?A^S{CFMYMK_x$J|jh(8##`l{F3|fYA zc($zuC|=oY&ML(%@4btBE3;_HgP%O^A>lGhWJu%*!04; zsWm?PF9x{ju;%^r1Pm+jINR@}j2%XIiG+waPt(r1Eg}@|neOwj^>o8|U(#&uG4;~t966dF)5g>d|d+_V>K^7tR0*B8Vdr>__tZvu)mOOe!GZBz{!&m6qc zhsS~>`{!|~01?}WHD{<8b(b2RFrE?WvW?A`%IYc?pS`3{^V?-WoOd$4(sNz)ZvW=& zQ}zNq7FX=%JUIiM#|zrL0`M$Bgh`el%Wo&bXp&$A3YH6vj!&&Czs_SNeTDBChi+&a zZ%X(qN2B6ugo?F@`RlN%Z4r^BCpPxFbb7rcyT}I(*O3)s+v+~up#lPH0z~Y}Y~ezq z$$!zHzd*hJhlCKXEB14?VSxm;t0s(p*+ot(#G0$>(=@e=eQ;dwY0q{2jvtwXWYP95 zK8v#xY?88UL1cxl(*D(+Hb7Yj3%~O*ZJnS2;${PkT=!raz7@~%`g_m8kUxu@*ie0T$mVB`1ya*kv*lMf8bKDz;HcesCh zX-gDqwriV5_1T)iSSNJn!?ONzRf;|X~=+YdT|02}VR0dc;$mbiKqtR2p&t9Yi zPk)?9S}#pD??PTZD*STq|2#E4(}-$3+x6;CoIHG%Mb2W;WJ{Tz$Kpo<=lEYb%6d8v zhRVfM{`mxGFkXEExmS~-76oh_s>muRK4qy z%y9bs_v&a*P-ri|N%yjw9TIrLPkp2GIeb{venZN-u$M$Bu>=k8e}{kfva8%^aF*8T zPCpx9_U&i$dd`>;n=&Gn{khj zOkISjnj;p>TZeVSqBUxm2S7Mw5LUEoUgTVh<(>!i@8J1>^}>pnJd_e^kd&a-vlE`q z&&Fx=!+I9p2no}qbqxKt`As>TVW3}7vp-eq$uJMG7?Hb8EN2=cI@?Y3*%{|Fc4@8 zxcg~?qBX@>KNrB?CXAux8U1^=Of_dP$#jm#TDDvTG)MlCcaKIyPM|T?(KQ`dk3HxY zA{wI0uHl~YKvCX`J!{X%!aJl5l|t(f7Za-)rh?8<{&7xMdD)7v!2VUj)rV0slQQ_? z{B>CMu4l+cK1K7*m0~ycCHxlpKLCbzZP*#sl(>IhUW_Oz1-6i2TD&Ik^xweQpS3ry ztK)Uh4_$dR9BO>yBZK==Ghgi5E^^@<4%i-O9rQmq8@;Y7Ur~@~{;yYKt?#ck++hhy z+7Y|9g@(M-#pot(IB*_pPZN z=N%CCwWruUwqng3cnm7IT>cTA{p)?^_xG4apix_)loWA2IQ>lnrN022uWc^x{C_-# z)IfPSO|2Vs`TLvyyS0B|u=IbS_D>b?e`)Ps+Ts5{HxzRQg)}AL&yfaW{(*IqS!jSr ze)7sj63CPIb3d{h)Q8<#jOd&7e*E}&x1nm^$r~7|!}KxKkjo`DYjgdF&0tiqGDk&D z4axX@F?uyii?~HRMDvJ*2Z&C_#=9LU<*(dh|9yJ`#r!02uk?53M_djL zP{e^;n9>!Fled1=Pk-(%yPs4i4}!R~9{7!t&Gx?k3T2A0=II_GtLBe4I}5Cc3~8KV z!;ZQE6l$mV)Pz#G+_tPP({N3L_`)#7OQA=^^g+U4qLe@W&7@YZD7JHRG?IxdLI)}M|}ia#B_~#sKHdJ&#$u0 z;XN*s%Zs=ljVS>Mu(WypzmDdNKd>jXojVtjgw@oG`wyjZWTZWAp#kg_eP-Qdik^$( zHzSkuk@8(X^EoG?q37WG9^=v)hFlit!!FK`M^o{E@kb@xpHwfqCjZ>>fdlmDwS{ui zuCR*#`o~Ix=q0(+4Xxzf=w9Zey_$q-!?z7;wzwZ8X*YR-(t8dB%|3bJe?8iqM>2G9 zJ<#Q;bXyaP4fC3-y8m!S+daq8dHTw<2XLI4%RpwT7pwm(fBFw(v{h>JYYcp{dr3R= za|TJm%-aBS#pLF3IIIC^dX{gm8_>YMrU}Dg=hfr)q`UXmaIWcVYJ9J8du3fx31bSC z%75UqFXpzL~Y@Hz66|0dF z6!~BVLRfzmrP0*1-+ZnWTWT>Q>*9Ee@wNqxc$Ed}rH-kZTv|}c@gMlV!^=V>XngiD zvaTyqX zc@4gaO|(_x_2Na(xEwbX4V7Zv){2E!8PBhQe(j+2{rm`8UCN*G5He6odJaE+r}t*0 zq0JuH##tLlibIw;7{z0!CRUAeA$2~boiDzK-uO|9ozT0?M!UoE%qPF)@k^Sm5$yEl zX_E*`?Qqj$4(xmx$j({z?n_HTGiSA@5NF;!yK-8sfFmMwX{+(B5@CQi;^V5mUIPWw)lGWkYgID++f0p$JY`@HM+G1Qt_PIsJ*L(v#c-7xoJ@ z|1&iK>gabnVj0Fez(W=P_+ulAU4@dgWTPiPk%T-=v(UPh_hjNsVVd- zeL3ZGn@6M`L^}*F6Ti=}-(D_pAT39hd@PWP>XVvu756E(xM_3WR*&tbe0B4CAvpA7 zvv~Q)$UTJE$0eOjw4113i1zpvOSmUg%$EAB6e&v3d*2k|cDGdhP7nJY7D35+H>!b` zh+1F^ss3zmr&r+Zs+FE`5AC5*Tr+g7pA)07My4Z|_{tZ^n$6&dJ@^KhUJu z7Fr$d(s-DdBGzS^t0-u|(yo&J3lg|eRZUlspI85*QKx12!x|5+(d8p_tI3Xrj=bw{ zn>X46*Z<3bdft{c)5i(sO|->!y+g}B&RN2}%nfnezUwL6#*=n04-uHM^;DX&Sf1Lj zQAKg-B13!dic#9P(62N%#W26-)|V0O+&O-aY za$5I?4-UHo;yJ=Xk-d=p# z+ki;C^MYoZ2JE!jcx|AWYuLe#UKg?Otc7!x`|LD?vUTuSo3pERtDu?eY_%uEd}n?Z zPEc-EN4z2|u%W+Q0Hrc4yS})`7@2i4k01dZSy3m^^Oyn-m_W%O;nzgfkW4n);@Rqc z+LpUMv_{;UkI%=m1+m4PeDy_VCyfTifxmy0dWK@(^%x*6cJU?O*?67{uM6YOl|?n} zq1w~fE1Rzwd4nqnF_?=OvgJwU6G-=bWzl-qRDLwCS60fJ4B^AN_|z1)`tCV*iHQ{g z+;SP4E=8x?;LhVN+SXgIp)P}ANHB`d+?l}V?Voui8BYv#Z z+{gCz=<74|YvI&$EwO6JDz+8BH)GBG0d1Spu6i9fhnOgq5>a=vtMHBRnmacm5AF5X z{!GNz7|+v~PPih&%PhOjFA+GHo!>`mCrijt-DuE{YF~V_#ElF?o7)JwZn9((Q23*J zTs=}&M{mH|YFPKUn&Wd~g!6BiSWf|L{B$+_FOocLH};oP`M{Thnp=Z)TB<((xvFMt z+l50H@IW*fpVmb4!|h5(d+fWmaIMTv@bJM5HK6AcX@C*XWULV3J!zt)e(JN)Etsc#Q@@~sX#;vP$Ctjq z`9M%0UD<4Epa0P66-#E2EV!*E+IvZ=plUlG_<@S7#nsB>jhEhPYYvS>#V{Q;TE8ID)?T>`qETu4U!9M7{5dyMc|r2bB4cys_jzqShilqcFtdEJ7)xzBBec?tvl<{mo-iGyfN5keQ8%ht3+epc1^;$*_- zjxuZRg#BVW085&Ne}1icIWzG>;=|A?iDP*|+oEGkm)Gn9{{G)I4P{VbcrR+bWBMI} zHezn%PIgx)3jDo;4-or#+1R{{UUh0>Cz!H*rk2w7X%OBq(_rC_BG0*TIpRzg1de0R z0!+DH+Vb!-O|uycc9rvsxltMJW8jch!l4q6soqg!q1Wn=9Mh0%O-qhRjYStZ96_5F zQMCR<1%PKw^mLnyBvT`I()>pLfZrQ(XUdlUe%Xc*H~fuat>Rni&YWG2MfH-ceR61O zp#Nb_Qk3+jeY%9BY}l8uq5I$2ZM2^j$11-q=3ug!KB!5}pVefZ9_4NoP4<<87XdcW zZ}y%#_>Pu}Dz*nZ|EE3Oq}2!o4)iqu!6)2#{Sev&w&r}{E zx--*b$nKGQ>Y`1nl*H^sjo$na@S*%$y7egx(wNM^+ORnnMOL}%Zo!@Wo0of|Mj0&9 zeN9V;{rCm}(lnLq&5_E-rcAL6#q`&)R1w(L_V zv|xWntA=hwjVj!^@sdiXDUi2fx+JN++K(M{Cpp-_M0Uc9Z4oe4!p$@@j38J~5vfvx zPGg8dinzpc*sZpjYPlT@No~?Vn?pB~JTwnq(!1p^frTG+XsHXkve6!__C(wIuL(Ek z!$1a`ZeEyA&lW}J-ZUf_f~dT-G`b$Twfg;;y=6I`UZy_w9{{*DJi;_ON-ksNJgFJ z&`*Z7Uv>-^WxBlH!A3XfzH+3Ino!$_vh%f7Tmy!1J@3{%53O?uT5G##;>>W!Z68gV zrsqU5Yy2{u)#%%wT<&VjstBa%2uD$)R)=YRazh1bP)JY+R@xk-_u=?XTFQvN8{LA1 zAkps_)a(O{^Eix7ZMX8++2_U2_UI|i8x2jlq!0*CY(A+X-Ic2&zDhu744Hl;D$O(s zxj0~va|suJ8J3;v4VG#&#l2$NyV@5ASPpTUmFP*Q_mOc(Nbk%3ABXx*wqFvank?9x zOaRSuvhNtMZlEs=ytQfLrf=WS=EWv8zLxRgsRRPKbL>+ck|^7=?Z$J*y`#yrwAIp+ zu!SeDd7AE&$^msvHRg=GMav#CSAa3SZgMokv{;~iOq?lb=@0m(*cLi|f%0!pt!Yt% z$4Y>U)&0~!d6S%mNpv zDZ+IdGNfq7%kPffN?)PHt3f-Z!{+P-R@5~`gtES1EE8uK&v6s zuP$2FC~BI4$CH+(SXPDG;~3ZJU*9A+FF^+wWF?F^l9l8({|ttqcOwi;*AM~CD@;O^ zRyU12cfxhU-QIXi0n30eGhf@CCM}yP)Hf~Y&^{Ig`8ra;6Nno|7uu~A=G!IpuCDG2 zLW{nl$3{!yfEW^;PCYA(g9kdQe_o`1J{~+E9d~~U!*8ibO4?^`%?a99FTtYcnxc;> zt>pn)fuqHKO;4kjfrqe2tsxPJDS6474 z5%07E%j5-E-)_Hrkwz;`T*-k2S}+TA2>*7^wg?zg=hplxtVK}MAt;(@?C|93NTzLk z;}_}h#p7CtV*VR#R3DG7Uc7=?oFRY$FB}?OS_nv;dY;q4h9YlL@h!xDp)vS)5Zh9G zrocNf^gy`V|9G`lp7nZra$QT(WmNCCKhhpSUI6UCB7`$L6kT+RozLNLAMN`8<_bub zXiK6sEzX#lj`k{6$N?&}H##Pbbwkp_4%_5$(+{yd-{7|K2`yn54bs~lT?pwW|5L7O z#^E#)zz)4`xN|?XvCL6nD?zOL-9zZE3ssg>Q2TCZb3g(-JsegWdzJ2QalXHGAFtWj zHFb+G0|kM5cM;AWA!YNRN9fC>l`ZJ4Io2mi=*1?K{Ng-t`_F_$e;9QR>_ z{b8jMA?0hmIwA}CU4HXPvyyWs%?{GGJz}ogwCQ@}d^0ukO&2QX3k^pTvH>`)4`EyU z7y4;zlu1arbZ-9hNh21l4&wW898S}0vkTHqe!qj-VMYkr3>Nlo%5Vqp)gZb%qjtbr zI?>1_BrZ7elt)%_DR+PBYBUi@m@YH!6BM3Quw2Qd>E)Z@HXMC%=`eCTVU0p;8I4|j zA(01S@_l&6f1DpgSqWPcHO?o5P_PW zo@E-6O-3HQ36Fj@FoH&!RI>V=yMbJj45&<)JROlnP49ku8esFtLYo;LwMAmE|M1dj z!-JRS(xOW*0N(UoMe3FWp?aGflq9I0*8s#9f1%wSfzE$&t}Cy@FjnNPDG5?~ky5U604Pe*oK&OnXFqGZNmkRJX+SCUbKjL$66p+4D3G* z0njTj&@p@Rh*(!_8tfuB78U^ZLH`AK46oDhJLrfo46bO?mM}e9i$cr;AdmgIk4|jg z6$WqUj~;LT4ib})eT@311*Ct+O21`5xbYyUexBn$K92qR_F7dm97U7c^nWL{xFAXB zG2wYLkigw_Fd9b%mIRy&cja{oG=qN)`wlFAsI%r{+Yh_lED`pKT_0vIxT%Z}=NfXq zakjZhrV3vVE^s6iHB#&c5gGU2)E{iRQ*jp#AWlo3^gMzZ-88sn7zdjh(Mt8j6tFT@ z@Lil2@L(*NBY7n~iL#uFBRZg;(1dR{Q}%)dxO(@gcZc}Fly<-z<2TkGQNImti*~8h zLUFJ)$RAUKu7qWVK{f;SGfVbC)i?CZxuV59skG!IK27?et7C=yXps}V%-fCvXb*JX zOoxB+CJk3xG;P}zgZ2^=ytd0^>fJUvlntaan`Uj&TTAvEN0E=aZWcuIdIk&dVecVa zS-m(`a0egGvLFQ_UI2vF6l4L2CcHwT2^eH-+m-CQm)CId2<=r9Gt=RiSpngLcsNFY zUwIy)z*gB%(>^h`kW*}MyY)5YG^k4mga5k6*qH{0k1UPl9Rl#@@r#MR^qhcv)01=V z>6*TUv7_nDs}v52XR8a~9u-4A5%vmvRq)praJd;BE>nwM^_bc0NM(-cG))#g#jPN^J5{#w@tZ61dIa%CGvB?(dN|!ijK`AzI=a>dA!Q9M`?M10CWJMn})CPHArsMgo}LkQ;#v6!>KRl z29*QIVCONqkV4Xrq>wZtg(Mbi>G`X`^@SP=pr9S_=h-7#Xc!|4_dMEDUhgQ{w9ZA( zW_5uKz10N@_0AF@m#|a}VHQ@532RJm2LeJ8b5Ouzu#zBK4kAg>DR7STLQe2)!H$*r z>v?OC%A8xy+OPwr)ByOaiJ_r9jR{?3Q@?N)6A6DaAHsdhXQ;4gY<)*nV=VYqw_)jPy&XPH zVSSeQh!!xO5C#c+_oG2SN<2`Y~C=HsA?Gh#Nf8DsD6m>$^tKpdr@d z5f9FdgZez!ogkNS=z~vQJ{VQO&`s_#)Ztluuym2W-3!{@E~W}2gZHL5VJQK0EIz-F zCSB;~!RhrChQ;W19nL^11)S}d7@CXZnT61%e8oCcR=pDpN;r~W>w`yXaJd~ePshC3 z!MEVH#$Lh>Qn#XR1j)zyfj`~vkU4nF$b((qSMIl8T8t6vLWI^OjMoq?tMm^2y!z$M zL0o^X=esQ}IRfqbUdVAE1#X3b(lkQgu2(K`LBw1$H7_V+^}$=L78m zwLx2MH}sR2N9i{qQtd|1c6_Xv=AhPz?{o!FTdN*JbYU6!pe3d?jBEsD zXKV8D9rsFo8K(cg*g`yGCK2G&9$bp*W%y_W?Me}PzO)L)!dGl>Tg5qMVai*F$xrt1 zUm|XmsazTNzvIB~CY~d=SS3gtEXUbUuC+!`lj*R&j{k zxs!_F_Mk`d99U!w5i|V%Zr(@*GfEDxQ)p$yz97RLH2$SAeN$!?9D*18VN*folzY zBCdJ&(uq~`49g2XE2PdDZ_*6K=VXTKg8F5dBYX7^Lhb?`Qy~mF8dX^A-s-A2>Zn*Hr(*uRj1bzhRs;*-0J>%+wmnAo9m0voZ1G2gf<+Wge>XmnzKY;xPG8we2 zvUmEcTfUML_??QMm(1A#;Awjs^vL zGt(6hcoZj9zt>5e-nMV3(e?TFPIEQ!!OkLGYf$WxlnVA zY+|qqNAi+zGA)eykc#?;FWd~VtP>ugDaHu}jR_)6-r1LNE8|;NG72CsOICOa>Vhm4 zrXoADV#%qM^T;$nSJ(W8m_+l5YtkrZU*qt2`icb0Nlo{|Gcj*&sp;dR2k3Rr{YWue zvYx41S*+_!5cL|2oQsJR@p;Cwptv%yqDGPDbbH^TOHSF? zYaB$eDWTXHeH{a5MKk&bBtZ>6g<$W?L{#spSv}5%*q$FxBg{aZQ^>FL0+pv#fu|1W zBGj(x-p<96CHzYBQuxZGS$@e9p(G|c`>U6`(}DT+mSUF~7)bYCcJNIwr*4=5?iWJ7 z`S;~|_cwe-2r1gQN+nTE!>vjyKW;8EE;8(Ma39m5AbFP&eOH)_=$xl{pk&3R>bTxu zXmnlJ?jum#(LC`2s<93k-~JvP+jy7{ndeB5|3SAk!r&}20?Y*&OTk}V&{8zkBtKWF z5!;r@l@pK5w2Pd6WQZ zU5ouv#ObM*K0zE5%Q!E}n+U)HvCZqp#(fcTbq|O1fctd9(5db*n7}kTcH_QmO~Nr} zT*k`mzLl#pEG6SCP6mPZ#!UG>+A;@m9O2itPulBYZfFr9gtj;OY=a8eIcv5u>~m2! z!mh$J2^lQeNlteyQn?*%eu!@gCM#vOe2y6}I;SxCtP>`sRaGvyE&pItob_|-pHp5A zGo5&(7u{%s8?L0xCV3AfC7P|wtSl2<5d_M66{Ye6l`j;;Ef2=UrY@KJES49ra@oW1 z(BIK146TCJ!3?!3?}|@)QAg}T3`jm6H0t8Y8SRg*B@3OwT@Vz=Y04f_x>Ee>tmupB z*$X^Av-f>Ic)*Yjxwm6eaVv`|fj=(K49Jt*I!EnY3nm>c0-1kQFR|~NEoF2;Mv_?O z+OoWeL3avDt9GhH6ecemhNS(L+ORViJc@i4J=kr;7+qkXYae%`+NjHMKJ@YUGb5oI z>#DRpRg;dxe(bkvt>>bI`9IDg(-X(+96Shz9{?^eCWW9TSyfc%pj9gFHf`b7|s-`J7loBdZpQz*d*!{z=X~MWaLS( zc^5!yICkQ(WzDTQPDvxIUruDzwwAuR-mgP(#*I-M+_ulCa`Neo$Fl3kqy6zEFwRNF zq{rL+FAGBOm6Ylb0(S=pm;n1E#SI(K8<5^;0-`fZFmJ8v{lb*u%2cHzGBl8_uWRNL zULWld^ZduE<*}&3n;>lM<_xiiMjfZ_j8Vb6|>0<~vnwW}=PWUX>t+a)HJ391C zElihB@Cah7k50I3K7=-P&pHZ2jltK+*m9^xC}@LQ^yoWX02Ih0Q`9J38pN!=r{s0` zl_3MPlFF)+;<2kS0MkLUy zw_)s@ckj8xv+4Mj2C4ArUYG@C?0T2G1CvjgK2q}6VUgorqu@3h2Ghm?$%phV*(h;j z&GS?T-k-kd2-Y*U z?qGba-ganpJBXripP9IoPzKWHw;%BlWEDTohF}% z^MrXrq;wc~q!BQlLP6X@UR+ddI7j>L%X3D>eMX6-P=4~#jww_3{xNc~zj#Yo# zU0ja(_)`dp>S2Vf^)q5hY@H@{wNQE03D1yy8nE$i`+~E6%@e zXo-?n*)Shj=b5-r0^D8Q{Z}vjkgI38tF7ch2T=oK>`$x}>jX(tB9`Tx*rKPt!wjUt zh=|vq>WqjhKi#C_VwvJC&?i(2V1|%uJGYFIt>p*ph8qm*hb-HH4aY4U#``p6sna>` zP^0e`46TPaf4#WQd+@p%XJMtHgL^|%zS-huvuN-9@cpSiD>FVN9^-fS$(eka z8;Bz=wFWM=PCG9gD*u+JNG7f<5jCDB;2c9!)ZC4I2zW0e*8thL@e1VKA zE{I#KjEk-feHrECcq>bQ-x7g^x}y3vcZB!P=X*a7#=#Q9`O|0SQ%dGj=3iG%(bwe# zUTb!ZtTyiVs~eb8R<|9XcTG%EAip*7AMg5#4B@`b?#q7zmlR&I*k|J3u~<;DP#_X_ z_)YD@UoP)9_EP@xR_C?cH9Gy=J}KgGwp5xwn)^t2cRJxasn5G|lsGM<<=au^ei5U9 zVy5HRWiiAOB>w2^(}C65aLZwMLX(SC|4b3dtJBqI##JM%WjVNny9AhrT;7M2B_W&? z3;&5Xj;MaMHr|B$Bd-!4cTH?m9N*Z`L}sWM+#W+Pzt&|bKWxD5f47!v*vRJEn_z_d z7hPFI_A65Ut<65HtEyqAPfsPH9E^cQRDI1XNwlV}a0cdq7AVf%RgCZyUJz28;7~m7 zM&f~ip}j@(aVM=>s9emtgSfj%!hL4_k&T( zQy{ZCg+Y1aP-s`3)6jn)1-?x@X!dOuKCfqrPOyN0LS`oj5^kmF+@PDZ&S{YeqafD;kI1vRDwdbA z(b*TRq6PTRIK@?PXUY%402K%FOz7;)e4{x+6DOFiG4+j(CC&OW%Efzt#(LuIG=kGH809%%OlLY*rKf&} z&?)kZLG<=1*C;}VMOn*t@xh5eA5YgOHpW*^)ZCKpc7M&?Y1Q6vROw-2lEdlt=`&T8 zl##n3gD}OIP;Vnc8aU$^Ie-iwogpoEmI!9K?!Ge*ld`?SgGdNRa7_?2xjt_Yd+lUZ zG;7tZ6r)b-6Mx-u=UrL^Wumu;5?9QtWaoZrz0^J3!Fo4lsiecA8&Q0&>Gw~2)=EkcK7RE-FH+s{^(v2b zE}bLyHawl{nDe3^zucAleEQGMZJ7>1VkbYk5ktJ<{?zh`CBM0Uvr|?kuH}kL?l3d4 zI)o&L=v=J#y(T_$X^4!ele#6*-e9P7ERDi!`)eynCazD3T5}oAsyAD}7h;|WF=c?Vo=Po8oReMG}g&&sc!!5dcy%O7^NvfiGcS2ldUrWm}z zP0?L;VN4f#f%`4`MDt0@k5)AT<$#BalP3_-D|nO5ryu4r-gM`*Bp7NSMqwfs-Qis| zXD>uLs)cu@?>_!IW@v8Gz&)q`&Z`rBKa(@Ph6;*Kut~$iGz%Q5i{*)9hn!kdQ(-HTfro_OZlM#jz2eY(tNLofkm&##p z7RaliV_34PLzd!X-UyQ{cLYaQ|Kg5JU<+Ev?J-c#U1{6eYFp*?oI@;pzF+EDZV~8z zCzmcP8T~3SqnK7HntT8UA`DF{ZmT&e{Gc=$1j%dru5N90U%BX9&F4@5NJ+$*QhC!i52qQLk{nvbU{FqJ4w-g(Y$?_`6hN1`gWjQv_ zbb5##ywRJ*8e@{kdVTJo;^e{LaA)6WI}>GzO0gJbw_ySP`%b5&<7O^KmQ0)04lw7b z{)pV)sCl;WbaFBbi}{ zS#{K})!DqeKUgE!Vj=K21`jjOK9SI5+e8&eQNLCtbhcFsg0b>sA8m;FBRkn7i5I=x#K19r9! z-jf|2Zv@>iB%dvk(}=_7U)%7 zvCFmFSl(x`!M^WKu4fogRXHdRv3T=lQ>S%B#V&z4Aj$S(@A|HysCXwzl1~?-%0OMBPG#S^Q2K8?jU@Sjcr)$ej#Ba!et2 zbz?hRK-R%~$I!ejfrpEt5mVd2;BBsD^|OQLj_}Ll7r#sHYwosX*2d3Oy%`t>gGn(m zZR}xV?0BcWbl;S%YC~3DbcmgYSd+Q!#@^|tRVwo*a=IOe%V+w(rk(s=CeVP`Kx6JL z1zoq6?0lD6e3n}HJ4kMmpB)y1`Q((`24ZVHVt!H(Wdvt7QzXq2()|&?P!NR?_^9e{ z36bWR5Qmk-qzY*MB^CXd1F{j7>nc`)&8v>?35Vg;{PNccJz3wC@`_Ii5UY zy(%&!*mbM-_}!%8R@=BkW#0U^M6^!#+n7$h=<7=ioZ~ihw`+Nwp3Q|HklbA|DOi#@ z=vc)_W^n2&lCw}ef}KTTEAyiqu`@9o(pM6Po_uY;f$PI@jtbDB#J6QQNNzk6z?ZQJ zG(icg-u>Dz@c}8a_)3p>g<`hZT6FCdGabC3_rg=S?9aYy*7ALR*VC(FTS5e1h@WW` zkDIF*WbT}QH13w>DpmdU;Q;GQi~wWoXh!5{=6CVA_b?{?FCepxJ&of0$JJ!H&R0P5 zvA#!Rlw&h7B8O+%mI3z!ll~Lok&E~S5(J~5P;O(pB--@M?$oOhsL^|7ZZTbQ{4uw_ zr?ad&Bg!gxy_AG=S-ujxY^SPJI_Iy=TJT3Xoyh0;k}ouacm={2PIdM0&O~(0WXLm{ zFjhb#w5;ef1qV?|)#C1<6Z|g2^-?nzJsYCBLIU|`#MN-`PUM_A?N%b!eU5dZt<_=yau?$wC~L@q(26G04AKvO79w&AdojSt{Y@Vh+7*+1f{+ z*mpX4(wi3t%J#+OI0rmWUel>u^U>+w9t$^Fd4Gt4$!a_ut&+^Fi5pdV8bbnyS_ocJ zu0L!`f?NVCw?(q4=b)0) zEAn#xbp05&iJ*_{RLlvJTi?zG^A_|u6R*m8-tOF($M&WtY=PZDstJ2b)}dXp%-XDH zPm7h}i{hs@mCsb)njcKkP(C&&yBv6Sxxa-=SdDA)3BQN1PZ29rinW%&WnbbpL}8tg zu(y)n*7&F3^!?+`f$7cH&ZjvNKe_l1D9q#qcSmq!bdLK=*($~w+eHf|49Fio>InnF z+r9b(%_3Q4oxzpt+Lh8VF*$s71*&b|b&Ji@VRrqW|}+;w4E4`3LX65TKUjY(_`EtGYWq|K8e0(>J<|e+^!WewjNgpky5$+%d?eLyF6u!K;xnA8&U2 zENJ@P^vq23fShG}L8|<2VzVHBr1-V#a35~kvphF4u$5x9Sdy>1e;8`@=|AV)z+}~* zOsMt7%;7};NVjPQP0te5Ygplgn&PN9``S6M#SeFQw#LvYB= z*H2h$yO}5^4h)Hd%e&I3@6OM?B(Gme`-U7v`;3#xh)*GSLxHHVaP>Qn4Fg4vH+AL; zy=!i|`-h2WEf*iE@2G3EAFzIHOLTmuCo)od3ntMQ6nqx8e}CmrdIQE zr>d}xv5HbeipVIgPusg-X(r^-=5kH@J!>#eTv}pLh)+u2+~W<{BB+WWL`6Al*GD?_ z<>$;k9|HFedtsBkU{Lq#3pd(oJ?lKWoE*hsG)Gl5+%GTO#CNLna};OzNjYZzKth_m zhi(#2{qTM?eNWW$WlGtI%lWS^ZPHdtt>p@mgC=AoW>EIgdW*7CeGEq^zL=cG{}S!) zHBdF9CjFqca%dV=cWMZ<%&jhi(y_t4QB8tMIbQwZago#CizY*Ha(Pt+#c@}SiqlL7 z=+Ao#GMhNDAJVfTQgZQ~Vt@4L5;Z!-|7t@#z9N0|>7@De%6lwxPeM89qP!H9Jk9lU z=MQPfI;dl=oqzu|aayK=IdGS~gk6ijkync)y#?gyfUDb5xUjvty0Uzc&F+3zjY?Pa zo3Cj{!IQFleNsw_ALI1x;@C{YOJ^rsaXy!h2k8sz)fl%SJ{hjyK0gQdO)Xjktq<~a zF>X%P0V6iqT&Yd+;h=!}g^tf7L6dMh^T?qq{8@H2l9{nX!THSZoHV*m9JZ~^Xf|(8 z4REGxL2}$8m5Xj})SQ#9(!|aYWVQCMk2eaJ;))W)*}5?#|`gQFpRmaQb#hmqrwA03vfA1*sGI2YX6yJLV)dd8uK zdGLG6G5#4R)PW*iStrsGh+7D zadZ2Y$M0)|g%6A_tBBk_#x1#fWY`o&f}4pKF^k3sWHDnLj4-C197$l zEsF7u(C+iqlS$&9Q!1!{5uXTu{vf_1TFWZ}D>-Fa15@mK27U%idM3TRS!{NMUjS+9 zP`y3*T;|ckAC^WP6s1jTB=-}-C}9^Pah-`Fq_A?Ag&_S&oV zTAw8;ser`r%Z_6rxyfIPU+5F%kb3uMWh#zyj-$DO)a-_eq_L#pt&KJ990*SB+?CMO z_T=N>YFK&)0p|P7LY%?QH4Z*ipR=MW`YlVWBtA~~rpB9GZ8lWC-A3vpbKU-33ww#Z zwCieYco(HXYk*Z5_h+loPgqZ`q7_L>DwaR~7=;#;Q z?4|6qCEaPNP-iFEozYWv%EhPp!~n^`b58QbS+kWO1_hdYKdb6l+#S6Oz_g;`qyz3lWqh{V+oPB5ef$O+G>la{eA9dqY`+Dt zEF~lH@9P^sM($;-pK|i48rn=;ENddWb@bWEjpH*BRPl9goJG#x%3n-*T^g%sE0Hmc zv(=kY9YYci#5@xHrfk&)pG-_X9lWbfPBA*-B!eTY=AX=9)kp$mNA>X1C0)DczFgW2gjX^cf}I$Vuu50CIVTJso2TWcEGH zlBkwgwvC9VU@^Irb>mqN%ZHLzB3Qk_tq>|D<$dGZmtHvGx)yP=Ro*V2%%~IVDjq1W z=6a+sqw>Au-#&9TNeakW;#Zg(@T`mc)cvs@iL+)(LOPP@%(Y05sp|7Nc%jkP)x407 zVJL8tlg+6*E?`J%lz(_ z1yL!6Q=?xj_|r?)8tn%Rf9=zm$TCsR9($E~CZ*!fY2$AXL@9Nhe<&N%3^as?=Zcra z(hVOykA6(MN%>63enkT|S#jpcmcbbz9(ebCst0^y8?4;PF48Ne2%G-2{i<~pBn_)R57`^qnJo?wiBnShIW!!m! z;t)<;_6c^^;2>SF`_ORRWCca3?|kMNx8Jbyg&*g$9fQA5FQ^n=C}9)FnieLMP-G^g zHR#LQx&4mtICOE`O`_X(NvYdzBqmp}JH%omTrF8Wv2qe|EjUw*y&-GPeX!QcQ=o{u z&Mo`5-uN<+Lte$`)*S}qsgM#3I4-JM;t zF#_Wx3OT>fU6gr6vFcR~;Xbe3c3yi6u$P@Wl@qF=5%P4Ob}D*i&DYp#Of;EeK*jAt#n>SjdZU;jNv_GIo7s3-;*OhCK9ns3@lV&Kezdg6XuLOAv0 z_vgQ;7mM2+EGQp3A90o(H4*0gve>1ZVLf}GTbZ)W*&!(i6@zh;CGQM1SE@qPtw<5(E+NxhXJ73oBw2-hQ4EJ-5_r|g+lV()6t><`S zjOr&#BA&75sWjVBr72zh!H%0SCv)1u*b1sM2<}~ZP(PQjkGYTO}`L+sTdUk5f z*?fzmb9c8zB7z?Gc&r;)#=RIGSkf`_;XWh&T4vcC%(_$Y~uUCz+%bDeZqJ0ijiN@oJWY6 zv#AgNVXkGkve<~4kp_S${$}@VBmZ)DmBCYhc}BXRtM6vAJk`rZ8Ajf5)ml3q?Il|J zBRI7{`E1NU$%~%mR}Gr8zjSCa^zhU?i=*ds6lEccHLf!9#G_WTG!}_7&MgbU}TE+5FSRQD_YwOw5zv8ot^K`l2sguo!`B z3F61c@pF3CZ}^0YUkfXZN-j<0{I~{p+H-~pjG0w)P@zfn!7pe=v_Zdbf%2fPD;B&1 z1(Wz%MOz1hi^Dgl)ueCypx>bgE2^HS#nMuaFrNN6hQuW4tRl_6K1Dxw5UCw{BRWMX zvrw&rKpSpdl!AB z_d6Tei)?B=oX&hy*lEGJa2v;>;g44}ocwm@ZLiNJ>e%A2*X5eKd+!M{Lfr zPWs&xNq(h!yKhw7oJGm<)+?btr-uf;RthvD5J!+s={1e(okKjEq@~~d()Xta`XRZ| zO^2WU8(vWH#!;R!L*>Egh+)WSOo-xKJXMSfdp-FvDzVu$IS$v-TSA>)@6_7Ldnr2l zrF{K{N5kC73m*K+T~>7;efUGT@L%7JH(4`;QFCc{YtIJ}+~!*^S=V1KI60}LN^IH&{1F_6P+alsHe9`rm{Si3 zm22PVL=^vkQRQfvq=$`{3g_WQ$oom%Z>vS~C~`w~oXzEJ#%#CYy~V6CoF$SJnTF5J z_HrM$T0L}zQ`ZO5pvwDSiFj|fL|3{sdo=vPQ3^~OWt%@- z@@=eeoX((@ccvLEC3pGMh+JbW|2CZ6ic`(2q*0$$(|kxf&D;8r?Dx+aB#-aA&%OG0 zev6`h`DrKK*5jvZlXljU<^~{sp)^qE(1;`gO^2%79eB9z^Z7!Nah-JOp<~fh=&3NO7Zdh(M}=pUgqd(^+#7+!D%mNcKld0EXR+PB zoEMxttt=Vmvr?DTB_OlCOl(=H#NOr8NW}o|t^JDu_FM)KpGIxok4UhtwBH85$;0(B z=aR7UR{g&h znB4xNvUxdrAms(i=1+2a#ypA7G*xg@8N<&bok%CRn-N?Y&ABZ7!a48UiE-c5{WlW4 zrlaoUdtHdexi9K=X3QQf?-uMa>RI!>*xZ+KgoFU0Xl&ZVV!K78GzIcuFTFnIK##4p>2i=|Dj+4*k=`)--G%ii!+{?dVWm26y#G?XHwkqo7KwkZ2wTqA#60_ z6P(67_>qoufjX>#2rqL`H;f=V@BPVoSiKLJQYZbrc1gMq6Bvg)MH5z0($ZoeC93=` z{c>jQUi#YCxP;`27+(A;*#66GpuWOxaAzB@BBNX#e^4CG^Ozgs5P&e6Ir;V1%B;LM zcQo{p{Us4r4t7+})>r$@uPy_nMa~0#@9;B75;=dx9iiPs0KtX@-&BT*i7Wj`M&;y5 zqzle);)hlN+l5oox%JZb=zeql9JI^y;d~c2W3<%yL^b^V10Ob zWxe67pihpy?w>wCiN)9MbLVqB8u>rpL#+5%bPnV_FmQ%WzDZo0qAR_FN1}aRrQ~g$ zRolzo!&;9DZiy6?D7mlI8~f^gT{uOmKc(kuKf1L(&{yK_zJD<;%c~{YLnwY7$)A{o zG(igw>xGy<+kMWsb~=xMK!$%e^8h|Hcp9@)=g?Mi(2hbnSk(D2oBiowAEX`w3jL~w z$kvEJPLcY4Hi7mt7%? z?M_ak=j!kou1ox~zfEa+-Ci7Z68qSX6xkg3h-5aG%|dO*z|sbd-|FWy>8LqKax3sS;Tstof$gUz+S`4k83dyl1vJCrvTPV!U-7mNk zu>XotYTw{$3GjR21sh*-%2Wa87xjvjdV`h{^~$&*H?gI>5cC&EUg;;T9dC46;P!R! z4n>mZo2F%-5A}jhexo0Tt&KN&7PLj{srIB&E#I%Eh7177`+`saZOt2270!X-54}_a zRa^z;5yVDZy7C0O-*uBCT?m^6&+Bijxp(!(;D>38|3bBq^bJ6+P^o$8kISFRc2@5iSldRj@=hZuKWx;cJ*MzvqkNEP=q z)T6KB-E?Sj*9x2g>xR&meQ7d(ULDNoiLqPyNqus6O(>2{p;g2ZX+?e zSwy;D=)TLnIl=y)dqrdRTPB3b;^~|0Px{Fhp+qmXaI8zIeTuI`MLG%Z+hl>2%|hyd|luG;}oOX`xe& z{TgD@@~z=(;AVB+T3Jfx`)q6MJzvw0xDD6lS{5PneBUUY@|e)_0TrpWpK&`Q+hvq& zbZi!nCn`@on_esOO#D?0H}#Ur7T?eImvGJ<$#!^*r`A?wNn82)%?Wu~3CQ+Rg5=SMnBp@+t~fIEouuElqX#}u z{z}+5jgLIB=m!_*JV9c=&b{nzhfFwr>6dhD(Hq7|XNT$S+b;Q4{Wcef>vQ)C>K5HX z($GGR6qQcymti|A5Blu5BOg*9N(HG80*rlAyD|X&*QZ!Yc+0?MPddhqvPKH~TOS&` z6l{nnK-ziHz2!!AwhBd|_&584H_|mahYxVn{ zadxGXuQuv+PC7iztN&#eLH7%vj&-k0V!U&V-DG-i-kO_M^f{Cysv{*tg2y($QAF$Q zQ}5nV*XcYqvD9cIe#V@hYw@zHkXNd<4;{DkL`7$xYJUWA3(&)B=cRdm%GbSj4`AMf^n$WDL2TyWl#j^b zPbhMRI#m9k;(;fa_PFOHC3IE~Le$vgUVL5p;W*o+%U`)V^ng2~R`)`g31yqUs; zXvL&b+_k;bn=VYLnhywc}|NxT8YxP zdofrrA$V^D7>*CQW2Fl19olzp$ZM_w-z4WRUvUO~np>5c$=fdGmVFmev8sJq)mJIB zW%Fu@poae68eq92>FZeomicPuZRJhe;E3k;7HPESWr}jhqE)mQG8!JE9JBjknj})c z@Q17(e=io-m|N}IX&4Uv15?g&or*Y0K7F`^vSktfz|heQZnz8QFH{#Yi%00m5Jjle`(rqP4&0)Y;FGy0f#CyJZ47jhrvAT42+FEA zDeqW8?FXV6n*|8lGOfd!$p?s75WRV6!4hyl3c{Ll>sq3fnXEyF4AdAU584ROl zCabROSCv6%i@|m_4y9GqzF`ApN?BTHZ3K?(NusSam1YI^+KFP3B*MI_`zRwm?@eMF zn>~>XjM5N>@JZ~LeBIG06D2|&Guo3wby>dxXHhYAF_PmfJ>uEN%#1{6C||Sg%r->- zdi3+k@$B8oPf`@w?z}FM)+WJHCSD+;WzNahCAz*MpbkQk1Yi>-zQ}Gnh)Mt>RdQ78 zE?g)zaTpMp(iL528bDGK66*@2IGcbP?OaM9g$AE5w6pZiCmhk{{cAn!N8n3}ozDkj zg1~g3KX>Fj^xTu``YKJdF4SQrux6_f1ao}p3bJF%^lbPy_%ELX1iJ?f^8SPMk16svfe2$RlhjuF)CC3A}RlGfesDtbr1HGoZbcTv5Do z0K_Xzp(C-{Iad?d4Vu{;D?yq;`p|M!rOH>3ee;==UWT%E_y}zQ0I*Wl(wWleQoyWo zAI@w86q6G45D)PMgaIBol^|5p;6v6>w=XQMv|f|gH7dpw$hhA#Cz}m)EQbZWHrVOA)Dwh&HiCdlzaw@TarJV)U56oWXsAUB( z1O_Na0`Sp6MjqAe-_3Xu@lW9e)}5)+_&%Ym8~GNud;5Wk*c$-8fzu1MA}+WYy1_Ul zd8zbMK2?E*$xN3FXspTqte)7Q`RLsL@)!a8L4uyk&uwCO{2_(n%_l$a_LsU+-SnC% z&_P-)(PwWU7=QT)Xv{K8hYVq_lU0DwGRsk=hhpMk&zx4A3&s~htADJ@Y#)@;Nl1Oa z%QPnUP@_0%pS8ZTT*Cb7*+vyTTq7qRS3$;?2N0>j{rz6zlBJ>g9-p4C8Ci`69-{k_ zlx7(1hYl&kk3Rb8F~w<1s12$mi5m83-Z_VM75pJH;%IeG<|&#;jo!p`!-0&h%Sn;}AQSX=<|QB|ZL zK$il3hr7KEjo%@z9g5>zs9Q7y7*mW12#fsBAJE?}4quQSL*RY)|1ZpkG3kRb9fNvV zvA%HBH@fXB-nznO+y(}7?@#|kAejw9vhe+355AgByGcT^s2p;tdfr316vCerO91ZQ zS8u0r2W5r;?<9E3xa)4yiX8^iY)!Y>YIl27<&!tNP5VflSdPgXc4p~|=GLXAv0NRd zhHuXRPcd+9{>65QLEun^43kl4PXIlcy&}3?^?Z~Sn{ov;vWvz~o@pWQ5W7-?^m4k(=2_U1(VKYvUo5G(sZq>70M1XA*U zglY^10*9%Yk}kBl$L-r?9PAUy2wBMwkQ<#6937V^L86^w#3!8C#r`n_c#I5q?99?D z5uzy02a%r`nb<~+>IdqVEo-eCqhWrvjj)3>yJREm;3Xzfr-Wv)sp0ak0iHE8Ff&F( zCd9^N5!OkHGDME0s@7?2H*(mFl9bJZU?6!8vTqvQT0De(O1+3|K^yMC#o>$zpgOWO4a-*68Vm15w%SwLi<=>yY%&o z1_enmi4ti?jqxy=3S?q6F6~77yszz9h*=I;w$?1 z!5+13^{F0FchT2)6M88*OSP;qS-PiRyW;-L@ZH1RwWr83jpE3@h5x4AAU4w-19&$n zTt&_ddJ4E|TK|SK846*`^io-Lj!BUS5s}4nR~C*qU-IZpJd`eieTMGYSMXqleZKd$ zKSs;HZ^YFH^WN@X4SE@oLyU@5qG)&tGp3gGIi!@mexj3RZ}U z!f|_TJk52w2c3Mw%5Vtx)pNVvOPUtTihyo(!&KQTu!jr%v~%fRU~yP z2-5!>eF}%%HkFJ0GL%aocKfPirp<%vfkoKmz}AQk*11FAf#mmy#88kCz3f2ya-yfe z`cVh_r;*ba7Mefxy`ZG%l|D$(@DQWb#gft%S8icfwY3s-R(qkeGM!E5FE65xL3oDA z@y3hlKH%!{!s*)HKd{g5-DMe{7Sa4Bw9;6*mc03(Fbj8J{>7;%Q_}^ml;<0_-e$LQ zv)Lpy`KrDBg`z!^1kJra>#WyTKpL5%HW59R!i8UTyOLSb1>-vY+YOWK4%{~2dPA1? z3})7{DuV!D6%&D3qq5Z}b$TzYm824guN|D{kU%}xdaE5d=afK#rG%AmqK)78o|YBf z7sgA{|F^koj6Y^=!%g$$_wiCn&2D};vi`6wsENhm`b^f_WveIdve*_7>fsw+A@7Jz zVp4RJ4hm(nJ&9pMm+tS4V=-XIti%v?H-+LOWWY8Be<^046nb*TE^|71bny8e@_VU>EQ+Tu`+4@SPw< z1A?ShxbAGFuR$Fa7td=AK+-pN&#^zo5;ZFDVR&Cy&;cGlU+#hE9cJUaxR6ivMXrcK z_5js})3CSZB^nTosL{DzH679gVSG#}ZOl^`S8&$3sB?h^5UNVNC~gy)q~1QIx_wdd z35j@)LxS4(`ECn1lZw_I@4kyV?;1-W+?+^1BUa_Egr?jVQDrZ$1-kS1!Lrk5-@ra` z&&1q#8%4CIkf$(3$V5T41n~vqgvXQoeD#X#4ClwL_|-DZ>E8byq-y|RbN^FJSwYu_ zqLiDck&HfvlG#zhtY{OVS-8xq}4*aYw;M-e$e1WhCKqdpsjlbBd7(6FitsHV@Y~8 zoQ|J0-!AEOGk}F=gvr0v6n?c#G}SPW4?Aw$pp&Ji)z>fxbo}3J5?U_5!4NB|Fs~Mm z%xfl3Vd3X);uf<((e`ch5MZ}rsUoVHS2!?D`ksKZV?KT@`&i`fAP?g!$xMH-0J2A( z|3@YmoJz^AOjC9a&0xZQ2Zh2pEaUFQSH=C}ljkf8>KH&Z!K{x_E=gnfMMPxCYYv&_ z(SEyf)DJ*h5!=gS%9dyqp;K=pZ|eKBK{I2VuttZldn~ZkzYfv@xUU{8tYkfe0jH=M z)cp;r+B@LLRR0EvVOeBfK!mcNh{miHt*2LzloT7DB3j4kk3J(iICM*wafF8ear9e)VpHB0ke#p=q@b8tSMddH;8KrBs|7X z7I+~5cffh=VDoLTw-u9DOIehrdrM|4-$@D+jpP_J?1KIBg%g;>VeH#MwYek052B~96#VZSzgclp}hf1Kal|H-!&@=2L*mx>_tp9Ri zS$9{{F2{zGAGGGcB8`+!>vb>#2c+IYFMNv-A&5d}*t^6ayN;_U^cZrfFQ1S_>;qn{ zNd;-N|MFR?FT=a&Op~e-q6XpGZV}Jed~F)ECFV2*MS9Q2dKEr zGR08}MOdyB?aEs39fVn>2;m6i2r8iiN%L?Altu{K0kD@UmR0G0+cx+i3qi2#{X+Nf zoz6vEA@LLVB5-Xr79O_kdwX$rzpERNgH~vL9&(q(0X+|Qr`B48$eymdq`2pslT>P_ zegZ{@>~}fUSPBYgVSjb;$DAI)H))?6 zISSh>h?xali=lxBq<;%*5iK(d=q@dlZ}`>}tq13zNG>DU6qaBrF$-9Th}a24jgoX{ z2n0$XiW(zJ7C12)6Opu(jKp^LxgCw8^_U}7fMF$z>xdG>iJ=G^7G4uI1H2db3E2d=r9pn1K z^t=|CKJ2$DfVCUw)Oo_+6QP)S$(JN0vRkRCyJP!T+w40m8+U~Y(FC}EY65@J*FBor zL=gqs=M1D6~O%N8es%X4mvQY@zoG?TyRaQJH&{fS)OTdQ}@2KV1}*T zLzu%^q@9gotq(GXH2=B#TfapM{xXzC@@n@PJuXaQqi+WfiWdY)&ShL-0a>6ufMNI8 z{G9_g#0(AG%H%+)4x?&1SK8m|q@B0!Xt*16p4h~J?Q8{#x-W5{QcVceig=Jwi81q@ zcQ3`xQ+G)1lA`$)=G?8vH<>B>PiDUY(wsek9kMP92;^*|bo+~2xf z8YzF<$^zl2Z>mW^vyGv`4l#7!2B<>*QbTqygB_6(NIbqu>Ms({RtCeLZkwsHt7Mdl z2sZLOe@y7Uh&>}hI4Pkly#gzlV>yvT%CRG3bpca9#?`?`F$#pSc*?H6A&w<}NbGm+ z=N2RcPY>}>dFGr9^f8zZlgSNN7hs(Uw?e`eEuL20JjrCsz=rE($9TcKuE4ivRx(A1 zo}JGTF5fwbAr>&S$ANK)8nN?<+=i?AyhlVMT2&``^@<4inw^pP2(D@>aE(-jPl^R$ zuGO2AHsI4x1=F($sICT(VDG_+@&ARhgKbhs&7JMgo7{ac8BQ^7{|{;;lBLlPa_SF6 zwesZuTIwdA=)l1;ogAZtj(0bNq$4%x;7thZ^^yLwtdW0Gg;}@W5vXJG1{p{VjN&)1 z3IUR|dIU~E_}rfJ#FIsFALCJ|N}5*-z^_`c9-bpbt|wJD&vnJAbAH)J@HvG}sBShK zJaC8&ce%(4u&tdD3wM#+e~f71YOt$r8qh~B=x?>T1OuWy57120wbn)_b=53)k*C4U z*qYFPh*2xq`;e9eDA7Spa$#4v+MV&<6s zaMGd6^wAseP0h{MJ|-VgCp4JGzCgke2GLf4LW~w99V7?$ktkDI5qluSSCtCYicEKf zCHCd|5x=vKEsiP)UrKn(O&~J|c7dUrtHbhPl*18#e#BCOJvGRzD)liWmw-|WZ9B*U zg&yqv`ZoZL=ZCnCE<|~ae*e;Y1hRJjP0@iEi7(p1yGL{aOzy>dVK38|GkV|^T$B-( zF%Ax@l;4N}UH|GBbRDQybF+IzOekrXKK|Y3b%Xu|n!ONR#HW_-(iCflt`mw9W6%(7 zQh+_EE++G4JziA2MdU(s)V>Iso{;kpQ%!)FDnXRC^OCytb*pYqjjY${8mS>P#=6;~ja7CrNb(RZ3gZN`2{cludYWB$?f02|Z)Yv9a zMhqq^hW3w@)zazJXM`G6wO5ZJrK}UG!n^o*}^6NZdn55VVa4c1hMoS zAuBSvi3%7BZ`hTy_b_Z*?1oyg@m5+PVcV`_GfBEXS{MfMB1q@Ma41<1vxRmJ4E!Bx zR73IMj2BC;T2_coxS=%vV^HN7h$ImWfk3@+5$tSL${@DCG#tP*E5Z( zbS_fP#Gr)Wi^R#kA^;vdd`Wbt+v!#is}(kEki1dwM{vG6 z!Ky%xQ%%6y!iEn^J#w|73OX+Oiou*g^5$@^XhzfbnO(g|p;&07@c9#ymx>0pU7Wi*g}A10NoG#D?R($O1#^`Sr1qwYn;dK&iE;p>auyq?^EnIdl1i08X{h-OR<9i${NHi zPliCj(W+M`Wc-#3CAH$KyTB$gODRmr^G|82KbcK9lwfuGy>LCXj>U?@J|5NF}(7{%}}!7v5+O`(?;U>Ck^DFd6FdtcP_=KMATFe(6Lnv+7dCUQ zkGf~pr^t!~`ySkk+B#dy0ElZJTP5`fi|8dx$cBQ^M~Z1H{Rpf|H^X1;8}E@1fXTVb zH74)<|J;55$QqgjA+CL6qc$Ja>W^e|)tX)TishzHUl*MI`JQ|BtQMH#m|E26p1|Oc zNk)VD-QW9HD*~;%LcXpyNw*qiJEA3!d$UiO&1%RjVoCvqt(V|gOwx0)3ey)HIjrcO zl!55LQu;pw%>}uT35>{KtOsqngh{XatjDC!%&F#V5J-k9Z?Z7SQ}TOGEbPPB5C>#7m5e#He92Ki>GES(Sym z{m7agdk$=+T7MgcM)YQJUqd~j*&tzn1~rO@D=gJy8tJqU_=qvb|DZ?tzzQL{fH+Gy zRk+2_yI>Lv$EmfAX)2FR)%UZ|#XH!q5K%yeh(`6=S8cuWjFYpbeZ-4=_J;v`A;q%X z{_f-5l>yB%$ugasv=fw$OMlsCpmws-5c$?FzI$&cB{Nd6cqlor4r#gR;52-J#e~}b%j9f z*nOH6(O#_fnYWQNwT3hp=jzp%1S=VkNJO{m4CEh_k4WOxIg5ZtksDlLQT^a+K<%?` zGr=hvwv%MiGAUs_aPwF`#HWMx%4c@zMS`VA$LHsfUA}@) zulf-7!koZbAhmkkzwY7l&mcAzpSZ4M53f|>s8Oc~DjX)L(ln6Bv~NGvvlK4bW5VbH z0!H=iYbMRK&1&WN@u)Dwk|ITYcfUx3A|5yvvb{cg121S<#yftMdX5CD%pe>TO4`le zL#I3YZLv#ZQ^5nO^C5xn|oRM5Vwg znsuXWw#RCk%G>0jl0-FoXxh_XFlM1#r=TdI1R%0!o3RtzdY*fvac!-jTZ+ z!8J7G_3AeWnniQp$Xpo`SRNIRzL_G1k{EDC;;T0vGVPvBOdQHJV5BQ;?!IjuFEK^$ zwgwwba7x2!g;z6Zbhe|AztQ{vjy{!^d5Bi>_t3o_H4CgXLrR^YeIlmP?su zHqT2M$vz4e&pkv}gCt7HRSI?M0kWO7z+FsMZzcHunZu{OE_} z`iaooA4TzB+&}!VF3aOfn<-lqo2hWm`u)CjxuYgmY^8mqfScM|=&ePk^lP{pL~aGO zczFhU$)@o>bs#ZxTlv|BCb4|#>%lwB~vk*YXy@EE>uS~LD%;jwpT!gd^TTiAcpkCqbR>lWA8c3O_v9y*3o$5|m+ zBNQWpl)dp;fjn48%EPiLd_}lIxfQ;mq&sC*Pkwx8_c2&LYJO^@c&cN}H!wvuE<#d3 zMoIBqZw02@?dYApihOBgkq{K=YoHf86_(_8(q28>p_?JxppgS>N9K*4?$DXsqPxAY zEi|#FafaR3q#=jNu&=5%;25GbswYsqYcgW%Mz+@=+P#1a&+nGV(tA=32=~0)t%c}y zuCOZQb?SlI0S!ykA~z@=oNp)LN}gbY?9#>`GavtOkM_~K&iba`)7d8$0t>W4%cT(e z5-6vR@>rFq+tv}}{miw|IOw-%%bYH)kkkE;1bYX$RJ9I#({!u#~`5W;2k7JQwWnftwZTeHh zQ15?!B?*=q%s1vC9zqA2|HDI&B!r}tK4$ zYS?EGF9ZJ*DG-`SK$zM6@msha`9IKWmvBpPz1f#Gpsw?Of6N6MH_aZ@`SE`p>)=E< z2wjzmH`)I$kAWWOJCXg0U}+I_#s9vFW=`1jB+u)H|1XchEquu(gDZdCvH!f-|1#SD zauWW_X#Y5>|7Em)9=`udw0{b(|4Oufsv*pORp&pLw_BA&m5PdM_*yLDY@-VMoa#S7G8G^cPAX4QyBA;TaqG2h zU7yYw)N9PCSm{}UE+ib#M8jAi+Q{?H`gaxI=UesDdCML8Y5GtQ+g;V$KkGILK#VFq zwnhCddzox=wMKF(#%;Z=N4?;!eB+?IT9k2l70n0V#4T3E;xlk{l(rMtVRJij8w=%SGQq`nzc+2>fx+zRk> zgDzHwH-c+5rIKE;F4k(HUy1fPT&fHBahG~@N2KR=%Hf?M4~9_u#G;3u??&%nDxI>} z2``zii#yOqO)IeX=95~FVjHNZyEEv6SCVJ-SqeDks3o|VUE9=d26Eq%I-(r1D z87fwVKJ|#DC(kZGD3MupP+B=!^W_5ne2*nDk^b-U(6NwF9v9b5OlV|-EItZ8BzvF| zc(bsu3IT>HU10a#AP5tCI&?i3;mtduGev{G z*XJ0W>XFiRm*}!S^KZwNXV(E;D`NRlMM1RjG%%lo=P=V?@n)b~UdYH)Wy;M-0DaUL))qW{2$Lhu{ojv&=D( z=+nQ;QV$*$U_?lBHF9nioO0Xh>zW&ue`5 zuJ@GpQxW&0Y_-BY8*^1Vfp-w#m|Ly9ImO9|hnrv1kbRS$)NCi@f&7bE{zuaBor907 ze^>9JF_=&PmRa~^={r*A+-?|Tw*l;*kO+*C=G-K1`D4b`SbX!(=T-zY-W>N#VwOZa zl{)m#>QbwUecAUL9;gw|R#tNDXwn4)>t(4t7dfR4GF1}v8MvD zneAWht-cM>pdWoUgn|o50=mq0uUAaRu9rP@vF_`dQ4+Md8q?twNTH@RF?RaS5s5GI z8Lr%zjXU{G-*0P~oL+jCWDVLXdP!`r4wH9SzHz_oCDMH>Jd(b(ekSgI=#OgtJtN4b zW+~D7K_k64d_{eE(LOC7T9npvY1qSZsvq zK0|a#jK#_f?ovBzI2EMD-(Gs@CXzLzS{4%ED)x4mzj3#DUqe5Mbb?R_nw(it`c!-S z7NnQA>li1vK~i$Z@!|50b5}N{&M2)r9NRN;H>7rHlfme&Y3c90dY-Z~a*?%94?tph zM!BDnoi{+|MI#+)UL%d8BJ*$dK?j!W(BDN`z5HR(ns+RN@ytJYqWS}bz0wLS+lbNp z7)fk)Ks`yt&wErYNCj!L$fs$F_nhy`cedtm_a0~ZgbHCoGTshClRYi1l*nF|oz+^) zR<|N`T^g!8hh*dyOZSE009Vvy;^m{l(|1Rn$)_T{j8d5c1 z@K~T?sYP$PaY_Mh&3v*_Ys_R5_aMcM|E6{fG+tb=SxV6+ek8=!e5#G{O$lJ#SF`{& z<^VSCD@8suyR!VbWjHvGpma|Ha6^_9>q0SV#5%j=^bGJzB>PN{)eh1HArFd?#4+`p^4>oTlh{Ko#^wVMq0DcX$nBhwvK4)(q24o>6e$_I zWU5cPfRy#REd7vAs~4z}s==~U0l;On!&jF&DBivksFv@@vRG_XKoRyg^qAO7G9X@x3sPHRjyUe2vc`iK@Id<@ZLcF{CaIk3hnb| zhwE`2|Kl1uwTC+l`Jl1a^%gaG=60?53a+AStBePxPGTyjGT*i!HU1qHNc({|Tlm4M zWv8^P>eD`5+K{-2B`K-2=qFiQ9S&82R-waF3^sqO!w4!Y#tLSp=^k1~oY~^ZKS)XV zOkuBGa2!+bJEIDT-W8aTVc?{8)pC~o8+`e=H21|sZ;y_ACEv^agvngE+&xnD|ABINdUuU?hS%H#hv=L zDVk#5?EVx2POzE!H5$4A&1u})a?PVFZ@h1;_sejZUB$H_hBGi5Fd{ZA2MjO6*%X)b)QZ- zUF$a@VGg%`tsOR>&MHzyIvDL*E-!lr96lfDrs%uteZ{yBP(m8k{lGwADm83R&@uLL zUC|A!{Sm2S^g=pn=-e^${_T~boOlHpfwXI^W28>M1>|UVMmS}^_Z$uF)$bdk_jqPj zaopWss%hL71BRbpL%iR7knyb?y7_@HS^LjEU^%7F7>Z(cfvggtKEI7elx1VBs*BCy zRu@d9)pI&a$9h9eC-B)cv`pPh`t54_h}rF1q9hn+ADf3>%?xa0j}IE3l4G(J zb}7r09DdJ=D?)4vZX@GikE(vR-Zx4j-LI`&i~ebDn!G~tKo)w5Nw=7vI8;gqNeJ7> z1sc!hLtiNl@|XYlv;+;EBoV6<*W@F0CcYG4$m00Re&=zFww3$>9FLox&>ir(8%Xe_ zY2zIUrpe=`O9<+VM4Z5l@#5i->qsYMhJG11el-HVjuL=FN{#Rupx<9-rtE!w^8FTPGYG%N7P5G1W+?t|jP&BylBI z^7a!paq7p#z_bY!l@WVtPx~;2u2GZ^FQ=D(@tp%d_bk+?4#cK4;2&Zz~e$N9zwU>?`b_H16)JD-k@0aglthSMUgor_}+MV6S z&yoV_!r6^Yv)!wojKLs`W&W}JnTQuVv~%ZcS-gHf4-g$n&PGm1B)N9Y_R#r}lDpJ6^KT#U3=J-w`_QV~J?-A0O8cu2sSE#?@C%1DHI-8G-$}#||8QbK>5BA2 zC!yOm?=2c*ZO~4`2dJ37+)j^?@QfG*R3$Bmk+4fqHpfy93_n_<$c*I&HZWGq2$l?{;;bSGW-9@*5}Xiv{luo|tmM0f1t2qKe9xLGEa+XDVT8WmlSHgLLjcyRsDcyS2rug_5wTF~lEfX0AB zE_)Dkc*AUH!1WNRg>N<%SS-`#WXRp$Up*4uMo}aq=uBydV%_t(EOTb4@U8&@VRaQQ z#>YSLC~Y{Hem>!M*`I!ymppduv=aWP#>zMjJg$Xs?u&zkQJJ0TH@k;D2gWv@2HZbs zvIPL|k%O8W3(c2k8t?T>x%2~oMfCA5)w0~cBg55?q*uDwD~6fpuAY0~m%zbVkeI_n z{!`-!^;88BsYm0lth=B=-8w%vRhAFSq{ za^_r*u-sV@!@Un`J;Z7CYC`|G%IA*u)|lVFQuEW^m_SoZFo0E=Jx zo2$9h94U_MPXAsyt&_#TeqTj=G~y*W=NHYqbAhG792arv?(gU7Mnw*wda1+Aj&&oj zcB58WMu<-ub#uuqoTL0vu;SAU2eXm!T#kG1DE64Wws@*pxw%mPC@Znwz2RK#>llTK z^2#3^~i)pO^QHApH=!Czee`&V^sR--mR9 zwNkNX&DZ*Jb!%avAjgM~Nlo_lYgdo0%<1`K2j{pqX3Ol``|XHD7`qk$W*h`>(-UI4 zCe#6_u*n5!D=q5TPe(i`IG5nk@2ovG`Zcue+^5{{hf=a{_Kc0n#eH?DJohPU@(_Ep znZ%g)Q7{Wk@hL3J>E1=b0_=~2pB2+i30Mlf`-4c|$uD#&#|sr^HeTi2L|feN)2dHz zP1A`yQdF}vieOlg_e;;yemhrTuXsb>@(Fji*;Fs%9bNY)KWdOR9@XvBA*oM&Y8Tm> zy7erdjQcA385-O?Hc%@)>ll3L&&{K2gS5A6zBP!c*tVV(6-b#imoj2+JHxMpzp+0| z-XoZIwrtZ~DtdcSb|>H4`PlfPh#O1maP71b({(9}VHXO==4)}+(Rk=PV#axltyYow z+#$~r4!L>R;iEWRyMhNBW`WZ&jmgDGPaZ0Ay~Fmb%X69IpVG~{iSQ5vhwgubN+wj< znzoo)8?s%Vknny=Tky~%k7Q~crj}&2YIm#o@mLGbVBhPvv&ED|Q{rtm?nw6S+z}f^ zm9iENIW8IS3~)^|rC?=<@?)MUD71Jwfm+Uh=%SHMv&tdFZ#xL<|7YoTfXNY!`wP$Z&6=|u^Et2pX zpJPH0Bof-KbLd*NYdw6-T;^V<=7x}zeZRow%7lm3EjB;ex|CQ`TvzDGIS_4mz3GR6 zrT+B44Nu61AQll4@ERa@<5e}X6qiqwoFBArqFWpXaKR8Ox&0yqUCvyc==$ZD%0`i1;n~kl;;z}X6oW(QYpK5s&S63vq*IyfthqxmEcnG0M5T%>6g0Js zx%M6x68M6ZcTIE8(YKS~SUa_6B)iGO$eZ;kJ|xEDM3Z0t$|2IbaT>WrhO(poFn<8b z25O9c>tqqDv^}~00NCxBnfJ9USsmU*{chJCw{fQ9@*&Q$MsD5a1$ZX*S2x$EO0O%{ zGq*a6-nhv#5c6Er`0Ek2+U=Vzu222#oWG|z8fG_S%hlERvNwR{mo>QYfWmv2-->BNyu3cf7i+uYOFzbJ z&}w#y!OSUfoJZM;eEbzZ@TRVZO#WGX^Y#VV!a_Z{=15W5KYdS(4p1TcR^;Cr8^#OC zK@Qw<^);b*#LVZlK8(GfXlCI4ggep9#jJl6+O}UP1^77)_hp+3F&guy59^~H_kKfA zpXq}~8m4nw>Mv1?pQ^cCj=&-1rHggi#!Hsej{*vu-Dt^+Uc1HI+|oM-yDY$|QJ0;* zfy=yNAocj=_w-RNZ(aXwBx3ZvB+y#x_BRFdIYwKV-~Ug0*BRDiwr*)7jDJyj@O5qwuTa1Zd2cRZB?hH% zR5I>d2QBZ0q9t^Q?jP166cYWjDc{5C0QFV603B6~cKB4hrIiUnn|WqvTDR0NPU%a! z!j_GD*ib&m+R{mosK`Y%I4t4PPG3!+UY_pG)=JDS!CgVs*x;*!*RYoEZvd%Mm|fCl z!Y${yR+N&oy}hs_KcI&ifuW^otH-jXL+$bM#&(27*n0iMy=l40+emHWu5gALRS85sHQ)^D4g+xaSxRvtVK;)$)5HhfBCC%*~Uz`h>v1w_m> zB2$}4-?v9tLZAjCJZ+ivRaO*>|tg|BUtwfkUb^C{u`n_KaxIDUnk7dTM)k@MnpwLZ9bP z)AK}K0zj=Q$XX&F3}L%@Zmdv*U03K56Bja^m5NO{g8gCM77_NDO5R+fP_v;FuO|4YjBoeJIlTGS)O+yk>KGrH*g=SVLEj zlhNJ$f_h(w$CFH~&CR<5Xw?JXme7oaNSJytp{S^i9Z@-VTD#g)#Ze*Spk(xy%=F|6 zM-RGe$i3FC%KD#EB*$S~c}b#d(?6~4w9b&TNfjnvRi$o~fjeB#)>)5`IIjN=B(sefZ*8G!0vwnbyHY9&+>J@h2?oFU;(%c5w zlUh1z?oV4^DDf-bgH83U%pYxUZa54bPPTJm+=!FigiY*PRVYy(fzUP(J1Iz{x#T6#B&|-@>Wbf^B#O(c~mPE{K;y z{yx9l*vPadX>DJvc1SVISNW-XJ&W>-R`E*F{EH&7n%C$8$j<#X=`Z8hOL43Mn-(w3 zs?WWZo80Un%aW}V{nx=7nEAPVUIzWwr8WH!mT9yYWQDI_xv-2*QCp}wgk^pqTumHh-Qo&=`#gxa5Ue4R$U{FIjJq1;E%GHTt;b&IKEQmAsi zxE%N76L_*5AG#D`C)eWaOUq9F?$S!_j5*_rO-VB`v!4Rdzw<+Q^xg8so#(U>1PInL^5dn$4FKuq4ZXDgNs)|$j1cSl+ z+$OCN8ZJEs*R5yj1Gr!oMkj2!pAC$8-rhtcnQgsEH z@y1FQIJKr3Wgl2aoDKIGzf*T=Q0*9-Ou}Fi z%c5I>8kk6PG6UTzKvN^Ff3>}{*px+nzcP(p^njI80H+t1fJTD2$nOy|_w#(gH5C9S zZ0ZTCl{i-VW9PnRo|e`Lj*hg(`LLgB4=z`k-{_QN0d`@bKu?ODK?sdMQb z1$0*Y@dZjc!=QwuaRwJZ<}XLQ$FSasO7G<9n$92r0#kN!KA<$kf15nj112cfZsD2v ziP7a?9BtuLvL07eBl#rB=8-_tDPp3_vWcs+fqXbx?E{1p9)F(X2x1;&RlQ;YWe2o# zPqcxdUCi>Ajx2%$yXs+H_dpEy??cl#wtuVH3P5=|wU!1ePgQE*(^Nn#zCu-mL*f{gH`6QHKro50tuJ}=P)$Op`N6!?ewL-SL z_}wmU(VGwyr3r@#XY*}MD(fXnNauIm<1md&23Yj3_#WvIDRE2fHNTCy*daDN9kwgW zM7&|KK!r-$HYrV5k#UCecZKfTwSljZ*^3uSHA0t&;&B z8icLSW09A6Kc+Oum3*`anMJiX3@DL}ZliqIJR;=}G$@pi)BV4uyMo&)p%vvnuD5*u zRFA=dZGTE}Q$E#xjv$vXdC<8w?G7X9Hcqxf+Md?qr0t@S{DUP5o3?kb?Wvr_^bC|b z(8V1}(b@GEhNQ8!_>NAUcUYj4FszIs3V{r6(32K7j7-A}Ik$?53~&;as{z^u%yq4L zEKEb4f`REJeI3etNifqm?R=N%4xEYmoa8F?WOr#Yt##&uDN300jprE;7K!MoSa33nF=ChlT*lX6(G-jI599gk2(s zZV1bV)+9YQ^YKo;f}JnazJPu=a=nak_XW~;@nlJbp2gV0??)0}-B<1XHJ0<3ty z$6W@=4<2`$bp-OlLAh7~X$JlsQf_(m)KpBKZ)pp42#9zm@ekrL($f4mw}g}p=`~Fc zwi`LzbMg~$mYtx)#DUL^>BV(<(i10AVQVp6lM~~TIbL33AYy;sBIvY5hd@eers&HM zDzEh+k9=RnvnzI(=MEJN5j&z%;2e!4nspsxG!?3mLe9;o&^1A;14rl!2j}F^`99+! z!nLH+s_$2r1+X)sZZu=k9==ryt_Afn;e;)>?A(&+=bqO8rf+3{Z6*{hM_ES#i+-v7 zP`mI^ft6F!8L8hCA6PP8exv!7TpPk$)nggN1gb>ES>oBxj*t4fZHGPGNJGA{S*zPB zCni@OyHkoQ8F$N~Db)nqjb+zw9%OlVb5C^A6bQLR2{8$e*POy{89#Knpq#;~g#j&w zS=-l_Q$jNz4KUJeOnZagqS6jKxCB44YxC|YI?BX&X10Lw~$YV!0H5Yu$Ww_A`(itJhiSeMe~LyFr)J!L7SEIExEibF3^ zB*me*hcmDD^Vg7)7StrXJ3=0wXWEp*ts=q+K2Ij7WN;>Y#9DioKAZHU!Y2|yZsZdP zAGoW-{u81N1?@y=SWdd5p8&|%P^Dj8{Jo&Eq!_Fkuq=jWQmG#FpD10 z89z zdvEwEqiC0LFfH9M(0yM5KG?FEYbl;BnY>2Mlmd^vTghRChWl%oPl8X z?QL@ZF|37I|I*XujCbQLhV$ESTq-RS%CWbpzL-VvqmGg4*k@P?&c~2E# zlU+@czpcWAP|>GBpDYlnWKFoZ}2{ z^&G4xEJ33S$Fx!M?s64AoHN8WbMQP7-E03<*0<^4gBOzohQkEJgyd0$YnOwpSEswr zreC!eQMC6q3uZUKmMKcaPavf(8>EA5Y?eX3$1NNqSOM&1Aq zjrvkm@D#T0-H-e0-+)Yj3b@mH_3`^n z)_|hk35`;R?c4w%6x9Vg`Xb?XX3LLbMf*HBz##Fq$V;*|njPwAf;c6)@W+X%-lRKu zYNIi7}UgBS2EbVTwush?;yDO(2;}dnuD*-&64A}&qX|%ZHo3DWYEZsYluwt&?KrSM^oF|u( zh}P96k-m*mb+~)nT7P0)GH|T#?C2f^#yH74q%u0aY6VcbW?$AN!hplAfq}F*d%yP1 zu{Xk(GMVWQX^X*2j1T#5C90C0xHslO@1gY@8&er)Pow7?C@5rKann83AjB;V3V={L zqGDbM<}h}A_n6s7pG+BB^qny`0yI_0pV8m0fx`W%$?qo=#`27yKbly{a!p4J+PFaYJeL(M~Jv2_a0{@LmaRn3Z=cDvKQ}*5XZ--VwG;b30vy`m%uMb#j7!6(~FEBV+ zu3YavSyNyiyZX(ihXqc=o7(!Ar!(I0Q0;`JuNahcv3?zVM`4JR>BL2hZW!q%Q5EAH zl4*x6PXzpOU%4xIG&O6YF^YL|{eP_$4PJP!ec1=^)V&CYg0kt!m}!GJ!)rE zbuzF+MR_2XSC@;YfN`dWb`0(tT1&1O&VAdt4!(9{+oBHoZi=eam%!x9C=R?N)9#C; zt=C@U`Xlm^4J+gZP;F&e!XGtgx(}$TiGak7io**W=mll3AMf?s;V%TdXq1r(;2VPc z?N(e}n%NxhtTE??t_JSA&(0zcm9m7nzSkuEgPf(+O|^2=Y*hq-Ap&Mjd@K2AsocUG zWYy<=Hei-ccGUt%jZ)uPxxAz8HFD7&)6oL+O*kF~X*xLJW}L*yCvo7p$`}E00&mub z<+zuO(~~4yBxs1^F=@{nOot)v1R#%l91>904PI6rz(aK2THAyS8nTEaB1)kR-7Tx` z5Tf~*9Q9*m91*=Fsf8lI-yAswi~?=>d0&pF%`1Rff3(%+grZ+xt7!}j57L=W58<|4 zal)Jt7dHVKM)!&UkZVWt3^(Lx#&S!CD_$?NQD%ceog_dOJUX%$dng^OtEeNe-&r5D zjjbfFq$?!N15v%Fzd;DU(sQ(|_zEWPA<1hPu#HEDioVzaHyMbS&R-c`uSR~eo~{Fa zlVhQ5+>V~dRYP_>N^4gP*SirIEaM6)GL!N3E;%^Y|2%OBu`ZL3J$26wAAw3c(?_u?K75f7i^1?U^vnghy+vw4k2cTnY@VIYQLS79C)pkWL{Fn4~zI zm^@xP84H3#qCHB%vz##n;Y9St)Mz76u@~!@%(Pv>UYi{Q&Jh=Hm;ipmA8qUfjFU;g zU$9ZE8Fie}s=zIyVFX5QCA9n)i$N7IPiJA+_5d|@(57AHrd|aRX1Y#AoMp7peh))* zTtRPz>`!ZMapG-)a#df~yH>PE^WoSRP&x*lf=Bb=Q&%l*7xbZnUYB1KJUB@4|imZLRC)i#W)WLZ9kTizyOh*A@;V?B`!-D<8#WB=^=ZFcX@D z$dH%Fd4ydr20aD6Yji>i5afZDF<*trl z?AQUYf!6l7LTm2mV3*VOP_#HaS?QB^-psoknr2R?`Un!z?&}hPpTXO`y}do!u;PTN z!}>?d@bfR>IcYZy!gSR#Ci2MIDg-`Gui*Hmt?qlLhR>dv-saA&h^C(#tRktF&TGW4GF zNS<;xHl!>QTtdnn`X44gelX64?ghktM!z2uc;)?hk6GNjb8Mw(QSWCDGq-M?DV_yS zWp5ZmHXFWHr+TrksUHkg!??<0^KdC%U})b9VCc5f>?Rl&L4MipUTTPxs7Wy2)(#~3 zd3;woRB`@BhHlN>aqP%JfgpWxQG>!IGy9+|Wl!!2=ovq%w*elS$l4Nwy>6ayndF&t z&zwe?B$8v9u^feeij+M`={yKd#?Sbdqjlw~2(tW_O@GaN?+5IY)lxiJl_#$`#DdZaDsEOurnZmlBM8oI+J z&)llphcv!ob+-hzcK9O-m2zw^6S7wa| z-#k1fh&-UZ@_c}>#7^96BJLVWI;YIfgMJ^&nZ!lZ2z^>ub?z89HM+XKJUARWO%&?x zEOG9y0t~Iy!LPuCAK_rSaXeYB!ylYTrLnUjyn#-`bDnDVH8DY=;o8Rb%FxX(m4!;H z#(fw~9G2wqt*-Zb&I7B^iF`+)62RCEj-e*Jc$Qn^Op&~;P8w&1Y{FAhMim2~r^ZXN z&l)9|^0g~nTyBeuws%Rm*}n$w1MC^Vc8xB1hIK5Q&%U>Rdqp{}A!BNkAlMUL4Ip&O zgyyB$^_(KyMacSuG>C6*b%gt!lzV0Q`TjwF?N9_?;n!LdXmOFl5Ook^f6&`?J;^i& z%4%!ctMK&@^ZaHf+^G3!boEXdCQzd`d!Ch85+0}*a|_i-IG8pN-gii9*pra+#S;O- zc?$I$xz-)z($Q;BJFc)pQkcmxEWd=RA-KsgUV-tlBE7;RoCm$s z)Om@PZEZ59rdYS1$a4nFS-|NsT5nKp_T?x7FuC*XGDJuO|Mq!BW`#>5D``k|BlK$> z_WS6{xsq>}DG2;Gqq5G&aX+(_Uv(Kee&{0@zCZVvbfss=@5;5ornHW1BJn*Fb_45>*n9Bq9c%ju`x&$|K@6h;W78nEcY7;;3f5uLekkklC5wP!vkUJtM*TlkOc4xTc#tdvf% zlgzEtreR-fjc>qy*%z8 zpGC)D2}fvhJ;j16ls$PjMCI>8QO}T`Zxd*wt^J7cdRFW6m8m$lem;R4@CL~}be%YY zUQDy?_1?--a9uXDM@Q;np50 z^F_1``0SXork@Q8R3H88sA;Ul&Jq{PT(JL=$7XhAy``+F1C053FPu}W@D-V3;U4IT z<~!N?&UqtPc4ysx$KxUC1-883(#$FEi}YKF{u2`sjFi6CerqgBp!vKY=X@G$^(VfKg zccW7C*3Og^?+UtOcteOtm5nlk6 z!1slcKfD6sG_3q>ga_qcqm-CPIP3> zA3FDa6b`7GdNi?SeqK_CS7DKRHs{x!Z5queGZyh|ri`K*|J&{DB{;ro2JP_o+h7i2 zX@Zs~JT&7Uo(r|f21lMp8ZacxtIoUp*Ax)Aevx3z+U1^+VG8$lLc|f?TmZ6)k7iKS zLiI)(#G^I|=#nRW?slA%|NSRjTOOu(4BndlK7a*`8gdSR>Twcq$s344z*P*C`O99R zI+OvaKfMPqb`4O9{i5-f%S#z_1@%vy~KaNC^gOR(h;eDPpkat zqy1^GEQ)Bt@H=lyZ_|=*`Oi_-=$~IM;x?_! zZpvr*(|i2+eT>jBjxB7x{xM*VvY-Fs?C7X&gGrCdgp%t;#l!T literal 0 HcmV?d00001 diff --git a/docs/contributing/get-started.md b/docs/contributing/get-started.md new file mode 100644 index 0000000..06a77b4 --- /dev/null +++ b/docs/contributing/get-started.md @@ -0,0 +1,16 @@ +# Contributing +If you are interested in contributing to SQLSeal, thank you! SQLSeal is a side project developed out of passion and it's always great to get more hands on-board. + +There are many ways you can contribute! + +## Non-code contributions +You can help SQLSeal by [finding bugs](./reporting-bugs) or [expanding our Demo Vault](../demo-vault#Contributing). See the relevant pages for more information about that. + +# Dev contributions +If you can code, you might be able to help us develop the plugin further. SQLSeal uses the following stack: +- TypeScript +- SQLite (compiled to WebAssembly) +- ESBuild +- PNPM + +If you decide to contribute, let's see [Project Architecture](./project-architecture) for more info. \ No newline at end of file diff --git a/docs/contributing/project-architecture.md b/docs/contributing/project-architecture.md new file mode 100644 index 0000000..c13c015 --- /dev/null +++ b/docs/contributing/project-architecture.md @@ -0,0 +1,40 @@ +# Project Architecture +SQLSeal is an Obsidian Plugin written in TypeScript. We use the following tech stack: +- [PNPM](https://pnpm.io/) +- [TypeScript](https://www.typescriptlang.org/) +- [SQL.JS](https://github.com/sql-js/sql.js): [SQLite](https://www.sqlite.org/) compiled into WebAssembly + - [AbsurdSQL](https://github.com/jlongster/absurd-sql) to persist SQLite page blocks into IndexedDB and not keep the database in the memory +- [AGGrid](https://www.ag-grid.com/) - grid solution, default table renderer +- Node-SQL-Parser - to parse SQL and modify table names before sending it to SQLite +- Comlink - for Webworker communication abstraction + +## Architecture overview +![Architecture Diagram](./diagram.png) + +On the high level SQLSeal uses SQLite and communicates with it using WebWorker. The main process calls that Web Worker (using Comlink as a wrapper to abstract away complexity of postMessage and wrap it into class methods returning promises instead). The database is setup in a way that individual blocks are being persisted into the IndexedDB. Thanks to that even if the database grows, the memory footprint should stay relatively low. + + +## Extensible Architecture +The plugin is designed with extensible architecture in mind. I want to encourage people to write related plugins that expand functionality of SQLSeal or use it as the storage. Below I describe my plans. Some interfaces are already in place, some will be implemented at the later stage. + +### Adding new Renderers +> [!NOTE] Stage +> Current Stage: Proof of Concept + +SQLSeal by default gets 3 renderers (or views) bundled in: GRID (default), HTML and MARKDOWN. I want the plugin to reach the stage where external plugins can register their own renderers with thier own configuration and control how the query result is being displayed. I work on a SQLSeal Plot (codename) that allows you to chart results of your query. Once it's finished documentation and interface for this feature can be finalised. + +### Register new data source +> [!NOTE] Stage +> Current Stage: Idea + +I want to allow external plugins to register their data sources: i.e. plugin that fetches your IMDB watch history and creates new table. To allow full data ownership, the plugin would save the results on the disk (probably as CSV) so user can later use the data however they want. + +### Register new data types +> [!NOTE] Stage +> Current Stage: Idea + +### Expose SQLSeal interface to other plugins +> [!NOTE] Stage +> Current Stage: Development + +Other plugins could extend SQLSeal's TABLE syntax so it can operate on more data types (i.e. JSON, XLSX). \ No newline at end of file diff --git a/docs/contributing/reporting-bugs.md b/docs/contributing/reporting-bugs.md new file mode 100644 index 0000000..03e850a --- /dev/null +++ b/docs/contributing/reporting-bugs.md @@ -0,0 +1,9 @@ +# Reporting Bugs +If you found a bug in SQLSeal, please report it! The plugin is in active development and your report will make it better! + +## How to report a bug +- Go to [SQLSeal Issues Page](https://github.com/h-sphere/sql-seal/issues) +- Add new issue +- Describe in details what problem you are enocountering. If possible, include the system you are using, SQL query that causes the problem, the error you are getting and any other relevant details + +Thank you for improving the quality of this plugin! diff --git a/docs/demo-vault.md b/docs/demo-vault.md new file mode 100644 index 0000000..35a423e --- /dev/null +++ b/docs/demo-vault.md @@ -0,0 +1,22 @@ +# Demo Vault +We prepared SQLSeal Demo Vault to help you get started. It includes set of example queries that showcases some basic functionality of the plugin. +I hope for the vault to expand and become both good in-depth tutorial for the plugin and source of inspirations for the setup. + +[SQLSeal Demo Vault](https://github.com/h-sphere/sql-seal-demo-vault) + +## Using the vault +To use the vault, click on the Code -> Download ZIP. Alternatively you can click [this link (ZIP file with Vault)](https://github.com/h-sphere/sql-seal-demo-vault/archive/refs/heads/main.zip). Once the file is downloaded, unzip it and open it in Obsidian. +The Vault has already SQLSeal installed so no extra setup should be required. + +## Contributing + +> [!TIP] +> If you never contributed to Open Source project before, I highly recommend [following this guide](https://github.com/firstcontributions/first-contributions). + +If you want to contribute to the vault: +- Fork the vault into your GitHub account +- Clone it to your machine +- Open the vault in your Obsidian +- Make the changes +- Commit the changes +- Open a Pull Request again the Demo Vault repository. \ No newline at end of file diff --git a/docs/faq/comparison-with-dataview.md b/docs/faq/comparison-with-dataview.md new file mode 100644 index 0000000..198186a --- /dev/null +++ b/docs/faq/comparison-with-dataview.md @@ -0,0 +1,18 @@ +# Comparison with Dataview +There are few other plugins which might sound like they do similar thing. The most popular of them, Dataview is an amazing project used by majority of Obsidian users so naturally I've got questions how does this compare to Dataview. Although I don't think this plugin is a replacement for dataview, and I personally use both of them on daily basis, here's the main comparison of the features: + +| Feature | Dataview | SQLSeal | +|----------------------------------------------------|-------------------------------|--------------------------------------| +| Querying Data from your vault (files, tags, tasks) | ✅ | ✅ | +| Query language used | Dataview query language (DQL) | SQL (full compatibility with SQLite) | +| Mobile Support | ✅ | ✅ | +| Querying data files (CSV) | ❌ | ✅ | +| Editing data files (CSV) | ❌ | ✅ | +| Ability to join tables | ❌ | ✅ | +| Ability to filter data | ✅ | ✅ | +| Ability to perform basic aggregations | | | +| Support for inline queries | ✅ (using `=` prefix) | ✅ (using `S>` prefix) | +| Support for JavaScript | ✅ | ❌ (planned in the future) | + +> [!NOTE] +> The table above is not-exhaustive and will be improved upon in the future. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 0588c9d..bc65de1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -5,7 +5,7 @@ layout: home hero: name: "Obsidian SQLSeal" # text: "Plugin enabling full SQL capabilities in Obsidian" - tagline: "Plugin enabling full SQL capabilities in Obsidian" + tagline: "Query your vault using SQL" actions: - theme: brand text: Get Started @@ -18,5 +18,7 @@ features: details: With SQLite under the hood, you can use all functionality of the database - title: Query your files and tags details: Use SQL to filter files in your vault + - title: Add your own data + details: Operate on your CSV files using SQL to process them on the go ---