From a0992c14fc360083ee35f052057e7c79bf1a7361 Mon Sep 17 00:00:00 2001
From: bob <312777916@qq.com>
Date: Mon, 10 Mar 2025 17:32:08 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0readme?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 145 +-----------------
.../nacos_config_export_20250303203503.zip | Bin 2868 -> 0 bytes
doc/image/img_1.png | Bin 446730 -> 592660 bytes
doc/image/img_10.png | Bin 148476 -> 0 bytes
doc/image/img_11.png | Bin 138552 -> 0 bytes
doc/image/img_5.png | Bin 67753 -> 0 bytes
doc/image/img_6.png | Bin 57136 -> 0 bytes
doc/image/img_7.png | Bin 56823 -> 0 bytes
doc/image/img_8.png | Bin 45725 -> 0 bytes
doc/image/img_9.png | Bin 13309 -> 0 bytes
doc/image/qq_group.jpg | Bin 0 -> 132847 bytes
doc/image/wx_group.png | Bin 437727 -> 134472 bytes
doc/image/wx_sponsorship_code.jpg | Bin 76084 -> 0 bytes
doc/image/wx_sponsorship_code.png | Bin 0 -> 198052 bytes
doc/image/zfb_sponsorship_code.jpg | Bin 330435 -> 0 bytes
doc/image/zfb_sponsorship_code.png | Bin 0 -> 183309 bytes
16 files changed, 8 insertions(+), 137 deletions(-)
delete mode 100644 doc/config/nacos/nacos_config_export_20250303203503.zip
delete mode 100644 doc/image/img_10.png
delete mode 100644 doc/image/img_11.png
delete mode 100644 doc/image/img_5.png
delete mode 100644 doc/image/img_6.png
delete mode 100644 doc/image/img_7.png
delete mode 100644 doc/image/img_8.png
delete mode 100644 doc/image/img_9.png
create mode 100644 doc/image/qq_group.jpg
delete mode 100644 doc/image/wx_sponsorship_code.jpg
create mode 100644 doc/image/wx_sponsorship_code.png
delete mode 100644 doc/image/zfb_sponsorship_code.jpg
create mode 100644 doc/image/zfb_sponsorship_code.png
diff --git a/README.md b/README.md
index 17a19fc..458442f 100644
--- a/README.md
+++ b/README.md
@@ -114,138 +114,6 @@ Open AnyLink是一款面向企业的IM即时通讯解决方案,旨在帮助企

-
-
-
-
-## 项目本地安装及运行(Windows)
-
-### Web端
-
-```shell
-# 克隆项目: github
-git clone https://github.com/GatlinHa/open-anylink-web.git
-# 克隆项目: gitee
-git clone https://gitee.com/lijingbo-2021/open-anylink-web.git
-
-# 进入项目根目录,执行安装依赖
-pnpm install
-
-# 开发环境本地运行
-pnpm dev
-
-# 编译生产环境版本
-pnpm build:prod
-```
-
-### 服务端
-
-#### 拷贝项目
-
-```shell
-# 克隆项目: github
-git clone https://github.com/GatlinHa/open-anylink.git
-# 克隆项目: gitee
-git clone https://gitee.com/lijingbo-2021/open-anylink.git
-```
-
-#### 安装Minio
-
-- 安装过程详见官网指导:https://min.io/download?view=aistor
-- 启动Minio:在安装目录根目录下创建一个bat文件,然后执行启动
- ```shell
- set MINIO_ACCESS_KEY=admin # 用户名
- set MINIO_SECRET_KEY=12345678 # 密码
- .\exe\minio.exe server .\data --address ":9001" --console-address ":9002"
- ```
-- 登录minio:http://127.0.0.1:9002/buckets , 账号:admin,密码:12345678
-- 创建一个bucket,Name填:anylink。如果起别的名字要修改nacos配置
- 
-- 修改bucket的读取权限
- 
-
-#### 安装MySQL
-
-- 安装MySQL Server社区版8.x: https://dev.mysql.com/downloads/, 详细安装过程请查看官方文档。
-- 注意:nacos的jdbc配置为:localhost:3306,用户名密码是:root/123456。如果安装不一致,请修改nacos配置。
-- 创建一个叫`anylink`的db
- ```sql
- CREATE DATABASE anylink
- CHARACTER SET utf8mb4
- COLLATE utf8mb4_0900_ai_ci;
- ```
-- 创建表,分别执行sql文件中的建表语句:
- - [anylink-groupmng/src/main/resources/db/mysql.sql](anylink-groupmng/src/main/resources/db/mysql.sql)
- - [anylink-chat/src/main/resources/db/mysql.sql](anylink-chat/src/main/resources/db/mysql.sql)
- - [anylink-mts/src/main/resources/db/mysql.sql](anylink-mts/src/main/resources/db/mysql.sql)
- - [anylink-user/src/main/resources/db/mysql.sql](anylink-user/src/main/resources/db/mysql.sql)
-
-#### 安装Redis
-
-- 下载安装包:https://github.com/tporadowski/redis/releases, 安装过程详见官网文档。
-- 注意:请使用默认端口,无密码,如不一致,请同步修改nacos配置。
-
-#### 安装Kafka MQ
-
-- 下载安装包:https://kafka.apache.org/downloads, 安装过程详见官网文档。
-- 安装后进入到目录:`kafka\bin\windows` 下,先启动zookeeper服务,再启动kafka服务
- ```shell
- #要先启动zookeeper服务
- ./zookeeper-server-start.bat ../../config/zookeeper.properties
- # 再启动kafka服务
- ./kafka-server-start.bat ../../config/server.properties
- ```
-
-#### 安装MongoDB
-
-- 安装过程详见官方文档:https://www.mongodb.com/zh-cn/docs/manual/administration/install-community/
-- 注意:请使用默认端口,无密码。如不一致,请同步修改nacos配置。
-
-#### 安装Nacos
-
-- 安装过程详见官网指导:https://nacos.io/docs/next/quickstart/quick-start/
-- 本地以standalone单机模式启动
- ```shell
- startup.cmd -m standalone
- ```
-- 创建命名空间
- ```shell
- curl -d 'namespaceId=dev20250303001' -d 'namespaceName=dev' -d 'namespaceDesc=Development Environment' -X POST 'http://127.0.0.1:8848/nacos/v2/console/namespace'
- ```
-- 浏览器登录nacos: http://127.0.0.1:8848/nacos
-- 导入配置,配置文件在:[doc/config/nacos/nacos_config_export_20250303203503.zip](doc/config/nacos/nacos_config_export_20250303203503.zip)
- 
-
-- 修改个别配置项:修改这三个配置文件中关于本地IP的配置,改成自己的192.168网段的本地IP,修改完后记得点击`发布`。
- 
- 
-
-#### 启动服务端项目
-
-- 编译打包
- ```shell
- mvn clean package
- ```
-- 分别在单独命令窗口依次启动6个微服务,注意替换jar包的版本号
- ```shell
- java -jar ./anylink-agw/target/anylink-agw-1.0.0.jar --spring.profiles.active=dev --spring.cloud.nacos.config.namespace=dev20250303001 --spring.cloud.nacos.discovery.namespace=dev20250303001 --spring.cloud.nacos.config.server-addr=localhost:8848 --spring.cloud.nacos.discovery.server-addr=localhost:8848
- ```
- ```shell
- java -jar ./anylink-chat/target/anylink-chat-1.0.0.jar --spring.profiles.active=dev --spring.cloud.nacos.config.namespace=dev20250303001 --spring.cloud.nacos.discovery.namespace=dev20250303001 --dubbo.registry.parameters.namespace=dev20250303001 --spring.cloud.nacos.config.server-addr=localhost:8848 --spring.cloud.nacos.discovery.server-addr=localhost:8848 --dubbo.registry.address=nacos://localhost:8848
- ```
- ```shell
- java -jar ./anylink-groupmng/target/anylink-groupmng-1.0.0.jar --spring.profiles.active=dev --spring.cloud.nacos.config.namespace=dev20250303001 --spring.cloud.nacos.discovery.namespace=dev20250303001 --dubbo.registry.parameters.namespace=dev20250303001 --spring.cloud.nacos.config.server-addr=localhost:8848 --spring.cloud.nacos.discovery.server-addr=localhost:8848 --dubbo.registry.address=nacos://localhost:8848
- ```
- ```shell
- java -jar ./anylink-mts/target/anylink-mts-1.0.0.jar --spring.profiles.active=dev --spring.cloud.nacos.config.namespace=dev20250303001 --spring.cloud.nacos.discovery.namespace=dev20250303001 --spring.cloud.nacos.config.server-addr=localhost:8848 --spring.cloud.nacos.discovery.server-addr=localhost:8848
- ```
- ```shell
- java -jar ./anylink-netty/target/anylink-netty-1.0.0.jar --spring.profiles.active=dev --spring.cloud.nacos.config.namespace=dev20250303001 --spring.cloud.nacos.discovery.namespace=dev20250303001 --dubbo.registry.parameters.namespace=dev20250303001 --spring.cloud.nacos.config.server-addr=localhost:8848 --spring.cloud.nacos.discovery.server-addr=localhost:8848 --dubbo.registry.address=nacos://localhost:8848
- ```
- ```shell
- java -jar ./anylink-user/target/anylink-user-1.0.0.jar --spring.profiles.active=dev --spring.cloud.nacos.config.namespace=dev20250303001 --spring.cloud.nacos.discovery.namespace=dev20250303001 --dubbo.registry.parameters.namespace=dev20250303001 --spring.cloud.nacos.config.server-addr=localhost:8848 --spring.cloud.nacos.discovery.server-addr=localhost:8848 --dubbo.registry.address=nacos://localhost:8848
- ```
-
## 开源项目免责声明
1. **项目性质与保证范围**:本 开源项目由本作者开发并在 GitHub 上开源发布,旨在为用户提供面向企业的IM即时通讯解决方案。在法律允许的最大限度内,开发者不对软件的功能性、安全性、适用性作出任何形式的明示或暗示保证,包括但不限于软件无错误、能持续正常运行或完全适配用户特定环境等。
@@ -258,21 +126,24 @@ git clone https://gitee.com/lijingbo-2021/open-anylink.git
## 交流社群
-
+
+
+
+QQ群号:825505574,微信群有效期:3月17日
## 如何联系我们
- **QQ**:312777916
- **邮箱**:312777916@qq.com
-- **微信**:wx_open_anylink_2025
+- **微信**:wx_open_anylink_2025(扫下方二维码)
### 最后,如果您觉得还不错,请 `Star`, `Fork`一下本项目,或者“请”作者喝一杯coffee,您的一次小小鼓励将会使我们前进很远很远。
-
-
+
+
d{qU!Ff1vfd zQ{BkAqPd5L-E>W$pA)kkYyBmE=UtE?skO7kTm~DUYlTwkaCV{JpQzPc2Ho{3UTTen z*Zi)4GOK3#9Obf1+$)d`LG2F4qI;Z5l3J79ylo8sZ|KFB_ z-O&`Va{Jr$Oq^;5#QV4FS~A}~D5_)WqIU`MDT@_HYblAJBEOOcYk?_^j2eAjO4@grbw4!gV!ZT>qSz(MMio;&)nGhMk1c-@at zr)CKS%qqgn<_!^M)}m?cmkvpHnGKQ0%Z{2`h|;D0xvFM`J$)DQut(I2HMe5_n4cZi zMLjm_qL&qnd h^{A-}V?t2hAPjS-Hqh+n)88UXTQ zmMxq`+f+bpl(HIhR!(!tg)t_ i_(Ea|nKTJvP40g*v6~iSLr|NyUindF=z3y5D!zBi)K9XQN%&2Fp zv%7(68P~<)D5ndEN)Z+-_kgTmPUdsUbJI11GefPOwPUmvrUy#ge(@{RBf*Us(qXy8 z3|+esc~wJdS3%vThA>6th%T!0tpO?R$AHgU6_*iL!82EoY)GN3(iz*)sAVad3YN5I zS~Moy|CV-S2jyKhY%V7h{Aecvg%pXiM!y#8Xl3&c_|FFH-HB}NAsPTz_EOfg0+Z=o zYm*ImG}&ZJaRvFANQ#ceuXMG1SogW)npFjaoinS{kKt!Ft6N1x3^!+HT)HlwXXM~} zQ720L U+eKIH+erdDop!h`lyYJ)F``!;+6| ztp)1}Aez@53MwC*nY%{jdVa1!HRWem{}x37-?To5uTMi$Nm5`5L`fyQ2Y5Hz3P$IH zl$ncu$mokivcR*Hf#u$JwV>SeRj|oPC>64-R3KWW*>b2iu9pAy!Qtdh0r>wECAbnG zq5+g#g6Ih@X btxQTNh0p6YC*Rh(tno#HTn+t>3-t4u13O z*eWw7WuKB)XW-N|Yp!hlnbPA53d!G(G;H@(FhMWn2>T}Bv3=aob=cRiq$2DERLybr zL(fv4{G;f7Ev9o(*lq8u4RC|&f6xDC9J6ej!3s^ReUB*7a8)7orTiVVLCF;fXZOU8 zq*X*H5vh$(YM +hilo $7+8xPo(4uk5Ey4bc$?kM?vk31Pr8A13Hx;UaxZGy7ic zT @7sm)gnU88yWjhDf=5oK2+q# zKVixBD6gPZ3K1~F>S*90rI5Kq5+HYDg5axf)l9{9tI$wBS&0UGoL44ID_&@-S45V& zYH`0>xZ>WC@fSN1E;{);s{!Yf|B14{R%j21o~i^5=Lqk09($aX(3O?Z-H36p5K%IG zkS+&_63qFF)gW54IKLv-q1Xqh=1KaOr#8bR0bkErVGx^7DEUt+>H%qmY5d%NTOD@g z`?`c V@!PoxRW8iPi5B;|%nY{xKeL{c5})Tz^I}6b4;- z5dpYRvaZ%ctebApCqdU^p{oEN9PX8C*!rK}Tqcui4}QPKeYNx&?2)NFEz0n`oa^68 zUd=?2@^-TCIgklxzLM`gvMGMM1Q$oMjY82<@GJi32 qo;Y_`%5yg&fLJcTg03prn!j`|BaN!( z8gfPvE{=BGtWfq{cE#M!bYYnR_ooK6BHy6*;he<{MTM7A+Ba)M<7*XRfR@1 CaSR*Z8rbvDjxK) z?!7PyOKT}9^a-45)ua$r*Vur30J9TJS<=*Yw1ySa;E`PbiKsA27Rf8x_6XRh3yzXFg1%^|*!rZX1 z;k1cS1+ iV7L*_L`CwH0F_~NN<$6-Z zIgVhUY5c{bf`(ZK)4i{)Hzh5|#Mdph@W>W9fl4G_ws!c~H9Z-d@ZmGBGOeYX!(D;4 z+{lb`BWbl|8j->aGtGU&p=DIPTHz=P*CpT{=N@OTw{!;l 3h@VC_b3we5SXy>!x82CxlOJL@QVbIhB>)-*RR7iM0%10ihbaC#c_ z%)!`?MT`OduWb`~#DphrlhJlHpUor7Z&7_i<+UkT{j?O_`QUN}L3#iB_ng4pM2bCM zKcQlYS}gS+5t2*NJ?n?m%6EF126u<2^T k=Am5zc!zIrW vI8eip=zdDq-FyICV^6~Lo)7aeWCI5%nB3EfB~LD*zNfqSWCqjpyx=lbsrcw zj5`{-I%drYT<8~fDU)DzQh1)a*u1jZLyn38a?f9q)+RcpX* 7}xn3g-b zGBb&7wDV$Jm7K+^`B7qv42x{Ym9r!xp>R9!iQ&|r!NZ#wz=8%#J9uC#D{_MC3#A&M zSWD#0n9g5#U9dQ(iaAIqtJR17e)o_w-I@LkIGVsn_MEeb464r&`XTfA4};?;-b`%l z{Z;D@4AGdO6XSsdSj!Oc!(Wztv1#`mrzfj}w~IYjR`WxS&Xd$W!`t0ars1dT;DSP; z+vzUqy{GhI-}_JL8|QNqrlott$+OMto2au(>qi%}(;1{V&G7dTWA4KH5F>q5@M0y6 z8gpDsWem%(y#&Wvh|opx{wXgh2h+Y}wd?T!d;8!4ZSts$o&9jM`{r@>x5w0^3hAAJ zZxY@83}&?RaA71hAEaB{CoVq Sw zWNDiMxB@xZ11tEz-*OtS>jW|A->;L+tl7t88qNU(TDbdd=pMX#t%q9hM|U=556M<* z?TsU!c %pedlA@!gWq8C6QAD6fu;prtds3O3akPyQ61VbV)9bguM%C z+pIiMz>u%a4*O0Hb!k0jDcX1u*P;D5Nj-5CkkoD}7S#^llDl%egt!c7dNbg_CP z0DumNky3QY8BXHYkI30icIO_&4%`1slX77B0oLRQUPCEcMZ>tSj_f5`B6NZu?)JJg z1yD!;ioNpZ?X;1g$Rw*1+5A<=ewLIM6ea%jqRz>Y38+5u+vW0JC_6aPzw@PJv|<0E zSH92Gh@D##TN?8SB+ wb}bPurSk%Mc>EquA;n4fXz>BC*nivU%h<_A}}t>p(|-|#wtx5?el+`@xEd* zVV^il$fAltmoIi8HzNOzLJ2#~)uWRhf6mKYGhf2|hN_>D A0(jJu!4grh i (9KJgmH8E0f$Xl@l(T{*D z0?Q-4vJATYc|w*ggD}>V1*~e-(U)eHOj3@E0-Rgat~YJ`Bx`YTpEES;r3{>GDTkdv z&7uBapNk?qM&O^CN_n=cWqJiPByGF==$ePm6OD>Ou%KJYD-eNG*3#?f&O_3BT(SbC zyd;idWr?0EP&AF>q=cJtJqQ}Sw=Z@ruJUE0Idn;dhRC50J1<=Tmm%E-eE&&SF6-YC z0M<4z>!HeXlArR>9HOs|XeY#T=yn(Cy|Er^y}}nf7>2cKp%p`RFg!hjL{zdRB5nd9 zu+w;cK8DPdPddY4rPS{u6eSvHgo#`uH(cSZC(-?<(s}Ye` 9(uCuUJGNNts3vzZ`fP|AU8xZv}sK L7^rKHj5#CL4oI&~*MmLdsU{#8X=@ rmXgWh9&G*p-LM zk8Gx)GWPA%&WnUZ#;}eQGMYWj_yMwZ#waKa8f8W_V?Rq~KZT&7+xt&_AyCIcB6BIJ ziR@;`Or`QuiH&=Js6&E{RGtVj2s0l{5dl3(`9RM1yPSj^dPX>R@#eamu<#C$>+#U^ zKo`FbWu4&(Z}*0-us@Is5`X4dqA98mGGzMgkK=b EO6&@WdvrN z8B_TTvL*7b1FuvO;WA7WVGf^7@7>_#D@AA~5BeyQxZHYZxALu0MF$Gb18dK{R0t9P z#|%ZEDl&vWjd!lZX>ra0HE3lHaTQ^{%TcN9`!s3| ;b6yfuV)THqxqR_L&e;wRi`d6g$7+h0V=G~w>(IbBX zm!zyiIko13uJy6a7%Lw6FX^Kwy%bUfx*w{GZXq)Dhv+3p?9_;hcdPlK?66QZ_ZZ}1 z-BmT`+Vffrbn6T`)SkybF?HhLN1^$qQ1p>FZ#bt~^&^`QYenL!KTKty(Ld$k9eoxA zz{wQgkelrO0eKjt4R&?asanvmF^Eo0yHJyIN#ACrH)b->90m-ew%#_aa{Uw?m`6;L zQj0=Oc9v;TBm`33ri7^UKr>w){h3)pc3R-8jkyF5$tA`*#~7&VA%{*x>Y_^-s4+=` z=Xyvmle~$86OpvYYy(pd5DlbdpuW BX|BIO0YvSjd8S=Nx&Ls-7TeG zW-n<=+hCPMN{@nf__65EcKHrn>!dZ)qz!r?0*D0>?3tbSTI25(@_VXPO-K?n@@7&e zh;H!ybr||v?Z;J1hd~K8Vb jNKp?_x4o%f9cA}DQvQzF7`FeHr9S* zivx}E-(M>r$%D{p2dp#Xr#Gga9Al4>0!?tW+M~sM((NY%sH<85-sEvZOB>juc74e- z>0VMc#IPj}YefeQuMp79uu}zX#y)DyF2Li0)$dwIH a*m z>Hs-xddkTGb6!w7T>ZuL`qkT89l}rZ{3G^*NMlC^X+uaPNlgr~ezys@2fXw %0 oGuR$LKme)8?R>A1IjL1qBl-zk!;{r67M zN`s|EvIP}K#|md<>>%O$j$J~|{?;l7(oOs3)PbL_dR@I31TT83#|8 T+xPb+V@_D1NS> zaKbZx6_}$M6*%Q}PTdmJW`{wO;M#+rGye}%W(%{zK+M?*!5tVFg-o#q9@r_uc6aOn z_H+65I+X9^yPma=eKQ)ujw?r?9f&ZqI$bTz1;m*_`*ROcxl?JtB(ZO7qK4yhZLkI- zMh;km9`Ho(Ss6&7ETQ*7PAOl`$v0a{Te-Kork==d@0Gg`-R^yBOWw9`BeNdF4CV8R z6-)?2z#*7{S$r#pBvD(jnkmkC%#qzh4jpIsT#Z(}-tz#wlPrK)%e<>9bkR0ia|gzp zQXR}W1LXv}qzzuk+9J-{6RJqkn^R&c*7?2+&vxcaUjd_lh&gNcQLaYGMHVgYu7m*s z5_y3u8BcSHaTIn5|N1kfM5Ovjf|>^hWC>2=--~Z@)5t4GGQ<4zth!>WW*XX}7rIkc zHt?}}9>f)RHdXKxFQL<6OcCavim-iE0r(p6PDQll%vJs1k4;8*xAn(d`Ep`G%n|`s z+j}JAsEj`b(h(#mz6sUbu4Ty#?5iH-&!PU7m^O;0en~Z?niuD?&T)euKyy1WJm9nM zYC%K&!91#4tT9${;oP#~?o%v@e4B)ocI f0a4X9Auw)Ho4zOVw1d7q;Wx<7t-0l9Pj_1n;YLp^a^0Zshk=fsBM;V+AeKXc!f zNl-z+;%Yub!bvKesdM*pU-8Fx)u2W)G$IoFGg_tGRBu^&nON&r_UM8;lxAxo58v~A zo%8>hV?Ygd)9< Y@$OIrT>;OM^6N3cESz@L#7 QE@}B< ZDR)O;uErjmXV=7vspy%2jT2Rc z{IBmA1mSly5+viSD!xK~TR~tC1RFq~PI*oMkaEvLaOf7WB3`;91f&%3O_>=3<`_XY z9QLdTI1cvWEWTCy_W{<;8KNY)6NMVq?8TD4L k5=tqQMFkSzmB@>a)6u ?5{f}&YK_uM|b(VI5+>$~V xiP?cg5qxdyV1ked>h?y}SM< z9=kXvnDb
{0&?O6KOYudg6*foBVg0a?YdV2qnB?Q+-Biyc420;f9s+Qjgm3% z8*hPgR6kqZD0LL80CXrQ4*QoPj{9nlYujr%324KNrCFopK;6Yl0pO_x9JE;*_|?%> z;psU0dq+_%-~}JW`s_cm|Bqg{aQ*KLCDNcs;k84!_$mA6i~G*2pEVrT=_X^(APgYv z_$o>5>sxdGk6J$Xv}p=9H%;3OndAD@lL75HiLU{cS~uC&d-qC)K#~T%|2zLMseA#o zuCXI-sSH%?D=d|tB7poFIYZ11TjZh?KJwLa;0oyS_S*?t9d$M&TGMsW*N7ulP7DY} z(7EcHM0K=&K!WKe>D#(*g(|CQq~g&PxKs=w=Z48PT z0|xj%A2&Zd4KfD7W2-H987r2siE5-siY%?Wuo~$k^8H znf|w0b?n%+JorD?4j{s@I~t+N>ZO0}c<~ _}m<1Uv zC`wY1ok6LDBr~?=7(2ySN+P7}MIlqEsE{orQDjM_l7828f4;we?#EqevdlT>dcT(E zg_u8_#?m4!Q2DpC5xySVzFIdV7;9f%9&6Bup8H)dzu#;o(e%OgQw{TI47dF~nbVkk zu=eLKg~PSGOn5a-Q-=%&ZCuL{DbmOr#EQ*ut`*$M#95BY-wr*#FMq)$MR+XYb3JmN zfF&i6Q{ZjZ>`?pP9m~^5eHy=s04n0}cz&17!>w8Kwei|xGE&&32y3>(QL4T%g^mo; zMl2#PTe3mbxh8sbEvmjnOxqVsWJ4c#mj>J&h4e845kvhL+;62)rsgB)z3APGWO72< z)+`*UljThNZ19ACI!?}CFzs6-;oYC#fIz4%Hx&*a KmY?2fYXJ;fg% zNP;Vq%THCexfEQ*VT3p%t?fI+yZzGSC_7LY=7#r>-_J`bmB9!T=5FXGB-&TUz1nDY z^mLR8Tw{9q`o?OFQI1&2x`a4>uzEoNzyHxsXSFSF)1fkyg6ylk8tvNsN+?~6jyywi zGLU1MHAPQs0 -=!rVayZ6e=fTDgPOx}m^RXG@I^ zNQgV&JQ+CAdZ6}~&~sc5X6GsT*_SleK8l{sE|#!)QVKpI1~D!Yl4x_HPuw(5x)-`R zQ4)JUaCz1v>~iHkn*ecb!Rx!F%aX?5@0NbR`1-x+PVX{Dp0+vp-%0f&9y5j1hF>gh zT=`reD(VZsI>e1$4NDv^bqfO5)MShQ@~l6F$0w27Q%V+^Q=RQHGIbCCobuF6U;MNO z8;tG~)O4!#SY>o}xYGJ;UMDnmA__9K4)?ywmOnFgA`vqq$HefQnrIa(izp9|x*V<* zG~pdD$sSb^VJc$&Tua(Tjnw94AT+F;UuP~QRp|M)VlQV;Z|#u@tb8oUfI0&p3xeGD zx)n!G)&6Q2-|P0}W nP^vEGlKLeFq91+|?_W-S*!hG(K?&>+YhbK9 zEhdaV7r4j{MUF|4INQ6dPI`D6i%v+!^4~W9eyg)_P~1Z8VgUYiA)P^y=OQrSk&5&A zF5&;`HQ`%kSGuz8WVnoyl57ZD-9G@DqRwF~)haH)TISM~Y+)hxN~QaCEjUMACXO1T z1L;RPJ?2QQT5Z%1AJ&I8zaolzVitCrP`5jG9_r2*rJC2~@00@#uBQ&ufUvawmvr1G zgMwfmPg0eJFeI5XKT7=)#Z>kN=>p=Fon2NX7E4L7B=EWwrKbt-#AG-(ly{)!M% 9zE95!|KvgKJrg#@=4Y-N(uSDl_i=e4 %}G;Fgc&Yh9|W(B z17JUWV^pJi`|BL#dMS-$*HFrKXRt|PhBFHmf tWhR-JCs#G^9$< 4&krw9~a9q;X= vFyz(1jj7cV3O5MEY- <%eMAGzAYU^R}Gf;6I+=8x`6 z r zJnVJ3K&dWTdUAk}616l*=6D4WDYlOyerC$h1C))aE@LZfJ`A=$euSfjH3)Y~J1jRi zWwe#ZTd@_pU7rZE@Z=gUB<+KzPZ+ppC}hB|n#+ u|Pw()#}ElmDH zhhxUzN=V|RH*!Zs_i!qmFp~q2f4p$=_kG^ROaeCa$Dxm=f+w~6MNnHO-1OEu_(?)8 z^7JX>w2=%mkh9RHUI>xD3Ue3rTK8kys5wWHf;fyA^X;ZWtOM_I*6%cu#8`M63BqH@ zzO*QZoZ{*k?W42-1Vp{LoFVm~r)BD=!OQy;lsPwlo5W@ur&Q*F+7~)e2o4cR?NJUy z6>)7+U_%FT#?9bQO0t_-+ZEPrQsGU4T3F_P2S&%z1gvwplnjRBxd -*6x`nka)YqONeGU}ZpqNW;_R(AU@C>~{SEO@^Y9g3#Dv5qOF%GS+Fm5gOC0 z!QohoZ!q+MS~dIfJlYm=GG+As3Sx-{4Z5uX96cIN7D=y?zN;a+6?|^FOX>{ywfJLS zBKo7IRTm&4$#0P>^IvEJ$9(5hJ|TCBkxSk{Dmi(E)$BqsXMz1-3=b~4Pz3b+wv)^Y zK|po;bo4<394<(6XV=`_ )M!|*)CAw9XDdZzqJ3fVeRR!O@TimWcvCrY>bydRsX znO z=qtwPb|G3roGmZhN^dX>evT?e{vP9feMt*(@VtSFX28|u=sf@QFz ztmnMXs}Q8NDFS?=f3AOXr9^VYy#yYK>B)N^G+~x_9_KfuKTRSYDPWNtZZ5UH>HbPW zKz<4_MRb`}NyHAb^D#5;7E`(I?^lGMd2dmMY+tsx;PbKRXKUKy2fM1S2`)ufB*j6% zF~|L@Q(zzyCzvwosCVyxoF6#*corg`9kcJ!6avvhp489pMbygzEq4$Si&(hflE9@T z&h?CSG87$S<`hy0F|2)ZXShh4HC7cvM<^-a*MpCng49TBn_<&dYNX_^BEgK+lvtJ# z6&>+mt@eNeTQt@Glp`w2%BN0m5Rfhe8Si=|F89n(KVOKWgKvv3XKl-N#K!H*356c@ zQ~E<~49`;E@IO2N+r>0+vv>nCcfg;rcwH)|SryamhnVUM$xvK0q0nv5y%Yu4iWFPa zgj%YalK+t2X`#7gwemZKA}E7P<&kx?O8RcBNmz$T(PqNE3O`ZH$lHa&xR#QCKm1kl z|FXa*(m)mqac?QixWe+vT^N z)>#)0C?;#ckI5=WFp+4(qBkU?wBd-XTb=_pV*YMv!qB2Rj`HV7BOPf*ht`%OI>vyP zsP@0;PqCPQw!0gpzVn;sf(Xc)=A+IkvA1Rpqfg!_>2&{_w*+Xo-B-526BB&c=2UmL zMX3j$m$8GVTN8g%S5X$n0<3kQSb~u|m10}c$}&gzAF1kGp;s@T!q>{UkRb0cGvXhL zSN^Z(+(XBakn|9JIVrv)vzyy>^!DJmgRs1xTc$ R-&;hwQ=58-VzGf3~e0uN*EDZ2D@4`Smp;? z^HWRTs8W$*U}acw{#BSor0~u)*sDw4Nm8WL{#Z|=NPH2V>OS4-)WE*GW>2bLO`(C@ zY_Xy8xk@$iL%N+9aeQT|tNKVHa4dpK?h<*< kl4pX?^wIYwnZ5V)?IWUrG`C z^Q0WIh*TnzUar fTF%;xa+GiE9m3CMi>tE4-O~EJ(kT zNx)R2#EwE^Wyb}n*WSGjQIFVyOmsD;Hu-?>Lq!(}OI1Z?3^s>m_o?fV9$xT@@SK!N zLQW32Cnr`DIj6Il&rmw~-B))L2=I&L`vjdee56Vx53vRh#A-!+JF>Id|4uRROx)i; zl&YvYED;f7>N7nStHjRw+3_>POVM;!#0HhP`^TRyOelR{S8zYE?b=QEW5tJFT;vF! z^jWY-aTDN<(hSxASq>ZR&BLKr3^5FKFYMnMp$8x9k+5%tfs9B7CJ@hiqoi^R`q9N9 z@ipK`jhL9M6_WAQbYw9w{f?G^atKzujuOh1p&`A`m@0?!8u_BRMm~oOp;&(WS}+;% zb~`)qep 9t2L>(mqLZmXh&{ACe)iNQ^Fg!f|Zzn{f>^0 z!=t<6IxuCLlC6^aAhi9kgV|Nr>VygNSjNHf;W{0_9jV4%l(ntG(jcgbi}p<;q!XqP zkJ@GtTUV~|13fw%-a$p~qv#|}Fuz5Q3-i6+e$>gNaa^>kR*ib4@F9u(g})HYq0g zFYI~mKt#{D9KAkhGtyl8;~4(qQXv%TO?b=6scuhgBL6)YD~?KY(A&SL?P}= z CF(EOq9l&?TjJiP`_Y?K=@r9mq&H^`HR$>(W4`EFLnEa)CZ-%w-@^&- z4B8>@2N4}CUeSbSvYtCS1ciPg2heXQ5tA^K^Xv^INn+6R^JG0}YFkA9Xx%BHp aANDfUoD#*oltuGt~}_c zdSBQ5`^O%2Wl!&HNRNyo`ECvR>-!k@^V+tfPgnJ2oOpHb>kF^ EHNTmMp)qF4w(7?JQGj7k&m-2f!R|@mJN5rU{IL94ZSfj1% z9J019Q>%LcYyAZLTC&Y+$Xk88ijN40-($>5bd$l=BS#!q%?ajKCKLxQyUt+FS!9<* zB) yOba_X1QOz%9Eb-g7YPvkhNr*kdgqTrtG$kt9OW*La>cNhi1Z l$`a`raYuUt{pD# z&I5zhOqRjaiW$qW_Zlzn>eC{L7zzH6SAhg;!x1=7Pw?md)4vs6bb9Oe$WWewa2XBR z90n*$k3I lCN2bO _cp?m&HkBU-E`-lRT>Y#!Wh z>)T(J-7GF}Cu8)wjrCls;3PhM>6akIqxcwQBwguX?X0X4dhZvvT}Gkq?c*Yfi$KpA z3g|8knh)lZc(;wOxWRLz!4YM4b;ft!9TD^UjQ1yHx~!-cCwB6~g>D4f*`=Y;%fT^O zBkwO8)(N Yzl-$}Qxv4`GyWUNp}H=7!F{hj-< zda|c?(& oNOYqM69P2|HmJFR$qSS4ApDb$( zov@JcUT1j&d5oTOeoNWcp+R9IZS1hE%7CJQjuwvYYQHg1)&l!WbIcOzbe8)A&cV%- zqQV+opH;KT_gaY`qr!?n_TqtTrcl(g7*i0s5r-^ZY$;521M-d*A7KV;gY%d;s7S}` ze|9v5xPknvDv!Ll&(91b$S0tg0R~8c(u*A5+6b9mtms}Nvkq7LrbJ;S!)EkGfs&RL z#X=Kv1yoLwqGnl=1Dhq4!|1K1*axKH*^Mzj2j9s2lM-b 4Z&n7;@Hr59!u>{Hi!LD(XUT zic=Nam&6{bwf e~rJS^i4 MY&*JK4QbjwGy7D{km-nZ zZuB@_dhK+&*2aNqq37jknaXuucZ^gXnaE~nUqT9+`Q|Wmv^(!+W;bgOX^WUA(G{{Q zt4>n(IhkMh^%Clcw+b?I!XfGq@#c-ZpIExqTZ+*Z${pnG%h8Wv>x^2^g?{)T30yiv z0fV$L&3MMS-(!u6z9SoEGEFai5)Y-EFuL|xkU*HFc6ZsJ2W#KH&~pBfnR1j8cg963 z!!}f?gL#aCD=2oM9NzRX;!w)ylhg~_VdQty^k_h0QYN=baqy>xqW=<;v=k|osW1mu z7bro<9kc4;yK{a^uS_yed|b8KYhjKMM;`3OE~%1ndbqd2_lI_ls2qD1A;pXIR{E5d zw89@ QsL$5-`tzP+6Mo7nZ&W#-85r+Hn|VG()cVAFRl6tl5Y+5@9gh)X~a zwfn%>ztE#9N$76INqR5njq`V&Smh^H?kA~DyiqFc;T)3!{hU# ibxC1igg{Z{8{`dE)eOJ<^LFyc$0-20uZtMqv!UaNpC(ZoHe?Ihg^h)K{ z#3VAed5n6)AILz2ZU=mZf*y#22|#r;FNO*qQwsa-(lU1GVW^rlAT <&8_b0^G7-2Pxx=d58v10qd}5W!H<4{M|@ zNzywrwLG3~g%MnVfs`J2)j|V`BvA&$wNp%VB?w<8pYZ_e8>w|@79sAF0bQ*!^ieQ6 zGVg0!Ix&KuSQBfO3mqFZIyjA+By&~b6u0Rz<47Q3&Y ?hoH;i!Pore(JtN$ue%*N`Rgv3_$WavvNr;gO|4p>)OKw*_fE z?|*h_OVo?pP8%Tz ply3N40*!)>K%RQ=&L9f-$0WXrp9^EI?% z!tNaX@~Usl=8wyQ6qD`gb+`sbhm*VIny$u$d0D=ibUN$nP@6t;bpAo41aU+KfWy)! zj7Cm|o50V1LZiP91lL9qicn9_t$4)Ayp`Efnp|uM(cHHy-0=S+!=`C@ 0(eNb3Xs-N#-|#PM+mjE*zj30Vt8?fOJ^U= z&Qr6A+;T6;;S7s;B~9fz_pb0wL-jFyx*cTRmJ_6$0}5_`1Y_G`gQ^x&VkO~wXS-fK zvW*LQLo1Gv3FX@-Yo(m#Q& lo7SH)<3=d5Z4D16|+)V;@i^92!J$Ike02>Ddg(SnU_tDkZG*LMx z$_{$KJr9J5lkKY0-;7?!`tYrE%|<%ETH`Ri;STm|yC4XoV(`_dQqPs)DzFOG!+Wj4 z_x1GUj=nw=obL$@yCJe)1_63{&utzOp~>m ad070)5Opx`g^YL~cXM7( z4!~^L=v7uc%$Y>$t`L}c5jsbDx$%*vFraSw^RZHfNs6hT5g^KLB$-R`mYKZ1kg>Ga zU#sgvz>Fz3%vX4mg{!#?v;M)GXbnO8&RBxfSwl6tkPaFqLjmfKGTwugzq_Rn4r)Z0 zH@BH!c#g8P5%ok)PQKxPW$tDr!?h0By9{ZIbsA)I3v3_F{PP1)GXv lR%LuN#b |)HL zcl`&2gjV$m1oGq%O}Vk(7J0P}KxHQ=u2RgOEoD&OL3cS~KM;PdGNy)>1E~lN;)LJ0 zs}2g*6)dSUXkrET3cvLIhrP+NJu|4}rmgyVZ0K&8NJYy{q9DY_D@mPk-wV}QGnq&k zihT+gn*WG`l;xz(H#S&~CvkMwGxE8R1oQel;SB~*`ul7!GobRlOio2dRFT3G=3dbz zaUIa!f=m uo!KMo`BU6u7hw~NsecMNk!5= zS#KjbaJa;X4;_dm)RbQZnIedqv(}(;ER3{00y^yi>gE+~-Y`2t1DcIrFXR2Ihw{)N zO3Pr&GB2HhTR>WgxgyqzD%)KZlpsKP_uSJ~7Yf&*`7H%Y$}}wV0S+YJiN11PIXtY( zeZ}d4r2{R|Zus9e&X*IgFi%(AP4eqlVc_$<+`uQS6G(d-Gl?Bz_zk_2TW9fKx@V5P z&^kOHjEeDFRKMiCg>U;e*L=2SjlO&!@VIGYwJh6KLudjswq_zG|IZ!~b*187^`*Rr zDt&*&^WG`^Bs)|_*u?Lwb$_+ykjHxq&>n+PJvo1E-an{%5Q?KK8JZ=yb$j1Pe56g; zek$+29tlcib1(pAtSnuN`A#!zC6`?%?^C?4ko|IXN{f;qh84vR8R}bLf9|0* VX1EgEIi!8bO)T+hpX1V_7gVMZ|biuDkN79?yo>_ zb|CT7iuqqxmwFQxk!s0W2gEj9F7$j*2O{_Wd?C3OaAN$XbYrKrr3rKJuGD9PeJ}XY zLKEJZQ$rRlgq;q<>>*c%oeO1Oe&;1zQExT;gTDQ*Ei|v (^WDNkC&+Q)Db*}nQ*Yl%#Ta0kVF;#c~iTEP0OPZ2IQRHFsl z0hvB=eZgm@)+te=dcJ0AF1~WNbQ92nL@+95 XUUDBQR>m>Z}u#`fRt?=Q8m>Wy_FTj3AofQTK<`Zi6il#PvKX zoA% vU{CU|`ZzaQud3;~PsV*8|p_)N-e2q5ZCU7~iY)Id4r;KZ6} zjgC(16leRkp zlKLs%7#?oOY_zcp;Jki}gVHjUGwKTVvIF$3oj|tgu>n73EOQxKf{1zIsI?X--+Vlz zR{6+k#Y>=E`i*y6|4mWG@8?_8^M@OFltas%vD3Yy55T3~#i=}NNbrtd>GN8?>+ZjB zBAkY4Thtpuk3pX%Zx^S{3ZBc8c<2e^3QC|WvaeW*E;2c=xZDq=^6hKTd2bK$k&pcL zHBR(s7O`~j^$?;jIZ+$Bca*A3$35K&rR+2!&(_}eA9=_1TcOb}B}fNxi5b-TJhvPN zMCy{Bjd^Vs)uT9;^d >fhXbsyIY4-VWnMv~fZNZ1F{r@s zi!xYE)iHVbScEJ20S``f*6dG7`~(*$DA;{oX@qT?Y^%cjW3VR56XqN* P9arCj~5QQQrv0V3l zR@GNmbhrUr`j><4H=h&vxQZI=gHUi`;k8#14o+r_P-p7AH8B(DAd$DlLo>IEl*-@Q zP-xX!HAdCuLeE`;B*Ogl@G!`dZByW*1>g&jIiJ{V4{873rbb`aQA;6SeJ=^V_w%2u z1N0oQ_>p!Zrs!}iz)k%je7icLJZSsic_A6aLJ>>ofIsKI_x0@czeH%9v0Zrbudu>8 zg|3?R6>890D(XP>?4T?X)+4a<+80n#Ta??Ap@1z+s1Duxy3V+~_#^e^0blpuh0p15 zerX6*hkm *hznrX<}wM7h=Xa7dpbqc$u#WeslmnlJIlXC@~3{Leyy-uf=a8?#RM)B*Ei{ zj|5;U&%Oxz0Xti)6NMkVw~XA(4 5y9*)W(y`a7*Na1)IvV;+S@+^wKYseE!7@lG=chT0fQwS%uAdl1{) z*KF}D5#TpxAjMaHbBm%bQ>PoM&-GwW=O^Hxd;5^4-+j9;t}=BrBLPT8P{?#kIsL-v z?X!yLFyMjgAPH$Rx6T$zVwYZlD!C0N#1C+j0XQYPYYN1Tbnc+SnR8O>v4x} i}e!;CT`{~xzL!I%w#M8Qz>39$^`C#w! zSJK?WqV6Lg9)8Fm%;lI{x7ygj+?Fc*WGf3dtAkDA6Uv{{W%&6)`pBO1BK+}=Y4N2O ztZ!Dc5>&I*ajOqjGN+$^$oL{dIrF|SFEuI#g@bBb$$i(r6Sp*KyiZ2pe 9Rl3uNjQ;npTRrq;b+$66+|sV7?BQcC{{ z*O%;SiOw%6DSg8t^|Gu(R{-hpb*uOvW}U&l@(xnw5#0!7;c4+10bPnrtOCt&91osy znfqR_9a!x*+Im>BN-wKjJ6h?;ybr&Ddej7?aA;Srv3x_xM)KU?aNt@RXpxY6yn}RC z(hR*-1KLeyR(NPtdPt;;R~fH-5!&|{7m+=Ba`W(uifn|?+bA%zOXkvonK0E*ZyEGR z#fX#qBJ((&(n|@@W`0K}O=MB_`N9PUw nN2KjlWt6|?Ci3&1uLYUk>`jGJkJYj&lqs| zmFm;;D~P1z3wLlF<%+sYHbcVps`rKlWP{o8#?03j4SnL+Ls6-tD`XO0I=k_+bYxrP z6yl%*p&!c1@?ro2MSeE$`&ugAP@)GZzJnl}%d{s-@{3KJ>u{f2gV6{B2^u?%_g8P~ zf)wNXvYxF_LD_`K>e5cztmq38lQNTQ~@8hmUgA7`eVEtZYT6$1p1 zE35f-pOxl8;vh39GplFo6dpss#;WA%OYB8L5r-LdeT$z;d1O6@qbxVq4CP!Qn~Hx7 z@>ueRxyzYQpMJ2541$>OHk`VwHG9a#uP{!UsM$%v0SMw~7%1lf6tTn^d8u1|ik3Cx z5z|#NOa-xZYe?KDMmrB5)umJkkiPU152FTFaH5K2yA)^)!-@pRZ}*N96NEL}*!R%Q zL=z@!-xU?b9l-74-vAj2HeZBC;glwatfwO%1U@80cX`jZikBld(=LiIDQsH?*Sd74 z*=#N*U-M-DFGZCqM&54e88rM^GNj$JLZ3?L2Hs8eS=5^eCR_RF$oPf!Q63g#8f@7X zwyjj?)l{A|*y>J@Hf7q@7N+ s)^~;{+CQ3B{u%JL{`&T$mT%v}K%k-NB7K=VZ({=9 zLmjOY6b^e;w!`gD>e-FG)m(9&?ap6}`6%%r3&l6@NS#n%$J5^^&7e*KpA8DLk%P7V zxj^w57F>@R*u|JTO=i2i*MP&;r*^#>)cFG*U^lTkMepjM*zu;=u=Cl?cRNKlSzLHT zAo{%XYdOKxyK~R?DGlaKNJjEEy?`|k+j(gXGsRC8y_00C9m(LGyYLvE=>RB~VgMq$ z+998q>Zi^9r{>iQmPSn?2Sm*2G4=mJ%2h`o5MP>qlaKgO{QvpNVM02+J=sqcGN`y( z;Ys8u(_+KH4=O$Y8WKPJ__MmTR$(r`X3%BPqKD%gvg)05Er1wP&oTa z2O$h6bpa6CBf`y#@O4UEXe@09kO4qe@@XqrBpGLZ+d37v5a9J6jNio}w?fTj$1$mv z P-ciJ!W}_yXW}z?tpFD{@EOl$ZGc$+ka{(B$W~O6=WGYy4o{Y_#Rs*Cy!ET`#GVQz6qP zk%9S1_SD2YlzK*ll{HhydFTs4*L$GuC>P1|S&OA(B?PWB(bNKVbHm+Qh$$E&>N@Xx z^uomB=I;OQPdRjLX?`)#G;HBw_UEg8`fFDB%w+wXeWc>z6nWu$JXt80xuEMoT33B% z*(#HhK2A$=ZMFvn>w?zKX?v>lo|~JG*W9yUyQsPF_v)7m*`wFq-JjukK{p)TX9Q@w z^D(IIz?@Uy)32(ynh!s_$enL!LU)?x5I&W@XsuX^6WD0_lJq&NWv=$dd)}+pZZn1h z4nKcGN(FL71M<|?gu6RwJg={g7fRU|-r0&j5j|q615l=sG%XlKZ;k`n45$%edm-n# z8!9-crZ!llZ-xbqU$woG=6e!RGvU2&zY7^%Uq1d9fa zLt6p?t_x}W-gO?ThU_YU`v?=v9Ru+9kG?J(#pe!Z-fU3XlI+gS@1=29UOZMR`~Xtt zq2DwVbI7Gpg9=4@_9OKOfRrR`T{ak<4PH)%O(Vb=nBxf9gKGcM#x75T9gN*g9dX2N zm@G>LHRfgm^6{}P=7JQPnkY~JDUpW~!UXk6e36)~Mc#6Q>l$p-euR4S4N}R-`{4sD zOxfU14G5wI<6=}^ejo!Kq4Eoevi1!%Yq#L%ROzmh1Lq=`SceAs_3995EFLB}E&52R z57<$EPTU-hgV@0nqbq5ZTeD&aj`hP(zaE`JR+)-=8qIu^y2Kt@!yR1)i*l&;mi+W2 z#~%_RjKKcE_N>=~a6KtQGHzN~-$Xit^W7&@65lmwy__ED&fDLZJnrpcs?eWA034bb zXJ~sF#CJ~_4a8vcqLVbK=iDKAm0Ejz e21eE^y!MQJmltig#6@gQ0Mar^j{5y}C7?{~sydUl}2& p3rgSQeVA^Y8VzUgKu@d-1yP!nIY6-Md5J_-LnilK;NO{I)32y z{dCiKf?JOahR+gWAA#n!BU(x`Or@w(7QdLY2`TyQP!WfJ1;YA; u6#(lI{q63VuN^njGxowhS->#;u#vTyO-{WydKI3C#x3+Cc9i$py-0F33o_+aCKxe+Yhv1%d^HVPfSt** z`s6O}(RdM9)Rlo}x=J;n3Z%^T2SLjk(;eLWOn4d(7 zgyVjQ?!R<~h2rA?j-R-uA$D>Xnx75tI=8E?A2o#3hWWDj|2XR)LjKEu{_Am94sMM| z@l$;4LfKBTldKa}$82RNn*#LXlLqv2SlgT)rC)r%)!2-=^C7uR`#qTpuL CZZ}DR=+1y}7WpVuuhX_ALpg zg0t&TGE~S*TdquEn}wss+_Yr?*D5yfA-D|}D7B*?EZji`EFu+^=&PlQ0JEu--KH-= zql_rDT$oVKA;V&+*dV11?_Ym*PRGFlNC>W9zcVPymWIoM{tR4q#nfh%ByE7W>(N|o zgdVF5ko|%Oq9bMH>OPH+8iZ5BKDLxn_Xb4k3{|hOQOG#gnu~FCK4yX$(-`HGd7K;H zeyK-rTRe&lxy(E`J#TJ7v&w|@Wkjqa&kV)jC!8983jgrw)P}`j2G>^^J*VrN32M4P z4G=Q1`)ez*-IfXC@dcl6ELT}qE>I?Qe(ZwYlS>-5kLcI8uNLDMtFH{c*;lJit5_=2 z(S|)r5G2J17MQNS+7iq^s!CW7+Q|CZj%8r1(O~r2y eEX=aVC`D*UyIKKAn2F5>V8C>1v0CE5jJn^55Y#@6@z<|c+pDmwqYQ1tiD zv`WwYfc6y1oxr~(-w%JEcw)Kp%daC!1k_&ubx+AZHBktIm;>rtkv&?!Re{Y={8NzA z%r7LDSEJ9%V|dB7MAr_$-Q+u!d@}KR+a}qJqZ&^RxP(?{k3ug0(cLvL3*)H7mJ>z) zTgL;^=0 =s#k~wla1SL}6zfkG+_wWzcH_VV@kDL-(h` z3nc`I2!IB=E7eTfwMAupYkp(0ZHL9g!IFjDq5MX+(d^l~Tj!r{He4iQ@pio%#<68d zIo!LSKgB=ag=H}Lu4uYeIjFCxW&A?zziQB;>}zDpFIoaN{k+>C)WSRP7koh4ZND{^ z`NM}%1L;#SBB$+Oe2lr-z^BzFR8}zdB8 e!2BUkvIDNj&1W-TYWCGjN< z0AeZ9pr-6HLhY*Lfd5Ybh0Ss=Uql61#V(HasYmRi($E?Q01HaWeDqQ7yH7M^_KdJM z4y~4WUE(`D6aV#IWHzEooq2JPn{P2-%q3ECe5Od8sNtB)Q~|Z&z56SVdVHn<*TU!g zy4fG|PebDU0O)3RU8A>dm}?zLP^3kW6=MC2MqnXNL`+oT44RgJ%8 }-pCk=MP)g}==E0#aQWKCp|dDdvR4vFx|lzzWl3oXzz%{PKd{W~ zfN%coX3rxg!UTmvqta2{iCi~|xh~~JLnixB1I(Cfp4!0aX-5rs?m07WHfey#ZpBeO z=4wK{MFu&c_l?ptA$@&3;>gX1JhU`k$1GQYG&r24x03McxT|Z!?T3kgG{;OLyPX^0 zzp@Ef6Il7fb2}FT{6T(t6bm_xC|3>_mPkmKK $kTHJuOmrs3hZ$ (m0Eq@xqsL zdD~xdPV;#SS=r4Bm=j#&PRN~g2YgG<$p12`mcHeWHN-;U_Ukz*CfYw3FJ1TLvIw*G zNA}GhKDX9LT-Mmeb%S-)51+NWA=J6Eh7;@|8T#CVgfkzf*DsK}PQCsswe-< 9 z3@6N9UXMOuwJ-m%%Ln%;;rl=;E;pu`q=uVQs7(dCeD<>eA3a3wurW8i^8S86hep`y z%l{YJbYo=S_@+ILk03y)B;Wu^!hDfz#*P{ld5K?Q o1%3HD>cf5L z1NlJm5%A$2ZL=~l<9z? jofg|OPE4(wn#D2A@`@EAY<+OlN97*o1hgKP)ClFV4 zqX!r)gvnk={gfd!T=99&1P75nYwoxw^;Z9Uvz;)o7_jaRV$=PLrV Y6u&98<$ZI3Qxg8?MrF-U@27bp{(vK_Rd7e-$*Lp@5NS zKyuELrpU(`+)0GO0#^z0fX5Jr3djS2rTke6yMAyhOidO=Cn?ILihKU9_8v%XRpP#z z+@v0ws~sP6*1>b_s6HxBSsc=TuEQnY;tQn#;*W3lLDo?TbFa(WEe`M#u9lz(o(^li zH5`}qFQ2=KYR`gku8F+7)}TP&W+kin#j=oZsMG%5>fC6FvlMr|(?+1v6uq`ZDwX?> zzK`}as`TGGh3C=#v%7I5RE!^iSC>6O(NPg4!Trpdz3(i=*cK5 -nM2 zhpq91F+Ed#0$dhs11n&_MuH%lPeb`5m!J4`SiwR^sMBlCQ1}^5*}5@9A7PR?e-mVF zys-3UEL&aQZdk|$a+8= lI6G|hCgYm*wza2BC`Z>Rc-{7QhrEAPZFDYA{7_cs zRuSua)!*Y=(EJpiM$!n}m3TtWeX(B~Ep_qf#aCAb>)Qj>OVkJ;5tlUptIsJN?zApu zv|rNLRsiuIaM!1P`%JX9z((o?A)97YIfXC;_#HQV_?0MX_ikwP=nS~0G+zQG^yA5U z*}~Bgmu(x<6I|^-;L|0P3|BUGiVLWZ?K(Xgbm__!K0u)QrQ5ZlnV!ec_fPUvNWIeY zhK@9%!eD!w6cp aj0WdT}{uoqP=#*Om2)7oAabK_8nGV%PV17c&=tIOB;nmrw@v!YD(?JEQh zZT@wDNYT}$=*WQx!(V0t#a6UDhTqkW#AmQ!?+2b5z@OVrlzN?bbA|$C11+T?DwQr$ zOgZ6lB-*Erzxd2(_Oq*0v90=L-_z3;k8vKlyc{Qt>?xv*z8#S=iZ7~6LY{8LiL&!4 z5Cs89xFc}k{P=r8I-i}opTti%mT^Y)%R_cgbF-taUr>_+-WgEC;S>7Zi~~9k UQ0R*#&TE Y==ayt@E+bOVl|s}&YxdWTU7XlXUQlZ=HRi6xAxi-JiKwfmDbmR==$R?uT=Lh`f> zDutbBoN+(lYHTBAVbbW&9uu33Z 2Y+zI+4Z1Zlk3Ra{CjB>?Yyzm~Lb_2$Cuv|K!K2@g|WFRY!OUH^N zsbd0ZECcX9Av^G<#CILpmKT235K7 eD-HLzsD yiK|f5X?}2ILaerZOb31U97cfjWMS0B_;Mw43%-p?jN>=PQ$L zojL)l7=C_F!0Nmo NgEqMMp5;Fv{dgG5qC?u&jbGM|+m}^@{8JNM zyG1sqvyOmDIf- {Y~bkgK32W$TB*c!~=p}!}m8?ODi zRm#}&ckNY^s!s>n7xk)6-5l$B7W8e(WWYP%`L+yq)LQSJU{$$w8QGj{E+{;%9APFL z5hJ8#D NUmx_GzT18H?9|Ntk7p&U-u2z}?A|%OZD9G-wZ+#T ze{T2E6fE})h4tLWvyzwHFHTlARHzqPvd8H%7wJaSYIL)5X;iSEaVSM(8#tF%%dcA| zGhUMQ2M?n@{Av_-980C#>T9Ox2&cF`WMW6DVe=xB!k$^p@xt<_pvOdXqV&{7tdUqN zmBC@cW9{^-GA1f+XA9XyM-{;Nil2lnN4!-zxp^mi7A)zH;K0Yu9z9#7bk;DEz=Ww= zle*@V(d);s8Dckw(O0J!!fl=!fY7W2BN)w4l>M&q#GME=O3^9Wrq|H zgx6z_Yetwge_VUXa<7c*HmXxgtNbZZ{&E;?nZwx7%ki0O$Pb}YAX-j9%PU|tW6j?B z4=n4S?XpVVnz;lw1sP_7IhKW#Aq~p-TGu>fyh31{A*r(sb<2Yk3{=5k|A;Yl3k^p= zGg}UI;yzSKT@uUWZ{hwY0T$;8k0d^;6+idby#4fEWb-X(qTdaW5uzEASi)hk6DtO4 zgrgoP(aF)UQZoNzYkbW1XdAYfDzv))*i0fNG{Zf+owy<1uB<3w{4 KuL( z?V*xkyf!aC*(KnE5~D;pav?}*LTkdQT#CK&iu(P3A hijxe4tVpc ~CPqBTB|#4v(vcH7Qp1xjT} zuVW1`G;9klQ*uLu$&t#p &4mwWl0Otz5*9Zzm2MTzfo#**Ze7y#3oyVfWNEvU{w-Kg1~+}vg~Z*X{V0p zpc2@-N;{-(!YhaM^1 9Qj>Ntvy(mK52BaUkCcQhH?rl%Hz%yst8D7C!t% z-DmmhY0~lk8aZu8?(RjB*GTB}K9l{i5t=bx{mq{ZSh)4c{>`J}!2bqp>M<6ed)3V- z1Ym*8YEzPNx$Q0|D2Sfx{d8PSt_7O_OtT5Nch)oDd@z>)_yJh %r$VF7#y zCr|kI)+s@1&_J{@9x7{Nz~JShfFNJ>NT#=X*Hjx)pRUN;QK8KQxMRK@iM+5H4$HgH zqqc}-&S-+jf!2MkY=CkS^zGDA^68VGrVyaK=#G{3+}&zSnF1{IzX0aj@n(5Hoh_+8 zDU )yl zoIcs(rGqvV2KJ5HK9t^Fs(ee4Q_$uyArE;62_f@AL~n%>B&^3QJ0OnTvpg$NZFl;Q zj&j)Nv{^=`8tvSQt$Vo6FP{;VOM&g@$0!mHKKxPlIrG;qWYA<$ZXSJ^eFy%Ua+QDJ zc$T@KrS8C}dD2DIEgp`rsfQ@z_x&2_6k4UKlYYt2MriuQqsDnM#M+&{bzNu}I^SRY zQ{@z9;r-upt(X6PSPc35yP!Da{@91?+h-Idu{&4LxT!u%%l*+D4Uc _Fdk&5#uZb^nZ_Ex!BCrqW+K5fttZ~5$3BhTmIsM@6B$|QzPHv{&lCy+RK z2&C|0pn3xrTd{54YpBRGRH=GPe&sQVru+rH*5za?PQPQUIpP7Eo%t(pupTG2zEh3? zgm197uyeqnBbH1XGf*5p3VOeL_FH=U|0C+n 5zR3vL6>JpNSEpv=L#TZITDP=DtnJ$&3P$44GM%uJoUBBn)dVjvZ|GF`Tm^tV9 zdORPG`-8ejeUa-4T@gQk>+M03&z@fq1w8OexW>r!<3K0;NOM&uiQrAVZ|Yu_!jn}@ zbxXxwwBuXzf84`*Y@O~Gz`DQZn7Zxli=CwVtp2@UG)asA1*{CLq5b%({FG0dTr_qu zpC(R%3l+eIoLw{REo5P#J~KpZ0!AZlrj&=r#cNfYkNR=+z1Sw#i{_{+1T+mz95oJv zpq97+XD;ArbcRwF$@K{X&0aaL7^&tTqktg$7yq)3loA ynt#F<5GBl7n|76H6cBjK=#JSD=yuX>l&DKgq8@hud#-go4Ng+ADG z!|ztg!fIS3i)gXkN^k@gX;})7FYo1v&0wPY$R4g*45 =e+u7;o-b^ zzifmLFFauX#bJdsvq9 Cp(jV mL>QwCY64grpUuQl;l~pN<7dpvWF0Gts?AXRrq6&o5 z1z}EH>AhbZ3^m{3HAhD-jb)ecr}6S~nif=)w>)JUXVC;Y@YnrAR{fjh*F~9iT;@W$ zkSr`OS7ohqs)5*YNS$zeKTk~J#37&;Z4^}i)gp#iWu0(MWT)AaPrA2b1`??|HU;i( zg~3u<;x)9DLFuFzNVqmg>=)c9x^ ggjWTKe &^f9$MAZ}y8S@191PdwQaO!+P5LIWht9oy(b<{&!Tf8N zkhm-Mc5moH*VurON#R);r>{j{*9TArZ2hjie*9#UN#c?e%_Fbv CDwr=ua%Gg{EUnv(SbmTpE|dJC89t`-P!0apF{3E4RszXj>dya5}mSvz DxLK)1G$!qYg9lEgt zZYj+uB!Q@D7T9rAM4LF=(2iG<(;NYL2`4QcU3mv~!7C@5d}wiLmug)EIg!)xJk^$) zAJC%!Uz=(R$h;=J`j4QIN^*?1l2kGG=hL^ui&Y@~IQvpKD3}9{_a(^(a3APfvvJ*7 z(;rqoK0uQO!DDL{IDe{3k`3i8KUBX^vO 9ci_cYHX ZSHp^9wWJ)0R42) z^AjUEMPuJDgr0mJG6K6Uagv2-57WFG8@7kxn3p3Lrqv!WWp~)FPgAw`#(D#`Mu>PG z&0zEoR_Vy?CEhC1wDB%#a%cv$!cFb#rWx0EH~U}98A s5HPEdBpBzD(5 zIm%M^yGIJqBUEZA TnG@4-0EUe{xU;>2}5v` p@PtmRur1n)6JMUBtqi#w|GLcC- zr!;@+jnOl-hq0{Yd0m<}YquX6sm%}A0{kW%FyYo}Y~R10c; c_f7W8BJA7>fU&713V08k&e@o-XrSKPTd^Y$_+-oY5e`d_XJ-4 z6>t5si;*&LAxs=OSACk9(TjMr3D%BI1=PIWC}t!zjH)sh6z@{>O(tS}yPcBypFBl* zz5JuX`{f+8(q-2W>X$q9I*a(X32ew{U4&g0Hn7r`;y8?Yg+?l;dHYxB22fwz-oLur ztB{0pYb>n DoZ+Rp}MhdMR+9B{2nt8wri`3E=4G?_oG>N zM-bPhhoX6%7sjAmsxDHDNqnX0{SF?!N?a9Q@V!$j!nFFz2t>->it7F7GQlvEn%cbw zEYzX-%-(j()Q2*Q;f-ij!XcqI-VrLp?oFTy+T}2WA^cRHFu4OW-@qgu4nG!XJ4 pyvu8k~By+e*d7F zexwO5Rt7^`w_SITqqq(!J8DG!uC&wZA7Z-V4c bEZawaA3%*I(N%h&&PI$HmIGG^g (Rss zQ0gF11YM1%|Lba0O2wPP
Ftd- zIo9GUd2pA*9D3R|!Q|ul{dfyx>t8uX(4Fl6sOB@2piKL-tGwR5UDpm=;$sTX5fs`# zSbG#L`WkvfqQRVXEwe*TjYEqDv lnEGdH#+2GRKjr2LzX< z_I*y&XP!sR|J|&?$Wr~TKH97#!iv29n(>bJz>rO>kMWm<+)UE<)Y=&NQ{;cMQZY>{ z!6K3J;_@kSBK7<0j nh;u>^us#{3>g$;uw z%3U0_Tn}onHMhHbhIsDc)v+7ecCoRtPtmkL(x(_Teomq?DcuKSP#jmGfl{!HmSDj- zO0|Uhxh6?>;z_ZN2hb &zOEy%joSlWK-#~4k5V4KiEw zP|(}um!x8}*_~v@O#x@zhbCBY{lsJ{F&J4qb0vrRwBQ=@xuOuaG-grR2P`PODL1cH zOGPP*xAR>h4@ZwI$%D}NuQ8|P_}YA%v{Re&!VMxtZFPwfVa=N{8F`9l*KAqTYBSc$ z6-krI&MK^=9P^K3PLJCYV|@c(!O@Fdf_QqXumK_p6Jw`q(+3gEqZ9SBLPc2%##=<- zex}6}JD(J!XmP7N6~f^C%1~Fsz7gubo*}uac8<-Xdo^}BuCW9_XZDh-R{l#!bk0cF zH6#`S #KmhuXdYIxO7f4`@wfs;oW &ci}1LJ9=Qzof! zXZ4d+Q2MdZOG9lr*;V|VwR>3A6I8Y~b{0s48zSGDdA~*|2p`5YvW$|r+5*zN?Uqsd4SQo-)TzYYhTOTUptb%y$(tpsx$!vbmif? zbhG8Qa}I6?Rhdb W;b{KmP)4GbI4YyXn^_Au5-BGbOW_ANc91ASUU;6TN3=z%um!D{Z^ciB0)&<~X&c zN <{g#i`rJ7 zqiXzm^t0+QGVa`zc^m>bcOA10LdSY#E@-m-Iif+6`);16?|ZA{3rFNW&8vt&dcOGQ zgYIYO*Y`K0M7sui`ZKTRSa=8fX|;QTMixF^d9VLL&Csov>1J|FO#4||Tjuiyqr6ac znJOT%Q`61nZ@sbKd FkQ8)8Va!;W5-h{SI(;aDZHj{a&7RI(b|g= zfw9j8O}P-a0e;?xiqKul>2PAEZ!aJxJbKaRnicqPS&^SS2Imf4Cd`lGm>L_x?HPCU*ejZ);%UF%ME_d0Rs~iIch4M* z;{CAr?N~{l1}&1|`fLYLY6no(?KvPDDwJd-lFAr>*_f`${MD@hHC*6~1Y?FCT9rXg zvwTNwoLw$jB>ZrcGi-W2c-^U6Kk;TMc9t{bi&WNM|GA!Fn}Fe|bK#)skp_Vk!@^pd zjL@>WpJy ZG#LZPuY1 rDuCp#Rg9+mEl zQ~kkG$uw`h50oPTP3K97?{DbBeFwaSD)5ZLRZy#pe&Osub4L08P>c@f(#O}dNAlwg zP;d|!S?{r8`!op@4#i1Op>v=<%?&K=$|d+PO0>rIY(q+8a^dT#b^>v#W!{v?=av=I zi6=|IFy)eC9R;O@0JE$P);0+$T%vy!*&S ^VX`F(cJkresoa_*N*`mWfMQb-Jda5_q54o7e&&&L z3mLBa;M~kqIW((TxFniso>!8bTQk`2 Oc|Ccd($y?IEorez*& z*~t8JUGG>tJm^;u4C{dHyPBR}uZsd^`?F>N2&mJE?KrZ(wm)|@ (M6nbp0TZ7WH@yM785|GW(eMU6K*&<=0R@`|1qasb=jJHh4LB-{&i@s6jeI(2+Q~ zd}Vs42K|0+02^HE7Cm6NT>3l2aIjS+%|1Dw|Mrd3Ha*e|admp<$sz?EK^I^;IZf`& zJ_aO;8vXoN9B@!%C7o2(3dyWC5jQ}qyZ~C1YTtE&`d!qT!Vi9bKr7 TMHc>0OT>hx49jBy=D%@y%{I@m0$aR?|(ir&H5HwSsLg_zhG{>?biTDl60 z*MPay7|jxEW7dg5xg_1XZ6~Q0GrCJEqy}uEp~fFoZifBg-+b&J)boHQ9$;z|nZ9X$ zeC P196j(1)l9`B=%A;`W%W)$DhP-!Duq;|W;59==@V4JpMpc(XPq>` zvr8ob?dGSbdk$AWZ`MvB`vyHZzap!XhC*V9WF?@ )>OfZ@i*OkXj4RB6I#Q;eC+HhNV?4w>;gt=c@QS{!c>i|S`UVIjY{oYp}; zS+B`hhyr@&jyr&XU%cuO22fS9VwUq~-|%ZOFz0}W5|A-*yEqJrb!`I?AZtL 9=O4#{xP@G(4i+PR@SUo#v2M}_e*irWiH4DzgzpsK`%pJQP~iQp%$K0 z`#vblu+4|O5kNgd`Y29bguJL>=g5suQIJ_RdC7gm{^qo!JFk}`_gy5B+Rz8Nk2| ZVW6&9`uYx