From 3b35c9817b180d344211edf7dd51bccb6cc17335 Mon Sep 17 00:00:00 2001 From: JiaJun <2394389886@qq.com> Date: Mon, 8 Jun 2026 17:59:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(game):=20=E4=BC=98=E5=8C=96=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=8A=A8=E7=94=BB=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=97=A0?= =?UTF-8?q?=E5=A5=96=E5=8A=B1=E7=BB=93=E7=AE=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 替换粒子动画为预加载背景图片,提升加载性能 - 添加桌面端无奖励结算界面显示玩家选择和开奖结果 - 实现消息广播组件的动画效果和状态管理 - 添加代码审查报告文档 - 更新GitNexus索引统计信息 - 调整加载界面布局和样式优化 --- AGENTS.md | 2 +- CLAUDE.md | 2 +- docs/code-review-2026-06-05.md | 53 ++++++ index.html | 14 ++ public/loading/mobile-loading-bg.webp | Bin 0 -> 178920 bytes public/loading/pc-loading-bg.webp | Bin 0 -> 182404 bytes src/assets/animal/1.webp | Bin 5642 -> 8204 bytes src/assets/animal/11.webp | Bin 7130 -> 9420 bytes src/assets/animal/13.webp | Bin 7962 -> 14136 bytes src/assets/animal/15.webp | Bin 8474 -> 12726 bytes src/assets/animal/17.webp | Bin 8790 -> 17048 bytes src/assets/animal/19.webp | Bin 6582 -> 9514 bytes src/assets/animal/21.webp | Bin 6092 -> 10698 bytes src/assets/animal/23.webp | Bin 6158 -> 9710 bytes src/assets/animal/25.webp | Bin 7060 -> 10932 bytes src/assets/animal/27.webp | Bin 5884 -> 8684 bytes src/assets/animal/29.webp | Bin 6098 -> 10424 bytes src/assets/animal/3.webp | Bin 3564 -> 12168 bytes src/assets/animal/31.webp | Bin 10396 -> 16388 bytes src/assets/animal/33.webp | Bin 9372 -> 17312 bytes src/assets/animal/35.webp | Bin 6226 -> 7566 bytes src/assets/animal/5.webp | Bin 10358 -> 18014 bytes src/assets/animal/7.webp | Bin 5582 -> 8090 bytes src/assets/animal/9.webp | Bin 5372 -> 8864 bytes src/components/app-boot-resource-gate.tsx | 64 +++---- src/components/message-broadcast.tsx | 167 +++++++++++++++++ .../desktop/desktop-animal-overlay.tsx | 175 ++++++++++++++++++ .../components/desktop/desktop-status.tsx | 2 +- .../game/components/desktop/desktop-title.tsx | 150 --------------- .../mobile/mobile-animal-overlay.tsx | 175 ++++++++++++++++++ src/hooks/use-auto-hosting-runner.ts | 5 + src/hooks/use-game-realtime-sync.ts | 3 +- src/lib/ws/message-parsers.ts | 9 +- src/locales/en-US.ts | 13 ++ src/locales/id-ID.ts | 13 ++ src/locales/ms-MY.ts | 13 ++ src/locales/zh-CN.ts | 12 ++ src/main/mobile-entry.tsx | 2 +- src/routeTree.gen.ts | 24 +-- src/routes/$lang/ws-test.tsx | 121 ------------ src/type/game.type.ts | 2 + 41 files changed, 681 insertions(+), 340 deletions(-) create mode 100644 docs/code-review-2026-06-05.md create mode 100644 public/loading/mobile-loading-bg.webp create mode 100644 public/loading/pc-loading-bg.webp create mode 100644 src/components/message-broadcast.tsx delete mode 100644 src/features/game/components/desktop/desktop-title.tsx delete mode 100644 src/routes/$lang/ws-test.tsx diff --git a/AGENTS.md b/AGENTS.md index 626e13c..b4454f8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,7 +1,7 @@ # GitNexus — Code Intelligence -This project is indexed by GitNexus as **36-character-flower** (3072 symbols, 6072 relationships, 262 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. +This project is indexed by GitNexus as **36-character-flower** (3087 symbols, 6103 relationships, 263 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first. diff --git a/CLAUDE.md b/CLAUDE.md index 626e13c..b4454f8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # GitNexus — Code Intelligence -This project is indexed by GitNexus as **36-character-flower** (3072 symbols, 6072 relationships, 262 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. +This project is indexed by GitNexus as **36-character-flower** (3087 symbols, 6103 relationships, 263 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first. diff --git a/docs/code-review-2026-06-05.md b/docs/code-review-2026-06-05.md new file mode 100644 index 0000000..1a16e31 --- /dev/null +++ b/docs/code-review-2026-06-05.md @@ -0,0 +1,53 @@ +# 36 字花前端全局代码审查报告 + +审查日期:2026-06-05 + +## 审查范围 + +- 全局代码静态审查 +- GitNexus 索引刷新与调用影响分析 +- `pnpm lint` +- `pnpm build` +- 本地桌面端与移动端页面渲染检查 +- DOM 文本溢出与页面横向滚动检查 + +## 验证结果 + +| 检查项 | 结果 | 备注 | +|---|---|---| +| GitNexus 索引 | 通过 | 已重新运行 `npx gitnexus analyze` | +| `pnpm lint` | 通过 | Biome 检查通过 | +| `pnpm build` | 通过 | 构建成功,但存在较大资源与 chunk | +| 桌面端页面渲染 | 通过,有样式风险 | 页面可渲染,logo 与部分数字文本存在裁切/拥挤风险 | +| 移动端页面渲染 | 通过,有样式风险 | 无页面级横向滚动,部分文本高度溢出 | +| 自动化测试 | 未发现 | 仓库内未发现有效 `test/spec` 测试文件 | + +## 问题清单 + +| 优先级 | 类型 | 位置 | 问题 | 影响 | 建议 | +|---|---|---|---|---|---| +| P0 | 安全 | `src/routes/$lang/ws-test.tsx` | `/ws-test` 测试页硬编码完整 WebSocket URL、`token`、`auth_token`,并且已被打进生产 bundle | 凭证泄露,任何人都可能从静态资源中提取连接信息 | 立刻删除该路由,或仅在开发环境注册;凭证全部移出前端 | +| P0 | 安全 | `.env.production`, `.env.development`, `.env.example`, `src/lib/api/api-client.ts` | `VITE_AUTH_TOKEN_SECRET` 作为前端环境变量参与签名 | `VITE_` 变量会暴露到浏览器,不能作为密钥使用 | 签名逻辑迁到服务端;前端只保存短期 token | +| P1 | 功能风险 | `src/lib/auth/auth-session.ts` | 登出或 token 失效时调用 `localStorage.clear()`、`sessionStorage.clear()` | 会清掉同源下非本项目或非登录相关数据;GitNexus 影响面为 CRITICAL | 改成只删除明确命名的 auth/session key | +| P1 | 性能 | `src/components/app-boot-resource-gate.tsx` | 首屏前 eager 导入并预加载所有图片资源 | 大图会阻塞应用显示,移动端首屏风险高 | 只预加载首屏必要资源,其余按页面、弹窗或交互懒加载 | +| P1 | 性能 | build 输出资源 | `pc-big-reward.json` 约 3MB,`pc-streak.webp` 约 3.5MB,`hall-music.mp3` 约 2.5MB | 首次加载体积偏大,弱网下体验差 | 压缩动效、图片、音频;奖励弹窗和音频按需加载 | +| P2 | 性能 | `src/features/game/audio/global-audio-controller.tsx` | 初始化时为所有音频创建 `Audio` 且设置 `preload='auto'` | 即使用户未开启声音,也可能提前拉取音频 | 用户解锁或启用声音后再加载,或改为 `preload='none'` | +| P2 | 架构/体积 | `src/hooks/use-auto-hosting-runner.ts` | 自动托管 chunk gzip 后仍约 341KB,疑似从 `@/api` barrel 引入过多内容 | PC/移动入口都会受影响 | 检查 `@/api` 导出,改为直接 import 具体 API,拆分 runner 依赖 | +| P2 | 功能一致性 | `src/hooks/use-game-control-vm.ts`, `src/hooks/use-auto-hosting-runner.ts` | 手动下注默认所有号码共用第一项金额;自动托管按金额/玩法分组 | 当前 UI 同步筹码所以暂不一定出错,但未来混合筹码或服务端回填时容易不一致 | 明确业务约束:要么禁止混合金额,要么手动下注也按组提交 | +| P2 | 样式 | `src/style/index.css` | 全局 `design-unit` 基于 `vw`,字体随视口宽度缩放 | 移动/桌面检查发现多处数字文本高度溢出,有裁切风险 | 字体使用固定/rem + 响应式断点,不用 viewport 直接缩放正文 | +| P3 | 样式 | `src/features/game/components/desktop/desktop-animal.tsx`, `src/features/game/components/mobile/mobile-animal.tsx` | 动物格数字区域使用 `overflow-hidden` 与 `leading-none`,DOM 检查有文本裁切 | 小屏或字体渲染差异下数字可能被切顶/切底 | 放宽容器高度/line-height,去掉不必要的隐藏裁切 | +| P3 | 样式 | `src/features/game/components/desktop/desktop-header.tsx` | 桌面截图里 logo 文案视觉上有重叠/裁切感 | 品牌区观感不稳 | 检查 logo 素材比例和容器宽高,必要时换成未裁切素材 | +| P3 | 清理 | `src/hooks/use-topup-vm.ts` | `useTopupVm` 空实现且未被引用 | 死代码增加维护噪音 | 删除或补齐为真实 ViewModel | +| P3 | 文档 | `README.md` | README 仍是 React SPA template/empty scaffold 描述 | 项目交接信息不准确 | 更新为当前项目启动、构建、环境变量、部署说明 | + +## 优先处理建议 + +1. 先处理 P0 安全问题:删除 `/ws-test` 生产暴露入口,移除前端密钥。 +2. 再处理 P1 功能与首屏性能问题:避免全量清 storage,拆掉全资源阻塞预加载。 +3. 然后处理 P2 的体积、音频加载和下注模型一致性问题。 +4. 最后做 P3 样式细节、死代码和文档维护。 + +## 备注 + +- 本次审查未修改业务代码。 +- 仓库目前未发现有效自动化测试文件,后续修复 P0/P1 后建议补充登录态清理、下注提交、首屏渲染和资源加载相关测试。 diff --git a/index.html b/index.html index 3ea8589..406f914 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,20 @@
+ + %>fa$9`Km&k?04Wg>#SxINE&ycY zUkm;F8>5c$fGiM>A&25^f5m&4gZ6r{t zQhNKog0419PidHASaFx5-Oh-_Ey2-&7` zVVBeo3Vth?d8C{DugFP&!-sO|4SpYxQFH5u0r;-)hJ+fC1&94QH|PgWS`FdfEU|B3 zshM77lH9L9E+FAquonz2=WN*#ol@}fa`OSCzq#Ix?L~bg^shZ?$p{ro(j9G$l{o{c z>Ga5!>jd%$L&rZFMWvDhqDyzD(b(D?py|!W^e@Q6>>e$ibQ)7!!z)6(&h{AEc`6O) zXMuNXoo+mqxv(x4FNIM*#)|$>xQt hVP(y!#HOHZveyte)#sCA+pwyT)B*U);-R zXd3D>hTQFfuij>%>cC9WBh>}R+P9WdL)L8f$?-V?AJ3O)ykDfmz*_ff1GbY4%|+ec z5VDsvYkm)b&AC+BMNB^U)nEuOPSEp^LFE(A6>C*m>QiJnix3)Xd=BhVve~^b%+c1_ z73OO0X^Dqr2esp~1}`>&akgZcaMpOZq+$#IHAUg?_q>Tr@v^ms-VUmC4JzoUYb4um z>M*u4+36d -ANmES8n}9fE}x5`V4oEXp21*3+I}tU=wdVIR$ko1H++z z+Z8=QKn?#THShj0(X!uEkJ?Vs>Zq*DgyAVd_Tqs8`B+M{-S0&+h%&9jHp+Bai4}a> zhD@U5*eo_|*W7j< ^IekEV1Jm;ux>KJ)ui|8;|7rAj4~Jeo1~` fH*-QXKkeL z{6&{M<30HM$$?^N0L5hUfz9DqeJ4`uUu`0OF${mh8&dG!+Ag+P= UJe3NpY%*a;krWcn|83`dR07vRn+7 z)mlu%Q+g9{CKGzyGxb(Yu2FrBt6d{H^u({t@MO%8V>m0Pfwvgtk{4!q&8QjfG4Z#z z99PsFB5rlX*|uJNZH;s>>g&AI>~Y4>Ylm=j8}F9H{-hJcEB_6hS6_lKx~@ks2^7Rp zxjx6q;g?{NwUB6s2McsbSgRA!U^Yw>aq}=LNM)E8YWx<+=Cb06x>Ls3orEgN *>*aX0{3&QLG+RXd?e1q?B%-uo6 zYrsg0#JnwCwJ|qD`J4yC2iCcWp=&PZV>M;( Y*svcvQ*+C|`*% zt+(AP zMbH$>7i9<<4O*%ELki~LcRi~?uwxsSfQK^ec0Ul61xDkjG_&G3h}3Szz5_<6)U>tt z&1U?`g=lcc#&n M{eetD<5d%K$#9%nU_8;rf`$DK7{UR(RtF@d_@%0e+0U~k?rMSZ4r zb%IW;i$pD8FRSQ-ZuGKQiX9@fr%@ xCGz4WmL5?;Ox7kpclmANC059JmnaR~BNhOeG_4d^`J zAf)%IXn8a_&n@G-V`uAPIzzC59*EeUNG%d5Rif|(()9Qw`MieeBBG^1K rR*=;+}Wa2D9OH`I+G5+ldsmI z{#o^8Ik_Yo#72A85*UZUsn)g+PRZ=t7VAkLm>8tnv$Uz$r|KGCnBzt9i(2+z&Y;Y0 zOF9qIRV}tx8A;2l7G&nkF|&(BgID6&&rhF1S5&rBANq3_EO =UVDKoA3!Tgo`(Z8;MY5yaeRsYu5w_W A3X>s$WaX!4wa^fl51m_=ASu?Kvn|^VGw#Ml9k|&LlHYY#!;kZI zgg%{MC{3gn$=ox9#)Lo1$ZW%bOV&tS=||qt`EL*wezjseAfz@!bVoPysC+qSt7Ka| znib>z$>g4Lv^t_*cw=({yqgDboS#vlzrAaIl{_xtS9E5{$7VGx1afr|EM(9W*X0ob zBly*?nv5$at1Z2vBSn+|?#I?4V cK4IyHk(k$hA-) zG0WAq4_7Z}psRI8B2c@zEP;RS*cC}VD2*yM8hZiRaxH@GIcs8q$h3>%AwF5yh^(U1 zs-8jms^}uJjjO%`AK`{7E@WgYl&}JF`levoL`kjSnyo3_3l1}RdweDy^{Jw=ws7wF zsG+8!z4xPURM>h=;h~J%eSt9JhrtT-T))Q_CB&`|hONjBLd8gXoXwg{x9!_A%RM~2 z6t)bT>4iWm;#=u2(HOEAIrBADObbBY?&D0BKC+yeu+E7Yj(}nq$*}K+TgTrxqp@rh z^p7UD-W9i9LDKi0YAYnilo4#Ncq;^o7Cyuz6fxi#GF2SPZ@0O5qGCC!w}UJbaO8W( zbzaqQCFNDYV%?oO*A@=H*S4^37*fWO7C8=NtF2G;X)+?IoAdD_`$^{=mBeN>WA?Il zV{BZ+ElYm?aN8{Eg`}-G<<3=$pqXRSaR_fL(>BJZZWLEu3K%TM61TER?*}fG&3eH~ zajgol@ZT-t^CJ Ism(RRjv!S7Nncnfpy&ic`^)) zKtha6LdfLRE;K2Yp-ACh1Q-@Zo9h(yzi2a&T->5A?q@0EDHr#EE!=Ms$dM(OC6uTw z-0Cp$9?91F@AT#kNNu_aEUh*()0^ gI!@$Ae$ zTIiSQq=eueywr%wb5Ia%;pv1@i*!H}t9j=fvAp&=9j&ryKdd1@MmPQC;X#*fI^EW_ z#|zeH$V~K-#|(B!?@Cj$zhhB1Te4@zFDd^~_GLQo9kgx??68``9uW?RCvXP9ObKRk zZJmJ1@EAE1F}Ku!2=BQ{_vm$brsw!qG2$yDjEb8mf=GV{>W6UxKhycsE!`&!?ntaV zZ3XrS$yDQJ>kbhN4r(6f-N$y(3sC$C{o|RNMg|252;n2)Ns`wqNfz3ngGp zt|{(tO!}(`LtSHAM#;=AGXrMM8g`1A zgnZ~+y+m>SQ9a7@ClKT|puTpO=776CQq+Oj3hk&y54B-|+N8w*e55c JS6_e(2wo_a7*OUrHZPOkYw@RQ=`$YA@;oFMb)&ull#==XF>IRF4fx>?zYq} zzV`s6bxNXs1uqh6UAmbochNID6uQRLb@mqEge%AQLxQ0&OWS?JTr;L2CRjdvd9U0Z zp8OlSu8g}UKt!i;CIfn3X(w$!PlJDLy{l@`D1EMjL0TGL)r7w#>%fHz>SVZ@rWz!q zePwkXG rWM;}d=Dv#5xIdG!qyhulPyaMS ziR)M%zV{|d2BFe@G$)oq1k+vpotZR(vMQT}-1=OAovL(kf5h`~n8=#kFmkPdtOB*K ze8$YEZbniJZxDK0%FboGqgf78IWtBUpDq#@iy6p|`t9VtD$Gb{hu9 _nVE^#P{dJh``a4Uw8vyA@c)=BE`dAJGR55Zc{ET&j zT|heI1O+3aG%!H;5{~FZT*JV2qsgO&l-gR(hp^PzxuP1-)6rTA?-A5}#6OKd!P^(8 zCj|&GCeP+@kB4#%%sP+tx08fpgd|w&Tfsw@{V*^P+Szrja$gt ONn+NO#*tREKI $Bk+wnVXw^7IdG4zM->{-0 zz*l4H76vG#-%792XT1BL58K4~96WCI^n)&cerl9K%uRTOwf&h_+RyIIwR$rV3jq&X zL#uYnjYAdrJsnSA5buKL)=h?0Kz;f_A=)$(XEGF@T_N9#F3MaYgYD|6@bjS9!-RAp zPkPyDo=S_9c^RB@R{$-AI*CrvABg9}aTlrvLebR&xi-J>2v-XD!=Dfvzut?0M%)RQ zC%PGbB9UQEgvqtO39^z-WGYLmcZ1upZla3wf?W4w($h*z>1=YO@%6#R=IB~khPmoZ zB2FY%U{FF?B8hN>+`5CH5J-YtDo2izq9&+El+XGtXrsBk@DcMotW*38i&c*pxJ|V1 zjS<;l6N0BOwc+(o;nNR!?nK>i$z(*xE9n=pSBAbV(4Iy7WYswGH$$4fo1A;gu1-qU zT5Qh6&2F#8gG#b|k5^ExE7k)SDTC4{i;!$&Vxi*u 9zogPRx=r-X}aJKS~YltQ$0Lkk+k(`S4RNxFWQ zoQIks#J0mr?>uZO;Lt~%=D^vZhSC2)p};N0X8g7qF5P6H@wr0hmwULuNN)4@wqqoi z31K3!?2i5G+f-H }ek4-oU&Ukj$j4);?=2Lo$u{aw z>(>pfXWZYiIH`1*Qt8|nZ9C<@)q(YolAc+ll%f6FK=n8u8N4rx$kCm_M!Gj*4x~}R z9T6d#cB7!+JNi(9CbB$;btg*qbPTdrwt_HN!g2S1MQIcyLADzvt5 LTHlmrvuGnM%nzTEzd;f)5b0pY)l*lm3GA`>k(7qN7bP{$?k?~G #Cun+%nUS&4Jj gb|@Y~9RF z{DbR(yk<*ke^5 zvs 61s&?q=|mLZ0{t`0okZdtYOI8N{$8&WQ3tlRfdbKQaP*zv zBNq*LiBpqgH7F=3k(rc|D}iu$?L8&PTD|^x%vN9bjv&nVe00}r<}~H1GhG#s9q@EI zI#l}`u*VbK8kbt`q8&;1C-l$TE%^(4nNi^6nO8cQ2X|zp+p&XUl0d`(B`5c1er_ye zBZzm&Lsx@89Ag6<2?hoMysk9FRHUhvWK@@Zg*1FUhjIBuKtRA-OAnXh_nXrQrT|{e z_orehFoBHVw!Tx~_qr?=Oj^X*lPHofRg#K0S@4;r5M~0EtaE|9axSzAzh}TLIG(7# z+oT{vruc;!LxPcTg|yc!$}@3j+V!(U(m*8< *al>Te)a9-jzzKMc8yRO*9mY^S?2-7?$78&S(p0i$(RfkQfK+@fJ(_mAI`N^uj6=2176eHC1E! z4$I29)_2_ @~>%pMYVTWe$^ZO_AVsZk6JTJ=SiqfES z6uVjhH&3G2k A_ znSO*5v)v=~JG^;9I8A2^NNNxGa(UQ47@7CNoF&Y5{M`{!9uhAA7n+zdv_R$WSEL3S z(HgTq!`FA}(X|>saD-U^eelBqij?!!=;K)Vi^1LPbPE0>ljnR)(L@&>iA&0#2MKgL zss!VC3751l=rJ8$lKjV(0W|VFAs+}*WxA#l2Z0(7aZMN^nJk4j )V;`Rvy*HZY24K;)F{vRIV7C2zC7tkvORss)jDUtM;FO4+ z>!;aGiWFf^?566;e}PVi4~%#ViKNI|Q>u^Vh_7%;)bI1qEz&r2GK?vPWhWYDYSX&7(LDl5al2lEi)bo&VR4_^xc@gB 36x@D|e Ru@fE9w&}WL?zu7Jb5`n7PAkv0P;y4c`pdXwddpN`lFv(l_60W!%;{vfW5^G~gu3EZJ@jNdL+(2x6Q8ctK zVNR=qCaXPRi+h`CTtMk{=kd-0iv1SQs;Z4oIaQ$Arz$NzwmMpg=$X|+NutK<$$ zs)+6K2&p697wvpT3nQX7X5@=E?0V+pKR-Qv{n#$4>l4aua4v5GTu4^3^R96aw`|7@ zUCVeM^GIGH29}#$Sg94sRZl#ID%MU6Vr#IX>PJZ=#6k|4_Ov;sN`mM1u;?UZ9U*Nl z0XF+;P*YSRs)xnfzMf7e%Dlb3@@Z=b=>A*Ml9OkTtJi{rBG$0XXbzs#ZRJO*)U8`* zUam0H;DB`S=Oei&l~U`G+_<@VbnJs`QE9`k6oT~Mv8mh`1l7vsH5N_QUE`O&ZMTf8 z&s#;;3r1z5f?&h8NHYET2{v~!Eo}kIL7;mMH*BDHpjJ^hW3EzDjBfALCyI}2aoO~^ zY?3)?Y%9mI5!`+#9nK%Rave$K7y}is@OgiRN!i-Qq#A*!{X97CoXveq>8re#vqlWD zog5G{sH3OoW7-CIf+gQVdqej?1Tr7h*z1g0qmeQc(SIda{4iz9JSiy8^s$p>iJ)sI zrGU2-Mw2xZad$?S_Wc&jOW`EyUfjGE1yL>mCKzhs)+|KO&UJQ3mD-c0yN*?=^VrUv z@X;Ueo%-jUJen{hDWjg;u?XBo#k 2&eYY9!QT9(1`c6}5V3X=I_ ziG{L0Z`3F$qK2ljh^Uxw>eRba&UinZiNcZtjeEbX+@GhyGZ2Sl4+*}1+-J4m5DDY) zvD>(Nc#8i^d&^BM+A?^XuH@iY1XDM#KjeX)35Ke8;^DHJOjN(&CPCWRGtxbfl~Ozu zJMIv6 A-HR0A1sJ5qW{m6mWrG=wcL{4>x0#ugO@qYO={5PUJ z&e3kBP}*6T2!@|SNPqM+jKjsjwPZ4ZJtx|csMs`Ui?fTp)EFU3(m>lcIXu^(muY09 zZo%RRC)vD97PuBE=0KoDt(CbhsdORVxtG1EhBI%-y@Z4$3C`ld9DGC%>k)R+q*Y6P zMemJ*3Q}(@?uGub@5#k(9hbbAMQ%4D5apT*-v6q48EU%`inCP@g9a2EBKy^m8U-a# z=Tzo?) &xXJ*3Eq8qeU~N8RqKn NDqDJhDt<%9&BLY-NUI1P-qv3Rvjhu*hayv}|0jcL^ z(oh)~W;|v%&ET{JyW_Mxb8z&lb1wA#lGIc>+Jl{JD25jeb727x?dRGx_}F0(cqJa4S^kgIZ_ShXkWg)L}Zik#F~t`3I;YP zo9GySLe%KJ8loKHh*ctZjpMHT?q6Y%!QUIfZsHx)+hwijxPYg%3bKweEvZHIYmE$D z52r@1vWV2}lCI`wtSCSzcIG2N!U`SQFEsxu2dHkEQ_Gr;h6a119Gno;cI7OSzLPQT zc2+d2^6ialUjrcUoz5S4OYU8;&u<;aGYf}qcY5KLo$t@{34no^H7y7bJn{HsFCIET zTZLtQRU!M {W9t+(wo6}gMup!Q}4*tSaVc}_g3_EDfAQ7$Hp zj{?l`G^i=C^Y)3qXT=^{!J~ZTeIj*Je>F1ym~%gWa2EDegvna$MA{ml+pjoooV;N0 z4f`=Kl*ip;-65{ZjGTMF-VBa@xBZ|Y1t{BkgqinA9n~-vC|y$<75&td>^>z6Sn! xq{=`=DdgBHxR&fI?ye>&(w5u`Ptd^)#BE^E`(#05M2$iRFqVBM1qtG)ZLh zoOeTww&2-E3ffGt-E(^+^0G7Duqzl|$C%ayj7}j@acsHp78q@`JrJ{Je)!=8R zQ8Rs@yS$z5vy21@&RpF8$Z~A-{Xy(<&QtUMoPEKs}XaQEB8K}wR2pQ<7B zTbJ|=I+61jC#a%mnGimg7d9QetSnFM`kw;m37F3SM$@j*D_wO)-@~`>5{4z{vYrVk zr1n7nv}jD9zx0bUvgxn|R2)1sqQX^cSr8v5wqO4XOrQ1hZk5?WH%ccq?8f31u=GJw zYY*OOtHK=?x@JBETt8PLIh)H$G7P_vA0Dc%0p(Zs+(zbNcF?w(DVF9t1=m_*7`IH@ zi2t6|hlu9cR;jUCP#30#d6+?hMpU-PVPTp_PdW^ZTytk+nQ1Uj>XCXz-AqevoAri+ z)_67JRrIP@M@5ny1BKrMK`fP0TloiT%aF0jh?^b@l*SOo@DFL8mOkQcLX*fZ|a2m&jiWb6G5NR}QzKgRh!b%~KmKbkxBrzJwlN$@JiqCL`UGm@NMKgO> zo`1`)j5lW?nkQ#@JhrC}dOO0VGdI1SQU8tXYMfV{b)jS+uoUha#ssaL@it@Dvxc{D zJ@%XZEOXq2f2_U&SYq)yL=p8OXka^^-?O$hNVU&UablJm%G>NHK?%)4!xu`yQJ? zTrJ6TRewks3m>+Z#-z>u9nYKq9@ATd4a^`?7Uq0eThT>+TJ&OP{T#gyP@(J3jRrdA zw2K#Ad4{h Kb6& zmEPm<;eFcd*-x-$*$AW4;@{_Vy|f_&<})x {to zt;1e$!B7+^oL!HnVadHqCt;S%LM!lHMovXozkU@nBsAN4>;*pTp8NX{c**&&%B_Fz zYEtQrXsu|49)VJlgN+$8ccvZLVyKpi0~&FTNG2^b$aQ~|L93`Ke($wd&6EFXFVk)J z-R#(+rtNPFy}T76;}SE!W092|T910856{d>|0AX>n4;ryOMlo;78UdmH?wYZzu+rG zUg`R10;m=y4TYuezvsk?Aob7~s8VFtNe%Iy^E+F8TXF+ue`LA4338xwM}L;t7!hNk zQ$ITxyOfWHyz%1Jzq1Ai#N&+gDERTWNrLx=bT4po {ED=jb-6pFgHD0*Nf+F;v2lY&7S$5zmF5>h{1;wI@SA=grKF zh#Vf(*q|q*FRF!CcCcd+_zm-s#+dY!D^Nzxy3hYll;}QtOPJ8Q1WbMOV#E?u%gh){ zBit%P*d$TN>N}<+2Le2sk&q2uEoIOjg5*@+I<((U9JMAg55D7Wc0_ ?$3|>=CHd0k2UO|1Je$~ zAn0KAL)5w)R5q~+K0X4xcZ<2)aAH1#Lw(v2=6Fod>L)GOtwo{ZTzayXd(G4|_M?2L>NXJ 9 zXt sNBPOEciH zc!zU+M+8h8N(|SbYFGV@N}OFW1z1UkC~eb*E-I7VCA?$|hC0Bs&tqLjiuLFqp^Ii3 zM#mbzL3SHheku>1N(J#QTsUM#<%x*ui+?Ns^QY`ws6@}39Fobk{3pneb-W}FqbDcA z5Y8BO05@e-!# }@iJ0gEK@FNBff`#>- zh^h?|07{nH0tow)?D5;wi?AzJX;d25Gvv3IeJI$=UtT6~76JWL&%Sui3MOqZqw-@| zxtmsMpg!t@uM3;J8Z~xT8(6cYb@k__3T{*zeEH0-j{^>W0lzk7asy!RMP%6t%hA%r zRHIcOQ6-cTd|hl|Od&&Bw|4Gd2tZl<3_Ik=HNC6vnyo0F)oclz0&8E!S^hjczn6 zMJ$>u7pkn_vS-J3#){P) CV699rDn0QdWPKZF8um{Ceb10hUBy@f=m<_93?~-ilVg zICA7=rwG(uKvZiH4&q!XQ}tQf$FrPBT{HxICBTc<4YQJOK?Q7Arb|mDfS+ARy&e0m zVnEW1yK>iU+B93jL6!Fi;0eWvF^OU6Qz4j;Yg{G(9nS1{*hGg~%CsE~`>$3WjKFaM zTAJ^;v~a@AiM0l6ulwG5WK*koPN}3dmt588W%4HO&!q)2RUt_dy# 1-mQ}nP=M5nIgAvJG^Nuzh4 zj*hPaToA-fGj=Mz(ewt{=D!a^Azi=F&LqT~qopeGEJMYHQJllJ)*nNTkYammv18QK zgK$Vg9=c%U=zoQBY0L?qq;WV umaN4iz|YM!*n}Q39mH6>^Ndbq!8IP|IJ) zRh>nNTr>Rk)*1yrH`14iYH*x=<79@1jdxHZ)6k9XlGx85HZ`;bN+YY6W!h{23iV zmRiv~Dbw8JO$D+s~8-S7@5ggb(cetog!Tf229QVsI%F2@1>oeTuK`$}fc7y2?Vu zt7Cr{;{Knsrtz&I*P<~1aBJ;+#jYdM$U{7Q9~0c$UZ%tjAE6%Q^$70vV!V=0`g4>w z8TM`eGZWEJR?T3`?Q+r7!(8(Wn={U14ZBf59cHF@7dH~6t}3hOzk+X87_5{=BHYcX zOe$&r3>!@<3W$8u`*bnK>4_JOAC~yR`DudY5nIof=KXILfy+;;?HYR|F%}*8Sn)|j z8JnauBa%*~%*)!bTBpSq9XT$&C_hI!kTL$_-d|$22j>*~aQJQR%3CU?bhm6*ov-(4 zgydI`Y) )={Bw+A)_~f+?7#$- `4^$5Mrq8$)0T+@v$Z0oY8J?&8j- z!lEz4T!^HuD7+pf*czQ211IeWL|2m$`jD>tQ_IshpU%*2M18}9edL8sBlh$+xLfKV zFCBFXsA|NPl~aKO6ttjvd&qGJiwG~C_5NDK=QbnDGrex}*P0%%ArT= c+@T~OyPYEki$k0 zEQnT~Yl{b{Tun!s6m{PNf= cPIiE2afr+EW!>AME>D380Q;QfYYcu3xD1+e zEK*)WX((CZ1oKFtv vMfG$}^kfM*Dl4?q82|0Lh-lS#FKcaVg1vQq2~ zg03f)zvXgP`q%P%L M@tJt#?hVFaVbHyyjt?10?RE*{*}s#*aj6 z5mCC~B!{Rao>){ J75 z)gC{)$ ;9kBT&$kH`a4bnh!Q_OQ?`Z fCc{@fUqw~s5k)kYdiPFB;j6r2lXqcCRKoK+^O>>6Q z?*!g$5=J4<*hZ_N$kIygnw(Nt<+a?F^+0>csWScggjPV_4G`B{ Oov${(1 zlk cEfuC!hmh${7W@RE>l^QgW#8ggYH< z84fRA$pMQOpa%i&IRn?XI t41SuE#}u!;Z2+ct!AlA16s#<0w1iZtd&CwUxI7O@inm+a`zWU~34 z2YDV%gealO0^1SMDF#7*0 gc|<{x~)8w`-nGt@#P-)PE;tC13s4|A4h1o3YDrgDiM2#2HwY6fEsm15MS_tiT5& z7U}|{_J}sp0cgEaXhG@3drQrqhvaPqZc*(t87aEuUTc?dBgPRP it^0XEU?aVo=M43KTIS zcBfL04&WIHQXEU0tXV%~1HUiwej31!g;O{#=*lZEb&A-lU QYpj&%&9rtuK2l|`>6)GEG;6b6DBA6A9)?m@d;ZnD`=6bn-=dHbV0W2 z!FV)Sjgp}+ENU?)ytY#)ppOA6^XV|Sla3WwUvnnJ*;zrZA7x)w{7vn%LtM+`vMjmT zt}TE_?wYAkXSq(7S$hs~JCvE}g}MiZQBc|F+^j7TM=8<(>iML-PvpdVh#Q%X-UguD zuh2sPVnhQe`y5EXBAdq1Yq7K@*<#=U_=6?Suec7AGB{q2T|k@Rge$K3B(Y87S1Kd1 z591ptSQztm4@lhzW)(1J1Wx$V*aFg1H%s|OOhjnieky!x(2mcSqNVIthH6o){xHUa zBDl=>5JBpzR&T%nLIcw4R;|t<#>Veb8?pBF2%t8>!@Ynv4! NSBm6UVx zkj%vml|K#h?Z7ifSJfOZ*PT|6TtX-ht_F+oi5;mQRLpq}XwKt|IwB#DKkLIq<>Cy7 z7xDSlg|Ub-P%-5IU=Sv$O7>)b8B)@I{C!GJsJ5Ws>pYuMEmHlD^*A5&n6nd49Q8+Y zL7L5Q>Hso2tWvx{9Z(kVkkI=gbEi0Xpa4%NrOz>!(36kuO>CtPA1~Q+ofPDNUz<)| z>*kwvt@;_ci32_yK>d&XHD-R1cIfEkJJditovV5mu#H@xt;m~16H+rXbp;H) Z>T7#WDQg{42o9O?cm5K;fK zPTRC4x<$&D0`}G{=+?_U_o#SEz64Vhb^@eXG7%Jv&0Av5!x_kYleQBUWe6;R$QWpz z{UGE~vND3*Y!A3#eOE+mzJ~yC>FdJ7Z$V?<9KEpI--DV(fHPreozLuAnc&5UwO{Sf z#y a!8zR5b*X8!1{rYx zmOAECiIpCOF1L#%_(A!NfEJz)(TPpBKW|E8Qf~_B2iAr)HdntizS+vz@P6LogzYeu z_%g;2Fevi|jwnjKitapuuK=2?(pxnND@4dh9WbtQtE93z?7+*+W-3`PyS7MgFKuNG zciqh|wrJ~KDr}77#Q<|rOTk}3a>bKy1|wxj^Vz$w{W2a2IrP6d=BDpdPs`83$Z>ZM zIgZ}(NAZ{^3mP= Lp>H+gjRl_MbAMl5k;XNRFkAq D&5zM~uR zYPcwDe-mc!&0PoBvPzYg>J$Vvja|F~jK1}B5qC!et_m>n;w_|a;Avie*R1EQ!px_a z_aXTL&FY0lZvtq@j-Yz`z>8eGlsMMtRW4^#4LkerEz9iKW~tm8<)I)jz0sFDmAv3S zM~AgKgLY5%bI1I?5u{*`a(;26D6;<3d!UI=MQT`(*^3gI@KnoL71rt#CN$dffAvB+ zf-MHZxLX3IV2E*dR f)zA=H8aL$oKh^VSk5lyVbPo_Xa*!2!$s(Z|sWG=aJal_}wTVfz zv(c%PF!)4D`;|m2>So{I)rq$&%42%BP0 f!V!T8I_ zUF>2FUSJ+csk9oN1hc;}`oft%X7*@e*Wl(E8hZzt-v!vfhKauq8PYsS@Ho9_*dMn- zCo8`j;Lj*o|Eb=wK!!N3hI>HTD~#u2Dub3YYz{i!!zD8qmropn30T6`(a#rF=2V zb1 Aqhw`V@Mm^a7H0+CWd;KcYR)YXe1Z2-EkV U)Jj)iPM1a2QM>Mcnl-tro!KXnL8kKY;@>&U5rQEGw3x5)IZkBwin&<-C#y z_(|0{yDMyAgdAvq2o7FDq5qAF@eGeXwt6)RA1u(F-T*Beklz0};!RJN&WMS9 c(4IY z)26RtH~&!He&!nv$iX^;EQ{jRF(x&UV@hcmVRScalDwgYgoE%?DKO`}d}ZDn($ip# z%0jt)&dzSTUNJVDE>9<2L6Boy@I!r%upQ^#^WU^BUoGYU$SAp0nJLUrc5^FB504~; zH472=47OISt0&~-9gdjaHd>N~^yG^L>|C7PD!uK6RXzy3tLQOqN)-@tTYa-7SvL|r zb!~NsIb{yUMsvX?+^`J+w2WRomf*U 3z1 zPTBTRbB8=QmM-DGmpTPTCFBK(F f`?r% z`L@1;5jXi=MoSf|_O -7 z8_t6*b-n5&DvYb;#S2galxgEjGM0&$myC4`Ox;4Vjh&otUS zUD?1bfrHypT$MA!3Db4`5u%|L{;j(Ny839)-(|j-X|#ZNmzB-|QlWHo@kG{5L2M#x zAkE#;12ZBm3tSC3qZpi*k8N$8dZokiU~iIbFb@`{B4yI FEJS6i6^G2u=1|+6h|C1B-#lJRYm;Mc((L9QIbShCGmsF1gM{lTp{Kt- zXayX3KpN(sJy}G0D514;uc%*2KFiz2m+pd%>!xox$X2|bjeWGdZSwCwI&Unncn6qM zpuv3NGDRomAUh2rSF-!9NBO`ux(Rxe8rt)Gawz=O*FwiR0i)f^YvLown3 iBhEQ3%!vrtcaMFl$pb7;o zquH(QK9hgK>Cp3h$8-4&caaMEPN(yoZDBA)n*r0gbPKYm?48`d%uxVZ|3~Ft5_o=4 z%^IUzckg7)U$3Y{=(PDnOUY DV4#4mzJgEgBkN@e$kr5>aI0v(~fk= zy#Z9QwDN-eB9K23$54wcO8bLcnF}~GX*PuvtwDHkpq4LX>%!5lQ|AA5xQFcO@%1px zz8w50M8WCX{zpG4XJyxFf3=5W;YF^tB{<0k2vmzvsGZX)3UyJ;pd2J4brd9VC=pl? zI(Y )>z+su26SrS8n0ts96>wd4qL#w8WwM-EpYz59UNUKFEq8 zA6rQ4XcQkfh2UX*$I^{(8x{};5*tFC_ g$As1O(aB_( zFm;W$lC0Wqg^t@;_=1d)rN<%EW*?3Icdp;;|LQPl#Wr0I95NSt&9dmH%62<@?2mc* zit9DHr1VY;JhV&>^Wv&s`%E-z43-0!KKg|=qf{kVHVm=RjFPuQWsV;^fR-mu3lneG z(BTrguqVURB-uXmUrA}5X!<-@ic&+84le6*e-||p4uG-Lk@4lCczk(!ea7&-bbvt; zTMDj_#;stelHMZ5V->f=f<9yadd8$~VsfJVE|?)$FH*31vBI}VGVJ)w{#`zGGx=B* zV2r;2yfjyWfBw6OO;J%D5G$4v4KC3(aL$1|+4m?6E*S?8qi7rKv0}cAliD34=4*9u z)2a%=u-4aVwxH#wPIG{}6#OI_Y2_<_;xtA<|H3dy4wAc{u`xf%ec3$+F%A;EbLs>< z `0!yhqY;yE9*Hjme#cIUzmw-LVC+MfgzUJxF8OL{y^0fAfpVJ>G z{;<#)p`UkD;epES9cQm9Ei$d+-CA<41Y4*`Pa$Y|>K4UQNAV5D+~Q}yq&EgDd*?A> zl~pEUpG7RcdP(H#9`%jp5t(3TZ{H?VaMj&p L0;VT2KQXeZA28B7JpPjL>XEz8 zDbl^7$~9oV$R5BkqUvb?{=-;%&S}#{qtXpV%;{g|?zL>&s_+ldY@t(F6vyq2HqZb6 zOH1WEznJtg_AzyrMvj{Y^V3tdjcJAOq=q_dwaa0^aO>{jce8=VL?2{6V(shn5(O&Z zzv^TqAy5@uTH4$mby-;p!ZSr+(GcSW{)kWV|H<$2>F67Wmb)xJ@xV{nN9wXjieLRV z{_0^B4g<7Q56Ds#a1~t^LQ;fN?g+U}Xg%A>Q!Ost(ki8>T*dbi{v%6x&4SkY#!4 ziwiSLJuO}WK{2XWThyFbYA`2`(vn)V-fpd5%ZN@Z(HTwp)l&I<>-kZW62iw6PJJZv z7D;N+bB(s~L9DbQ;R!wB7u$k7uCQq|x69n9iDzp4oU0=Qe4D_a1hGFs1@Zc*_VDWF zUVdV?=XLcjT9kkB No^v^|U@XW`;2mtj?6GG)6 zh{Lp(+s5ttM`uypt(<9no{a&X&u7#>82{=_IP=_q!`y+wSoN6QWDv^tgBk>pX8(O- ztWx1+Z^>jRZQUR?2V&izhX`sHmJ}H mniTFLeY{nyY -jgI(_1)6+Ta# )WxK3Au z!ujnr^nAuh(Gp!5zn9Sv6J$*aDLCk>X*xD|eiF;jE>O!Vm~GsqWG&=?`2=ki_dyO_ zqaF--5Tm*ke1q?8uyQl4c%(EiEP^Y<7)LW?Khb_=k^%nzh8KyJ_Dw$;zFE0BmOyft z->^+pJ2D%wyHdOtne2JlqlcXlV-Fs>oC3mfK2%8?92&9!1$a-F)blSxit2bNL3cYl z-5#(p`>zxSXv8P{@o1WO%t=?BhWSQH&8u?2m8RA?UqX&BGBdaAUySo ^NYH?pW)w>S?kDRoX{Sj#bI;%J>g5fjyM`lJ zqS{NdqSe#ig1(6*^1e!{4)bt36~0D_+P9}L`Q$rhb_cqoeirO#gdooZ`0WvGh!q$d zl`IktTd1X6o)H7@$qOTz4ZLT*NU_^45 h^q`5TTrj$ZNK6Up^F&`Nz~&ci28sVP zt|wyMC77Ee;}b^({}O%65qvY1K;H|_VQy-ZXS=D!W)wP|p7E~dVmV&zc8kLuOgN(; zHXP-+%>$?xafX!WK|Pwo6<6oqIE~kWpwq;j=eldksivPjAK_}SazG4eTtje z86uBFsjK!T(nOO=76~qi#xmQT`zLE6{7M#xnoO|1L5MRZNsch`!VjgV%=FhUfZ&lI zBFXxrRU4-MUzV{j*CP6*c&AA+{8}#7(9)|k9K}PE&o{@d96>s@F{}6oQxEBO@BSDi z2gie?-N4& 2QHTf36GY&8IaWI=OkgA^<9UC`UeM1u6xnr&`)SJYw=V|@wOTQ z0{p@9_HzrP%3ZGfuNj&5SmH+p|4zYiMQ>n>H#NO1RR~9NCQCHp42Du-|MpOj165~& zZ|Y6yQbc9__P1sxXxsL&sM3iUt&2QR4!ps!GutILx7vK?mh18u=n(Ui21wE+%S=N2 zVN97vFL03!(__gI(Qx`E4L&2v49s1$Twh?&zq2&qxiUF@N*k2Y^myCN?SK3}%#_7d z^NK1QKA^-%RFC;zO4hA|H&CklK37HT-^r`U3+%vMQ3M^$3eWD2)gK8;f5ajCbcu3d z%C1Y^20O{&_++zSIj)>TW<>V{`w!bL2U2ItZVoR_% aZ&)VV-PI7y;B=$384Q<@vpz_j!ct>a`TA zd&~kxlqyFDK4BmPU4-PdGtU8P1$ABSCj;7b=B8ZWD8k>BIqf6=Y2GBfFn+ELi0qCr zFNps(xMLMKJ%fs$BTu3W2~t<=wxvspSM92bbmnN0YIW-o26` chxn=6HA)q0Y%t#l+ak64*T#g(`5r&S4*;7(zy>Nd^lOX> zgmm_)a<*S{>a^3K$}g8GkY~ r&z-yoJCXb-h+2~qSyZXvnS{(0EK6t~xr$ckh)VJ?|h)zWyG56Nn;=T`KjN2$zmD)J* znw+`htZo#SD&Fjj${!1hTwPeWX*)f%Lo?oK+IB-v{YgESCD#sz2~|zY(WHzZ5`@NW zLl8d(2rvvm2MBhwKs#4a_(#rUTXievtj&e@>d9db{-e%Fl9i)>E>(#p*9lIZ=lvA7 zgMA33OW)A|Y?r49_!lH?CNz5n=2v4Vs&UOd*vfm)zFPsHBU|sTC5Rr|hJ&KADx;wt z3kKd_+-X21bb8ik{>Z1ZqJrxaW@!tR-Ob|jq*&tRJ+qlIvTM2jz32}#p404H!UuU9 zG4Qm2{Y*+XsG9Ms`o11x9tw-IRq-Lq2tXdvm$#L!e&SmQi4o57`DVP9r+>u!BVvXN z-P;u1K URMZ`$vZHn3KsHJVhAWP`!uXOB$13^%Hsn!ev0!!nHV>!agtgUdazz zx >^<<_St%3(Y6%d6I3U<$v! z)CmjEMJ|QW5Rw-k`UU}hT>o67*3bX_c(!jo3rs{q=?Agf{sMFNj2L&t{|$e)N+mfm z1uPSzl3Q1BqE=MYtDC*YeJ)Y(1};c3E1;B6?jQ Lvo$U2zSObh|cWd+EKSW8PuN+lXDwoJYmuiqhR-o@Nx!#N4*DWYoatI7&?ICJ! zc@34)A6+F6`f6_#8KoLu`piNg>yuCsUZ^YwgD^YhpQMD;v=%sREi<0J=K6;>!S3t| zWIIoXXfOoc-yV5d^W;_KdW@1m(1#Yrpn;&7?A|6GD?QMMHAdWzYnkzAzM*&U{lvH$ zzV@i$FRH+}yME#OxWn!rE(#zms@?E98CW8|5!__N6PUxY&FiG+#W^~chbGsqT-QvH zDRyeh3wt%&Opm|Rz&i4OuY;aM{Hc@g pc!kg-lAPg7lo(=YVbTp9pxvbX}{Gekk7jUS6cz+Aks&e&&jV(0dnK{)L-H z_3-~p+uZ3OeQ&Cx25~E(d!LjzuK4t6*;HX=XdS$mleu3IicM~%1?u}7>{oE8P{T%l zmc_r9lL^ZX@7oXA *ZKm}&}=mJk1vwd}@-YJ5UDfRV$ zMG&d16CXv>4w>xC6( =hu2}Tp#dAz-s5<>$vJPb_kgb##^tZ4G?+B3Y} zY&)Qn(v_084f(_M4mt;*jz@lv zGk- 90#lB^himWD}<%|4Wr?#7K=$(%kz9WG11>J74-a}9eirlw76Cn7q_IZuUE zSuKXmqtfC8u^g~%s&JGOgv-QkGq27Qvx|ahEkQ350KYvlUz&_$k1@^|_%>0IezD;X zoA`zdO!FQ9xK^ARN^KsnC&IDYWbJPqkwq<0iJRfsg_AgN!E%;ksNdGzbw-5};f2=k zC#yg?#57Ev?%cOT;nf$#`4o`w+)Hh~u)xf+NXH*~4|d@`sP$6G;I|46S9OMzi;<0* zjqmlIybhV YhAe>L={L$C 3)nnm_@gn;}BvArtoeSe29%TtEIU2D8V Ca rc5!B#hY2Fo&qe)@EV zpzh-X6~~TK6q++9`dexVBt7D6!E+fiivWc`{!88%lhgpIpD1~Lf()sjkupEym&MuR z62{nyW@_pp)xK)=m(N-jLhU0Rr2V(vm85KVN}t27+Dl_)rHQE7nL+aqoZf?`LlYGO z%U`K9GqZZhBeiMTf>h$^*OnBM61+!EAdnt4-sY(mLDo8r0{b*^LtyOH_M zcbPN>?`p({>q1*Tb>H92i=O*i-DH3WjXF~N0+>_{a0ZrACj!6(x&gM$C6@bO7k8CP z2t+
hZv3~9WIdM=I-ufTg;B(qXSbtpb_MM=7NCr65HE*4m_&m0jg zCQfOmt+0)KZY|0kShP8Zq_}=62zB4nXtBy@y^no4X*2?ouB4(4J{ZcaC%F7A^tAIk z93}Bf|Lg0nBn(DUOpe0^=#~&{7`(O2v#=}`##=SD%qvQ|CJfh~V=z44+p;cXn>iiY z3nw<%vxhRi&-iRiMzfHd2>-*cc_&-Lo3??tp|j(Snx52Zbs~e=sIkhsRLNW?T|TJG zMw8AOEx^^eLxF0hlQqBHyD)+vaS=gc0}RnUFFci}nhLzC?r&~6MP029XiVeW*7l2* z0vF7JjIw|)<#kWgs}@Zd*+LbK`Cv%}w0IfimDrAI(4#F$*6$~JGu})tc=k;6KWm5z z0a4fg{}6kY!~fsu;NWW_2C!&iQ5;lp^X1107T0Qj<-BWbpmV<=r}#|S aCGC#G^%h8ic~0m|3?KhCN?ln@Sg&w|x|4!Gv3iF^^4gQh)nctcz_9x k*fmH)?jAJdVwxAbF3Wv+U`Ty2{d4%qoBx7O)I-k7wHha#k9Dd(5s!umAV33Ta>x z-lUvi%nlgsXW0K_fvTuHX|TpZAAHsit)5N0WwdeXMCEe{Bpon90W }m?v=rVs#vyyIh6FN24yYwoK#I5m1R+NMg--s=2XoGNdSm%29Qk3aBCo(8l zd{J$McKg36n^|^TY1%_}*ykNg(L99D$oPIC^N+L6LQ&eA$Cin*sXz8(g0$$#ykWk? zJfcX;3*+7XHRHuVq7lz_P9zoiguA3^HQ8<)2!z?p>B{^O)1nT*IYm}aU9hv^UvYul z@_nv#{k+;L_# IfX{qmsmKE07UxT&v99E`uS(+D7j2|=*rMfu zO)(%dM)Ym)s1sU^ogI5?PZTfz#$s$a`>6Mu&+q#qOx9ZXG;t;dyjrd|kuL#3DLN=} z&GKEZEopVNOR5_`C!wnVWSm&b7Mk3|H9D`&Y2@T2nt|-B+X+(FGQo~`U~cVE6Mkz0 zb2LVJYne}-bo@qRDLugLd2*}?PYuokP9L*v@F5+RVpqZC;_wAOKvk-VI5TlCRsHV- zL_d^wKyn+kJ}9uuLc(bSFB&=ox&c`U!2rYBm6hx@n?_7KC-7g_2UR(Cy M-oXb^r?1M!v<1 zz#fV3+As=_rb#iVnEA~QELC-cEe>-+z+G?j`blo8;qrh}>j&HKK0Y>!f&U1gkCyT; zN~?lTtgUM&nk8NT7UTqkFh@>c(GdZ@^euJBU@rpHCGK^w6K9&L2DCylZ@P#GqBi47 zI0|Rtgt9jrc_NrmJXJb+jj4n>@O!j^YYFEfVG)0Bfz@OOzXZAwC*k;~FN 5E zRtqeV{|Me=+vRvOCKD+lY!(W0brZQ9G~F@iYQ*<1{k-MjZqtpX@t~?k6ihYek=o6O zPLBYj?4;J}Ah@ktxGZLkp0JuqhbET{nn(%TD-bOmgkb+jN<&dgrr+&p=>ThQ`r }Il}pha5^MvucZWhB zjWnJ|?dYP5=}-b;y2}cKI=Eg?qF0jEP)S5wXjC350LX#$ZQT-!(K_-}fn1Gxy%nLn zfh2Qf=X93mTMHOZi0etZsH8sJ&4>6oVfSd%x32@L@(*0<-MP*oY6sfY;s|^% +zKj0N{F;Bl)XEjF!DPhd!hHBJ2a$F?LY*qQ|REaQJ89FVwsIXK-UkiulVo1Us zpW(TJ{fW{DG2t*9qjxC9ms8**z3S6+dF~@(|C`5m5>5DLx+B5A!?LOQ8P Fnw!%4hxU-d2#|`uvXU2#0| <6jO~?Kn5s~|l1@kDEQ;AHHU!wo{kO6R zxtdVAtN-{vJ`X5GJ>PRFWB2%VhNac Zwd&;Q>aU&g<*AfUi5-Nknz zod(N3RB@*s-t2ZJUsS{VS-bkA1XIm4cV>0A4gP+j)}g(ENdcLGN61vsgq%ar%t=+y zR-nYy{Ym}6vMY{cc7!D%5O9B+7^Kb!&C56rCnaDgBj<-VvxCeW%!hSvI6qwch77a= zRxHZxt~RrD+#M|VioR @&e@v@<5e)M^wBtE0)Bxa|Wlb*X5uDLY|wst#4` z4R%;Qt&v)wt~Kr3#4Ay3B}9P5iuDPI_K=~eJyx~>xz2cB%Q-WTfaO`CLk;QhO4yM* zj2~+|zB|axw{r&po$fcTWaBnb9 ys6^ESKBp~e!s*(pJeI%HBUp;sCsIl^%l)Ly&HYza@Ihbt-kyb)t9xODs) z3>?j4#sUC1(){h57r+ro0h8q;Zye80$z%-yyc#MPp~JJw26P1AD01Q!cGIXJ6fl5Q zYmz`#+o9#%y6 H$;&|2Zz*G+siJ$=_)d4D*^OzlrnltTHUfhMM09rI{m!GRP<#*9P!>Vy# zgJAouT|x#ON}1CY0Y0ryi^VRJz&;__etdl!6k|xE3GcOWgXS3l3*0pY-^I4Q=HO ySB+}KntXZAyX=NDTnfGB*9(q5TJNR4i0nYG h>Qw0Iz)wqj$$1fOEYm;`8Z(K4B5!~me4Yw0ug ujyVDubKNkq7W}^xH>u^Fygz4mUA@=%* zh8!hFG<-)A`8X*M5y1qvVV5^C#YvdpzAajq&Yo(m$>p8z 6*m9A=_g^ff;B?4QWKF(}@cbu09MC*1RT?Wwo5yPX$Czxk6cn$C&yL zWup{j-7;CeT79O8-!ZZfLmN7wmr6Kz6VA=UJOkaiFua`+BzXlwj|Z7^WTP9sAmp+d zrhzWi8Lqu_mKFbDXFgM0`1t=vv2BL1Px5SjYs1z=rXZO zg!+bEOAkp6e>lENzdQ2K6+3M;#Hwgp0 z)V_{EMMsh#xn3dH;7-9xqX%_$J5}b%kcdLln?n@+l!gm54NjW@RFPQ{tH#gGdt;o^ znG%A<(3i2WEa!b{eyv|g@lpZ+X&6JnMO%VHm5DjxA^xBu@9?(|w;hxjY|PfwgVRlz zE4})4S*!WU3csqjQ|F7RL;rh1ifdRJrQ }&g**DeowR?@pDU?O$ZWd9zaWJJF^|PB;8DamH>+aQB_qMCm7^BEQfI-J zTJves{||sJ#~rsSe%Pu|EITrD9e1<1ew5+pqExgnlKe2P5<0C+xVc+;WDzP*>smIn zHGKsk)vCpUfUk8zVE@~ZQAgCa74#F1qs@CLmf$}|x_uy=Q@SlZWsvtN{M;O$wk^BN z41wiW^HL;;0&gi^@i m?I}K8oB+Qg<^MhxRV#k< zGuJ91qF=+ulQNLgq2FM-0%EKFr&K;|&%~$ZRHJIvZXo29-RjK>0r~{d6C$fs#6;Ic z6x*BfxLP7%=0+^o;Q+N@Ipamlk??X 0vlLz;0NhX#HGI8{FU8wLuV7E8Tl!<5GI%mdupb&S20b7{C`!g{7VaL1)ZSgE4tXx z*Y6^1j-`ntcY^0(u1L4G6b_raJrQpj%rz|z1vSwGbYw!2!FAJCvt+`dofox5|KFNf zo{9f_=~x)H?m#>eQI~J&-JjEHY`8d;c1%=mC4%v`iQy=64Gq8wsj;+ylpw7IQ|h;A zfn@$%V=6qv>?6Z=$j8C1Pu@sSNzJWB;fkhtxC|fbh&tnU)L74{{wPeO=?;nG+0Ob< zC5adJ! &S`O+8!Y&&M>6I#paH+%+4COB2B!wrpara*c^@ z)-A@~|3KNYXqF@n|H{W(Qf`^{*@oOMDz7r?*8v8L%`1z=g_&-2kbK;{?s{8{y8G9p zEMi&6+hZ1+Qwl|pApny=Y`-v+R(0-`{|u {_}ij@ zD*Ba{B2J55LpIevH9ZHZY}#G$#$HaYNNl`eL?BMM6H~3hM}U-ld~`#y{r)VsONr&9 zwGg<*@`_T1!KH~LvRYtiH4r{)WhG-mBmF*|4EYckVr$YGf*V|Mdkj9J!j4d)&Aa-0 zDFpV9GmnS$27bbahdkmhu>MT#pOaLD6%u7$LCd7;7sIAi zpRV1gelLks&;BpSvdmA2GW!zRurI#3-5oA9o1+xu?wT_=5B8pmOX~?uVDD zANWL?_^Y}o1+yPiXTh)NFBRZG%Im~J{X&v0Wy4HA#Yab*+-IrwEK)K+_`{IGK$%4A z`RB~st%L_G=!bf_ z=UA8rF=aTgpi2&$w4}Z*!oZ)LrWAmlbrN|y=?X|t@MhPxiBuEDzAutHbNrPkYsHkx z;t#~Oa)Nbm-dp+t9;`PWvTG4gdi4;hPrm( *RQO7AF5h&1}&&ock7vZrhN5c?Qs5=|sV=t3a-0WuQY#<@46f$YzGqtAP z=;&>vRD%hAq*fJagFCMmbDvAaxxpcTlV~y&9!38AFSFU!i)ax+`r(iZYoqR~Im3vG zAMGTxz3(9*`J&{_IbH_hC56JVWs{(&p7m!7+HOu#Nxn!%5N?zAGvNfxNe5sV6$I8b zO%d|eY=zH>MClXmf1#g6dbg1i9~S%uq_k9qJme_a%8EBq8CXO6S3;ctLh#$9)s0V^ z;U`4fz!vQ&a=kL?l_ME{XLGP{(6sBS>FG2g3gf*W&+>>MeKeGYGiDQ&UDhjyR-Tje z@+4m7F{()Y@%?qYb@^CqG-K+mYVDk8Q%#mHYhBW1sT$kWIKU4$t(-O0I%V7SP3!e< z`I3KAX2+$83qo!_SGFL_{@^@H;cI$lCf5DWD{wK1fqkHX4ghsXdSoe>Lq_)x0C&xV z4uFB3FN8tvg^p_`YzeniCC3Moa9SPX&MUx$6a3##wi~>+5Ywqck`X7 -?Sw zYT12tuEM>pGZ+BOIMRp!S&>WnQg7(D1o^uPrNSZ$@>=s9fDtK$^mQ*Elf+sNfYoiw zT6lpv=5={!u#}`2=be)fgA Dsvn5&s-1}PvaqjbBF`;emlk>pum4E5 z^Y1SoszyeyeWa)jArE=0Wj%#PJX|(jj@vTcY#KXaD>bmA@87Gt&d1YsMtrDIwL~p= zISRt>xeh>0pb 137F zqE9m%6)Wru^+5s>0^rl%t+)eLVS8iaYog5(tX<+lC_dFRDb_bMOZ{R3;iCv*1TfwT z+kM{+ARu`>CO4H}L A6S0NGh-P##|ws{Xw z4oi4|4{SOeYq~iu^u~<%1wZ1{IjDWI;FG^8d@ughJK3WH`ol4Lq`~PLdYEo6X^OHl z!8QDWNSqjzs3-lc1C*dJUCF#lC~wMLljog%_>4o>Hrj*?PNW`u0TqLW`#%kJu}bBs z`@VcgZl}bKE*!+7HcglyBZH(rf}+87V(N95RMLpA#r>~M9(CUHk1jzDosUN4E3Xzl z_v!P?TEupCm;#u;z=tFCuiBTp(kMcKezt>q%Z_XfxEy3m?sRjTC #(@q_;*dTK%Kvd5%SGIdeRUk{gKnMr`qc_)(hS%3WF z{?3k8n@kMvs77uo4?4a7Ptf82@|ujCWA6Bk0INc3@l37bjQ!qLr)0 s zggO8CW2-nV8h{IfZD<&lNRa}f@F?fI4`3dgNUAM3&ilpS=KB>zqu+GC 7!$m8 zAo6II_v2=OlivzKqia)8ovMt&9HPyODZ~aH(VW$z3n~TE-V1pez(HQMH#bFVb<4Fb zj(fvvg!7%Gydv8c+WfNd;{BYP^^CdYrt$j7_V4RKHEVGOq0cX (u4xl;Q~H) zFf1SZ!df|n%myHtt9+&Ky^=dF|M|z|sX5_#Pd*))@qp%NNf+*vRY{az|FWpR|3d!Y zWR?Zq+*dh-C-$t0tDNwNXYKSDE-SxHwsPP2rE*W&cK9!;r Oms8&^Z)dF% zis!BqcRQkGNm~0=fxhME0-BPLVFij?1tY^5VPF5|mj`rvzcFn_Ro|4%6xf@{xm@>Z zOd%& IjMa4N4`!l4j z4?o7`Pt%Xz`EdL}COVt+;A}YwD= `hj?#c)qtm$7K!Ww!dQP)*aIBbcSB#XW zEzq=sfv`v9N>o7D+{fZYfltcvg+XKs=2Z??CVoTX*ZMS+6V%G+MRL*d+e=1ksuDm9 zIDzvvI&Vkxn}|cM)j)?5*S~vxG_NvDqBNrE7Hzy#p!kPhe`_`6{>CI5cW1L;H`)8V z-Zivk!)_^m)|A&X$758Ca0-lhd~GC`Mg=WBmko0g%8HRSn5qm2*B^5>2bON$oZ8yB zBJ*7xA~%utsul2(%)L-tgSjkY3xNlre`B9zx92xhC;WMD#9`rH@1*^dJI7%1VQ8 2zHdBNZe75K{O2RU98W~p=|RS%W VU7oeEwVF~RW*290T6rQVC7KQjAGC};3j{z>NoTg>zW8Dp1}FewFOI7X zi)NHS@eD*!d6h|%TFVR{nqgEHK5d$~;iQbf_m6tJIfU#eT%Awh?-*xhdBpqg#Ksr@ zcUt4zFmUL<{O6)B)-jy>S^Z=kV8}C+&1Knbwud6$`~`r^2&~UN=LqGJLY1dgA?K%Z zXcCe(^(u9)OsVNg%Zda7x|-{aRA~Fu6&~6MC^b5$^c;{aoIR~?tKCtxL*w~M8C{7T zj-7)z?WtV$TV{HcX+SvP0Jp|m)o_5! >$dO-%e2^9PFFksDcGX{p}VK zTwNWXKqol}4J|12Ulw8)Xd}a1gL>YD>NH#lp6nQM+B(d%==c1;=d#{j40spSi7k|* zjbf(*Z~Hm~)xUNnj_!<6*6BwIRdBr}`L_KVEns1Xvp+pj4HmEEf^r;vYMLDr)I&+# zjtZo5ouyfsQp-|x-^ikiJC|fGtFa>f#fpL0;(2_5rIWL&Vk7}C=>8)_!{Od!3Za0= zd1bNusNcFUG?PlBEkqfTiCyiPlK`u8VJdvO(g5~d{~ccW8D9&l;XPsXoQB?-m!sDb z%tVnComEx?fagQ#Wx2Ffc%)%Ztf-V)feK8$ZY&(qwfuB(GjbYFE`1h5EYX_8{D`s) zF+krnZr<|tc|2e#=vU%Va7RT*o)l^N1By%h_vzc-O_DjI-r#w|8LE)hEo7?XZx(Dh z&EH}+PvV0XKIw_CRL*D?H-HucD*|DwB<2nUc$bY?shlZ{IbSq!!2Kp zI}^1vIfAAmpu*}?X|6DE1qJF{MBVDS=y#4Q!(AVMFfV^!51K|H{6vut;`dVV#gK6n z*UA@UOcpPVc=L}FdiS` 1+F4zOBM+?(yTkjGVEb0SLzXJ zAS_Xh_}sCQOH3D4Ka6hmlVpIMkw}m >JZ7UY24^Z5(~*JHh9 zJxv}Wz08p~N7?z2X9`KIzW)y=wp6H#EWUy z_HeA@N%otzZryOycF9KGzrW4?eAtWhnaEXYf)}3L9Rq`494`5;#Lw=R+)xUuXxZ_b z0O1%7`R1w21aLYbo@Z44YlEe7NjmpBFfYPMad$bQIK-vUAAg>DVX892B%SP(VpKDA zl}D55`#_${lI3s~!lRkqlMUGym`!7EINmDOj5_o-@8eC8%wTvTHRhDOBeCv$O%ZWL zjpNBHf0N@Y^IvjAe^GgRbAjQU;Gr)7KYE5OH`n_)Y*Gmu)$*p;7!2{51SvpMWsD4F z{nF#R-{mPXkU!nICi<^qUAS$~k}HtF8QI+5S8GFb5)uOY^hO5xg9&zfef%nT%3(2t zlL8RMK{%2%lM=1&Su Jq*i|jJ6dT{F+%DI6c*+e!u*ipLy_=-ajhn zqc#Shyb4GLe3^e?j}6_%tliw!C~)E@EN@i*_s0KbY&%BU=w1ZTT#-^{?bVygNJw-f)# zQeXV(;r8tuQ _Qr>`)ey z7&rYjnSzL}d@~a1$Yuz+(B$ F2C+BA4G4EV5G%`+DS{x-kJJvtzZNTh{8O`m&XaCCQ_l4e?rhj(nYx%ztk zZSFuEpC>3`WAY7$50k^QV2C#LYru0YaDl(;7f4Sm&iWA%_ms FN0KoG2;>1-r;4-6Ms-#E%)4)0AL_Y}*l8w9aaUQP#E8 zP(Vs@!fxO@s0W55r2pW0uW>t5_6qnQ;odK0kE^*Huf3HQ 7BypQDnghhP<>)#}$Q@2Gajn=pjazV2xs3uLgL37kF8HTpjTbh58IR*;vQSPy$ zt!%O(5!U$H1;`cFfMfZer)d!D1+ZXEk8z4OUQyC;S?sPvAa3>f|F4(0vp3i;e440Z zqC6*e!r*&1MawD00T9CpaIC1pme;(LLruxYeg#M26{D!Y{d=kYI|m+tpu`?TX!kai zLDu=>C^uohB!p47h636(#YtJ*b>AqG{Byx{5^}Br%SVpzOuzYU?j2-Nbf1enxxLBv z=c33gtVJ8Jp+TBL0lTD~UgH2IL^yv890Ej&Gxp}IF+5ee4qbM2kd@npDP5~(7d+)1 zxiomf=`lB1zYcK*(O;AND=TiAxX6mwc<#_>A0cy*I!O`Sgd)hyX+!fJ g*GDkW?KPYmQ$!AMXu@g&N36W)4Izog|E;Cio;RD%RCh$31P} z(VgxE-_J#7t8$O~ay6Iijj37R@z}U!7Uigj#Jvlkyd$COQK%hs!N-=;?w+PmxRn|Y zGck$G6gX{%=B6C!*@MX|!g)I&8P)#ci6eW^{e20szSk$136Rqnld0~X*1nFxl_8OZ zx|>NmoF3})ck@JQ%373nCBK^J*C}XWQ+88{2r!bp&{PShn7#~w1m-z+s$5Lw_tjIT zL%HrxF*XYyK>>eE<#Q0RF|8Ag=A}QzGFdtY2cE91CHa25uy6b=d%nXbS4Cp}# qXeg8@2 IPQ`i^Z?st>TR1YcBq-Gog *HbQ3E|13&Y%z(6FPPO5 zbbIl)c=)@e$ahJNCsuliIL94`k*GB(q&(!MyY2w>Y0$Bbje teG&a3qR}s&`AD~Witsi zAd{U3-JlS59K(~KsjPU=K5q0HV0f~|<7zr@nDzdxz;~!n3#}GU9pzqCgv93jG0T)( zZ|XqOPih?uzr2LmydkDdJR6sx@n0EA4w<=E(z<4?{e~|?+Dud+3#1P^i^oIkP1&yg z$2<&S5corVl9RpP*^T@0rwBdwG_|y48W@yK(N3uC1myN)^dm0WDDAcwf}8HR*g`y! zxPuD(Uv6h=CD@?U$)b@YD1=%mIXm)M5^O!G6kV!-t{MiDV-XiwY;3V>AMPn7&|3k| z?EKpbW6fEVE0~Ht-6)wwyV4lqMCgowX&r7o%NeNpEN=sr`%hF^ wM5Q=I7fLe}uFf*U z#PdgmnB#-NHg=Hy2SNuB%MV)ma3J1D-k&}r_h_``?w#{V?l;jX;ZulQzeZzT{B7vM zCuAyFbu1^@(#zvDo}JNfD*~>QKaG(S1$jmPb`|s3`&xfe$Q2|BCQtLz%3C-EcnNp2 z7q|&lGT79R+sX@i#`62&)e->PP5ct=Q1hYzcHA^1uo_Om%Y!fqoTb&^Kp>57DPFpi zGzEz^7)kfyZ)=!K !Z?^_2p* MMrI%qMz-Gw^N!0WDcCZMx ze@yWZZ?MU*(6%MaT2_*5Z%iuW^FMj2RO?}rT@c&6^$`J{`HTAGa2`)G%=8#&P_WzF z$Ot4g-QeVMkyoIQDAFFB&-7=vZC#DIl&X3CG$^%>w@jpev{;m?=iJknk8pST8SQA3 z42(Z^sUK}bIum2gFG+>OCI_}ueEj&PFKIb@_#wO>aCzz4DrocX@oJE6hQG7E!=V}u zlG-lU0_Z261uc4&;`(+%9_BB1BAI=tTNU^n8H)M|<_{BkyG7XaNC1KLxjh8v_<_-6 z(PXb1;+%2-jRsAO^f4@ x-buY; 69u z$&Wnnujqb8C*&oN2@WKxfqKY#%B6sH;zjy|4l+b+;bonG({&3g8@*+*;sj$>){2@t zAX5?&`yXDhzFExHw@u$-_OQVOZ#{!08q_r0sp=wr*RaAxE1FvGJv&8>;S}90p|X+9 zQC?+ULtbZ8SokM-&nID?ByVERP9@SQASYx5@X7NkV}ODzF{a5%i*^yb^$_)-pqNW( z8jwr5&>M+-X8i{CC&6(lSWGgO!zs9b_0Qpj^)N5WJ00SiSd(xm*#SErZ%5q<0k_cX zW~}A!;ER8hb|)xfV@oME8AzSIE?6!K>E(|Un|h+uS==-OBX(X*1LJP<`iVTYY_ZmZ zYTs=J{ukY3xZUd<2o85rgR}0_oO%9OMcb|h)+E@mpVmT46!+u=zGdt)yFnx^f++Wc zBdAe7iUQpld(lUB7Y9S{-W(o2T$G>dX2MZI5SBQNk^~!QPWkledT8^_GZKLa?|6+W zig{$9rn)KN{W(<=AhNOqI5C|(JQ|QE;aF7<_f#a`jX(66`#s@7E>(E!kQ`5N^i KmW}8Fe>C2Z#UT3pkBD}JXsXec@66uz1(urT5f|qF)rRgu|--R zFSQF~5or1Hl@>Rc0#LF7T=zzRu{Tfmh!FWyByG%?J2N$e<@fRsMcc?HWlU#oVXYU{ z6=g}Wpb?%J&@a_El&V8c&vIPH`S{;9bs$v{c_jynWS1MgV|T1>^^U}bPK{Y5AT- (MUCPZGO5e1M4&L)w;2 kC-=_|bT0vFS& z{-$z=LVb=&7rLV$UoHgfgcz)3+VCiuxc|{fXMEsJq=*8TWa`gO)Jx0mJ%%`t%%0Yh z2hBe_ji~(+m1w)dQfy>zPSS8GAVHd0eVzH}WK0R!Vo&|FCx{&tG{U^+fhpM(OasF) zzee-?x>=zE+=X8h1R}gAR32I4qhZy1A 4?_?W|-37g~*GDzhVSq0+6gSgC}h59IKg$JH0EPBu+lh+ mIpEbjI%s zA4gR&3N2GB9w!9Z&@n>1zT%Psc0(L6-Vvy7fbvk^-fs)oW|k?y$Qb8anl&l=Wfc<= z`RUllA_XcM+V=CEI`g97lm_*V!V!}ZUA!1kF}%Lwk^-p$g7e=N_6x-}tZG&6`@gMz z0>&`bsw}?Q)sn43safN06$r7r6dJ@{XJ!8(6V)XDrWCIYis{3t=c2bF!$9i!5g+TY z9|LxZqncN3n^m(7kRXksEkj0_WO7KKnRST?I;4I|1KIRAZD~jv+%BQG43R*ckjCBT ztq_22#X+nf6SKLPdW=QmwUH^jxDdMycrt$Q0H#fvlwc3)az@y>)1XU=^X>AEtaTFt zc0f+0-aIhuPO8VW-7d%v@|lT8Id&K+jNf_Mg 2PJ=S6302;02$>|8kYLN3)R@_FD=gH_;CKu*XB)Sf{RvnCcF5~I-ZNf|D> zPh#Zr-2*OIaKQsg4bJYzWaUNc56|9M #lBBz$ z*=VufR|MKTIi-~iaH7eyW#v??1xM5X@!nsAT~AKm=vvNVniX4Y;p!;6VMbX7ff=;h z>)ZHjjsXw!OoP#7L-9$1+(-k2nciw#3E32h0q0gAM7!fcM=l-TI24i+;qE>4Q@8u7 z5|Biv{WciKEivXaFcXN76SahZwKSqQ6S4w!K_AnID?L7di=G7}5_@YRqv8185slul z YT^yVf_CJA)m)x|uc@Dbqb*pw|YElm{lthZUymND3lcasKFU^tZB2*xJ=2 z|KbM}fS(O!c@kft7Czc7LuF!4c9xO$R&y91Nvx`9?14^zx-_2(bnO-;1p|clF^(5_ znB%Kbh @36_R z#2BRCeGgKjJNhAv3E2TV76;pF5U=o!zu#j#q8r#liZSA1KPg6^)d;eIn3HD0n`80_ zBK;4qax(9@ mAVu9BZ7LJHJv&Lp z9Zz13ccd}X6DG}sqqN6d7ij+ ?ZfbG zAa f#<6>_g&6XKM0OTA-& ztra6N!oI}+YgD7KM=;5?4v@X}|ERH~dgvPfq=8O=o#nw{^Xq;!j`aO@?NRqv)kAjd zPNx~wDNAI4osh=e=k+H=;p%Lgtv%!up6PA6Q{qjAgxRON{@<0m)`%lK9+Ry3NZy^J zi)Gg+?d8ggCAGKkv8FfE;L3~9M&Ok18+S^_r+m*? !m?tg;PX|$OH zuEyZ#<8~55*vO|bKQj>wpy_pdG0!nfn-Kd-HXK5aY@)xhxu8^yg_@POq=Xg+H@q29 zV|T1 j;8H+OV@~-NJ~VH0Vbz|UqQ> iA#NG%^I1E-D}yb#}3& z+91C3*3KSGas)zja;0~qbB!y!_#XdpkS@{vvW+7)z~NAhA@l8ebICtv+YAj3qI?p1 z{{y1N?^u)-7HoCIP^su~GzsGWsSxoVW#29Ek6GR_<*{+#9l(42#VYdEB5m=ouf}o) zQ#2^2QoK#u)t(wIJHSg6t{#CTc9_|XFv+l&;bkA%!wB+Cr=FZJnJp6 o%!_-`0GEjT(J zP5#m&my@1Jo}{FIwX<7?V`i9Q+@U>}rEZ1uqGZ{yl^-;aB32jQ=Rg?8`W~I4$0A@( z$J^08J4KE~N7ftgaCh#^81n3 BzE^y!E9_2x- VgjC8MkH-?j35Tw!U?^Yjg}3QtoH@680!hHAsN^J%GzEk zS^5!3i;%a5n91wJIoskZTxsyXU!D&4@qLI&m|UKO6SLcqS*&t;9Zt`A#%0?&oo-2A z51|>s?|VHw9ieqL*)jlCEIk$U%VILHl6-r6Zf%^_Lp=4tsQ=6h*$q^z2urHN=F3i* zv5Vp5k6bR=%Uhld7&ra*818->Nq8iNcvkc6oleZ~su;+J=!d*lGVPs74|&FA+HSc! z&K|!fp#+fkkh;>kE?mwFU1{;{%T@X5g+)IXsqWhPBu`=y^}dDhY RwNc6-H4*O%tII+7XTTg%{97$2GRqgEkS55B6R90%cb z91He9ACLV~diMy@M7@Rqdj!F=j#8iQ{cx34{< K6w~#Ja6@dbXC-*3_ac>^+Tpu{Ktm*2 pj?>^;VUuDU z`!8Qjh6L<{AQ|c6lKK0j9xD+RRYu6BkXMwO34gq**mDj>MWwLGxD@Pwosbi<1u(lR zfF7L6|J#(jQ+O)` JKUDc zbzvm<^@#F@oZO||?ElJPeVZceB>%Mk*^aCvpC07DR%UY!(|&_j=9}~#7R+^FB+h#! zvmIDTK0V24rWO)UTOk<4U;zI8H8B(bI?1$HUdkjOpu?^tH}Kc`bB8RmSeJ>?zq@+E z+P}XoW#qkB3m*d+OEm^qWmc0=l@&QzL~i`VS&S^=qT-J2M$jXmFro@=X_{7%PT{A4 zJFB{ZDx0L1f4 M(+Mp{z~<)v_pspHH|1^-h7r(T29iR6Obr!_y7ggjt;`AUKjN%|l-n?>1(E>SApM zJb8zPpzmbM;ECdcEr#~{<=c_A5}5f1|79dutqllT=|I%sd#_8rEuI?>tmXu1L%AXs zeYRdh-msp*$T6eK#lE1MuQ^wq^TC1oH5R2elT&U9D1IOx@GC_W+AAx2(E1Hc(NYuF zQE>wYl=dnwvf2`e-sTTnPb)d#mfBnB=+Pm9E~l&V(32`M$o4PL2*TdltVRr?{p?6j ztKzQDGeCHqH4X^jiXUtP1TdD%)S3-6fa`YL$ddEa#SaJASs~fGPPK@lRJ2x9h!d1| z7yd#t2qK6p6!x_lv;a@S?MG!OmnqqtDjoHaFF-IiP3mvm8}QX)6{nq}!IvNJLFZhn z8n@z}f5*{EmbeEruamAa9>7J29ikq1tzzUju0e>g;rb~-;jy&M9KO_g#A2StW|~O7 zq<0Q$vsi*xb>87}VymN}o3@l=&eJCx`a9P37uNBU2?$5OunFwE;D{fha8rP))INH= zs9=QqA{KczKnw?+HXy>|+GXDw0a=JuH65{o&N%PjCWU1>JKY=dwsq(z^`uHN+f+4~ zm$W!LxW2-}c)vjgRrz7oFrQLJG{QF(4s+3Uc~7}I6P`D-`C8ozQK0AjEG@-PbA|1C zIv?<+9TAd@A Im>6C5M1VooE#3VM9*z+O14=#Z7<`^&?jV@L zm}PVx?GwW=uY){xx(W-r=-?og+&VDp04(LA1IrQG{mD7FS^|HmCMK43%?jC0zut1G zN-W_O2`{(yraT(9+Tw*4)u5f29HR)B7|E)0w1)b2iH*jgbPeoraWv%5EYK`XZ#8-u zBxhB(1f()%C9+orYS0?oy(a)SbeS$^q$U(2dv_sXxfEe9_bFc7>I}Q!?eS8IM5uf) zkNb0iJ$9uKLVg+!J)F(LJZZvnoXKGy-6ZAIYbt|1@*cI5+tWHso(v#`MO;h2ECTyR zar=}Su5DV>Jr5rBayIP74u?=#jYILVUDX)}fJ-6z2XF&$c^n}y3}Ok#zLoh|$qHoH zf$I3ZAkcIc*_!X7dvDC;!3_+c{87RN$Hfe-Rtc&-X3uQkHYD6B+|^A#=pB0e$ydLc zoXgyK1neImSV8B6vgJtBnbY-C&L^&bqcdYofs<98Y<-m+Al_d7pNCEXj3Y=Z%NyCt z=Qy7u-);)YnY@`Gl&dmc+}Yo`l&}Fhp^ETSQ^5VAB3gdoJ?nmi^Z4v0$vXRE`y4q2 z^QYNmJ&Pc0TFJb;Dy*#UpLJ!YQ-_O9cSSuN131>j+1`S){Pq7>b90z^sG1D=E=h=t z=Kc~t)su&W)f50JNh&iO6N^T-S1*MFw)@1#+?OK~Y_k3%tv3lLPLt1TYtQ1- ZL3)xj#9AcF5)k2 Agx^Y;m)X+$g|OI$n4A zfwAjUU5WBan%(7pCf!uaicB?m01jr+0Z9EXY;%Rqv}B)?fQ64BOnJiJ!5*^)Sj;dN zstccu>aAITd>|VOF45aL1W*f0k5z4nkXVqjCF;GaqtPZX4!cwG{F17wNSo8x0>xlM zS)R0?BOE$?g0usvqTLi@>r`HZ=Z2Lfi@fM^-oZm>aiWEyCBa~ @rA~_mA WQV^<8*$LRzTCx)y4_#IFDW8@8q?&V7mimh8&e16-5UF0i&z6e@qSU z!#5BB3|-kXIY++|u*MDA4xcD12o!R0I{*L|N~Zv|iqqoVek$1reg#}}9>Rf|=6o 0^(@T{h)5nNDZd(O{B_u z`_E+-1Rrw;ZuDy}ds&XY;^DRl B=%GOCTSMfM?jxj+{}}wx{Q$O~F*;;2f;YNS zfHeTp2BhZpl9?Pq4&<0{01K5L)Dsy}PTPZ5*t)6HANW+|^4yn)x2AbrUVoS16KOy^ zr4Brv2T>XsI4-Z?2}o2?HJb3sH>$a*ag?QmTC$WXLeM?>=o *;Ztv9rs4iG$P@>9Qi`T%C``rh2;KWjQZdgH=l~WDT)X@`05k&Bp!{}_5MO8p zmEwF$lZ74()$Oa8R39pawW(@ex>Vr#HGg7vryGDS#18?{j3Z&Q7P7P^I(mN=gsTSM zw+?y3VxQgHZ%k!*DxkUmJJJAU6MGtavG&9QG|B)63}>5^%3vnD9Mt1+5aB-okidm< z_@ZkPvp5I1z^h=-5!Np?=33QZIyHan=%6@fuA`BGHxqX0OB&a6Hz})_; |n<-x$UP)kfn+j?~r!n|6Tzq eizIw$=itpy1ef~W9N(q>?8i9*C3+3d&TZt-5S!IUrJ(LGiG2#ZKy0=@^9 zM8a*ZofK;{Cy)e7w6t{M2wun$Q|KNbXsk_1n6g8M#juBiET$}LQl~mA#e@JWjUdUL zII(bZGZ4mm{Znu(gdGD?vfmY}C{f`f>2X%_=S+#Xsc=%g)|iKW4>U2|I1k#2enRIs zwSi0IR1alJax#8{%z>C*gV)hX%r3qqcoaG>fG%N~1`5&ulVu&zv k+%pBC{bst#A4GJr2 %cRgUNj2@Sq>$OC|tUYMB3!3h`tB02QD3 zJuowm6zWNS938a|Oo-H@^Fj;JHE@@IW;xIRk)?Yg3qVS`>LK|(k>GVH4r)$Pxo34< zB!i6+7ki9Z5X6x)iuf26Y*l>#ODYb|n?jp|>?_+(nbpc~9T4H;957p8gck_uug}s- ze=mS!Qaf`NupNqcz&!W@@tXf&?zI=`o(GTsbOA>9)E|M*AuWKw9TY|QY{(}h+z^?3 zgA4<3^aV&;vW5fE2q4%V?m1AUu*rY~`Q%$a74mGYidn^~@E)Ds*BGGkj>qoQLgRS6 zC1Rjp3=gt==iow=5Cw$>>{MDFLuub#SgU=#YB=zpt%N062sy1tPbKuuvKBmkZlPfJ zu$8$j^aG~<0UQpYcZR@2pu(6Q0-Uf8yVPL2P4Pc+ELKl|$r8=2Kj4J~cpg%<02D9T zLE(N-yF*JfyL?kw&6X-3x+&r0A;toS332gmW2x`KMgdnw8P_jl^=#;&$E }ekuLa4SD#xA7p%DH#LScod>e^2$0}Lw|CJG74VI^P| z wNtp3 zX@)lp|5OVH4h)5HB51?gz$e-%vJq6MI&A>H{gbBi-NEstQ bQ@_;Br8JYeIPfE`VAk7Q8;(zgpGb5tG#Y3GM;A#BSPJUuxD6Ya znZzha^UInUz_fMAfi`1;cQPxEJpfeKqn%g1^07;Nm{a}dz>S`+-?VaTt|i9h&KZX) zJ3WqO&J`;bkOaX`6i${ijCHrr9$El62?Ht&6%OgnR%yrqX{o4?L*x*2f&H3GdhhIB zdt&`RsYT+2yvCmsZ|XxSGojz&M8F68K%a`V01ANQX_^f{1){Ekll)JQ7|I&gbH=1S zvGs&a4-Q6)X%L!JY1_mQn$aV`2LT3$jVC%cGU$R|WMS`m#uZA|hjjcnPDikWi8ePJ zGExSdE1}_phtq=x%K3LzcMWm1qj`OjjVj{vBOZg!asU7YRtA`B-#%i0rmV&%n%kwo zpD!`RZCMTw{hv3*H%OEE8gq0oz>LI5!tUqE;ARy02E+LVen`$}Od1Iy@z~iI9e^ l-VHv+hYhOWt6^LRUm&1q50AtU#a zcf5cRI8$kT)+fSCkyo~$QZF>qx~75AQIOHI0eaQ#CIvwQMh>M!RCm9p;_P5u?-5(2 zO!7rqboHnjHE^?P-*C%U3hAz1P8zEt>>%Z6WXixPxE$NBIRy%v5E-GSN_>ij+gwiq zCK OF9?mF#&F|w3p 4a#s~4d-4iRmu-9wzcoRn!V=8L$N>jmFGbwL zx{Tix;hCSkY5*(99q$kuau*RuF!txTkyG$VB<0mWA@6T~4)m`K>TbfO_dWDMvf61w z5h_&Q1Lf3;j_jR_;#HxCD{p1)+R4Al=fs$s`a4?%CE!+4_9{9Y 9n#mX>jy~)I-=2dpDTSOY|9#L5YcJux^S)1Vc0>2sG2g{4CQI z;<8|_mWX lQ81ek z87W*ole4JPWPpBx<;vceptM)~Z~BzDjTU=6e@dW?a}f-|o~m^7^$N(4gki<-Xtapn zd+yT=E zrY&UpqCgvfyr>e?goQa5?E19 zU8r2ML6bLc#rdO`xv@kxSN|gJYK5Y1WYvQCY9)-a(h-Wzi!+Nr0|#(Hob@-r=h?8E zrYJ4XB?L6lpnC9lkn@iOkt;NSHqj6bpEw0-y+W2#JB97CJx$Wn1}zO^{o1XT;4glq zcV_V&S>nZS+iePtO|ZB5h#v?m@1}Y`Wa4$O