From 1cd96abed677c2e0ae1c5f8bfb5e86a1705a7b0c Mon Sep 17 00:00:00 2001
From: dash <1549469775@qq.com>
Date: Thu, 9 Oct 2025 14:27:57 +0800
Subject: [PATCH] feat: Add middleware for response time logging and static
file serving
- Implemented ResponseTime middleware to log response times for non-static and API requests.
- Created Send middleware for serving static files with support for Brotli and Gzip compression.
- Added resolve-path utility to prevent path traversal attacks in Send middleware.
- Introduced Session middleware for managing user sessions with configurable options.
- Installed middleware in the application with proper routing and error handling.
- Developed JobController and JobService for managing scheduled jobs with CRUD operations.
- Created UploadController for handling file uploads with support for multiple file types.
- Added environment variable validation utility to ensure required and optional variables are set.
- Implemented a response utility for consistent API responses.
- Developed custom error classes for better error handling in the application.
- Updated TypeScript configuration for improved module resolution.
- Added script to fix type declaration issues in vue-router.
---
README.md | 7 +-
bun.lockb | Bin 93241 -> 167363 bytes
internal/helper/src/env.ts | 2 +
internal/x/composables/useShareContext.ts | 10 +
package.json | 7 +-
packages/client/auto-imports.d.ts | 16 ++
packages/client/components.d.ts | 5 +
packages/client/index.html | 21 +-
packages/client/package.json | 15 +-
packages/client/src/App.vue | 23 +-
packages/client/src/assets/styles/css/reset.css | 48 ++++
.../client/src/components/QuillEditor/_Editor.vue | 73 +++++
.../client/src/components/QuillEditor/index.vue | 10 +
.../src/components/QuillEditor/useQuill/index.ts | 135 +++++++++
.../components/QuillEditor/useQuill/quill-shim.ts | 75 +++++
.../components/QuillEditor/useQuill/quill-video.ts | 75 +++++
packages/client/src/components/ThemeDemo.vue | 111 +++++++
packages/client/src/entry-client.ts | 31 +-
packages/client/src/entry-server.ts | 47 ++-
packages/client/src/layouts/base.vue | 28 ++
packages/client/src/main.ts | 6 +-
packages/client/src/pages/_M.vue | 54 ++++
packages/client/src/pages/about/index.vue | 11 -
packages/client/src/pages/home/index.vue | 19 --
packages/client/src/pages/index.vue | 32 +++
packages/client/src/pages/not-found/index.vue | 5 -
packages/client/src/pages/test/index.vue | 34 +++
packages/client/src/pages/test/index2.vue | 28 ++
packages/client/src/pages/test/readme.md | 1 +
packages/client/src/router/index.ts | 30 +-
packages/client/src/typed-router.d.ts | 66 +++++
packages/client/src/vite-env.d.ts | 2 +
packages/client/src/vue.d.ts | 18 +-
packages/client/tsconfig.json | 34 ++-
packages/client/vite.config.ts | 42 ++-
packages/core/src/SsrMiddleWare.ts | 16 +-
packages/server/package.json | 17 +-
packages/server/src/api/main.ts | 2 +-
packages/server/src/app.ts | 14 +-
packages/server/src/base/BaseController.ts | 318 +++++++++++++++++++++
packages/server/src/booststap.ts | 40 ++-
packages/server/src/env.d.ts | 11 +
packages/server/src/jobs/index.ts | 62 ++++
packages/server/src/jobs/jobs/exampleJob.ts | 12 +
packages/server/src/jobs/scheduler.ts | 63 ++++
packages/server/src/logger.ts | 61 ++++
packages/server/src/middleware/Auth/index.ts | 38 +++
packages/server/src/middleware/Controller/index.ts | 100 +++++++
.../server/src/middleware/ResponseTime/index.ts | 59 ++++
packages/server/src/middleware/Send/index.ts | 186 ++++++++++++
.../server/src/middleware/Send/resolve-path.ts | 74 +++++
packages/server/src/middleware/Session/index.ts | 16 ++
packages/server/src/middleware/install.ts | 104 +++++++
.../server/src/modules/Job/controller/index.ts | 51 ++++
packages/server/src/modules/Job/services/index.ts | 18 ++
.../server/src/modules/Upload/controller/index.ts | 207 ++++++++++++++
packages/server/src/utils/EnvValidator.ts | 165 +++++++++++
packages/server/src/utils/R.ts | 35 +++
packages/server/src/utils/Router.ts | 141 +++++++++
packages/server/src/utils/error/ApiError.ts | 24 ++
packages/server/src/utils/error/AuthError.ts | 13 +
packages/server/src/utils/error/BaseError.ts | 17 ++
packages/server/src/utils/error/CommonError.ts | 24 ++
packages/server/tsconfig.json | 7 +-
scripts/fix-type-router.js | 18 ++
65 files changed, 2900 insertions(+), 134 deletions(-)
create mode 100644 internal/x/composables/useShareContext.ts
create mode 100644 packages/client/src/assets/styles/css/reset.css
create mode 100644 packages/client/src/components/QuillEditor/_Editor.vue
create mode 100644 packages/client/src/components/QuillEditor/index.vue
create mode 100644 packages/client/src/components/QuillEditor/useQuill/index.ts
create mode 100644 packages/client/src/components/QuillEditor/useQuill/quill-shim.ts
create mode 100644 packages/client/src/components/QuillEditor/useQuill/quill-video.ts
create mode 100644 packages/client/src/components/ThemeDemo.vue
create mode 100644 packages/client/src/layouts/base.vue
create mode 100644 packages/client/src/pages/_M.vue
delete mode 100644 packages/client/src/pages/about/index.vue
delete mode 100644 packages/client/src/pages/home/index.vue
create mode 100644 packages/client/src/pages/index.vue
delete mode 100644 packages/client/src/pages/not-found/index.vue
create mode 100644 packages/client/src/pages/test/index.vue
create mode 100644 packages/client/src/pages/test/index2.vue
create mode 100644 packages/client/src/pages/test/readme.md
create mode 100644 packages/client/src/typed-router.d.ts
create mode 100644 packages/server/src/base/BaseController.ts
create mode 100644 packages/server/src/env.d.ts
create mode 100644 packages/server/src/jobs/index.ts
create mode 100644 packages/server/src/jobs/jobs/exampleJob.ts
create mode 100644 packages/server/src/jobs/scheduler.ts
create mode 100644 packages/server/src/logger.ts
create mode 100644 packages/server/src/middleware/Auth/index.ts
create mode 100644 packages/server/src/middleware/Controller/index.ts
create mode 100644 packages/server/src/middleware/ResponseTime/index.ts
create mode 100644 packages/server/src/middleware/Send/index.ts
create mode 100644 packages/server/src/middleware/Send/resolve-path.ts
create mode 100644 packages/server/src/middleware/Session/index.ts
create mode 100644 packages/server/src/middleware/install.ts
create mode 100644 packages/server/src/modules/Job/controller/index.ts
create mode 100644 packages/server/src/modules/Job/services/index.ts
create mode 100644 packages/server/src/modules/Upload/controller/index.ts
create mode 100644 packages/server/src/utils/EnvValidator.ts
create mode 100644 packages/server/src/utils/R.ts
create mode 100644 packages/server/src/utils/Router.ts
create mode 100644 packages/server/src/utils/error/ApiError.ts
create mode 100644 packages/server/src/utils/error/AuthError.ts
create mode 100644 packages/server/src/utils/error/BaseError.ts
create mode 100644 packages/server/src/utils/error/CommonError.ts
create mode 100644 scripts/fix-type-router.js
diff --git a/README.md b/README.md
index 6d83d19..8253342 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
# 基于koa实现的简易ssr
-- https://segmentfault.com/a/1190000042389086
\ No newline at end of file
+- https://segmentfault.com/a/1190000042389086
+
+
+## 试试grpc,实现node与python通信,扩展更多的功能。
+https://grpc.org.cn/docs/languages/node/quickstart/
+https://www.doubao.com/chat/23869592666505474
\ No newline at end of file
diff --git a/bun.lockb b/bun.lockb
index 71e79af02a5fe072453a5e4387ba7a51e70a1938..b602fbb90e2b8f6bb582916b1202501518ac3315 100644
GIT binary patch
literal 167363
zcmeFa2{@H&7x2GnXGk(c8k8X-b4Z#@A*4ct6gIYbo$-}Qahxv%qB`yPI4t$W?m^E`X^zN6(dqawmJJ^X?-
znZePr9#O#q;8G6^@eJ_x3uLN$hlB?)BGsd{2Jq5ow4ieedP5yG54bgKdYimbzhFd_
zLCk5tNiyQACm%^W=B}x;9$V39#XP-&CcqMZ$pk7NT1YjZ1%xovBO=0SSD|JAjg}DY
z7s
zNYrNr677tk$_G&S_Yjy7Q2rF8Fv!r5h)B`}>}N0|IKOruu{RhYkf!qmsj2p}ezeqo3#AYgA3&9=;<;pPl
zI4;5ERb1ieQjmWF!b$EnLXO
zUgfb$1F;Y>%p@C68e!(@0ta^rLNO&-mAAmf@
z{oELq9!(`yeKF)wPf%cBEHtA(4je^?YFI3hOKlhiX~
zB0>VAnKaVQi|G;N1AI_KuNs=CZ%BZj7b84Th2>`?C5NiA;^qf=>?g#-Cosf=_5#WW
zKt7zw@PZ{AO4c(YI2QI7PhXF4h9?tr3#qf(*@DFW?*@tfMKHsonc*~Ap$4lw8zhdy
zMvz#)nv#{8tbWUAvF2xBh>xy6=sg8_oCn?!>dctPaK`L$th^~m^wU2A0stx?K&)fdiOPEu-5`z
zmL1}+9pq78L?k0JDuNj?c|5B>e!;%XaKFe1FJ@@3A<`~gkH!DJT?FM96XYP!hm%*`
zFM_76&(g0965}1@7sOQe@_=y+ja82f0jcg0;uT8^XDsafKj&c0yhp
zt{40ymuXtIQ>07ByJCkSsaN+C?hDc|3cP;
z@L$M4v$O%TSm)B0nJoK?UzsZ768(^$!;{A75r*D6Z!<
z;1BW&b6I*9`ucg|`1(aKV=%B`P%Z-XHjb=uzMuE8Y9Nn%jWeq}lHuWj=fy$DOF;SRd8~fIIjQc&4D#CvAZEA^Q=3MMg*>)1ab@}CN9D61kNOndSblgjA|k_}U*XKC2tV&wS~}>(
ze#A0@0-=~j&Z7v=s6gykggdL>xNpK1_Sbnp_IFRHN4ua_J-{!LW(#?YKQC;X*zXPx
z7XJh!_V+!MWBd)NcB!xnBEKB`!1}0Qzo5{N@W`!TTp02#AaQ)ieL*7Rv0WJ4HKD_T
za9Clx9>89fCa0qa2W^cPmKbJD?urTS^8o;?$%3Xta2^P@fG*)Dr{}{aXMM`FsAX
z{#*cwdG7#Ly)O8Rc9cLOX9n$YetP;c!Xq{OBWl1oET2S``v$Svp9G2RN1p3_KV!Nd4&W;MfwFsjEiFF9Sw32)E81R1lpti@@Q84-5`(g&05H6
zw~!GY>=*1q>yBaheF7x5-w1o32*?AF$9TZqTp%2Wv>eD|zgB>RTfYSQA{uQd$RNn0
z3=HvN;KuC?`QGsciTW22Z?s%sCI)v
zV!wKzToPper7Zat^0*FCL1JA0ZC#V~PxQ}+_CuikOeYq9d>Koh3FI-pQE>mjfOzA6
z5gFl0dyvTTOLsZT4&JSxy$Z-<|7c09_|l)4<;-~RZT%J_U`x_)zUeY3Sq-~$VhJmWNzlM1^PcG0%43eQ%0
zw8~OglpIedWWyN;AP)fy)*gK
zvf-H*8q4Ezs;v~glU$cSczyIkZ7ihg)F_WBT3d~B>w8Ln
zylopW{GwuQcXDVd1|uDr)@y%%^qpK_b$YM+=GDE7GJx%=CfVS3-*E`Q!$mifWK;n2rtdp{gr
zIM+@5!a?gvHU8PUJ7)4!evflK6Yts6acZKB>X5Uim(F?;^0>-X$hXr^cmMTWBGb$t
zh)jK_KVe
za^A`-XMNM3#hh|~mEAN(sOPw2+Z8WQAD=bWqSIsKAG^*!wl3o4P=4{oqEe-|Q$u2x
zi|<>nH|z7r=cjgVx!G=Z*4sS%XhiJ}-T|7nTH$Af7uU_94;!kwU<1!r^Rny*k!BZF
z0#|kNRXrHdYHfL4anz*;?mx`C=e_$7QSNy6Q1d-QjpbDe&hkxC0aCGZB~KS?%;PCJ
zZdto=^1Ux9UX{7eJ{n1i?|V9N^WNBxrFS0~9*=jo^c0d`?QlO^vi$Y%6~_aHRFAnY
zE~GBY+w%0YbNQkkFNp&}W!9!W!%w?C-K;!rv9K6VQiRm9l9#^yTl$BL4kGpayXO}^
zSE-gH?KUi@={^~L@$8#Z>$uL(LHU;-=-|#ptPtYiGK3c
z&IL>Mk9UqADBpd@ir38k>MDJ!i>=z(!((RD7Tnfvif-(gEIZ`fmmf~`xsPuZmC5WM
zRVtX5sI>XEx?b~}>849-y3&H1KGc4YcKz`@(rena)H+Mkb;@xyDM=1dJ$5ptosM?f
zXg%-0UOe@P8NGM(_SY@pHY23k{R4=$&nc!mWE`YUe6r
z59j=4#m`gpHF-9ryIx{^s;%4e@%!1l;O3bP-^3QZe_gO;{GCF%vqxie=f@|MD<%><
z#2;e+!Xbl7FZ(I7UBdFEl18~7HaNe@j8Rt4E;v8_%*@K?K~gcxy@R&5UlAVCIq$=|
zrX{b0Jx7P%bMGG08NSMr&za9G)+DQ{#!UF_p{YA1N*$Etgg@@;;v1Qfoq2J1SWtzK
z;!L^RGlmZb56xMWxxT<&d#mDkW|a7xT8$~S%$IBC%;n#fc6s#j=et5f2MuYQqSJHa
z5Z|U-|b)ocYFil
zdGwQV5lx9rUbo<#@0gj!6YWL(hDF|}JSRPH%pr;$nyyN&axZS3;x~QKRk1m|f57vXMyZ`OeouFcJyw~bcuH{8`hJ6^>Yc8Ze!%}V
z@tm-fFSF*={xjR|T~%5f{cU8eer$+b$dU8KCYc#Ai~$ezEQcX>oVR{V>C}mW
zAydx2w#}+C3%8fq>ohr0VCoW|jTfFB$*r#ptsfM;p-^~jV)7G5P2c|Ca`awB6^_j;
z9;>O(GdXV9b3+|L>3OB?#UD0T4QUHeZ(seUrlVfcvSqIDMup}P`8!|ae3>9Icg&jC
zDk~U|q76638FbmugQYa5bX9cd1&lKJfU%!$%KX4%+Z#_v|+F0yW3`bHrcYF_L_oF{xT$$$(dmBMo!ceZ3J;
z-E-S+iePELmuX+ZKTnoFQnGhlrRdj$iS9pqYS!{Px{NTa6ts>c=ZmlYx!2lHUK|}(
zv16a%PUVjRT?e8aUv3hS5>&(FO{FA>_Z4H~Yk5QK8esG&%UZU1Wb#L3N
zW5UIQF14KbVl|)lnA2%K;gdBBPG^iW+@rX7x!CYGL1(g^Uf5pxv{!r^??&&`YPIb9
zlO2XyT^Ts@*1Xd9W7m3ZK79QCg~!SKV|UEleI$RfjD>65MynaoPpxih&04=eM8VA7
zaEsdf5u38_NT#Jc)crc}gyWXOuH-yQUK^TNeCeB>|J>p|&7#Y@CWU*rP90jfkeml(
ze;=7=O21xw%e>?IkHaP5&K@fkd(?Pu4!T<{`}x3!WJ9gdwjPtUnCXJ?S94*rMUXhn#3r1T&Mz
z&1>*}enQFR#j{2IRa?9o{6C)YP4Ej)kl*y7Hff2Sor-3EN%^yavSAOiifjr-TjiJS
zT0CeZU**DU_jbLBQ;nS8o-FEYIbG>)bdBJTv>f-yCp^_lGrFG`&vWw~@3vP{?cJ8i
zYj!=A>p09eSu_fbk@YY0$0eeSpxVKiMYxe`NkS+iwe
ze>;Wkrnx);5#<|}8Su&(ko&e-EzgFe$(KI*(V#hp_hqJmrK``&<-6$@lP@@Rj~+dx
zy{D}9Sp64fMo%H5L%>XK^7yRvSG1$|?HSk;>BTFxSLuD|;alCwUF&%7ge9aKYpZ57
zre1hd{+=Q0d@({I&}H&xwQ^wjMWXWh~YZJa&KW7*2r84Y|ZFXq|ITIw?Kz|^$G8}?_&
z?^v~eP3pm-k}_wvo0}TlI^m+)oH$(UU{AaQf4-oLGDvi^zw
zIx8mshCx=+cLtwTnswzwPD0N~DXqMfLmEepsLy(*U*~ttviX*cuG8|0MI9toFu~I7kX$P^Jtq}`!9eu#^+KC&d)$9MC@GpReS9yQTn?uLp
z)!-lVyMc#Slz+^31K$__U0}lY#s3Q69sA(Fhyc8M?*kv&N4_3-pFY^vhfSj|^KW|}
zd0u!q)tC5r0w2(a{$B;&uMhkLcnRm(2R^Hh{CD8{5|+`6<99j;e*kzR
zibs}P{wwf!e&M-^7fdIP60vUp2R5Gn2n~Y^mJ>&b@T=h^x@8~u8^F)#13wa8%FpZr
z?+<)m{67jjo}U=BKZ)N!__D4q{yPJ2+Xwsmf$vNFJAj|v2m7WHeT)Bk;QJE4`@r`l
zeyZ>#QD5xG06(V>@w)_kU;LMbFQ@u4{yxC>rT-X>&
zSwG{4_AUO2!1rbT-0Y)$S=coDGX8$RYs31%vkw!ItlYoZ6A4y5j2{0AM6(akI(NI_dki>Tj25jiNur0-wgt3r!CF8f5G<$
zXrI$W_~pPGfqi^$0v~DQJ;d+y5dIoK*#AG}twz#l{uB?P;QIcr1o-)V;6+FEZT@)!
zkK>2&f{*yyBaRY@-#LKh0+08-IDVXtA>l{Lz;ES%|I_)m0{FhHziYr_|Nqp!q%7JpC92dsyA_}hwuvWtntGFbLuy-KzK6+8f_f#LQuht4#GzR?+82`1AoMS2i}zGKN$n!;!p{INZ!ItU*D{6w&id1PTMI7)=S3p}152;uxA<(U6fBJC!OVcq}X`yWofyFk5!
z_Xpmb&3{}+oFu|G0Z;D#vHx(KaFhsduJrT#!udnWf2V}BO9h@hzo32L-+@#;;U54`
z_HT?Kr-|?q$~2k=#1DPvgNxHOKzI}2Cs925&n>?gcs*+VAj@eVi2WmM_K_#$@bQ<4
zw0jFY&VOu-Ww;M;k_fLj_UHM7{pU0h-VJ!{KZzT+=l2$hN4uz#=>44^q}?Torvrc&
zr+pwij|yx4VIKRyEk6!;JpYix`NwG@_EUj3rFc$RY)AN86i@u;R0rY5s0Iv)7N!*D1_nxzANdG0(S@FYli}tzo-wk-2zvSHFmOlVI#*fo|gY?US
z`d|eT&fNr3&Z#8*KL&>f`j7iIr?EpDg#Qja_|iN6oZ4pR%`{p4$N7&sxsBga;3tFq
z0hDo0`#}7!2YwdtWc(;KzZHZZ4~Mrk@aR7#Zv9^dJkDR-I|cuMzYM$)@Yrv(&1pY~
z{{!LX8TW4-e@=aerhkpU3-Ct3V;S;9FXn%hNV{y{@%fRAztFEBwmQP!r~D`JXKV7y
zkAxS8m!HHw0)u`@{j4OsE%3O1WBkeWv(>+UB78FNcz%%ePs;zDWYv&%*MP_SN3;#E
zVsS2VlnDO=cyfM_GENkbwv*xIFKhw5_Hhnznh5U)JkEcdw`33ILyBIA4|r4Hk>h3#6aNnakNXd?OXTljNcb+`O(-7sAe={>
zB*Ht4XZ0WLk{EEqrvZ=W2lAZyj{1rHdz5{W=hlBom^=`Izw8q|zv}~OX9>Is#dEWV
z5`H)EWc<-4r!gS>3*broNZIdv$9mFM6JCCi^^fJ8&OyQl0B-{Q$2_OLqaDH@1Rnd3
zcJbm=2jM>g5C8R!AI@KKxHw6Kp9+T`?!U-zI(M)w;THjK3_Rx1_t99%K_dKd;PL(i
zS(t|$C&GUL9;QIAeT2Dz|bWP6ugM3A_oL|G(o%
zJ>k27XP>{^_Fo@1e_a1WAJP9iN!kYjKNWavkMnmZe&8Sxz6N+B%0Bu|%73SVwBv!v
zL-w!VG3@n(9}hg-0`#8We`4PUczA^Aoj;u3JE0%MelGAvz@u$W$Bvy>gTc3dcr(hrFz`4BI7x(;g~?+=@qe=aTm*h@ANnr~n;)_NC*$t{
zJh^}R6aTjX-i~pTnQcvv5
z8?)k%dEx_U^D9aC`4rF1+(*5H-wHh0f3ciX9|%9(5C{^kEA;EmYgiqS
zIDGN`6?LM05*N(>Dv@@^z+?P~T^s{W65*EvkNZE#bHZX9(!K_Gvj3AZPIQpA-zfXU
ze@<9-`xD{tL;G0vC+{C4C?4%|;{);kAn^G7Kv+I>go8x*7U1nD|N8?+=YYi~gg2Sa
z8h>Q5jQD|Vew7HH1Uwl(oICgqfRjY{^S~QX{$t;{oqqyw^NQ;ixj*T@6Y$2sqd(+=
zkH1aC|GmJI{hQOiqjJJO0Up;ci95IBCuRBb{A1VqyABZhGl0kYACl*G{w<<-^q*7T
z+5Id89zu{HNI6Wt$KcfeZs2kMkpN&YT-?6@Fo&Bb*g|@r-{7b4948X5wZOwG)ZX}!
zG2}!E;ZFi@#MXaO{yQC{o&OBh^B;*lx8qj{JjS2!L~?4M7am@aC+n6-PI)WfVGH}q
zKBqAx{ZFNMVwXrx?KiO5=afa=#J==Q*8Ib`q3_)K?*lx(zrc6@coDtu@t29T%Lbl&
z|A1wr{Fg9Wy9*SLeq$fF-;6-&n>@@;?ZY}9npjNUnS!IEs7`o=5!Ar{5-h%VnX~0
zk87BdMEK{xrB`i2t>~8&m$H4sPQ|
zcVP7&Z6iOB6XVc^*tY?G8k_%|jz65)y$SAJdw)N}Y1}C6FZ(yZKD>hK{rw52YY%l0
z|25&|Eykb3jZ;4ep9MVLKa)I>#Ls_|q}}zu@&DHT@8yK&bNu=HxxcshRi5w*fH$Yc
z?^o^rUPt)dz?0`6j6bJiK={YN${Y0*9{|*vEN?7wX|85#9xO96w^8)AdLAOTgp!;rvJY-17YMe(t|SCpZ2Z
z0uPTMz3Uh6y||6vOW^VOYXGo+!uz}YeE)*y2kPM@k-pxh_&>F;GoRIeVpD>A_>Cm?
zmjG|lhyGUs4@)os&2f6~i*1R0%>}IZ;n_hhtp8mi{3hUW{*iev@H>#IC;Tgm_&DHoDEoN-!)^Qz0*~h>a-6d0AFV-OaheF9;QsUd6OKKnJ`lbb
zcvH$gmT^0NpMck<`p;?X!OUO%AH!gcAC~>e{Er46?W6B_aq0ucP5yz@|8Ur2H3XZxw0h4m`Pk`xE^Jh9CSqUA^XKye
zvYhH5ybJJn{&O04;veC60uQe+ddDBfP>MA8jU+tHixq#&{|RqF@qhQ>1AEtN`H&Xuh_J7Zlc3r^3BY5xoTT=G-w*QnTZLOHB`H$-!`%nD%
zCx*R@@VkLG0sGj0PFd7L_*UTY`w#NohEpAcSN8sCANBry9I))465;)UhgUEO*ne&k
z;VXeB`w#Nm+8^S>@}Jn}w*OAR8&Ljp%A%jd{}aHQ0*_-)e8BqOCBpOgvewU^@|M8k
z_@nQf#twZW_LoyUH!M4U0(f%&hVPF!{SJfJ=ksITzmc`Whsrrfgg*tm1r>j8VnBES
ze^&g6eNN**coX2s`y+gJ!tMUK0eJHL9r{n!@$W)F?7sot2>Orhv1|Z-;2;rRHQ=Xx
zdeIfkAVIuxt0Dc0+|4IL8!L0Ge
zvB$)z4q|@_@Ff0!vi_Flbj26Y;+icpQH+_T2ja
z9e6VTQ75lHFum4m|_$9!T^^awEj&PC)e+hU?%75gzAzW{iQAMT&%6PX9U(?R?{8}sx0K!(#XAiO{N0
z2HuGBAJ;Co_Ll*V_wTsxOT)$O{HX>W=MOnIxV1lg>CgH1C*$W1JocZ{eG9tSo5=X(
z0zUT*ye+c|U;Dv$5@#8cR`;rN)^+PyG^5Hj<@NU54{QFb;xxi2D1OEtk6X0o(
zxVZ-;{>v=;`TYm#;B*`b??dr~<97bl18)!h|DEgo{zQ8s&C08|%JJm6ljs|JBK8#%
zS^Edc;~Bt7BJJk`KOXFpJh%K#;K}{R-}~?@KZw1zz~lR0%;Wl#`W3`hM|gwfto4Wc
z=bzY*2Oj-L7IkuKzXo{2KJWvRSo~nhe{Q}5M+PrUDDl}#5i^ibVtL1Fo?Rl>M%90!>QUl&bW-_WN%Z?W)$Ugk?O>_nVI?K;eg^;l712L+
zs{B_Hn`lt&P$H)V68ot`m7~Ouy6^|<^(d*2g^<`K&KoPL93|?R2@;EDQRSRSY&x52
zj}q|%sP%@R0X;=vfCFN`NSM~VIygT$i4R5?l!$e*IhYd|7b3liI(1Br=U;`+M`@O_ozHd^!p8!M~QmgQTcz8Sk+3^qr~wY45+*jRc{Ou6H4rtB}i;%4HBzn;U7xkM;j`S635p8B=*mlDrc9d
zXFgSq68%{~UkM2|+CDt>jJSP&{dr<9BV&0R=vrF{Xhbl*je)?1G1E_M8
zSRPE3hfw7x@jfmFBtFxmQ1z*lOalr3(Kg|q-$?XtGu7@-B%)g>o*Rk%%A`1y=tmZn
zM~U&-LFL&cw#%W)QDQz9Bv*uB$U`5pSv)jL_NxI{rCL!f9LZV&KGyMaG&*t3-f+(;W+>I{KfkH(SOfhtaXmh
zU6@efzVJ`aU09FhxG((o{DskgwFJSyc(6ZrVL9gU9RKh6ixnSEp1Uw^*bd|Q-}4tn
zRXn|3+6g(oR;Rdy1L}H$+{o6gtZSw2tVMp9%OrGJH9*Pq4kL1
zb1*)OkVJnmyx)?gIhy77c_!XZWTxaD4mvGU|Gspu*2VqOUX{<(-ya`2bW}zE&XG=;
z+dG?GtWz?-HqO+$!@QEaO=qjr<7wa|>c#k?Zj$IJ-u_JwQ{96d$0>A%Rq5UpoU&@m
z$hyJ0^EcRBl5F*Qdr^P6_q^Ay8ZV?*Ek1T?f?!d0Xr6M@{Ke;|Nkr~qwy@qIvh?D;
z97*)&^ydlYhDUZ)COBM@KO-#T#&kY8D)7Uleo5QadLAA26PO>BH=?M(pe1C1+zNv%
zCm+LM!dWFzD^&v*)(AR`z;|@SUwk$riC(huZt2$6&^NmM#r99hR7=`2G_rc*!1zb@
z*JM*Plgzg_@K{_DwKM%TbC3Vxco#&M}Uc7c1#UIjW3z
zygn^s(D(eS;WH;S_3C9s7S9%v=wr2hh!@R!J;zL(ZE?(kBk#Fhi!JR**5zEn0t@cstIN%|wXv$0a(n!-iRt8R_O
zB?kVAGE)P-e|#Y`?)lg|{Wp~~ZP}T|_gT^V&_ti+#OWb+1=&N>*N;EY@qPPjL%m}?
z*G1+hta?f5O#p@Xn>3Q>mpw*^IXKR3C>kQTaGW%s)3k*zdz^>8I%j%bxb~XV3m!Sq
z;r{h;m&LXX%9+(8tMWm|_0HsNZsW3cUVpVfAl|{6O)vi5g(Uh>i|}B-=^;DzI?uI9
zxp@D}tSR5U=S(>wq$;Hue&~1rJu_Q*qisfWT#(UDY9Uji(px2;J~%Ts%BG-pmB;;$s>dFxk5x*a@1qso
zlv6P>a!Y`FyYphB#R99!lMcxio~>PR;>k0XUS6CJ_->pe`nq$0S|_%Q&Wv{~AFyQG
zLjTztHS88IF1(~hsIw_Ogwx%?vPT~o_S&(7jvd;8#}N?{m|=hE%TcX
z@jC<_S^^FA;zbgj$Bh5Y){^{4T}Icj+^K8k4!o%{P~>9HG|Pn(YzEbq4>b+x*f{m`
z+2#T1v7_VeJ~_5bW&Foi6=!?42Yrzkws81zmcP9^#fVanbp0om0U;ynx)!G%O&K>W
zl|H)iTGVF?{&v}!Rj;}SzX(VdW{Tgb9x(6VSk3add}p23Or3t#si*I+t*;l^=_odj
zO)uWll0z^IUpCc#vwfstO$``{B*XavfL_&=fCuEDa=lG90x?|5(zfZyA
zM;62jPTH94-^~{s7kT1nhp8xjx4;8$t8mQNf9FMKCI{{3xheeZjY8zkM?qz?IvdXQ
z%Z-S9qT12Ctk&Gn{ro9Ak(hp04i5}aXm#B0xN$43^&Hb^r`N<)S?_$+=LE9p9YUN1
zNtaJ9^xC0#hi<(qjo)h?j4DZSwI|NJh8o}8~D?H%WE@55F(^INyyYkg|_aq~u_jIze4
z^V#(Hjcx@Vk@8msJ{C87XMD=Ot5In_Lnf_loS4fri|K-^-l-S%>ZSL_0pG=vL|+)^
z^tLpA_nwULk=`%O-xeBO7`|%l0=@2sydr|JOX348Os>6gO*(F|EzIVDS>O)qRd3#Y
zJ6`@YZqfVq%%=hCvno5!G=mgA4d&b^zpUdS=X>cA^RN;ZpW+Mj7c%tF^uvT_euP13rX~<+f8@p
z9%2-KxglI@+0HoIFW~IZ$~xN$&w>+nCrsW;Y78A;9<;AMD5ht>;Q2%JnN9htA2;p}
zm)7nmUUlX8GBHYT0w^3ol!Byxo9sF=-Pbnp*@eUnfsChdV{S>5y(?W(_$^2ALFqmJ
z*CnNO86HnJ*Q_sI-?aX7VyRtFM#7R^L5
zo*kABJxXU=2Xsx-;IlpaIjL@&aAAtXwLdXiBF)2Thcmub#i^>A3t0UX5};jF&1{
zm5y`By6Q;j#eH%lQ3{g2)zD!Tz5ceU%7x4QQ&SHzJ`G;cwBV$}>cUBfYp%K7-~VuK
z$#AJo-U^91t0yU@Np5^uc%^QvzH;>35mnPR-e}s;tCw|OGKyVq6r+9Q!L0>m=eysT
zetP+4XYF9+%;-#&GrOFkn7u((ds^;*xt!b_{IeRqs@kz^Ug0C
zC57Mpk^2W3cD;{QK5e+JajM_`k0~&-^Q1uWst@oxSnYy|FU~FEU`$E6c9eHfo)U_|+P_?Dru8cDF>_r0&jn
zb70|^cXmgr+nywSP#Ac!VphIT`#|Z@^#XR9M@1v5&KD;w8&PM|{{tQ()O^*
ztXtW7U0Czy9rx#rDn7&dj-C}?d3L=M&g@&nr2R)BByxP7`IIjKqs+gIX+mi!rCbP$PG`rr8p(|BB6#E~T
zb$^}68<*6kp~AsyPMKU7IDL=C;f|vwh2MBKy#H6WC?vU6uT{|rnAuR*2keLhsQYu
zOws=u+_)h4aP5K_`#VSI9jDjPhhLwO{b<_9k#~ROhxEpmwXc)!iBLV=D55rSpX$)}
zh7pD{#yVe^6O=qjV{BdKy_KSRBbPN^+tl8ao)a(Hy!5K+i=#)v*T+5dYu8ou@;W%8
zCw^$X@k7@01-^_iASSyIhr
zwZKz3vwY4>UJ<^i-{Esf^MnmQ3TXxeFjD4uR;l*-OA{~xo#cBgR8Nn;tneuElkN9?
zLo+w*(OPuT^7RU5K@%g_gYjdu=jUq3ss
zWbNnYH(2*OxQbcdhxLAdKXe}Z8+;OXKBm-N+r3xL#v}iM<&`vvu#_RNufKR)lvlKL
zXeZ;r=XI~Du8teH@kr)rfkky|tG%@ESk9QQD;zq?pYm50bd4oSQLn3!etc!Abwy|3
zG@fsa7o%ran8!S*@OF!PlzX)8%F(okZw;q1Y15}!2;IH@RdaG_SAVY!+dnq&N>4dZ
zulr+!Td!U^4fU$9>upggvA;IAtmyl@Wj;eD%)%JX+o~OU^zV4Z5
z=9q29)EsngXp>|{_4g~wb&rR13~baDPR?+;MEQ#OJZbf)TDdyQQgjw$`h^Z`-`mi?{Kk0m
zp(Qq_68Ep#4K<@n*IK#YhGean|f^>rU@(`&w7
zcb;{LfAiXj1&Etqn`1YQ8CRT1~JtqIuprxnRUFo=$E50ClMcxH|oxyuAjS6n5Z}xtd^km_+<98$(
z9lQYzl~KH@V)~+N{*GhU>vwX;nx^913mGB`FD_>Ls+id|&X&3K-Tq`zZA!Y%{0+;c
z82d%MUdo4B)XQDX&$)9;%K5<_tB9Qa>-(9TO68fd>D6Y}dp2p`%JLYV^m*;CZw;JK
z`)S7toAYndrgX2lKSxeS|Hsf#2l$*r9jXTXI8Yh?<#D)-s@Tdln##8bm&MZrZ$uK#)omaZ|bssNo
zQlBQbwmmkaE7MzqZfF1KP`Ag)F5zB(S@%)8?0TQOtafV5P#!V7rqS)QhC#&3Q67q>
zwL$$Ig2Qfn_Y$pJUsxwy;#9lp)L?$`_gRcnPs+bZ70fZ)=zXk8h!t(%W#SBSu(Ia+|SZrN}O>wI;89Ns5E>})mf>~Ou2+Z
z4`OE@jlKPN^th+%73S^PI^iTMz5;lE2LBf5uS8d?5L_JYb<>p=urhzB-jk2VRy{jr
zV4^fFBd}G-z2|t(^XiW~EFLF6et30h<;-V~$KK2_3w`nSUMch7@J@?EbI(w5K)nmH2&98Ku6#4mX`uO&TwQ9K;F0pO(
zVZ)1GN$}sj_bNK;ofZ{eT+HxW{l5}jTlR#Y&+LPp9zk^<4lVWjJf!rTrL)qFEQfFH
z{mc&68k)|G*L)`TSZcP*xkp{wVi{|j$0ZFakKAKxRIz25qB?8-g14Y|@?TmZzUm6Y
z-!qhh*J(W^
z`aJo~`nlJO^Y_Wb_xj7aiGY9G^H-ur(Z)$R&b_7Hp4YTIV&i_fwV4ffX;G3_c5eE1
z(#XR6M&{JyvbuRc7Dnz_b4*cS(RLS`nCJDo?B;*YGh4o-xVE`hZ$j_y4W|C375u$k
zKX;o*Rr-350}rw+ooB@Nn{&r!xYL#yS9iGbI62>(>YqR4W%zVy@kejJxlTPWtHQx#
zg7$)=<+UNtw#VTk2r}i^z*p&t<(SSmR{+{H@ZSA4<={1?55~c$^z=`@Q;@dvM8
z?pRPAJt^d_ks_O3qrbF59G1nr?AouJ8$H
zOXY=nwl)-1EIm{8ZGF@0Er)_Tk5pawY&A+bYLUGa51U?NcD=*yYHM`rPj9{X;hvth
zQ*QF8J0pfyFHZlyKF@c_mGhd$B5`NVwC9WbI91zV|0UVZ)%(N|ixF)Fdjyx29BW$9
z;lifZgk7)88Lyo218<2xyO{mx+JZrIYYuNarD3r$u)`;;q5D*$N7v$;!gsQs9F$$V
zdSYd;!w#C7#A&tmsq9>+TZD|sl-f8T5*9(u8=*p}aCvSQy`>W=x+BU<`MW0Kf
zRgQ#RRFzG=dA@M8-$<#fy^I&$QkUf0+$UdoZ9l{#dgXx|9~8#uwroga(`(AES8Cn1
z*IV;WAG|qx#!1QKPkL7e$Ge%EI*1K?lGlf&Kh4g?@){B^FV6}+vf)y-e$gRc
z?X?3ACj>k_bbRSf*8FA7Gc$I*W?c&17ncq^d13B^@+!CfXIyrh*k76MUuoPft~Kh^
zaoMmhbIemd-)}U^xpGkE)$M5^gYIsT`mt@&i`LDm0&1y0*!(qT*XwBEDU)n&AY-&U
zD^fej>7}H9Ic;~c!J*L`Z+_s7eYUh>`Qy$Lhdez)DN#jl(_{6*FeC=7i
zwIAC*CbQ|C&aU^u)|!3IlV(}X?s!l=+TY$gJkYde%PGiiWle*=Wi1Klxg!A}gkn
zFXwri@{1dzi@cl9-<5hcAStafE__4Wbrm+f7VLV1jr~(A7>%2FZ0QPlPD6zKtG6C_
z_@Jme)_VCCErxl4iL{djW7)dv)0+aSoHixBObGdM&X}HFR6S8->#)*g-`Vt9vg;M`
zo!!x7V09oWb%^`5A&i^qK?kcgcV_k5D5tewV#4dVksiB3&zs0iRk9x6*fJ@kbIpd&
zTc2HXT2jJjC^_?H^KLf1R_uBUF4f`^wx#b@lZ#XJfJXGRTeym$7H)92GcesJgU^Z9rNyWY~0`a9Yy!&-$>
zp3b=JP+J(k=IIx4=8-7V5yz#Z`c>QUO*i~8Xk-%KKDG1A@cgOIT(jlmI@Szr+O~gl
z_IYL+`~G0fuJ`Vv(&Eok=UrVmHT$jjmLR=nTf3Bo2J!nnsrI+s)zcx!Z+Ccw%7!=%
z5!0+efgNtIi*6ccDMU7$m9u%P@o?#u$!z}4WY-&(H1+WU*`fo%vED6R0jq3Q?y}8&
zm{Pi-F#UFtrRR7jvBfQNo_E?F=)R9%v-QZr?Bp|f@6GH&=bj(X=A)JyIf+g0EOx!T
zJtZ41w(*+iK8R?UaOCa&@@v)nA16LK(oe`XM!B)_GXRQr@NW*Q^B^Oeqt
z!M7MZ+Nuu|)|VYPa4J3UC`0P#r-|0Pj#r$&WWDXxyi4rywPDx0lv#9c?GGP+|A@yG
zR=&f8<}G@(W8qTS?{Gf3Dt@Qs`PhqTs?FIdU?C_HwtaYP*wpOETc7gcJzfWv>3Dt&
zZDRA+mR+xoOKR$c#Rqw-k7|8VyBky}E~1gKcX)`JzO+QE-HQR6vuBT)aG_p<{Y8%*
zd(ks&Y|q5$x4IAAF}=$>=u*wa^e!iQ|OO+dEvlglP?j7|)tf*~Voc!xkDVNsfOkNPhfA2t!
zu;fJFYoa#k6})NEYp|&{SkIfR{nvqAZ{gf86E-WDnQcz5
zIC61rR!Z!kJxQM?_@2<-MK_N4_K+Dk;f~g$FJT|!%R?=g%yj@Wc~t=NEpAMz~oMP(wzo%|LbHL?&j
z78rUkV|o6W)fpano_dvntIiC3pw4r1fwJ(e$`wMJ&2PM6(>sq{ulHar@wFo)GHLaz
z%(h)`vc5X(jBenJov&wYczt-2?#C}XFANc29Mm4wYWvz(xnXIyHeX8rn3Of1weQRB
z+s~ElWYg=yu9tCbnelt^lPk{MDVkvXw&Uuq`pn{q2jqJWkKOZXyzfzy28VVF{-bBN
zpJU23esj@2YmpE;HZOPP?m0*OX4;!f!heH9-h0kx*Q?f5x6)M;!?I;WHRaHFpR!-}6xuPeLW4^0gpC)HM*)m$L08ql`${nrb-;YDrx!`Hiy
z$MBzSH_9LIX}8sa5ov?&RkI<|ewtm|Wc5eEySK958?n}#8=Kxfe`NF5
zolO~Cd*%DndEZ{mJJ{Vy3y!cJ?=R)#f6;EQ%U;pVTi#!|n|H1~aE*y-{=}#G*ScPd
zepNHLIK-*_`;eQ#QzSC>Di?2J)5~Djd-KE815-{ImJ5EnJU-&~@(#Bj9ljmUl*+Wa
zyUjI99tRw_*6bG39rlc0_|eh$Lwjeu9;bY>sQP>ZPvgDLJf3mv^UQ-?@3kLB0v+#?
z-Ig3}NVHb6@)B@u;n}da`-1zAyo4=mydKD^Vmm8)WFSQ<%vfKOdq7^p;A%9apLT{G4@ZgB0)
z@KJBBDm*Q-xHEQPzd5Jpu<7+?*Zbzs?fV)G<9(-JxYQW!KKEqT6x~zO{ezcC+5~{8$weDUtGR;HdX>00A_e=O_$I?LYxcD?s4)qfm&s9>qI@R49dUny1jncg#8jhEe|e#ZP8w=Jjo_^8SDF4mfk>iz3HdE
z>+7aDm6s`p+pX?cd20B+nOn{;m{8E>XSF^h>2B!ov^|Y_SqbNdEFPw^_HvBYli1`8
zO|6w*Jr!<_kleJWhb<04?0P$j46BCCaoS-JkWsQLdHlgyr{66veoXJN@!uYEbNal9
z6`%75^6}QsXcb^sWk*aXmKrri%_8?TUvYBj*9>RVR5rcA?0UO1kLe_Zl!!T`=A~7+
z={*-QKPj(4tk*zsIk2@_Vb&eYOYV$DMT6D%!i!di^Vyb%$-UlK9h?+^^46T=aR!R?pDgs&PgQ
zrn2cOua
zxf!r_tx?S=>z=o-_+IBQe;lpZIqZ>2zb~C5
zj+I>U3c7Ib&=q@G#TX0Et3|$NdD?sxr(Rg`KD0`6=iKBmhu*%BJpZQSj$vWMJDD)r
zo9Wv}SC=j_d*n4|Gn?Lp?0VnXcRcFaz3axl;VLFBH%yI$4v2m<5Z6>nKh)G@W0bMF
zWN7nR?dK)7qbn5fa?mn
z`#VO+Vxy}QvJl$vYHN2YY@tEQ3|FuucS6JTD
zC39#mh$#-w58^Alt2wce^4gbmQ-`pv?xapjfa@rC&_&wwJ`Q&)J|3ao9LR|vbtm2@
z`2|aafT4W!bwQ0RFrBnORBGg38}}f)rPEuPAU2EJnk1C3ny^``_>PfmsFXmy9-s@g
zNhS@ISwNxD^|wpHzWP4FRN;3pT<~YBPdC3dPiOD0e-NJ-HP*PTSfR|DTKA-1UzD;@
za*JIsL|fgMGiieT5>L?W+kbCKKCo6`@Tx&ANTcZnUFmu2r#P&>ocvlw{zNdiP+hMY-W@uN2dD{BDw7nzSW5ghmynvG5iZ
zII&*g;aA0%`vJI5-w$~X$ZPrEu8yOTA30RW1IKpwFg(A%(18>Yr=Hy-cEZQjxe95-
zkf^Sh%|Jc;e9d#4B&O^5)tccg6U?V*GPPnXEbu(RmuK|9zYyA9J#3i^gs6Dt06VzOcm01t-br|wfz^KFH?u5WQntX47;8uIjpR=3DPq5L_3D}x1`?U
z2nM`3A>+NZ|E%=cbJ)HOsDmHq8g>_ZI0e6{#5a7)sKLcS!?C
ztZSHmOLKlXYIY2^HVx}(-#iFvlos6FeDHK{q^M(;c$_z=$yg7kCNC+2`YyG=R}HuU
zpu44%>n+9O(R-diuUpTf$M}K1olH!f{db*5ub9Bi+<~cS*NaYh_Vr%bEk|TNZkfyO
zN{-A3V-pp4wSL`j`%J(M1l<46{{n6hfI*Hq?NkD+tNx)HCaKH9#!du_{^ac_I)HnC
zMyFWg$BadfKW*I4CA>I;^#^&LqnZS}m45_>F8ma-)44CJ%47t|~~
z<4JAumSHB>x)ei#iaiZ2*F$jtHxzWquAB}VVgoodl?IgKD$<9ba8^q$v^fT%ujM{g
z5{@Ptle}sShgqUq)-f;U)t=B-v{>MXfBXIz&7}qfGhxyaaKk{?SilX!Iy1#^A%@@Z
znT^79y9Du5E6i;qn|)`G)kl@H$NJv{^w6J@3H#&Qbx9AtEzZO9e#S0uxDKbN=}4ye
z-~Q(R)(>AncZBU#HR(KjhsM%x0-haEkPhQBoulgJsr7kAev
zDLEJvo4yx_i)Edu%_N1_>rfz%{@?!b|J-oUogJorvD{uoYgxIrwjupFa5l)3-TCuH
zD!NINVoN}@4W;~Bj|bv|RM(M@Tc@G}^jb~`MiCTHWpeP*DP*)Mi$EPBK$liWi>-d@
zj{dBDF;?(>|65o!Ykv>Rw`ScLhyO-Aj39LrrrVA`XG(?oe?SCr|1_~duVMKKVCd#H`0XG_S#cSLixdZK{
zMC{(V<;}&VV-7uduxaX|pExhysNZBT9a0M>o4*Yqq>W?}H-ig&Oj0dPa^qPg9WL`J
z49LK32izFYP0MkT^n8fq)?cKHCT5KG5U>jW7CqWp5wz)pRRAZRHva1KF>!CWYWiAL
zlZ47Xsf#tORmXb`A-$gXoW#eR_U3{OKS~PUX
zn+rjnH$nKfUf^L#>Z06S*If`!w~GQMnjigSQ7cz{qNp(
zzdF|6OR3Z?G~%}U?YNagVFfZ<)mLjgxVS8O%Er@L>a+RuJKVHLbt2ZHsys^iGEwnU!@-N4S0zcthMpP#~fAsif#Z!+kM8E^`=U5PZjCF
z3~*CH7pg?dPpW?NdB8i1Pyx(%kRq7S%wN9O265qggf>nXdX$|82|U}
zo&SyN8K4WTcDf?s>@jqJErW-RxrHB3c5=G!QbdKj?ZmkGLwvH}T8ZO+g&!K+*S4|*TpMdRGKwxY43=w_?w
zH6p*bs9~GiLJ6{8KtxjQff6g-+mwjR`EnY5n<^P`$SryV)FBIWc@kZI{LB0AB0Y+t
zaW_<7hbe&e;+;sr<5x|1fDe;P@vgUvBYdrkqShqUiJ=S+`L4LO7NmYAb{@UjhKqdg
z-=On<#+_`?g+CKiMAp>zRewdK(3c*A4`DjYkdsA9q>Cx(__Qn*(o<}icG&!ieiL;d
zV%a!#@^6>$IFt_iyCPgdXB}ZF@OR4r-2r(-v6<14@~tj&q%^iozwlV%hLZfHTDmHQ
zG}aFPPZ=ih{5^*(h-(Q_#9Nj%P`5FLLA)4Jvn=K3m?2#1}AbD6V=typLRKEU1K3
z-bMg!9_Z4i@XOeYCP&4P;BW11;-E(8?w`|Qp@=t5%bK%cB%(j`M15+4l-E=l6bkLH
z@7g=5O^|Qq)V*fPWtwP0Q~>AAe9+BH!{p1M@;@CES_s~9a(vt^ecSR`b=T-UDI?y}
zqMN&Z!4W0h{x6wupZSw+1vQmA$qp);qhBFn=zTZIiRcw!beQDvCOqiZ_
zVA{=rASL(C9({#0s|o5VoP^`Yhh8m3O()c<#a~>^rLp017+Z#aou$5S+kOfh?e<41
z1l$79jl1tR_ZBo%Yt-foN51&U?My=Ealln-T7+ve%CbKekN*ROigr+QzA_*kFP3e&
zU&as4by%GNr^zWeg&aBa=^I+l^IIY4@-FIN7Y@Y9ysW~lOsMOQC)LUO9it56`s2;<
zYOZ3kxkSzeeymH!F`R$QE)YY=DSTDD~#80tD-j}
zPXTT*=qiZGR4!pDVj!Fj=r>VC{nn_Zc{9O2xHX@Vk!NVRTvo8VhNL<{RdX~hME48p
zvMG*9>5fbwrBax{nnxGP;T&*FK-aml#9f8oLU`Y9-^W*6SrJ=`M+j*S;v$5yv_Xg+
z!9=U(`w7)(`LNUOb!dF5^fYeFDRXVMZCrRFnWI8=LUW-d{uW2UB@kLC5lLDqWpEtujM5#{7a$D
zD4MPiE5&+@cg8$^^-7F|A6)S|0Jj`;mpQetzX=-u70Qg=#Nv!V6nMpL+GwI1W1Roz
z{beqNf|w*HOwLrmlDI`_@E@dFGh#7uVgbRH@e%LJ*d@MXa9vUXx^ykJ3&BqBCNI@5
zT|dLj^fv^*&%fTE{WM-ht19O(`T-m??=krAfVNhWFN1~!{-Nm1}!zo#Ld2!oo
zOp-d9ou+eb&yud%usWW^FA1K2TLro}%M66q6$l&w5y3Gq>5N_59Q_&kz=k>j~RnpMb!U2hFVw>M3<|Ch6crLKeoV(&R%aD^T!%aVv9OvPVG71C*%Yc0AK=)%RC&OqgdY$1gBV<|(
zJ(u;*v5a1UV>IO?D}VKXzv`Us;nJ^3spCZlP6OCp)0bBEt?fTzNaTrZk<&$*;u`?B
z9&`)%8mvR!*X*8Zy|3aQ|F+WOagP!jUr{kGK};q3O^D;y0gs^Jhs{ls2MahV6((rh
zdQXm{)xkd&60%UMM8D|(w*hn?=I#~WObz5W4q+--tz)08x>pV`EN$hTLNzGz@M;fMJPU4~Ecv@JetEx0nmPW^=cJD>W$@u3lPKN`nHLP1LvGS%MB
z!ZRrj^$Su{4i&B6P@xrF(&Wvf*h-m{>SOvXZ)3)V30X9(h`j$29DRdDMMbrMb7MfW
z2ISiWy2d_U9;M3N2UvRf-YNt~iMU$3A3kpP{`~&6xxoq6x7C47QrOQ-3~eSz@Ijm2
zJE!>11j*hsC+e*a)2VfnDL4-`gRaI!C&}4Q`Otx|?|T;m^pMY?aUYF{PJSn*{c@q-
zb+;jKLv{@;YV>FLSc}M0C~qbc@N0K?xqw_KTsN)KfNCDdw*_=nXurR^L9K3UtmibF
zGGB_E67)b`JYXA0jo)y0du2#UN4S)3`d9Ico~zYY0&ZUro<~8g>pQDo*CT^3t*<&b
zAGd<8cE#pfJ*0W@UVM%FV(Qt~vd}
zYuPNx9&>+m_wppRTY9kv8vCwgK;}FU&S#->xJ$iZriU)sLy?;{@3hkEA0#VVHjcZw
z0-TRKK=-%(Xs`Ey{<6f5A#=Z!O$rao!*`5#J=th&YE>i7`N&r*ANTi$C*oK8;Km|IY_8MD36SX%YFuiDbcQ2{gSYHpP
zH}!QH%$_G?k@9OZ!do-t`y??VDT|N(3=B4&MEsz__%^*3aJxX)!)?MFVcIlo6tBH;
z5spk>A)50|=C}f~Gm9ne=9GkgQfh5BR`&Y(%Z!?LZJ3UCmj@XJ<}vx{6#Qy0%BT}p
z0k<1;9|C{dLQ`!!jt|PQ(s}0)NZ|I4o7xC8A?$rqN%{Vl#CJ00mN3x8Rz}sTqX%Aq
zG4`cULE_K%>UX%`eqB@_&jRju(8V%CSR`emoiDi3*!n$N82w?Hi~{+B-p$4~eG!8B
zackpSPV?;{!<+TZfG~!vt<^o{&`~pWk*|uK?OXE2x;lW{1G+O^qb@McuS>{N+K>GG
z3+VEozppo)_tSihneH(-sbWG2HyUA>_jYSn-zTcza%l?W$9nU+<(!^6=p8Mc%r|gd
z(hIuP>{;+UxbRv0)aS_Ly9Yh>9Edb&)nhlY)I64mLAfyHIpk@69FPaw$D}2=<-S0^
zIezkCG!%b-&z!Yh&EiQQ-#*Z#_4i3<6&A+D?GZ&$!x6ipLP)l0D}s}PM;9qE#)~vU
z3_{GiRFK2DJBSgv#cp*N;jrP}Dxc!i6FS$X;Hia=U>0P!$bkU*CQhEBu1Sk?k%#8Qg`FS&$a;^uFG&^f%n@W=-xB%U)S>=q;fHkcELxBl)U7}Jd!qt^A|z8x{kRCAo$qn
zfbTD{2Pv&GOmqF{?#_}aloC(#;ogCTTlrglCiouf5a?o24Aj5;=jSdGLf#t^JJ!7r
zD0sw%Y|tAs?r^k(*SF!?T4i11rP+$eOl2jN92y+@U8t<~Mp7Ar8mO&1v!!YPJ
zW}@@O^iSV;sG^(=DTQ7cXop)5l(c2Lk8A7sNA7)OLA>htchl(-6WgS1K46E!xcckM
zm$#K=hZIUmgK6OjfI9-ZnnjnNVdtoL(|M?GES|M8QDV+bq*Gu{`|*IwB$
zzjaQ?YpR!6?7aqZul<_ETj3hAQSa?b9|-|>9CZ6|xw54`?C$CSJrDKmvOSI-1zcSgJ#FBK_+d~
z*in}bChS8eeILHsvSi*r6)56uo6&pO50$<2q4JE_g`#`!n>Z%zxPbajfiBt^>u!Pz
zD#>xIquG5(B))*Yp!RFYA1`yUbz@z#jsDQFj%d-w;{+onL!d%mIlW$t--YJN3BaL|
zz)>PHFa-A@r$HC_O(rkKhlfN5&Xl_GsWp8xOhim~Sz5Mf9^)zGyu_Eicm|5o=10oP
zD3h6uLB91~gV&y(g?dc#2FElSn~%jnzB8bkqxm`ZMK3#|NSxJ5XAM&K+D|0`wgn>P
z?>q_>@Kj`E`eqJj#Lx>1D6y>I#t}vPh6s>;gOc)>Mkw{OVfkaA|=xye!$?QHqSAkf@tV?dZSVq}Ts2MFqCJen?ORs{%YNjt
zcKc0g{h;crl|XgZu&5ZiATw6Gp1qOqbz4jRBd=#=$|ELR0pz<3x{Kc>UUMXo1;xyv
zQM{%!tW~HP=i-m%OwpV`S7C|x%RdEJRj__*K0)J7nQR1QEjE)7na6pF)I
z2;*(Wp_;9rjHFUO5UW!DtM&riRnV2Q&M7EtdfDc-0gdsOaX@rBM$M51k5J}=fHoss
zxdB8VFQ@p+2v2n&lLf^mb(}|KPjZQu5J9(A##Thrj)645T?5_Ffb;-X??fuTuke$U
zM)cLNl_ig!uF(M&o}qln9rQ#M=R^5+`GHE*<2@`oObyuenVDSk2jV{0XZ@kS5huX+
z)Yd_l3C|ivv`0Z)gaz^UB1tBk8pmmNUYLZ1@gE`-Jq@_6PqA=xjx^n^F?%7~J*{Jv
z2SWjWDDwuT8EFQMtzadEfP6PV7w0-fZYiiofv8`JLbGl2kiCoP_M#!=2{ZWYV8UdY01Kcq^>v^)r~L&ci^>J{CRv{&{h+cG{V
zBLj*UG3R(i;f*ZQc0PO1g!*4rbl1NrWOZnWlbE?ER+QCIsm?e)Ie*C;&QjkkywOA_
zbfF{Z2-AKvZV$KzpbJMn`-S~WNGbPZM2yFPoAR9WE3S=!_tk>po)cKgv19ng
zA~mm5#V*5VQg-hwQl@ujOg*n(d}Nc!+yMIzhoBoj8~P=xK{NqF2%pGKBv>9c%G^bz
z-&qq=<&|*+Dz?yDGnve3#fae>;_<7H!TA=`DK_3D+i4$~-SPgHEiU&!zDJ;I@xv{^
zw_U{a-)unnaPndX$tE4|g|Fi~o_|~3^>;B$y}Y7_zc50GD6P4I_=c?K2OJeA{(|qRoq#Summhg_
z?_vR_il{
z56YC$g}(yNpPhm(KY{zfx#wYgY|*|!F%x+U`|XD>XkP|4D&Y~ELiFiMFp-idDw@AY
zBR?Q{FTY2RVWssBLfx(4@w$pi+>Dha2I_DIx;d}^m|GPic5m}Bj<#VC@VQ*jcX6lw
zIpn%|sliL=KXjkl;CwC04sXyI3DMlVM%rWV3gS7E4k50#?Yrq#fB^0}=%NxaVtjJ8
z&-r#4q$RyUT5X(IO!&G_=rejM2?>+9o)q7_6r)fXFS|)KcdV%17R5nP
zK0;x=1xb*sJ^q^BBhH{+rRUUNC2*d<0Np7VdmoI;@34&o4ab7J9~2b!3Xi{Tslez~
zhp-V(q-Hh$Fr8lO8XHk4h$~%lRpEYc$DlXbvKb?IU$unA0`H)E-
zvWEV_<4fpkk0fFTgGFr))9U&27AFd`ckH3cvdoGVP9vzCtUw)ZKvzr`uIFHE8$(0?G
zddYx$3%UkwnusLdSh$Tfc;EAR{xfzw`r2DJc?eN2y=>rVtNVpNj@I*yY*y8E4z01p
zZN=^}$@MzUKi^qHdI3YBzm5oS??BgW08d64fY~X!=g+tPqRI_*i_a1ad2~thIl#35})tej-y=C^SnU<2^8?j={qY
zxDTM4QS^ERhrw#;E(VE&D$IIsQgdX)?hWZx$MW6an$(4AH8faI6$YOHlyKq(4kX
zrtI5KZrspw<~tgE)mqr#JoFcIC*Fn))r+%kTQ7KNS}yv>2o@5o+avln7H%9%!F*bdO5yAw@{WW+xQu)zJd
zf1t~}i~Vs%BUP-TUU|Xj#xu$%1BUfnGXB@@&xnc5>;mC;!ROsFpSr3cZ?(qL=#OXX
zKAGNOW>NV_jG222?3-zJp6?U$quT9;!x8=)rNFN)gniJi?$O<~kW!
zd|<59GxDH=hh;j_nG~g(?M-+q%5KeRCcH4C3@83q*LoVP@6#IlIUwu%I){!LH{UCJ
ze_+Sj#iL;<>1&CLe9?SVT^6goySSjjOke#c$#7b0@fx9-UG1N(zNi*s>aV)Z1*O-b
zT+&TIzE5-Ab3iJ47l#!QsGTlwd9{sJ_tbLI?ai34d;d+kgciJNpDw26<;|Whru9m|
zKo2B9PYXUpPRD9o;gi{g4|Z&A_W}Dxu%Ii?!kjw4uG#=Knus&BF<#NCmT_s6Hlh^$
z4}D2HI`q#v3m#=fIHwK^UdirTl-@9-`1^0t8z0UcQg7D%U$u7v`994Z&jCqDi-3-@
zcTMv^AYt5Cb}awmU-W7A40}U3w!VIKW!*dAnuGAIe|b3JTKDvD!H;U8sH@0-sTF2(
zf3Z7^7S*`{_vsAQb3k65j{9?Ek$y#;5heKV9G6RRyTp%4Q{z{Ms)^4F6A*ol~Zg0_i2s&9FQ&p_IExmw)#F!(e*U?jC96Q
zAFXO|O+G0uZD##ZZk4GWyPg>}JDLh9S*+tEt*}L6$4ek6Tk&1{)VAfM-wyVT5I|S*
z_chNTPEX5N0KZ=9J6;!Nf0A9K3K(@}G)03qLwy?GCYD$Sl6_yE9pqnc(oQPbHfzp4
z*k#wbnvN~O$>{y>dyfCxA3_A(@f>G#7c`k!+ZOp)v&ZC0q!+vuhVn_wuqH-QP|OB76|04@sXx*ir%m)0@pJFn!hFqE|w79NG+K(bCXn$gI9z7c|f
z*4gM>c(V#q(W|+e#vs2~6w)?5Pn_Atl$tNXQc%qn1GuQ5TM?W)A;I~UK!N&ZiR>}O
zNOOI#=G(6&DxRMkeUTrCv5I+jr0zV2?ra>Ce)Lyl@qff={qGAA^rCo?`EZ0#yfT3M
zbT;uhAVk%ANFi*0mhzWAxrw}3X|p`)jPyMJ{KVjcv~XVJMB^{ws?<{`LiOD6*{3)|-);ASi}B1Mlzb
zowsrRl*3wmm&gu|Iv4(d8kv!;_4vI;j3y5fI(-K57Wfj2;Bz55=<=7fdzXJ>v%=*!
z`Rz)G0cDm*YG&vkB(_kBd}rPoBloKhYmI5OzCw_nvTWu-e%vk;wv@paqlX1s;Lv^~
z+YQL~>6>NG0SU;X7VA^|Gj6~aENfz3o_o?A#t}a|F+SL1Vpq`zWk(FnJz;0`a-&h
zjzy}{_6g7#ghwa4kR%qvn-Z
za3KW!v^7XwNby}Sh5`nY7^7opix4Fvm+XEM!j)?wy>mX&v`8&2puTU$kE|$=jZ~QA
z$~(9>6hAPhgJvwYYI*vtp3hxjfo`*IH20^g46CCNlkmd+n9wG}%Z1OlG3&wc!Dgfi
zp)3J|?3+~S)ssifGjJ;~)rtJX*RJPaE%-x3-2Ze;es
zO)J2CdI#Y-AYz_!Z?lZkbNY$#*Ds+zicu08AYd1Gx7Qd2Ih3!hm3{J6Ra3ybDal=u
zYqt2!KzT}+BAR
zjzPJ}&8<@J2eqC2M|lIak8;1t3z+8~QVI*+zKFaxTw3CkGp_Qd;jrMmM0Bg~bA3JY6-c#d^BnsP~vae~7{
z5AKqL(}4Rl#yjJ;
z9<4&`?qD!NnhjP^nfEWAg89(Nt|qa4z$F0P#Jceklr?M=<-a?EB_eEvYiRgW(yh|X
zk&FkA4pQfTC-uZ+Fr9LFUs2m!V`js!bzZ}V9Zrm7Zf}l+36l|b0q)aY(f@A&xKC^M
z|K9>|pYG}BfaF5KE&uaizisnOgKV_5yFilb_;AT1OtGUr?D0jXe_WZC_qSYSzKEqw
zOlq31k)Y6p?b_)6+Pf@vt4Ihx)d;vGpj&13fo~+KIKxt9pL2oe+t^ILm*Ygxc54R|
za;Mx@i6WUz_cl$NKK8#nTdL~DRyFQwq#lY?qQQLi%OEr=>T|#)1zp%OgKGDH{ms+M
zZi?-#67Ctm7_pMlobr=4{r9a+nE!j+dFo9)2gL7ybtzXV
zc4qvuU|p7dMT{ZqL-Z*9e0%3NG1lXJbxS<>z6t`W>C;~s{_C(_5(EA|*JxTbQk<>S
zrjix1hCM(Xo_Z(G0r8*5&vcq8Z9+Z%`)X7f7S<+Lm(6#LMZ2->+`PWOZ%^*yRX_XtW?kdAXu2z4uNZi7(y*pxNUk^L#fn07-11&EN@E0
z%DZ2}!5;Tbl!nBuqfV*q=mtSJ
zubYTf-~sY|1G?D;-XHJ{GzVYCqSBt4LI@EGa#*aF-=kd?EL!2G62c8;W2W2~olnMH
z{z+UVKpRP<^?64=sczg=t7$ssP6V!hpLzz*0qH1jf-gT$i|G}yj-aK#9P;L_$hY
zAfvV-yGscDDtz8_Yz`ep`)r?khFj7MjI{XS4hSe>Y~(<=BakuE>hdzkQvbEXryYr+_rd
zdWndZNcocT91Sg;MjaQ714YzN$@-rsXT{PVHA{&MA{O4dpS?PPJ5z26}I1h*mUOHnZt_VpLTrnipOs!;&4{7ug6lIj&=n-l44_@PSZ)vgMN;WcWQDgC
z+Ww1#R%b{Uk+EW*sM!6k$&<4cZUhZKMn7Urv}B1pM9F58e)J%}o#76y%N)q}sh9Q~
zkc56BHtZ|D6Ln_GE@}}Mo*ucLlY6YfvXdJF_v-kMhO}D8pZ@Kg409Ya>4Yfi`5
znohE*avJ|6tDIGd>REy;xVzg^D^8HAz3$1K+yybTaW91WoVwBv-EEKWG4G9@>@$-ZD9r*#JjJu4;vwNjU+N(Y7gSmG
zYvzx?8L_h?jOcmsf7bK*mkV_DJ|%iI))4z%ZhT)+xnuR;h$MBN*FOm>m4^G)I;Btem2?urMk=00rzQa
zdkzR5mtAz@dAH$JZE0^5t>xF_#4y3|<*ABj?_S6G?4v2%^UEiq^Tgm78
zmOf4VGn=ZN3(*p^c46Gg5)ro^BWu4r!>u7{#^^N(xukCBYb}rUB}MZgAM@{c2%@N~
zv*7i>54x7kN4Gw<@{J~Obto0L3$-I$uXLCjF*>V6{#52TM}?`}b&h4D+=a))jvrgA
zzT@$TYOLTaCcuh1XWoI}60QMt5CC1<)}jTWc}Ubhw6=AW@`JE&5ys}`d1KisoXJM|MmQoGrD!2
z0@ZRIs#w=&Z^(K_LAT$qCIm*5}lM~SqD{kncZh$cHw%ETMI$x9$!&!j{vsnzSFBE8)FRTR_(om#0_Au5K%*3|8HJ@b|bbHC?
z2Kfjkgjl{KpKnY?G;O-3eR^hlzAuD9*Ho40^o!e3b4y%H3+FDqLuDk}lm9t60S@sobF9BBsbWeY0Yhwq7mb{2n
z7$;y9D6Cb)KUw>O>GI&O(tN+=aiPgGc0_$EHOoD*sgqHUq4j9YKKub!*=b9voRo+K
zPY!TJLHFGC<(DQMMOhaET+<8ke3R_t#0Q+KlvZ;?JC`b!>R)O;Dk^6&-$l;qQ&&cJ
z?x#~uigh^=5V|{mpYa@i<5LG*G0<&4mHNxjbA@SPFkcv!pa3IadN$pLn$Qq0bBVP;Pii2)fzcbZ0n1uDPCC&-r
zU+FgW2y~zQR$dDm$`$^D^p6q0BK9s*40#{9nbe#8f-`ECrS8t?4;Kw5tb?oQ5~*+j
z;7Wk*dHYVZzu?l=ez-eY0~yX49%p#$fVtk8Aaut^jMB~=#VJ&($HiCqkTXsH#GjZM
z+DM)YDpz%C6x-a&+~uhKfctbN?>Qi8IPI?{Utt|OS{GkO<=(O;pSnZW9w;d#k4jOC
zXTrs#vk{u@DrRcVfB%ZwX=KVjJ@t;69y^e-6lRY-BH2Oy(iB
z#sV8Xi`4wX(l?*Ry%Fz{mSRksl?g&^>`=J`ZQ&2~yzALE>0Y^dOxD
zA>5TvjU}zYu+;gR9&x#ErQg(rL}pnLLMx#9ihjIw4MSh4H=wTiA^S3lxmD2rBj754
zE@|RNMBU~Ja^0(SHzhi3`pEh;$IiZ#cLU*2hx9&7j^cs^KCbqc!$w4SExa`L;rzFC
z>W@3Ki{~U83H_-7PkSuS`99V9IUwq<#@83q-gDitWTTm1X1@1I*EL*5UicKN%4qx-
zF=G{1bQ`_FfZbM~&6JUn9M$_3mMRkIf=IMUn1Zq1pnNUhDuFJs%n&yEWWx=$F7C^j
zdyRc%{P*Qsu$EpK-SX@DTr~HiQ)i0bpuJDuC)v8Wdp45Pmee(EZ0${&-dow4cq;4x
zt}^H*7k|Hn@%m=`xpTegul%7z_hP>KKs&S<7OAsGMzsfdxV?8L&->RWgR8SAOs)^}
z#&lG{!mf96<50QWuUu5Yrt?gyxDSeYdVXR|^x+TG44lz%pT9mw-Sz}}?j
zIC}oyWUgWzF5&W5l&|b#bj}$=%Bb_23>3Z#jo#Y-kM9tD09_S%FX!f5TUwodE1VRy
zjoP=bm54WlJVWL5Ab4aL%F!L72}!gvcf~W8$n
z2-$i)WN(X`ugg0-xTXWtK^1hxRt{ESs7+Ud+h5K{Sa^`Vx%S0>m^E%@3P`*+$@=lr
z?`PC*j0Yn;{D(m3xL1yyR~6FN!jclC0){antPt_3k}fa+9gLrbj3AD5BT+WqgSD^RB2bDQQEQFe;tjl^wXI2qYX&`bSzO-r!EG{5F_~Z+r0xaG$QZ=YViD6N(ey)!@uo
zTZG22xl_2qs>5kt3)M+Beo=$Pu_M(Lpd+lVmF$u-_x|x|E!!lv7F@tOhGR9!o};zI@{T84t9lhfqeBr7tIULVQ351F{5}k
zM9i*d1y#N4y1(VuF4Irf=$P?V9tXMw20WIa#YC)ty>k@Bv#OrH@70f{Rti
z3mho5Sqw&M#uUp4Eokv9(J|4!*D)=$=18f&P@g1pRE@Ut0M`(7t*V0(h?RPASu?#d
zeuet$`@=`7*^Yd|fUwIG)p)8zemnf{Gx=}guqGWTt|O)X656|Bqh9EET6~#IUM!Z;
ze;R9^@3*IG?l~atJOcRn2rAf%EKn=smGhqOBFB{*t}*nvV&q{>^v1j5Iwbq$cjOvm
zng$IIPumJr>;0_k?YL)(BcluM?utrODrCr%2yzK6aF*xx*5DHlWTw~A;TN>FR#lT>O
zN#5@J97sw@<}7}O@U>lNAV*MuVWz)QzIro_+d^;99*w;DOOMvkDH6Nd!I981^RfE9
z;SBQ_;F^H0C0SU9?S24xHID>_6eZsx*{Q>tAZF+!CRA*nmFV$xOSmgpm8Pp#f)eCH
z-WM4;?3Yi@ym*<_Pu+CF(9^c3we)j+O+j~n+-{g)?;(cPCnv|ltag45HhmzLOH1t$+$86SVNg
zvu$`F-=`kZb3h!}c}-N~{?X(7>?CS2a?Aj2T9HNxoPc{8c4
ztddD4(XCcs{r3rk{44`SYdDm<>Jl8lwE$i5NfmE($Vwj@Jte&e3QVg)pumZWqo2Y=
zW3ttaBxfj(MKV$Y&2l!whs#D5oU4KBH#Qt{`pL~K)A|n?CAS3-^lj3JytU*)v{kCBIDpsH
z&V8$Z&SD<*?{h!6Sd-<
zC0ri$i*0YsipZteGKvrqu^-C>KM~(8$`N^f@z*7tN{q!;(zcTc^7%8@qf7~%RkC!|
z3;&|0<6w9NaBV?Xo_N^1Zb9B}9HD4B;=!F+U(McPfNAONFSay>AR|L4U5&gkoPZ*s
zV6kT2m_HUKjTl!o2|-sRnT-gCv$5S^|I7|_zjgjFG(M_BVy(uoKTnRJ)Rw@SM#Oq?
z5-s0f>iZT}UHkxg|KH)dNhu6oVsR(aimR1
znVB8OD=&(<-4*E@C6-&V!0;ZWI{KY@{3(Ckz?44nX}3I!&JJvT
zSJxr<;a2$%+s!-A9Lo7-#pO|VpDs`Od^AU?*5|8Db}g)Vym_|$`jWCQBDor|+y=XY
zEDyYrJ104K=DyUuMIH<1S0f8Q+f-!S)K*07bhR@l9(s5>P21D_qD55eJ-(W>Sd8!omg(3zS`b-um4!O
zY-E+l^UwFR%Qvgp=C}JjkGOV<_P<`lKDd3i@Hzd{k
z$7jc;CH!QEpMOpB?$Yk-8#jlVcaQe}{;>V!w)MsH$}wWOmuDBfnX{yC&ubnwX&YSH
z_uZC1bf%SEAM3WAKZGY1JvB?+Z+HGY1)5y#y?nsO;$M>DyjOI&wEdoMa+_r%&a90d
z_gZ9!Sh3vM$)^&ZcHOk8-Nl*{N^UFCV8uy1Arv;t;eOPevv1UMCm$JEu8j6ht7W&h
zl#r-h7w&!$wcD}Hn5{m2eJ6bw|9%mzSqS+SCzhLh_{@T#KPtH&DRcK`y{W2x6L-EH
z`_6vPq;rXN^IW&|+Pk>fpDU}CxH-7+gch4#J8b;u5<74IqM)*k$Njic^6kzdr$ln&
z#d5tmIQB`f9r(M@{pKx)q~(!aFHlb~;ZvE1VwJHC+l?&u<`b|AS^x!F0odzI;4M0GIa
z!@(Od<*f3}TK92))41Ii{OYw^@$JXDRSTA0Xq~XGz~QtZ>n+o|z0FH=vx3|KV!1V<
zUALrcow?#+jwxOCj1GHU<%o5!BHi;=t$wL_;vuVM)tkM{Wzi{hWa|2_yS?UkJb#_i
zC(jAT97l(g{ywfo^1*qxL~;j;<#v#ibbr48LG8^m*5}&(M7=lnd;he_c`wcxvvIp3x&7
z=N!^5xlfn7HFCY{G_vj8`-2XA*rEK;_hY2br|J{?TuqjB8<~Gh+JWbaHai~vvByLvDDR^AlJ9VC|fw0Y|z&6iHEvwFHFsgHl1VKp2lowF%F@Nlu3Ki7nBet0`=
z_u-wB4|m)hCcoP&VQb`$uDe=##ncNOd?m-=5yP#q#?-o^D-y|%V*8ly{`Y+~O8~7$AX4(ah
zq7~1DR~xq|+Izd@@QoGf53+1I_+91quOB5>E+^7=h*<9KF_LvvS8x7&;eOM+tMZ23
zsPwqygM=y#A1UXg)<|3Tz4rBw%EJ~T+^l*t7Ha}ylgsZod7{qg
ziR(IVIuZE!@x<6D=kOmR`{i%cO6xiB_R>{PMsI7>y-T}BM;3m3^VC<|&W{w!T{~6d
z9kHoeptJqL1COH5hI}tM^TRyN;xliaMNgeEzHNhBH7iA>^{LS3kh{BAo%P*R%iX+B
z94I{O(1s}KGLJs;XCga{63d-gV}0FzKYM%%PkOQ`_pbArX!}dv)vH=owyOJb%EZg}
z`@C&jvG>%8I}_|~?)3L8o5QV5!CTLIcPT&7<8_;;X4UhG^&KsiTQR5Q>AagxSx$i;abI?r!6u+7?$7Wr2<+Supn$|GrQmK59F=jm#lOWQI_
z;v-MS`>zw}J4P%wpnue*6H~2@KKs5XaN6;mrS8Xd?)1IbQoAK}b2Q0ue6Ib_C)@U~
z_TSObcKwKyA;ssO7!~HyeVX6X#0$?~O>`gsQJimM#d34)7<_m9(r4W#lxw^oG}-
z+NI1&nO0}U+qULiY*Db|J~!mmrIML&f5It
z(&4LnuYKI`=-ABUbu|toYh0>6I#hhm#;z9*SKpsttNOX5)6EsHlRe$$z+XBalH_QBeczp19lmxP`02vr
zk)g`D&HQ}khAC|qUO3%x_QSn-Cwy8pd-|T4hsy<(bXwXXy!I`UCDdb@I}v_X&eq{e
zF14sVA!dHQ+0&ycZ+dVexnDt>CX2&MRSP>4)yu8QvX-T!{fchMQM!ZA`mN(E4=MJS
zURY(A=jL6-yDhbIpgxWumvk3?R=X5A3cVbV^r-OGZo?|v>)b$k=Gf?bB^Jy+|Ke5Q
z9yNxRR$q!^%I4hxSrWnxbwkk~>8#SM|PgqZjgo
zI{sa@{&PbocT@1X%t&s~XLy=3mO(;q8M
z89U)+o62+N1c=+?sbaY;_MUIqe8bOm?uBR8{TbQhV5R*#tv?-@e&CGV3Q6qULY-r$
z`W;>#d-vMkmP;HbMIGpPdf}Cl*T2`Ud+hGrrVa1~SdqTd#B!gT`c!b;Z%o;a&MbMtJbN%{8ejI#Mp_-J?E!PbL}+gvgH`7+l$m~$DOuX
zcuuhNu%ST`xTRFZUp>SoR>5#F~KAFEJfrFh-YDMDs#7d_`Q+ezJ9EA;>n$&USTC7dr7JnOnMgW^`b?!UQIW;Z`{6J
zx6frzz$%UZqnww{k2qwt@M24Ge{!Z+uJf=Csk0j=%(aOhu6c0-t98@InhE-{&y&!d|Ry;QsVphmfLH8YP4Z$+mZ`T
z46p0d_pMvpsdFjOGwSu5?Re{f&BteDPVJl(*w(V@kG`W0&l2~~=7{CC9Ddes#pr-z
zNuIrLU4K#T>fr0c%ID}ge0AEi5~K6XTR-G&^xl*@^=@~z9Xuv>aHH>aKaKRey}GaG
zw)48(A-x(bixlZQS1h;5yZ)6ftgGx^AvoH|)yu+^V+gs^6eB0733T
zvE22GFW2#D+4yAYvGAe?+-pZPeBSV7&PUA>nibfTT&k(gac9L>7w5FtWdEdplGA*=
znY~-FZ|~mL{xqQey}|Z3{mzT$Qx}QlZaVR-zog@lrhRg^8=|ezCZ*Q)Pe;bhnAm3F
z+i^>6FK7{$9OJ$>PI|Md%W99=wR<*`?{Am7vEQV7e;yX;yI3rD(eQk^
z<$pwW(_Bv4_Oe0n+o*Svr~ON=I1J|Fk^edSLZ
z9(AhVV^!_LweBnTi{vg5%RO)5yYunL6~zy{a$Is?#>N`CFPA&E{HV*`e9cD;T|ed2
zDSZBQU(qUlQonQ4<~8)bZndRet7r8a%&k~e_Sd1s33bHtQDhV0XEorI>MytBqng!<
zS{PVxO75$NRwln$sQkOL{i(k#mQ~W0e6qS$$z(5^w_E$n-8{cegPLEa4Xssp__5B1
zcif-x?$NP_B7K*M4Fo?{r^st?jF{E-w$vb9sE{vE%3(C*F>~cr#|U|J3}mkGE{T
z@$I(ZJ1*L)O26HfQnmBF0I6T>;g#nS>J^9&SY1jacez;Zv52&nd3?N+8vEcWeTvoXi2#V(`nK3Ko>OZXk%x|=%;9p2>m+0{OA(;Gi15YW4y
z_jZxo6=J!c4i0}ce{tuw427+R@TArNF?i5oNbT-8j&z?T+>SKCOcaS9$6`_;dd1
zh08j&Iz4}fU6CU(!|#u8^SQ6x^!HaDcM!>?IS%1x%`B4MlXNktO*~`=HrEuLu7aN&uM<|>Itu1#}2ehD?Tpi>=lvR
zWU<^ywMNQEjkhdR*l+d1{#V9D%sW4^ZghL^cH6roN8IV5-m&k+^&B7b44!w}_15au
zpX=NU*?UA6(4kTA<5T@|l*m~M5PhM!qkpK{fdt$eyTxx
zn}AB*d3sDz{kdb?g8h4+JNf)w&cgS7qdDbczH08(JF>ceV$9fkHP5uK>L`-CS}Zr=
zPq%q^n~HAbs_AEPIxK!)c$T84-@wYfY+pD8#rLc2c5UULw5|8Iza2EBK=R#ATZTFG
znOY((d2HOP!70)x2dnqg*lTI`>GANQDn^z-zqUF
zHr4MO8#&ZB?~48Jj^zrvm_KFFu4*B5CdkLHeHHqwzr(r0{Y3h%5zGBns&|`m8}eAJ
z%=>Yk+VRHz$opH{$A61>vo~^MsTDp$gS{u+u0QOE`$m!B?Nm)dWQx1IHc
z;=y?fmn?KZB=--o+@x1daSv;$m$#OEPdHHTcvQDb$y-+(a=%n|f8ihNT9wVctcv`@
zwfxh1#d$BW{}6oS$&0IHo~%?=sJ=Z%K=Gs1R-6{eT`QK`;?m#47nKaK=yFpLo}+oS
z!XNJz{8sdIm+x!tH(YUJPNS|6aeXPzD{m1m4OF>vnTx+8ig<~aP_|D^8ZYu#GwnJY{6IO>xp*IoMw4wpCV
zeSh}HnK2`e9xUD&Q2HI(Wqc}8br7}8FBAJ5=oBx40{*(HeW&QUoKxIQEQ>hif63O#|5()k%QkYyD7_CqS
zOWaXd{wK=he=mjRnEtO@fLy!EULq-K_Iv-Qivszz=xFkE5{XA8iKNhfsXS1;vLLla
zg`-nti6qZ|DPBsa`DeC(*#c$@m@QzofY}0O3z#inw!r@e3s9e0E02hgYb27M?Ie-{
z=05fRhHU+hq`?YO1Y{+U%1~lAi6k!$V{x=Kmm!npB75cr=xF}^a|=*eis*m}B|I77~(hlGKf7%8}ex@JiBc#mj
z)QRHOb~4@cUkac+DgyjYIi+-jC_