${v[1][0]}
${v[0]}
${v[1]}
${(i+4)*137} rb tayangan · ${i+1} hari lalu
From ecfbd3b8b554ac61794e1e42a7ee0d7a501997cd Mon Sep 17 00:00:00 2001
From: Zhou Weidong <502333560@qq.com>
Date: Thu, 12 Nov 2026 12:32:29 +0800
Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=81=E4=B8=9A=E7=BA=A7?=
=?UTF-8?q?=E7=9B=AE=E5=BD=95=E9=87=8D=E6=9E=84=E4=B8=8E=E6=92=AD=E6=94=BE?=
=?UTF-8?q?/=E5=85=B3=E4=BA=8E=E9=A1=B5=E4=BD=93=E9=AA=8C=E5=8D=87?=
=?UTF-8?q?=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 按 app / shared / entities / features 分层,路由懒加载并抽出布局组件
- 请求层改为可插拔拦截器,统一错误类型、超时取消与端点拆分
- 抽取播放器、骨架屏、网格等复用组件,点赞收藏接入统一交互反馈
- 关于页重做为无边框极光风格,补充 iOS / Google Play 下载入口
- 修复播放页滚轮切集吞事件、页面误滚动、后台持续播放与声音记忆问题
- 语言按本地偏好与 IP 识别,国旗改为内联 SVG
- 清理未使用的旧站点文件,补充 ESLint 配置
---
README.md | 25 +-
app.js | 2 -
data.js | 11 -
docs/plans/2026-11-12-enterprise-refactor.md | 211 ++
eslint.config.js | 32 +
friends.jpg | Bin 73449 -> 0 bytes
heir.jpg | Bin 182772 -> 0 bytes
hero.jpg | Bin 267562 -> 0 bytes
package.json | 10 +-
pnpm-lock.yaml | 2245 +++++++++++++++++
public/brand/ymb-logo-gold.png | Bin 583463 -> 0 bytes
robots.txt => public/robots.txt | 0
sitemap.xml => public/sitemap.xml | 0
revenge.jpg | Bin 58483 -> 0 bytes
romance.jpg | Bin 619942 -> 0 bytes
second-chance.jpg | Bin 169305 -> 0 bytes
secret.jpg | Bin 62526 -> 0 bytes
src/app/App.jsx | 23 +-
src/app/providers/AppProviders.jsx | 90 +
src/app/router.jsx | 29 +
src/app/store.jsx | 9 -
src/components/player/VideoPlayer.jsx | 13 -
src/entities/category/api.js | 8 +
src/entities/drama/api.js | 11 +
src/entities/drama/model.js | 52 +
src/{pages => features/about}/AboutPage.jsx | 6 +-
.../about.js => features/about/content.js} | 0
.../history}/HistoryPage.jsx | 50 +-
src/{pages => features/home}/HomePage.jsx | 101 +-
src/features/home/components/CategoryBar.jsx | 19 +
src/features/listing/ListingPage.jsx | 32 +
src/features/listing/api.js | 13 +
src/features/search/SearchPage.jsx | 49 +
src/features/search/api.js | 7 +
.../shorts}/ShortsFeedPage.jsx | 115 +-
src/features/shorts/components/ShortSlide.jsx | 62 +
src/features/watch/WatchPage.jsx | 216 ++
src/features/watch/components/EpisodeRail.jsx | 43 +
src/hooks/useApi.js | 13 -
src/layouts/AppShell.jsx | 142 +-
src/layouts/components/BottomNav.jsx | 26 +
src/layouts/components/CreateMenu.jsx | 39 +
src/{ => layouts}/components/LanguageFlag.jsx | 0
.../components/LanguageSwitcher.jsx | 4 +-
src/layouts/components/SearchBox.jsx | 47 +
src/layouts/components/Sidebar.jsx | 58 +
src/layouts/components/TopBar.jsx | 38 +
.../components/UploadVideoDialog.jsx | 4 +-
src/main.jsx | 6 +-
src/pages/ListingPage.jsx | 27 -
src/pages/SearchPage.jsx | 46 -
src/pages/WatchPage.jsx | 235 --
src/services/appApi.js | 31 -
src/services/httpClient.js | 24 -
src/services/normalizers.js | 43 -
src/shared/api/client.js | 129 +
src/shared/api/config.js | 10 +
src/shared/api/engagement.js | 10 +
src/shared/api/errors.js | 36 +
src/shared/api/index.js | 9 +
src/shared/api/interceptors.js | 22 +
src/shared/api/query.js | 9 +
src/shared/api/watch.js | 9 +
src/shared/components/AsyncBoundary.jsx | 16 +
src/{ => shared}/components/CommentsSheet.jsx | 8 +-
src/{ => shared}/components/MediaCard.jsx | 4 +-
.../components/SectionHeading.jsx | 0
src/shared/components/VideoGrid.jsx | 10 +
src/shared/components/player/VideoPlayer.jsx | 392 +++
.../components/skeletons/index.jsx} | 0
src/{ => shared}/data/catalog.js | 0
.../data}/catalogService.js | 0
src/shared/hooks/useEngagement.js | 56 +
src/{ => shared}/hooks/useFollowedChannels.js | 0
src/shared/hooks/useMutation.js | 23 +
src/shared/hooks/useRequest.js | 41 +
src/shared/hooks/useToast.js | 24 +
src/{services => shared/lib}/device.js | 0
src/{ => shared}/lib/format.js | 0
src/shared/lib/geo.js | 24 +
src/shared/lib/media.js | 18 +
src/shared/lib/pagination.js | 5 +
src/{ => shared}/lib/seo.js | 0
src/shared/lib/text.js | 5 +
src/{services => shared/lib}/watchProgress.js | 4 +-
src/{styles.css => shared/styles/base.css} | 0
src/{ => shared/styles}/enterprise.css | 0
src/{ => shared/styles}/youtube-overrides.css | 285 ++-
styles.css | 5 -
wedding.jpg | Bin 994032 -> 0 bytes
90 files changed, 4535 insertions(+), 886 deletions(-)
delete mode 100644 app.js
delete mode 100644 data.js
create mode 100644 docs/plans/2026-11-12-enterprise-refactor.md
create mode 100644 eslint.config.js
delete mode 100644 friends.jpg
delete mode 100644 heir.jpg
delete mode 100644 hero.jpg
delete mode 100644 public/brand/ymb-logo-gold.png
rename robots.txt => public/robots.txt (100%)
rename sitemap.xml => public/sitemap.xml (100%)
delete mode 100644 revenge.jpg
delete mode 100644 romance.jpg
delete mode 100644 second-chance.jpg
delete mode 100644 secret.jpg
create mode 100644 src/app/providers/AppProviders.jsx
create mode 100644 src/app/router.jsx
delete mode 100644 src/app/store.jsx
delete mode 100644 src/components/player/VideoPlayer.jsx
create mode 100644 src/entities/category/api.js
create mode 100644 src/entities/drama/api.js
create mode 100644 src/entities/drama/model.js
rename src/{pages => features/about}/AboutPage.jsx (96%)
rename src/{i18n/about.js => features/about/content.js} (100%)
rename src/{pages => features/history}/HistoryPage.jsx (55%)
rename src/{pages => features/home}/HomePage.jsx (51%)
create mode 100644 src/features/home/components/CategoryBar.jsx
create mode 100644 src/features/listing/ListingPage.jsx
create mode 100644 src/features/listing/api.js
create mode 100644 src/features/search/SearchPage.jsx
create mode 100644 src/features/search/api.js
rename src/{pages => features/shorts}/ShortsFeedPage.jsx (55%)
create mode 100644 src/features/shorts/components/ShortSlide.jsx
create mode 100644 src/features/watch/WatchPage.jsx
create mode 100644 src/features/watch/components/EpisodeRail.jsx
delete mode 100644 src/hooks/useApi.js
create mode 100644 src/layouts/components/BottomNav.jsx
create mode 100644 src/layouts/components/CreateMenu.jsx
rename src/{ => layouts}/components/LanguageFlag.jsx (100%)
rename src/{ => layouts}/components/LanguageSwitcher.jsx (94%)
create mode 100644 src/layouts/components/SearchBox.jsx
create mode 100644 src/layouts/components/Sidebar.jsx
create mode 100644 src/layouts/components/TopBar.jsx
rename src/{ => layouts}/components/UploadVideoDialog.jsx (97%)
delete mode 100644 src/pages/ListingPage.jsx
delete mode 100644 src/pages/SearchPage.jsx
delete mode 100644 src/pages/WatchPage.jsx
delete mode 100644 src/services/appApi.js
delete mode 100644 src/services/httpClient.js
delete mode 100644 src/services/normalizers.js
create mode 100644 src/shared/api/client.js
create mode 100644 src/shared/api/config.js
create mode 100644 src/shared/api/engagement.js
create mode 100644 src/shared/api/errors.js
create mode 100644 src/shared/api/index.js
create mode 100644 src/shared/api/interceptors.js
create mode 100644 src/shared/api/query.js
create mode 100644 src/shared/api/watch.js
create mode 100644 src/shared/components/AsyncBoundary.jsx
rename src/{ => shared}/components/CommentsSheet.jsx (89%)
rename src/{ => shared}/components/MediaCard.jsx (92%)
rename src/{ => shared}/components/SectionHeading.jsx (100%)
create mode 100644 src/shared/components/VideoGrid.jsx
create mode 100644 src/shared/components/player/VideoPlayer.jsx
rename src/{components/Skeletons.jsx => shared/components/skeletons/index.jsx} (100%)
rename src/{ => shared}/data/catalog.js (100%)
rename src/{services => shared/data}/catalogService.js (100%)
create mode 100644 src/shared/hooks/useEngagement.js
rename src/{ => shared}/hooks/useFollowedChannels.js (100%)
create mode 100644 src/shared/hooks/useMutation.js
create mode 100644 src/shared/hooks/useRequest.js
create mode 100644 src/shared/hooks/useToast.js
rename src/{services => shared/lib}/device.js (100%)
rename src/{ => shared}/lib/format.js (100%)
create mode 100644 src/shared/lib/geo.js
create mode 100644 src/shared/lib/media.js
create mode 100644 src/shared/lib/pagination.js
rename src/{ => shared}/lib/seo.js (100%)
create mode 100644 src/shared/lib/text.js
rename src/{services => shared/lib}/watchProgress.js (93%)
rename src/{styles.css => shared/styles/base.css} (100%)
rename src/{ => shared/styles}/enterprise.css (100%)
rename src/{ => shared/styles}/youtube-overrides.css (58%)
delete mode 100644 styles.css
delete mode 100644 wedding.jpg
diff --git a/README.md b/README.md
index 2584819..9c401ed 100644
--- a/README.md
+++ b/README.md
@@ -8,17 +8,22 @@ YMB 公开站点 React + Vite 项目,参考 YouTube 的内容发现信息架
```text
src/
-├── app/ # 路由与全局 Store
-├── layouts/ # AppShell、顶部栏、侧栏、移动端导航
-├── pages/ # Home、Shorts、Subscriptions、Library、History、Search、Watch
-├── components/ # MediaCard、SectionHeading 等复用组件
-├── features/ # 后续业务域扩展入口
-├── services/ # 目录检索与接口边界
-├── data/ # 演示目录数据
-├── i18n/ # ID / EN / zh-CN 语言包
-└── lib/seo.js # 页面 SEO 元数据入口
+├── app/ # 应用装配:路由(懒加载)、Locale/UI Provider
+├── shared/ # 与业务无关的通用能力
+│ ├── api/ # fetch 客户端、拦截器、错误类型、领域无关接口
+│ ├── hooks/ # useRequest / useMutation / useToast / useEngagement
+│ ├── components/ # AsyncBoundary、VideoGrid、MediaCard、骨架屏
+│ ├── lib/ # format、media、pagination、seo、watchProgress
+│ ├── data/ # 接口不可用时的演示数据
+│ └── styles/ # base / enterprise / 组件覆盖样式
+├── entities/ # 领域模型与接口(drama、category)
+├── features/ # 业务域:home / shorts / watch / search / history / listing / about
+├── layouts/ # AppShell + TopBar / SearchBox / Sidebar / BottomNav
+└── i18n/ # ID / EN / zh-CN 语言包
```
+依赖方向:`features → entities → shared`,`layouts → shared`;`shared` 不允许反向依赖业务域。
+
## YouTube 对照的信息架构
- 顶部 AppBar:品牌、全局搜索、语言、通知、用户入口。
@@ -43,4 +48,4 @@ pnpm build
- 多语言:印尼语 `?lang=id`、English `?lang=en`、简体中文 `?lang=zh`。
- SEO:动态 `lang/title/description`、canonical、hreflang、Open Graph、Twitter Card、JSON-LD、robots.txt、sitemap.xml。
-部署前请将 `ymb.example.com` 替换为正式域名,并同步修改 `index.html`、`app.js`、`robots.txt` 与 `sitemap.xml`。
+部署前请将 `ymb.example.com` 替换为正式域名,并同步修改 `index.html`、`public/robots.txt` 与 `public/sitemap.xml`。
diff --git a/app.js b/app.js
deleted file mode 100644
index 75fb844..0000000
--- a/app.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Author: fruit.com.cn
-(function(){'use strict';const d=window.YMB_DATA;const params=new URLSearchParams(location.search);const s={lang:d.locales[params.get('lang')]?params.get('lang'):'id',genre:'',query:params.get('q')||''};const $=(q)=>document.querySelector(q);const t=()=>d.locales[s.lang];const notify=(m)=>{const toast=$('#toast');toast.textContent=m;toast.classList.add('show');setTimeout(()=>toast.classList.remove('show'),1600)};const setMeta=()=>{const locale=t();document.documentElement.lang=locale.lang;document.title=locale.title;$('#page-title').textContent=locale.title;$('#meta-description').content=locale.description;$('#canonical-link').href=`https://ymb.example.com/?lang=${s.lang}`;$('#og-title').content=locale.title;$('#og-description').content=locale.description;$('#twitter-title').content=locale.title;$('#twitter-description').content=locale.description;$('#structured-data').textContent=JSON.stringify({'@context':'https://schema.org','@type':'WebSite',name:'YMB',inLanguage:locale.lang,url:`https://ymb.example.com/?lang=${s.lang}`,description:locale.description,potentialAction:{'@type':'SearchAction',target:`https://ymb.example.com/?lang=${s.lang}&q={search_term_string}`,'query-input':'required name=search_term_string'}});$('#global-search').placeholder=locale.search;$('#language-select').value=s.lang;document.querySelectorAll('[data-i18n]').forEach((node)=>{const key=node.dataset.i18n;if(locale[key])node.textContent=locale[key]})};const updateUrl=()=>{const query=new URLSearchParams({lang:s.lang});if(s.query)query.set('q',s.query);history.replaceState(null,'',`?${query.toString()}`)};const render=()=>{const locale=t();const genres=locale.genres;const activeGenre=s.genre?d.locales.id.genres[genres.indexOf(s.genre)]:'';$('#genre-nav').innerHTML=genres.slice(1).map((g)=>`${g}`).join('');$('#filter-chips').innerHTML=genres.map((g)=>``).join('');const rows=d.videos.filter((v)=>(!activeGenre||v[2]===activeGenre)&&(!s.query||v.join(' ').toLowerCase().includes(s.query)));$('#video-grid').innerHTML=rows.map((v,i)=>`${v[4]}
${locale.empty}
`;$('#shorts-row').innerHTML=d.shorts.map((v)=>`${v[0]}
${v[1]}{}SK_^YbXU!!{#GN$pprHmj%r^dHY!6Mj=P6DZDUXVn zWx{=(B9_X^%HoQE5#}+_N*;Xg_rW4^K! zL{?kdF8n0Burse8RCc _ak}6c2pHL@emKl25OVyqzP8r3TisR}0>D$eA zR7sA$GwNdi&X!T$ sAiKoD+ z3(Ve+<( 5*m`Apar{n9N6D)xbfQ2w zd8-t68QMf&VB1ywdGWF}VM7qMzdU=5XfK-Pl|V%b%WFRu@j3)E+qKd7;i&73(0{2G zHz8$NFmcSbGkc5xY`qv}1se^i+O<2ZnwlI(rn&6|!b86*w(We;p8yO>Ti8@=nIrul z?HLT*tIJa-Pi7|-%VDp-7EmU_#`+KtL3++Dc$216G)@t^wG8#ZUm|0+Ml1TtS03e9 zhTL|O1G>^)QX})AwKvIIM4+W5CZ{ Gh(yzxVXM5waX06Bu-_I+$)VrRRq !P3Os<%|6-09C^qgs%b_R?gkE^ZxZMTTd5U^u}f?c zseyV+CVf#+W=sK}wkO1=aSgO^5w5RAPvJ@Z1+Gu*_O7OLICRQXMh1lJLW^gWm8+Yo z1Ws|62A2E_F@96&fEVH0_9gD`!^-gqAUrRdRaN#_~Y^C~EDP?~)WM2hMQCG ?(PF=Ig6ASkJtr$V}S;KqcZ+47Ou|hZZ}h7TDzB33})d1cAM_b*X% R-@(CRw19YuYnj$=jIT{G~Y_Cc3Yywe_KB?q>X7QyvbEC z)6&xG`O|vo-BP}C@Vxpk^xTAAGfZwz8Ljb^jO_uP%x-x^eb!fQ1m<$fg&lM&5$@8Z z&nMqqL$l<3Dz#$6 }|!YKmHk@=)5o@aJJoFvw*xGORlh_1~2PjaB#jWwn9t_6BI`rHb(6 zigc>zTY=p)Rq2k3nF~;jEm*NxYsI*P9N=CFYUu^F9>a)=^R=KXw3#q;YV6WG!Vz zQ&>wuzu4F5194NWOFVA`S6Q|i%jQ8D*sc_$-P6u8KaHKnPM|O>Yf!l6sFL=MR|A8w zi8oDKiT@=a?cO;6=OAMA{$s;!>o$FcuwR)0opkiFIX~^6U8_AitAquklbr(rhVpt_ z`%wwAmedn9ksVPeI4P|c@9i6ukrDHqn8fync8 ojB4~U? O ?c#Er&t`B9ytfp>^CfpbU-Z@=)cwzmw3^(4`Pn2^ z!rdipez+QApO@7VXOiX)8!9M|*E8ko;aPfQb;AD~5{|Ue!~S7Ld2oG`S+&fY?NhWc z&&;^qpe9-LA|w&gMyeMvdz_aeP>M37c^>DwWv+Tq|8u$XLX(mOt6Z{c8suybvNY|y z#ZO_`(oqMBYNBMB-x_UaeL$GSfBZvQ{?(J(tFH1pkDTBVWQ33n4<_JsEMjf zvzhhM8?}BL1Uowq-YrVpykC_Z|IA)&nIO&0+c7KcGpf-fWM+J&^W9_QQtkc6#f!t# z58UEK<~D}~!zG2P_CMIDQj^Kl!Ygd5xYkhQEXuDG)u4U~dIig;L0n`!T7#Q>!>iqy zFU3rE%YT8&loXJhO(uWRNq;Jlx@wXKy7fTmE%^OaaR6$qfi~p1J%-(&L6$~*8GN2T zzU>WOEKTS|n;7aO*y14}4T(qNDjRLPmuEPU6bJ8qwv$J)w8#TPtThx+g`e1KYC0ua zkUkMHVG#&2_{9c3S(Ne=LBH|}__M8DJ&;c7UyWO`a$V4)1Ckz#b5aNl;rvZ_HD!xZ zl5To%=TS&Sh3fBCbBz%$X)|y27hSyD4jMX0Xct%{9EWc4} zb+xwJ7Oq<7$!h6JmnSa;)%Kd+SW^*ZQFS3n-RY-?p-9H};j)c#V1rT2u^5dRnhRH9 zNhc4APKDoa(p1Ht?Ct1ApVL$WdK!<0YQlI*i^IvH(pTzBQsyAuA={+M-d2I*HUmc1 z?R>8s{cUU+;~12S!5~AeN$g0f{BV@v33(md2_y~C!PRyPLsJPn{&DS0kz_U%o<3C# z;p4n+pv)jeCUkeKJz-s|Uiy(h3On_=q!(HBY=v%9mjQ8^|74E8dad{BjmljLqxk@z zdoo)`CDhBVtVo&HSRl?>lAt5xhtBZ*E;Ajw*Xr@ifQIk6g`cvy&Vs3+8u>TI{aCF> zo2||Sw6h$ZX}g?bvkKJi;!49RKO+Mjc@0NRwdO01?q%L})cbXMvr3d>?r;v|U~xuC zkKY5@9XDFi10i2bh)Djt=XKUxKD_2$D>UHxAa^Lqp+q_YI+v@$f}ls@-~S+`adIQJ zFb|eFR*qt`-Sug3fc@gSgiY&+0JA)FZ$RyQ#}exH`@o|94eLHrRtV?S*iYE1+A*tR zl+j*WGq8uv5AxxKB-<@5!diTdm~rFMFofcXIwQoYME-Jd359T-Lv)4Ft-M5{j@M0( z%L5XP`sO-DA76{4Z`(ODRey`#6z+!3oyBw#LfBnxH1C#H6KlU{jhJd+{D8e0t`2_8 z>s^b4!2Z#OHLBh8e&X`8etzsFE~Wu0j;)g_Gta8Ua@*WK<)o5{B3-)+$E6UFCZs z!J2|c<3IG>(4Llx6C+=7BeHKXax%qaA&2OkiBYh895-ZBMxzD&9Sa?pyegAX!ZbvJ zNKqw8Sg>rfLsIq6FU=0yCSBqQ^2I9i+2Rmy8?E^FY-Z|oW+xT$RHbDpwm&|mb;AwJ z;9)Se5*ZH96s#!O5u@hN9yBR;K=(-POc}ghM94naGOfL)4CN_Vks-VQZ%njquTyx7 zny)L9ZbTb3VfX$8-i&!8<+b(V=X?^9WpL0nsBXV~Ayk(9qH#bGS-s&K;)^VZBd1F* zX4s5=bs#{F0}}E==3y%#666s6Ao^QBi!C+&vr&n5-Azru_Lx##nb~$3>XJf}!iuz9 z LC`wj4+FCf|4YKkOu7zio7k7W%Vys&mvGWehmG9{5KKy3s`} z7B(L_rH+lNw0XP{BnHdG+&dfc*w8<1tVq(^m2RuaqlMv<89V5B?)R>AUpVN6I}tbh z1sHZ@E+}4@v$RkkIopiJZ3bsv0g@sm*i8C4 xcJNbXI1R3WoVl-US7W$u`0@}z9cshvHMQO`F~WHT{U-$ z%pxigkx42Y?qN5}l`UoWWev^$p2izQ-MV3;`e}gXz!EW}VyI?Gbn9m+I6f&d$!$eX zc*TTK+9#Kh4W@)(6Exu-l&Cjs)*`QRc~bgF_jvMW$+IxYsg^vpJe;Sp^vKt3NNXM& z$38E*P+?-FE_u;nW48A(GJPL{I4EVc>aRK>?xCjCTp$sujQ94#p@L63nGLUOecPI zlV=qkeQlatp?djF8*UwRsY_fGUD mOLF z{x_ujgS3)~BAnx9Q(7paCzy@C)JbNHd?4REO+8hb?ButxCFfF`Mt!Bgz>CtwFmu3K zNf?pPA9c-PN1?u$)Vv8c!H0+y)&y&pm1^mgVEjlg@9zA~-D$>J5Xz QY9{i&}-rtL4 zRcps%$WnyP@`Jkpk>yBIqg+z6Oj4`N1ftUO!RKkTc2c+V2~}I8mRqcIIIG2DzUOy; z-2(Aex_XeZhPY$^i&O{}wMm*-535=6LbRrJ``VdxQK|Fkf{0BF*kiItpM?zCYV- uSW+x<^`NcV~#oezm*{PbW!MmS_KaqCd ze%Gl~Qa+1hA_0orH{!4Z8c8g?)p?G;)(kgz#5>ij@59;dl#Fe+RVM03-fSBAWw`1Q z!SW}R+B*gzuM{?Uws;7LI< ~CVC_*nd=P(MK5JlZYpS0279eLj`@c+n$6vqwaTl!ljGDhkKc zeE`mde)_g+-0E9A3Yt!j>8Z0w?|P5Uw%_shjH6~r$>itmtcdBXS-E4o%N@D)dVHA} z^n$m{GOnqvG&dozq8bdY{(vBLc70KfQMOT*QI?e-VU@g)Z_Vi6-Bx|peAW{9<7}*S z{KZ=6yb6x0vKsXu9;^8d)lf1$Wmtw1O9(>h1!dYvO^F9_i+mbgq?B_EcH##ui%e#0 z?@3d~q6p?(6!GBusfi3TV90#JR`J4l^fZW`qMrUJLDZQ2rrG9qO2qEOT*;m79#spw z6^TkhUg##5p2gyy42+PmZ)Y9su;4w3+G_33ULbPLlcT@NFxRB0SO{Ga&@Le;V_C~q z*1`?7IBZ|#VjE@&{@+WnleMbr70eMStuRLvJ5?WawxmKgF+A9MTi_>Izb1bjH^x#< z{WQ{j(5-znr^w8h@nO*4>Xku-_`#`;%1Cs)nSt*2v+sFkwdn!|zf_#rWH}Qux3p^1 zLsW0aHkjQ9k)a!2x|wYi0;a`rS;T0Q8ud`m(DIIyJsAucC+5pmZ@ZNBh-fTnx4>Rq z%kOR~^pg})>ns=<`n|@G)BIa}XA+tmLz?TvT7J&hn!H+34FWLp&_lJ0q;72kx6kQ| zqjqdLhpbxrwaZ&!4tP63l382>G3`zG)jX9TRT)Txw?6m&Nqk|ku?#*eYI)|w=G;E` zPVB?BuJ$qRA%ckU LZs*%wu&IH)}Kd) z4Go}omkQ~AQ|jdPoDel}CRN&spurlD>h5^n_3jdIr~93MoN+RdyOrJWD9#>m-?q2f zu*eQf8 9{#YioJ_hpADtXmKe7cZZ-COK=)!aVaFYYjG}aL4rHQwL+j2t3Z(i z_Y#T|w77fU-0%PQPLk*3$;p}BJ+r&BGduG+|F%0`sCL_n0b6P5i;Ld!yl-7D;y1%o z`z94g=9rMH{$uP20`uokba(H|3o&p=`@KG2yQ@p#_+OWWA^-12!)TN(a6aXai93JT zk^Ev`i01kI+}}^P(=3}u*#CE~5^{>+XMg9{?oZ}>GfHyz7VvnKA&arriZlhT^C4Si z0kAl+UC|9>Vyck#p$h(sN4?a!?mJP7?HxuC2Ee|6{%JBq@1Z0#C5P2&Cwu@%Z(a$! zK2{$Vf!~s%<+NE@nHgRM^NjTT_|YOR+OsCGl>=cdDN`V{OV=+kbqVq+z-~y=@}9UJ zM-Bh$8@O$lh8Y*h{9*fsZ!Yx>iKvEwp{&*5tB?0wF)5)sk~*Xd@yVAFH7T;~PI+Gh z#1y3u)MHrK^8@t`fsx(i{K)$k*M*7BMAG*KR)#D|GwYetOy9z!g&flNIV}U8aPOrY zUG!;_&b %%?ttyCJ51D-sz(eN~Mk?jr5 z1Gkv}y6A6y*9M{=4O+PU=hKv3T48vzq+C0+@E6#e-{SfgPz-6G=j@OcKx|c2#+*a_ zWW|GcZq30i`DeHn8eM5Afq~Izzl~GS_)}dV&=%Zw`WTpcKOR$%wP+-dS|sx?pj#Zo zn@-N2G%FlTvMpq`PkKl6xdiC1qf~2j0A+Nny1vB7&{_R>{=cPBR?Y(Ezi~wK;0?{J zxw4yJWpfMa)y%xF7llBuM|gPb_6Ig8oje!Rqb3qx7k<3NAOaTQy=TU1W!MX@>SkV( z26q)BWz|8uyFMX`cAN{N3%uR?P&rcj-Q_OPvxjo&)+l#fA)d6Drv8Mllb` oKx*ko1;n|=7Ohk9#QTR=|sx#3wKp&EJ2!Jac>p5{J- zG%7!iFqJo*{87Alj?Y5>p{1WE0j;qhx#ehD0nJV7^&t!ES-9%|&41hGy&i(gUsUFu zhwD~k;4iiG># `sI?Gp{xrRUVT5~CN6-vgod^0Z%-cb$)xY#=+B;i;&1+k zxZVGTZ*sU!`i#G;Qu{3AT}3}l-5VnH7pc#jw9q5O-2;O^YB|??GN~QnNSM=yVp}UF zL;_Uj{y~#d%~24%c M z0S{Y!yx92peaO+sXD}KHAWa*7(!gLjV K|K|8D^QxGzZks{xqEFB za)H~uH5Eu4!VSEJ8SVe%8QE(6Br7YM4L1mA#&GLhe|1aErCrCRO!Wt&|LzBnwy?1y z)T*g$r#1v|VL7RXGr^^(zCX*$!WfYIga(sc8c(QRE0lR~S```M)+@JNK$#EBTty9M zcCQ@>{cm1c;L(XjX^|u9Uwokbv4Yl8KbL*GpK16~ am4;=M?LqK1Q~Z+M30}J zYgY1ha=Com0~gp*#ltB>gf~Z<)IjNFKSNUHY9c(%?wb9&P7u1(H-MwT=aD}ejQDV0 z_8vMD&jh#e(#~%G#oK*0vOj%W<*%#paYbo66{%2ttsrnWx|$b0Q~B&TROCDy78aiw z`k7_vEOqNI-j}1>skcdgO3s(gLLNLh`HP2(`I4Z(d-(9de=%QA9zS^UKlqaeI5d;T zlx$R@ OvN|csLqZ6-=#-6snb<{PIO#MDFevKGc-9h&sox# z+Le4ob`MfAKgkZLkRXnblb;G38RgTMBRR%gQ3s5xSrTTOI_&KpA&2|c&|qvcM|bW5 zMNuY19e=Bk8uGcA8gi4UB<`ddotz=-F`uYHOcCG=aY1buiUeqqC3|KQynqKgh!~I$)L~z)cF*-X|==ZNhEYVW6b5@pSw$IdAb3 zp7O!skX==Kg8i&pmS7?~)-2(+)M71~;@7Sz0#>VI-Qi9(6R@re_|ZiBFqL7RGW`Zp zPDyCEw^%0w!zi#1jh!98qG3!%HA6s?PM@|5h`2A1{1ZGi_0WtAY(Ew4(^b#H9D_^w z{3k5cJX5xd4TB6ycC|&L9zUE`?uKp?dCF^gMKyF9StKOvt(tUWDSLkJ!m_tb;>9TW z>k5@3>Ksy16Ua`7?nVdtlWxnjNfat%Bmy8H&C|8kzj*eXZDZwH2zBb0kgDFcCMk(l zHBsr=EmVcKIe^=iJ%+py<-;fzOo3WUb+U!QK=$-OTcM-O)MeE=XoQNyuuj%t;8q#M zc7F}pF0-h`oskWp$fd_<`Gmgun{_uUel~T(KjnZ*rKn0d&Pd%41kiwWk48b~s8cqF zuB`bI_F|^cyd=YLA6dvbwQHt7YPLS=d1%!f`PiyV0Z4z=A=;Fluu0y3-SOyFNx$9F z^c?h2@zf#x9B}?l^IN})cAJ2^!T?VxXn|q+bB!<*o$M$2tDR?5FpW{e`$A+T_<2^M z!t6=qd6`*Z3AdRw*LFzSG%VF#TcC2@z1QCa>t}cD4*Q_S$e5LjR2 bf(l`Ye{5!WSz4bz2l>9Sk< zro<{8D;6tpYcV%u%X?u>*>+6|J~ 3oy) zv1;S10HMAdU6NMzwZ$vRP!b?-AL@_9N%1ct&a!?ZxTgtrYcvb(+Ac0A&pHq5US~e^ zcRIA~k7T^3$gBCV&=&x8(;Cm=GcewVdj8%Py*tU+g@5 wr!OebY#yW`6#9el8G^2}BQeeXGuJUy+A29?eU5694lGE`_ER}1{G zmlo&-id7ICzgN1Ly@kH|Qql2?eGpxCtCfvrcyB-d(JAAIbY5f7z(1M)eo9O1)%tl4 zS{eux@1+NJb=<1g6tZW%747{hb!3H@>nfw7C{k)6n5sVBVIX-M*_A{G3=8lmq$Z zi-so2zO=~WB;6=(cgW_8piFqOvwX67LzmUA(jZzUU;a}U0Yy~|hm|vVVhgzk|KhF4 zBZmbiUSuV3I9rYkA&?9q!-tL%$P|rlySFMwYbkR3fxd&jEg^X#ZdM;Q1i$McYEmSr zIA3<9qnk1mHTB#L_9ei}qZjybXD?;)j(8OMa^zt(C#A * z2&tM)y277~!I-J>0+w4Bk2YQvQKw*f@0N(T#@a#Qs9JjJyyT!{wGaLbtkd9F3-f7; ziC%xo@?M0lSn2@kgTTa+B}4C>y}9M^JlS1-2pPv;yeLQpOh(p!$g^CCGZ?;oP+ox< zyHqThLL|R(JjUrS11|IaB T?ZsK%RFXD)P9&t5l~o z=|;7z4mN1Cw>HB*+~h0Iv^tnME#(SQ{bMcn5RA1!VFT8)-x1t%Q>q7UZ0buiPPEc zx?$#d64m<@&E%B|h3GR%7}m;&OGph@LHnvDsQ}w+%eBFu3^m|iF*Q?e$#lph-f1?u z_)#IDF6GN;sDSTmV}*N#TV`6OfwZS(6YFej0C21#Oz-NJS@V|Jl-b@7bN1BYI_o$T z{NLLzPHLKNV?|>4m4b!1dh!XEi}y)$b59!}c`)OP0O~>+owh>W C}FKn~@4y&!nsEB}MjLTA*eyZM&&K3yYLIbsoz}f2FPOXyO3mMf^0#a+h3RENA z=A^%Ea9Sx^9#$5h+Nb~$2>0Q ue>=E0ZLt=<*W?xUx6(gmeI4%EK7B#B{uht^I2_TzcOjeiJ*u|g zQnulbc!OU`+YH#0*`!FLc*>F~e;Skjsx;L{7BQvVOBMSIJw;>Od}d#~W zm`u(-ERBZc-h;$B-lwh?G<^37`5F^xfZgtXj0~aZyFs~efR>a5`nf8GcYW@km3|Fj zTss8*(`mnJzs2}2T<7#Tm8)K&EVp_QJu@#ekdea>D41L6CCD&hoBXPf{T*D~WF1yY zGTtmtsGT9PPPYBCLn5FgkWvhM?ISUEn!S1@iWQalwgJ2WH1ejWVZQC=IS(U4*le`- z?YDYgLE2rnrRSSFo;h$|^wNdDEO(Xy;35HJ!5UjdT)ue|h)MfCR|k_nfO@K0st{dN zGj(!JmfAu{X_qFyqzotGQ1J1v6us>}x?2o8Y3sp()TQtX2D3G =`KA1kUdN26{CX=08$;()sMl_kG&Dat4cN6 zt?IwL|HQ(&OKeshbgNvkb)v!OTw{Ok?eJaw$Uy<*@X-A5v2;_-NV#n6NiCJP;1d8$ zFH c$sCSs!6+UTq zmBC%E3JJ}lAHQLfDU#GS$^Rt#Vv=&X+@u(v6-a6PX0PxzwaaFNd7Dc&)dM~PcIeNZ zS~3Tu=jXhMn+x1b){_`c5qC >X4EceXmV0*-5;P0X8loaJv`<8_S^xCQd4CtUS z9e39n5?KPs7glz$eu|qNBAW=@s&E7KxPp49lM%8I7J^hFCL(#!XgO9y?HaF8mk?>a zml3-KU7LN6t6CO4FiN!D*Rq|HxvA7sbD~_Qp7ur#ovC6K_4EzyUidgbia;I$P5n4K zM)d!;V;((zh(mJ3<^1Cy8vnCnsM!9`ju8=i0ucX4#l|Z_^(Er}88JBcN2LdFHF#>N zT~n~M*z8MQ2r8)&m(4cy4n2Epsx#M}NNiU!i5!&A46T=!W}z~2l`44ps7qFwaTu3j zwF6OSwH*~x9AuE62{#xd7C??Rs#AxyG j)QGSIb%)*j>l)4x<^~nFq_CxVrj8a!Gao7TMJVSCz7LY&H9|Azvlw4 zX+k#-6QGzYQp}y(Pz!+oY7UC1^2coKKrRfZ9d)Z63*64+&rQ$Sx9a3w8<7K)U{xir zCjF;$XYwsLIfmB1sHHJo$5~kdC$o9`fd*1UY&Cl@7f+n+H6HCz(}z28*yQC9Q|zy1 z89B(C)SAj{eUt_Z>KolQX>V79eukv86cFP|u*(kowQ8->#YPQTtG}mF0Ts SQeND-LHuz%e+BFIK6GUalm^Hk}Kd&)kUCpFa*O1@ctn zMf!~yGzSVCmgB5P$i@WpH}Mszk@b WJaka*5iGJoW+bfV@E0^) z6*XH_Hv3y0v(djF&@7YbR2h)-7f u)F`RDOb=({IsHgr@O)*`IfD_@%8)`S1GEIXmp-T4H z8pm?jO;H$eIR4r*ZsdTx8CNokF2dQGee~(RM=H8Nm`R!eww}J^LnFPfN}ug4p8gjP zc1B3vv%Zrn1F{^K!FgJ`&=jzQT2!IGun$p9v6Ox67I}&$Xm`9D67zXJ=?WCcW9tnl z`i5FB=^6&4s}xpfQR26=XfyG=RC|*MW-^mfTl*LCDWEq-K>Lo$QlG|Q=m;C!K_@aO z@Rm#ebh~B_>XTHiQz >zZF~T-$()>BtT%q0QD8=m=&JGpgxN z`K1c^reK=TwhmJ4Pq$2#zxY|2$}-DS?o>i15D@QJN-!?q38?60H &cAr@X5aDA>4rZC-P zS`c_! eD)C^f1sL86OoS5&Qb#)s_A-k63~5g tdjRA%_^9%FA!&5wD>GxBxflpou!^QlY--^eh@(N(ug3`h!o>&ubWvZ=q93NSsF z`E-M9-pV2Sw57%VQpwf*;oNW (su$y$*rZBkXzLqhIRLTE%Mdoyo3GL{x3wRrOn~2*+B6^bKLJEa zc&UZbuL$et4{#CkLM4jx2DoF(xlmG0N5?v_HCW@=G{x@A3~}sRjl?VYHYFOcW)8WT#lBjyXWg9VCa~e~r?133 zY2MTM!$Nn?SENks&D!I&-!p!iX88VDo>=>xau3pOl`%Q$<pYNbs`-XC;i~Iw6II z$I1zVm2Upxoi+~bbWz=6Xr~Grjv<>n5EVCnAosEN(2*%DE?sBx6y*ZgHW1a-l7gXI zgg`RKupR3k5|AXCO?!=J_}yB08wk5>$KQs{Kq-iqjvF#jJWK~1nVih(kf_8>c_pLw z=-+F9Pw|LbvPYLP^gSTzT{P*Tm&C+r{!qzkGK)|_A{{oZ{S+`>Q)X$(CjL65(vcpU zW*SG0RE(7YGi I2%`K;$i%qOvn* zvsn&!DlNFw?#RvsliZmh`qR}BYHz65(jP23fTdJbEB^{fmq3e(jXs@EVanKz-^#zm zJh!CSH4}^-XQO98T6O_`)=uGEZDonlP3d5P6ep%*AU0H0@!jUPIQIAD19vgmpyJ>a z`<51fI^98wDVI2lqULx_&Sg1e9b+wNI)b-JZp$P(z_yoY*V3Qw`jhPr4{0CQCR;-K zFb@Yhd(qa`Lq_d{5xqGle)at<7F%3#l*7$e(=MSNni!h z3rGQf&GeP Q1yVzhW`VV0R0fu$QGF@7YoNUeq{6u38i%;j54K3rI`A#EapPw) z2?!cU(SHp5Xv2j8a8M;SB@?mkuKvYyV7!u9KjzV8^kx*py}Vglg9h{3!Q#LXUmrj| zH;3+#G@w*tkO84H5vDUKc +ESXw+7NIx(F&D{hdhEg008-eWJ zYAX)JG8JAZ48VmqrpX83Ej3oPy1)=J-d9^<4xh45(L=>*g3H8VT0|7Eaz7XZQ)Q1x zp5vyG$@_%qn`GD#r8j aJeMWt%Qyy0>4$6Vt~zplu)rwm}%WdfN?AfU;v*EwhPj $Ylytj1TxA!%M{O7O)2c$#k7v$Jsz4XVPr|D_feB3C=Y^UZuyI`iWP{~X zYaFH+FA$tpEOu$pZL*}krR0CM9Uk%u#jlmyw7`#(05fvxd|TS=pn`gTx4HhrzI-Zn z4g{GI7yxJ^I{{f`*slemyaDN4mpN3WE2`>@Wxl+O6gXpvd$N3cwAz6rUb(+D;T~K} z<>eo*t3?y7h;;}h63B#4x*14`awQn 5?YZ0s^Xo^d;l#}@P K?U0ev<~s2c{QRa(!4(1&0jVKoo?b9D?$I>-CxmTLP_q5$#E z% P_l_WR)&yM z{g=RP zu3>Y>x3#iPsB_;I=0t1jKcn-1@el*vUYO #Q9(VV2t_uQ1Wng z`SgS_Pya#%u69t&>cNy@4yrVy(aJiHK{OOB oh+6BOZ#mqtD^5pTq zcOa?Wxhm0{DOvn0Ri|nWR+2oszLhh54eJ*W21W&*$?9jjwhf3~qD<~ejoJE7ZcZo8 zMqw=MB@?`uyEPL3e7AeRxXV?zVX2BF^Lhl!U{k=K|Fy{HzU%`h%kJA3NH$Z>An%?J zFE{?YE&@ZWc-P|scX{??KDlXgUW~`8E7VCkzpj1iUw9Ft w*f)oyyOdPg9KM(?X>o1Xh#VT)>Zf76MN-n2ziW=Y R@^ zQ2xd9WK;6jOnASEgnpW=ohmJSf53#O){`z=r29yjjV6QmmC$}IPN>~7s5B#bnLaGm zV6y<9Q!`Fr1&p)bZ=+Shy;x9L8j>TU^*U}lCvFEo9=>|tLZ#>5?~BnNpFO81>j9%q zHIyD@JiYR6+zm$RhGq%9m%P&%VN;s(Tlr`dbLruL^iS<$&us0%{f{cWk}OOb+;|@a zvNkvM%RjSqG~wM%J39;8Swumq-qV4Jz)1g+K585!f%bbNo@ST+4cN%AQl~ehWU)yh z+0d!Jf<`-uyV>Y%;lj{Q1M^UgvvYXqrM{h;5}eO<@3K5=cf67>i>4!8HZe1#NpRH0 z+K)LXJ*Pm@!Ju=jaWdxhF@Wp6ufN!#O}#L^#5ifHb2ZIodZD*MVhf-5b-Tg=J^o=O zQuSBhcYiqy!>j4?C$LmI<6C9I{jYhRzROnwoiwYj?XM^79aR5tGICd)AUz>JsYfge zhVS9$oLYOEF5sa|>~HV4_7OhYpUcmFYYp5tkl9Tged1ESWa{M&g &U4Obl(6M0?D^QFsTXPCL7I;_dk;5EnZjJM)L0ImGasy(_Rn3SJ`^h~{Q z5ZJve$c}GtIxAP0ef&T^cBK1ak;^~R`Q|glR`Ra~L`vp*z)^An9|R8VsLw6 NEA$u=PSvk&rXx^}zRZI!kJQXNr!xz3c NS|Zkr2$ ~r;wNP;`6Yu9mF*8qztu}NZ4sx1woU}gAb#+qazAW27k%s0?Jik&uJ|6kG zbrkCKwlgIb^%w65Fcugu*HJpZ)s#-D-)+TXn1n9u9Ad6>W44Yx92?nsO~Ej=un-8; zA63mU?1V*iz8%88P1d$(M-;+GbhuRwe|$Cemu+4@6f-S q zBBxHfqgh_HqrI|<`_*;Jb&>Gn(3WimQdKKt&1!pk7N?))c`y?N;|iNLyq+rAo7F!? z16N0)telmP!};0v#Nt%BND#NQKNWV!o9>O0}wkj0^PrPUQMPRjykL%q_f=jW+ck z*#?HXQ~Yv`sv>nPq2;yXXp2;!!FXmzd>7>=Ea9hb`_?wjg&8`%pqz&qu=2jsGd5~| z-{r;h;;P+hNAmHSfYh?U>%w1)l;0Q%=_dj@>J8pI1>KpsM1w=${>8K11f#H#-%4xE zkfV>iPnfFfrHKVnK7dAPnM{h~{K4K}ucE%Urt@-D5p~ibgGKKP^#ZjP@oBGekS8FX zubY8eGPEV8#1AzN81nOTaL#6tDI6V;SCSmor!sadI~>aaR~OP{Er!D9ef@Z?;ol9@ z&D8@<1?9m86%AiaZmL0I@HrQdP5t?&gMcFJTg0N|kci^mM*!`8>19*phPV15%yW>N zs#76_$~l?aDIA-9B1QXk=9E_zT(_*!kp0T=tvF&)%)UC{fO*Z((6H0lzYW `R)#TX}NYJ#BSj#rGb&!*pTbO#I zH*V?FR6jEcDU!QnO6zZs7b%d0;nh%KlQkhYtJXzAe}@Z2dUa>7wsz#@@i{q zw*sGhu=qSUKegrTD@m%7C3Wo0`XH+^M&1IHR3uFntZaVE=}qImXig W z$}LwQdR1Ob$2K4ZY!|n{PS<|i2`q{-A4B#WOs7)Vc#!Paz}Z-bw6sYr!~%5gOy)O^ zTne 2J3BgwoiFK(8aiZ+ zpS*T=00y^L5v*iWsg@d9X{-;^t9=@O;{Rzfg =ZFWP9e?Ld%g_kiB~g(m^Qm6y9gu~jVw444fh!=xaq}~ z_q|Va{t2XmM$iTCJ+HH_TX(En1|_2PRgv(-=Q;J$Vxz@5#yCG()b?{gj5Ys(NWXzc z&ygI@6#}hQaf1l24fDY^B)wYrLx0;Z8{}~$s&47YbWowM-8Sg!f0jeFb&5 ;P_-f@x>G1cupE(iwMF*;Z(Dd#w4*8Lk@()chGWWqL&HIP8 z1)NF-LgQcu14>*- gSp8fIY!%=b k;ITKc}Ayfx)(;XHm3s2p(&GR)zD!>T f}7POWT97nk=QKo3yR81=ArbC(Oyl{QgHWD^g zP1oi$%r9Y!+2I?r?nyBT;}Wm0ow1LN>Tds?XspGj&oqxbR&$
tgQcpQsvk>&+>A z2Of8l+tA~!jx+K%W6BTF8TUP={GPjm@uRWgT&!-|5fT;rT2^TMND%cCVj*hiZ+i_I zr5Rm7+>~9>rl467jt1gwr_QoLU8ng;bsgV0D^e==rLq~8Y8S+nNcu8e9UYlyscNz= z&^s{nxM}Z^oXMrw%eB(rjn871t2YR=+omR$>39B|WcaZF?NqhypLzvx@v*}rwWby$ zYS<~r!>gxXqxrgFP`tH3Scabt`W)IGC%{iNz`59v{QSEC^_%x}Fj`SApW;L9zJ8%V z0Lg1aars3apgECm{IU#Q@XL##=^J0lU%W?lUxF&C!%>BTZ`+DN!jV9~XLZ6HAYDJu zOl;_+&^ZpT;u!0e4XbGWrXovnYJu6xEJ==`6!aANy7jG5a%h-Yb9SK2A^1etC$M1W zCkL5h`X7B|l+d#mog>=$^o1s~fTp-S`u#!yL(IufT};XADt>;V ^m2y$VvD&al_$gF= zd_ht;en2BVy8Q(G*y*|+NC)v^?-x)TNuj_BKf)DAXf9)K^xm+?gu9~T$B7W VJMnkMO`7Xq+5TQ380In z93BazTyfF{^mDLk2Kq$5VDEaP0|qS*0-E&y{S{%BZl$u8TxBt;s;dX438XxxoKHHG zy+&TMT?(4o9SIlpsFVjK2O~7j{q18TWUOV7F3%d} { zdm`(W?0v%flw+}cVDoiz*ROh(=2HgKXX>pbl)q4I-hITIJ}(<#mQ7#%<@s=%kPc*G zg>~98ILisBJRq@{7Mx&<4q$!-=VhDBr|Gql-(~f7+j8-^V0FHC>^-eD3^7#8;%(ck zpN`FAt4KOnHWk!XAUPJv`${OcxY jXAdg$%V5tRXEqjySN0G9QbA@a2EV?|PN`gM z@LU3v`v44kcE@M+-aCN^hc|nE64$6T7B^^mOtq|Tt^CkZLKF~tglG#r4kz3LejwS{ zJmHwh7&2*=)Y)g3C~f%sEHtPxokozL|KFtuF8&=e*`~rgZ*NxtZ=^=+sM@B``hLH+ z*l?q&IkR;Vjq1;z>|I{$fAIiRZT4qumt;COgse~{#JTuA)$aN&x3@K*eN?%SwE-@+ zP|A>B6MKfWk_>}YEL^aoAig7i7!AfUF&luMen<{Im&NvcD=$mLvfYVb&!EA;#?dA1 z?GS5T@tQ!dLtdtOCuZ(D2J;v1pl4T7fo#w2L~**rIka@q8Zdpuj0%BoO (CAGcJzq0=U_^4&aTu-=WhKL-trwa=o*I_bgn*ruCYg56zAYn z=Id<71t)2SNlg5K5gANyHo%wl@s{Edc5QUdJGO{KGj?oBj_;R8Ss$Kyl!GYewZBqq z*f+qXK97$5e6t_bcukTRRzJC%>geq3{5IaG`aN9S2;ui#f@?fRzKpK2UN#*FrNr_b zw5{}XF_UZ3JocVN4BUeJvs0=(6uGR$&PRLxuz86udO0MKd|ag!8uk r3T zk@pUct+V$A96ppx-^sHYxD{|Ds@Ot`Em!)N&%s#2FDv(Y=k{@fFd$t-ET}LY= Z_v>$tr88kJ9K#ckk^j17O%&~l@!fX<+;n7c<@h_Ga2Yz&kouY9A}2N{l)Wm zf5qDB#yTiI>;Dm}F$$dvM+omasMMWQ4XytAF`{wMzu}x}D`G@SvA{`pvAiE6v*~`S zBW~0tBeY)wME4tVd(UY1^w*zIztlviXRrQ7pl%~Kg<_$iI%8W+rL~>C^ya9JA>^2a z?n>xASGah@DwEFi>>lL+uo&OQt`%ZxrEXO0aZ_}0qBvnK&NpejFL;{&y>E2UC7e+y zsQwmwAg+kHMJy(rRKd5$!hCK0T6D9meAyjt (}q=d2aPru6O4phvI^DNmnHv z;LE)8%y9T=l6x^2sCiX3k=&_iibejDm94(5^T*yMoltBu?ROw*Jq!$1H9jHX=EQ7R zYy+M(cnw%RSz;y`lTOR~cpEP^oHyJ2mcHp uqDubf+U}2&USZiL#APH&4(~A2G)I2X3(tY`^su)tAVQ<@ts~0#iSc#fW#gE0rd1 zw~AX+2`2<^{@Cdem!@~5wa-IV9DIlk{;7(i#>VZdJp5`wUUh4BiT5t{y_AOoM#2?k zJ(ZakRRT%M9QjNn79@+%pQU4$Of|c%zL)G6Q%8q*?`6yH0O{K0F9;8iO9!C7fF!9& zSk%HMU2IiOYquqF{kI%5?unJpVymjEs{bo!tO*ngR*9O|vjQ^hACEkhFLmeQ=@7Mj zAE|9IxVFjOJ&vZ$Xjg_-yFV4gz$_@xtG>n?5(jpx0qi?FTc6J)zJXTJA8{%Rdyk*T zyr9>jzJx-epT;BYnLb_8+l6r$oKPOIIG$ToLsJ)2PN<=}CHAHjX ze3@@`$d)acKf_0~i-<3u6k9*)gf}hP4hXc>A~s+{=_1$$nEfE20U&Ou{7J)mS^bh_ z>RRYl4N9AvIh{Y%o{od}OYA8P#^k=+bzbN0_Zo4?OVrkV_U(i+ASWUZm6GD%mLXSt zn@|5~YSmmkL&DMWMPu+KemOLUc|&yutM53!-b-tr)S*2zPzdq;g=((Tnt!HqO3i~d z1w8B27bM%Uyd4bc)b&-M+0O16)=L4IdC271K~)Y^hg$fBsoo1;i4AZ+95+kw68w=K zH0!i4ROy4c$_?!P)rP?i2?HXg7WvVp*uib+XOslc)f>jbIh*I%G}d^RO4D1{h_x0@ zNZfXprvIuv=;e+dl*0nGI@+TiS+F^K%j_a7igpAlJRTX?6p9&9v&$ Bn|FD@I6Gd7G|F%@R0O)nLnou?Q=)ycBH_t z0#*HbD2#x{Aw2g#dyfJH=W;~KR)V)2X_Us^2e81)55!g$1%_r^dJgUB7A{RtBN%s* z6MJLgd z01RxPulLs$+8mz!G3DOCExMSlQBz#PvAfyb`!Q13q%x!wYaZ z0RMr$;(%QL7db=0CaMgvA@_PA5`idf>>B@P!g`|Bv*l#O8>XQT1FsjkpFHG5Ju9 zpxq%}@jcyistbv61k$#Qd?=tREt32%9%UN+Q8yuZv`COaa&g0HC6D1mlpPO!0^wst zf`44A-=(F`l3&)bz8URe)_A7HUp~3O2=huHS5ZlOtke%xfE*cQmXk=~W(XVnc-7VD zN2LT{G?eZKxmQXJ=0{ wFQOPbUemQUaZYV4F$YJ{MHu9KBRi6GULN+Kze z(?~^KrC!pf<}dVQdK($p94{FTr9ud?8q4Dk4hdbQ8>Q1fjCA2mh>$De$8tz;y{PU% zkVQr+;*(#FN&ExD4|y5QcD#L5O8+kpobU%bQFL?y;fsGwx7r^BFHtJw u82f!9T# zx?-cu69h>nkE>T8(BOGRi}wK(`45~#G@6YpfpyIgtHMgnMxct#a&?#JRUv0(RKyQ) zh0?2Z5p+eGWNN68$Hoy;B1;~>m{WbI7^3)!Z5uRth!e+)2)Ocz=`mej5Rjg2fP{xb zATpYRK;`k1G_ik?pENY$hQSSN1R=3O-Q-t$ @a^5i*wEtkg9@PoCmAAu4T~ zZmLOu1)?%Oy;C+{_CW|EY6)oCZC_=IRcH2vJUofHEjYbNwC Vax>wBlnqQpqdfv&QrM&JV-D zds^YaKq$s%`1|-7k3n3KjBdl1#-$~%`_0X!m3Ps~Y?c)9%H)(NcJ@RZ0GQf~pqF{s zs(GSl630yj9U^%a3L%Iixqn)8qHW~m n>12WK4y|`Y%KBx`E2Byv8qSy)Wr{} z3C5IH`BnQ;!Pj7;mEzX}jIsZ&Hx5xXNDO^)au)y2Jyh;+<$DTgK3-C!bq&_7bqfqd z9@7FHJ8*$fK9Jwv?3?=OCyspKWNFcC4 &3NkzWIMfq*= zzNaOvV=Pk}%}y;uax_!EvV0cE!xi}tag?mc3-XA+c*6g-(`e{6Hd2VSyK3>I=4lzu zl&pPwE`0vjYP@7S;GyTYHK&9b*Gh`XCX=KP@elaoYbsP!JkcCD3IeRNAp!wA>Q4nl zSM>KzgVXmd#3zWOQurHJ9@;#495fL{!*3liiAPN^@!Ncrl`j(qVJq$`$iefS ke_oxU@#}N9`B;>NS@qKL2 z53q_}d{8$_0y)(*bca#Kq0=RuYR)fiNRjB3!GG+FTdiJC{$j21Cwbr@yKzH^gCV!4 z3kmB#r^&Kw**}*OnZ<1Vd_eoimY`IPjX*_#Vkb4_NjUT-tuKU;ji2f~Z4^O3NPhYK z UD#TmAUp}u#}XPXcQeC zyIA7m9x5F1>Z^sIDQpc{r+VW1ERhn-93d4PA#fq|jr}9YUp$ju7fsv&olXkb-@8=V zeXBO2Z&RqY_eXkjM-* ipf$5%R6)O+EgFSMcW$Nu7pWuBI5kw-JsdB}v`;aB}pX$iKy9@i|J3;Xf& zkZx2%g_RV)-?h~C;ZGG=ydOF`I%QN8T81mCvj%QqU9`R>jem}CnrtW4M46R!y2qP} zE9`iwJRE)hn2pRVBs)Y4%C6O7B-h~uybyJKHwtHc?9KW_X@%_DH#k(0Ca7sVE&9cH zYwnAe(Og{A)s>1Y__crWauv(CLWB=P2+raLujAoEd` e?*BOSY)w)Tim`Hzhbs5P z68Qeo?nhFt13+qZkzS< &k=qv-l?e562d;4QfL zfIJ_oxx46Jr(=Ie23)p9DSA%y6)9iNvFUz@j!sR*MBT!Ne%yqu YoFovMYjCSBTlY-2BP)fVe0;`Hq!bVUJ#FS?!FFmk&o#TBxGefLl!lPkYCg5 z+t>QgUW!C3{V>CRTW^-ArMt58U^P@xWTELSGI(C7A*pjH{Nes5R56&y01+SZE;kiiO=~Y*g)NBY5_x|Brpd;M0tEvgZc$cfJ3fkk|s0b=l4xP;Q*2#_Q?!zP<4# z^B=zjD5~M^np=GRN2f+%D@KaD 21 z4d2OF{d5>C51@)6ALIDvr%)6~j>l2aHb#>1K{T7FSf-B71N_fRRSs+ti=LV!`l|tS z@UKnOj}PBG`R2sJ85_f}!1p^(Q6a+Xm006b9AJQU$&cpnf4kCz8!EGvI$mp@T~IxE zPql=&X*dF$(M=qe-Lm`?dVQ*>N*~{#6Z`^RU`5(ofQ^ UwazWaC@c#i9LFm3IWcC6T6B|(no=0UDh9sHx><@`JCb_;wZqF|3W7#$? zQpV}GW^(d>2@oFMZ!8S>S&>m<&_Pg`cXv}PTOD1Pp|LkRp }C2xCcqpgl%Z7+jfH6XXkt ccFkAPcM zkyYT>0$OITFOgk$-GOz`hPD79G$tm7Kt#}}&d&?@1iwZa|^mj(pH#sPpU9W*uE zvO$HWupOTvS~Gk<*kqnryw1qg4{X1|@KThgr722K+aE=K$oLtz#xRDdBsFFnj7;4z zjKkHqHdj2Fic*bbW; {5phJ3IOJ{g>7G?)@H{i0K{sKd8eKHYR{I1= z&n#O7(uzoy%25GD1jGd#*DIt{pzK1HxfqX54G2UCXMrk>Uc~W} FhSf-6GNbM6lq%?nbX`A@X|Co{{GpVdf-{cx>Elu$M*$bbXKj z&3l7E?;)2A4cZD)d;ZzJ ZOgB1YAS zuu9<8jtvevWb;bM#$?9}MJQ|+QjMEq*^PK ZtEWxWQT#0inVIwYO z?l>m9AjsLJ8X#>Lx&Q(R7ulVsq5k8??!`a78T-S~4@-iKC}kkBmyw<}iXKmi;v`nt zi&c;L54<21gF _%ZsMR)y&@!NFMay9?xQ-=8 z+iz@lPs1W^!*I*wSrC9s&Ch|3P`!+j-$B3W8#VSsGwcwQJ-^KV0J|4o%yX_YDfD9? z^Al_@CSchhq6e{SL`p}}NE(rp%a&7FK%~I7MKVI*HhXEevDyL2^br+gF0_Mn98hGf z7jRD`$|dAltN?;E&Y)mW#)EmCWl2@M@EWtx9*9g%jgtskx*1JYcd$|kNF=Ck{{S)i z6J{^qDtRw4j=3>6vK^=Y04F?yUc_P3a{VKypgbVQr5sJHiJ{161sVK;j($OMn3772 zEHVc)hDXn-E{36(I_O nS_3EZ9>MOw1%V=5;@FS{YMuiGZyp zYL6%G0+0KSv|dOwJgt7>W;7mhSm=5qbJ1+kKEhKTlv%L{ht$}g_6f212^cXJ$N3mm z=xxQl7`h0rxMRYGaaf6lg*~2AUvY;tHOb{QzX)Fkm3_}~>ln{g$jGTD^ar~uJ`_g@ zD{n|(^JI(RGiRV#Kk?*OZqvi{tkzu}l&C)#xG_l7c&}dn)pOY_{{{VRqwR^-Hwpq69XABnGMs8+Gg;rY;Gp36{ zbO>0ZVm%&?NI(_`m5Qu}9!GRzXUQZKMjO J@Cd=Yo|+4b(S;RBMF(0R8*IUWARQ`O5zQBb2_tmlQ2J*(6?q z%@z1ETSI&efektjR0wPa5oktjmiZVq&49KtN{QAFjwuq6Mk60&`$EMcYp~v$@R~$v z_??^yT#UGbJrF4@WCpZN-7?XIUqOdd7cM`cXI?^ejTvIOP_JY@tjhK>Hc;f(KWq=K z%aN&+Ouj)lKQ|owc5T<#(&hV&QT$gE@SK_+tV2bYQhSG(DG7a7Kk t zRyW9_6!{E71Tn7KJeU;t*6c4~Ou&_Mhrl@(L)CRQKQE!P=ytRvV`ii&^m?4-EK@AC7LqX)&5SB=a4Id3w zjt~TfVWc9% Lrjxcd fJR#@o;N YiIm6-V=N8R7K3t#Sq>Eh4@l% kn{WE9twz3jpjirjr_=LwOz;PnPQt|0cfmqg>(Q|;S!k^4}k zS=mUZ1Vdr1M&$nh(iq)Ufx8ks1r=@h9Y5WV^cmuvj~Fp6Tqs%Kkk-qA4`9!Q@3dR8 zYAL;=BthWH$Ly*Ynof2${0tnuY4xa4JYhK>k?E^40vn%3QHsX{JsS)MGxS+6xsk(w zt1}!7+M~!yvc0X3B}Y@kqZ!yt*DsN U_$)FZ|2!;(6;H< 7O55Vn@-(cJb z*x>ks(r`YixP8pRhqcSolqhPe#^DqpTSLQx)%hhKQK}|9vG_p2#}+YqG}?YqlZ1rU zn>+<>i?c!-OR*OL$Y#f7TWukos FCPC~4m}pJ`lp8%Z8fc6J#31n4 zXZS8fuzK4R32@BEMWcI0JqUN!Z{U;mS7a%C$jn9_MAkllk`FBjf~QFnVvv;Va{mCp zHP%Cm<=HnCtdP^~MB-Az E(3GRoG!xja( z!tykF-S+|LWX*;%;VpzTqr|)mLx*?Ln)e-f+P7EwGB8arCT!-`KHn{vGxS}tr!OEv z3mFDaJdjlL$~k1 z%nl?gi5(weoeHhODG$dhEb*+1q z0@`h^5Y{wIycp%AQ}jk}x0Vo!OWVhPQp;jgGY7@(S~*Ng)H07j1i=uq6ZbqY(BNnY zgCW2(;6=f!I6uR(IGqO>Z _frt{LM-)7dyyY{zGH#4}#tA-;5W0s8C=501+Xdl;S>Yh2JxpFq!fzw1BT{h; zT8(983^P4&Vn1NTM?TEPH~S1__aT2h3qbT-7bJzqcrc7fMGOwaz$K*6fHWNZ@g+DX z!<~v;zp^taeaSPo`4=RKqmvBaushxW4i7|nqwphij#uoq8ET&^4?m&GWydzxji82hb-v=T#%dypC6R@i*h9))OD{8!K z`3+l@QXB;{CFdW(@5I&vn-~}oN-+qd1i?Vr@Hd0e0}OxR22jy~lwt@VQ~>fFfv^+7 z32=A 9QqW) Azw*hrBH5ur^3#w9#l%s<~qHXL_C8e?{FP1kC0%RnM+XdKY)MZ=&%=|{K2De>h zPqW%^rO?$c0rfox7Gn`y#TCh|<%wBzsq9G%C<&jS_^cr gMdG=LIH*??>5CHFxa5O6u1bf;R;Lo6&IFQQ;>DYf01Yp?*l5L ziLB+NkumjU(;2kH8j-YT!N@HZEmb(|&4_SUZ~G=J!o^57B%TryOU}@m`!XbhO=So# z+pib>l+@o$s=~gv@OcIkU%`6*(tqe0gzdwmBDWI$Sm<)aN&St_*w?wgExyDHlqGmq z8$t}5;G^Vu(Qkww;CeYO66Jz1ur)Hzi6NuW7=u{|_?}Q-0l_0UW)rp~onz7PEt>s} z;{f=lB{L=WILuGo4qF*PaUSs62{r!!KzMhC>~hC7mAtZvP3PFF+zATGkyyp#81YtR z0&N>AEryekbzz`m9fGjFhgyb}C#Du@u!AZ$?#DkmL~i^<&_$PQ$T|0$ea0Y1s8oC= z$CI7Bu^^8KAZm4*5?p_A7yfIpz}p|8{K>(axBQHHw}u` ;V@E!Id;qm5OZwvjPyiZI?CfH0IkKGtVZb%&i*0s^?_4*txu!Ci6ttvj!sdqR__C zo`?`bPFR3Tfnf=Tij7Jbm`$N@32Hl$CjS86p{?%TX%~R|BzCS5o*>pszIqaiGZ&JZ za@%_ 7ti!c6t89FDaiWmHkI%((Tw}Ef*1{o1)?6PXT}G?1IRPrP71aq$Ojlb z9|9bMc2pis2@S7-JMT^S8#{E5+hE~D-1-x8EjC|4H)s** ?mnBu!v^wf!O6O0^lIe*;N2M(Xo)Ny=^b5v?(^`5336QvDno zo&DK>gdv`gXlS59G7t5D0CuYr^>8#ia4aD2};8+gEur ze_+8ws$K#1d{r?c+)c}0c+jc1|B|<$*8go4@7#c7$64F8KDGK=?|>>Zl83$?4rJAY%-jSI5bk`mpT(( z=b_e~tte8fZ#g)H a{eS~X!K}~)ia%eKkCHq#s>4sZ )flt!Dg}PlWU#}mRid$N0MW{#zeB=7LdCJ$>Mk-JsI#?mr0BsT+6^1 zQ_%{p#LyaDpImYPgCS!>PKUBXQ{)2|HI^IfbYEdEP`Q(gd0@woDY5hl86QCY3St{K z9?ky%XG`{RJ|pWnVhYhm*ZmgZe{bl9$<0X3qumV?_WuB7zhnKx?Z2q&;cF5hV}cgD zFJ-jbtLk03(=1r9#xxbPBHb(8!J;w|c}GDpl$f2P+e{*b_Cr^SML=Ckkpo#>kElr( zClo-xCGN<#7IZuqW>Pbb-+E;DV! o|hkRCOj=xafF0&QpXov*TTs zbA^)dVW}Q+N%lrH4ZNj2!_cd~TmJx T@G6bVlGPR#o$}jZwa@gFK_)D3o{6` zk}IeF1P8*4c2go6WMfC8K1~?xK)VkyM#tKD$ToHWQV=#MC0Haaj>P>+AiG0W5?hyV z_Z?$TQ?h&yfxk;!PepnsSfE);6_sjzF &VG$ zcF>lsjewHwXk$M?R#R&m6NbzQmB^H(+#AvH$e(d$#;+0_0OUYSgV*;Rz!IAh@SAHQ z9l^)+JPqZxFHn4*U-K^}SF|#bKD3EhOG+EVSG+H`{X#5_$;h@Oa)Qj8!+j%NYQ*SC z7Z#@?NSCp}z%?@AT`Ke6V;9Qfb36%XBx5~bgIEnfKy0VS2tpIU@T0~&Q^XiN2fle3 z=8{_z_yjpa@ty+10Zc8L3q{pN$o~LA1Z(Ue*@uQ(87>n^vS7EVcL!k z=q3j>Ye;iyeeyRNxsc5@Ddmn}ZOoCATgvRZl_en)7(Bd>CbgTi3Mo6)hsmG8;8k$Z zC{UJZiDpwuR&BH-B{rXJzf8nGrqA>+#{U40jXC!cFYL$o7W>(e#vbf#f50!NeL+wN z2!J5~J`XYEJi_b=1&M%=kpdKB u@qh(|;*r&V17 z?2^%lw9s!LaK;*0!{lYONB03(dIv-?YFKESJlyeITE z{M>Z!zxXrZe&Cw$hn4=wvX|%mhx-rvhrrKtjbFe&gM#0o{2%bYqvTSQprXqwv8O2P z45i727X~4r6}yKZWUTKy(rC&vLE^ToVw9$lu2FyUp}9Y>$AvuPM(+%AN5n=$@;1Yu zpBx?sdqZ)Gaf-mqXHcz@`kQEhXidZdRl^gu#7aQ{5l!Zd^htCy$K1)xMtWir_ake! zJr4)VrkPgPP9zmIKl%z;UoI43&olnnF0TIGM{Mj&$G}ajs(y4Nmw#QEO2X`#o?QJ1 zv$0zdxi;oe;}4?UpG_krY<|d;bu#!GB>w@^9oy1ej5!LZt+O@(whB9K-IvAp7m=_r8*kuK zc@{*+25D!LnV}WgF@rvY`$S~)Xx@XD$cEeD!FdR&?U^x*TQO?S-3|N#m>8mq4$AVa zDwBCbOUnLC6y3e#N~2h@2FX5@e+CGDAgy|MZ7d^% @5G0a1AfA9>;u>@mkQU{bK&zm$%n~^dp=kDbz|mbGf-9Vs zb4@IXNltEQYYgG9h9d|XqHxhs8lwzM)V7H4=;p?VOH`G(ccLG-`KP;4!_ew7v}}z` zzBVDV?9OAZ(Iq*1G(S=2MBs 4m(M>`TRY8k9=Kf-&D&I>N`XbNzBm5!@sXEf)Q zQruUem!?Q0F0<-hL>Y(J&YMXXpQ*BU20Je>OD6vS1Bxn3UPn^X=*@9>E-&|_$uh+{ zEtUEQSa=b4?r!lA$vPSoO&+lcbVrPMM~Gk^1I770!_3I+6_!sbAAt7H7$A9vm|cSG z7jXqCN_wNx5QexA;8i4{z_dMyeDX~)U6kZ5tgZ>F$0-b{#28$WaK1&t7Q;_Nwsi72 zD*Upp`x@bpWj>O|p9B+kBI%45ZcKapj;zfo-~?TWK^48bB8Hqfd7*;`29Ld4G9A(_p22;Ts(XRiPRfKf#l z5(xl6yNR11N!d|@)t;247I_aayALRdFuX*96Y_{ly$iUG#Kp7;fjl-OR>58kV^+n$ z`$cpemWRP(lAH|3jD%YLTW>5&VKmc$3&6D-`x#d&1ss$D#^dgIjf^8!-iN%1&ykrU zu*FMeM{Ej{Mst`r( SFKm$JIZ $cK8yjpp6`_Bkj=@&PU{dMqWf!KSc2ylTu{g*7Ts>q=6T02?Tx`z*4GEV9pdY`)4N50gq#i#&qv7kJT)h(gdw zQ{{K`B+GPb4zT1wA9gMgCY5TY_%Q P1iz*()mkVb^=xgSNZn!`d*2 tv%BUHl}u#3sv+Z(Sq8H+^51{#lHLb!JD#`;YW zLr&)&MoACYbnW2JVie?C8jk4sWh>%VnZYLBv4cv3=c7ePZQ#yP?i%|DQ^$DI5{Yx+ zI3`YCT(L7!eB%8Hf24;T_XkwgE;|t)lPC5v#itSeB`Hc$l<^(|!~;>A83XD(2Y|kc z1R?5JN^+VZqj({)pw|N`-uDK1pJ>Z7u|VEPk40roD=c;45=#aoiWc3mb!$5Y)qkMz z&TyOhq3CkpDHdGUW*!OUf#(AI76#8_rT+kthG_H+XCOl>eUBCkU^iIP7zD-i8i9%+ zv9Y1$4GBp-kN*HtTovF$xX|QaaYs|RvYVGD_9zxvJ*B^5oaEFT9`EpZosvhm? _?_l?JxV(~lap)6Q-Z5EG4Bhr*ZIRQIu&ytj+GE#+6HOQ5nWEQ{l+-#c} zMLwQQ3|R4ieWn4>p$i8AlO@902DTEGjzNnc5&3d!CA>njs~?eDik@)B KpIOmX&VAFXfB3*U0RpEUN?l=r?xDH6wr$mZ#eF=|r zG#@J>hMQq7hfK8j751kkq0=w2G$9B=5P*UJAdnG77FR{|UqAtNh|>tA=t6;Zi?s3; z9*~3~2tjfgp|rY(83)zqN5$A;ldGeD&DgZ4cIra%PcBBr34M@khR~-V%+i5D9E}5E zla${o!8X1hen4f)AdqBU43ymuCx$YlruR(aAzoDU`!2~EdBK7 u*Q;M97AK$ zq}uFAs*x(d` SZ*%0r5QHJ}93mn<8dgza?iYBw#Ap|EAV!(Uy9EA9 z85yvWg2U><9~53h?o-c!j(;RlN;P)@VZjT2g6vL-HkfvhT!Yj15pK_to*MQE772lv z+mdL|nN8?|KFS20#>Al)*zi4W%&^Of9>ajyVnBIzIneyp6T+kvU%;;^qg2ba(Kj~N z)FsI*yTPK(S&f)4Dx`ndmk_WmlGXbT@KXN(qcA6&4<0Y*(MT%S1Y}lZ`2au)fe=W9 zWFU}3<6{^yePil81rd<>6r#@|R>Z0_%mDiGe3l~9&LK=@jOXlfgR$9UL0~C_t9nak zJ0IwS=mvz4(3%xCL{ETtkm1PAQFt!Ixn@GGP9Db0XekdB&S><*JSMQm8%+z?gvD?( zuOs8~tX6WTJ_NeVcgXl#W&}y~V|S6i5B}g~-GLdSXs{Z#GyILl&k(yzA|dYHj8C8` zN&r&{#KK{C33@ytGF``z_mi<5p5c}lgdiY}htxii^^h{$V){qYK7z_20c>g-$ha{c zv?=mN53tVNnlVA4L`jI}NN%UU2uUq{UuOWu!NBO-o>(5lNsaxu#=#h^!KMg%lL;-w zd=5_;FD%zw_Qkh{4U*LH*rCv2DOp 8CARued z`iIgpWW^9Lng#v>aL-@#8i9TXlq6x= }(Zi_|?_|l_ z86>V!hV3vyu~&A{iO0C-jdGUEFNd-agdqrjg-TL|*e>yRh?pQ79G-DAlLx^8p_T-0 ze}naBIuc}!Al6Q95ZJ)YjLOaohl4_ju@?x7^#0GaWYB^MAW23408t5G;9VP@63rtM zPFSmS32Kf&tkydWrqyFdxhov`@ -dho(s^@5X zZEwKx?OPZtO9kfb(!utGfQbu{2tWWxqrhK9bXWu-2z=xq0JeNA+H7!cd >~9+T4TJtK2kJine~b7y zd!Nl4ebM?2{=i=v30nuD>|nv3jP?K801N{G00I#M5dZ)X0A%L}kL1$`lFc6vVh|94 z2@3GTAj~+Rx}HtdIa8sh!wZ01K&?ULYfsBH|t14MQP_AOHXa9_au; z07mpQ1XC8pX~F?KhZ(F3`WVHo zmE~BG?*V(WdUgmS#Sx$L?A|grNE0#zfB*mjf=Mi~jAGcK0Duf=M*B((y7&*vm%}S# z03aYlE1)32wZcO1B7w02fds(-A`Lbm5Rkx10V*N( 00STdbNzAGLVdh9 zX+9sygR+E@WcafpAgmDCUC9L(D2qdN7k~f&PkTTB02Bfc_e@fY9I(`iNCp&818o zSEGr&@d#zq6Sb*ABFsXZumA&kTOa@s$N-ZO$Lz(d#Ta}<)@&c3pEs~e0naT5jsu=_ z)#H5u-1s T3W1 z5eHfVa)_#ezd}~43qu_7jN*~J{KF{F+9bH@y?56++_sfry~fdZY%oAYff#3Wb**nU zOVf@Dqb4gbmfG|; XWC{WN6Yr74dz|8$aK0(TM?U*pBI(UG@=f2yMgs8 z;`O4se4V!?Y%aHZw@E2*Bz}+rOFpLya@5tS3TeLisY&>#&ou^wQs7_kBJCH&kfCaGeIQD_};=LP-~i*y{tx zfvlrDRU { zLgfKpt%?hqNth>=^^OveVt0%@X`ltp7U= `ZqRV@Iaya@MGzu~U_$V-b@=GK&dr s5q1G;z%d>;9W5`HIC2WNq&?CrVu)Dl)O{S_Lu9o63)f~hvJ|94 zZUJDdim_ pP>KeC^Hc?BJXD!90Q zP>)h!KzyNUAX`JoP*zOIM8_l??;;>F9i7_4Y1p6uNZ|wZterQ|IhEO9w>t9tSilHF z95KjafFKb*Bs0h8?J~`?rlGSH zxlOj%nuR*<+ly}EWft2+R*)=qAjE4J5pBTk=F1;V1kssu8lz?Z0O8B@3d`fR-x4i} zRnsNrQW>!E0&c;$5;#dsY`m1ZBr}_&l9t>FGIAcC_VvkryuLYQmljzBaejvp1^PCH zrNag_+<<_|WSf~{L%SRd7l&!prxrb26mm{<#LN81?~UvCzw$4RR@U2WGYN|7)m%N6 z_++_627_sqL3K@dlADmFw#m_Pd7XAgQ{YPzjiwtGZ!`F?8v615-}vpf>Mwvw4Q;v7 zch>hzOCYj}q$DJoXN%I*^2qY_f2(X>APuwak1{3V+@^;7$fob9!SC;X;g(rtm*@*1 zgPDsRA9_MKP%N@jO_F8sX3FgB3!pECiDj1C;j(;^2YJT*8D;RxEWhvy47ZjW29g8@ z1cVV4;xX!L63HyG$>HMAk1Ar=o^Q}Jp3Rt+!RdaDwk@{!ZF3eeGT8xL5Ti3<1H;5A zZMLgO4_k?VD8?} %V4?oVmYN*Dyh2YM55racVzv`ai#=;4VYg z-Twe0EUkvvoY695l1U_)oB0pkd_70}h>bvd-g#ec59jd%%^!S!7A|}0$BW~u_dlCC zn!o{xe!SQ+w6R4uH^Xh;KOaB$KPXRc?`weW0zM#u_+%DQHuqJfhGed#OD8uI_kQwk z+55zUSI6elE1KFeC(Jm{Pk-M14Nl3K?FS|u<@&g^w$j^g)tWl{y!|@)>~Pw+aCH#Y z(E{~kD7Q*Aq^V$%NlbojOY4vO_qcKLeDQ2WVV49Ix>wsz=0qPC#p;mNvpV0cppnCg z>FfMM HL?oGzo}?$Wn+fMD4bn5^lyeOa zlvLSS3xY%iPQXR;Ki^p}czKrA+eU#oynT3%BKYlmUcPhl&6NBjlKoJCATNRT^Zg&a zwo7Zok2e76>*W0Y{Q5F%`H!h(I)6a)_kVx3O&X9t`Je9p0OisNT@aArg}rvMX>u6v zY-1$db#2}T)0Ah<&(xVDxMEI-PcD|U$}E imXC#9fyZpNWl<|=081H!#n5C;&I#T@%-5{lo|8xN6TZy7pS`g z>R}#QTq8)gi#Vd2Hz$B4@{Ga(-NS9G%OuAW087;JTbW&=8_798)ZgglN#O&P_Ogh2 zlQrub^iK)9c)|cl`{Dwi_oE)ZTN}d ZmvU2H7m&N9JPJNOOXYV8yi@-8A8L`av zb?UE~tLr0`jEpVn&$Q! 8Uu@L4n6$r|l}bH%M!lkEqK;+Sn yXXC-sAgoc6dIYi^Uo~MVRk5Tg}?nj(X(! z_3iVw%Um9hv*-R_1fq1FvgGrh+t=xIGso%qUT$YE8q0aISP@ p76VAjgolvE54~ zgGA=cnS6N?0i+lH2oGxwk6*MrPbht%8BKPC1TPNd!@I!@i)nBpzrUL}ct0=q9maei z00_L&(E%sa`@x-pkKeE1yZ9rYSB3n>1mbs^>Q&ZEP;iHQ9zANs5j*n~e70|*Ly6_@ z729Ml(v_ (*=%SeK)Lj&SJdHqNbyEV*QfC$5qOr^~h z-w|D}{0Vl;sgotMwkfReVtTguhz*&4aW#M1Y$LVLk~Fw>%-=5u``Tfm1P#!`%x($i zIkE6dOoykt08e+svxDk= O!33> zWAj0VGbPnYy-cAe3+5peo>{!#2Hbd^Y@5s}#f%Gcp9k*e)?PS!WBO Gvkc43K8uY^t>g-@K z3LO|M-LT{h!5?`IE|y7rZ6+o}vva>Z-}cP$)s6x=R|{ GmE z=ri43y0Gkj-@Ws`mPenZ-xv67`u*e4!SsD&mVMUVpX8k{H>22{dyp~vAKc+52j29w zT1Sa7<0cQw*Rck9B@QJNxg1)QviNZ~a$5z@g5G(3p@%Hs5-tl2cP!^22_jqC0kUGc zpHkAm-t5RGKwllP;`)_mn4{ILs!+{?tXp{-ZhXkl!((lt>g)#x?PVT>sJpXAOJ?4u znVYQd@e&?j9 +0dpYK@4Vm?)(T3O=CF6#A6oLB{1 znPC#1_6=Cr&H@Nc52EIdeCM3<&$-r4C5Mg+z<+;;-16Slr*q`Ik#6F *gMV zXQ;LEUhMjl>1WoMeK|i9=vnx(W@gMf$U_P1bYGmp3{UHSQ&9DI59(wvPC(=3a_$8W zN9{YJ79;L6M&fg>aB~K6ZN*AB=!&b;4V2T~1BVe2fdxHBA n=dU&I562Ti>!BMy3HuYb5_n0#EL z__EZh1K5AKzkp|t_xm7TO#c9Qfp3P-hnW8W5xcx8xh{8STqBmxi-m=Be(>E*wct#& z)PtNQICbj}fz`1GAc5iE{F^UMSqsNEmpuL9G_ F*@^f4YGT&9^^>6~xiEJr4wiJB{HWE?iOT zGv>XdBkH-l6T8yYnFsNf-9K*<3{z)ae*XaG1z$3m&L&MU+N4;k2#AeQQVdQ1G=I&wTw25#%W>|(qzYNRiNcf*ZapKi;0@6dW z!DR#H1I!1Qlhj9?g^D6MbXi$`hMi61kpBSl_`Cu_)J$G@{LUO<0Xw)jwM$NDx3GA% zW^1XwUab+|Ki~Gy(;;=vSqstJNL*QP$B4SVm+HdBUe)d1-R;>e*(u^*#F+kJJkBE7 z_jX-3#J(lTeUI<)blIB38R;4v>Hyn@A1~@!!dVZk5t~ncwc2}FW2O5_2h#{2HZ#2c z0NZdJ83-qFcPC%+0wZYLwqjdWrUz#plqbYC)wjd{!~iG}0RaI30s#X82LS;A00000 z0RRypF+mVfVIXmVk)g4{(eU9g@&DQY2mt~S0Y4Dh0z-tgzH8-_ibb_+JQKSeAV9MJ z0M{!ljJUlv^xJK{c6PSf$z?4gmB&;>AwJtljA1g!Qd-sOQ(1ipTMe@ Em>vs zH>R{w a!#$?^L+j=vwF(D>wwp-U_i?xNTR^StTdtAWH zmK3$kw%b``)fb?&+RH4liz%6{mfK@iC9@Z8vwFCpTYurD^ljai+OSSRV`aqKVPR!q zGP27rMr$boLs;=5OD 02W?eBK1mhIma+$f?ID) zvdigZgP{Cnw%gMzq+4>;@=KN5)p9xU8gfYNn`c4{?Brl;{r)b2VGB6OGWs&%F;@CA z`Zn8Rn?`psaXIlXh8L*?gtfNYZMUb)p50DfjTq#Ia=vK1#WS2+cXSKt$#Js!Hrr*k z+C{>{^9$`QTIO4AqA8JWw%gR9m86*G!7ZcR#-h%;jdaHDG1T(5+P=;7X(z?H)i&D~ zuG?+2O+2$)a>`pv3_@)r+tj^1m2RezODvV35M%&5LipONw`+YnZMNHOw$@Uv91_b% zi+r;f&27n~yv~sZ8`o%WHv?tDS)8pWoQobWRhs# &Rn+ikNgwxaWxL53S`w%F+VM-