-
|
-
-
-#### Wechat group: comment "加入gin-vue-admin交流群"
-
-| Wechat |
-| :---: |
-|
-
-#### [About Us](https://www.gin-vue-admin.com/about/join.html)
-
-## 8. Contributors
-
-Thank you for considering your contribution to gin-vue-admin!
-
-
-
-|
-
- 📄 创建基础模板 -🤖 AI生成结构 -⏰ 生成代码 -🏷️ 分配权限 -🎉 基础CURD生成完成 - |
- - - | -
-
-
-
-## 1. 基本介绍
-
-### 1.1 项目介绍
-
-> Gin-vue-admin是一个基于 [vue](https://vuejs.org) 和 [gin](https://gin-gonic.com) 开发的全栈前后端分离的开发基础平台,集成jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供多种示例文件,让您把更多时间专注在业务开发上。
-
-[在线预览](http://demo.gin-vue-admin.com): http://demo.gin-vue-admin.com
-
-测试用户名:admin
-
-测试密码:123456
-
-### 1.2 贡献指南
-Hi! 首先感谢你使用 gin-vue-admin。
-
-Gin-vue-admin 是一套为快速研发准备的一整套前后端分离架构式的开源框架,旨在快速搭建中小型项目。
-
-Gin-vue-admin 的成长离不开大家的支持,如果你愿意为 gin-vue-admin 贡献代码或提供建议,请阅读以下内容。
-
-#### 1.2.1 Issue 规范
-- issue 仅用于提交 Bug 或 Feature 以及设计相关的内容,其它内容可能会被直接关闭。
-
-- 在提交 issue 之前,请搜索相关内容是否已被提出。
-
-#### 1.2.2 Pull Request 规范
-- 请先 fork 一份到自己的项目下,不要直接在仓库下建分支。
-
-- commit 信息要以`[文件名]: 描述信息` 的形式填写,例如 `README.md: fix xxx bug`。
-
-- 如果是修复 bug,请在 PR 中给出描述信息。
-
-- 合并代码需要两名维护人员参与:一人进行 review 后 approve,另一人再次 review,通过后即可合并。
-
-## 2. 使用说明
-
-```
-- node版本 > v18.16.0
-- golang版本 >= v1.22
-- IDE推荐:Goland
-```
-
-### 2.1 server项目
-
-使用 `Goland` 等编辑工具,打开server目录,不可以打开 gin-vue-admin 根目录
-
-```bash
-
-# 克隆项目
-git clone https://github.com/flipped-aurora/gin-vue-admin.git
-# 进入server文件夹
-cd server
-
-# 使用 go mod 并安装go依赖包
-go generate
-
-# 运行
-go run .
-
-```
-
-### 2.2 web项目
-
-```bash
-# 进入web文件夹
-cd web
-
-# 安装依赖
-npm install
-
-# 启动web项目
-npm run serve
-```
-
-### 2.3 swagger自动化API文档
-
-#### 2.3.1 安装 swagger
-
-``` shell
-go install github.com/swaggo/swag/cmd/swag@latest
-```
-
-#### 2.3.2 生成API文档
-
-```` shell
-cd server
-swag init
-````
-
-> 执行上面的命令后,server目录下会出现docs文件夹里的 `docs.go`, `swagger.json`, `swagger.yaml` 三个文件更新,启动go服务之后, 在浏览器输入 [http://localhost:8888/swagger/index.html](http://localhost:8888/swagger/index.html) 即可查看swagger文档
-
-### 2.4 VSCode工作区
-
-#### 2.4.1 开发
-
-使用`VSCode`打开根目录下的工作区文件`gin-vue-admin.code-workspace`,在边栏可以看到三个虚拟目录:`backend`、`frontend`、`root`。
-
-#### 2.4.2 运行/调试
-
-在运行和调试中也可以看到三个task:`Backend`、`Frontend`、`Both (Backend & Frontend)`。运行`Both (Backend & Frontend)`可以同时启动前后端项目。
-
-#### 2.4.3 settings
-
-在工作区配置文件中有`go.toolsEnvVars`字段,是用于`VSCode`自身的go工具环境变量。此外在多go版本的系统中,可以通过`gopath`、`go.goroot`指定运行版本。
-
-```json
- "go.gopath": null,
- "go.goroot": null,
-```
-
-## 3. 技术选型
-
-- 前端:用基于 [Vue](https://vuejs.org) 的 [Element](https://github.com/ElemeFE/element) 构建基础页面。
-- 后端:用 [Gin](https://gin-gonic.com/) 快速搭建基础restful风格API,[Gin](https://gin-gonic.com/) 是一个go语言编写的Web框架。
-- 数据库:采用`MySql` > (5.7) 版本 数据库引擎 InnoDB,使用 [gorm](http://gorm.cn) 实现对数据库的基本操作。
-- 缓存:使用`Redis`实现记录当前活跃用户的`jwt`令牌并实现多点登录限制。
-- API文档:使用`Swagger`构建自动化文档。
-- 配置文件:使用 [fsnotify](https://github.com/fsnotify/fsnotify) 和 [viper](https://github.com/spf13/viper) 实现`yaml`格式的配置文件。
-- 日志:使用 [zap](https://github.com/uber-go/zap) 实现日志记录。
-
-## 4. 项目架构
-
-### 4.1 系统架构图
-
-
-
-### 4.2 前端详细设计图 (提供者:baobeisuper)
-
-
-
-### 4.3 目录结构
-
-```
- ├── server
- ├── api (api层)
- │ └── v1 (v1版本接口)
- ├── config (配置包)
- ├── core (核心文件)
- ├── docs (swagger文档目录)
- ├── global (全局对象)
- ├── initialize (初始化)
- │ └── internal (初始化内部函数)
- ├── middleware (中间件层)
- ├── model (模型层)
- │ ├── request (入参结构体)
- │ └── response (出参结构体)
- ├── packfile (静态文件打包)
- ├── resource (静态资源文件夹)
- │ ├── excel (excel导入导出默认路径)
- │ ├── page (表单生成器)
- │ └── template (模板)
- ├── router (路由层)
- ├── service (service层)
- ├── source (source层)
- └── utils (工具包)
- ├── timer (定时器接口封装)
- └── upload (oss接口封装)
-
- web
- ├── babel.config.js
- ├── Dockerfile
- ├── favicon.ico
- ├── index.html -- 主页面
- ├── limit.js -- 助手代码
- ├── package.json -- 包管理器代码
- ├── src -- 源代码
- │ ├── api -- api 组
- │ ├── App.vue -- 主页面
- │ ├── assets -- 静态资源
- │ ├── components -- 全局组件
- │ ├── core -- gva 组件包
- │ │ ├── config.js -- gva网站配置文件
- │ │ ├── gin-vue-admin.js -- 注册欢迎文件
- │ │ └── global.js -- 统一导入文件
- │ ├── directive -- v-auth 注册文件
- │ ├── main.js -- 主文件
- │ ├── permission.js -- 路由中间件
- │ ├── pinia -- pinia 状态管理器,取代vuex
- │ │ ├── index.js -- 入口文件
- │ │ └── modules -- modules
- │ │ ├── dictionary.js
- │ │ ├── router.js
- │ │ └── user.js
- │ ├── router -- 路由声明文件
- │ │ └── index.js
- │ ├── style -- 全局样式
- │ │ ├── base.scss
- │ │ ├── basics.scss
- │ │ ├── element_visiable.scss -- 此处可以全局覆盖 element-plus 样式
- │ │ ├── iconfont.css -- 顶部几个icon的样式文件
- │ │ ├── main.scss
- │ │ ├── mobile.scss
- │ │ └── newLogin.scss
- │ ├── utils -- 方法包库
- │ │ ├── asyncRouter.js -- 动态路由相关
- │ │ ├── btnAuth.js -- 动态权限按钮相关
- │ │ ├── bus.js -- 全局mitt声明文件
- │ │ ├── date.js -- 日期相关
- │ │ ├── dictionary.js -- 获取字典方法
- │ │ ├── downloadImg.js -- 下载图片方法
- │ │ ├── format.js -- 格式整理相关
- │ │ ├── image.js -- 图片相关方法
- │ │ ├── page.js -- 设置页面标题
- │ │ ├── request.js -- 请求
- │ │ └── stringFun.js -- 字符串文件
- | ├── view -- 主要view代码
- | | ├── about -- 关于我们
- | | ├── dashboard -- 面板
- | | ├── error -- 错误
- | | ├── example --上传案例
- | | ├── iconList -- icon列表
- | | ├── init -- 初始化数据
- | | | ├── index -- 新版本
- | | | ├── init -- 旧版本
- | | ├── layout -- layout约束页面
- | | | ├── aside
- | | | ├── bottomInfo -- bottomInfo
- | | | ├── screenfull -- 全屏设置
- | | | ├── setting -- 系统设置
- | | | └── index.vue -- base 约束
- | | ├── login --登录
- | | ├── person --个人中心
- | | ├── superAdmin -- 超级管理员操作
- | | ├── system -- 系统检测页面
- | | ├── systemTools -- 系统配置相关页面
- | | └── routerHolder.vue -- page 入口页面
- ├── vite.config.js -- vite 配置文件
- └── yarn.lock
-
-```
-
-## 5. 主要功能
-
-- 权限管理:基于`jwt`和`casbin`实现的权限管理。
-- 文件上传下载:实现基于`七牛云`, `阿里云`, `腾讯云` 的文件上传操作(请开发自己去各个平台的申请对应 `token` 或者对应`key`)。
-- 分页封装:前端使用 `mixins` 封装分页,分页方法调用 `mixins` 即可。
-- 用户管理:系统管理员分配用户角色和角色权限。
-- 角色管理:创建权限控制的主要对象,可以给角色分配不同api权限和菜单权限。
-- 菜单管理:实现用户动态菜单配置,实现不同角色不同菜单。
-- api管理:不同用户可调用的api接口的权限不同。
-- 配置管理:配置文件可前台修改(在线体验站点不开放此功能)。
-- 条件搜索:增加条件搜索示例。
-- restful示例:可以参考用户管理模块中的示例API。
- - 前端文件参考: [web/src/view/superAdmin/api/api.vue](https://github.com/flipped-aurora/gin-vue-admin/blob/master/web/src/view/superAdmin/api/api.vue)
- - 后台文件参考: [server/router/sys_api.go](https://github.com/flipped-aurora/gin-vue-admin/blob/master/server/router/sys_api.go)
-- 多点登录限制:需要在`config.yaml`中把`system`中的`use-multipoint`修改为true(需要自行配置Redis和Config中的Redis参数,测试阶段,有bug请及时反馈)。
-- 分片上传:提供文件分片上传和大文件分片上传功能示例。
-- 表单生成器:表单生成器借助 [@Variant Form](https://github.com/vform666/variant-form) 。
-- 代码生成器:后台基础逻辑以及简单curd的代码生成器。
-
-## 6. 知识库
-
-## 6.1 团队博客
-
-> https://www.yuque.com/flipped-aurora
->
->内有前端框架教学视频。如果觉得项目对您有所帮助可以添加我的个人微信:shouzi_1994,欢迎您提出宝贵的需求。
-
-## 6.2 教学视频
-
-(1)手把手教学视频
-
-> https://www.bilibili.com/video/BV1Rg411u7xH/
-
-(2)后端目录结构调整介绍以及使用方法
-
-> https://www.bilibili.com/video/BV1x44y117TT/
-
-(3)golang基础教学视频
-
-> bilibili:https://space.bilibili.com/322210472/channel/detail?cid=108884
-
-(4)gin框架基础教学
-
-> bilibili:https://space.bilibili.com/322210472/channel/detail?cid=126418&ctype=0
-
-(5)gin-vue-admin 版本更新介绍视频
-
-> bilibili:https://www.bilibili.com/video/BV1kv4y1g7nT
-
-## 7. 联系方式
-
-### 7.1 技术群
-
-### QQ交流群:971857775
-
-### 微信交流群
-| 微信 |
-| :---: |
-|
-
-防止广告进群,添加微信,输入以下代码执行结果(请勿转码为string)
-
-```
-str := "5Yqg5YWlR1ZB5Lqk5rWB576k"
-decodeBytes, err := base64.StdEncoding.DecodeString(str)
-fmt.Println(decodeBytes, err)
-```
-
-### [关于我们](https://www.gin-vue-admin.com/about/join.html)
-
-## 8. 贡献者
-
-感谢您对gin-vue-admin的贡献!
-
-
- -RcEwi5|z&@u)$rKHvgs#0vy&i`9sSK#gvzRiGhSfCM6u!Kl?J>2R_Y4ktJv zW<3Qjf(3C@L;xnxV#xst)F7~%gaki>32`{328rJ0>I;sMPVnvsL!BS}=c*~v9I*gmip7m?*wdfYmR3OI;NjCPt4 z1h)o_1Pg;$9cY~sL$z5bMxi%gQ7TDPgHJ3)A_RC63L<3C=~5DrW(=bJDyQ73Mk7Lo zU<=qS3MC8dBh> @ccLZQ4cmr9|wi{VrUl`jg)EEEEo53%zZ z9F-;zG*BgO8QTe(z%UMzznq;fY$ zY%xR7cnE}tX1c6Fqz)}J$iU(tD2Q0B#506MU&s!@pF 7?>U> zi>PoYIAowh3D#kk>Y#R)&8o4OR8q7A?G=)pHX%za68NPe6q+ShIrI`H6sfVYOn9c2 zs dyIJUv{?S2?$?cY-F_@rNLMM8eO07}F(<)u|fC?MX!qk2d2fWCP zlZd1ywM|5ZE38^n$hovIuMcJoq99&^*KZ{VLZIyS5sZ47jAI6tV0EipYK)046-xa` zpdY&1ijXtlbU4%MX8OrkyhWi?OPow4%1M_wEL4RJ0`)q)PN_(2kXZ#R2gd7xvCRya z0!m^-;cl$c7Ni(8Qn%Eq)*7XDuH4}>2^|;~IY5P|Q~`_(%}}T~M3z+sG0PQBs+`Ou zc^MowL4$x{AwE7 K1g-W$U0GB{HQi8)SCaB$H zg&iufa@7jGl`9OQ$X<;K#v;iuo`4t#Z^Y4T0yK@T35q#dyb;f(L*!0`-zDOp{Zc)W z0|9-495x+1<6t2$g~f-FGxR}!5aaT*=m?G+E+_NJ2wH#)vrAYwJs=-s2MeR)xa@YQ zLc O{+nvJYhNK^=k4-DfHGzPYcjP^RX1TSADV>*;7 zB?iF}!(=9{LIQd)h%N=$D efRyr21l9`Y?yaMhP2f;ug z9LlC*acZ@NDMl)V0<{4G_aUHeA{FcMgV7Kb4qRbaK=tq>CRZY5Bb`1LS0kd5+*&72 zrlzCuT(_Mi51|bm;TDH1-h&MVG?yJi;Tk1U23}zIQs{iBjqgN(*~ln@7weZYtSEvR z2Q`?iN|9fK;{mH<>q35I<3PCtI#o;X@UU(U-R-1l$rgegMX*B5YN$!4^l$|*mVwX4 zQDkt9$v`$Zpgsf33`dZdBtHZL7=?frRG<`Gs)u2>; N@|+Z1%HUBy?z-F6q1 z0caaAYnnGev)WK9D2|~94J3r$X5(3uem2L(5VPoT5(Dl*i=1|+KmrT7irM9K%R;IL zYhbzpE~D8mw7Lae6-^=!hynY@1!*J*6lo;V-FT XkKV)9h5{ fOb3)O+Ly3`DTPONsoDKMlYD0TA! zd@)PtG^+)22H@C!ACrxiLs34w-LE$ilx8l|41%gk=0|E(I4jg6l>a=Je09y z1P;f5rZG_h2NY=t4J4W2N*fh}75QNrHB0RfyWC *uGwW% zx_M@WKtkZK)P5=kXAVL h3gN`+PLQ?l4lKaNNY8cb%Nkcr|6 zgz%t6FO^w>cr9LKRY?3O8WjP-!C7RLOccUsl#NK@XxI=J#^OiWu}Yy%DI?PDSSCrT zuoDz?DIBI}yI4p)mq%0k(0-554{+LRma$xXADm9$BK$};2u&)UPDy1E z65#4^EXx@39UGNzV_-!T6hnhG61*rl7iVV*l{QlVY2vt ^p&&LsUCEQX 5&;abg3XfCFfwBP+2^kjfLm8vHu1md4O>*<_;A?RKHr6f)DGC-O1E0MTmY(OrHn zzz?zpsWg)$OofSP^x%UA70O1%+w}~tjHy+~jUX0L?0zc`EjH*REE5Zbw_{YuP~d=v z)B^Vks9+u7n@q KHr5k%L#Uyn1iQ#3>p(xOs5JRB#sWn^}0=XqK-g!2uv(D zi2;=<=^BVbi(~NAOaqDuQ8HjqogD3y=}a;o$3#>!lrk^Yg`
3f{{#xV5w3JR_-@4Ohz(G&X*W;!BDnMwi#(mi_(Z>kqI_h zkRbQc=m9og!+>!e0g^<`V)KkRh8Hh!1I }XT$!KYqz4@eKiTNvqgYn00H}; !SnTAliTEil1U_%OOAvGB}%mtug6Ov1Pv2U5m2BCnOw?&JH#3@1})KX zR3a^k&h@$2SY#*^%8YcCPUweQIlLep?{^CoS`!vQH~Q&zj#;3k%TWd`3PMCPXciU5 zB`|PNeBh8GgMsI;S%8y}wLUkA;G=n18VJ&4Ve+&{1BXPg1;j+TgFy=QV91pcBUOOo zVvRwTS80%n$QX;<>%*aKOoYeglv8bHI!ntFD%hY}#BynfY@Oa~P(n;Nn}?5M0WwPR zI|bIz_VJnEVkYRcTBM$Yv~f_PfKg}Au%sd)T8BX@hz669WHm6kOdg*P4~l|R8;NUh z1!-EUo9q{f0TSp<+K}cgEO61m2n4iPYt+!JNGeie7b5&9p@?oZ2Pi}|#LDsj?c=>7 zG{qpN2xK6;@JL~Nwbf0c+cjn_OMs+col2coN3k+JdLqH8;HXJ>3g64piAhu$Qt1#F z #NcI&Nv3mncsD>(`^(yf$2AWkBOq` Chfr3?<*?e(Hn z^kAr9=H;;+9u~&$aRuNsL{R2KTMQ%=C{uYnQ~`$R(!+#7Dp!F*k|1J`oUzSH2G^$r zFlbQ1ZFq%8>eu)^8W5@sPL3oXf(hUOzg|bsh%r<-%3{^H_#SjXWB1Y|B$ZTy(wUqZ zm|p3mDfCdN1OkW?-i;T*83bnlZid1TKBxmhfOz2S5FjW6EE~+}F=~)9l@hDghIZ8( zsw|*G>U6u|6fKO33*F#-p+wusqywgpxAKi1j@-lzh{#+I9AxM!AD%~cN$pU!4QFSO z6fg`Wi1VuXDt8Fr0MxT3PA )5r%@(y4D2q%dx ^IzoZ6ll4p{(ZJ 0($&WMp^)jYgLq?&3atnur@*@2rI}!^w2@x8v)9 PJEi#Wmp`y8k28dYUL^GrYD~f65gkA{#=m_ADc!kvzQYs^~ zAwpSDswIc=H42pqD!NJs&8MJA@CX6aD~A&Z5`u?m=6Q&KoRAeZB%L7CP@q9|&}*WT z(OkSm&UX{&ey=Wsl;F>Y1bm)sl@T#g3X*77dk}W1pTnk^1rCD5K{8^M7?8d3I6{M* zEtBeSW(fyw;SfbekPoR%9-P+cgoq%vfQrcF>%>X}%&HZWy&>?|BB%%^lw=e0h#>;! zF(?CgF$yB`;K^vXQX$s!fJhcVdGRoa$_@t!AIPooUMQM{LTW5Q0H!RwKqb+b)C4$= zfOWX=TANtylh8r(N49~kcrn+jprie06<6lwYj`{qQOtBnM0|r+k4JhvP=pd9a*2ah z3x>tk@Tf{Yf}#$EE{KinH-kWrQeznqi3PM6l?smB@AYZnFf)f23Jq`!0_LHyA$%ox z8;k7}D?$erpoR#xkmy4yLS92LP|+xAP^xrFcpeM}q|9D}+X3~6g>XHL WLmh8HVHwNKw_1^K#3=)v6@v#E856ZX@zzuOdp^U zxn{pcuE6RzOcdK>rqDeyBpYKFJ1s&O4Xr|>8Dc-hi (v*iibO4QZs-KGL380!rVxW3w)P>2SKsTC^Z6j!f>tBP=}Bjkl@pcfkOe|Ak#wI z;|k~*4w#niwfVSosRtz$>)Zgi>{_V;u43Y`8ZL^dGhppdrWCGGu|pdL({UNJAQc|e zn8Aq;o)4FzgAxZ)0uEF}PN>9W@R%hIxX3}FGo%8vSR!YV%@jvRmBJ}vf_M8wYOYA2 zG-60-bHM1v5j|WHg-(QkBtoHMVX$z#RpJ+5)dHW`1`17h6a{NjGof&dQpv;1`Szfm zXK{!XULTjI^+KTvvkY)}h1x6%SomJH2jS((Z7z<@>zBJ(60}VK6Vn+cl9J9KiyUme z!Yrim6;P1_$zjSJR#3X)Dx6rKQb7i&Z#5W|2%Mc~_oB5<0Tb%PdUR5y5Jop@FfOgk z1rv#B7{63Qv%t{^y$>R=a=8dEsG@>p;-LW**KC(Ek!maw@3h$wcBR=s5!jIo6wTn* zYEfRE5J5nrj1IEWM}t%Gp%WAeTj+5yg-$We5- ~*xbZ-xT7!~Hg{$#!8O8=@`yFhU z%E 2yXbBOP6GGCFj~7y!VL|ivcSw_3?3W~g3o`?2RjZ6!Tmo+uy7JB zan_P9T_U^Ch&Z8tZhcj+t)e^mt*?5e_9v{1VXZ(M>oNi{Xt{rA{t7%|s!_Q-Rj))} z9=du2WAM<5{N>RTf0J^*3oFRDmoQ|)*n5L&ShZ)*o`sz2+pX#OLR7ML2mC_`_W89b zg)Jv%U%FOqI@(f|Zhw7kYD;TF#c|Ge-3KOg`Q|?_DQCj>QK%d4-q`WyxJ6yM_Ky6I z%QxTP$Ik8kpCdXaz>mHEzh>&Z)ee5u|3ByGobr##RlfiI?$C&{-S4gc7_J3RPuW|j~R{V!8 z{GV5JhjDjiWZ)C?%shocA!-UXzu1))ov58>s~P+S*AilS4;=jTFM+ymhreOR{9!JG z6>Wx7lIFK;6d#g4jQf2-dt1%VL)bTIleTRbqS6lh$1#DkZXTCF-GIIE)AkM >JJRpYJfWx3!d?@*HffFB^Ay zNBanv`j?*lf7sWpKPEEm*}lbJa3+=1^=G22`HvS 1QAV z!|&voD^Ku_=C{fpNOFn~h^Dna=r!x++6B$yat*g9$~^^ZzfLtFG}Y^!FDCvo)olBp zJ*G~Xvj5J5#*@!Swbb06^bmDFxhX#W{gd_O1@n_ 2IhX~1E@R+)# z%NSnqWJB)`bWeHL{nNXPvubC3e$V-F*!vP|apv+*t;Y-Z8*cyZINtK^@!GnUyGd(5 z#5VOnSK7Pbc!#^6{Jt|TbRT%B?>G32YySStT|+IAH@eS!|71v2;Q2P%$d-M)-OX2% zKEaN(HWqxa&Tqa&am*QV &SSAw#vudV+04DD#beRufbt=$yUqraEmI`C@#7mrKnJ2Z0qm7Bc? z$2&0JDLKoAWe+L(bx!~IW^UDj4-LHZ`Hz-QQpTQ-G7`oNHQO>jG!-Uoi}kE{%dhnxe mwJ8 z ?_wV;y_-bX+i_G
wB4~+CRt_Z0y^?BDkN3LbwwrkF&{I>^uP4@?- z=R_JR@+_CnSXSpvWN+OE>|$^8D8!ntUiTv~@F(fTV>?Zi*Q21lHL)GI$7=cX(mr`- zuBHV@)9%i8trj1dJ^ZlzaKY#F>W}1e%LW`3jhx-Nc^$7_0H$e9cTqaE(6#Hr_g9me zOA~E( _2y?{bJ zi>^m^3Tf|QEqJe;-*QKi+cofF*D__FU+O2?3fuEOeSALaZta3~F^y%}dm9Tsf7+1C zIrr6P_74F*vn@Kh)8q!OKU=b2&{FBTab9>galhi+(zdFm1$zkt;t|hGcMr*SPdj=B z_N?udSbe+Je}3N=R8p@2rtxe>Sn#I~DKB<~>#mm^JX&x780p`c_7WcDGJEPs$h-t* zOa4ZF?vq2b^%GNM#E{dR=FI-emAG$1LVfQ0;+sxAf0F{Zt?B-mfILgRTzpu*=dZu; zma?op^yd#24-gkFXh*nTaKSsG6uC>nh8c@9Y2PM|Zp6pky2eKB{+CU3?XBJmmgk*` z4zBJ{U&7(;+kbpb%m4WLYOe8I^05Yz`)c&@eV)2fnrZ#guS~Ca8i)yVZH-GiM_uS$ z>8-GYp#Rt6(P6)=!94mUGlw+pt1dkth6vG(l|wrWen5|zpFg^yrGF$`-85ZNT`=GC zY_smb&Yh7{2Cp189qf7jo;jzzJy2Prpvs@Oplzda8!nDsIQwYfr(j8N-PB6^xqh*& z_f)1kJ%@e8gOYq8N!6@w!A?{;*ER9D^$v(rU6cFCFi)cMli!w3*fcvMrCYC3`h#u0 z`?sn;fAVeIutAu6`+(?Rg56b2n{+wtC(=}4`P YY+_Gu?f$)2*u*di%38Va?%d?)m(%1ml_#^=n1|iBdCLu1Ly9JU)!oT4 zK-VL0tmAd;nmTpSHfrnhS)XM)7PJ{==f}RjG|mH%?b3qdf@>dFL{H0}U &I$tS|l=6eJ0?Y)$C;c!yn%z<{1SlqMi_HN36exqhc2}}Df z4<=3hAGWar2-+GC4|aHI>YrUT8qKL!7e?kP#cTyk69;fA6i|J=-3hXQ@DyO;6wT z-C^nX>g=WUlFy&ocZ;5X_$os0?%hE~FsRdhs2OJkocKM%l756PkG^n!Ll3;_;+i|R zD5E1jkV=SOFg0ObVV5z3j&|)dciP~|QBftDO>@#ROCOn@O`7$d78%(`VqRX(n4bUL zyVjk!#a+``6&G$_jzT40LH(Im#`gZTrC~`4umJV_pYpz%E`KsmCw}&pj%a^rddh&A z?-Jft`I5?eMbz|eE6djPLhYWLXO?jbW4-nJu1+tUy)42jJ^aD6_W*0h%=njA6U%c9 zLw>uXF1&YfU+Fc(7Z=T(4Fb~BzbiW=h)n7}YJM{>AE?U^VLh=(UwTNEm9*<&>T#DB zRu%&DA)Fb|hcj<%hEE#U|M1-WSmnsw {<=GZ8MZSSF?-=Kug zZFdWmqii6mc59DsDG{g&mah1^JvAYu+ky1qLrcG;ND& g-mMuvIneR0PQpEx0{IBvW9`svkN{jIS>hYp?KTzM9W za@DMuc7*ya81r>gsjGoW8D|?hao|SxPwh<$>i{KVRqUI@+L8%SRa9jI;U p3$wrw#hSQ^E_G=;B7rq)qLQ zM}MYXZC~#gQi1sZ0{?n>u5sh4XZmhmL+`f$RA~vB-*yI_Q42ph@;|lJ8B%(0BMD`) z{iY))Cz`Z_PEv ke&^|qasRohsMCt3Y}>;DDw9DN23KL0J*)4BSO-LKF5U~VYOp7az0$oK8hpWj{F z`Qcw+<}YXxR-V<)>-Rk*awzL|2Sx4#@2x-wj-PlD9a>4@rW6 2`we#mMc)57=i&J$+7%L;tUzPAnR08$yksa}IQ9^W&@F?ldkkO?b{@Z(U z32z)_&7lJ`R2TZTH`o@gY cW>s}_E4AAS#h>gNs_z~xB@tUkrN$em!NPT36C z)gHSzis3x?si^(ofQ4LuN(T!JZ*xEBOon@Z?ApHY(|dEn%=Ry=-$@5 mk)o6}Ai6(B~$d71x7!A^lixW^egbuf_k zU`<@(&5!Tj2#x^mf{tNx;25*;;N2A?SwcxQ*x&Pty|Je-EN$z7EgnjKCpz1}+BE z^rZ?rRTTN_*`bozyTA(e`~ViN*n%+dZ_ck*XJ=()bxiW^&d~*XhOjYXHXh$;>9hr4 zq$%G6%vC02^yxIub=@zliAWFMd7B-_+B7$4xRdW~y1#A6#fv+D9%AbbWfvJood%B{MFKeNiWbD%o0)*nPpUtCtwtr#2S#yEj>PC<0) WeZM-D7f?y_!k?N) zcd!jx5AcGS^I!hi3k(3P+|brsBb(K~=NHRWp9bpAn}uuZAZ@9~yB2 {Ux} zUjk{_RNxthIcpYlIPR1D5Rp{DeuL}Q^c*ni5Qv@^goQCvBLYv>)!sdtG^cV)@>lGy z9|o#*qRuK__-&4}S)oh>s%0*3#efd99H|Ki5~ndtw&eegpMkhqF8Q0EgWYcq@#pWJ$= zO}=(i{2v`e^dHcpf)kNp9mTUQDL)MPZRY$_*RjukKpKk2L$X$^=!4YXOlYaQD+vTn z#uU6$#)EVSi!v_#T43ZRhLEF=GyWgsm^?3g>6z^1l`(RAGbrYmUOxD9_&w8CA`!{m z1fapQ|3-di`GC6aEZ~;=LCP)%#5C;Gxlrvf|K(p{Q%+4Q`T{?_)!6{RP_yFOIx8ay z-BWIs5wDGX Q7A$OhF=<<;@f1t8^<_a_xMhn zC}-NqU0g)w{e~?sKE#K)ou9?EcMA+TwLi|f2v~=+J_Yte=Mv6zMWw$0+3HDlTmyoY zj_UVM`@l=wls!u{!B AJpm)D&c(;zIIOLi}3XNCgJ`Ll@5 za!SISuvI@``5 Qv2-8qLHQ`li2X9c^Beb-$={!Rn!fsU&cPp#iib9o)>=+?TewCHeowdaRyTRw zUP8q|!8ccLWdt;D-hR70>wV2FUx!vU^fp)K(56X_l$0JO9XND|c{yHRGU#5eX%n4s zaMp>XF2l{8DY3rBOhQ|$=(x4&L1(!&vaZMdB=Mnz*QyWQD44c9Hau*}QjclOhbsIo zb$HmyaLd$
mTP&j;;b_l8j!&U4560UhvzRd1B$3!ic^D0O`3j=bJFqs89OcGiMJ9JiB@G zNRemu(XRa(%Euo5{>|OSl8?C)vZ~MZAom+ta`z ==Vd&t&t8zJE!r|6h`rm%{JE35zP&zo@BSU(OY?oFpY=mp z?TP&wN-KS3(%88CgBkoccQ@$UHYJL_*RCBO_pRlxmuq4z^U~ek)yaFfU~iY4Ky>il z)Hz+N4=3*B%xaHnWDnbatX%J_y!*7S2PipAow9sp?#y3ryj?Ss-u~h34GI22=MYWT zrs>m57dP2%9>{=IZy)gD9^wz2`;@NV`77`KeEsMb#jSk>hY>Y@ADOD>yJlrdn{fHp z27=Ua)$@eu9TLJ4=Dm7!UVcVx_ 84)i zy%~LIviRZkK8L4H^`VYgOA^Kfhwd|+YoiVSJsOv6T(GO@+Sm%}hb@EVxcP-*+R0(7 zOG5c^)d`oR!`}LS_e=O-83ZAT`01xz_H%!v>QA5!tjpN({jVwCO{w7n$n)0!(*7ik zx((#-m&axBI!2A}W3J@wO0Smg?qM>0vS-S6w~au*JA1Z%mwE%buXV`0a!N|Na)Bkvu;e+J+k#&Mae&jvG^SRQgUeQdChuJ@#GP(1uqh zM`{X}r9BP~d+`YxuQDu+9X=7TJjH;Y8#`ED$+m -2@WB42*KIGOONEIaktPh%RoO-dt83;%SF84)(m`oo<&$J+o5 zc%E07c8`*c4!-(X6 vk~ z7Zg)|jM}&{d|<=P`}vpWc)_m`*4l=sLi8Ax^kDQ3b17l;p`*8W70EAZ2W{JZy;zpB zUwFH)l8=PHSR*)f^+> {BSw}quEvZV!>hLsfFqL6zi4{!y!x3 z7R!;v@v7j9RPW_7*OWKai|U)kfSTSc0=XmmNgbbZGxZW`|MvaXL2o0o=Dm3Ku&QMD z&ST=CO{ER4yLt(!C_(*4-jxMU1!ak{{f{EzKviUOvtr2L3EMXG>@W@El$U=mMAbYT zfG*LW*Y+=izFN1UI_sEYafPw|K{wNE?bRFRp6jY%N2SZ=eUrM4T$=AG>QbA|+LN-G zYh8|v%KB8 XV)9i-EIL0My zk0mi Ie7y9NJwE|&llsy`BI zJSlH$Edej-J2q^^*rLeSb7#=2_wPP{PV3umIV?4keVRxW?)_NVaS9YkP8n8sFJso3 zH*;2(qmm~Ve#}xHmDf>_vLUgo>(+H;w|~kt)7~z*FUmnB-emI{%Ox={(C8#ep=bqr(JjF`p$|S zH;;=VCujVxlDQTr>BaDt{kOW=64cc>GU9}x#~My%=ll2OMSaXXz`~EkXCMk6Rrc># z^YX5y72djEpKsc)-vk$2h+d~1D7*RQ?1#E>jg!8!hOet0{D->lq}h`-@Si5K6Gy!Y zf7m9Uds0H$bG>CHT5=;J??Mdr)Z*=!y*}6}_Q)w90?@yi%IaWl>b;B5 jikG$C-&xkm^c;QZOQ%$_P>Qc=95&auV@rzRT zh5KiB9<(KP-34Dhm&e)oV$q1jAKyRRhR87C9@H(M++QZB;qx;4pErT(&5ssv`8i`m zh`J_}_o#Ot+k{V3k}5LGV-4xJg@0sV>Mz`W_}3P-MI6z8>Mi?~3+BR}Zu^=OZ+j9O z^UV|26;1BbZ^ix7Kc lJ()blOR+e{2UNh*ollpY)_LH$Mw8y#=?}yd@_C8@=&Y8A1iyPjkk_RD8 z_agUM5;M}S$cT+a%6|KndMz;(XM+0U&v5fw!hWgD(@n2BQl~rAXT;r|?4suLEz1rr z$Zwv3ZXBEr0-l*&(ph@$7FrM^cVl}W2^)K2b<7Vhw)P&(;JVY&4z6pxQJD7kcH+9E zsrZZ;?-&;c0{BUZ8Zx;eTk`n#sM6mfo{Hj|ZvB3&5wj=xuW_3Ty}Ef?fP#;Ej+XA; zCTt*m7u; boZoHmzU&%!}0^j zG5tDX%##%fda5vEX>d-Ja95jRnf~f^vzV8&bKgNa0$;bdyyjN?s{tD}&zsBR?Rx#X zcEIJ!jkkSurH1F%9|(Ar$$ei`Cs9Vv7iQUL$(_Xp;&&%nigJS%Ma%M}@cK&3frC+# z>7vc={>sYSp$|WD)VIBSPF3PXbegp5*tZLY?2Wz+*c$Hm!Vk~8ArIIN3SZr_{?CeS zq_4;CMW2`~Mrn_J_LF@8R~XwrR?aQqCVQ5Odlrqo;ys_01>3lx`@&0%y5GuMZ*n*z z*OewZ;T>GzWB6~Uje8eh 4gDckn}X(y-oZ>p!3vd-Kkx?UTLN z?#`CAf=D=Z%F*q+%t_Ot%El#be-^#qVnt$M)C1=N+fG2Q??|78GZwaY&A1yL-h+)e z-TH3JNWlk-x;=kXG~(@*KaW+ei8X{Aup8`nXSJ|@%9QNzeRIw)9kFe74tibUNeWJd ztS(%3_OIwaCvCgecWgRs!!*s?#wvyGU8ZSO`bf{Mmgj5ecN ASdNTQq?t6kccLS=WSdWGr$?98 zYtD;C3M*
YHu3h`RB$N+VwYfUUf8W8qhYj9% zupnx3`S|Bg*7&as9D1NI@4SmfzMK1069>+U-pm|4_|E%r)Icw pRoDsoR##_uT4-Fp9Em1D-jypn^gm-$2HAE}A>#&>mCilm_YKt;8DB%*R8 zr(W(ku<7kcZ&3E)eq7^QOY543I(UX8<)ikUdgb08#4vPPZCQ^cxIel2&pS@;Jlfxo z^yZD=MOOCp9; -2ks@bPpS0T6$$O!)*5pvuB_3bx zHJw0RUT|ZhGI`+8VU$_tqaz+q7*Aj3thzsr-#aT;7+bTWc-1TZ^YG#qdoy X-9&2 zKVMHfm0zGwoL8C}9kEgz6`8eja?U+x&MQvzw{5TI?DgLLyef9GeEpBJ&V!U{O3&W| z9p+y@2oUTtsu^DQ-ne%xQoOwXKIn=5Q$>`G#y<|AbFYm`c^O~zg;SFIE=!#}ZWMtY z_i!n3)~NCM`Lnai2t$_AANOMD;-??3oS18x7%@M!xoz;IdGFc>?0H_8)^>dT{lqbr zsCCyzjh_=gJ8MXqMSErI#^U%%*g1u-B5EF>iZz7H)p2{Ef;|h9#zt37ZNE{$=WTAT zUPgU$m*(3ZX{nBmhe%>`7T*@{$Sc0Fl=}8##mT#}ZhK5?9gVMEkKJz|7+UH38H}0% zlj!p+=vHd;?r*N|7(M!N_c;@u7GtMV1=rmdT5c}PloV{7I(6I2x-F`$&=V7WU3*9N z$J|qo=Nrzk4OHF5-z|cgE$FQ>i7jelX+!ForZH6~7e4)ciTYXGQ+Un8&uLTNV#%fz zds>S!)5+9xr(-R%UN0|sn_#$boWGLH{&4OTwc<)<`u&Xs cpHS!Rw#&=biA@91<{^f`#h+gWGFsee8$7S-7S-`X2SyKiJZVD zgk!0jZ!?tRpVuahp0=%W(w?J}RzKf-_G*PK2%3jj>s~Yuj6g2OqSzWZgddXv)L1 z!?Fh(R^_jHRKv(TwGy?lHp_4|XOEgQo5jZbzI$TdCh6lX758WF9v-&xK*9Y265(*6 zX5R=%`sA2uwFD5KyvdzMS?a?HQDfHm?0J2Q{u-MuE18|_G?u3Nw*Jf1|4dhvK3zO< z`~gOLb7e(8oE*9C$nco< `XU#dro`r|g7PP0i>!`Zr#ZN!q_|_GJ#kbvh!><`t z(>gkK*YzErCd5O@S%lt6vnS`DWCrWqx}H}De3}^FK2Eo}9G(;lmye1)zj;qd?pfL3 z*1z`_A74^jePcsj a z)IbLz1KviPG((oZ)tbB+Q9Js2{XWn6;-gynfbC-sADj2InypvuTA4WZy_D;!z0I~e z%f}R-do#Y`qPGoOd~ZMd#hbb&25Ma0(Xh;3WX47J#)7w!{kZv)>QBAvZK!ndkBf_s zu1PbOZd@Whx_VQ%)%ipJy2?fCHWVPU(>yX)pW-6$93B%Yqy+H*nm8Q0ni z5vAgb5wi!nmq$b6l&^;!>pNv1`|5>$U9*>)X`7GVV`f4*QGMFV7wcL}HeL*Tx*F4X z+JUoxGKq28rIwC>jvY79M%@7Kwic3_zj5Q#`^N|yH*Oq`oQ=;|75rgJ&8m? *!sqU~r855WwCjCG+uoZO50PIxb@P2KXYQ}p zhmVgaEBiLWykqR?wMEjb&5Zl0FWOgb8y+Jm9CNsQV!r#xkl2X!6GLES^$}sqqiz~Y z66A?d+pwanx|m>@%o;vreA^AVF8t>FNpXzosLZSax0x6J6Ln_z3+W5wbEU3zUD2x8 zw>@fF-fWYhFM2mwF{OsO99^cX|HccWYkwx*jhMF0x3BrSQ}_GYk+sq}9}0?!j}=I% zi05PX2gdDfT-`+f{C>0gQ>iU1$E<2leF9^ikE;FIiC$~}X eNS3cEF z`k{VCa@dmk8{(+%b9D1=+}VEj++G^Rv(9|v@qoQl-)ee8)}I^BG$XdG>-u@_NrEIl zXY4-PL+zkBZ?0S!F=^#_*yMD>kP(;ed4|m#a^{C={KPzUbeeLPAZh~QgcH3#Z-O#U z7 60y{06`b3lrod5?EW)Ff?3N$mD0a6r*wjTI4GnDZnf5rA`VVYI_cYi zvQ_MV9lv?#z_NkKdD9=bv&YY@W16SB2`co@$NspW-9zlNe8HP;H5=NmuKx5^r3)`E z$^MCAfXmD+nMM1K?U|dGlG|e}d=qu;^-cHRFBeoNC#BPxXEk9St{s~As}^o+#QgdG zMtDZ$n oeWE{qKaCZnw7uHJ9;nuQT*-c^gfBbvIsC5(=g#aW*M6FaCT5>Pg 96UKrwzIXBvsI%NpGk(uChO9dR1}}g-r>7Ye!$V3dPy5L2U1nDGJ12i z68?9={iya=#7W~{FKGH$!=9(U+ILFt67hqj!w)v!FRs1O^P#q#Sbiv0J~~9L=Xq0) z-zz>6M@TzCGELfCeS9+`e5vf!cBQv^t0$<%De%W%SNvUWL*1&IHFBq*=ih 1Q~Tffa(bh$iF*$`b>zp7=cp*XPk;QYUq5WVe48-4Vg z+Nh1$!(-2Vp4#3tg>P8$#A7FnO*HCKiq`95Ka7$co8TT6@z7k-{%LB>(&Jkv7*Q3M zXH+_VjzMRes=(^Z*R>-96}fx#i{oM$kL$PRl^jk!Si4}$rXES(bvKTi_qpeqpn6yR zvWeD{TB5F6RX=1KN!{?t^<&ZMZPg#W>D#vyo 95|2jp}Tc`RK@ssP|dJi=Up$ z+%am*{8P9#ZFY9w%YO~3IDVn)!1P>IdQ8PAVq 7B{M-MJ@!YdB7 zeW=>HM+KZ@3E7(zw!D6B_^EraqgR*4!hf78ZTOjZG{)Il`u^%dMvv9o%CNgXP&bXL zsZUlfY`j_dEqm_AV tOzI~QVKU9DXD~#0@5HuhjdFfN(xAc zfQU4Lba!`$fpnL&(mhHydtEb#_w#&v@8kG>?LY4y51hGXUFSO2*|jpeXk`B}lA5+W zm^gD|tltjY{?sh1S^P${La8&-??nG2{;#^q{?SKcoVyj#>h6?%Em7R3#?D*6yBEHP z3)n}-s*~&rus5D@W!n~(-su%)v4IViI_&JP^-L|AcWjTbhgu&cmz8P}AH{7inFV?K zh#DO6(hbz_2bQWv99hquPTzX+QSx%^LjyLGiJ5rq*?OB4S6p=xPVc4H$?Fz33_y?@ z jkNUpTle=$AJFmm+i(v##WU* zLt33#J1W;yLf4ODKly~vdy~tC)etaK+nR(|kv!1M+N?zDmkNkGvEE3$&%xcKzG>8q z5^%;hH2U>BXGq0B4`W=>r8eO^u@uic@%!&D^2CyB9xM`e8~0Q&l)H89{`1a(wy&N} zf}sEVS|a*R9H(XUM x;!*(+q_pXAo1Ykv#VVCauzKtm@561ZC(sP<7j~Js zu~=3%d#Xapf8Zlp&;y^cGlr=bpT!%MW~`kq5D X3 zGk!0|`r0GV89g~ii08)o31epCNd7RR7vs4l>&zR>TCqYTVh185z4vqG4qZVdE zE`PS=#E%MM-u)(G;tlkH>aS%bAZ?KOv6=Psxhww3FBV-3Ka<@}fp2?#KKwt`8TXQ8 z*FlWde6eK+sk*5JVbtj>BF{>6@r6?i1B^{v9p6RO?ghpV8hKP;1zDYuX=)g`-X#6! zSmf8otLAKGjGjv>6j-jE82;#RUE$mLxV$wdHi Dm!r{Zt@ gW;G`~55{4qI7UY;dEG#kQ@ )=&y4$+}0qLVKjXCTGP0O@`R?C|;b-&a~`yDv(X@ z<&_YrvsO2+S2z6|#&rs?cuVe5lyHTH(C?k`)A9)Oe&~o)9$kwzyv<9w9w$`Xvs8R{ zmC!PaUx-otq}A8ak~26SXYb&N$!_2G%Zf+F-HeIi{GqZNOr%o`&UZ%@m`_fgni$wr zut+3WG?d$eGP~9F%IV=IuPZx8(`PzoC(~#7vBm|%Bmou53hy_jH5Re6tDQoIG?mLd zB=sV{G!x^HzL2*oH=kJ}+&-w$9wS)9+j&l+=EuzKdiGAJWMGbd8F dFv?MaaknG(a)PXr||&GJW;aRq`A5C7|$fWhgg_n2by417C3dO4W3> zabIN2Xn&5T>_$dp;Ho&<$HolNX=~=8*B~h5x+PlkD`Z!O bS?AMF!YNUW_xi)PIK}D #xoA#tEr0b+8B?IF29{IXP8tWoa$+QCZ3!`*1qrRmNbSp^_4=UQ z=9n TP;|6DO7EK zAFby|%RTGf Vi*RPV~)SkP@B{uUWq9-G~Rn>L=sVh(Q%zA@{_ z&2eNlO>?Nc5x6rvC=~{%Ka9c*9TE9HLfd4Z9;>kkR @AEmo;nQKvh58>>(MH# z2Cc9jUXOSG7Tv)1dQFK<)0UuMke1qZyo}=Bgk?I6GF00GWbU4cWT+YAY1=Ego}5hZ zbNKEZ)Pyx{vfd}40Ha2m!G;y9O_-N7Q`evEdEjny0N;Z#B@HU?avPq&K*0S4ZIgz2 zOhqNz$j6B2l%2{cc-~n3WPj-~l!;M58PWBqr >d}9Bkl}wc2J>Rd>!=wdEi5N6VNAuAL=UDrlj{62K4T)M$ z?Hq^qGb2rZFZAcEP9HQ2#`n^_RM(IWe9G_) 1rzOq_=c$q<7$bAIaXB%2;b;`_IIl z7Ph}+`<}VPv*>$!JV(NYc9hiZ3z_26P}sZ^uju5h&a2;I@u1PkD=5(YnB?|Gp3W2C zkBE(zjg9#m(JExUK@+Qxa5Vj`$paL9eMM2$H_J3o)3Wh!k8_o7Dx~#uA}3du)YzA; z@j4#%LDnN)+2zPG*M50>fW4(BgUI+UzL(Zbf64oCo>?iZM^~s^NiqC4=U8aIKt&}h zf_nQRy5_-)(;Xf`h1E{oQo7cC+boq&*0iZ8Lpe+@2gR?=GjR?q)~I?%z3}lBB`C6I zFjbn>;ClJu3e_IjZ=j#F^D?8FH@_dh5*A633ff4b>s}_6vKy56FFvy6paxYoglhT~ zu02z09EkVj?<4)cQSVImqmshlT##}4v|$HFO@gqD!hPp78d93LDtMm>2j_tpiR z$Y~7TbTmw4<48EsUA6xG{m5w1L~W;!H{ps~+hv;5TB+m4Vmju89U?oJ{=#yPc-`bl z>Rlwx)M8R)!+_BdhAP2^FgiwALINm5=Y^#>qssHc&-(GjQ>Y&ZfB#DOtmmCJ 4 z5c;wpLZkWNNiUfk@?$*_X;++h{vw&cr|mq1?1RhRW9aIBzM`N6!L<9fH|uZZwo!gu zy!o|MBRvFMzpu|}zzj99NAcLkTUkf013KqZ_y*Nc8Txu!!Q4I#3}r@^TTIFCCHApp zbo(SYs>Fu0vMgcn5ix1OZdvQ5dc(CSFrD(g;^B?b4wkZzFY(5 huOqnpvX|C%|45tB{FHt^ z40^*B8c^Z;J8p>vdY=_aHQ18n4B7~piud#`M@)U*ql{?Ljb?&dlP yQ<=}lZaoxn7dFM)(xY2b`w2ktiBxW zJU7@Gu9V@MtjGR5B+%d_6zKYG)8%hDu-8j8{mH6B@7vAyCeGmbuEEQ?=q%+qT?wM@ zB&yi8X8}n+_tz!tXIFE})4xVbSf0^(I8OfLK#9K#KN2<}8&j!_Q>uS&-Cd#|c!Qgd zDK6g4xXMLzv5BRzh~7Tj(qgeDRC}<{Ej)= XO8!YKxOZL@K8+;L(aI%Q_3DN1oQ%N_&$M{CV?uMdb!?itX2bYokPs`c<#$XcG;7 zbsFy|f98jeqwah# a ziX=OA$&a~c%-8VhhAOR0fnxe40>BQF@caQA9nITHE$}z2M_ePuBs9c$)m%k5?fe#Z zrqZ2z`K&xrfUFHTOgn+(+`!fHzTBwo;4y;RVRS%_Jq9!8pgN>hTd$YGDWUb4_V9le z%fg#ur8rKrSHk6miG&5##4tb9d4 g$%mtBvYSzJ BSHno4w#Uwt0;n1HdNEXnAoXntcJ&k9oDv*+GBkO zKmIll3Uy-8c+BQs7hmMDwLX2?s|c?NPT_wRt8G6Oy8gO_-6@sq$kbqH ivkucEL!@ulRVQ^7T(Y)jyM^7g_R4a%i3}aYH+P$8~KpmWh3~|8%9!<4Kt7 zt&MN-w>4_>A7@nu1eq5COOkHMB9y 8Lw3V(>Dc}a zW^GK;LN57|#7ARtWCl!cM2jUApvpQy3LUS$U=RGV2+Mwd?V(1IE+d6K@sG(Cd(wuq zq0@|179A&C)4Y*D0_DQFV(AB|`$AgBexE*Qv*L;jX|+jAX%QBtDs7yNu>Q?2yfX4% zMFBvig|}=+)Mj>Dl@6PJ8xd=u;53@x-(H{4X3+Gop|RhR*b|0_l^iYP4X|Ne_a56u zm*u>>>~T76u3m(%F`?Jeu(%<`z6+l|B$HXy-rf0eb=6^~<5S1?I X`~8pw{NBGx*;fDhb{w&w-|_t$WQp7uH0>Mm&*W zau9Dmk5<+kR>JXXYPj4#gw~8hNwor7%9ZKHyO(=15^7yQaJkQDf>S>j#@r?R--v>)`KO>0Zm3b<=pVxaU8x$Vx-?Du2iKX+ zhbi^C`jv)R^va>{pRNuswfOYB(KWaJU;y?%?Kr;J%dh&zmv&gTs{RH!v1?J#`e;dx zu6sw za !oqJw2NM}&_>;q_943KZE1pq1j)h=+_9IT?q !aCWjopwQf3P~jx=*NK_4X(R+%=&A1z_gJiV 7d2@V2hp4h(0ZKp2R#6PI)PIVtiYZq~iB>fWW#cN9t$;NH$#8 zvKt5~D)k2fs+Y!mSA>e!KJ{>WfR<;gm(z YA*{#I{V;lr5-!&$x|R37npM z4P){`(j9!L1F )Xm4;<2xGuTLPqC5ArQ)EnaatQC!Ru&~ SEL4j30!@m_nObI~D=vLXWtt(s^le}YfseY(!~?f$4vlbh znW;pzLnb>r6P{|f_j?Z4vHYQ4 @pk3rKGWPj9OwbQlL>v`!c-eC0qnC{lM!O z|D{u# #eTylR(qvoVjSCR!U(>* zV@j!zHY)nl7_a$g+ko%wXB)eX-taC<>?fH1|DWi9s4x{=I=NS`g?FG;TW2AkyaprP zsgbg=sci`| N3KTQ D{E`S5LMKlb@t@<>F)cTVmAuh)fx&ZUjzxww~J6QHD-)Sl7C{0@tF2 zetUWa6!6t{yN2bC%PuV!R-pFWTuVw*1@2@0)C3kn!g{0OVffcstPtig^#KPt=gHD! zX)E7Jr=|eAlC248J`3~6GJj^`2bHxUkUCHXDu+jc+CG@V=F)6D$6Uf=h;MjTTX{&= z-#mnaQK8!K1hFaXw;Oonz4C3mK75f3%kG8mN$|?Se23=dQ-Nlyv9fG1rz90LhoQNv z|2`$#=&`PU*^pRZkrH?}_9&FWK R+;n_>#_r|2ZJ_@x^?Auc+ zi)Jt&;Wa8AwyN}|TtPd9gNj~uVC*J&ggGiJq05qDs;*7HiltmjkR;aVF~%I-w7m~v zI9P9lL3MPitkBN=DbLmh_zBm a)ZEKY6C zrj2W3QH>MC-z!^pS>C0;;r+y94^Ic4SAhf_*)6H?L5UO)K)`!whO}yHAxv6+oibRS ze9+pk!OVm?>Cvj4VoZ*1^)2K!JnwF!Oi{=EJ+rn2)(`8WBw6suffkaos#tkHG9&mf zHr9s;b@Af32Md!w#*Tyrc}dzx$edSQuiW3GOH6iqzqtOpo4V#`qjm>03!Cq4{J_ox z9p`;c({6-vrGtn$C4v+bdPi9G#ip7co}?V%(FCxuQ%I`R7FQT}_2FvApyiBPKEr%d z@j+Q-UE!7muL{e=jr(vD`rN(K+unv75!;}_HGL$u7Ex<%SR|MNQuEOtkDflTS;DVb zPOEG<@@nN>rQfDAi^OCa)ymPnEh}h9GqJ2!@wJ1$&WCw+bJ&S1VYi#--Ta$}Hg0fM zE-ugOSTS`wlYkIb=_3c^KG!oRyW+W>?2Oc$?2hkjcCe`Wh=HQ} y>2OsyxZk88ZNg3M}*mh}5H@1tk8gVEr$jQ;@P4lXl zcD66Ek#T(pwa$5p-bRS`V;mSe^`>mBqsisKHSHwVmhBr&J^ fC841D1 z9V5y=D(GG_JuEGB4dAkTv4{K1mo>Sgs?HU)nncruEA{4NFV6)2wBur*`B0iy9b4E$ zx~2QT#N?s1=iDTDn~lh-+H~3T%viUrF0Pu{AYOK>F?J5?2{llq^tN1L<-ByC=7&?$ z*Z53FRnS}F9g)Jsoy%lafF}AgGREgra2**qo>^;zNfZK_a;dK-L6jk)V?sf%kO_lj zEAq>jJ`=rk6AHW5Zd^*X9ytUx>{e#aqAlwib$^pd*>u!dR`i~jY%5h6X(a>LI~r!V zpLN!rd7&xrjk6C+5$<8y_t?nYt!yB<=Ny$ZRJ)P-X4>~TW$5^i6tRH8EQPx}EAw## z;^!?iI$jt(EF-Vsjw;%mH69l60@N?J%#RkXzzau?%ZGMms)OU>h6|j#4CV-}?&X6a zGzq(5>LV!ekYmJAZMUa0ja6>OwS1rll2v^;I5lA3u3e6Np(Wr&PWrg+I%%+>ncBS&m=>dmmAc|aa zRWWVkz6LD9ppf>9kRT|pDSn!6(i3)A;c#lHYbRCe+rPx$KlFv>hz;#BsyT}u-TTqT zS!Iu&&y3th#!s_1Txwm+G#)#VaaHAiyUAbljVAMWha~^qi@QrNHwfh>L4-)zpmd|x zU}e^ zPEs964RPl>mS==MEi)Ud}f+0;csv{ND?H~v|Shu-UAzzFmoL9-?=-H z@MOy91;G=@FK#+9;P#^FClP~1oOn$CBlHR-w^C|00rRH6uR|#9jndS%^mNVi`zAb; zeQ18oBb?>9f=#+jkuJd?2YSzHeeYC1mYLk?c~@72RjNg78;K23Z*jKuo%!RV^~lZk z`kL)(qnO4D>Zye=jk9nI^V2AarMA4^6AvbQhwwAef*p=S99<4yE&7>6Y=b7^^yxTW zWZiETVwZ9)mX0B$t|S}ut|Se*Zcb)nF;??qWu;WKG<#|;n%zcT@0nyQ_?BmjMqKu8 zl^ps5QE07XMHj0Eq)dOplZ_Hi8@I-EvxitOJ!pVgRF)Nsi2_oOzxm?jTbZI7R*skb zA67rm|K RUADSaum ~%;9{W;ynLy09Jo_Y1;juFn8OR%z<&m6!MjS>of4fW!G{} zNn?hWzH7tthPX(iW;cq~=}cYmt1pLg;JA#b)&**`8n7j=T~+nJ729P8+-`F%;u `G l0Eg!g*P2ry#T9>a z(F^WigZoivF0yxE$k*PA?4!>BOHp*$$;Po5d?H6dZ`ZcY=#+SI%XhNHm~|WurDJ?& z-U$}XRgx>D5%q^|*qoHAizYW0)?e*e%f7$IA`|Q+JtzlF0ny+BDNx 7K#WSMz)snaXaN!3kD&f$ah|(YBhuzXXJ@jV9JJrO1tn2+PHl5Hu8n@= znXshNq}}~w+f%Ula63!aFQcK #Kt_n&MEyl4a9OXqzHC`^k{tU}zd1l;+u-p=l>6*05d}gQ<)Jv>;#p0W zi{D?_e><+`#+nVthn5fPFzhCX6xh?-VWWP=tlJz?nLJhb^>B~yhE-ws(a?k*_ZaQ4 zNG<0`ZvoR_s?}_hj_9bGrNr1;dUMIB7y;SAhv%`%nv=aW2l1H1W; gJBMXN6)s~)7tZ(m+b8p}BKN>{IhOBvperl)u*OFy^{6ruO*A=H$)vWN pS&2krH*@?rfuO z^Z{%2x@`8M1N$_6SMt$}5o@C1a_1kxA~nMkEc8?E)jL+?G`#tp-(DRiRdB= AscR8>`p7gULD5U(A69q->_FKuo*SD)#liJ!q# zSp0Z>JrR2l^!24U1j92WfYz4joj_*Gw$S=<@qigixc^*9K|)X|mg{v$7N-kxFjz>I z;AlcUF_%#>=XzE`vw;=p`*CuxnS7*Q`V)nU_qzM(7+$%hmTt>l0a4_e1e8eA=~QjP zjjTiNj*6?h wlYL1$va5x#nJuV<^fo?$G%M@dGSxpAP?_VLub zx4C_1 #%=0QK2IcT2bxF;P~!HA<@-7L#UGMf2eZBOmWU6R#&n*t1T zSNTli! rn!lJ^{M|s}wkx(uAw^$UYMhFC`z*qg{yr%nlS1 z8O1PYpyVBK4aAo)tsg1bQac|O%h)WIL8w8f^hF)pTg%ktRbB1doD?Oi*k;p8JzBk$ zPcjwxV(CH2r&?r 3K%_#8schd$$;x4auimeKWR&K`s{-k0AY|K3%@Fe!DaKJ1 zZ{v+V+;g1Zqj82Z*`;YThz);59lo_bOw+^iw6B0q2&+mcbec@G0=FEEg)^02%Xw{0 zry*9{kNHS4Z-k>z(w-o++>p(`fOJ%B_=#z;It&EA6lVv^&l67Zc^d<=VIb!mc0 T$9m!D0Xxu! I6<3Dv^W}OK*e|>xy}7Xa|SA|^Gbi=-YlGK5e#2*?W`Zdb_yHC zaMN6lPsElk%hifP2NI8+!VXbl=e33dbA*9vn97O>9Gvu-WqiDJ;SZdMdLumCm%js; z4!`hDD{HTu9@&&yT60%xey6p<7zHuM_RopEc-EYKP=>oWn3J}@s|qFid8ua}E@rW% zmU~CX+R@L*k60TMj5s*uHhmAwPBN3{fN4cD9YKItzC?*4nzHZQjslk;G>*R!jXrz7 zL M|$ @Gr2r_PC#4F$0c;v!XPNPNeb+F>QWl|=~(kjXB zKIq)B+Lcf9%o_0u-1+v#Yh}DZ!m74whXERC`S3v(VyKE?uwaRB3cMo9;>%5x6eWJ= zztc?wsZc!PYbBy&G*xC5$G (C4{vqk7%SCli;N$I zmooq-PfDb=JgZN1$;^=8rn&$qr|5QqQ&xHbX|M{^^6=8gCo2+*Z|NsS;!{sqbpf?+ zCF1fSya!mgAggf74)47(Yu7HbSu 8d*c|uj6*iwWV&3IW7Om@*Y4=s2Z175LVu%w M6|)T-tijq6|Jc2jEq)Lga)Lz7;FF+7U2D3(^jHQpYxek zUj31|j(|I?_AQA IE#~Ig}P~o#c|K= zelo^BVDcd8%N6X=e)*Q?cF|P@eH+C|EwO*i^t*y)j*oXcat%sa5 7?frtXv;6vuB{&@uWt|TH}v_o?6E;@<5$S9Ya? eTG$-Nj}JlFWCLBg z`Xl?XCeE1W(k)qR-ul&<>*|K3e#f##rK>gq>9N*4#TJY*3UpThd$ayZ?nR1^8eAAP z^_Y%IHW*>xF!1wn!+lBxGJ#jV(Ci1p=q5-S-*JGeGBy=s o5 zceCt-zI==fY__%0JT#8A=+RMG)2ufc|8}@lrNiSOxC$kVeL>vAXvsTS6Cq8O318av zamvJ0^DK~zN37ArcFdK|3wBz`KYZxr_l+!1_ay15KB3)h$RxUiVn*=NY1vWxsQsQ> zL&4X*Zi1ya&aA+1 SDu0vFi4RNt|AH7f)n4q*VRZBiLdevd^yO<9 WU#?2@wwB1Rmd0A7jypT`llpCOFCkMR`c*0D- zc6_xDPc$udj!iVFDvU@pHTBp_oP@?uQUQ-z?Do$zwV8)X&R$tr&A`X*mpN;m5-E45 zWX%Io@`fvg{Z;6VNgHUV<@$a)$NB*TuT)dQCO>fSZ14Cg0wY3mkF+b5jNM92mu}lE zy~Ee3m&k8(p#8DS_6=xuU8_1`90p(M$a0|AcuG)TWGa}hpmq1?7N}7nkN{QRQf>U| znkfesj!)tq&aM9_Z*dwf^mrM 0*5Pkw}hp6984eYc_%wKMhdr?HMI)DD(V-oKbn!(0@O61XxhdG&>hsiIqH z{zEYK%T<3HI35sDJ_0N|gPO{NWD6q3BK=isw`%t&FmGe1gvm(bX_@A#lTubunlPBb zGN#<1>bkq}wBAKA6@6z23|}cXbMYLjH2vqAC*-*_tjCz@wPf(*NwJk%y9lBOM;4@O z0zou6Gl578Uh-mx0t`fP{mK=5F#lIhPvefTF+A)L^$sd4R1ofZ%h VvOwV6VXs@Nmq|XWvKzeb+vhDKd><0BD2%IR_C3<`15iR5QDU z*giz0++fK#*R&hwW32U{68vjO27-RC22Md=A>}3#LF!O&p&2_EQO$>xB;Z^m?{Zcm z1g&5aGkAPOIR5W&vQa4c?AG(1455N4aH7EbwY2_@(cXmSR@#vBT|sV;5J2 E6%T%}eq2S20NCq27 lI^>pN(DN&nW{_8dtS+Jf zOKQ2qyhpgymoAe-_comO82rE3pqDAIeDuxMl$J+J(;BSe1;$4v`ty?6Yl7`}p0}M! zBjcFR)>~x& lrf85ACW5DrFz;E@4KV58gF@^u@Om z&% 8 bx$#JpSFGu|M%tp01M0>xdr$6)?+5-QWzu->*`nH{pz(s!2 z3#LuNavkMw{6R$$cxh-we)0n(@+QELQ`?qM1tj9ZuEv2lvxGlbMaYk9bpXO2m6!ew zNmK%ORCxH}eCGcGFd(AGdG8@O4?@W?;N{JyvDL`skfNnG8V`X<@XrHaRJAr`D4dVW z+ra=s__=;Q^~EM S38wBe1xO*%` n|AqC6_rZQXn-6c!2@@Z4nGl4dGMuxZy#d788s* z|EWvac`+4~Lhn7m>cjjLc_dc#@w1${aGh|Q7g|OUP=kL2dx2nkJ^W%AG2t2KAFmiE z{1=1@dKx{#e-6*93Oq8SKTCyNr4uKsCiZRZ+s-9IWrTYT* khHIdF3dAUW1**TM5)VYg7gJoG4mlV!R7LfuCC?uCC%yG;T| ziB`UqM{*hUJ+4|~rZE3^d28wVTY%7ZF$~lE-!D%#HTV>tgNE}K$V`0^2%s3utdOOQ zk#`)0VVi)HjlJ&6nF_)T?Yz|yiJVI)(_r#_@ok7Ax&Upl+u+Po;#>kpa)~{f2DvQ? zsyCvR(CsUNc0dkvk%&42*7@<8*~iwnTL{BPI4nFI-}82 >u(fSdh59k$s4DS zJ4ku+T+Nf$|2qbt0?!5TMGV*5O`L1c^#qq+k*a$q<_m7kpC-2wA7yfG;hOkZ&T@kiKC(Gq{ePY8oWdBLzc=B znsl914Zc{wN_mWm0tR;8@}&KP+iU*cq1%5vPXUyNdvCAf{)dRWjCvFEIUO$VWx!Uw zAe9B%LU-2E(TP 4F1db=Kz z)@nd#)V8MVH ~bD0-Qzek;ucgyT!0+nmPJ){2jDH ;qcLPz>#qC&<0w0UDE>2tiCa zmjfsLcz($J`E9%pckrV3hA0md8qqgDXBu_ua=@uw%q=7D4A6_ItY?L&1S+OEq~0>I za%#|~O0;H*S_zKL*3C`aV91GZK)cPFB+|;g_u1s8 )dj*;5?b3tsZb7?`8bhp~gB8higgI`ZF)T+wC44pjGNs$^&865i>bnNGB zG55lGNF;?UUvb{cj?G9$$Y XS@SFk?J%*(S-QkUW^n+^5aunuHdNlU&Men%_i kc|pZALu|<6MbhVlqw*?GfMM+%$1zX4!bQOflEg{R?;Y3Ai&Lc+(5-~(jzMs z^;3Ib=DNQ%FQ3R@X7W0Z{Bqs&(t%w2T=Q)s=7M+0(x4)WHQ!(mdF_DUD}c@4)h{3) z|3@r1Sero&StT}V0NoIujP+xV$!t|0Q5Fvs+MXbA2ZQa4&v$mJKDr!BlRDH_)fDjh z57MQcxGQB?o>nMYyX3cGq_GN9jU1=K9B-+Zn~5q+0R%eRbRw?@y0!#lPnrl}79>s{ zy#xGKROxr!|6PYDZ6n@6>xeG1Jh^h>y;7AAZG-bhDP%0Q&z{$?U-QqRHyLnZi9bD< z&_A$MZT>08HLk|o=$iTUz+ndv9!J^++2IK F~rOJ~7!YEPodwhu@UA z4qPEM;joi*{^5q#B%a4sZ+%K}@zlR7MV|Y#Opy42oPu*YOcQcm*+?d2F{7W3RB9ib zPw&ReEac^$#0V((*e#XGVH*0I2AtxwFae}{!1?~mvO*T1j>fWYar5=hZF*tFi8l`_ zJTFolOf{~(X-g6+;Wk*VB21;tE251Q?N#8SjJX23R7l+v03=t-n(uhZuqw_8n$ZM* zRG&0DBNT_tHFC2dnKlHvEyys74Vrt5oC1!pC=-ARasJ$%gj~}U_+4q*QuL5p_ZA>U zUmQSL0whk@ rMd)~zcVFKX|d^f5n3L-@A=3f>Fz!Q)g0Bl$VAiNUZ zreox$_d(KNE|{$pQpGR8E1P9nd;l+iK95kTkQ>NxuYYwo*q$)eE&!Vv+WaV~o;z~O z$H1!IY>8HfNUI7>3AX*o*OuY_{ctADim!Y(3DH%5ga-?R7EIPi4rIu92Q; xX z<#&@*zabJ6CyN dqSOI@hfj FJb|y^1a1Wrk3c7Y_~a81QP*{P)E^?)qzRlp%JB0@q`-nG1~Lcf?nEIi zEj=JdLK)&yWdE#Afs9C*Aj)1Zqdo@2xEc2m ($V^7bx#=pJEuc eB2aY=lJ4?6T|9qW6R)q}dAzOJb0R2%L_~wwt+#(xHw6Y @ z#p+GKrK5_iY12UBJxdJO@K#=beoTQA2wul78F$XEp8zQ6T*3W+UVfPz?Df@G<9kS8 z!=RDwHyjo&9KcRUCl;D0A*aR*N`s$2eDUJkX9WUN4Ir+mBEbiNDpc@pdir?d_&;bD z)CbS|UyP6+gXGpU)%A +LLct9lPdXnsuBk;oH1HKKWo5kJBTpz{PwNyshCG8u?*zMQ{i_1rt|PDG zfKKi?J2=zbbJmNzK3E62zKmAv9TzXw0 CTlNkMPagG^WL6GILps_#%fc(wohU?B07 z8r*9la?Tgf7QJ`?!F<0Xer@gkmGc-Nl633|O#i_%3(2wb83fDHLeY@#9M~58&w+(% zmhQ*)fc*jk;Dyxpdg*1-j9esBzC4G5KsbQ#zWV<4q|YfR30z1Nddim~{Kpg_8 G@v@sxUeCa0`?^yUTq#m#m=Mfs6+tkNZ0nkfTy`>Q_-*z-cTG z1*fUvTfw&5YPXE`hGk^yljUP>kUObY?J7%6N9C_J-1L~NpY{(MXJa|u`K+1{zA0kV zJ;Kcw6h(GL_MOY*G{IV!kxdWxV;hYtMEtw`S%vfGVG{(`SOUYOBt1Ou%H?_>Qny#c z`*Zy{smChZ17Dp^lJey&QKq&?7^i-dJt1#+D0TCdQ&i|-jZtk-zsGmjq6v-I)%g=u z-J6AWz3QpyW&tV+g|Q*@=J#YTgd0u~ 4rh6oI#GPS9fx{s!BcuIo0E@tDAv6gF28OVN zXos&oE7$#Re)u3^PCxg)?XR5o{2OKo0Zw|#T$Kf{MHywNM$^oQiKN0$&>j=C9CFu9 zj(6)VuTKs^&S#3-KVDTVk&YHGlPr#p=8v~G;hOL^7SOXq^$5IDb+n$M|M0=@3hnK~ zEW5*-++PmLdCYx9wYLsCYLpY(llv7H7w?6%lRTcN4*Gk$)1}LrKs;EkGp-7s8yh3m zyK2HIh5YKYBn|t=&mV<{GKjF$iB`Ck4r90uChM5iJ1sgcj$G+^q*)Sdb|2p5E+H8Z z5C>PDbW7Xdaq-xdQdH4U%=L2-+L1`@jzV81!lmr%`!zUgwepbbCQ|euj}w?5CB?aU z7+#3th{mfL$~aQ6G7mW~#`rz+D)$|{WdH?p?8vL1uL^rYaJ%D0R+jo}6YV#KRHveU zOYa{)BRpxvaBnz%nQeJ&tGs{IrBUvixJ*|p9bg$&UlD_rZE%=eH+w5E^OUSpblH~{glCi@83iT01f;XN7KrCvM z2_;hLgVvkVk;e?*E1J~>{jB*6#}CV8f23}p^Zf3#o1gTk`| 4UXr#_W-Z8gJ;N3on?b{912RM;HTZL zemT<;?D`X5f6*mow@l?UZe{gke@S z9^|S?Os1%yLU~KpOw|S@Vma9Me2bLfY*g--ooqSAr-@n_LGA6=4;DM78|`3j@b9PI zaZQ;k`+KjeOPoe-E_TS%%hW9FM9I6 18tqhlnPyPcP#oc>TmpW>iugF z-gs#HXiZ`I@%k}FSm=k_r`0Y*J4c1GPAKU$K{>qd&AXLH4j!8mSS)fQu9rf(bpM+J zO$dSA&X__=o5D!Dxr4jAlDd`~BsZ-|QCneY-yq%78j(z>WBXNO5HoKmRsU+kB+2hm zd5tT}PGdx2lNs?_Co7bp#JMjV1Ab-ZW+!H*rNIirePOlTlWxED@&2AE>V=Wq1TIje zI&!@;a2+&j>c`B{)8#smtdG|ZV8q2#JpOhdT6TDIhd-5Xyi(Hp{SC9R6lJ%}ExUiM z1m#~@8+;fqU1kD=Qf4W&`A*Ui7E$+sjqP8IyZ}N4(F6DIiJcSiyh#2VQGN @MQ9~k?8Xyt!s<^MUY%v|$wGfF~$@twNpmo8?y?zDSY ze7w~_i5e!*PdKJtzLcTp* 9^WxNAE!-pxoEsgvFSMfLqW;{w6b2Q-^l>Q`>$ zx93S$dgQgNz>50?X-aX+45S@NK?D|WlQ+2tr#6Av7*ty>PnwZG{|a>7Eqp?{i_nA@ zl(Vv2ReuCQBPb8_=j(p6;ftstHFUAgM{-r<^GV?a*DO6v02{fgmPWooP%E7rFXN z5M!K+XS#c_IwvsiM+aqwkx?VTi<}F>I=bX#3SO6@FmngF+zqJsp~^V|S^NMDf_>nT z&fVpFinJF0odZEyjtKx7XTDT@ Ewis) zxW0JcR3tltbCJ*Yg4;@AM+6EKe@-RI2dqwDm2_ShR|lTn?2Zimv-;&&0K4T1tp&1p zD~SLgqT;Wy^FMLu|5tHnJsB9{QfhEr?0Qm8 *4 *Ip+|*7#Ll_=x`Z+XIM#W#Jq!80De$V&WbV^n zxLmy&fYerZEC%^iV -585~u)4vvbNq%x8dB?*%zMSfY;nxo`EK z`AJ}}I{+peE{{M%ax@Nr{cF%4Hxy(fpMcOjF- $9B~ zw6}q{yreIW-9`3g0SKGu5w?5CMAm;*k)h&T%L7qxJ
E(6E*RjDxyI5TV?A)vm{T&kACUEa872J~OqUN*+^qjS3SeFnWg^@Y%W%V^L zDB_wZ (n5Rn!*coBTweN(j9Bx@4w0lq^OF%8-xXd3|>+q!;D63(z=L z`4;73btbTSnducV @Z>Qh{K-asXU0(_ihD0$%s-iN784 zlk@T&h4b=ipeDiK*3jVZ(&sk-vx0YpC3nYN9I7*bW?|?3J0vu3q1HWGX4#8mBnn8B z-}*jW`W(WmR}y$PTKYiVMZyjS)fzq&$So|$%Zu3Dw9Or9oq-;txOT^Nt$1^H+(v4# zJKnoU3&BmOvJ{~9P*PIz$8gtckZX1WSl^S$C;Hu+ETX8QV%+7Tb`5M2N6Bk8SU_i? zJ6;NQYY?lc20ZHG1+IIBX=udktQvZOT|t^~@7uR-fEvqHdPv3m%?mgJ4jrA;Rq^vo z1e A+G6MPm=?DMLx!3~xjD166K_`mtK@(Aow|u1J#{SX`hSD>fjc zwa8b28N5Z_54g0NQ1G(|5)2!sB|PUvpW{W tp-6Xks7RNzba!{dH<#Y` z-upeC=iR^GAD@5aT5GO3#~kw<=Qzih@zI@;g5{6E&>>0OZ?V}7_#?Noq*1bY2)U$B zzUvd0GSO_M#RYH41$oEdB8c++1(X4QbU%K;$z0^w{?dIT_Kq{$30mntS$I-3DagB3 zr;1a|1C@FVO`+QpX( 0gEXc!Nrlt-YP%owyO zw*h=8Z)hn*`J2$ Cx^&iKg)y BV9%b1|@6{e${j(>IxR( zKN51Pzz3D#Zej&f0S+Cx>2k9`{<-S-=kFOn?#cHV{dcx3z#q)ttrj~b_{M*O8aFUW z6BD4w6 rp;mFdG}&cXuqc8&W<#9f=716=~lmzu^=bBzt#}Pk}bp zdr(tgVzrh_0Cxkv@OUeP3%d;iqv`svM_EZ}VPqCuLe6us9G5EDH&W)Zp{&*5X6vE1 z)E*I6Sy@RjrlqM#3&goqw}s5{faCA#?w0Ok)H W)Dw^;2>UO=<_5sbc&P68wlBYIL- zr#sHGhJf`# JL09=x40&;r&10!cF zwezp`U9ZmelDOx5*so9O*3uZj?S2^CtI%b;sfuBcZT|!mw$vGl5(zY=|Mqrs&=M1X z)c_fd`>HK*QUYe#_tH{Q2x<27wth9Zmo%P?=`1+pu6h#jxy6I(=e~ 7ZW2kUbwrbinha)$FO&>`3x+Mn3X_jc%+r0T)BSJjj;z(j#c}m0?fPV-e%KR( z<5e73XuP}<4F841dCh7po CCLE(_&1V#MyvZ3tC;8UOJk!NCy_ zQg_$P`EB_q2z(f8_VreBzg6{B@b&*yYS@2P5F|E=pfsLWx>_}^kBM!SCwkMN2riRP zHE20#C+OFc-h94WyJYe;0B&)$(aM()TBlvGPWA4=kQVhnQupTo OdV#)Kk-k+?r03Bp?8S?~qb)Am$zU)3A~UIx z&!PzCh52XbKp7)DR;ab4J6vh0q7;>o*AOvc?4TA^mg+w1* Vq}QhXb%dE)*wk1qr`@RT0a(oB69Jpr)IQ03k~BQw%;t%OS$@(u1dg zPE!~f7+;XhWaUP1@~Ck+eWpg#Cr9W%5Pt#B_Qw_Sf>Uqf=L0$G;M2Cz&B13UtY@2w z?zg#oZ>@+oG22HTe;NI}ySXvbP{XKI{^LUXX3q8m$+U`SbGZBP@Q_@D{6yL6#A)+G z(4$mUL@*$!wrbm{?|XFkd~StD7`CoCaZ^WDlY-r#6+ysb{+r`rCs1_ucCJUg?elKG zs?gGJ$Wsc*wbJy 8sKs?dx+W>Zz xW1sWv*J*7U-Nx%%8Zo_4l724mD2F`T8$!IAi(I(RR z&Ed9@@lAPR?1u@7iM;N|sx#u5e%XSCvNu6t_1O^3zRS$(vH!`LTXFPk)bl<9N;o~G zva!Y;M+N=tx7P?kLRxZ7wUc3 r_U~`@91a3= zQeT#|%)tFq_y!Nedy-h9YOQmv^s$F>&rtFjf=Bp*^HENe)lMQwPb~RHqp0ORbOJ3{ zCfIlVH3dOJeIL1#Dh31_#;8WGe|ew8ZhsaHB6cjEI%;3)fs_;hB= c&P<~Pl zF`UX;0q)BJ|F2N{v=N&3p1zdU`X%FS=in8>a)C-;B)VErg?ec|lyO2xQ3hZZMq9=n z5mF@ZsW4$~({9k O!py*z0ep}C@v}UbLM||FcqlgLwF63AY;0^chk4 C3%fS(@_&A8u|;51`^ z5_;)P-tk(4JD%BA8555jZ5#vRK}H`V2I%??MNDD99Cg44*uk`)qmcdm@_A3G%w1At zcMK}8<&}5KHA$vayx}L~m>61fMmQiyRs!x(Jn#n{u#W`bvsGok@rOjyzV|gBMTA%T z8qv|`wp|dtMJ%w6|M^jfs^$+R0KCx~AlQILMrj1DzWJZ81m8 `wwL70I3xPWVR&8Da(tq7=i9Lk~~^U>UaR#^l;t! zz<=4-HzN5NhaUA4nUcNATz`Fab!wez8^`{E{{BRu0h7>eFl>F8S9pCpJR$Nqy3&45 zUs hx~=^|HRDJtGm+ 3?@MmvO5s z8HU4TGF|J4-YR%|z9cCd7aL0s8ZO4fP)JIHt!oMprLv+TDGv{iQ$NpIt&+N~F%V<6 zwTpwu2{iMFF-11zL8OG>L&$l(f}B*QcTg@Uxt+!e=BD)8m{IoJXd2R%*%+c$Ye$t! zl1L`!J5}$TTTAL%u3$^~WHECpde}o#-6JllBc*SC(*GID^P)*vX^$&^M{#`GLqD5A z#_#rGEvvNj8UGk?-OS0!b5VNO7@XE)vL84s$q`TpqXoQApRd)}PO0|`-T8=+Yw&&} zh5RWWWDw8U9^FF>2DstzCM3mn21_0d4;pfh=!uQrtbEFC8Ru6OcG>&E=;`-OP^+R! z^&v?*m2bUCx86Wvr!hBIECI<3HFuOH+1oa3Htz#J%lKq^?kHO_|1@94L|?szYp{v1 zIPJ(gntiX9vy$|k-YG^!si~@VetPj5f`SW%1tJ;f6cU|f9mHEcci<8e9M|#4OVk)x z95p%y)ew9!6lUrIAK`=-zkr4aJeE?xM}xT`q>xR_#WgU=al-s$gCjLECjCR@+IW7R zj@gCh^*@mU`w4$arM+*E^z)Hmzi@C3DV(H@O;%?FgQIKlwo8)58x|R}V@g2P!0pO1 z=ZND=6C};Elx%*zo=I$((Jr^FS!ogD1EzMU*3o$FpbSjtbN9zL>ykpeR#M091ooW( zv{5lJ$$_gNWToPzFn>1_aL@uqXR7#4l=Lf@T{t^GUl|(8e1%|8b_is%2XDmO1yv~1 z?Q?GqO1)Wn;?37^pSvSe*`-mJ_>~$w3PYK5JpRu2)@dO+d#Fw>)MieFSx9hcKkSR- zT$$49HFL*>xAtoZNqF(psmyLs4Q|r`s zf4{>YnjQJ!g;K^I)g*vXy=ekdc;4H;%KB;I OXBJqUY;c3N(wTdb0Fp`;LS%6 z2ky~OB;A3_|JDZzFpD}j0a|@9wwYTWm+O7DJ5;R42UAc;l27I3*`vtkJ$I>C-cd7y zX3Po#*r1yGU!iyqxJDwo9K_kVDxk7h3ORcgmN_e@Iu$dOuPc!rzX~r*Pb=eQGW?Gg zz{~Dijnk)Ea-V!Jt&;~iTrprGQ}zVT27EJiId~ThZrML{;@z-g-nvxKr27ojSxfn* zG+h>KD$c2N0F0IiF4$R!&b Hj|Un6ET%w=>p7G_N#|rI`@0fQ{-y65 zF{F7%I#6v#16+IMa+v602VR?NG0)&9i|-q9ri)sA7;I`RxwDO)6{`M)g;rlR41Co9 zzQ?)sxB}hAPo7Rrn5U;I+J@*h+RgAP!M%S}_Yj3}y)X(o!Vo_I3;oI4?}ffE56ps3 zXGxO!Z?Olw5gKS_qC8Bv6W2d7u!I~MX^9gnX=lL@QK4+CDd!+hMfpg+L<@{;1jGYB zb^)fV0myhdw$g!6g#7Wx?pQ!}$^ZK#^t=1MF-aXtLtB6F-3HIq$e35-U(^)Zn*7ho zN)B2mT7}YI7}S;Se~FNLd-rsMA~h-S5OU5%iW2M|J_Zz`1n$I7v^8?~FM1+uEytC> zJAV-aw+n#}X!C(QjnlwTeGI4)u%>$qLYgm#wdfc-zck3k1-wf2*DPLV%*k0X-82y0 zF0)5MSFZiS`!7F-ivsVymf1_}mf1@fv(__Ebn(e~Qg=5wb`ptsj0rYa^L m z#he!&O)4MQm-59@TFO7AMqyyR7_F#fUXXTyKZe-_^bccVY)lhbfqX>`Sd3|$6LbE5 zYLt$_@$~=vlOH{PY D^TLz1?~)^VrL&-!o!2w*!%=oO{yhL z5&d2^aCXU)JS3acl!tK1bimW_1)>UFD|UBxR~9hDyeh6;1f`@TceJ)s)p90Ji%O^{ zhw25eKs6RIptC%m^zI|VgEDGb;l4=MJa7R)s3W-j 6jP~YA+Z;y15YJIRI*=yVG@` z?%%v%tj!3D<3NQm@ZF%;`hWUv#7waGq*MKn@d`tywiTC*_*Y}#R-*#th|{7wmv@!; zz+3kLmyX^56&3zhirN+Ih(EF8f8)D>EBam8eGkNTSe?}s7V!L#rM?-Bd;xAlS*Iv~ z##|fsr-J;yQPhFFkY~Y%0NsD%yZ;0Mf87fNDDRQUlorRmKS?jEj!%FjKaNp@xSVO& zpF#akikex3ycJ)f4!lK}2uzU;G8B44HBG+@!TuM%8_WU3`3DLED|%4A!-x;30LIC0 zSY@mzLe6*DNe?Z`?%%cP|9>Ll|BXb%zgPM1Qwr_hdt+Y=9K4w7d=IH8%fCbwLIqTy z>L036{O=i}O~^xAL)P`*Rv8=xzk4OXD+7-aZEHS==s^x322ughYjAhbprkr9L7+td zbaejr?KcV!JO|pX)pBP{Y KqtJSI4 fGTElToePuhl{+be_D_T84L!C0mV+q{GR3f$3I1%{Z6$0*T;;o{QM$` zI#Fpkj80=_V$unEfr|;eYKOjn^d-O&fAV7Me~OejiUOhhgdz^)*4};{RuE#UnQ{BL zJypZ9xD9xlkV`zk%z(`;0Jh!faclzV-{q;oOBYBX9Cj#K(03^zg0d#58SzSw1EURa zyB?N?GYIRzujs(9vRy)X(SL#_e^PhER7D~p8JUCZP~qVG-^Eg$*y;}<#<>zelA&TM ztTzE=;8*R{{a4??JqFxn523wo9heUlR&`oiwnLS7e=hFvHk0_u1)RVX@8+TxD9!z0 zLJRR%u)m4APCyxZ;wr^@{oxA7!Bh1gvkTt)262V*CC2)6WJ 7Ie?7Mrb|H z7lJOt*qItcl^{>E2!0Skz;+L;3^-toX#VhEKVkDAzYu5Ilh_q_AHf8yGZc6~Uzzb- zOFbObFo0QF<~3fde(XPEZaP->TnwQ}F%UYNc6I{yJMQ}u{zAQOo*#g_C49b_et$sl zsxa4o3@Qx){QvUhR*8GRLA^_!&p{jRP>~Kd&%zr_F@gH7zyLcimU`DWUTDw2T@Rhp zv!41qWHD<$WEI1{^6fQJJjP*+o@sFJ0b`(9OY<&v9y=NkVrg*OiDlNSmjcHwsJ-pD z@PmQ-TYyQ)$h7{+41*%x5g`R|-39-#;z1 z2Fa+aCz6;x`)x^o-8*@ts;&-_6QRztBY7&nYimKmt_uVh%b $(fhD@K*+~tR*IR zxPkNFfPGN1rd0C&cSTOPsPJ1+P+S}br7S?kX}O!BB-|K_`HvO?)T#W=NeS`sy6 N3hCGR6S&pUJa7*&GE~ zZff7F)6sJM(7y#^>ToB1jpk{d5>Va~0tS%YrC+a%5YYqR`sJ!;OB85Ot hI7*xf05Mw6)86m^TVQ(Ct|M(HK++P77yTKBS(jFU|KN?w)|gyz{bv4t2Lgi0 z1>@fq^&Vc|@4~chJtIu)20;+vUI_4WR2dyrfcX4fKcfh8;piVJz;u4^j}p9;lIK~8 z*JN3N(iUJ}-=iw^zw@g*>gNNDl43va7Gv@=Ly=Eo14c9dJ6kY_D4WVV>N%&VudmOM z ^ z&!$TDKL0%qhy@QsCg76Fkx#`ScvEm61e{p4i4`y5`5}Q@_}FzIz>s^NlNdCced-$T zZm-x(yRleu3~m1Y4vJE @E^(x^2}fj zZXfvo`s8=vJIIc-x^G|Vz*Qszai59NcrG5C0D%3++hI6r=#apsC{*#zy#g@oPOZq? z7HYU{&=Y`z|M)eQN@f`tezmPuVFv}+Mo};Ea035=a8T*SAaimwtv21&00T2~qQT9k zM*me1vCsaCE8N~kf0QLZrCtL29|AX|M$l(q&4B&wvW0j;`V!*$>za-lokYk7LLxrQ zx8WMZ%P`md$o)Wv1I|RSc*76CY|?DTiLn5`$FtXXBx`_j;tgo`Wpu_?ax`J^@qcj% zOj2P2C6(!(=O#) =q-3&drDy8P=;1n=R99~RVzqdp{z{Wi=d2ugZKTK|ZvUvtI zQlij&Cr%mwOaRWtt5SxVGE}|0`6x6rbU9JSE@paKw{E9;YFmet;qQ(4G7!}JN`qUj zkoDoR8lcTxO}j*frVDNE)8^R(OpH+(lN}_$%f_~a;r0~O%v$Z>Yd!t5hSZM=wJIcb zo6hvt(g(qFxEzs2w*OJUf@B$xsZ5?*B+C7V%IWvY^Y4GXUv4!@f6;PxCDhf~x$o{| zHVnXsR8O@c);$TZdUz9D{-Gci>d?y3n)TXZ!sE1xm#0$tTWy3mLhb-MCiFnZNW6;t zHv~Aq*<*qe`2R=~2z1Aq^{3DQ0Ydoo#ejceN=nL0rnJ$2iMRgM2SAt|%zGbxh6>Lc zz-G5jX+L`OXgT|%UF>6)Mn&Ly*LF<8|IwcoKk_-9FdxcMAkpYBc~$`|rgsx}l>Ac# zu$cZCn3L`A_;p~IMYmQFlzZ W@QMJ_v&oH3tk$NnW~ zvjD2vOf69t`k-j396QB-K9y9l;cJQC3ByE VN+fpg%|%IMiOw2p ?*@e02DS+ai*@b!#&(x1RN(^YD)$y!MKSx0yp%GRrj-wft37z` ce%*Z5wR5{k5wbIrKugZ6osvM|x!~efw!QJle#%h}oWJTl4UE z04w^o t&%S?8i7lqOS2!nv!5C*fuAj8R0uqi}UQT}A}y({6F! zl9+Zpxhn0c`>6b+P!&H1xLc^8p0@puSTc^+$uw)*&-}AZuYY@;b8dMf|AG_#$#ZpH zeIBJr12+Ak4;(NL{)eSdTB|v&z8WYO#%ZhY*VDXr(MPAe_nO8l>Tm0hDLfrVah--c z(T6w~hATXuJ`FTM@~LPLCQdt3xM AC12`dG+TnSPdRiYi?|O_XKsP3%3`tcCS7 z>8pP=W1QX >H9uShaLMKq!EV-x^$J%}S0w$I?)!pE&Rac{%Vs|_S5ZB&vT6Mu z%`+?BPc1ag&vKK&Jer;MCFKKp%kb0{ 3FhM5Pz?5hov_Q0#5-T=by1k{a=gLk$5xC=YdWxOmgV2TDbhC+0G$3> z`o-Cte@o7mxq|@kg~#in{Az@gEe6%i9HLySLQDwF=jF3x+Uefa+wZT;n%3H!MYM;h zhwQG~Vx315hI08xM$n@^BaZ`_+fVVRG3fX#Y-_cfFraNs^HRTcnxOjLkjG@lA@lgL z&D2@Zwc)N#`Q|%o#XRc$+sQg*#YUY=7fOC(V|dZ|3c0XMaWfg7qOCe@CXeg$11Hdy zvS !O ^a6G