From 14a9e6b0da1f4de8414a745707f9b686db836ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3jcik?= <58668583+Adam-it@users.noreply.github.com> Date: Sat, 25 May 2024 20:15:36 +0200 Subject: [PATCH] Chat extension prototype (#240) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## ๐ฏ Aim The aim is to add a preview feature with SPFx chat participant ## ๐ท Result ![chat-intro](https://github.com/pnp/vscode-viva/assets/58668583/e4166cfc-b200-4563-88c9-a53f09add7f1) ## โ What was done - [X] Added chat participant ## ๐ Related issue Related: #239 --- README.md | 34 +- assets/images/chat-commands.png | Bin 0 -> 200090 bytes assets/images/chat-in-action.gif | Bin 0 -> 5095735 bytes assets/images/chat-intro.png | Bin 0 -> 740684 bytes package-lock.json | 4 +- package.json | 47 +- src/chat/PromptHandlers.ts | 109 + src/constants/General.ts | 3 +- src/constants/Prompts.ts | 43 + src/constants/index.ts | 1 + src/extension.ts | 12 +- src/vscode.d.ts | 38501 +++++++++++++++++++++++++++++ 12 files changed, 38738 insertions(+), 16 deletions(-) create mode 100644 assets/images/chat-commands.png create mode 100644 assets/images/chat-in-action.gif create mode 100644 assets/images/chat-intro.png create mode 100644 src/chat/PromptHandlers.ts create mode 100644 src/constants/Prompts.ts create mode 100644 src/vscode.d.ts diff --git a/README.md b/README.md index 18635a0..e14c0c7 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@
Capabilities | + Preview features | Architecture | Wiki | Contributing | @@ -33,7 +34,7 @@
![Sample Gallery](./assets/images/start.png) - + ## โญ Capabilities The extension provides the following capabilities: @@ -263,6 +264,37 @@ By default, the SharePoint Framework Toolkit will use the Node.js version that i You can use the settings to change which Node.js version manager you want to use. You may choose between `nvm` and `nvs`. If you wish to avoid using a Node.js version manager, you can set the value to `none` +## ๐งช Preview features + +> [!WARNING] +> Features described in this section are part of a pre-release and are considered as an early beta feature. They may change or be removed in a future major or minor release. To get the pre-release version of the extension you need to opt-in, please refer to the guidance in the [wiki](https://github.com/pnp/vscode-viva/wiki/1.-Get-started#-pre-release). + +### 1๏ธโฃ SPFx Toolkit GitHub Chat Participant + +![SPFx Toolkit chat](./assets/images/chat-intro.png) + +Now you may use SPFx Toolkit as a chat participant in GitHub Copilot chat extension. Simply, mention @spfx in the chat to ask dedicated questions regarding SharePoint Framework development. + +![SPFx Toolkit chat in action](./assets/images/chat-in-action.gif) + +@spfx is your dedicated AI Copilot that will help you with anything that is needed to develop your SharePoint Framework project. It has predefined commands that are tailored toward a specific activity for which you require guidance. + +![SPFx Toolkit chat commands](./assets/images/chat-commands.png) + +Currently, we support the following commands: +- `/setup` - that is dedicated to providing information on how to setup your local workspace for SharePoint Framework development +- `/new` - that may be used to get guidance on how to create a new solution or find and reuse an existing sample from the PnP SPFx sample gallery +- `/code` - that is fine-tuned to provide help in coding your SharePoint Framework project +- `/action` - that will provide you additional boosters like validating the correctness of your SPFx project, scaffolding a CI/CD workflow, or renaming your project, and many more. + +> [!IMPORTANT] +> In order for this feature to work you need to meet the following requirements: +> - Use the [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/) release +> - Use the pre-release version of the [GitHub Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat) extension +> - Use pre-release of [SPFx Toolkit](https://marketplace.visualstudio.com/items?itemName=m365pnp.viva-connections-toolkit) + +[Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/8.-Preview-features) + ## โ๏ธ Architecture SharePoint Framework Toolkit for Visual Studio Code is an abstraction layer on top of the [SPFx](https://aka.ms/spfx) Yeoman generator and [CLI for Microsoft 365](https://pnp.github.io/cli-microsoft365/). diff --git a/assets/images/chat-commands.png b/assets/images/chat-commands.png new file mode 100644 index 0000000000000000000000000000000000000000..d93097a079e030d01a7eb74e1ee0452a89ec530a GIT binary patch literal 200090 zcmYg%cT^MG7cNK>=^|1?KoI1DROta!5G)i6B28L=NbkKj0Vx4dIz+__dg(=K2qi$I zMg(aIHIPV6LJJTekKcR$yjg43oHJ|9-e=~VJ!kLzeLMB3sS(E&p(}KBbR3T!8a$_? zW5(0bF-l)%zPQ68Id^h#p$~X&bf2zfOl19{!w9)&a*vL#9?Ev=$aK+X^?hg+Ku32q z@P8-$f-5kTj*j;4BZGV9p>|vIEDnJF5Nv8`753``nysf#;yEInR& zhA(jGR$l3=L9#ok-MNz(oXzuL$?bE03D+5sk?Zx_Lo{oF45rGDYY}Z^57nhr& zk)(T-Y0a+(*a!TK-EzfIA)=|VOAj4Rj=5h1Gq?&87dokRu@YpT;4{~|-di*E78LI> zTB=#(r53Dz+7Dpq#j;L!gOn262%?o#U4{VKt^&;o@Z@w5r0fIFfnm-Ad+0Wf$T)J6 zLS&EDxnLHAyNF&JpFl{Skm=ktB_v|_3||GP9&Xn>FmjN4EJY9>j5<+$(~tB1%5T!& zYRn(*5$tI8;P%{#9TUO8RD9}zr8;CjXK@ν>T>=`^3XIDx9#E1 `F=_Sb@R|pUA2KCjZ1OGW$&5>+h!M)Sm!m4f!Qo40#))W`u@Hm-LTIf^#bD& zJSu}tG-ffJcQo?6W$XT0;>5?q^y1=k{~<%yaQVjy$BGM-QcVFuw1}R~@5|`VH4pIZ zgI+@lpM3z29 M9Bw3En?377RBD9|_)(Wyr1fxm&9}MtF<*D&0d+ z>UjLg$I5jfcKSn-Rpl_jsQYo=?361;#4d59i$*$S$)}ySP$@iJD5e$^i~T1bL|+^= zJArCLm+2sTKU=`owKOsI5!-~CWc1?hTn!D4+<(0XI4?cMto_*i^~zL=V+7?mk2JR9 zk}Z>LtgTBf);t^`FZ(6(tgqjlEb<(}e1Og3zt3v^G*w5jLQBegwL0p+qwamu8OZ%M z6{VZ9Y*zR=)tFO8 WhSE=PP|{fUKBCsM5RzYaQJ9M*gc7O$*MoMK}?(rNMU*EUPee z(KN|(J?Cd{W;oqh*0$(Mi*;K$ppfv&?Z|fj`3nzjahrCgxFv|9vk5cP{zo5B-mq~u zs+ENrp`GO=Z*B2%yJv#WrmnJDl;_3G;KCufh{5{Hy4nYqY+q<_wBdW5UcO@Z@BV!G z{lymWUKI0L%_Et=mF!S%(TD81TeFR*aDkhshP4FIu +-G2UI4*t6GP}uV8j^fa|IpJtYzfKWo9=(e0QRzL^j%RUhBB8xYYEE-o zfy&!kXUJ1$S66F&W~DCnW>RBu@;V_>1e|{_Eo={OMV!?>^aTsGnI0ZGma(H;U6(#! zx=W8vv*I#TL63HQm_Kec5Smx~TR{;;^~Ueg(#%4O$OnmuiAcPJeDb}*A0E@zTr6vr zKl_3j*#)ny?ap= gTpVP;%aR)VWeP!HdZ9C EZY=BmvZG( zdV72Isel-QU$5726Xw`?E;L$WN)5nzSl=u9)l+P#UO8;n*+UN!E?5Vybzt7k*BwI# zHWstw-n1tKub5GT@Nr?wyDXv-hY%wzAD<*Qox+?bv$qTh{^Eg?uReeILJwH5HO{w8 zsgmR}oo<$`KtU7x7+ZU{-*~tic>F9TPK<=4Bew`=d+hw8dZ%McWEU9j!KyFFRHKi5 zQ|#0mN7<>* V?%DPR~G>fW!mb!E*l{Mq~Ot4Z9OGpQBPyHCtlKYYR+=&cmw zSvZ|#GQ7dIF&9zHKi>?}Dt9h)p~f{x69*EYdQgacD64{(m%d_;97Lp6M&ReSz9DKf zbi=RlSN%#z=n7eyG!5Y|gEKr7RR?I|BZXAfgQ+%kcobzNn_%C|rqGp=Co7Rsp4pTB zL2YZXNu=vM0C0uCe uar$eS6{@ipJ3Ii{x z9qbjZh2TP7Y6=vU#@~T`2X`~Yw2HcHPAyTO(+*o<4<3>wKSzv0$wfx6{v32ye4c%c z!4pXiURMYbaL0vby*p0b?m^HFU%rkS)1Vz!q?^*6Dw}r|#A7~D8wC54ysEz6d`j2s zH8^GDnXQZg`%7AK5n$=5R}`_9h?_g@1T)L#Kp8u$s|G!%^$*n-U)SV+-%}^{m2+&8 zM>4%vn>u4VVh$LuD_Ff_h+EGG4JMorfGGRuGqLmbK;GaFs4N|iOV4pp)9{+RQoR^j zY!_|q8R+!u?De!3$B>tFFVN~#H%0e%swtfcr&nu3G9SQ$Wv29K+NT=|wT@>sXMYDv zG9Jm4FD!QQnJrSe?G~DV5r?lFH~*{t_9k5-XgAbZW0X3@eB(u4FlxLmNOJ>M@bGqN zf*-4+_ii+2>y1A%BzHbrUTH_{SKF_JIMlY%-eheL3_ Xn23Yqp^l&z`sH8{GN2 zf(4>4%&M)@Zf30C8d2y=7XkMANDZv`wvRWj)rQWi^S-Ds?oV&hXb&G%`gt}AOJ{^E zhSa~z)E4dIjXC2LjdoJXm0NgM@-f=D^V6??jPRq$kL9R17-_moH p_cJr@y-1^)AnD z&TC=#ex@cqg5rrfZ?Iq-D@ZPdoC|kFJIUBZ2g%H-RNT;(06cOPPRH`S`?;PvZSMI5 z7eYz}VT@LdQBklLUS7AGy)bI4w_bRnoH74kAhT1Tx@{M+=6iqs{IME#!iZyvO!1a0 zC$lxfV;ms) o3#*QYSbK^MPD6H=<4p!&`?$8EqHL vvYaT!Y_)|N5j zLlfKzG0E&IL5cb^z^$fI=@79=H~HN7(6aABA8&Kuon$;SIM56pkKH-F1=V@g(@QeV z6^JzfPA?%0oQY Hd4T%4OAOLosz!puI89o_wbb-3EWvu&2wAJ zV+q;V# u4Gz_cVTf!|K zh99e&6{GcNa8 KWMdnebcNK0YeUm#i{9=^7Y}i<5a_R=sw97uVs!;U#nh zELw e}wd`@QK2GZMG8qvzbCP4o sfS9OueNW060rv_9BW==2&LAVoiyuycYBTPXRg+xz54wzO>Q{{Ieem`Xj|!t zpZ=@C&UKk6b(*Vh$w#?`NC%=mNcYJ0kto<$r5=9F?S#*x!lLZJ1&Th0^{R9E5PXK7 zCP!aa8``(XSICkcAAz+yyhG9vlsA2G?ie@;yxV{78rY_ySRN|3`@+N}kMHfo$64rX zfTVa2*Q-_rFMPgRT0XI0^4bwqm@%1+^5lPM#0-K*G?Z-Vcowgo2me#wTk0RF2-*y- z(j!@FU+PkE;%QP= u>MVvl2EzLqSDy@6hRI;-I*1WhX*nLUcT>ywgXXC z{XIe4iF)c>ZL@+8_YHo%JkSa@7;t)g@9HVy!uO%_+Sws^s1ewQLnB5FC{`aMO}mAa zo)1>w(I6oPKL&R8k=tBOyCygBLcicsU2ZG*h(CP3;=ivOA}gucq1z&>?K*$w&!j=k z2+r4;p6P?bMpxR$XP>8)?0`l_4#e9jZdi)brN^$<#q^LY705}j&=i dp+yl!>!xn?SG7CSOUU+LABk#J(#Le2wb$R4pag|@0ox@=!4jZ6HxNQ6U zx08~MQ9{8^UIkp5{jQh_$zH1t&fz>ne1)32cyVz;aV(eHy4%Aya~T YMukf0(y+O_137N9BlR zeP1;AXtSN+O)A9E6EWCT#; Iu`X!U-ScN=!hPeVOxUf*Y@hw6 zrQ{;KRooljDK3oUEbF9{HiZckttU%Q#+4`h_^X8SavHZaR;Id*uPQwx+%u;#+j(e( zJ8+W32B%YQR|Y$v&J{1UG37taVh_2K{ 89#wduYvOe=+ZLZ_Cuge`c}GeKyk>8Qv1aHUh`Jj5U0J}*WWH5XTQ&(vljzA zx-DEEYT2wbqfMPx5aH!cC+L%Ik+xCO!c7x{ zQfYdVY`e)st>u9BXI{~V8UWt{;{oG;wffh3F1^U^a>E+i>IJvYZidwhx5WEZc9=#v zWNIs$X?adI3kQ3F9_doI8mA)QOF)r)93+=8n)3A$*RPOF(=8V>?`_j+L zo$%VTo6s|MN_vuDuZ%2Fpne@txXv74S!$dNz^ x+QCPqG(Yr`>r$#qU!;ly5@xGD(ZAa`f#ki@qBmR|6Cg|) zj=$I`1{(_RxV`_#T%JwOS(ChpYY6=fu@>}fN@%s6_KBg|$im>@VqS{AH@Lh6 Z%Z(*an+{we5 zVqb;UtVE-x^G(aMd7-Mz304+Z??bXI61ATGsq#BBmFrF!DkoKmcff`tm~)SBRS}bn z`CBd3Xv75;8=;5L5M&EpN+M$U`z2o^?O(rtCCVRVXY~oEoaCyBw8~%XFAG9wBK*xt z2xr%Hs4nmd`ry=VDMV@WMew}iLlA+BFMqQdiRkR8_cr1XDN&vI0j_9Mn@ROz0X%$k zAOSu#Uk$dvIhaTs-ZU|E`*h_AFd8rjJY%krzakd$8}vc)518vpmL^T-Xy~9ZdwctS z$e9}Gq)*8CHPt1O^mf?qxSt< wzWO#AU0eB_OIiebIOCDpxE5ai_Crd@l{*@9l7);W)Hl-u%sgF?pVBBInYUM zT`hNe7&7n+aqb9ey^~(d=H1Pr7kFE~P#xG YIhs(`RIR~u^YH%vQ^ zi?&c!%qCTli_h|$+Eo_0uzfTcQG@)EXPX!R3HxR7?CpUMqtaS@>ch)FzPNkYJ9v*B zc}l8vrg!Oe3Vmc{^WEEq^#u_|`l_r{6w5wwD(E(_@4SD$N^rjMISLr;H4|5z;U*CC zr}}8ugx?8YHJh)pOjk Q0D6tH_J?Yh6s^vZm9q-`~V`8YfGU?FDB|X|Dftz zTc$lLY)GYCi-~E{)TQ;A%>Ln1OW%G*$p@SD=RJC0oAZO#om{S^gjY(m*@u}QaK~Nh zP8&C0WN%z4bKFy|x<$M@fVCmj2rs0Cl)OqehRCYjwxVC`m3>zHK2?VBp|^{ssv%{c zkmen&S5utJUi%%LFXR?;{KDR$#*N^ zFh#9?XCh5^#;Mlc9;h5`B-d-}#aH6dy>KRigX@MxRrq%yz}O|@0wMkFxeQCVBopwY zOJRB7!sDt4WIrusmpq `MaN;8r#VhGj zy-dDge*hvVd1dv|@z;GgrCh>!GV( -UWVMGa8xd3BY4!$(HbduN+jYO7}B@V!sSrNT8Rma&pp zr9sC@;(Yo?sKSH!Q;Z*qrKazg4G->_WS9I}B;&9_{n%0G@~ =ZGJs{x) x5E|+vl_N zp67Fx#)gS0&-A3yYm|DndhbMfeuyFW^H=8x!txIEE`YP6xoL!}szV)5%u*iH-VjJ- z6hw}^5Yto&9AM^(#%F5p)Cp0chfI6Hq)$uXVGi~D62h~B0xr>^&s!KW58+tXQ)RGF z%zhbg`2wBMUAVyBtUDuG0W3i0Q@Iww;ddGP|HHtzyc$C~H(y)ebQ1XcmH-Lz>>tjM zdZ!EsN+)r->wL4TiXmSbQl1Tisd`*rpdct##JvK4Iqlpwz+V@kP=5$ftCZ35E$tXa zbMs2rtmzojIu5{)*oxP2kmLTLv-jvp9Q^;ne;n06m%#%2f^Me`jwF}i+}p`ske$ub z_!WMsi6OWj4Q$u8ND2|v2Hk5AIbVmJ5B`IRIh&68aaaH;4I7wS6cAWR{jk={drR8e zNSowF$j+DvHmk|L;;RC*<(e3K#|vexN#FU LpM(;>JXrIxLBOG zHWrmd_(6=ObR4zBP}My|nYXQ;;Xq}n>rUKMG75--#+-s>Lw|w`)*S>DO-|#_2F;?K zKGN@vph-GAIatb(sO)VCza6a(P40D2%24M=jTtwD%CTqe8|@7bt}hEBXizy+)sMD@ zJ`{s?oIgOAWLhd{6&C$^lRK~YCd$Z^L&GwJd-Sy{?2#ft2*STX*}mtZuYP~-rGX(| zSA Ff3^{Zx~QAnw+3^-SwsY98*$nt`BAmuGLYw`&3_1_KF z8 n9Y-q4okjQ6dy-V7ZPdD&d*Pa)gmli2%7a{MeeNpj} z8^|2&O|%5K+Z>(Y^$ks>zPuE!^9L7bDkNpU%Fj5xv@jBM#5%O@i9ER}oTcp}e|_ZE zefJPHYm7BdV8sneF?8u&&FBn9
t{NT+-ka(#M$F%WxrJyg0 zH=dQwnqAZ5QF|5d^> ~rlx}9kpuHUY=5gWmOfG2di=tf`4P%E-goJ%Nr%WQv&@3_hx~KTD{#FllD0>s zvWk$$;?K1>Z~R3YEVQyIelF+OF27b>y-A*%QW6l}zKcS DKaPuHyD!I)_J zUTksVjMouBHi)r7c9|&0vH{~R3fHhAv tbqo7) z7QZ%~zg3mp&C~Y%@27LE%DneYo{;C>ZEO7EGw2&E(n$Drdog*V(6l&W^GE(QkH+1_ z@u^EREZ52xbLmSN)Mw*4iG3fgePu3u+I*<$sk|4`E(P|FrgMwC9FN!7QbpbUxpk+< zJAgf~XbngS2@~n8j~t=>gpk`P=z+wAgV2+~3ew+23y0xm!~H_!?4NedCnlPisRakQ z)x807sDp@S3tKy~C@DKMD*F!A-#Go%XM6^Mw6*6^*Y+Q4k5Y8t4-8sL9p&+rae72B zS;@`sPDr8uc9r4Txxc4-8)wV>bM_E3b*)j=hc@?lu8bT@qJ }O+RF0p?G=R%H+RTosFQ#L>J2+rxTM+WPS&R_B zeI(h9XVQ@>f;pQl9XUkdN@k=Ehh%HhA4mKPk3zj1^<+KxG-{h4t=7Sq!{A2JI1x1h zKn<6bwEZMycz)E2aUKR1GL`BImuQP6h 5nB@Vk(>I?znrMGj0`3>hoJpwG^z{An;pfjEUf z5%}iVouxyxZ1%k7)K(XHBx*0*YMQGw-E)@OnW=kN54GYjwY@&wqpcL$k~A+nxL_tA z){ZaqsM3ZUiBhB&M!Q`a xS6!swzO$~tq)UP} z!zXxANslh`LrVnvbtNBLeu_-41cNQSBRPx^83~0E;PBzM_F4%o1YgH+!6RIAJq_O; zO8I?3eu}_G5Ic`zXhhltCfmxj8+CYV6|rA{jvQ!@c)Nzgy$f?#%BC_-=>4XbW5$H0 z*X7-W@-o9(&0=uEi*=a{5il*D5pANo6L;Y{0Wk_PEl}>aUU;+WaSLST*X690uUj7H zw$|tGpjbfkTWs7LrL+?3)Fl_eVB+A1R1v^%V 9!qa!BMqO(egHp{G$NI>-sYQ*OPZWvDMYulDXE*GmpHe(mqe9l{a799iIi4z#NO zNWm@@6nuGwVn%aXm<*Y)fAvHnlErQS*>%DfP3~484cixPrc;5a%7{vC(ai_n8e@Vb zbjBxrjOW1kQxr>lzZ1vbO!KlI^BgVe3=`K&ljm-7t?+Z50cyRlnGB=bf7uHUfWhAH zkjtJAJX|h4w~a*9GAy6Bz6QD046k^9&HeEC2eKG4x(R>O&|RfIL1YGw_j5nPet6*1 zmsFl>ssb%oPc)6fV*zXuLc3q4H33XkN*Wl kb|<=$Mxdd636ty!TJ7yTcNSk| z=0DOe=c?&7I0~oM+`e`Fv4MX*|M|7X$h~{=Jv`7tw93(B7idQvPx%^)nN%t+zW|b* zo;4B+?=(t_>rG5$wkLXp?hNX!OjAzb3N*?oClu7k{&FM+dYo=0ViY0j^Skh`pN)Eg z#)_*=zRN)(V5(VT{B>c^iV^|N20Ph_I$DRuILwPptDkY}9oL$zG{oOw92w&Y3I5!2 zJN;?Ym4*py@*)4beJQc;f5n_qGu~_tKCtkkm%3hy!cpdv^*Wn)sYC9+=7jG#3m_Ut z|7e6;w`XhZSwwE>MZcw;^@ZKCI!@8#gbieh=9s?7WZ`Yb9ao6<*2c`)XX;UJi$)L0 z8_7$?*USldzCKhGJ;QY#9Y^UQeMF-KpHPmLf-tPB&Bpp)&~A1r1*$jFr3oxt)TtBa?2 z^{Ifq^Zg3F<%^_6^PjpgvEh0}TJS4-PGQQ&+DImQ+R1da=(DYl1En|F<1+#o)F!%X ze%liDxpWfs&dJcDHH8>Are=XROH}s2I>$mC{8sE0vxP`vAc(s_jah33N4Q|3i6iz( zh?e)R9%3EEK5X3;G`r7!Uy+7orjda(N2VLeLSreI_%PR}Nk|1wtSffMbJek+K3(7` z7^lbZfI&Fi(hg =MeEcVdl~~ |??w XBBK-;ueLnGx(f+Rm7dOLDFiu_dfSzKv z{13vh$n|^fc4}8g5x-v*T~xz#6Xl{q8bo{OM2Jt<+GyV^N*mt3J|DI}chafM>uMYu zC@PZg*lIX8gE8*$4Sq78w1trd8ufW2B+1TwwZBpryla7jVS^7J?Tb&&25dQQju1pj z=~gDLFKdS^CctPb^jO*+wR-)6spk{9x%aB9j~CR$UaHT9`nYRhsFFOK_VpOnLp$42 zZ>0`hfs?5*Jt4qQp2|uS!0yxTxDlcsr;7&9_d!-t1UPx@Uv_zM?~QD61>0oAxxi)T zr*BB@qlKet0 6 zWOA=yH&WIwI(R9WML8|yK(3DkaYFN@_{0QRp2v_nY26vPFTP3u{2u!yK-=xi-* u+UTfvFz-whhsUQVqNkKc%plCCaW}q7Kj4&Q$hq-?SzaY=FmaYM^>~j|6LWfV z=lGnUble79>N;PC9ATymoBCf{h;nLXHgOC_%3oi<_v#7zca@s{ x*2^xrh}l-y&%L&F@=H9k?BHbx)L7`Q+V99@HS$R*HT<5p+?vJ5b6 zH5;i*skA@4LJUJk7 9a(3CLD(%Vxbng$P72fS;fn!Sl(pN8YxF)YB%()j*f+$p)8m5yPmn8d<%RMb!sVa z&u3>MxX$!#(eXJM@3gz0dW*fO4B@Z$k1*1gdQv(X3ZHPyi0~;wh7X9qg0v^wGxOoP zo5%iMKh|bm^6Nh)+m6VyTV~A6xfmF-bRmy)MoJI203m}n^DNc-NQUfF^kHD81YZ$6 z^@5k&s+xZMkfS;}Wtb&qPpE2UHeLO 5%X WQJ_ z-%XyVP_f_3?)T3!Qy&I?6_X*4(h>YNVS2gQX>K)!fi1zG|J}QFtmopC^58{wF(6(W z!lFjp5hMXd=zLTPhpsGb4Jl1qN2#+I&X%B6IMivU^r!n{#_;;eOA#Jg)eFweaciM) z5mRO{DortoKdo&kkTEL<^4oDCrBP%) % iZz l4%$7?R~3W(!yf1>aIYLa;J{!Hw#%Hl>+`y`a6L4h z2btt10@n?0bm6+WP~W}8MRVm&LJBDX<%n@EdWtZ$3%*?iNAfEX_abtL+Rk1G^V_2} zHO1Q?)_^Z9{|F->3VAx`Gi>P^defs0SIiFCKPl1$wL54k{nd;)kE{z3pZMt@$Pf@& zLgY$1UIPWU)r%CwL^!pnEMo0EJ;Akdhxs_&pG(3mGRglqAMa*{A<(4}a(eO+k~41j zJ-2+lGMFiz zDo(k#6XUt6F&8bjn>&Kw-*YVs9b!y3S-*FNcs=uMo}*&^R=8F``|_5TfmgrX)_>}Y zs{Q}ox=kv=eWpe62>P9#FH>&9Mn}Q{KFW?daa-*|J_1f$;hA(jS`$x$`g3^H^R!J{ z_|Id3^e@aDUned8E1D-9x2onD=_unq^=Any?0w&HoE A2HndKy5~{~CL~bZJBg!Z% z esu zCL54v{I}yF>x(3|Bal(oLp}M6`Y!ME0`qusQh_D8163#fTm5UqmsyCl{gI&EL$kYB zk>tjR=Fjew=Wugaykx-WFeRZJ+um**rMv(%S3%tkF%uXC@C2}jL8*qq6&-Aw(G*ay z=$m_eTfo#fNy)IeU#~lOYY|#Z|4uxQZDR8qby>6Qbk&?9x+P4@qs9!YqT|>88p!GJ z@`h}y1?_UTp9=omnok96<}UNgjvipgOO1I{Flyf~GfhY>?^aci^vwQPtFKGugH_x7 z*n$C|l-*Cl$w9^!6k$z{`kIku(FJq#-K*Mw;=g@G>tSFWOje({*9uu55F%xq?~w7k z$CNQrga^YlJEmq15y)N+p45u@xfL6rf^v$Uvh>gxo)t_wiedBVJ1xEuS}f0q6~$)h z@U%Fa8X&Y|OJ|Cp-@H}!XrH5{hqP=)l7t!VpZOF!hJI4c>K+K;6h;wjN%3!c7}dl` z$B>A_EkWhGcZx4?h?F*OHFNfhmfBE2zWf4x{YBAMrFbd5yjm=r)XO&Yng{fm{ZFf- zLQ$AAUHo2My_4i#Ur>!@eXrKIQp&)tvz@>lN5Q>gSN6BNs%pRFtQz`;80;HSKi5=n z0+(?O%=lqW4L>IwS45nWp6&I$zK$kAXP2cU`WuG=xVlg5SCwuTL*15wUD`;Eav>cM z{sdKqY1Bc0mB?Hca^3ISy# B;CzC9IF-toyyzU=8lwV}i^xTe z$D2f!?A1NyU(BT*OpNtRnFP^@Kz1dJYBc}cQwiLoGe902#gbwd` zrPEchmAdG2D%#jpdo+h}`p<)t(_^Nc1p_-(LPVqZ$se_eeI>3Zy?_=R#peUK9~{%Y zD4X!cCRC?J7#FV)BqAR*ef;KRt!pXOYx~W5s>IW9d3?L|)BnTUd&a}reqn$SK}2uS z20=uG7$q1zqUMbnN%Y>M_uhN-5(a}LL?i^Gj$THMVTh=s*I@MMZ68VA|GxX%54&G> z?++e7GoHKO_c_-&=Q@`yHQU31rxeT>6T@fpp}h{5kY(@%N5Gky=X^ZapSi~WMA6G{ z6(_%s*EqZ kQe6$AqnqBX2laKL`i;TX2JB!S(vt+$FI*8oq!#D~aAMrG~jBaheTcA4H{HmEa zZ^0xKuT+T9CkrEwZXDO+il<|1H268U*QFdXUEDW;;@(kptCot(^*b**nn-Up{kFb$ zgi;I)`otLHbgb1J1lCu-QQCvMN9F0oH@6(v634{|Uu<%mjmI=cp#u+yj%JJ`-<&*k zO){TB(7Us_F24wSz@13H))v-dRy;>l>!003tz5g$vQyHXaVejw^L}44ywgPX-%F z)KG48R3w_0fNQJEo_d0Zn1uE#!!i(S$gNh iI4TO6MYeWow_u1h#MF3LZC~6CIWMUIx_>?j>4p z3|aaTWE?axyLn{jt()hZUwmzp@DJms#TbPW+TrL57I z>dSo*dF2xy3S#)D3>~XoYE ~K(FJAG?nm%Erb=XCNDGBL^8?rU7|;nii*;IxZ!ca3&={S6nlXD>q%)Lw zI$+Gzt>i 5Ap{EVo9AhuG%+}Ya>|hUUV(|K0xNHSR@ADEx05SD)il9%UI1^7 zR&w_qyuB)Kk6>iB)ej`d?2|`YaN!lk9?U+@Cve#FnQ_6%9SXNa`LcUIm`!zlSwB zvFyvVFu;;YAiS;tPDppi7{_8_V!pn+&hi9}??qZ_P2i4@z^66z-4JRxnvWS#!#5u* zYax+-PVkVCb4<_@h%xrMiaf4#K8MkjnVyW@LD$D-kS?biIBZy{^GCG>G2$wsSXNd9 z#p%fBd>gnkIK7v{b1j<2gfeA_cwG^D9Re#SX<#D<$(n>?FCb`r2U~&G#lbUH9wz zv#+=bP$^Q+_G5bU#WNlPhiB70EupEhCNA322MzNFWi|8wqeL(r{zLl7g(-3#?&S;| z(zGo>w1nAP&Y{-x2#XFE3m^K&i!M-n2Qr}P^|84NTd?%i*%KWP6d5OPiUoS*=gzo- zzDTGPaWbEE_oz Ok*PPI zc87l`)ljd?TvO*YiUf8b>XsvosyED{i}^Ki!L-*xTx8QC;_|CbMQ0s%_%RcrKdHsS zwRu)}-osc_@NrkA>&$FZhg 9$*F90X5a5!Jzf-Esi+FAOXg3P<8uZOLH4MUUNU z$UYx0({-!KheV=JR&%ZBb`a*-Av0 @~FaQ>ABUg`}sah|ijQ@A*a>HY31Q*UZWVk{r_{ zlX_udQ$K9)naq#9K;$hynaK!35f1U0>}uPJHiW$Cf^C0XeCMP~*hyo_*7HN;dqqX! z%SRm#(zygJ&E`Z?)L~iI6vqe?Y7a6c8tJHZQ|5#^Xgu)}ld_{@QTo(z4?BO@ST+tl z ^LN2 C#_&3@b`^5hOdZ2@nVh$UO6nt5%Saoy) 7|mpMK(ZXT_9#_3H#pg5p>N+gl@X=ekC^YFOJNQg zowyAm6{1)*D=?WyJTd3kW*EnD{D)V-^%j4Rm;$PVK=XEB$K{m-G3iTl=AxDWNF&t%`gHKtY;sQVwc%|6 zmo8J&ox93h{JG$a2vLp#kjri&GaqI$D;S>A$Is77)Kl;-`_*%l^UqyYen~W_XtkSX z{=)9N`s?`P&&S=rd}meoymN)879SEl-MsjfwWr|HdP9>rB{6qSnmYEjsNQy6;%L~} z#qxgHTBS>M8Ag6ApiP*)T7DNo7iI5b2R6ZEOtG5Yx1%z{P^4SbjKWax_WcTjzD?-w zX!eb8{ljSGGh$4@*zGQlf8yKBXNW!7umYyy)ST7)@VqV{Mq~PC|L&suHO%7;fu)mi zDP02t`^Nt2qCZg@B4!yCjWM#z6;tV>AlO)Em#|e6+C!<@W&+)4dCH7w#;#LU hFdlvGlMmPt`Oy1(VKx{ z2l}q?mbKmPGBrbqZLd2!PhzDB9H^NQSe-Uz6^Wbl4W^D2eOV%UoV>#3do6dF%O+X9 zo&fO|1VXsn5`@kM>{akuyPQI3L8}>#Ab`>HWl!38AKt~iZ|7t+?e(E{HiW1+<(4ma z=Wf^WReZ|XwqyNHcCQ8c9)21fb(W-W^?nCGCCQ#X?NB$BAnyAE!c-h4{K&Cq(U@SU zAt__`JF;epC{8Vavqa@s^g!M0c)K^=C~;D_y}rD*k4}4D>{v{#m^dG ^DHfxUX_QSsdInV-@!M)8$K6i^yVztQg;JP#+%?hADxW}$z7_@pz|_4-V^HY zTH-fuV>Um#UNO{a;R3ic< 7$`VS(v1d&Vno zmwL|Qi~>B=- x?k>nwm7dYnVLc7i^2{ZcH#ZzypHFO)-)i%2}w!7~^t UW-}ADSd(#Gm%6t-0J?G z *>0o%sFL{nexs-7lK*FZGvsOUqU1YQ<0p%vrM!RoOvd6U_8gG(dJ3OOw zntSR;w}SW7b@)~88I1@wqjpb>n7VC7I; M?j zN)qTBN=xt_ l5Y&YlAyb!o&*2 zkHjVejAt~x7OPyas&$~tgXmhNGAY|?ct)v+`LcMbyi{J=jFHA(ous*jQ6>!DbmBMD zP{4!oo?dsqBVp_dk+eL`K)XuMOE{-o^3{09+HC2?i}$}z{t%fXzQQ;9jW>a|M5(lD zMq|>Xx@y#3Qk?JGN-=-jh q%zK%a$4Pn3idI3bU`txvq{C|X2aqnZ+Y&nS}2 z&{I_E5j%Z$ t&3yJno4JKLkiGHMlL*5^t;OY%{T 1Qw(?TTz+%eDfk0VX!LE17THnsfB5ScH#}UCCkcPnm z9)C3xXoxPY(Mr25WmA{Lm3w8?M8bGyzXp1&q*qukO$hU2%&@0gByE3o1DqFnihsyo z&6s=B!Pd}r+6hTAav(7g;4S9e+cLRh> Q810EiK1vFF(sg&lc2k$b|1!R%9}5`BWU+x0jIBdBd(j| zHOmiSVPlq!yAm*jLqW6+lbtaGwsKDn>E=40j(^DvWx43H*x3r^lsv7FFmbNs^nD`1 z%;Q?p%d2*=coLxtRttm8^fxz360G Pp_aU6 z#uK%D*bUU7-GQ*hG4UjGUaKnAsN)uQyBpc`C3G|RlmJeQ?>LlXUYfNIf*Q{IqR3{< z>W;+sELQsZsV pKXQv_)o9irGqhN8~jKHOeZlXKX$xeX<%dH10K zCuvcCaVej*L*Fy@g?hY~gO;)CqSKkwTp`(6z?_Ov!;barA-0Tv#(=m)$lm7$*ulD^ zH7y!3JGElc9}Bt>PdS_D$s5Ue4eJdeYpNp?rz~wbl;Wq_oMw0AdrQ?}`@r? K zvVqv5K$%^WxAQI0KYZe&wj`JbY*tbuHsi*9xmUi)5%wI!sGV9nKYenH3ce|Z$nmK8 z$_0usGxD`8`-ngNi`j1F2A$082UiiF&fTg6Ac|-at-vEBOZ9}EDmCT}9n>r+LFDy} z2gd%Dp&Gt)mqrVMM@k?fn+3n- eejOc;+2fQ}<$#>Mide4-QE}7l0_U_LjOdJ$ z0jL#Fx7J-Q?9*w|do}F6Qf2`f0;{iC_NfhoxtM6oTZ{H%y8MN{BiQ1P*^5>WFNaTg z8+u)Bq+(WYObAg)y;v;2rncS$>HOTu)Y#xu>?OUYR9aXjyrG_ARh3Kt^=Kq3>aZYI zK2!SrWeVUo=d#TIRzGs+g>hfPSe7J?D&sx-s4nI6e6ThogkLm<32L^K6kMC~`SF{E zp>4Kw63PQXJH^Z)eXAQ14Jjfa#$=9_Z{T||FbfbbSbb0IwquF>+rZnm4Mdqs5+y4O z8th5Q&Ik?HPiE)|btTC~+dq>EC3)fto4X>!0rob#_Vb(s`#CcQx> O zhIu_Rp|NyKu$Oc`8x@yDeA`)+*pT12dw-&}fU1LW84^MrS!J$PlVU*H8^vx~rbvY* z>-w_b$^?2EBe_7A$_Pp22oy-{%mqCE;O 8GA)cy1s!g!8+n)hmG?-~|;i{*v-1V3h@$m3Q7Q&ATVKsu!sfUov zk3kG6=qUzR&O&QtxoW@S+P0`WHtv^4h%s>id}RvYJ`ypfCuu(%+e@?%aLPW*N*FRJ z6_+acxsf{fSU;EPj4{fB4}yk`=Ge*haSA+-5aP3P&14e09rvDVEN(wL?*1 U9quDC_R;)Xz*@l?KXWu7q%g-dqrX2Ce{ zV4N%}3j(i*bvjd@h+B~Cn*|n#kd04f^wBUIg}Zzr>N5+7@pRQI?#}FJ+PffzFr?+S zgB)q#``-knQ7|s;+@&%HyR#K?Kfik^YZX@noC_P_6A7W3GFSAa-jQZ`cw0QGN=juw z$hgv>$Cfp~QwcCtk`&i?xVdQ~dz^m}jM&hm0!^nEWuG?9FLee!2Ckf)5On&2peVpT zTHHw@?6SSNP$SqL`MWPp73+ntiHV8g6K=;x&s0@ksRJ!E4~siePXp>_vr5UyVJ YfNlWHrzZZXXgAX>g!+B+xL++Z^oh^Z)M^|AuEs9u;~!pD zJ~MU#Ulja(XfQ-Lz}gxhC $iBdc9NrgSiMnRnT zYaa%!FYB+G!S;#Nx35;eL^e-+44t}g#cKNR_bE)JYeG~0%u73IC)XW-R8^qv4`J+8 zUB3%Gp3m47lk5LV_kDHatEu>3F{i%I_nVIOcXhxIfm{E#cf_BZoOoSsS>Z(@gEu!F zZiLFLd;WR7u0+5qg9m@#9t-KJX+GbmSbJSxQ$q`I2I4OFWmy3XK38Q?$*@#Qr2KDV zhy}X du6%Y7E0S;S$ z4UZ`1_QNMuR#ulqzZ)%}{^ZGZn5ty5?w?+nLstI*h+Y5B^8cofe;9B7H%_rvgoytw z3c=T1{~e;=&%DRK=k0G3fr;06_h&u-`;PzjL!G3t-~^fdd3j#h@@q`<^4Y)ju*?6c zf?jCH3$$}Fqei5hAi3XswF<6^z;k_3QPC@EnqqQdeCOepS|$K3;mz Ok^n`u#mxd$tVh7o>La~b03cOrZ?gr+r9tEb|vVdU*7_&X=& zP{=>eo<(jb7?a}2eg6Cz%4c$&l8WkUa{>XQt&gv-hJiucmoE pi=Qzigm%2T~@dQKeOL^5XPTq2hGy2 zh};WoX$+hRwjT6DWlPg9?71Z7BuB)WgC%yzC-f!;21kO@CT`goR^W@*f0~~_2T-TK zHD~9T2z5Hcz8T=Sd$(ovNB801kwe;ON0u*!i-)>gA$bVrg~Y6^7!*nwU<77oXE*DP z-ujrIuT3Sret7yd$Cdb9oSbY67t6Qrb3wg~K{M;{2!i=Vck$wPmX92!U9*}SdG82V z|I9}W`Ni*L2}CRO`QkE0Ae5#3EJZC9 lBu*Ld9^{vnj?fq+t(i~E)gOtpSgcL;c2{dV3}GY&(GR)i%hDV@cnn&olVBl z4nUl1OXWYlkLr`t{fF{8K)g}0r>_18hw4oi8(5Ms>AV+iCrbp=38&M8l9s+C5ce&c zF0A|TXH#@ 7{e_lRBtTP*(C6j8 z*%jT0_44HPMZ*;_P9pfQx)vC&YC0{i+(6~NMe!Jdw*C;?F+C*?&udKuW~G*}(YmCh zW#p^Mc6?9JrFw4yF0UHxYtJoti si3dSv-ESNoB8Y)pht)q9#9 z=16MSyk _uBdFUg$1L@aTo;+(Gqw)AI+#KK6oN+H#P>uut`rwpz_$ zpK|oWnU)?#ouEz!?>u>U3Lh#4Y`V_eIjsxe;+D)f4BU5Am0SB;(C t#MX*1UKrZUvJp?-u}c*i;gy;8AkawkEu1|VVny3z|5p$&Dx z4tKuiJ-)~Q!OV2ppOB0-@6$+}x8HgZdkJa!^;UeRs&p#4^b#pOAHUc2ZeTPb)R}hD z0epr7)>kx7Zxz+F3?S2w$8i*c-Q3WAlMTdLjtmk#VtTBjM!jvt>OW1e6IU9@WYoA< zbcCgm?}i14I-GPf9W6@-5~Uk>WYF9M90DllnMn6?&lxX8+9*oAh@I8go~Kms@k-M^ z4JJR3ICecd(`xPj8(|U-rVBqCh|Uq-ZOH|2JR%nTsaOw!B#( $M?r#HaD4V5&f0nD<-;6xprk)$8etsG~;saH8&{~vtRe1z>XP4^BxMgj_!=^FP-fw*^2`#?A4O zJ5IzDcDbi|tNq9d{zf%;NIyLH_vr3_@k!pef0LwZ+SyNmDfcCCsarPo&+6OQa6Nzi zoIH-yPD)f3V&LRH{Na5Q g4uj}zuUv?VA6Rz@&iQsWw^(vlMus|NC6^<#2r+>DY=pT(~j}=+G8s% z@+5UIo1|>xjC7U9yH6sq)@K_d=JQeVl1eDvmLr{yPz^DrA*=qffV6m((9u2< VO6)n~< zwvpn$OWP&FIW;XUXZ!rytCm7(sHNF<_tv4=$uEE*%3A=qv9A0!DyyrR_jN4w6&xIR zE&E~7z@@P6$QwzzPc2B7uUGH!5a8jTIdC0B6#tci%6*FBAnCLh1tMi`$HF|e;MNtX zs%u=W-AQrMq#_bYx~Y!(u>>qrK{+>AK#|{|78LS@n7EKy+J!fIrCr63$p@9_N_M+; zwz#_%7Dmynznn?5&muX-FiA1qF%EK{KM_#aQjk`bBFGM3q1xlp`;j5@cW)pg2?(w- z0I23r<%E%YTyD^MVb#=3ZEV@jWM7WYYsl%~IYZ`LNSR*Va`$| cw?K<*iysx3{3T0b;xA-jF*q1ro%?2cmkevY@mA|(fkmi6zOI5Z1$|TH7 z4C9Xy2KdCOsi|B1rf-!v&u?MJ(^6Bzl Do! z2sL%F^4h+BT|7GNuy8Hi9T3EH(4|CIa#;MGPmG%-4_>?wdM5yjbX{3Q+Eyu%wBdiz z7SAlQg>OB^=e;~5a2{?r) M^Px% Jm)r5@6aN@ zS72h7xxT%!7JozQf&SMlxX0dYJKLwSJ(D)wP7&mic2&Gy^8|2LdlCj;O}>RSE+r!Q zgbC#4SIA@m^GGF?xR!J%XU&Z{I!~!-UqjZ0;svqEZTF4#Zy$Sib{UzJ9z5va&{CDv z4O@3@*(hxLCfyu0j3I5&bm6r`XNR+0&i*2085t7#Rr_aty0^vV0HMK=gM(uvF$H9q zEK?U7OT5k*`9WD(xzeYKNzFK(_5@bi*vJGB`xh1!Ros)ZDtZ6D_13ntKk>V4c(7JQ99`^?Hs#@CZ0*1lTeEsG79?$%m0les$7UZYCZOw7!DUEpSJ**=K)bW0^$ zY7vzge_e~V?IC7oo`|umxqz}>xU_RZ$hOSnlowlci)~q1ey8F3jbeAM-x?G<&t{N# z>kor+m!y=p(aM@?<_3c~<$$C(-9&Hu4d?L4btk9S@(%h3QvwvsN$@#Z$_oS {Yk}!-ftt+o z6S4s#I&VA8N}929=FE?gVi5}0Pi&24H;BN9YqZ(YxC`IUo%U(vKu^2rMetm~^$fH* zf{ZEU+N!t&iy*`QsXN5Y3-K<_(5Ltv5M>KM*l|zlf5*s)Uyogt3pF4{0gT}9YHN?n zqGgREkS4Y{f^{-?m}MVv(b}vAn1?-3A6b-barFv-Igsf)q>t12lW;q?lk pH1 zi1~6N=hl2T1okBJvxtI(&ix0X1X_mP%(qh)?+i$z#5)orKGd!(d??~YHuQKaxhh6f z!T#P~=8M_thl0Yd&8@8TJkbJ9)mCU`yYX^7y&8wAfXy*Du8N9^qD0`Pc5wvdr=c|q z5ihYkTo+;dWf*-oOG@PYFR@}TOG3la_}2A39rPm6-FqKCl@q%Q4O_d`&iI5vKe$5{ zZbphZ8(Yy(TIxqUD`~hrYT%hIWZ=70@3enRm6SUWVqZToEBfR6RT3AM0~2=v(3^Lk z*v;3{6-Qz|yf;J$6c|qrv$TJurMZLHG?6GTXPAN`j*F=b9cd5jCqg%)XsN7J6 ;Jjtoldj>_TC3%%311O8i zu5AlXc6qJlr%)in^5SA*8XB6B7cXCi1CYtOKfHq?29lI4LO8UnEMq$4(s0)HPq9IL zb)atOTifcqh7u+UPa|0s^KN{W3Rt0cg1tzRs@v#R8{_FDR3kY~>8?4+-uTc^TuIJ- z%I_6P8B6jTog(VAYnb*1adFUGqPpLct1G=*CrCED3!~BOiJR7dV0hc;fQT$S7l5oN z=SGcholrZ}dq|jW*pIkkK+I%p1ZgI#1*GlgRL&Pa9^Huad9~dm*4bz0XZzE0q3Z I^S;ou zwreMw)5j&YKoo>J(zdK72E$J3>B4)fA|+|o-KLuzkS;}^Ay9!+) xmcFsH?y+$K0p6P$~~3x9LXBD)$g)f zxi@)ZkQV(pl8g&o35r%$oB*s4+S%DjWjJDNZ*PwPSR%@-2ia_E^ZMqTT9@Yb7VWSc zv@&-Ysv_83GS6yNZs)ykm8H!%JOYUk_|A5ad)Cc4cTk9$O0DUUM%um!NBVpE)k|zc zOh -&;5UA|y6 Z}= z!#`_RE+V0%Qc*{OS^h5dlb-|Bl{pXFj59(>WCx@6L8AAI|qoS;A=&)daQ%aiTT6sl9Qc_azZ!zQ>a$1@KOP`*eZnfWU zcCDzcZo(&i0@G-lj_#~q`%=VbJHlgIdnI-X?9vUn)ZuocxD|TBo-7ue@V)jV?l5yY zdY&kB4AK{v3bqeCWn%WhZh6@t4Y7`EGKf#OUteO%mcyIp)tZ}Gn*A1quu9F$H8aOH z4YsOM0updp5%FvlNJx0ZXCTqgRiQUr C s!)Mb8LP@Xq!Rn29EmgRl$h^8{7)Cx);e93XUbW)JU%=EV+e;$C`fjW`pS2`a zZH-8j@%>n(y9Gi2HaiwdL4w+e|EbO6@m%u}LzNWxuO{&Ov8&4WA-MMOouK^u{FEGh zUaiaIYmo~tBx3&5^7p5?*YE9Hq{rY}3Z&}N4>(>@diG5A bf=X?QS$$`ZE_8 zjK1{^FI48mix=;Tik^|+{ u}EFgVPstI-1_S3DpbfeZJ(!hch@EL?OT#@ z?s!>~9IO*mcJL2I&*rEi`|mr5noVc=j@*D31j}lY?n`l!82!dC|LxJ%4Tda*|IUXwHO$F4UUCfL zO!p6|jQ0nsTw1Hk{*}J*-roj^zpIPFn^SzQ1$M3vX`V^=^~((q6xg}B*TX*j`0)ZU z<-iT;x|7|g|L>Qto=Ki;ihzo5R8v*caxJrWsSO|n*Ld;bMlSlWItRy!U{Op=tPJ2O z{qf_6c3^_rR&8~)@TB{wfp(=eg_yYbsnHcAL6H ^dIg#3 Z zmREdRjR$m@aozvjfLBi!9}VM8YPutk=tT|;W~TyV{yV|s#9Pct5P$#p@uLoo82&MK z1^s^+uvK8dG&+qLLR|oHWyI-iD6R`9@`5M5i`lb%Wta={UxSy+iMp`^HNRJ CnlG=as`{Nq@qY_O^er`%5s$b97{XsbvO~#nY>tbp3uMmCcXt1zcs6@xC46+F za@i9ywGAEhA6b|3l5{}8miI3bNZV&Yqd?ZAuU7peTBQ>Idn53RsAvfc2HQHg40v@D zKNRuj-Y?eh$7c+6(HF_Z=`tQqf;st4I^D?9sIb6GE76bFN-Jq!dw4oP-lJfsN@+@> z2R~U_*`DX-hI X z_FMk8$$jCb$*uPQ^b?c85Av^CUgyL4LvdOFBjLIy{&GCFaXD-h6Iv&!2Vd*37}L=V zT`M4U3pcxoOek*afj&XF}uR<7;e$MqS z*Fj((N7v<_JP8T;ed@UAzwrEf+|mcE@r$&LL0jK}a=~3IP0mq0tuO~^A6t?6xOC>O zm~}?-EH7qWnAV%`^n&VQqPT Xt{eU@8s&YmUe4Oy-__^3fdd(em z2#Gg+&rOIK9bKjwU*b9zz}$WMNUAR87Wlk(bdZj9#@|~F{m!>wl%%v0_s~)aR8gJE zZ~Em_5u$#dM=b(k*csxGbAEzGJ4(NPq``qb*kJa#>#t1Ez0EibKp8@CZKIY5X#zD| z-{iO#>@C&=%g|Ebc)l7l{AG9ou7e}7kYmG}x7;;(?q_ciOUSJ*k`=T 4@Ad`vvZ-#58w#o$2C`y0aF~et(yjy5hK4uX<;HiX1Lm-krUo;0 zxfbmV(RVrw445^ST d7FK`855pD`b-Sww7)X$djHbW``%>~3o|j3 z6e)zspm4m31mnRXr#Kn;gIM~5L0sVk0tfQ|CETYHI =6K3^^V(a^UeuzLVV( zAUuXdG-B(DKXYP3Vj8DGLA?thp^XJT;)BD(q0?S$Z@`i)3zV7z8d{M#IZbl{k!{m1 zb53-F*1y^rv_byp&$9VU`=`BSR-+zvGt<%=W5H820L{#8;b^n1uZE9GPpOy@hXE2z zO@t3+IE^;-BE}1N_qwudJzD5( =ZL4D{8isqAJqwTg%-7tUE8+yRsSpwn-n7s(=ks5NSZ)$e?mI0hK1h_Hh z;QyR}-BFBhExqxtCI89K$)jC%?aFj9Y`ZaGTUu3MTT+V;fE^sX4ckuuOj=i_E{~wR zp9j>IJceAe2E~)Nz321EQ-w(KA|U##p%00z<$VVGtok~FtodS%`NE(>HjQc;>5NhU z*Mdlt^ 7Z%OHWBTxRiRDSq?!|QDHaE?>@f+FB3k7fRfDJ9@n-qymV zk!1YJbfF?tMwXN*!!U@jBZXh8mms%Cz&E+0P4cIMy}Ye05Kwi3Qgb}ClsH{yS*Smh zjN_=EAm1j%qHjkIRgr Ak$LJ)7tBKfc8Iv~@`?9r%l;Sd2V8J!#0K%P`C^f9du+ujdrIg2}Tc(E>(< zgi1==!M?-MCF2wccP57%Bz?=iuAs<*{tCudH!F-wL4vO<=!LU0oW@NL;q-o3FJ7{2 z%(v*%r>;y$!`)B?zm_w=xxsnb8}LYjiN4yZrCOVEXDIhA TvTDsj6V8$Iea@q;)10ofwEN%h^>@|M>W4k!t*2h;%Zvg!-kf6kdNa!p zB7w7LxXW?29(chm6%asL?#JJ5;Ov%K+7?4L8FLzV%<#=`Qv~-ZU@wr8zAi;3L2SpA zbkJn=8Sl&xF>ae6^I4*yx7j z)ZB#{aSfymejRq2R63_Ob4)z#dqL+FnpC58OO>plkwBwqUSrbt^89FFBED%3@>ij{ zx=_s9 F)gV^eNn@MJ4l5iKPz8`=@0|@_i(+%U99-EWVfMfjoj~_d389R5& zAEYf oD9AO%(vjD%gJuvP~Bhfzi{!ePnKAY`<5L85zR_B85 zgRGnb6u+QjeP6e6WjYx{;EA-f(>)WBDEmOvlTzAgZ*&2g_TK@avUT394t+9PZrF30 z!z1E%d`;?iPF7vvbL=eMVHVY4uziweJywgeo(`z>yEjnvrugN3)#k+gOkzPKww@o@ zV4 Q36la_=M%K>+Bb?Nz zz8M+C_)pbBotJoGRc^HqkQVhYN1nB}pvmT)kTE{knYtT+N9T;z&!9mu4yOWAp6fuS z*=ZiseXfqlaN5}hZy<&4sQB!$m;dT)wH03)(zP5*W|V%MWn&?B#I{luk%nC-w4s>^ zS`sa`_|>@V)JbkvDm$J@Qh1Zbcx1RDamyKLKOL*L=c0o<+P7hHd#G6=a=fIe K_xpi(fd40=`W-pz9E@PxxKR4MwT`e5&f7wqA90GTgZ`Y3yAtl`vL|K zHeL_?&ek@L&FYM9ajBq{R&Z&e*^6 +fo5HtcU}mh{nDvOmb2xpu~nlWt{xigoiU`>V#a ofbGkdhngkzRu_c+ksS1{sK$rS^ebpp aU}L zs+r>Tx18{5c7l&J)A5IW{c_1Oc$}dI9v8<$Ct>5@W1mq{o{PP_qamZ*mJ~pE(YjsQ z+4;q=U2{(zwl1=6daZ)OHsF~3Y+0?I{DJD@y?(8o_R@eD#T>nmmyEpwSgy_=AFhF% zIU6p{wRhKNW<3+^J7kP*7bvSJR@UO5k`kdZ+#smxXpwiOQ`|=wWWp?*Gp9ACpg6sB zD)jZDslJRrGG&UBQwPgVy7VQzn&Wyn_xHH!DQ>vePLVckPDF-Ta^kEIMgvC-5OMkc zBOshl#YE8J+NW@;DFg&G4a=_2wuX+?xpO~w@L&Lgu_ZC Tqu6!n9e2MK%w<^V ~3{ zSz=WYeH_WY^#&>XPn6tX InyyXig7$Vy^uS(9=r zi<#7*pc#Uis=!|#$FUDB6$#(hG*axxsr %a;GEbVsAwSRz5H;E<_j)~y&oxFmU?sn>-;_xzo3B8 z`lac(Ss?P;RJKy47{Nz8!^$na(6{JwoWSWHL{b6+tGDv%hf{6*xy6(-bQ|XpQ8@FY zB9v^t@RRZ8h4+fL&Gae=YAv(+a;0wPL_E~qLzV6fl)wH_6P~2YM=^vF&VW%p{;{O! zG6(`#?XRQgv+PJXee_R%J91uK$v}an0*({>ciLF*cg511?Nct0zqPQiDE#~xe%%FR z>R2f5c+B9-s-dVDNz-2R pE0BHs{(}cko Y7HW=Sv;l{DVc zGBkXne^4n%6f54iU1f)4M4vMsPWh5;)^_D=c1TM5-pa!GlFygLD$_bk^DlL}Yp;uk zAw_oG53Cm$mA@YMu 5#(i+4SmDba<91YYvbu{o)ZjFcU>ph?l^OK2qnw3YA zZO~Wfs1gJgV!?|BWmY&khl(m2woPq}RbX|BF+*>PpG_xZIo9Ef8o5eN? n D}w#ScW5tJY!nSFGOFyW9StLgd(%udmIZz$!LyMiK znG>>ctMgOpQBw5rxh`SpJVME&ig;pgUGlK2-@v!bYAb7Kb86U{NKu)gxFb8P>71V# z-SUG7-BH|QmXw~Iup@Ze_@J2new6$BzQw#8q?4{I=`7!ILPog|_sZUEe9nzXu61&s z`Xac6J(JJSKTdNNMEt(brCbCAG$6--7$ZqUMWr{WTSY}<;F$LOQF5%a>$2$xw&(u0 z9)*kc=O`V-H7Z=^U)bsJ&}C?JgT*wHQ!N90)GqYPvN?61VbHVw+&A+uV)Mm#WaY7z zv5fO|eG+l?@qu_%D>h2a )z1B+0d1N6_P!o-nTZZ z>-3`u&4=fV?G2P@Syjt+zdK=0kgz)qPREo<%Wv*XPld;`OPP<*J`*_Aeej%098jVZ z+^vifT3FM!Zf5S tAG}{unkF6;2_H5vIP?vZAJ7dAr6{q)zNay3@VgH8E*9 zY=%~j&wLpGYWMT+AQ?l4@{5L0NXdn6chdHpg1BXE!o1!^LBWT3 3!<5@wESfUll_G4qR&cjb5_J4~12XUg;K;DK{gsSW4=xiVRy(;?*hYvC| z?aGC?;5vH)o&uhpdd-5fo&}P&@vD~Od`J9{`?nK1l2Vi6gGPxIAKh9%HX-GNIdJM1 zpw2$)D5;?pbVCT3Be{%>*pk1yCM9LQF=r{x(RUEnrA}a*2W-br*q&b}j@tii{uhdd*8c8^I!V~`|lu@$2V}Th_CUJ z|CpF~O=9J(-&h&{;q&JnhLPkky?#Kg0kTxn$+4w%8N;n_$P@7@tfuyK?}*RcJbd@5 zk+3T6>ra7-PjB@jV!+J|L^013vBbzML5iXNX43SBu(;@82e+F4gRyT6jBEYAZW>!{ z?4(KBq_J%_Y0##zZQHhOH@0n0Y};(?_w?d-@BM#z&xe`$FgWvI@BQq(_FAktm37$o z#~0h@M07U-BWd)oQ`OxtqK`i&BbK~6$;@-=Ppz Ia(w m#4fZ%LK#kq@ed^aHmb747t zh=0HP?i9J^`h@qw5#fdJEdxU}D&yJNS}T5O8nCAE4NFRd qNM(Vo(m8SuABkt))kpCXnAcn^yEN`ycVl1U zP?J@ghZ^?T%<$~GYj3!JJBWZSrG6t!?Yh8(`2fy; rLwUK ze}%d|-M)s!v^yM5{zg1TCNU0>_V$RJHboCucqLiE-# Lm{$R}%Z*~|3Kjx~63{-bXN@I!!=XdlQdd_OqfQRa^Fz(<{cna6$YK#3 zA1zgiVNw*Bt9IiM(&LXE+k;7Bd=!Vn_Bl UpTQRD`8Sp={;45k1`X 2r`+w>4AR|SV-h@U?9iH?b?FNuCB*^R5%lsG=ntWBDgx$@G{U?^<9BpM3Kf0 z*$k4e(9}k2;>3}Cc`!ac3d=U1W0|%W9#?C}E>?F#3|TW2IP6(yIL U@2oMOB?&W7dQHCB+7${pftM5)jZS zNZLmaW|V97gi^bT2SxLN39k?DSZbT-Z<3KWh7Rrrv{X44!~GYHO;_Z?kS>$Vzf#%b ziwRh%lRT+InLh^e0S Q2Xk-hrd U8%u3yY4l@? *RATbhhX?PqO?qnRKtE$+#9ZcZT+ _F7+OX!#?MOh+)FM)m5U4iz`=DqGQ;Z+C#MW8K~C zGLej&pYl(xgLwBPDcq){LzVlcR5fe`Kd)iOhH+!Q7OMD%X whAUCriA*mGa6l>{x{B8-%F-1ux+4L FG0T#@ z&j>N$eIQo--m`bZzOJolelK#&voAb)Wt7PM89Zv&_}J+gQJw}e(G6s}-Hgw-srUsi zBjlJ5w`jOdr@!y>eA7?3(if{lhbc2fTYlmy^t3?BR~TKQb*rwqDsUC5A}MTzZq{qL z5dhmb+wGQ5`v`>I*7ov$cbDnjvHxz+$-_ 2gv#S3-p25|%~{ zbq8qPbA{rvjviju0 ;0=v6g~%yf8mR4?d@;cIjXQ?w=7c;AoO*0ui80K0x)z# zX+k4E){l;2OrNOvAQsnaORAwOb9T9PGbVrDv3-b&W`q*1-d%5*Y@{5$=uANIT-)-V z>f8%cg6AT`3CnJ5T!4#bpmgjCqtbVWc8TzF9>+(xg|u%#GI5l^T-HzGVN9A)85;?K z;vApA^`nXmh5!I?xr4E9NV15Unq5$XQg#|$#UzkAd{CO$-svradvsXr5-zJyg{I$_ zL+F^_p-T~f9_cdbovZztCuZ;u;fvT?#l$RA?4VJDo7NE_BKK`b^oJPd7yMQep<%_% zg`7c;8wE Q%574hm}|TydCJAzbrQr) yg{sHU#;XVzzvWsMN!3R66>OcYzCGT1VOJ%%dyCMJbPHNj zPyn@Dhz%T@=r vCR K`3*P80cM}qxxzTTx;4jso07VT^~z z00c?V{hhqjr%Lmx{fzF2?(!D0=fRR&x_YE-r&2WADdLFEqfLnboOkWj-2>{brKwFl zbT-2Rw4HX(;mXT$&v=BL=rP)FyKt1%J=@E-lhvV0L(_6e+Tgqaq3cJot^>wy@l;Wz zNuYS+2BuD>p}&9-%%I_lv6`g>YH?c%Iym+i{Dez$25O`Zh@ZHn2%y0qSCaj0b^q=v zj6$U=`LT%brl!7L#f$C6Q0I&e$*X(rD@H<8Vxr;m=-v!{hg}tan|v>l@-J)~1&bmX z!+kEgK(sJrFf<1u#H4#+pec?a|4UME;nWC|-KYF7>AsuU01E6w*HJKu_AaloOnA4w z^=9?Xs(B8akMM+H58N;O o4(plm)%rjMiz&1?*9)}kl(>a`Tgj^xirO+0U zIAVZ|_>moE*ng+b6AwIzx|uZHgyN?nUX&)XbCVAYeZ}0|* aIW`b1YSz%pi1d5j<(D#Tp~U21{Z9&{%qV62#qf7sF2mbs8KJVs+ZMmt9dY4##Gt zI09%utF-R0t#LwL4zJ_6pfOnB6~&DCai**L0m9J?`h4Ns?-r^fTQBD2|BK9^{S8al zz!sg*%nStkd9l@>lbhQEH?S}!t3yi ^iHM{+eTK{rCN9-0q!J)S1O~QA&`1FZTJo~pQhenW;tB#NP@F?P`DBQ!rq~dX1 zhK%+le*a%=q!JBd2&li7?glfkbU7*e34r{`NTstm{Xh+X6E`s&29^?)W f{m0QFN@|9KeSiwPQ)PtOxie+cmMJSK8Nn%v0?X~`5h^yo^RZ2xL;6H7)~{|A z78W);9(QtbqVSdO1_t+(K=Y@Gra2MR=5gkS3kTd`o%P&4fY1Q=H?aQ$IU%$Igc9@> zeS68EM0#*xVF2e5*t%kWJg)`Wb-b$CqnXNmoc%n)*4DqObz>Q>N`MR2kh)<{4zauM z_=|^5^AEHQL+Zbh`4*27Df~<~z9~T0ZXb}Zg 58N-TQsx?Wt zR%M5ZfP$XCV+FTJby)A26Ddmg8=Cn?%6OpAeiBF|y^d^MXf8Kc0pSVBTdz0DDk_yW zd(tLY!&% t2?6bzfayI3 C8X6I!qtd`m&dkn!3m~T8hW 2Pio z;JEYyP}U=Co5PR)#$l0IyH2nC+eixi|F!L>jpETby74%!NVAP)_TRH}^W3?*-? u3BzLH@J0)ahy8D)FD0w&t+h z+1_@of4!|1pu_3`2!;HVs`ZKA!Ckj=Om130`Emh&?8svULv(q=tN+Mr3{faY|HTnu zG@kjcyVaw^f51^!UyrC8Q*flk?u!+)Dgmu47;g(f^$1wZ+>tk_etf4N9 rBXA6A_MhdSfpz$S=>3T#ea~WmjL`?f&er `Nf++e6I4X(-e!xqk-;| bTl4XH zDpk(q@5C#`j}alnu2zq3ZdzZ#{NH|*d&~cZ%xlje0wXaktxj^}nCsF*V=3VEu@T|} z8X6tPI>*Uc4PuZO0_N*)AS+1UdSt@U0shZLH4&>FG=?y43%%J&VRbbldO`RVuXj9Y zFbo8?H*SUJd?fs|orey?hG2*m>DMgla)lyo|F99^CN>iRVI59J_ETuW<_VGOA s3I3w5)baYqtG|W&(bC-wvb(>iI#19# zL~$qDp~p*^Gt+FEkdzz6gPRuF^o{zHB!}@U7O5eJJ6`_{zOdPM#KW&lSt^7f?xyw) zTm)nvnnkHf$g$Q9lMyc}kik#v3XXn7gyFdnX~}0u@;axi_A$QRkhV+~q+~STo{?N* z2L+&F8;Y8#QHV@4p}WG5^1Gqw@L#dcWEZjqicwo7DS#H%zhDcTj2c|z(7yUSu(rac zv^{)&8g6g%5(#)XR!4iS`@^dJ@nD#ZH3E7A$|ptL7n~auoR^>R8-Mg>#}_Gp#z&;E zTo 25HZcaZ zq9)Q#2u3$&1FlNO9sSE?lG^+lnn18*>D)XXHA`)3*;at1<)gy!d@DTX+Nu|~3sN?{ zZm877MlQz?&36}j@P`kv{$yxSs?y;8sH{H84IodqEA0IjoR<5Z^7CrKR$p$Z)^pA) z*yk;}+YBbXkMFhQl*J6jr~5hIzG{*dtu6$__#E1B-;6wp%f~|j$aLcuy27#aZxM@j z%o^A9Eftw(n~~3`Y*z11+yny?sCzesLu8Z_!yLPZ9dGVQ_Ys6>qt;XY86t9T@h${9 zaIh34wdAVUT{2MR7Fq5`Nqqkm`kR&(foImnx2*101j{vK=-A$Lq;#*6aAy$>nxD#a!2q2Rp`cRfTW><9m`RPh@2 z=?a1*(Bm#3 dWdymKJef(i5o8vhfjbwimRvI||zC(hRo*yPl@f7Wf*M8K`i>GD^S#)Y4C4L;Z=*Mvm zU7}6pz~Y4bE_>tJJe)!QaX!pNldqX=rRZrZt@{XUUjFr#4cxw3rC7rXu{!+X9CXtW z>APD6W`_Xj4KxSG^!TcOdIh|B0z5&jRgfc0XD3o>NtvjM1MAx|u6?%|Lt}G(c@x|w z(M?Y($U!U-QIOU2AOq*(1a8br_cYIRspIi6(`PSBCa`7-{Kk98fiZEvC77(AyI4qP zi@`o>vOQ*l1EXJAx@#PJ{Bw2tp;=5mo|!pjB7&F$EGHYG>bI}g_XqWvitWtJa7Ct1 zeK}_!S6tg?a4EA=+#pH=W*&--l9#3*rzZV23Xl?55zRjb8%{@*#q>{Ld|&$X-o44! zS_{FU& *!13bJYhl{;OF6Q4^;3i+uRX$ Mn;Ejye81*XxotV^GXp#t!9>Gjqj 5yW7O2wW|eZoxG2D>`j@SqRhx;Ta8ndb;NT!G z Tqm74=#uslJEfp6TB73|9a(0p@0QP&HxoWz=x+aH?|X2pA?6wP zeV`%qwt{Xk7d+8f_-Op-y;8uv8XWmhGHk8NE tLg=o2e6FIMDmyy;P;)cE1WbTBJ{VKRk+e4D91T h_)bV!qu;aB%thG&+P2fQ z6CehcKO5+ K}Y_ecAInF4Z?=kwwR_+wB3i>#jm9CVIu>_Z!V zRa)DD;YCe6+py$xssc^^w^`(Jo|9hn=RHR*R_o{P$F9$m&Ojr*+P6^C&snRS*QdSy z<11~rU!NXr=B@To!oT5nXF1$tX%Rte$C0oqnF&@vHosn`IJVTk9o{n_S~>CTHth9E zAn5)|=!PkUO=WrFP1dtzWr$zC1^xO9NdR6#Mlluk>o@P>sb27BEUr5Q_lGAIQ@1@j z>2LTQ&5yX_^9jCjKgN8hxI!Q12s_Ky=6zbBBR1z>@aLE4LQxHfF)*F9=CuPwIV(;c zHM-?j?#FS~y4qGaE6mQ^Tbk>kC^(K4E1Y>Ir&-!Oc+(8%=9K+P`$;K3<9FUrX!LVF z&KNlC9kESrc}F$F>?|Dmp_vL#yK}v8xL*{59B z=3 z_0r_-y9ug E41l>V7 z(3P+A;&=zvT1r96to17hXWlLz-h^gm-JY#5N4q}-+(t4#cn8|I_?>xNvxicv2Sk_X zUe^mGSH``U%gD6E#F1_bNl-WK?Rw-5V`hiKGgvtTj#8N6op^smtJ5il-PTMW&;msT z&m->E<+}sFau3llc%yp2WEtYgA=m~3GWAxS#BRD_VH|1G$F>`e-wB^yARB%KJ1Hj4 zc-Ct;;_y1vVlLde!LHpu@NVG}()z?7da0)dP#dsRMK6mDA&}r<_wkkc`sCP5p^M7c zF@(0c<6j2b(0N=-I7(uWP;hu!-YT@%lld3;LMJ2I_rrv@UqPt5ZkT;LQW_W-;FnfL zV^GQHjtL;ef-{PA739&zaScqI;c)^^iz4UmXfubDJddw*9iyXB7oW-OXYI4OpVTiy z^w*t?vG6G_{II>7xXv5Y^s7@Qd$K9iN h=+*GJH@RDNAm}6Xm=0MLbg8^PQNW^sHl@E#pKA*}d!Dk{Z`^>tyDWDF zfBltqwyE)IL|SHj++Xf-N9b6#3ZB4-TwL}^@J@)i$(!GIJ6lnn)cMhQ94$g;y9d_x zC}+oOMHE?wuKrDuF)vy1o;19 CG{y^VhGIWRL30 z&jzo-9?vhl>mkT-q Gx$0_vNLk-}J?I&9c`raF7e }l@QhGf=G zXX{wPxTi?9o){Oss9&eoWq*GBq*_Z2)-9H~dr-c~n~u--@c9+@^~!BwZLNp*c|%Qc z?F# aSfA#*gp8MUiq2&xx@bl@wbXc?33KNRl828LjVO>JSd+9|Rz0J{uCprxl!d19o zm(e5G<8GI5y&4yz13OT0VxaMZcHq%R%Xh0`YmFbkn=t%oBYofh_$=DU>09Q{F@0n& z 9LV3ZM5P?Euw_ZgUeeg$EN{ WI=7i3|UOrZ<>`!rwT2tKoqLVJ>8J5$yVGFrVj#&Q!`aK-uYjX{Ly6&i6xwx9Kg*{EW~u zcWc4fKL15&y|xiGQjP(m`qG&|F9mN 7-YbQ? zMWt~+ xLH$-VIZ(!BC!C;q+1OQaOI7Wjpdka2_QUwE*h!z{uy$ zs-2`jKT_*&Mp>Qf9J>bTSQ`vF@E<|v}H>(oK35M xctv!J>iZ?7SerP;=v`2nG zot!bzZKB^bnWm``zn*G{6#Dem%vkxFj$ZCWmsN9kSfngDs+LEgHr+Rr4=YLx`Ju^< zTBR1xp1IZZXJGH XoRb0*&qpYvm3bwMcA4t<1-D{qkM>Zn+GjXY8cEXbAV;;en z$MxC8>+=QS2J*|C#+HVAD}H}hS*0;My)t`ZQVMv$l$LpQ<3p9#E=xF%hn6mqF|RTE zz~J{s+0RSL{?z)mVDz=^592d<0((>%{cF!N8CzdpuEx%Ld0*D %_o}*j z {)R`@cVv9gqky9Yw96CMjlnot2GzvHuuWdx7wA%zDs zmj*PVVtn?C<_T*ct>ar*S)00r5t2UnJ`mpt{&lgh1WUv6Xl13&w5`9|kFz*@*uu!E zY5S%4tSXY=rbXpD6{M_*1cdfxv>yuFB<+0Novr zWqFjK9~mDFHm}GLL5SZ; zvt^liF;$JD^vCsh*hQwI0`Df8PoVGm+wUFlG_Ky9zCQEzC%pW+y%+}#%Niq-IxoUc zFMVXJOf@r*hBeZ*Jr<2ohE+noM<^iNya;qYQ&Y4)%h-VTI2XOk;e8N%+8}%(ep!!r zed}@U;NeUA)Hg#3mtH(6>*hc0N*2of3}m^D>-)8387a9{uHHu+Db~62JejE(o)GY9 zS0Fz7@YK+>AhGU+o_ILD+9oJT{fsz!lydX`ka>f3_$>1pEA7Ul+tR2OKQR_%`r@*+ z83-{Y({v-U{OD4z E;toywvebRI=-?hI2wyJ9|3y&qHs@~R*29wmm$A~Y`? MG@x;sPtM5-i7nqWn`p!MGBc)5nR0jwuIw9@2)i(WV;{MLd)ziIRTfzjFpzmh zeJZyxt^O`ct~FHXDd^4 EikX%6~p5)j~6h52N@e*Uyr|@_tLKV#C@b; zo30vtZ%CF~BOaen(P`PZF@dk+HjWMCYZ5Kta|}Kl9e8HBM8)Fqfd=)(Fb&aA25nfH z@dclK49`phcCSfRmMM`H%2Fd5Ab3S@GrM RrqI$h@vfppRYoX!QqJF>=g zITicGy1_cJrnso!>3!Jg`a>AMTx6bFn#0!EA@Kl7LF)PN9L|Vr+9QQ!YY;<;x +ZA)L#Zx)zdKjhu_$=cV#MGo<>E8Vw^-VaO<{Q1whC3mkV?nF zx3L&`oleTt>01M0*Xf7$PP`=_O)VjkEwhKiuTrUX^%_t(OKU8@a6$D~rBn! 6op(38P0~}xGQJ_fVlyuDp{9=NcM4_rAeyk@Km-hhFD>D^HN9C%%cmZJCRw9uU z(=f0?a`LKyWVZ8otp%$OTm&x1%%-J>J?onINNsmmbxcQR9w$y>1s=wu+dz}1@|(4A zjjel9L6{{~F==Tp3e|{1ALz=TD`D@CcDqqy#K^s-cZy|pIm6Q|()cnyLkeF`W^r