From 36279fd83f9653c93dceac4ec7029eb416271c10 Mon Sep 17 00:00:00 2001 From: Tyler Chen Date: Tue, 22 Sep 2020 19:11:32 +0000 Subject: [PATCH] Implement new layout (#58) Merge branch 'master' into fix/missing-functionalities Merge branch 'master' of git.bubblev.org:bubblev/bubble-web into fix/missing-functionalities feat: implement new layout fix: header fix: showing error on add ssh modal fix: login by enter key Co-authored-by: jonathan Co-authored-by: Tyler Reviewed-on: https://git.bubblev.org/bubblev/bubble-web/pulls/58 --- package-lock.json | 5 + package.json | 1 + src/_assets/post_auth_messages.json | 3 + src/_assets/pre_auth_messages.json | 7 + src/_components/layout/Footer.vue | 117 ++++++++ src/_components/layout/Header.vue | 4 +- src/_components/layout/Notification.vue | 27 ++ src/_components/layout/Sidebar.vue | 245 +++++++++++++++ src/_components/layout/index.js | 3 + src/_pages/Layout.vue | 4 +- src/_pages/auth/Layout.vue | 2 + src/_pages/{main/account => auth}/Payment.vue | 2 +- src/_pages/auth/VerifyEmail.vue | 49 ++- src/_pages/main/Layout.vue | 105 ++++++- src/_pages/main/account/VerifyEmail.vue | 125 -------- src/_router/index.js | 278 +++++++++--------- src/app/App.vue | 19 +- src/public/bubble_bkgrnd.png | Bin 0 -> 38611 bytes 18 files changed, 699 insertions(+), 297 deletions(-) create mode 100644 src/_components/layout/Footer.vue create mode 100644 src/_components/layout/Notification.vue create mode 100644 src/_components/layout/Sidebar.vue rename src/_pages/{main/account => auth}/Payment.vue (99%) delete mode 100644 src/_pages/main/account/VerifyEmail.vue create mode 100644 src/public/bubble_bkgrnd.png diff --git a/package-lock.json b/package-lock.json index 3cd4581..dc389d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1280,6 +1280,11 @@ "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", "dev": true }, + "blueimp-md5": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz", + "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==" + }, "bn.js": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", diff --git a/package.json b/package.json index edafd88..f8dec94 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dev": "webpack-dev-server --open --env.server=$MY_BUBBLE_API" }, "dependencies": { + "blueimp-md5": "^2.18.0", "lottie-web": "^5.7.1", "luxon": "^1.21.3", "qrcode": "^1.4.4", diff --git a/src/_assets/post_auth_messages.json b/src/_assets/post_auth_messages.json index 2c63c08..a08853a 100644 --- a/src/_assets/post_auth_messages.json +++ b/src/_assets/post_auth_messages.json @@ -1,2 +1,5 @@ { + "label_homepage_welcome": "Hello", + "label_menu_help": "Help", + "label_menu_settings": "Settings" } diff --git a/src/_assets/pre_auth_messages.json b/src/_assets/pre_auth_messages.json index 2c63c08..bac8ec1 100644 --- a/src/_assets/pre_auth_messages.json +++ b/src/_assets/pre_auth_messages.json @@ -1,2 +1,9 @@ { + "footer_links": "get_help,legal_stuff,about_bubble", + "title_get_help": "Get Help", + "title_legal_stuff": "Legal Stuff", + "title_about_bubble": "About Bubble", + "link_get_help": "https://example.com/get_help", + "link_legal_stuff": "https://example.com/legal_stuff", + "link_about_bubble": "https://example.com/about_bubble" } diff --git a/src/_components/layout/Footer.vue b/src/_components/layout/Footer.vue new file mode 100644 index 0000000..3a40db7 --- /dev/null +++ b/src/_components/layout/Footer.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/src/_components/layout/Header.vue b/src/_components/layout/Header.vue index 71d0547..a1991a1 100644 --- a/src/_components/layout/Header.vue +++ b/src/_components/layout/Header.vue @@ -1,6 +1,6 @@ + + diff --git a/src/_components/layout/Sidebar.vue b/src/_components/layout/Sidebar.vue new file mode 100644 index 0000000..30a1963 --- /dev/null +++ b/src/_components/layout/Sidebar.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/src/_components/layout/index.js b/src/_components/layout/index.js index 2abf172..d37206c 100644 --- a/src/_components/layout/index.js +++ b/src/_components/layout/index.js @@ -3,3 +3,6 @@ * For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/ */ export { default as Header } from './Header'; +export { default as Footer } from './Footer'; +export { default as Notification } from './Notification'; +export { default as Sidebar } from './Sidebar'; diff --git a/src/_pages/Layout.vue b/src/_pages/Layout.vue index a2910a7..bafb6f0 100644 --- a/src/_pages/Layout.vue +++ b/src/_pages/Layout.vue @@ -1,8 +1,6 @@ diff --git a/src/_pages/main/Layout.vue b/src/_pages/main/Layout.vue index a000830..bb3aae7 100644 --- a/src/_pages/main/Layout.vue +++ b/src/_pages/main/Layout.vue @@ -1,21 +1,102 @@ + + diff --git a/src/_router/index.js b/src/_router/index.js index 743c422..24c779d 100644 --- a/src/_router/index.js +++ b/src/_router/index.js @@ -62,23 +62,12 @@ const newNetworkChildren = [ export const router = new Router({ mode: 'history', routes: [ - // existing pages - { path: '', component: DashboardPage }, - { path: '/', component: DashboardPage }, // { path: '/legal', component: LegalPage }, // { path: '/support', component: SupportPage }, // { path: '/me/old', component: ProfilePage }, // { path: '/me/policy', component: PolicyPage }, - { - path: '/me/download/:uuid', - redirect: (r) => ({ - path: '/me/policy', - query: { download: r.params.uuid }, - }), - }, - { path: '/me/action', component: ActionPage }, // { path: '/me/changePassword/old', component: ChangePasswordPage }, // { path: '/me/setPassword/:code', component: SetPasswordPage }, // { path: '/me/keys', component: SshKeysPage }, @@ -89,64 +78,17 @@ export const router = new Router({ // children: paymentMethodsChildren, // }, // { path: '/devices', component: DevicesPage }, - { path: '/apps', component: AppsPage }, - { path: '/app/:app', component: AppPage }, - { path: '/app/:app/config/:view', component: AppConfigPage }, - { path: '/app/:app/config/:view/:item', component: AppConfigPage }, - { path: '/app/:app/view/:view', component: AppDataViewPage }, - { path: '/app/:app/site/:site', component: AppSitePage }, - { path: '/app/:app/site/:site/view/:view', component: AppDataViewPage }, - { path: '/notifications', component: NotificationsPage }, - { - path: '/bubbles', - component: NetworksPage, - children: [ - { - path: '', - component: NewNetworkPage, - children: newNetworkChildren, - }, - ], - }, - { - path: '/new_bubble', - component: NewNetworkPage, - children: newNetworkChildren, - }, - { path: '/bubble/:id', component: NetworkPage }, - { path: '/action', component: ActionPage }, - { path: '/resetPassword/:code', component: SetPasswordPage }, - { path: '/activate', component: ActivationPage }, // { // path: '/register', // component: RegisterPage, // children: paymentMethodsChildren, // }, - { path: '/auth', component: MultifactorAuthPage }, // { path: '/login', component: LoginPage }, - { path: '/logout', component: LogoutPage }, // { path: '/forgotPassword', component: ForgotPasswordPage }, // { path: '/appLogin', component: AppLoginPage }, // { path: '/restore', component: RestorePage }, - { path: '/admin/accounts', component: AccountsPage }, - { path: '/admin/new_account', component: ProfilePage }, - { path: '/admin/accounts/:id', component: ProfilePage }, - { path: '/admin/accounts/:id/policy', component: PolicyPage }, - { - path: '/admin/accounts/:id/changePassword', - component: ChangePasswordPage, - }, - { path: '/admin/accounts/:id/keys', component: SshKeysPage }, - { path: '/admin/accounts/:id/bills', component: BillsPage }, - { - path: '/admin/accounts/:id/payment', - component: PaymentMethodsPage, - children: paymentMethodsChildren, - }, - { path: '/admin/model', component: ModelSetupPage }, - // new route { path: '', @@ -154,100 +96,123 @@ export const router = new Router({ children: [ { path: '', - component: () => import('~/_pages/auth/Layout'), + component: () => import('~/_pages/main/Layout'), children: [ + { path: '', component: DashboardPage }, { - path: 'login', - component: () => import('~/_pages/auth/Login'), + path: 'me/download/:uuid', + redirect: (r) => ({ + path: 'me/policy', + query: { download: r.params.uuid }, + }), }, + { path: 'me/action', component: ActionPage }, + { path: 'apps', component: AppsPage }, + { path: 'app/:app', component: AppPage }, + { path: 'app/:app/config/:view', component: AppConfigPage }, { - path: 'forgotPassword', - component: () => import('~/_pages/auth/ForgotPassword'), + path: 'app/:app/config/:view/:item', + component: AppConfigPage, }, + { path: 'app/:app/view/:view', component: AppDataViewPage }, + { path: 'app/:app/site/:site', component: AppSitePage }, { - path: 'register', - component: () => import('~/_pages/auth/Register'), + path: 'app/:app/site/:site/view/:view', + component: AppDataViewPage, }, + { path: 'notifications', component: NotificationsPage }, { - path: 'appLogin', - component: () => import('~/_pages/auth/AppLogin'), - }, - ], - }, - { - path: '', - component: () => import('~/_pages/main/Layout'), - children: [ - { - path: '', - component: () => import('~/_pages/main/account/Layout'), + path: 'bubbles', + component: NetworksPage, children: [ { - path: 'verifyEmail', - component: () => import('~/_pages/main/account/VerifyEmail'), - }, - { - path: 'payment', - component: () => import('~/_pages/main/account/Payment'), - }, - { - path: 'me', - exact: true, - component: () => import('~/_pages/main/account/MyAccount'), - }, - { - path: 'me/changePassword', - component: () => - import('~/_pages/main/account/ChangePassword'), - }, - { - path: 'me/setPassword/:code', - component: () => import('~/_pages/main/account/SetPassword'), - }, - { - path: 'me/keys', - component: () => import('~/_pages/main/account/ManageSSH'), - }, - { - path: 'me/payment', - component: () => - import('~/_pages/main/account/PaymentMethods'), - }, - { - path: 'me/bills', - component: () => import('~/_pages/main/account/Bills'), - }, - { - path: 'me/policy', - component: () => import('~/_pages/main/account/Policy'), - }, - { - path: 'me/delete', - component: () => import('~/_pages/main/account/Delete'), + path: '', + component: NewNetworkPage, + children: newNetworkChildren, }, + ], + }, + { + path: 'new_bubble', + component: NewNetworkPage, + children: newNetworkChildren, + }, + { path: 'bubble/:id', component: NetworkPage }, + { path: 'action', component: ActionPage }, + { path: 'resetPassword/:code', component: SetPasswordPage }, - { - path: 'devices', - component: () => import('~/_pages/main/account/Devices'), - }, + { path: 'activate', component: ActivationPage }, + { path: 'auth', component: MultifactorAuthPage }, + { path: 'admin/accounts', component: AccountsPage }, + { path: 'admin/new_account', component: ProfilePage }, + { path: 'admin/accounts/:id', component: ProfilePage }, + { path: 'admin/accounts/:id/policy', component: PolicyPage }, + { + path: 'admin/accounts/:id/changePassword', + component: ChangePasswordPage, + }, + { path: 'admin/accounts/:id/keys', component: SshKeysPage }, + { path: 'admin/accounts/:id/bills', component: BillsPage }, + { + path: 'admin/accounts/:id/payment', + component: PaymentMethodsPage, + children: paymentMethodsChildren, + }, + { path: 'admin/model', component: ModelSetupPage }, + { + path: 'me', + exact: true, + component: () => import('~/_pages/main/account/MyAccount'), + }, + { + path: 'me/changePassword', + component: () => import('~/_pages/main/account/ChangePassword'), + }, + { + path: 'me/setPassword/:code', + component: () => import('~/_pages/main/account/SetPassword'), + }, + { + path: 'me/keys', + component: () => import('~/_pages/main/account/ManageSSH'), + }, + { + path: 'me/payment', + component: () => import('~/_pages/main/account/PaymentMethods'), + }, + { + path: 'me/bills', + component: () => import('~/_pages/main/account/Bills'), + }, + { + path: 'me/policy', + component: () => import('~/_pages/main/account/Policy'), + }, + { + path: 'me/delete', + component: () => import('~/_pages/main/account/Delete'), + }, - { - path: 'bubble/:id', - component: () => import('~/_pages/main/bubble/Network'), - }, - { - path: 'restore', - component: () => import('~/_pages/main/bubble/Restore'), - }, - { - path: 'legal', - component: () => import('~/_pages/main/account/Legal'), - }, - { - path: 'support', - component: () => import('~/_pages/main/account/Support'), - }, - ], + { + path: 'devices', + component: () => import('~/_pages/main/account/Devices'), + }, + + { + path: 'bubble/:id', + component: () => import('~/_pages/main/bubble/Network'), + }, + { + path: 'restore', + component: () => import('~/_pages/main/bubble/Restore'), + }, + { + path: 'legal', + component: () => import('~/_pages/main/account/Legal'), + }, + { + path: 'support', + component: () => import('~/_pages/main/account/Support'), }, { path: 'launch-bubble', @@ -259,11 +224,42 @@ export const router = new Router({ }, ], }, + { + path: '', + component: () => import('~/_pages/auth/Layout'), + children: [ + { + path: 'login', + component: () => import('~/_pages/auth/Login'), + }, + { + path: 'forgotPassword', + component: () => import('~/_pages/auth/ForgotPassword'), + }, + { + path: 'register', + component: () => import('~/_pages/auth/Register'), + }, + { + path: 'appLogin', + component: () => import('~/_pages/auth/AppLogin'), + }, + { + path: 'verifyEmail', + component: () => import('~/_pages/auth/VerifyEmail'), + }, + { + path: 'payment', + component: () => import('~/_pages/auth/Payment'), + }, + { path: 'logout', component: () => import('~/auth/LogoutPage') }, + ], + }, ], }, // otherwise redirect to dashboard - { path: '*', redirect: '/' }, + { path: '*', redirect: '' }, ], }); @@ -281,10 +277,10 @@ const publicPages = [ '/legal', // new Pages - '/new_pages', ]; router.beforeEach((to, from, next) => { + console.log('to', to); const authRequired = !publicPages.includes(to.path) && publicPages.filter((p) => to.path.startsWith(p)).length === 0; diff --git a/src/app/App.vue b/src/app/App.vue index a4393be..8574e51 100644 --- a/src/app/App.vue +++ b/src/app/App.vue @@ -1,18 +1,15 @@ @@ -121,13 +118,9 @@ import { mapState, mapActions, mapGetters } from 'vuex'; import { util } from '~/_helpers'; import { loadingImgSrc } from '~/_store'; -import { Header } from '~/_components/layout'; export default { name: 'app', - components: { - Header, - }, data() { return { showLocaleSelector: false, @@ -197,7 +190,7 @@ export default { '/support', '/legal', ]; - + return ( newPages.includes(this.$route.path) || newPages.filter((p) => this.$route.path.startsWith(p)).length diff --git a/src/public/bubble_bkgrnd.png b/src/public/bubble_bkgrnd.png new file mode 100644 index 0000000000000000000000000000000000000000..5607dca41d5df5309c9b5a1bed86923ca86db9f9 GIT binary patch literal 38611 zcmcG#1yfv27cNS0g1fuBYj6ne5Zv9}-2()7C&=I~!QC0$AxLm{_dC4bJ?9^sshXPV zJuOeK?xlOJNF@bH#IJZ?!N9-}rKQAGz`(%Mz`(xT!a{?dSnfhUf_~r}rLuXpVwP?JKK&Dn!h`E{@e2Y`l5mnaPqaiwu0=J zP(lk)DI`YI7s>(zicm;VDkITYY4gOhkJ}cA<-+;`WN%gRQHDm;EwOBikd4LMk zQUVC;E@Cx3^OJIY0d=MOvR%*D>jDIufdl>dh!Bx{3_c}`A0Y>7^-v2}J`(ejy9ir; zPD=#7wQX=|O9w#)qC40n7%Wae(7_f0N+zfkC@Vbv2*D5I5jgU>Bms26kk2K;8q9xP z9bsYdFM2v3uweh2^$UsP8qC9*f$)D|xxn*xh+3B3q5tbz`vsQBqsOlriG<}7-PfQ) zr(ElmM8V^WQ48;H2m!xp1W+73i z8Q{QK)%Slh34Yn0<=0O(WcXokWS zI~6KHx6&?3doN45h#G?mvibhy!L;<=-{=ymHLv+*Nc} z61e^&%sv}d)D+FPk~iG~_h<1a$6;{V$dDGAfvRlCEe%ywENKIJ_MJ@#+3FZ&)r za84k)|7HqmVHldil7)eyq?E~~R6qWWEsBoy-yxfmF#Wo!7@P%oDsLmPc0$<0f7kpx zQZW3WmhlqxP{8mMr_4C|+^UuO|DgbcQ$}2#xt>m>2A8d(BJ#~*b5~01ZlWxBRaKR) zm>2~1*DxL^^&q2ks&LVM1w~|Z>BQa9QE9Ce%52o{8CjWVAD3hF+w9$s->rvZ2@@x+ zTnE&Wlc~+g1lSMU8FH7bAVAA^fp0q_b!#!&!3RtUJU~tfecUm^YcSZITJGXw=Hn!4 z{vjQ|`4WB*B2MuoQL8GFJcCl?s2G+^87oCdTulwYPy!h%iz*^jS5KfwmBh}zEk`Cu zl!u4IBk*+DznS+u#N9<2e{CA3-Y8d_uE5{lVs>{c`wUt*kU6j=yT8oGh;luuDn;mJ zWs2-%F=wvTaVz-Vk!N|F#TcUhC)rqjJPnoBpo(-$V=4v3LxDd%7J$b5ftGZjaf3nz zuOM+Kngo`8XU<|fdL-L-FGWKl;I@!h9tR^6qqT85+A5Sg8dKyT88)=#^KM`Z>zbEJ z7-?bH&lSs`h6sIly&MB%HE43yeqli2{0q)DPS`D_bXI3^#x;_v6dMF2#?ryjabW_a z6%)|VM6;2vAQXpl{m;heYvgdGYUQ}S$HlYt7hcXN`?Okfqk=y9KLV0@3jHN`mp*a~goTAQkUGuqGh1Iy#jSTh70*3hB zCH-%LmxqM`IIS<|%oGpj>sgqZ0xOPwVUeYfn#maG^r-ss3Z|m}F{VAZ(-FRr^p28< zshsYH``?_PIN#kf#tL;eMx-!2EP8?YDl28&qWahgcdt1n+ev9ot<s}t6OVPbrQ29SF{q@VYjN`orwrDZTJ1*_L(%{E#_Cv4_ZjewAHS=zMegUx zh0x5*%1WJ7og7_XV&lwP<1fC9Y*HC+PriSZEw?zVFF*D3uE_w9MvmUTzMjLe7O`C) zZ+Uqc@GB*#-?T*|2Iq;RHJN2Y=b*OHK-Yi;ZUFFL#U|0ue>*La>4ZBJ_4t_^|Gg$Fn4_K)djx`j_$ybkL{7*^w=!R9U{(5qa9c2SQ0>ew&34vE9}DFM@e=i)1D!UJ=2iSDc0&!cRY zYt2krSf{IQJsZ@RW*Mc*@t+BuyKRe0lIBXNB_Cd&vAc2FZYIB>`#j8c8l|`?+VGo8 zpEkN`BVM?B|9AUKEr5Wu?RwkgjSagsJr6&(-edWbNx1LeKn$(Xh^PhD5~%^UtW9DD zx8RKSMaMvRaqu9olf^3dKg~7S%k3UNS=dA|%_kFiOJmEOE(*pLt85`C`!K%zq5w_* z5A1HW=UH1*@b$7kU$$^&uh-DgF5(~y7JF(aUvE{7E45kYd8$6+B2_@kF#PB9p_{_Y_ z1W}d$G&8p9*?U(ivrXsl{jf=fetXMNtu_pH=CV$f>o;sBO=y`lNNS>~S#J7{?uQzW zW_v#$m6Xlh1^Y-bW?1bMhgq~Ku5g((`~5+(0nr%j7*~^NT~?O+v|&o{Z=?5Hu?s%g z)^~9^=lLk?NO37M3b*^0{?<0sLqDYmMLD^S)s2lV4L7N#(4sA-YqZ!!fhPSv=TEg! zT*~cq6jsZC8~YU)b8u_>PqRMQ(O6q^cEOEJZvgjr9k)#M`u1v$c~Xb%LaEok$|)Ud zSThqVaTUgirJH7&Af^`8U$+=0g{94bsp4lfwfwHfi(rez>3Z zj*K8_Fs}4cQ0!*#Je$V1RH;=+dVULOp1k|g8_EKblwjEfxvtTA!3D;^#lpCa?%x1_ zS;Ihs5g%hFJS40ezc?}Ud>5DT>KF6GOMdjD!*pz08ykG@$E}|(h0r)T3%>QP75Xr) zleLO(y>=&*156;Ll9`{2$7v7&)G+XC@;aIY9Nh4C#|x|BP_RF%QRvRZ{^ z_|}p9o`lRRrIV^8>0q)~Jnbza0wLo3f?&2^Dy2DVMwqqwSA!K{j#5-JlWZr2hTT%@(I$ zvxG#WcLB!RvC3=}@Dp&(sUu{vk6>_(Oaz_6Yl6?A+&U!(gmn zl_0MGWaS+LlwD&Ti9Px8Ysx14nIGB-h7P($!oEXMw{VG-|<2k^a zH))^Y6h@3~yw&|C#&!24Jw9!{vs{|}-8foJ=Ff`-(n>tUFU!NrH&X_k!H&A=fnP_g zhR0VAd;gv4{HY_Ye}q`->=gU^U`EQi@M3w67)lBnWr%)fD0k!9v8NdDtf^5-TAypQ z?5Lt7XSbG}`;&5xq0uLs@_1AH2+1YGF<}U{q15KRjQHbmxKH;HY0vAjX!*me`S=Zt zHBe_8oeUd9)ddJ3zz+j15#a1e z^4=QC;;XOTr>yUhIPO*1UNOyG3jf)T)yVBVt*XeEjNTh;p-;N_hdm%hR-NGLQr zgXUGtqp#>*5WQOG9ZN$iP*=kJ(ngr{DJ;PtdYrY0Lbe;z#^DmiHG#F+r^Y`aA_s zaE3HM9fN|8w>KZ2C}LDCLgF~I(GjHXz2YL%_; zIIz73)F>kK6I0=f^-ffaaNL^6;%1(PEv{oQjmCksxczi3!C(gfS&E zWSpT6&L0#jDn*%;Pt}$G)CbS(N*16q20C&u;Z7ys_G}XL`4&GZf=+;Wt&AFP**TIsO?#aNx_#K zU6!8EBMK*2*$Y_c5Z8Pue~=W~+Aj0~4#a-iJ7AhH+p~P%^-6R$J(OukqevrU0#H;c z(*|&-?T|o!AA&iR#ZX?={_YgO`RCIWks`B0mG%LiXCTi*xk>A|{P7X#=Nz@z5wiG3IN=+L zYpTTYnCZ3SpH2f)$k37mT2zazI){1Ut`4J7?`qrcmJHb>-Ma~TEOIKh>*XM=N1(8QWTa5JB z2z7hbg@xu5<0Z&H#OFniQ?+P2eK%%IVF(HBj zh#JR1PM#1{fi3exiM3KWL{jwxX%s!|Y=qmm+et}ttNGUir51T^$;$`>v|wP%ztXmm z`{p1~(iUmakmH2>Nxnmp@;2A=_CR= zvF#R#Z`;}2JiP0xs;VkGp2!$%KMn}pKfESu#7Y}_>H)ySK+zHQcCt?24-C1u{z~{p`S+Vc*Q&VBgrCYB7(jUOrL}X-khGRQz-CpV2 zI)gTQ2OyPVNQn1U8y*T$2LaUJTV*9g_&cV&xN2vr3>o4aCmFCC(G2~l3Pgm2d50$_ z?3S&!gec8D(m}9azOF$&mGg6Y#2L2EOa4LIPt~!Pj*eBxne;`ImiPhAtvujMmXeA0 z@iY}+?|f=AE=3~y1RjX?sJtfP7%U^wRVN|8#vLIG!{dIsYp8;nlF_<7MlZ>YE+KU| z6J@AnbRCARk8^Qx!HnYNYL-iMhZG_F539+LG8BNG4B^!$Sl$*bqRZFAK6NUTlr`V) zq~#$_APq0a2g_1cI!rNxgH*bN$fUh|98RH(?DT`9lY@(k^JzCp5vy{tArf@&?&haO z)#kZ9?`oqqn?MUReXbkMB^npXL{IfP6ws*&qbyZ0Y^8^OC~_~` zx6pwX2p{qsqVX%g_QUcs4beZ&(J)^tl^F!B8tX(Ix7@j_Xm4y zUMaZzG^iJV!YvxNt|2@9ePu)Yiez z1qxN4qj~7+u96Cq8owciCUlZ?YryF5y;w6k=jE<1()9jXl_GaHXIQnCvDY!!MLk=8!vlrM(Fl0RVnNP&Jmj?CsDec2Rpm)alk+)r{UNydpQGq-2MAk_bDJNx+fc=heP#l(~ep-I!){bxl) zxzO(`aDC*CnsDMLeLb6|wLI(L7$4h*hDJ-fi-i@ryeWmXk%Q_~^4xhCHDNVxlbGUs z-1BgJd#P-GuWP_0R1S88SJZ4e6uK!xN~@Q$@xHsf-$VQ6S@*++PZ(PQJS51xfK&&r z4#U@}o$YpoWO=2M(vT}C%NGpo+pOEO=+>xv-Zd?!aOX@ORHqbrKYzDe@@U$D z&$ha9^mktN!877>*)EUYysEgRZ$It02K^#1_|8-J{{)7<{B?PL zUHsl`nP~;aw^?Vp?r+-R$MSQJecrsBoSZHzW*SuZcw{%Gsh4VB%+$I{Uz305MK!Mp z{h7b`(v&;~PlZ*aVb@K&d|P}QimsgeQ{UTaYU8A)+nLTKTALxw23FR(2?4VR9oQMP zQ19;~rpC8`vOM$HO3Js67J!nzc$rnpkbwMv8p4y3$C!*s7h%=jsK{I;Q$1);KreR3 zmOo6-LH)4ibJ3Z2eZ9KW?XSp#hB~DX6}l&L>!-2tH^*g7f4!E0dvP=1vFAYWq4lb@ zQyWWmcvveF4(2r|Np!#=rU@xC39WI`>|htNeQur)W~{*Jl}f4dU6@Wx%_1N={TDVl z^i<7Q2!IN1hOMPD5zZ-Pz>QsAlSxlXmR;AtAaBi2dTOA4kRF^7F?%+E-uZd)d+ctd z2PJWO^-UVy>ICZ9Mx27iqYtw`fTA{qnudc6@tHr~ zR7K`DBssYy&BK2xo@%$dKV7w&NKjuYf$poj7NdyUmIlzcDT1t>AwE`9O3kY9^>_!{ z$cig=@FZ4Cj$Yl0s9r_Aa$m3grlaa;VTW0exiXEiUl0^%OQ_hmEuKgi8p4#h;7Kcr zWpP0wY|Zu|OFBu=>9byHC0zRb?%#Sbp0FFu!_LOl8Zc8ZS=p+>NJks4i==#tk-G5D z8r<}{biFk-g>{;YJDvtIitCn(LfA`xGJ1Wg>}- z%;9rt!lwn6nT4vK1yl{YW=Q*ymvQ}o7QRVvOk)skTD8=+e?w~?%A8M z6V)fRcuV%jGny($?H7?L7Uzw%jqHl}ygySeE{2+(qP!WSyBhTOWAidon>kSGqu|lF z>}nX;zD`E+SumuTLzz5LG9c#g3J?gNiR8{zRZZbc)w2T#gVvdJ$idE`@ zQ4dR6=Kz~chRbof;el)gvzFdwKGg_CMpWI?H+NP5Em6}UxzH(i3ohcn84vU_6}f&M zFSFiHpn$1#CU=dA?NIH(T#+Ki-3IlVRs#;O7+KRV-3PmXrCYUe)4gfjgPscM#-%{6#yoAk)T zznjUC>y9!xq&3QIh0b=^O#f0t5tPxjtf>rb<|KS=yJ4!T-zuD;xk-rgrD$|JLB!vm zu+d{Iwn(Iwj)$i+wxzu`*X`l^3eh6>#**B|tHI@2ui{18)HVf${sZIM>Dr z8~wRi6kQq>`H@JuAra*$jIXjXO0s{=gevTECnJEmrf(@hRMbf-EI84~$chLc&A7S# z5#!*iLi28Bt*xf=YG3C{H{o3ZO~r(PHWyhKmil9O781II3Y90NI_pRc!XG0Q3kXf= zAf?86h#9iYqFwu~7`yqP(M14d({V}8;}Wzh;1 zGfjsgPK(BxvZH-E~{0Vsf$EouQ$f`5w0c9$+ZRTRSJL5>z`cbe~e=OX)gFnHH*} ztsQJjfp%OFVDYr6Sib6d1Aj~u|GLP4Vtd~XZIFkB) zp!;dUF7o}|pZVBxrDqzu9kQ5OXqJTOEup&Xym9^QjS&9ZH|!=ZNvs=!%~T9b`r-l# z3(g!G^H8JOWo6|pO<4iL5i7(IHEIi*0|emP$} zCPLvph7waVCUjrZ&L8@&qg$U*2COB{Nmb*bU07Cj_6SRhCQ z6}xn}zP6vY(R&VJF1d|oEp4D#{?qBxtSHmYl!E9_B+0r8?5_(oqab4y ze=1zo$Jl|AZGVJRPBc%xcg{3}xGFn3I`SmrrJ^bsE*VB6e|fkddYLZ~;jp3JqpUYnv1Gd9!cS4aa1atAg@4)*P0-S(Y$rJ)a-q zn6R=kv zt7Y|MBg%f?*V%kt>{)E?_M;`Q17?zMVGW*+(1XWKxrJFs7&~X)0AnI$tA%w_W0}m^ z3}qq{(`Aao!(#~r?<)-6tZ%VF?_ufYp!B7xr#Zio(oKXnp>3SFo@CIWq|OBQv$o?o z;;$5WcWa2bVsV9Q_x~`4GHSf`*@$-5WI5}fICl(LU!DmTV_k2_;<7WY?!4DNFR$3Z z?fMtoB)f_cB29v#Sw;{=qqi;snE97tf6)rdFxoaTCvg&?w(r74Bp|DjJR(QO>SF3@ zToABXtw-(u$K~L*hRBlypvk$=%eV{34dwx0K}KQ@EYK?!k0siGqi;LMmSd*#mQKHp zTf8d*uNP!fxgbZtsd~gkdzF;xIG_&`6Q$WhXa*~L#-n81VA?f#aI?o1)+6DA)8zoW zv|72m?o$Fn0{3N#Z?g4`ltpXlGBTBpFrkzqTP3XKX5wZ@O)c}MiTARdwtcIjk*II3 z&T6~Wu#2*G<-(dOjR9)3dK>xNok#L#XYg1IHVENUaG~Jvlpp5En z7&M0^JK_2F&pP_!N%y(l!t`_t*BXxQP;HU?%EU2zzo?dFcgs9NO@yvlQi}hhlL%I9 zwjjIU<(z??(4)}CgHSPNa2AHA1Qu+h)c}2({h$$@0>m~Ou@Iaby%Wc9u3a5ScPKTNjG$7)?_?b<^?OBZD-ta zCrdEzT5DTNG+=<%ooMd|*<4f#Wf|<`5$GgGm1tbIcSn=@JvRLw%4+=1Y-m+@%@{I{ zeTgWk0tnh@S!~Mq)pKgs+V0fv&)Yw|W(vM1OauvAHq}@BK%p2klzM3cB=$|yR5F&0 zi$GCjC3M!4z@nF_9WU?h?z(WVyUrzm)0-oqld0CoY2p1mO1-PM#Y0JZ;_(yWM@vsW zJZ;Zv{{F=6ur|`%-0Tt)6Qj#h*=WMZh=3i}FlLb`MWJby$1fltpA1fMW$4J4khslH zUxMHN{{F7f^?p}_ya^(Zc?@?L4ob$%>EHCBI+Y_lfq?HIE{U5;-Xvz^QOo`y_WTz# za<|l7RZ>-DRd`*ex8j+(#NL+}ewo)Y9&=Y@rp$S+sxFwPzB&>T)#Cg9d{QG+h}t9? zWVI4}^vfC2NlT6qb{x&AAT-%PVUkQa=dF%yn8QhyLR3?o`iDhbq=du%`xf!WdaeK4 z3Va*Z)HmiH7!7(m>%bQAKUxH-kXx*Dn|~vyr+M3j}wmAsFTQd3IjY}XCw{$H(xe1j5NGjozhuj zc)YD}1xn0FnB=#I1nRtzer|t{bTX!zi##HTvkGm>o>`AQXm**$|3S&nZ1)%Iu?I$w zrKZ#GJ*qf$ACZ8ZQBDR;_NB#ZF-JlvW;PT^D~+c(r21BfURd+~&u8=7YsQo>)qz~! z5GhS6-k|emh=#6fNlgVw7d6#&WLW5JPKZ&r)^cWrADc&`ZuVw%bcLFM);>~}l%0s( zPeM7-!2fLF-Ga#XveyVOZi6Vs%0o1p+*8>|z^fik!qim89)wG|7=el(R0}C_Rj<6j zgEi5$A6HX!{=@&V-@vs}v(8bE21B#oaZLrlYYe!xlm-aJAL!XYF6?GHeg8*i5K2g1 zHUO+4`sNOj2~T4)d7C~C_ThPhtnt>8Ghs|a#(Yj=04-%4>K&g*e4$#o_m-%=v+kYP zmym!P?h9Q^q@T=*X6AL*Hc<^a;>TO&tui{y>=r4>n^9t_=;-Yi@4d+PZ~ctT10Xqr zk{(X=K`BB(4X>mcfPuUlxcgnH{F6eVPsI$zAZzo%_n#d<`SzdmJP zWbB!D4{>ZC0?cl+F_o+K=8uRqp+n6$URYE8@+|5shK4Pe?ClZqWZBmLt(bUk&%P0B zDdhY1mt~Zd9W*;^zMq1u^DW#M5-i5_)FF^<{fyFl9)qurQ!@)R@_;(`Fgn`zI!4TM zg*v_nxLeTp*4~!dDTuMXNS7L|bnaT2`g*=E4BkNbj5{H1 z!TwjdsG+(E?_E%Bk$6K*UB_D-|FzU^6n%9>ct2tmg$V4Gh?}D4*)Jf&{ICA27ysuu z;($lOi}V>dRjLcC6w2YTgfp|!{oK+RwGh~Z$j&8N8{3p2kL_o=$O~wc)X9H^tmZQX zZ{3fBs`4f#a{{ty9^Kq%Ta)UcrY$@Ie+KrM@HBe3IXM{8Hy7@(RU-!$h0azQ{#7~n z(YrYSOaHLlmi67n`<}>F_H1*?inMj|y%2tZ#@exj1-8EFG~1iKyu>kfJRjRQsI~P? zsfL=;2*C3r2kiP`|AUg&evh@O>9qQI2WkGj(s(wnnmAe_W0iV>AHipPf#kml77TkE z*%5_|e`cvg9s1Vq( z<=-}J#xi(3V^6FdtgPbn-@?l*a{bLu4`&Kn#h|+eexsS!JvSWtanlNAQ(e4kSX)(m z&nBud*oRS9Yoh0(XSnFNIsd+1k)}tqyJAmS)4=gjLjFXv*&cP>DHbHG>SJN?lA@u@ zD#**rJF~Q;p?N#DPC%vVZ|OzHAlbSUvxP%~6He~i+!dZs^wjN+*D)sc zfSG;FnIE51;mXqT={p2Wtb3Ja-Swu8G@-ARnLuGzM<(m zqJy7}ucznZI6QMl{K*`L;h-A4oLm3$=q`7n%R!b;dt6{54=ocSY_k2r`8aarF!AO} ztMT`xA5l&Im{}9IYHEvBwG<6z(HlXFQetAmUI+R-@8j%>6#=DtEF>&exFFQ|r!V%~ z5J5+8a1|KM7fCq>H(TuIKRTH+qfI@y+p>gp`Fb_faEk<*l8M+nm20aIu>>5UAoX4)a>;Yhjg{S42lIFI#IKVjH+!w9KE^f?ZOZ} z&PGw{!EcPPosy|PkvGV28Sc6=SXV2#n`wNhncTdrrzimg8~c3?fBe_+SMW~bw3Y@* z;Nz!IM7be|o#(d~a{LqxV8#F%qb{y=x!62+gzyZ*+Wlw+<^Nd2+g6`@k^QHy+m;Nx zV1006I}p%{GR*Dd4#so2<9tT5V~0g{>8XZDPGcBR@W zwm$+qyI?nJ?L7=h_Jh?i(c8%+H=>827g@iCO~#`has&nHs#~j$tYhVwjY$E473~89#VI&?-!qtW9vL*D6u)x&;c&DA?}+GX_X86{RkGtWwvh^E1qf`_d>WEG z$0n5&=)d!MS*+BD>3o;gADO93K8kOxB&h&jQfCFwuTiSferIDB5kxul?#E}s?!E;u z6Eef9@5_4747)%xxjj6B(OTljMiN$tmJuvm_EhQ?BC3NtW)p_aI3|=!?tmK&{7gJN zW@SDf@&Xd2UhzOy3Tb1lTnB?DXH@d2?JJPOKS~tDE8O@q9RpF!g|bGhRCD;mN8@5@ z(#8qK>4=C(+jjq+HnnX(_ZL%J@Ii|UJJL*Fj?dfAH5*>;>|++|ycyJa@*s^xE&4d0tN4xal1JTA`-X!}riME=s}m z%_r;(6F=>4zO7gI+@B_JP(5j$5;3>e%=;G(1Bb+7Yh%}u`YO&|^@CoJq76+nNZgvP zJ%5ogFe5v!t=zg4GrC#in0Ciwp|~(gsCsxjeDgS4`0?L_sdVZbKc@~8uQk& zQ8R8DN25G;^4)yDZ|=|HuIbVq{d&eL0B2-{B!aplszO4V>!3To;&w+Zc(rocV#mHG zbpa!iY{}cgjk7s^RZpU!CUi&PN^*RRT+#-P=yH(b0nOC%cz1x7@s~nrM{nbJ?T(V= z#z<$W(jee${b6&n(y2DO=ad{eQ0f+1e#?27&;!!Jcd1>Unf;n=*Y8AWCPfF0eHO>M z`!F$gY2Ei`!q=nO{E`inc=k0lljaH!L*M5T=vTRLaD=T4=X4^d5CJ^BBAbHEyi&;K zsjD>cUqY1ogCEamt#5n@ftz33z{Eo|)SBHN<-E8uv1cz>Uzk zPfyrsbBbp_?Pb;jfRah89?yJ!(|7D2a$+1W>NxD}ySa77nz;0-$WK)N(#4{!s7dib zv$nBWeawC6u-MAvwD}r>d$@Q)i%kTLqIe;~@%BL7{i0{$;<9Tiov5v;KE}8F)3+8P z*CJ$MVnXMAQ!!vwTF3^0omQmdHvwRYh#6s5`d#F_7P}iR-Wn~_zf(P8?6~iDletf% zr*fi=8Yr!&+dtLW(9VDQ88d}h2n=>K0k-Bn&zJP!i2z~81d#xtgEfcW81I`4^p1}Qy16|LpF!x<8cC(SXy0j6R$$t+r z6U<8o9$TPvB1R++sN*VP!T62)GyL>!Q?KD4{9@YCk3D4?Jh5hvU`wsGN9Dc5Z-+n0 z@$7#HoAIb2MX8(6(?H;YB#XuT+ai9-YOS8J^Oqx`5twhkW$We^Vh+CwYIJPXtA2Ao z#o6)7#YiU4IpCGs*Yz#a=($e5ZR&GALRcWl?5M?1S8WyuH6s*j?@wbkXyMI}`h%{7 z1t8tppK=Izvj8QP$G5KRWUlX+9ZuNC9=>TmA}Z%|(#fcyi>5CwPM#MDx3Lksm@w9n z#OY1zg8^)^A;E2RY%DAud^T=!g`WeroEtT4N)E*2NSJa8Glz~w`LYaVUC^UzD)nto z1UvUq75~75yp9P6B7@fDgI2Yozcz+3Dw5vLxS^X)G+#vtaTZ{73 zFgU1ZmAcx|8A72ban%p^8UvFji8F%2(T;wrvzd3ahsSdq?ui*OEl$5Ki@!Ry z%Q|5dV(*=+GY_(x7S^$N)&_MsZ{L>iiBCie93}wUq&dv3^y1FqM^4Rl!85+4yESB7hcPRuuU9yX$(@ z2Pb!pg)+BxSORYG$u^MLKvXFGaz&$dRjRUwGZ|~hH%0sRhIr-TG)i?-lUt4oEI4G# zz}j@k;$k==_vR}tzJ>gEAXM$QDfUv~P6%~&haSHgMT8%@phAVec-t*MAT=dY0kMlx zH)w;`fQ7E*@)#N_Xbh%-H-tAh?e}URQQ_cuv!d4+>iHv9Mfg)^LPV#;?vRsry> z9Pv-)n3P8j-4Kuyn9A64HH1IGu%mLBjSwlH)6zp{vuJC7z+;YDnQEVuWRmeR=~QI3 z-Zt^eSu(~W=3p#_T#y+Nlq={!5 z+eK?|jt+s+w{PTJT;W)>XS6WCV&ol7m3@4CR-LWvMMa73Y!h6s+9l@#j_OPJH|Is7 zh6oGgJi&+~#8(C1jud}7%XZ>3NKy{zS%)cLO zbj2VfEry{fIEwB`5}>j)?25_Ew0CGaKk)X_nM|;mG`ifj7dbJjsTCp zAP%_t6|j^oC6%BQL3x{}tzY0X%qDkGzo%B3P1*yK+^hrz{zb4asj+2Oiw@cHd@2Q6 z`Uj2@UACB;17%rZ6{8gOP!3s&vINemL#H@W8KX7e7mnU~4+7?|nfv=#IS3mn!GYoPOk@d;Fm<74?0T$OYhb^yst$#PT7=@+QjNRv zNvG@0Co;9F)O#QILran2hK8S28&S9NK@zq^*c5C z!NQGFQBU`186R~cC}zT5ViwSFg^H3U3Dq86q8(q%eltib{r&~aEslmIsInI=r65KM zO~;y6UX#Kve3p14qZ!sM*WfRHpe{}60OQ|jiRl$uaMX|F;R6}COK2KoSfWq$@hAp63Rf2ww$okC$ z1wyRdJ!W#mn1WVh**(Xyt~-L@Q1MJtVsT|yZ0dOCG}8ypX*X=3edtgefMfZ(|z-1lq+ zrf*u3a=M}98_MVjWuJdrP5~uSn;5{kJrJQI460#zmB1CT6arPuspj{D7YT<^{zyH} zx3CTB87CC|RsrAXHy<>1c)3gqUJji=$?hWCyL&Aldr1!TQzMEn-@fvs{Z+5LrA4*o z9JwI0K$6KfDs`yCGHh&$yTqf<>#IJ_$T7P0|S? zO!j2VgzW6xvn-xi#%e#G) zE3<|9q#RATA==Zj?EdLc)O21(u7domv-o&Es-VmoB&dQ+sRrXm&sAAj+N^{5u#PB8 zX4poXsS3ebvxC8Ekas|UP@Pl;^n#-X5u}w?0f_JWVe6$74)*IsNIYTn;?z?mB_$+e z8O06f}>a2XlPiY$zpSBt@a+%*n=G?ecqx9x{Rzu!yJU&o#f; z=rkrH&7IV|(0VPp#!1~9`tGzE`=dIVOov|`(pnKLkho4KbR=VC+nasJi%d9lJ*G(BBuyY}&^-^KMz(H~SJ__5^j3JN)&nJ4`8Off0c$8PyQ zG1^I^%7ieARK2})=|4HZ`U^hZHqBF7z*E}p{POabT(gpYJgaDI{RGS2#vp+r4o~+s8mai;y7|hQXZq+2eFZ`ws-OJv+)$rjFXD|Mt@8ASeMAG zaG{DL7UEBSG4xM;v}F#YHUs-SM&=Q~!ys%^>bn1nfx?7bY!@A>d!~HcHGa*`m5$gb5D$2Lo_v2aRm#Y->zPIS=c(AlF(QHy*%#Gl{( zQu=gl{Q;7w{K?I)jp|C9;=k;HC>#*5Wt8;gs6&&%5@PY+u_m&6JS{v4MT)&RijUM@p1<|^3@*V_Luc-@7 zXAJTK$E1~gw-_B-pG!y2zpVi8;y6puQ7bJvqi2P#LBT*rQLMe0?bqz5=X!Jc6WhqC;dRrjIk6-hxP&55qL1L?rkfvfTa(=f0V2#%LY6KT-`6o@(fM7#S~Vq zQ`LIk+=7!mV+E-CGNrN8e;*2VJxw^|;^stmlfkNpqOqa>WqF?Ua_(nTrF}|4_P-24 zFY-fv6xv(eyMcBE(w3mtiiy5WAInU8XL8!<|8%dsM1PODI)NI@RFhBEain-D5L{ zj;Dyzgda#%pcoBCP0KwenECz!3c-1cKXKl%O*NP*7#{DMKh{@fpT5Zs4QkYM)IYe| zKLqAq0Rdx4+@Gv)jM(430V=CydfSQ=>L#I-7E)A8;uV3G<`ZyzzI6c=H&%>lRT(i> zm}S6Ghu`B1=-1%1=lT)x za#RN158pPuEDt7g!YsJjqqA|1jxbP)o2GYSx>` zZCZO>o$P$xm-y#pxYauZt6aPOQZBqgC;e!3m!o+=#?{BT*B$zXKU<78Q8E$M@)CqbP(sHXhDy*1W3QX-++H1sCrC`>>^iN1Bu^)$l;GL{JEF3 zb|YjGsbuTM;hf=~85l8lh>_YZ2kCeLmoc-3-LNH@=^i;@j^T0S9u}b{Qw}*VN#JLq ztX3|xFrBjPD-@#X_%M_tam6*VooHC|-h!vP^yUNC>*{D;ri|wWV-q8t4s+LTicEG; z``Nt|bMBPa?m>YMS;XYf;1YQedbg_O{e0y{0X?h?|M-or7~j<}(QU5sKv%dIJ-0o6 zvPff6m*Crhv2XU-2%L-@VxY60hO$8;BuMpR;`BE)1}=}j$)`+jV7Uo|#q|5_m)*mi zS#v)rUKeMSKD+)~G!9Do8+Q^kkyOZ`$M)EB=1^j_p=CgjHwc zE0&+FrcpemN1OIQ9=f@a^!Sv;&O~pKr0YQjHN>YzO6+g{<6oB2*Q|}jS{a4WVe(8l zCJnLavIcU3JCWRdm7btK(EUx2iQNh3&&Y({_tY!uDHXZw=67OIxf_8%NUFN$18627 zes;*gFnM@*$R<10f8hQ7GXRtp=NMa$H&cS`x}@XcO|oUF65_KDmay9V(|t+uKC(XA zkEF|>kaMSC=)F!MG!wPmr#l8a1sn)b;hz5;^WND^`60;=ROG@}rRQQUsJ!(IavY$* zjw(CUBT}lmBTf0kDL{p_0|Wys20DIuoU!K(@}$v|O=b#2Dc5U3-lVTz|d@v+5Azdm$4wcT|`*?KPJhHXpsY8BDYmx2tr zLnNwuVfxeCk4=E`wfx42?J0kw+du%6w4a(3R!Sq0vZV$q6*(K8c0qPrxRg>tf*w+^ z{B!)Kl%d`E^uSu%m9;G%E(gbG-0Sz8vJkBJX9te&q)4uV2)*x56C6Mrkyfqc1+TVQ zOi}K7u05IV1v|?y!E!nrCF;t>5t}v-N{MY&4F}q(*w;+|4VQU_$wEXiB_9%qM;+z_gy#K9%#W?wGLc$I!f~1~4km1Ws*M z>2S$eeLBg+B_yQ0TYd5^VEVT|*ilz^TWP>N-tC}+-j^@;1(PJH73ckjqEPg_iuQje zC0z3~czZ3FE7f!~S!?yKYRnyklac16*{>^B)tJQtMgy9ag*n-~`_+|Zs-Ts(Y*iVoJ72Y4gW%tcSPbB*IS zK-zl}xbHxgN1KZJ)kK&6#p@?e66^2ktjEG}vTvI1K1*JR*a|l7ZoWvowUQW&fwc8;# zE)1PA4dz6B97K^moFQC=N~|7J8`^jeMqQ7rNu*Kch0ESw-P2A+du=aEZ35-f2m#`( z(0ojah)GOFulTp&lRPg3A3%i;UgXSC1fI_qNm`5z20P$jXcs8#^~HqzI$>1r61>&7 z$zqtw0~XtWOB?c7*-z0~+|@@afS^APls9}QdPk+Z;-cam*-XSVlrOvUCXNavicLR- z^q4jp1Lj~2kF`4Mr3Pg0>$A~}wN(cxW8>e6!I<#iKYz}1Z^!Rb$@fe%8Doq7Wko9} zyj}bOV#lvJL@$N2*$B`<6g`#pVDT=TXoMjO&~Mzztq}XXDC>?3YNcixT12<0iduBotl=~mncrvbMYa?bo-al;yV6w9+PwxAEV6W#6Vb>x_lsX{x| z-h7=bH@oe##*DtS^snAN%3i{^XTfKYx0burVvgnRzZKUlGjR~_GL70YMlvORaso9C z1M{9*$wG|<=2ZuBtDw_@^Gd8*GypcVlHzd#_ZrHfF_9TO9QM1zDMfoQ&}Ke%cPnr`RjLDV)D9i+ zytx`0yWq?r)G0}ksJt?}YQqfKE-No$<{YSIHV8J{mXxR2dK>);o0a@x%%L5J%rTRe z?8M@~8amQE*jZ1XlclAA2`}I4Q<}iTz-z|C=|5`dp3I^R%2qTm#`~zlv894QNug!O zm5*Mp*wB+`=NabuW3V-t1NW1&NK*5u89J7X(XIx?`}ZO@ui zmNAvAWfGUYuV8mrww(9qpg7v0R9>h2OYFlr;4An`;C741SAV|YqH0SQfj6#$c&)!m zM*~cuHq7NsUQNavv0}JuD`2FifhCJtpmIr08WWvK=z9zEcILmf=C&0zg*$PA1>UjK z0)j8^w`uKGU3<-VDGmiLR!iK< z3Xd+ssD0?mj94gG_M%+gWm&E%`}Z~9Of*qxl36FW4)R?xY%wp{x7q#OIXHDmv3S># zKvy0D!Hw*8dRKZaJL-I%SrMPR=5mfq-&e6>JlwC^T+!Nv)H004(^a}_ana*7Rrf_L zl8aB|N^!yY1wi8A^oSRb8oUe>MpM44Qz&p{JaON}u-N49#Rp{bxL7bi` zdCZ0qj1yWcQ->P%*QG}~P(`KkrxWbZWCID~P!QXXj$FRS{hSeOU8jTI+1=d;42A_| zJ+em`9kbm@)Q#>Gwn}rO%A{6c=06IIOM*=4NH!tuR{(oU5in!|>+<%|rr{r2E)lZT zh8*K3dYs{ZH$vkglZRWt@K)sfbaRTRwY2n(4b;pW&3y=yp;-9g7WoQP&;MRd=5z)x zk13-`40jSgU7Naf8BGN?B!vG=%1|ITeU)4|^^}TJrjZICBCURF6g+$C+DXbXw%4J^ zD z6?#~Ad&f^0WUo#1EH3NHr?l<9i7RZY1=@p%({ud)j=z%%qWXKfVOWJ_Htv%V^yX(_ zN1Y_`B-aV<+Hng5b_Q+0JGKRGXWysk*k?(ldg`Ao)n3rHefcpIgq>Mkl9yMMwwJ;P zHsuY|r4vuB*9o5r>;BxyOl6jzFON@v!*xBN;N#FusAO@Vk!L>=T+D^^{;V@>h-R26 znH*{{Id>kRQb2cSisM&zOA|QdXfMH$z}g?k@=%JJ0j`p%uq4!E?$(zR+mLq}*+>L- zy|XCk6}Y~}ZU|Gv$fGt(_O9kq%YQqU4tj_36C7=r6mOeK(R3mC5TNBrJn8egolnOr z2yj2_=ftQr!F~`+M80aXy|6dh1uFMuT?=vlo&VYMpY1hheZfc3sjzr#xZ_B%u!fr4 zHt@3XhS^XdHB?W9TeP#X;s;;$m|Cuz&cO_6+D%P7NeB>ag@63%m1_)(f9d_TbP14y zMuO`%LmrNv9)^>VB8DTu+`}>Z6}sII_<|>}^}X!3$Nz|g0db@^=>=kH8i%ly^@XjS zO?9W`A6!e5?^Ew-QXkZ0wJmpD&Sn}E5_-Vxe~~2KX?gEC!V=4`wtw|jPd*A z&K7Hrh9v|pW8a-EA(#46N-0Pxj8WmyX-MW)JpbJgd5ci_1olyzgT%ggTa6iJwd*c- z4Y3szkdzep=xeq^*|=XBTWu7A@)j!U^8PCsn5O^T`iGL@(^Wac@0DQ2u^H6Pj;1GJ z(kmVKXaCXlMnsdg-?53U{hMLVUtJ)xAwH&#rBL#}L7!oZ(_WJlsSDi?zw`W|rOLr0 z(S~DF0>LcEQ2NovS!IZet;!HOblS||HPx{r5l6N>1Gu0Oo%?DnJ{0iOi2~`IAS`J^f8GU`|qVK za&HED8eos0UmeAd6}X3nOhE*qc`ehMf4}*-WZRf~twjvt;{$MtUtP#w$C!+!kh4E^ z0x(LGjvBgF6^jQ`ESGPIQ145k-#CIZQ8qdeYq*S|(t8(aP*VoDdQ9%+-6)1;bw}wKRRhD}2Ot>lgT(-SY07lLod{+S1j}``zXP;(gmn+-Q4&^_@NqtyH8$08kSbNhpr0iS zM76^|TI5WyNazr^<%ZsGWtjG?X%F3qrh>YT$->>jryb=ZO`Ys27?7KA=`??#@gV|z zlol?1(%yToa?Dr~Ij3H=E?cx&ihPZD0CJPxC7W6ku`iNut<8QRT zExIGRzO_jo*YtcD5ST&-FMs<3C({74rh0Y#sjeB!3eDKi5RF8ZjIV0esw!kZvBV7;c~n(OQ=f9&%cwFsb^| zbjlu_7l9>)-qP#k%mP5+2Z3TX!W{4IjpT&AMB=}*Z#ITME}MycHfG7xy^zU6_z!_N zP3%)kznD>$=mx#@9$M}eD+y<-2gdXNU_gAiTFbZhI;wxeP?0N0Czr#w#8TgPd=5+1 z+;h^2WM~mj9L-(xRYBGJQz=NTsl3!lE{7LDQGq}d7u9Xu@M5M5VLUts5(ol)k_T5@ z;laNmu)LyCw=OvPk{|QZ@UsDs8L05XGcojuv;vve>hJ;D2DQ@3isNSK@XhtF!F@Vx zV!GCBihyqEZn}uMmF@RI1SEuHkVJf~tg(pkMeE$16i-dz`Wr3fkdpL|Nk`73(8}al zdA81xq6)oSm_u}?f4szJ5CH$REldWlBvC$S3N7B7a%xMz#SShRR>N|77Hn*AOL5H*3NG7U?$jAss_~=hgMBb+uYo|0I<#4+`EF2PW**L5c(?R=<&YC;;?i(l2c2g z6+o(diG{|78wx9-rZUltmMLLpls?8FgEi)LJ;iT4Z92*iHAWJP8G)FZv@Ztor7-s& zL#3^L;{zpl=<@EojOtE0RPcc@5I7`lX=!;*<-oo`m~#^SQmV1EFgshJ2wr&jgR(|} ziuMZwb)ed!Fxe!*yQGRK?e@5s-gLFU#3A`~T~jYERCEo&NID(WWCNp%Rit1vo#%DY zf3DYO21O$+uZ4tD+ zg`$Qy$EPGL@KT-i7E|*NE0deUoe?CYs0gh^U`_GUgj+^36z3~x;%~`Osh-Yo^ga);{&RYoA@FJn> zZYa&1I*g9NUA2Ei4g~6VauJIdECW?uNyE%nT+!^bV5wm0!8nRjV(P=VOqp!3JUBzL zcdILa7~dTTf#@$)8uy)>3tXj`2xA~1NiCc@xSziEz~3fyk4Oo87b-@8mAMoC`~h?i z%}X^spCS&`sl2vuui$gp+#A8jV{7{KFZdLNNGJC=mCEFrAQsZUf=?#kpY~+jFB4WN z3?-?!!N#ue0o81ycvF=N)kEOiulH}yw_^iEOp*|gIlg&btex0+^L@g1S%!Ld| z+5bWK09jEU1j^jXZ@8A#09dis&+2U+dk?HK9tlEngJpi%2lESh)`^+JEu|%0OE{V= z+)r8+S$bckW%I;Cf_r@chzNG;7iQ+)Gj_?}Wv@$;gNCGfhjY)s?V>q=Ym4#a;~+f1 z3_QMuvrzYnFs63|Y~}Jj^)@Smt!Li#!DVf);WJTDNZ2g+nh7b!@%|L2n$&b+jmk6> z;e9Y6A+E1Sb8Q0WwdLM&<8YS0m1su6xv1!ZFPdx!BgcT4-#KmAqRPwu!10e1lK>kR8+V4}EfE1<(-Gc#plPsa z$a5H8mX|&m@F{%|HFfrP_y|zMIMc(Msp;VsfVj`UZ^g5jBT)Av;e|g^PImKG{n(q@ zY6Tvm((8s>)SCuF(89VSJb~KbThm;NjVf6UKwM4yEtLNRSW+si~=q&G(xTYkXW> z4NX8W@SKjNd%Wdrs5!*3mF1viWTYtuELG3h{NNA@Re}7|9sVAJPY~p1m7L7CCHc71 ziBqKkBtqN1drYO39a?;c&m@AaK>f0`r)y0*2@x)=mMXyUrLMX-XG=4K8JZr;155Ts zG%I<6eS%-lQz&5?i&_u_lCW3yl>468rjtY)JYChZYsX zS9L^7t?^Z#C}LRK*O_vkna@$;2xmnfBA{vwZi^^IM^34F8Is-m20v6P6SOaWOIvS* z0O1GGIWAj5sajxLXc{(JFV(g03BL7wJDMwRls8N6xh~*Z(TMX@Cvv7D_?hxrN8fBP zvDq_{q~|`6i-Mj1`1lB4iVkhl55##`27df(^d6l3FR&5%Ass9EJ5ENy>?w=!l$y+M zV6utd@q1@{)@dk+ruoeuhA?c|PQ=NP87G@DSj#=r)FG2*j~?u7)T~M(8HcaXqaYU< z$$y3IdvWLKdb(V;S5_@spRC5&cpxPpuW&9rm+7e5yl?mPSj^9q4NO6Q^w2?>X={fAwTPHq7**f=CKK$sECkz&VcFr)jVd|6KrHrl6%zT2RAf^sERrB zxcsk%QLWjz8mqJlAg)fJC$%0|{W~ga{tAT2U74(`wwP4P{z)z1WbRc<6gx9Ec%Rc3 z|M)j4GFs)*W8*~<#tqK!2eWssD2=C-I3wQuhc>|w%lfi!@oq36zwioe zokjjx)|Rta3BoWP-VCPkkeJU>AwxlIK<#Du>M5fHsyJCY96>lL z*82K=mp#4cT#V|oM)qlmnOUAGk>K#6N}vM?iG2@~!49NwZfYslS-uwFp?lUn^H^IL z86gqVV2wgF-iLIKDJit`DCdfXyYi|q-Wj~1@_jiX*mA=0clYNmMD_8*$(`*MX4sfB zS7CDR9a}>;#R3_8Muw)o#X21??Jgu5(za==@F+Ac|#p{8i3=7G$B)X*zYRqKb-DU$&Te%jMGAt1`f=H3s5!k2DF( z*c6N4VLpV~naYNpb~4VGweH9?-JZyv5u{~-EL6o-5Ga2m?C3k(5Ps!?H}c!5YpK~7`#1rW0O@+X2ccHJzK z41b6@&{TuM&Sr<;Ik^s^cv(~oTwkV9=d^pLK**IMoB4(NRXOHEwslLc+K}9WbyjTP zxj{xB)7|{&QN?#_dLXQt#$MJ8_Dt~lC3?v*PzeYV*8tSR#r=y1PQW^Aj!mp*(904K-;ME7H8w z?q~w{DW(U!9Yl~KR@)5|n}UG*@6sIO*M$Ib4(a4(W8MW%9)M7ci3b!EY{e$C!l~|Y zzBhQnclJs88#{yGE3GCqgn3$^(#|TnAP%tU01+MJSH;Y8R@%+!sN?v?34lI=k-hiH zlD@EW=;dlKXhxRQ5J@Q|sTy4J(PgG2-=BaTN2Qnu1(<)mT1^Mgn0K4%H&&?45!4$I z_=|}Vl|%XKX2&JtkR6!+U5N{;f(B8CWnJUF4>7AfNJz0!;gCif4*fK&F*>NpI#!NX zQ2H;2>UjHmr#42=lw|atu;=_UjP&2Ic(nubB&vI^O8&ZNvbI3X0%=p3AW*Pu1y<{qb#%rzFpT@WbMZ9QBvEk`0m9Zl`jOq0i- zKutzMYEAFUiy;1|65qq30zH6^F%*O5*v=o;Rs_KFQO2CG>#^4~z2!454d%18NRgJd z7CsyTDhnmIx~NT5{q(Zyd$6ax`Sh@Kup|09HE2PP?7C%M;q;buLC!2$(O87sZnHb= z)%)po0C#joh7Y=letYxyOES_@2LBgD#@3Y>>;(#<^3#x+rrbC;tSt#C%Cy zO;bf2DpNhNa-F~|_1{k#Hx9h9A2=i4RO0gKGpox!AID%m9)8@%a7`}p*N~Lj3ej^v ziRE0e+X20lOmN7v@H7?#YLj+Z;PUHP+-v160<@70859Obpysa=nVc)SI(_n`92{m% z?F#baOGisGE%~MtryaHD+UD7MF)72@8isUfUKuzN0VKhgmDTj6TLIxFKUy8PRn1;or-_7CruX5t-WN-=(#X*6VsqDkdK!0s|GR-Q zJsvFE@Q*XuIK$-M^aa)b@Danwe*O%|{Ux0jI3PvY=y^93285^g+yHb>C=MC! zRz%eAc!`MT4%|@VTm0w%KrKk_A+cX5<|(W7(n{Fw-U*A1y&)()QD-Tc&g4x^>j#YW zq-fmSUS9We2w(=T#f%Id8(jmeFd1}vB%*3EFNRH5L(R&<0?-|F2wN_<{;Yh!FQ74`4L#a-y(BPh3$^-n=(FP*eQ;+d}N z3Z~^J4tkY9Q@WSPg^f&Brez$xYky=fgY%+-Of)GmS!(y(g?^sxoeH#q%pz7p%}K2! z?AKA=GejNF6J9M|p06iYdt>T8p_e3L%$MOTakGYeefH!T7UpjldW%24C9#=a;uEE= zd{$hA8_Yr}*yfB* zwPvC^1#WJd62w5xc?x;F=o8$h9CGyoLT-m#PXO*aM{VX`rbFB>6QfA@RhnF)&h~95 zM)0n&Ep6bW&a4F>*c3HHqJFfW;IJXG370{*5to*t?JkJ{|atnJ*V-2K3 zo)*r0i8LqJ+e~i`PhC2z5l9X5g_S%G?(xmVzwnG+PpckIukVi^=)W8vOq_Y`(SAe3_oAu42PMbmicLSxO{4vRm{?u2p^f72Mm~etD{>J}1Yi zD_G@xWZLC<`|Q4LZR?4bfujD^Kn!Ty(gNaH*;zsgW{b}!GoVHQwYwM_ru33aJFIL1 zz%?W`#OhEb?UD2+w zUg8&yyL&OlWyzt4r*OZh$3s+qR0c${hQO7TO=ukyC8OaKws<^kEmB)^P4IwRPaxD3 zcE7^wL(iGlet!L@Jr|r~+&RrpRX_eIKSdGNDIFp}{HMI2v1O3Tbukq5!#r2DVxK!(Sq?x{PE~NNX z^$!)CX1^OWKb~GBesya4DPO!ayfLNGGFTbF?v+8;Fq$GP8F$P z;YEIIuzXk;=zm#n~2TfPiTqckbZw z5CA_+a%7rs1h6?@0mV#)$OF1exK>YB-@R0h2sJx=&Mf2$M@p&K=wj87>$Y0uw3;i@ z87dyN1er5=YAET1ZMO1bUS_)vC_IIco-i$YLlg76`l%gA-7U~GO=cumpT~Cf`5F() zX6gkR^D%seqQOA8k8fuyRGvA_EYOCkoz-j0 zG%3Bl%%kU}yam_F%Ad%PJNL9vT|9thlo^E0-}T;-tzr%eY2 z)NaZ*;es~ANZBqS>G=A4-YEjb5JIPbC$Q2!$sVAYWm^idJpSQfUMyBZG4u2QbQ|=m zldPALjqQQ${2heFInIy=N){&i^2%?#j%3V^Wa3kCD!FQMv5;=9_5*RZQStEuQGyQx z3b@s=$tC^lAGeGE{ycLOV5Ta(Tx@ctn_)SDyoaqj*Cp<*Jekw;WI!Bh2estd1%xS& zYOi@IIfl z5nzr&#&a6Z-u?Z8jbz9F1`T9DSLW&&+$AT6FGCCnr$)MP3|bh`g?FE?UEwT=O6|en z6<%fDBXMQUv62=1zR+$qlpJbX*_j*enQ0ue&=9g$;h1!@?<1kGu;dJXG}_5skfBW3 zw#ugjYmlFHGHTKnRRM4E$Q-ezZTPkj0 zHs%W3*TpdY+^xj(!zr!E!=OpA~)S1dP1?D0!~Y9}!sFIV`!#iBs~ z+N+hhfBP}evS1yPQIj#J`piTsprHgJArkc$Hci zOqxl}hfGm0lfK(*=BqIRLUb}}vgWR+?}L+UNF}@vF@&N-!z#n*72gS(#L<=`dDuDq zkimUG+j)~eBhTA=mx*2qncdQ@E`R9Aza^1&$+lcpJptctqgEP1_^7*GQe9U9$H886VKQn~w6-#G@Pjzy za;tgga)?Rq4d57apiJfnBw!{V%AsdC_j@`=H^Lu!gAO67dh+DONQHFNJ{+f;lTx)` zl{1EC&ed7p1(r3w-dJ_X`IkLwZnV>ei3WsbOQxmRLO1^ZAy_MeOFa&T5fhvcZ1urQIhZk<@CQU zs5?ccNvM{9Qw9W7OPJEvSOIe3+tDcihZYer5SMyY3)joIqwohofm8#rNfp4b=S(RD zT~(r#5ITK+_@50g-&;boJnW|NibNfw#hpwso}%>GqFs%D^ZIIXyJ{bp!O8UR-uvun z$lbB{emj{O#aF2m@>_MEH)kUZNO5bPnlU2%Zcyuwi6+*3dccQPvAED~d!2BupR#^L z%+#z7J084^uaC&V+FIZexRCoAst>Z8_OMMT&HaH(OKEDW9!I5rhDS4xXA4kCv?x1B zW8p4fL3W79^htb}U=(Zt33o{ce6UR0`X7}3GiiXP;i%4Db6yI`g}`BOd0;3yV(Zp5 zQ_RZy)Sq4vX|WyleIr`>3dw600z|*j)F9gfWr_52XL65vWfOuBT3R76ZF0jxaw>X!f>nU24gM$tSTAQr<~Pk7K#>rJUGM*=bd z#g~sj|BiNcvu@LrvL7Sk)6f8-Y#EZ zGYEVhcJ|5)a4I#sAJ@y`(r__hndPu`>^de_mu%=XR_M)0d~u440Re=z%rzpW51lPr z6p}_k_N&GtAVPDeP%*+lLo=(@3G}1WYuCS;IyyQ|{c{pzIEU7&)W3Xwe)B#mW$1ya zHH(p$;a$H&16mchgvor&CQJQ9)zb)<7bKmR5q`TBsxp zzi}w?9#Oe0RvSs{W6q_SB49)tMs-cPUMAd8@H4~(*D&nAx7Mnj9a@GLI9%9b$*vAS z79|I@bLiCTylx=3aghxf1t?@`k)kBDieibeRs))?1%xG1@9@QYbV$zH`VU1QdWx4} z*r|Q}@8Vn7Y@x4zP?p9~w7d@TlFUkzES0#G!ra&ssen2pzC7T}=b#0@dQQo4QgC%f znU6*Wc|1!zri2Fk!g=e&ZZ$9*rYNLX#NB05GBM3zwkiyacdC~f!yQ|75a@a>#w~`d8W?_Y1Xd4tNTFo_6F3-W0hlMTW0HARccPb~hIa%?Jf#fP>v*ny?L> z5;GDiQf;2q0ud@(E`_Z4Yf`0j6CHgZ7EPE0r5IfWVxy_P#n6yi^y_Et6!e5fqy~xC zd$nMyKbS{fnEJgA$-aC5o{kD6g;^}$+k?HBPJ;u^`C&mY#f6&}C6?zgd1asnW-PVn zcV`wlW}D`d(e=&ISZxIYF+_dHd^IYYJ#sU5cc?i(I5RzRw zjA|PO_Pd_=OMMuwqIgqBbPorf`g6<%IaZoh0Q8nBG5rMJ)N>if84^ZKm{h`9c~z z5V*zg2PZ4N45vR1bLqNro7*wtO{5Ir&P2;{mMvRL87AGeV^wb0D}*3Gd_AUD1_|5G zx|xIoo7B=e?X}+3qqvC_s?X=gYJ@IjXrq4uJhoZ}Pr5R-0iKZbjL*ZjQm5}_s z|9I-)d=@3Sa;lrj2Pbv;HJv5oZKUwI_Z^Q_$dj>-K#-#ejh`+j&IRZNERGLOV0TU`-blsC)c74*TUT@GR5xUsCo z#W)bbkpU8mRzE)e3CUk_yXCCquYWSk7&d4fN43Y@==0&xQ9R5id>o9p&e-9g_SbzV z%Ou6G%6t`$d*$ZpI}`h8Oe`}0LO^Rq8j>}2b>abrt^QiQes8Fs(JXBA6i24+NgO^D z3YSoGqnFXvP}+2xt*v<9t>j2^9xI7yP!={|K<)%c>&E8a(sQK!^NE$UfoB6+1BAS{ zTO`dNU=ZY#>0pMv5g2sYR7~P(8mA-1jbi-+RuomD?-<6|ZWK6;yK)-GJpC+<&AqmW z8~J0Usa95(km3u3Ff1VciI{yQ>m-prZMKc!a`HOt?^eC6`JFuOhQrX}e;d-*gZ^}j zlzxAe_4Z>t#57tCQkA3nt1xQP55-S)c|jCrp6W;dAaaCr)y>#t*)+xyP=(05$w0qJ z)8ibgg4?I<3RkGg0kbD885^+fu$M7eK83Z)BTy7B*N8x$DmwTG;7*sOtXi-5nDDYF z2)|4^+bCB+FwHmElVQWxenDBJ_(W$i(_V!XRjg(`AW*41BrN{E9`*lbZ}Al);m*Qs zz5NfiGU?}fUn$AZ5eI54W9~#W1^zbMwT|Uh02SG3pcg6xtB{l;=qmsW(Xm<#G8Qs8 z94|qa!>Ius7Bi9dH)tim1WmxkRn$tW7Vxug(Fl{jSgaicny4?PXge0LhQSt_kyy+r zEJQIzk%t$F_&%Jv#!MK0?8a~q7J)9#dt+YiSs1Ti7Ilj|z+}oH7Rx|tKrZL227?(( zM&Ll_NZj@Z!XiXuj-%e5{bjAM=E`U(1EE5~4{7x1M0D5l!payDE@!JRq~3zRUX9Iy z8_NAON`IA=Nk(`u2$yw3KMOy)Q~P2u>L{*9f1maI*sA~m(g~rO{S)P$5^m+0;s(g@ zz?*+@V!+J{d*fr$u;%9jI>?-r@y`#9B(Mb`lvy6Gvz8W_|1>wvO29jQir0R24SBJC ze*?54irTjy>;g>=zap1M6mQjBFBjmqRwaJoH;Reh*a@35~ zaG&A5^>#yELVWK-DuEC~47Jo&fN3#BpqXZZHXdSC0Za_xYT}YsHA%KAR;9kS{(3hAeHVk|6}h7L~kVHo0)qY}UU7=wy_A#?zGAR=LY5#iI5))9AJ{Rr}7 zoBz{_sKpeaW~$T^F?!m3ke`SZ!Q%Vnm|DOedNuw$oPgWg3lE>5rz@L z=y1LZS@5D0DAT8~pN_?S4Kf`q&!Yg2C@%(1oD>z}FIta7*uo|Vw6>mYQLbK#iAHv) zKb`fw?I{sM$d9UWJzfaBo=i2l(Ej=@6MrC~iFK34=kvMTo&rj3Nt-;KRo&8jshyLN zGgbJ>pluTTF~fA-#8`q3p|_kgXwW*|^50*obhrCJpl0H_wZ-#puvm?Oo1LG5uUuo9 z)k;^!kuBZdeZMqb(?VIcH>>dwP{k2HeOhF0ZVpk+gg!?grLEc;Jp%3M&2}k3vbkxj;bAT`j|Dx#b%7qCYsfuFj zHmtqIDbq1ruW{{o%e$j?CZ`8{GHdH*K_+$q5((RoLrHDVJNF$wC0=t?(?b^0#p4`& zm%kW$aLTK&wnzo3(~eM+zEH)S&EEm#R?RPS1o9JypKR+oF5$d_gCe6iJiH(toq@i; z9p-H=#)rrUrx#=1r(0VE@<@UV0RBufk9>!+@V5X*0Ck+dx}HbnSr%a4r?~=JnQUpO z0ycO=(1a$zI`_BFs-suw;F2?v_l20&W>ws&RIzRrt`UVaXG#;5R^5+|jg5^9{Q*{P zR^C0$gnb1K-aYUyDhvlWtoKNdpV&PfI89)7?B(N47=CX>Z}uk>hst2JAu z>%sat%Z)EFPJTE{pryPW%@Z7K66S5u2qnW6%zOXU_w9^nscNT2o;aeD6)3FG&D-AM zx7!9bD8~8y4MZ-Wiozon2li@_t|*o0^z+auX6)phHuk!BFlBC3GEAt%C|Jyl&?f#O zo34syRlTOAY%}{uuh8Y0eFyVy>c8&5=y|^ez3@T`^HIZob{8WkohrRn|LZd+5|_|cxlrC^77h26 zwQ;WzaD%9quT|{?iaPostbE--pbs0s4n{@?REBamXu&aB4Ts=wZ|Q{ryD}wojKyzTOjJ z*clVBHtQ+LsqHH8R8$wLxY+x4*ZT(pjSA;lnhfJq9Q^!jIVTH%Vz%5j;7ssctZyDg zob$QP+BXdcPloT}?d57smd)WjUC8f*URpspYP3Z7q)3C#R5L*yU%=}+2CxfwXi{mU zh)bN1XH1%tmtj|T`TvxajilXlaKA;b1(e=Lg2zD79i^zqNIBC%>sSQR1P+kj(Y@gW zGrxaPrC{m`QQH3+8fg5}IQE=t765QUhJ6o#kWHAVn%UnHoNm8`Tn>+f?zw~Y>{&_3 zku$kmER#s-Vb}xkzH8`UgWGix-~41KCGw@rjtR$T#3b8z@dyTFq!-uCSy`Qt+lofx@vBLMzi&%{rg^vNPIZlWt1NWC zf&TBOg5!W+8IB}UIp}O`3eR)icl_@ivtKL36@RX*mm$bRPF>Rg$d9xk zA0Vl1s7mvZ1Briba!l8dq{qcohAWLvO^{~HIO(Ku|E$#Y*L>Gr!xZ>@hX6(|f|mx? zGLx=TI-|-2VIs#YB4=t@m?H!c^OJ0*=V{GlGaX09L*PK)H-AZA`l~5_A)(=V9b8(XzI7>q9TeCXYxJHj$p)X0vbdij7UNa27I)pQ=`{dSzfO4H|$5tGfpqqjGLQI&;k!W`|YZIpp_ix zj?7-R$S>FmkPLj8Lcb6h6KK9VN8(&&{)4(KYph62?QN| zm?2?wNfHUw1X&_-QeER@XeiR^l%Wk0#-Jv)Pe<094mC?~T89hXP4yA-E-s8u5`?jr zC`0a|ed!M#c1~)BnMn+mA}ex*G@AS- zE{&|T24e~ujEd5gAZ336tyk))+qk9@>xbP?^7?ZWBbNg0G_sI}W2+2rXu8{^s zHk}Ua9d+1!MCN%Hyi+Tal=*yHf9CFUcbY_qhtGE-qlu+Yez*Yl39)jR+r@n3K}fov z)ctgO{k$ti@bx-pD2ZuJg_yoH(wm-yUMAo4COOegzTm@kN=uvPZMvkaoRkU**oW%M zOPP%=jGyl-JITT7TixIE8-DJZm>+}bk$oF~zJB_i?WM$DVS$C*v z`D-2>Px~c#;rEX025xui3E#NUzwu)BtZ(1buZziZGpx;43zFty_cf#`Qh;I^mjFKl z(X;;BQC$mWWFGnA1$*h|L|BRVm2*s$a-=_0x?8|9VCdsUJG5B)Fs-blTzSeBuk;$+ zbYq@S;J`qNKhU21iOn$FN9b=;k8uzj&r8lEHA*80@ZMr4{jG4{dS;JCukHh6j~vcw z*VTu{-8?#MCM3t@s^DNngsxv^VlZE*(JEpKO~}3DHSJlcm~Sx69zzFzHj^@{WG95f z%#Xik49lE6V`2dK!t5GQSANe-v0_E+&}tQ!o2onDcTV#2p(ZH^z8D>G@403Xed7GG zeJiZvA=j$n`Io^oMfTNV4Z&02_p}k0&Oyw1xgpQK_!;lRCYm2^HyzcXS#P{)mzI6J zFx@;3N$TF=K>mt^QRP!EgZ62T?wIk!_v^fOJieT?tCKb}&W{bQvM3}-T=z^{6Y|M+ z=mzGoDpXXg$D<_D2B9;JhXU-JG*g~ws2Yxy-?`tS(w^V3koqXU_o1}-)r z{s*)=7=CZ+l~RI7f=8=S%jVR=qTaZ$&Y}z<2q&}tLGZrAwqVw_)tv{Q5>>4Cdjf%^ z9Fr8eXy;WrpMU`R+l_)xwpJC}oQP5wn{$FTNN7i+Hgeunsgg@uw>s@#x2%J-ELo%) z#c~ohz!BpZeg{9U1L1!Zr9iWWygZ8ED9YXBOw5Q9%8_5g^LSL$a?ONx^F)o5(Zpg2 zrN|pi9PGZ6UMz(WWiHfNr-7S)!PDp%QoRt=K>Tg$r)J66YH}l?KWh2oIOULn4M1*w ze3Oy*ZXJr=*vNvbb88z4;zXSS4VuG*LBH=k#7KF^Qig>9+&y7nUcQnHj6dm7`1HA%ejA>wubyKXIlL)=)tE!k$FXn z{Dk$-g4?aTdOGe&zUzVv6S2#uXNbgag^ak$jF=@f+Yh+d!YrH`*#+{w%5o~ApwMjQ zB|V*L*`)7J4QDJCRTzR}!(#ZUHY%+hAq^WaWQ7#AMWHPOC}!e)U8{#3FP-r+mJ_>w zfP9%+*^^co)He{TkXJ6SFpGFUUH4@3eTCoP*_p6Pw)m!sFuf2kp>Il%B-eJK6~edl z&4gH~++4`Ca+q%NTl`{idwqM> zk}1l!){f!2amNSUd0HfLOcgj0>NpYLFgAzUYDE@G!9qx1*xL3ve|qRq7Fko?1MmdxSb?TzcG!1ZObWh z?>blM_w(KZdBd`$TqfbvZPktHhWP!oJU@-MHkU&9CC%oD(2m9up%0<=5;i}T;<;)z zl%&!a&XS}XiG6+~xv4(tb`>mqHWxivy6YNQTTLyy><&`ii;Ig%3{jHwnoq@rbnY;a z7VtAuCDj*jgzt7=(oarPS)T;z8{@@H%iibm3OICJW~LwTn($0Hy8NN7(Xo4%Jnda} zfMI`xhx)(GiB+Avw<{?MkAhtK$FlUTC2y4oPrF2=+}P{&`FrOneqz!8Nt1Y1hP7Eh zX&MvL=?sDnnwJA!59X&ZO}O<^b9ORHJ7vjg#%yAR^7gybaE7cdRb%yGAZJ|Z9Uq@s zXz3D+BUTovJZI^y_{?Cf_D$1mN5l@6&exX;yw3oK`;ci_07DgwwDmUICW6ZSdSJNw z(+=-M?(=&$4((m3(-dTBxAL1cZphjj303X`nf!c#Zwt$6DAt_yi6@$ZXw3EYY^1di z`+9_@IX3gm|88?ww)8_FBfcw@J|!5SnDhovNTd zb^23);6t@T25Ke2;&#N~S3QU(ZIZjEI5$0jMnMMARNf4(n(NDW7zrw2?)nY_1n_q7 zm(tn*O3|?E3?!583GOlI17V)zK>|GNk-q-m0U-C&`e}9KT8`7BDB!uz;OxNn8fN(Q z8tm(MzMwX4uSHEp@$u%xS?9mh84#O`+wdM>m&yH4-mH~pTAwOh?TJhhNC4?8T|1dk z%bq+};4ZatE~@blQT1)p(u%QUcc2_9T_jj0I1gj8AFg{n+(w3%${tvG{B-bZ|EcyH zZlbN)%S0I!dqi(IurwqU{^zJL-@C2cH&>rJ8OHq1er3Yi2!$nwjz~YmWpJ)mnU&bY z-fbH`dlB9~kEd(=B;9$AZ@9Hu)VWt(-rP^@AV^=r@-7`aXQ*}Mc*{9r<}mAn{S6!X zUfSe0ledk=0q&5A%!p5x2FUuNbdg;#<*Q>z<`Y-wz5D66k`0gMmBC{W`Ik1KBja&(>skLMM~> zr|(jZtI20-rbb^V#bA%88vDH-KFqOcf20lLqHLruq`beP!WQ%_ae!y&?{0FEP;FpIARJ;5p#_JqB$ndR?@o=l7gOQP; zC_y6*a%xz=e^nU9fKonI5EG1J3?zX9b<__nj$KMqXG8GqBO&8#KUZIC)a-o1ufCq@ zy!bsB%{PS3jw@h#fmiuc?;HBc07uNO5q5MWRu<=C7%;#U3sP@(1@`Bo;+f*Z?tPCZ zkja)I4pPZczFJ>bvhj;V;3NY7uPMNZ}nwr;TM@~Z}A)bxBFu)u!B zO6~ld1*pM@a4+zje%W06_Hu?vSk}|tUsWkY(0Y zMKKM2%nGQX-3@!IWbb`ilGABK5|P>}zKW6a{}wRot0h#iCzo_iMr})1Ma&!!)n|}f zmlb3yu#kEgnx~i;JF|QE$|uFar^)h@yU1x=(J3bDvi?)Y<|c(2S{>qVYN#n0H-$0- zOMwb?Kjja6<$qYpkno%vp#k$<(@mZxuBmLcV$PKo`bdry#B6Cj140}r}ty* z6r$owZ`A3Ih}$XdEcrzIcX*n+P-i8K!pTL~o6xUaF^20EyR4ds`H-5c`*PTkPjmC6 zQDZ-UenkSRetCo236ub;LA3o04G-a1_!>P8mb5sv;zvb3ew%()Vua$D_rt(V4C~M( z-cy9f{tC?^cd`{?PyDk2DarF{r(R~ATmv}5+1i%hMbD+aTIYW2z5A{#DXq-dbCt}U zVtXJ$8d{6Fl*S!8AN7P><8K`u29!gK{i?SUcCAL%lPybw+;QWp0J#MaLy~QpXCu9d zbr?B9^4?&{!N7ilZ`s@f+>wWp}#N0?#x@DOiVugdBdw7vWqS1ccbekqC~qzKGM0Yar?i&xJ-A)1BX5=2$kjus<1fTKn4yK{v|gNUhbW5y+FKv|%#W zbCsn~oi}DHz~7qU({|vbo(k*rCP@#UyCYLmQzaC7H~3d>A1x%>YK+w!m?j!g56TzJ zsjQs%HbgW?#{TZBHof)!RUti@Aw0G4#?#OcFE1|w+er?{l&oSqIyxBTI-+Qx>Ha9tI*>P$g zLBsTl{8xXA^D6cxjD^Yy2xA)a1v+B)URs=e;}^YP{t7Q=qP*6-|5AL=T#d&h38t!8 zn8P)Dc-k$OK(~{maelPe^LOh%?t1f3jt+CvRR|g@-UvyxZDB*tL=|CNv?vfQDO;@RxhXGOUZt#LRW4l2jh3%>(RrcF$jIUc zXLb~&isqwyc6FJusGuMNB_#CSn3jf{{o~nRpIcv?4l{i}u}d6r36R&CBlv;*#*(Dh z<-uuKglR5`dZod=X{J>`C-V3-A5Gm;V(JONSqaQn{8U(+qDu}k_W87PmxeV;M zTwuxAH;a_YB1T`CiwczGvbcD75&?H;%K|eyQ3;7;ro06Kz+Mg1S(E-)EX1V%a>)oD+lzCMIDW;9{{8 zefOn~gaXv+GXP2Jxa7oD=|CJli=sxIGBHG-y`*es6>A+vsFCjlPZo*`sUOr(?X&D3 z;#EJcGwp>Y#UEuP;rH`(h4NOhjJ@r>nzpxxcUb5_5bYL7_CVh?F$pY2PKZWn|Evyk zobe3>A`jW4Q^#x=I*2UHG*f+GJy+Su9JbXGNn? z;<4_C7HB#UEkn3^yH9iaIrn4;p^USn&R%uLZLbG5(Sadp|GJR)L$_ zXbt#dLynY?^kvXDKIzv$hu!4jyqBNd?wiCI@J7oa2GNKUOxkj%!^YJ_IHdWliviM9 zU$m03GJ!F{XdzPzg0Mfb>wsJ%8BXB!hWG)0n#m1i5Opo82Kyv_08#QmB~GG~tL1+*+h?u_I886Rk5|K;WNundL#e z_M_%goI0VSVJ&B%qURhJ+a@7gq;V&OAVjpv7j`}&BB+CmMFZ-hF`b+Oj+s!`WO2_W zsD);odtcKOaPP>Ge;`OobJqDXVFD+jsCb}x1$4r*C@@^41bUnZ3V-XcE|h2hX7_*0 z4swsOn&=z=q)-EE9qCcVu`ZQp2x-p#@1nvd^duh)oW=h?fAgXj8ZS0<)>lcmR0;hW M>LPS%fa3Q50N9d#NB{r; literal 0 HcmV?d00001