From 98e8e0c7c9fe9c890f63d2ec625f1c3ee860ad0b Mon Sep 17 00:00:00 2001 From: egsx Date: Fri, 17 Nov 2023 10:58:02 +0100 Subject: [PATCH] feat: admin connection & google login --- components.json | 16 ++++ next.config.mjs | 4 + package.json | 8 ++ pnpm-lock.yaml | 104 +++++++++++++++++++++ public/assets/apple.png | Bin 0 -> 183910 bytes public/assets/github.png | Bin 0 -> 6393 bytes public/assets/google.png | Bin 0 -> 18230 bytes public/locales/en.json | 10 +++ public/locales/fr.json | 11 ++- src/app/[lang]/admin/login/page.tsx | 87 ++++++++++++++++-- src/app/[lang]/admin/page.tsx | 2 +- src/env.mjs | 4 + src/lib/auth.ts | 6 +- src/lib/utils.ts | 4 +- src/styles/globals.css | 75 ++++++++++++++-- src/ui/button.tsx | 45 ++++++++++ src/ui/card.tsx | 43 +++++++++ src/ui/form.tsx | 135 ++++++++++++++++++++++++++++ src/ui/input.tsx | 21 +++++ src/ui/label.tsx | 18 ++++ tailwind.config.ts | 79 ++++++++++++---- 21 files changed, 639 insertions(+), 33 deletions(-) create mode 100644 components.json create mode 100644 public/assets/apple.png create mode 100644 public/assets/github.png create mode 100644 public/assets/google.png create mode 100644 src/ui/button.tsx create mode 100644 src/ui/card.tsx create mode 100644 src/ui/form.tsx create mode 100644 src/ui/input.tsx create mode 100644 src/ui/label.tsx diff --git a/components.json b/components.json new file mode 100644 index 0000000..1da0ee4 --- /dev/null +++ b/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/styles/globals.css", + "baseColor": "slate", + "cssVariables": true + }, + "aliases": { + "components": "src", + "utils": "@lib/utils" + } +} diff --git a/next.config.mjs b/next.config.mjs index 273ed59..dfa9002 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -12,6 +12,10 @@ const nextConfig = { protocol: "https", hostname: "avatars.githubusercontent.com", }, + { + protocol: "https", + hostname: "*.googleusercontent.com", + }, ], }, }; diff --git a/package.json b/package.json index 5fed016..c9f2b74 100644 --- a/package.json +++ b/package.json @@ -16,20 +16,28 @@ "db:studio": "cross-env SKIP_ENV_VALIDATION=true drizzle-kit studio --host 127.0.0.1 --port 3001" }, "dependencies": { + "@auth/core": "^0.18.1", "@formatjs/intl-localematcher": "^0.5.1", + "@hookform/resolvers": "^3.3.2", "@radix-ui/react-aspect-ratio": "^1.0.3", + "@radix-ui/react-label": "^2.0.2", + "@radix-ui/react-slot": "^1.0.2", "@react-three/fiber": "^8.15.10", "@t3-oss/env-nextjs": "^0.7.1", + "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "drizzle-orm": "^0.29.0", "framer-motion": "^10.16.4", + "lucide-react": "^0.292.0", "next": "^14.0.2", "next-auth": "5.0.0-beta.3", "postgres": "^3.4.3", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.48.2", "tailwind-merge": "^2.0.0", "tailwindcss": "^3.3.5", + "tailwindcss-animate": "^1.0.7", "three": "^0.158.0", "typescript": "^5.2.2", "zod": "^3.22.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7de71fa..d6f2a32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,18 +5,33 @@ settings: excludeLinksFromLockfile: false dependencies: + '@auth/core': + specifier: ^0.18.1 + version: 0.18.1 '@formatjs/intl-localematcher': specifier: ^0.5.1 version: 0.5.1 + '@hookform/resolvers': + specifier: ^3.3.2 + version: 3.3.2(react-hook-form@7.48.2) '@radix-ui/react-aspect-ratio': specifier: ^1.0.3 version: 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-label': + specifier: ^2.0.2 + version: 2.0.2(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': + specifier: ^1.0.2 + version: 1.0.2(@types/react@18.2.37)(react@18.2.0) '@react-three/fiber': specifier: ^8.15.10 version: 8.15.10(react-dom@18.2.0)(react@18.2.0)(three@0.158.0) '@t3-oss/env-nextjs': specifier: ^0.7.1 version: 0.7.1(typescript@5.2.2)(zod@3.22.4) + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 clsx: specifier: ^2.0.0 version: 2.0.0 @@ -26,6 +41,9 @@ dependencies: framer-motion: specifier: ^10.16.4 version: 10.16.4(react-dom@18.2.0)(react@18.2.0) + lucide-react: + specifier: ^0.292.0 + version: 0.292.0(react@18.2.0) next: specifier: ^14.0.2 version: 14.0.2(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0) @@ -41,12 +59,18 @@ dependencies: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + react-hook-form: + specifier: ^7.48.2 + version: 7.48.2(react@18.2.0) tailwind-merge: specifier: ^2.0.0 version: 2.0.0 tailwindcss: specifier: ^3.3.5 version: 3.3.5 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.3.5) three: specifier: ^0.158.0 version: 0.158.0 @@ -159,6 +183,22 @@ packages: preact-render-to-string: 5.2.3(preact@10.11.3) dev: false + /@auth/core@0.18.1: + resolution: {integrity: sha512-L4MehYt/A7e5djsEid3jTSkRZ8sysxbirhmCXqSCPimGoFUtMCwTZrpzTALTSRwXGw/mps5fYlHROo3UQk9B3w==} + peerDependencies: + nodemailer: ^6.8.0 + peerDependenciesMeta: + nodemailer: + optional: true + dependencies: + '@panva/hkdf': 1.1.1 + cookie: 0.5.0 + jose: 5.1.1 + oauth4webapi: 2.3.0 + preact: 10.11.3 + preact-render-to-string: 5.2.3(preact@10.11.3) + dev: false + /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -880,6 +920,14 @@ packages: tslib: 2.6.2 dev: false + /@hookform/resolvers@3.3.2(react-hook-form@7.48.2): + resolution: {integrity: sha512-Tw+GGPnBp+5DOsSg4ek3LCPgkBOuOgS5DsDV7qsWNH9LZc433kgsWICjlsh2J9p04H2K66hsXPPb9qn9ILdUtA==} + peerDependencies: + react-hook-form: ^7.0.0 + dependencies: + react-hook-form: 7.48.2(react@18.2.0) + dev: false + /@humanwhocodes/config-array@0.11.13: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} @@ -1118,6 +1166,27 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: @@ -1795,6 +1864,12 @@ packages: optionalDependencies: fsevents: 2.3.3 + /class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + dependencies: + clsx: 2.0.0 + dev: false + /cli-color@2.0.3: resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==} engines: {node: '>=0.10'} @@ -3303,6 +3378,10 @@ packages: resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==} dev: false + /jose@5.1.1: + resolution: {integrity: sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==} + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3436,6 +3515,14 @@ packages: es5-ext: 0.10.62 dev: true + /lucide-react@0.292.0(react@18.2.0): + resolution: {integrity: sha512-rRgUkpEHWpa5VCT66YscInCQmQuPCB1RFRzkkxMxg4b+jaL0V12E3riWWR2Sh5OIiUhCwGW/ZExuEO4Az32E6Q==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -4110,6 +4197,15 @@ packages: scheduler: 0.23.0 dev: false + /react-hook-form@7.48.2(react@18.2.0): + resolution: {integrity: sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true @@ -4542,6 +4638,14 @@ packages: '@babel/runtime': 7.23.2 dev: false + /tailwindcss-animate@1.0.7(tailwindcss@3.3.5): + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + dependencies: + tailwindcss: 3.3.5 + dev: false + /tailwindcss@3.3.5: resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} engines: {node: '>=14.0.0'} diff --git a/public/assets/apple.png b/public/assets/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..afd8802562e952d608d1d8abea44f30582d596aa GIT binary patch literal 183910 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≻lnx832Lue|hX4sTC)a#X;gz=`h(|K3p=Q~bQWb#+Dw!gvi2Js9JF{BaPYFKt^Pvccvc=*?h=j!7 z9H@gjggH1(EfD14XF=lnmo@7@f($##T3yT>tws`&g8$`Ze@L@ksQ?Rw^1j+MrjFiU zF5?(gmmt|8D0SZoCp=<^c7y>bV+Qg&icPnVM${}_3BM=pPGqIvj>HkPpn@|GkOlaR zFrj&|Q@R{aWR}q?UoD|zQ3Y^gJ)DQ8d|%|U{+RKhxQ@wRh?ps7Pc`|skEfnCA$+(K zDE&wBU$lVBs}MTOV;aFVX=gXvBJRc5f4&dLIabQ;km-VXT|Gqn45nWxMO|3!pShqA z;1ZdIKpo2cNEoPh771(Wcu^8fG(`Z?qtxv2vGbZ$$Ze^;S4upC3lT=?2^_n8Q4|Ix zODF(rZc_kc1ZGD`hn|uB)F7~j=K(C1PMRSbQ0>D|?tN?Mr4JPyfcgBZAz8pcX$xHe zg1IyVg>Kp!M}FA8`#^!>-63D*W^3Ge)O6T?rsA#1RfoDMNrwp%BC|oE4-!k!P$5Vm zW8B%zEZcn1_qh$!>Lo2r%l6n_QatnoeXQTwfjgjJ$w%#9AXshwmB7L89#$gKI|cWt z;UkIywK))}uA@z#?RheW0z9*9RRA)>9$W~N#VMjL=#2_-VJJ&mP6ToiQR|l(bPp=N zb~WLG3uy#2MW{rqn)&Lo(URAKDFeVa&7Y& zA4jJF#>J^fo&$^NO(W%n(i}#%Xp`Qq!zx;W!76N4lv=_HxA-2k1Y@r6;T^JFvIG*v z0p&lcF2G^s%VaZJ0Od<$I$N=0+D+%7A7>`AL6>jUUPKh6yLt6pB(NRW)wn4f5rGB? zf7OzmJ}yGG@ET%x<4OY%<(ce!%HYJ*k6egA=1PSeeH1`*%`;N(iki!Qmc8O7CC=cjtiE z$skX=_k*?4w!Q$w&bC}yreFc3M(i?f>Uw~Y>x9Ivz{+or>ug(e77C>32@AOuXJxkC z=P;D`esB?357qK+KNcT$I5)cYxE;pqq4d_$#h3I_1$G`vfj499A8NT8`T_Z3hO zOG?t=AWW&sV`Xxxak~uw3GLMi{KH-v!Hco5EyRP_uFTU}!>8RmAs0M@h};HB%wo0m zTJSabayu)qfVfn6K;RGKrVpXhH!yB;K^Eg8ILxQeI(8P1;&UZt^6vHYjGxJ69<0%A zRR&YU?|VUOj9r(G^KV~^hW~Qeb?iWi2kbD=aRU>jFNmM*j^1`1<&=E2JS@+O%7=4J z$Zi%-+d;iw4(Q)*f=-ozgj-;iZM8P??MMGy`V<)C|H9eT(lcAT^w=H@+E?Rn&0}k$ zB|x4;RizZ{j^t}M6Yr*Pgtx_~g#Ow#a6kJb{z%1Sg(yr}sas5VGRpqM)Tf6Mq3S>l zqUF8{G`RGbfrOtOce6PM(O62)65>-w{?x%vU~uv77be7N+?yFnNlQ%q@5>@Gn%$1b zu`NCZ!T`$PZX}woTk?N|x3PfiN$%|||9CRX$5VK)dkgwi$)MItMyal(C58&{xDyI} zwZ-HGpE`tS5SLKV?3Zx|JN8kL#CuI@&x3uG?8GWsRpdzm4%i?yR5=B)w$ihkJ9x7Ai5^3O#vP|L%VaB^(O9J&Pe znl(_SHdeo_O zE~(og$by^|s8?C@qDAK*(c5{H*z*TD>WzRojDjEHMgCbHTl72*QRr%LI1@RP?B>py z0cgu))3IMnd@>|V+d!DH-KdvQ&_K+{dTMsd5Kei(2jy4t>?)}hs~s5x_1lqEWLu=7 zJztDFOXoWJl~D8K9XLpY#uc23ZfQ|-rjGa zZaQX6?Gz?Zdh=s4aQuVu&8Xw$f5FRGY+C^6 zmGbtUBJ|0o<3}GC*py@;0W_EcQ48TtZ4&LU0+d|76l$JD<)T=W^27$nLJ@3zPzq>V z@0fTKz0X|_7M>KUGN5e_b?0y()Q>(Pv7!A5@$Tmj$z^yxQU?K49oWhuTO2NpJ*R4< zmuz=$laGt`XvWH)Au!vhV#pbVL!~s*AXg$QN;Nb9vsA|+%Tryfx%l+G`+ei?0e2HW z%Y!qzS9le1@M+kz8@12YcvH-S1*PM7bGFBp$h`=11H@pK@rIJ9GR6T4QJ+#^pG|eoc%?H^zEnXC{Y#6L16H`h*%Awp?2*3I2g^R^IQ`8@A z=a{fT{kn9mrQ*+6{g=_K(XX{vubKcQBC#$GQ-%UH_DS4m+0fEP3Ad9p3+6u<1Iy8f zGeCKDpkz+NhHh`vB^B}%dgoA!p3wEri)p8tW!;E~phLGdTB{w)*bJN9er|l*Vhz{! zoJL4Rw7`9}z@ucMeKldGnB_)l{&e!Bgnke!v6$NOY zQ>f?qAXb_0pO~@o)`)_vqHI2Fe#dK8d+ZZ8ycIt|2hgFhS4}gsT0XW97TKIC?tAP& zkoJ7W%1Wy9#7MZ)7=pHu(37C4YrCynv`PDu4;4^?c^SHMN|Zx731UO_KS&^{XNG1+ zf!yv+hG-ILE|TefVef(-3g%&E$HM4C5~Dkw#q^N(6dW&PMB{WLq&;LcKN05D*s* zWP`8b0u|~4riky>vSL`v*yYS{Dl!eWEkED*_Q7A~DXBlpQ!?(KYTR=^ z?rzd2UhjQ=>D;9ce*Ev|*-L+^_nrOy5BJ133^yGriXJgs{@LS%;Hq|xY5b|4k*bp5 zn6T${wxLmF1076zv~S?HtBiaC#lpsD%EROp4&VUx!4XRJ21+XU)aMRe1Ec&n-Jm5o z0>Xtuu^*d#F;%?ximz~&_8xgQA`e^*u;olpq&6yZXbch0-lqS(g$dluS zo3^2?H1V|HO!93I#%^)o8NtI9E@M^8Elfds=G;JExRKMrx2neTkaYtO{@8}F!RO*R z5=XEVlU%IjagsQhDe`>a5y&EoL{XrbZvo9%+EBwUjRVoIx(>P=9_~inHptR&)LsV} zT3Ko$*$5^>ygZNIgu;~Fc3fM0s1h0{Q3|kraem-s)xp2@Z+n|%gDiK{-bQaHgtN=p z4xDgWi$HCSaw?E9hQ!AYR1s?T#6?hTD=J4rx!#aZq>_ppPJAw|!7Iw!Fw2VpTWv4i ze5fGFqgIt*vPD7qv*5xVA0wz{^Ogl!T6X? z_rYocU4WoZlQu|dkVqc3cz4x2>ecO|DO4~$A_G<(C(i@$(lj*n^yK2q%YC$eAwKmY z7lLX?3ySydgtx`GA7_-UoiX?;Y_~${e)e+7YDpcdCo9Sl7H+N5-S&cLzqZ~dUq60d zs}|w{)?lTp*C49Md(uJ*?{>=@_`eics(*$P`r3OpW2l)J}f?fN16JP|inFO4yI+hK@a@R7aO zfou)+zx9_y9@+;!F?ucS93d5Lgj=xqu*&8?b^+Qw!O2}j`;u4-W8^GYNsoz>XxVsZ z*|@W3uodzEdrBl?1?&__4xsHclLz4!f!v&9lm)ixIgKZ+K{2-{4oS-pcWxY9Uk^{g$M*6uXKh(Zao}`p^=9|;+ycG7(1t}(X z9zD@z6aIP*wJaIC1nztx7)(k>YEU^^tL}C5ph>PAcDvOAgM+?W1z^f5MGtD;4I@-> z?w?)j7GYj-XpZ-T(;@DvcsxvL7eODmK)$Qq>a8U!V9PT~bAwcqe}idViu_@ClJ@Dg z*p>|a3u35#n;{5BuZn9D4rdsdtnhd>d4sC6W~V_A#ylexKP;C2XBW6 zVLatBsHqz(EEk2~9$eei&DW^+@t!{+oelDvZq7I>&IR+Ddm>$TO)^fS0^l4NJrkjN z{o?p3*bik6?C7msHuS8yGn=!VWKJGoqhs}p1%?kY80Q%h6+f5GP67rxuor@(X5OTF;ZVaKY4GVgPm>4LUtc?mcSJ-6iG#ub@Y5ygpmRKJg{20kzYU zacvufrmqtLdcl=dQm7E&C zcoa56HUhh%NBX<7^#Vw@VH6GB1>`O2+-AbG-TC-_pq@RXDo60H+gbL=Omo8T^hm zX<{E$5aE&GnAWh8#6WQuAn$1Y$-K&NW58zV0a3mkk!hKw9fX} zYP%O;f=B)1pch>AG(f=3U6P6zO z2r>Hf=!xLPC^-UD@Brl9qK&bFzAnCPuTQm!o&Yfpa6i=kz#V~Nlc>Uc>~af;7q{wH zF(|e4&aRm)#UEe8(j;=oLCw81be)_s3T)s-=g4B>+xzyz9S6U|fR#pwts1(=h@Ty! z-lI%w*ts7jVkFUU>L-=YTXW^7Z-P2VJ7T45!$4NZLRT7j51F0ym+U%23UrE06NjywZ4gaKYcC!&J!=kEfx-FhM#OfJC< zgw1-!45k9_wxcDHSh(*y`vnFs4{Cpg+Cc9wNl#*gTZi?u1T0sCD*CHw#}B**_bq_V zC_raU#iB}7!8%*yrTxdJoz~dcF{l`jmV9h#gbM0cJtRApq;svU72RRE?M{UMI4m_S zmtl(rRbsJBL7Kp?bW~C%H)Rx1Vn_V6pCC^xubwBVmTgEpc5El!)$pi5Cr%4%6z-x= zz*uUVTunHm*bm*DuWncLYmX3*4T`en5Gy1NtWbG( z!E^Es-KO4{zjuFp?;*4-hG^J2|9nW@I-w^|%lxPZkFN3gc&TRBJ1t~&qQvnU*;a8o zWwExo&HIcE+s3GqvZ=AQx(u`l!sLKKFPM(_tRN%?l5!gT==rYM zGK3;#W8tNIYEXeyL>br=b!?B7*`p{hfqpfqc$uu5-mHM_sXO^85$aB;$R^p0n@LB; zE-tSQO`bi=UG-da(o8mTA9pW(-du3Yf(Tj8U#YE$83aVIisU1O_?bnzN=2ye{s(0h zR--hO*bixru-V=0AF?TB3fBS6Oz7fY+VzC%R#Q|hOZLyY( zU1mhkTu!wBSJ|=@_CHF(;L94%Yfk`4S54We>_$4grf-BPw}eO`lhPw~E6Rrw?^U7_ z9fDs?@OkXAQ#}xYdi97eS!A8zMxrQ!=lT!>%=m69UdIUqarLSR4Ek?4k(2yj1ExHi zfNH%-(=U=Q$q{|UbA7{_$44Qndl^s!5Wue&Q3#Z&u#J_B&y`K?Rq1Gk=DIi3pu8QRp` z@ke6PaXG~LC!W4e14!?vLlaj~6ZfO=xMaL`FWu7k8eoGp1B?xUkOpB+e^wK7G~ee9 z5VQvllSv=vpO5BKE{P8pl|NFRG?aSqyXa8L_|O7nD7(x(G8`7U!3z~NQX9KU;uNn6 znA7dP0GlVCGk`Qz-hE4ipjn;UOL9darC_d2JOwHqp2b`jCX4d6Hm^VxJPS-WgMW95u+v*U`sQ9&T_icU+njC~a>a4f&M=(0 zj2(|0qKU`yaOrjv9wq*7=TJ0}yH0u2-lB&N{ERmgZ0d41aT)a%RzdKAy30hMF=v%? zqFuV^c;c&uwJSI?IH7n`-mr4AcxXMZ?5axaRoYe+dL?8^bY2O7FPLdoUCg6 zA_2OMde1PYo$0*LWa<|bIhp@qB1vRMGyUmou<-%KKX<|QWD&=knF5StE=NSH{0)+eZ zHMjLmy{`MiVTNM>cAV8QSoXGBQ=*ww?X!y3_xe`q&iZqrohOQZMG1M_`Dn=8-pxcf zK5oA2+X?U$ETilIPO2-_uVLWn1sJ;>PN6CnT+rk21-&fFtEC6|Z(uu;Y+6aC#{C@#!H1ZO#~Kf8%%g7%9i9`V|oVBrr?lq>pEz7($8N+a$ATY8~80|mk6tmrKz5=|H#&>e4F<6X!o&=iTB(MbpK{VRxN zl0-#_S0`%>^$+WEpi3E04i$q7;`J+Vlq3p67VnwE`}zHn)6BN`-pV3F5=Q@b-{a7%0>Orho$e7{9l23c0O-&ln@Fsrxn z)&O)1DG7Hpe3Q0xvSL*BcW+DOG(z9-t<-S7Ja`0@s0Z!HkM|~+ z<=4CmYoQa3I}r9OGh;YC+5MBL40GF2$SBs7FiJFVgia6%R;PF{I6|xOL2-uH9_8_F z7n3b;{1LLd)X8p0QA(4$aC=46?#UD>y&Q}$!8gMqOP7K*Y-!dnZF1G`6~F3F`dc+8 zhBXh|G466;JwbnC9^8+88hQT8T;k;7bq<<#=a9jQXDu9*DSCk9w!8+%RyzZ{HY%H1YDg zA3%KB1jJg|WPycEcZ1`G6PG4KzW7a^aC&u%~oPZN*$)czc(5OWyF*e{!sq1E>v6}ZZ`<=FMj-m@&CzO#9;g_&3b|CT zJxOyn6H6qilGU(d?!FRHhDmqhqnA21xF)YX0#jS1rihWNfkiA5_2!_(R8Q5MgBbmj$rw?>ZK$@=p<93v95ISk*b2GwhbA+g*g|3`D+Sql z7BRX=C4^(shHo^{_54e|OH6}rk!Dx_SilhmOqSUK&4VitQ)vMJ5JtO9n5nET6uo-w zDcEE!X>zd*I51OLkCeZ7{lFiP5Ys*xXthvN4}t(ErX6+@PumUe*H%3v_-h7l(C(|g z!=$JRP$avN0uxW$1z)n8_iO(prxE{v4fxt4s4!>6FdH~MkSk)2PB=m?mBPc#L?7@S zZ(0Abk)&VZB(nmdFh&P~xwb{jXpXJdWMQHFtee-xPj%-(f)tmUsj!okdVd#za$a9O zNoJw4?ky!tmVggKNuJ;qD+m>KO;#kBZ`&WRn*pq*9ziV9(B|P-y07f%WHJ=ojy%ga zKh*T(9f2KEH{t~$TZGh&y03IC-5i0VkPT(&1qRE_%)e^_}dDYkKeeq-u9*G)VM~zOkvlV|gpL_K?{73nudrPEJ6MbN&r9DM^ z$GFH}s(k})NrVhk`#pfWA8|!T{w2mak*4K!>4gaxJa-__dT5kKHOdQyqsDZ8*Q+7L z+5Ix|ArS-E%RzZu?nRA|S2qJ>@vA2AAFn@+Ac8so`P5!0gQdVL95R2)^bz*)hDo2= zXPL54RaDDxMD5i@LZL|5@CE_?pn`*q3~;Y4-6(SZWBu77bnVx8FYs3^%MaF8k-x&) z`60jEeqS1CK-j&(HmCAkK%Ik)ukJ)!TXT&RO>T|5CR3E9bx2l|y9tD%lI8&CoQ=zB zVt2hEJd$i|n1M1=P%KGNix9U9%9(-EJhMs03sxzc1N$@4ayy{Sq@Bi+_^)aUEr2-WD&LNrf+_C+Ian$}WFVjPTh8OiP-@W$lfy45im*Jt#@4fdZ;hnkLX1+7?t?vpx{^Gsvw?3LVt>Nw^R#M3KDO)lO zS370id0KC5Q+p-d$s}`?K;k~lC_l*Nt*KMyzWwW_fNfVlGXCc6ufBZu!}olKTGT-m zZ?|7AYSum0ik^oLMJb0HBA<_rz&%uIFWAeEhy06ttmto;IsWe>*jqWJzd&dl6%8#Z zOR%)RXJS%hhDv{Qf%+f=rrqN|Q-AB7Qeb0V#~U3Bnx&it_)>Ouvw7PaJtswGpe9H} z@LMfLa57|hHN02R*#y@sxnypf)K|zI1lAIw{HUAQP%`r1>!JKAj&3}nVz^{5Or*UCt4p@938CN-M>oFE+}%QH8M zyFl|mikA``fUb%JtR4GN(pvEH6{LHKTbQ)m(=g%{vz;lWt)E@1|@Haeg+i5xY_)#v&MdEFI;2Y((4De{;6*VjnMITeK$c*oMhmq!QGMT&|zrq zns)sKisQIz2}^A-WWrT|w*l{mK;sDhG>|Npw7#)+ zwSV7-sGSWUHU%NJF+>Nl-*$gf+HD#IW;4#RP^*%znLy=-DH`pykU_wRyR;K>G&T-g#SMc#O>@K)9 zuOE?&Q<1N>J8;7!`sJGQvn{0ZGlu9)kTS;!QD&q5F4XaE)+x&*ro70Y0)tvq4SuwcmZx*I9wz($?s6V8^#rG z7rr8*w0i!Zcxi}F89H1LzYMgLjQUnA9+8D(+ zfPw;%F`@$94YULE)QW-#0){k#2(+St%_!I)An@%v#OpbQ_kHjC*8ja)D=RH^PSvhG z{PwOoyQ+9mDQ_X-yLS_2x4oF~YG)-{^}{(54Xd6{I9LROUJqGL=|Wt_wG5~9QR!RE zO+Y$0XTilP3#ge7!=i&goT zG$C_V?Ft=PSj^|v@KF`+Ok~u(frX`wZ$s%*Zh{w3=S4x9nT65RwVwUYY?HaakX=NDf#Qi1I`}mk;LNX`S0)H|74UuNc4X zGACS16S!rZgdp1dh_K$|1fK}p{*XOx#R6lJ*2#UwZ1BbSeA3GtZo;_ocDl6}5R#>n z2Z=UPg%O|8=Wo?0_i*uS$BsyWTokT zx`FYZ_So0opM>w8&G67UO}LxQS}v2@c!dsHglyA0VS)G>(6kO{N`f5PU6S~Jt|I$H zS9oIsSIa6hR`&RwT`)LEA7X}JE`_xx+76c0uD~NNXMfGgcY)ljfFs!WFMFgx)`=O= zqY6axGDq!)!!WrrYU<#&jDw(Mb6_rK?NFH(uveF6AMDHhAH*|->*0|nND(z&z7#*b zvG5bEoCT>hY)Mb+0S8a+3tH$- z)Kn`mTNrUMvd7m#fXMQXwi-6~9K!fh^K8_4RK{&|ZdF zXJm-Gf;q7H4ufPu#(fv8M=1cWCn4F_&X^~>j#G3~!D`scGYz;j5xB&tR=2W<3;sk4 z`G58a_had4x`%Wp-T-U0HW#_OU5AH*D4*_&%HZMS8x~- z1g>IQUHercv&70RPWE`rUXbg6K6lUp13muP3a+7@KTCI_*Ix**f?jno(;l;FGj5`- z<&=1Z&=0^f5m|>~2u!0I4$!TPIA!Y)v&|o{#|!rGuwT2!!4b?KFpZV#I}VdgCg@PE z3*5KY?H^+a(d(z1wLdX)mLP^x&3Os}@d8lf*9NCFZXL(R$**|gQ(`c+TC~$_*3-R^ zM1n^Ve72&EKY#GUkx9-Gj{($VTSLW4=x$p|5&Zg$XU~YyQJ7G_XBQ|^l%!m|7H87L z5ewKgGw?!I8%_OYRh|UbXn?5*UpW zmxE-_Hk%7C3r+EsepB3P=U@j8I_MxGi4%MfA`KH<{=YXs(!TFgcNux4B)u7s2x{@q z_1>Sx$Ns)M8`4m=RnK=%Lgv^S@#!|lPfygpz7L0J96}EOHkRik4Zg*c$a=-JBztWI zsh|TeD%N>}Y~TIG)}LM{|Ibo+o;LVz$;jL3+SbT84vK>~{g#=ZE+GErS@!pR@J$C@ zsqL--U9}hJF}k?s_(Q9^>%{Hi>gxI3!ziHU{b6I}_UVSE6_Pi2X=Hx;mfr7h7!6b?#TYhYwE{2s#)Uh)w0Df1~9>~REXyx#+@J0APZ z{?rfo|HZ&%IR8g?qHC~;B|D}+zHfA)J1*5K37lUS2km&*L!f4T2)^gOrcX)WRJT%L zqqz0$^bf8!z@ugDwE#1QnB)cCSttWO9G*h1+N*dS>=4DZTJTsm5$LhX zBpq;%KS2|Hb-{F+U6cX4f^+KKWzbi8JH4j5 z<_MhWF!Vyac8(=2XlGl!>*v%nhi;fy8v!e1o94hldb_Z&7Tm`LahNbD(ZpIEY4Ap| zEMyQ?<4-BP(*o=cF%RM!B5Mk-Vn}+hI8(4R*AvdD$f%yrLs?ltowKs`9HBafNks0O0^w{ouL z!t+8a7!;{-U-h?(nTZQOy-)t1ee#_*tdMyFb9}+PC&*Tb_3b0aLrhTDS&B)LFOFtUKJ-rp0);rczf zs|~y{7etDd{tBue2-D0k6WG{XEtKX~0-HYq$;Tjn*W0QDn->ygua^tMxKW@#q~T76 z#hWu?S=>_o(#eN|Xd%W9uLn0On4rz^T`xI})4kt6AJ(zp%H8m%5U&X)e7KCM53zo) z1vs+b;E4z+g4Hm5Tl^BkW7eYQ*K_W`48>6g`Oqo8#;~S}UlvEU<;$iA8Ux z&x%uLNw>X>6tBi2N5bprG|RN4;8H@he3@x>=aN!g?C&OsU@RaE}8w6 zpskJ{UW=b&I?t9q>g{<*auYPV3~BUy*u0&I0V3gAJR7pa)j6(nT^+vxV#7-f;IR36 zY)VZWi;4nI7+5_r1AL?(puOy0TZCnJoTeIX#8Klk0_8m<hG;348`oNE) zCn4Vd4iuK1{=N+d>Wn5yhtbDEXWfaiCBPfL*T^2p-`3t(*N_KTuujy$htQIDespU?AkOA*98zL!>>`^3 z84p1Z;RXX<-|HBN&?rSd`ye-wsRYyIjttaJo)Rx$B`(s71HPW7l5Sw)RV317E(rj{ zD%0o-yhK^YF4*D^A1GKVDC}C+Q74><;RE}+=QhbbaXYm1H4?{V&vl-5` zfanvw$`B(%`z+Nfu=vgWXdlDr&4;+vq;i;!7Wh8Ikb!?>iw6*^=U3?+H`ltgZ)-E5kXx8J{ zw{QlSExwE>8uD|Hgb9^k>a_r^k%u>~6>h_42`BqT0nOG!MzkzxWCs$hlz6WAGLS0I z0**gOg{8!`nIL`D6a!%y?(yYo8^yG@^Z^Td~;=vE1Nt2`}c`kEVlCdy@J(06-;;+B?e=~8*_6gr@=4mI@ zF8May`oN+~XDs>iq}M*%dGO~o=T#R>+^#%%BYVSH>x_$L;TK*t$pl_o(H5B9f2^{{ z_wn=W{ue`c2O4xN44ae$I|h!xnRMU7>R#!rYAM0GY&d}d1*^2Nv0Pwl+MOJC-HDnF zhjocsITgmJA+AS!6Zkf3I%l+~pf*aD&@5JG1bW~mJ6S1B5%!xvn-C>ZKBgE`OLtG>* z;y#5hEt+A|Xr$0mVXo`( z7`_(RM@nE6X07dT#nZIp##OLxw;Q3%^&rMHJceBtZRPJ&Jjy?O77_fM2VFhEy5et* zU>GrnKQc$YW;nZnmFZPhVoMHQk5ynR*;DWcY96re&#Q)55SsxlgO8ebg>kapf(jcz zvxCjWaHgylKEYqsdrxdCTw6WgxC5f@gU!sJMr5cWXWPB2gO90Y@J(;j4dKhlA?p8~*)q%m-ee#RO!`7c zvVVUiJi#%7@F6u8E@sIsfU7)n9$@TqXW3gB7N1!?QSS$;+P<$BHYRVe8N>?!6^+8U?HtrA{S>!4eTm;5o{l`qM2geOQMN;KJ z^gULAWO7(JB}&|oPW<8U5Yvf_Qaz50n@QgQV>XO2mO)}XTSo| zL3~D10#oc^ZV0HIj1!1mK5~zQi}UD)-+qY!@Tdk~;}H9nvh8 z@nM=Edq0H(*E@~t?A1!)Tj3}qFfg2eN7~az7vm$doNbxN=mG^|90YRObJtt;;}#lR z%H;+|zB6jS_5g4v%@t0~ZrF{*N!kaT7#7KDFiG3n4t6sn_8B**ft{Y~BuZct+mWR= zMQ0w8>)*t~M^0kI|W9VfIZlY#Aq2eL< zqZ$&sd}dctMd~=Qr#^WgG)k@j*3?usg4k`tg}u00n8Awj9dRb)3P@f-3R{K>(;K(+ z)F(k)KV}zd<|*i^_Fk>DiZoYzj$xak#q5Veyc8zzGLepz$Hrku$;*vkdY64r(w+du zwO99gQA7Yu+u4#MV4{*L@#LcAf>YL@U+X)3h1tR;xlY=1MC$Vh4us4gP|Y$luD@e1 z<6UtrEc>~QK%;Xk2-MvY&d0c}>xc<7>sJqs9}_0(QkvD^*|c}6SQcKvTS{n3HGc#| z%L37Fjvj`uc68S-`qtjMA$PDGGF<8qgv}TzhOecA_<|DC&UV;Z^6~9-mL5``^{>V$ zk1jZ4f!G_Ar{gB5d+HMdE)xq62nWeUu|1h=(eV;}`b8r;cIcNK^Zi{4Hr(vt!7E#c7F>X zcsiJ#zy6J!YAkSQPg)5Z%h4jb7gF^k$kF%Xq`^O_l)Viv+7l$65%b~GKrGMGLKgeweB32hjamA$lxf#Aaaa?!cb<5OAe zDct@dp#m1Pv&s}Wv0LC!+_#XTKLdP+AUOMHxMy-NW+(gyYN?7$Sbv--+6Q(b2=>{F z4ch$z%zZXX;7cJpAw5!-t#CM3+@X_4lMo^EI!w4kSO<-l+?zg!(NeAtZiZ6aH;?4y z_<4fL3vT|j?vzkFWv~;o>)Nfe87fRANKnvLM9h^^VRWUs;wv3Ct$E@h($&eQ0qV80 z;~rzmAbZb-6NuQm2(kBdK{`Y)xT!h+(Zq!<0FZvgDpXCBW|bLe;XcewJ*5+jg1<+e zV4v`K#KfR;xc65$;h_u$Jmdln!RA1kuM@a$dL&=FpfWWUra11K`))|HHX1C!J5dkf z#PMQbCgpws5qq+rAV;*Ukj7eevxh18xU0ba6B!T@+q7=S^(i1L$@i$_3_M{4AT9{c zwu2l6d{$BG9=JVb$M6V9fP(}bKETA=c{d2z{gNA~9SEfQDu=mY*qobHG`!ZcQoJ07 z&CLK^SbnGjHW}7qU!hnh{CP#{ZT?T8uirpO&c7?+p>=Rc9O;^B9g(OfXr(kV8{iu{ zMPmp;^Y0)|SBfE|_G#<~L$VP$?4~CN5+$%}5#~VBcYu_s{R%=Gk4&T**lp!ZVpvO{PGPWr>rqCMJP(~>)X!ltD2TFrzF9194pcwvC3&PfO1 zK7}S|l1A*jHxf8r3ldJGthLHuNSiH6F})0~;d1?81n$?7sE@na<`?F?z+8ayg;9H$ z`hhjF>>$=N>GFXt$<(tuhi(pSM- z*{Ti_5uIKRYI)+AH{`0&nc{qUbZbm3^fCj?IJo?lZf?#nPAWUXDg>fqQ4%sBlaDZ^ zpfSW<*?tGv#1@zs3BLYt1!M(FeY9r;SNsmafs3#@#WuSW4KnQh`y4Hkoe*8ggSeU9 zdw<>(!3rvx8>i6wJ}(Po_GyA0G?d+Jvc7c$l9ckVW5c~ z$wXbe=i_8P%F7~$Aq}wzd$mUgoPS}1+tuTbL688v5oUcELI@FR%8hVOsMhsbm;g># zdo$RT^+E?GC>cKU!_b7iwi@W>OnR$bD@YF!pBRUb^@Mu5iT1FsLvu1xCZGGJ^|xpOPWf`g%FoyEt}7z-L2be?RnZ z0Ci93$2J{_vZ@*ecnaLF?eYl3Nm9?@+vIoc)Tttn0tG^6GF0Zm`Q14o8&<1T*)ApE{O4#yC zDY?xp+(2CgDZ!JKXZF@Z(jWdQp7(Gvrv&D{?#}WAE2<&gw*kXG-os^F8Ab%+FZoD* z^0=s#C+K1(S~`G|iE2R^MC@pM7L)s;U2F&L|Pz~8xLpK)dH@T zxPgC@5go^1hd*p+OR7{2QYk|lxG}&LHz1kTnL<0RH?++U3n?FraOLB$GGb*LTP`gCfz*PrV!=DRd(KZjkfQjAVVei=l9PxSt z90@LxpbMA9H{9Pn>#fx#H zuu$WeCkMbsZT1{Q%Q_=mQRP*>aYpss1- zRINmGLa4wELB=-+6xMyUVhpCRQE$V92GF$VN5t5rwz<9zo^9AHLHn24uqU7b(1djx zyn<-y#|=1BVoih#Q7dw&m0xVRzHSmTTs)ToZVa}7^*P@F>$CkG`EM%o1#bouM}t9j7C!PhB4 zXUrw{K=>JDAl`zP{kq5Ku`3)`;l?!DYzGm#!0QkkAm9#L@NhCGR-_eh2hmrhdbDCH ztWKm)97L0j-O^nRN+kPmr!HhI_H(>n-KH%m2z-YQLnxR7!bIye@Juxh-y^XXV4O1L z-B(PTcH}3HTMkPtRzLFLWESBb56aViClO*L8Y_JLtR%OAa&jd{udN1du}#O3duiV7 zoQ){@A-swZ6_S}a6$K-1o^c=q>pww}_1+f4v1T)IgZkxIGTc8Mg7AMi;FQ;2VYo^8 zlbG=}=wGc4WEXH;^)c9GzVs2I>0+%JYM^2l-he^=&B5P6Y-pW_9dkGZLiuq?;yOy4 zk)I{+&|pZG9^Qc&0xwS8avHcMHUJBM=~;0yE?1o(xN@lxa)=4^KtE@s6Z7u26}Pz& z;9-mv0+#9V?#<(bVGAdspI}GE^&GSo{YZ*nG|LL3ut~7!r^cr*hU*i7TcR{D*xGN5 z3}E*kwM4-8oDmQNfA6enDd+q`tC**wySnUm^%=De1{bDrFI5w>H(pp9$^P!U3*R2T zur5RH;?(6b$r(QnY!8-BFM~nO$n%V~K(w>G5z11shl86F&21ewgs8qq~w|sIe z!w!~=35T*Dqs;ua2RP9la1PlBa${{wxgl+RXULK{F5QR?$LT6@gTc89Qr_+H(tNuJ zS2qPiYdfU&HqNUR1UnlNa{5L`zM^)*HjRUusPY4W!LF6Qy6guz_?MA43Mpzx$O`-` zvaE~dDXE-JJ-W6D8X?We3FIQO<|Rs7Uvt93c|l$i*IoxE@+Aj=iUoFC40h5#J+bq> zTqFi)dm=QE0!>7#;7#!0j9S24R*5zt_&N6|JF_JJ$Gu^Z7QJ6G21Bg&*xSo@ti|?n)e>X_RuYA)sgn{@6 z1NWni+sG7n=Vypl?>omO+O?moWQL@o6)Pet1K8a%ZdF7+_AD|m3(%=|Ab#2?3BTra zVH!lY0>|xUGW>1kUE#}2W!KZ5;qUKCQiR=u&_mFJ3sKGQwhf>|P(K&GPh4^Za?u92 zVVq9Kwn0vFKc*A2I`%H!6u7s?P>tJOIS%%Q1P1aj?H0*cf>dKi`F*)L8I z8ek!S^(7;2MN%p(YO!6AjkkS_!NjR;y`DQ6pp0D)3nUJ0S79d)wajXXV@8;R+GW^) zysZM_eS0yddA4T+5CAsPqGx~;R@Wr^czFCU!5Zap5G+#*zuKNT+y_*vJ_Zmp>Hke! z2&zLZ{M)H0_W>t>*v;Q?(BKfk|%>?hkgV zp(T1vScDM#nSDnWOHP3c)ns5lhB{LEzjO$`QbGFQ2G2*(9<}JbE{3y*;$XrpFa(Tn z{}BZ))Cbtj{eK~ZsNzB7oaO0hta}NNSG-=FmuRaToWE9lIN(A%|OSo z${70ltd_iMIbMJ(eMlnb;oIXAu{j21?dP|OnJVilxWGh_+X z`mZ2mpIX{4orTT4V7(3y?bJpVZn47>_XHIm^2IV-NT7gZ4p3a@@{@QI=PDVqQH+%! zPgvh@<5XZ7AuOkln>-&Q^VEZjZQkaIQ*ojH)|5u3LH><~dDKbLfIZ-xKaU&4R62l=Q7v{Y(SB*lL1(}{t#-izhJHW(ti5L}YTxFKcG+A{=moEgu~!|7;P%USKw@PYu|&6rv@Cjdwk;#|0c}7Z8~nj=S##U0n>wE>6oV(MtalYMuAIi z@?a-Adjl@j1+aBzjf>gp`#H#Z4$e8JUX(M~B=pBNwb$Brr7GI_qcnvqSZ#nro|%CD zRC$Ur8f=Hx0DJgCkjANAJYqXgxYZ8f*z*E_N|lZ@h7w$QfrS8!oSeZ_aWSw+)CUo? z_I~`cJln?mjxS0;5XWo#RNiI6A<70Q4t(hfg#D|RIcJye>e;Po`G?g zKf?9WIb}AIsNNp1;cs$HAlB)^MOJa0OlV~{BP{wY22WgZfU96poFRAz;_!|!!VsSU z_iNn*Boci9#n+zS&oSHq+dAm65F?v6I3jKZWN`losvmu!7wm|}Z7zH@bwrG~4U90W zgyef_0gv4*HbFG}j^OOM;&zhvlt%;%IPu`9XEo~LC3GR5*?WV&UQxSrJ+}p|ALzLO zD-LCUkrl;-DQXah6XuZCm;0Ir3xaeo%YfWv&9U}p1SJP@~eeI2RyP5?9Q zz5Pk4-0@lg_e5xoDfnFkh~+34r3?jb&pLLKobg$ICqsCZ_+T*MeBL1y5-ebcI1f~> zC8SX)l$z>^{kZA3a~R%*joZE z4N`TH#W+_0jr9_I&9<-MBJ8vTR=xyCZ>WH59%^Adhpc@>cWoXpA@l7WakEeXTeFe# z@Rx|t&Sc1v0`too8uo-+qd;&adR*F+G?P)M9YAFf~ol7A+Y=wl^4X zLB*VL??;gDmrAiaddsmmp&0JiMPXtjL^C2T5AuHd=XFx~M2NZ-;KoA;x!@v7(6(-? z0{B!&eS+;TNkfru{u@Hz7QEICf;`j-;y~Z0whPPhIF_h#1$k)E%I>3i4nqD=OEy) zmBDg+0KEf{Fb?3*=ML*P`mn>4S|9?OEGz-ZLJr#%*?6~9!z~SP>I3}|4^P;gI~i$8 zA26v3g?H2k+N0u-8~ZR0>In4zI9s2PO=k8)7nF572pVVk0+^ z9Htv|pNNANOX=86auXzfo;+M!Q-L$-WgLTvbR+jJvvpe23C=W3QTT@-(b?J#@_}J7 z7dWJ->y69t9rEeyX2cEBelDvuxA^UVC z?$EQ!I9dqja*-6B8kznr7?QbH0=EngBmR2p5bj4SVlg~R2uROCt4y_a+_!9lcinJ`0sZVC=khqXLl~vcz|ya; zF3TbsTT&IQvqR~S?x6s>elPQdCK#I4p6+K(OLIlRpI1FJFijs@Rb(&9Me}_Tp-u38 zj5IO*DE=5AaX``E9r}9Z2?p5u5&OE&c9H^6r|xm$I6hb@v_aB(4FQvCIb>%s@WoS+ zv3#(f@ShdK@mUd^9P zh09{vkWmgJv7cU#Oq^2q-;qhe8UiWyiFbD}_bGcnksFA#wjE)@DH`5^9(A7;q7`)Z zFwA$X;rhO1xX$d4OH#BRMl)!B96-+G?)T$5FhWWvM>b%TRNxI3PATlLo{O+K27Ra$ zjKFlMJiB3 z`uw!P3QT{@A3`b@8A%hPh0wgLuQ6BzwdA&6CYyf zV@4Xy-^fWoD3-YwjC5D$7XMr0P82BVI3wPo13fw?qu~wIquwZ`ox?;NbzT7-RF3Q5 z!ZJ=1LV+v;#J|H|;$Lw6HppfJs6rotSV8(~SnOl>z5;eiKz+ds=%OJE@rzQl=clCx zBTsv5A?l*1L}-E@rW9?pE?xm>Kb$TA%ha_q(6>WMHNl!aj1mw8!R~~pR^JD+&*r{V zu@)jP__8!n@+JuH-gT6(i~O`Z51f*oD9ti1wG*w(Q;J}PU!a6fM%jX!$OhO-hy>9n z-@~oat45+wVs!BM*C$`r22VKr-IAb*6JA)GpOlM#V8omKw^!0i?afQSS2f${KIzxj z-x=>%w?|&pZ2w7(Bh#nLEt1-4{KJL!6IA3Ln)fwsZyPYI?DENXt!e1>>+&BRrjRh@ zu>(5fT|?t*Lbm;xm{J2j!(WYte%$Cekq~U1LuhNz`AZZXwhNuc0S1I0*s4(F!41{7 z!_4<;e)ub{X=4h&yESLOr*Wl!0>;Ee*=le)7yI~6kf8LG0ivK3{yv+q=eE!!-xlun z?ptrFmI4YxDXb@{7Pk@rR#@3n2-S9uavc7^mJF5bKj8rpOOCLvO&8M8g;0Gq)wD4Q z+SHZ{6SEbE_Jqzv!=V)Ic<-?2=vP89T%UVlMT%@|vhWZcB{aSZR4N%IjNvBh_IfQ2 zokiA{VoXOe5P`E$^|<~YxtIoQhXHC#M*ZvlRN7{0xD8X00RPC{dqS5B=fg4j8bHCH z2VY`ZI;ryp#CBH`*+zg+YnrLd)Q)Ji+Wlc4h`OPTi%TSA?Oht(+$ z5XA8N!=Yhe?L1JA$aGMT5Zf8RN^0@%*FyYW^@tFZq$bN!s|Z$Mng{m_5w zePwmTWJ>8?qNF^qBXl;`gdlQOrO5tx#LAOW4L^t84FWtojzC>nqLJyW#Lo5`Y#l^gUAjww0EtjvBm{|h(XUdGLN3L0 zrS)v###^^Rmhq23R|J2WW-QjZg-w$U8qE*?JJbd7)ar&%>MJ#5bCkj^$X3t6V$x%~vorC8EW^J4GoI+eAoU=Z(1BV}JcwUVK}N$^YjO*4?d zp!RDbm4ne2G7o9M;9l?`7n{TKtm#%{9QtZNIdO5F74W1=rCQ7m=B3~bxRrqa5+t76 zLx|2`d=FLbQXX(cyi+<4)sMzik6zksLspw{q;=hofz~dh5x*fcI%c=W*b`i7U490J zamuBIWbeNgYe2p=rst-iV`FoMu^n#-i$<=DQZx>yE!J64T7i5^!4-x~dEFt*w^Ye! z6{E2Qq#F|Bx^CZem?W$TD#vx5tyjuLa`t~ZNC+-tCj9CKGLiX_mNMl}4w>2`-Juk@ zY#{Z@ZYIE@ag!NW`prHUY+Tt(kkQS${#uH?3^U(#ox{qRNS~*yEt4jg2&X9J-18XI z02Cu=dAJYkdmHp6xNt{z+;~~9VoiIL(DNpLi3!2?*q9c2?+R@oYkx|X zjSOoEjoylJdu!pw!_J{v98mL9yLTvP$dud%-cpM3bv*=%tkNCw#D`wGs<1ESCL=$1 z8tSrmbR}Tj*HjrW1sxGgPuC{gedyd0oNllN9MZ4^4?kz<-=Qg{vdMI~mitq|G}!D` zJ^&8uG(gKrul*QYTW&`o22ob?j1auW2kzxTvW$LQ69gQw<~_F&*v&r(HoG>o7mIAx ziSh! zv%%CA1$z77XcJlqZ+oI#$pr1YbM>+mdn0lrl(Mds9P#o$K<@=hOk?pO|B)GbY*DEm zLiiN$E#>1`eZ&uuS#CL5nux$vyJ|UNXUYmnhwxLdb=W&p1%b+rmG7n4>Wg*K0gEYx zwc9lnhPUrYl?ZKh>tC!CmeD`q?E_x3Oa7bgdgx~>Q+nbNfoB_xt zdv87h`88nDlp@&hadGKQQ!fSx=gz(z3hvV@f-&EsmJ$MgVQ0_j`9k|1HlTRMWtd0f z%Z*08Dn*JHKGg@^iACuV$eEFy0@f4n3D&SjcWLQ30JyoV)YQ~|X(zDc*&SWhA8Huf z%UujYAsMUllrG_Z2sgFoNKrMuHc=q5u3<*1+-QF5CJNW4pk=ECqFl!Sx2&Ow zXwFK)_&srCIU2<;Q}z?0d$%8z-K)HDhn|K@&A!2*TY zSLd)NiW|O1fVk(>PlWr=p(dEqo|{S1UXE%V=_+E}Y;V!C86j8XR0s&JVuTgDY#`%6 z)|cO{L6P{mhHJX48NsGKzd$pTVq9eZ%i*n|b`M}^37RRg*1s8HvDm)ngGh`&YW*g~ zK8rcdF`C(qQwX@JnbIoYDBmeeABoC%RED@=T9F3GM=ASi6_DW{yVfO5B&tBzN`sep zM{gwg?u!Kw=#Oi7xv3^XOR_c^ilnX?1$ef7uUt^ zUW-Z2#NOiYkB{+)F=}oLmuQ+YAWzeW6wlrhe`Zex+oM zwaQf_v{#opj;l>1`$V^8yga3GOB<64rJf4XL%p%K}LK zy!*#@g`@utoq2X1wU#*L>KCfM$fppZaQ5q{Sq1*PLuY>51Wf&0_B|Lz6EuyZu-@ym z=#TFJQz@nDj1rQ8dpBeyGG-Uh##(j8&a@K&w@73qOGIz~ph)JitP*{tWaaxR+l zXdkV<>dl;;Pdl!(DpUqVQ}J_XVJA$G+K!W5CLSO}ysO@{U}VQly)l882h;veupNDu zj?FsD%^whgGs=mx^03~9P)Ht`az=`M*;IDu8Z>e*fT)0b(k>LSMTVq;3VD50q_%9lQIQ0VfE@T7wV?DHg#wyxR$Vbe zhFNYAAx$g`+oXGprknAL+!ha1A`N?!2+1l|3I()1H&s`H!j7Sp7r{q3Z_6L zi6OfzRHF?LTvAShsbVr15o-jSbG)ywHnm67Io3$dT*A8Ui5`vElsZcQ1!JvoZ!JVD zJF@GqyYqrn23*$T!#JTF7`odJL1wR3hv1HDTT*q9FvkCNJXE??^&9yC|=~&-l22D`Va51g9>Sx7NoH?84l_gLSK_qYT3I?fEYA++ z5yqJ}JU;ea{A_H3(c2zDW(+H)Vh~eHZsL{2KP3Gyana4aJ;Q~@Kh4}WS9-~cq?1<0 zo9|9IdF}V}i`l(9ZzSeK)i?AvHn#Bc`+Z_F`(v#})%k&lR>4(6ID|`zSiJusA#jt) zqcOjV+vEiH@K*)#`l`|r3A1Os3u=d` z1HIopVoXP7U(baLG;ggZhzsx^wZzLR?MCB!x><_dH01~#cA3aFXKGmzqT%D6G&_Bd z2F-ejjiASW<_w2DA*i|OQtX5ohxV{@shtt|gI(kh=Pe+*?bqaK3hb!WY;1%rzRJ@dNL~(LlpOY#n^Acijn{(O1ENf(4wNwI1pUv(Y6zzm zEZBLyJKtf={k?1CmmH(>V!ir;m(FXPcTbZderP)I!jDH z6fVI))`{eDydu=m_C=*CwtdK2cK@KgJCC?9r#nPWgP!M>gdB1nssWc6q|dp^Yg3l>wRYe(!0M+ zX@4bHwuppsW%^$=QjJLZ%&$)%y1vh$kx_M9X2v@!k{^~}rs-ASJw6w9tUozw-)}zu z4gETYjE-$^c@pt)!2-4K=~sqU<%ZmrA&AXs|AIC18HcV3uqKD)XFNrkOg_N<%9Ymi z`%bSl`lX7n0+5ecK=GmFDE#n5Or;dL5(&u(Gs@rKCrke6Ekr~n5aB)fIjyp_!GWyP zLVEhSuwOL%e!7dKEVBr_*4q1Z|Dx-pu9pEKL89kOh<>^F{pVNVmw#?JsUH}prgZrt zkQ1xW9ws!%>mX%uLGk=%y!#PBsRSQoO*$Ioofmu<&c<`J##(Dh4v=-r)-q^y@7s2u z?w|1wpLPpbd;hjcBdxl%;pFKLnq-GI2KO@yzeNU5DSf?WM`0Eqh?bp6WNme(#V*Ei zBcW)-Uh<2HZr5b6U`mM@R7RZY(B1@`x`}Zr=OXzY*dVn`0hNH|SDb&%+t(cX16idP z{(N)VjCTtV?H$&dguC*B#wBzI6u(jniMc9#4=iCXc)721KD9d{22sqKUk2alzO$o^ zx=IQCbJi`8GIK4H_R{;7YElk+>fr0d)n&B0!5+^w$KnvF8LIP$EXyNwb~(5rzZ4Jk zwDQ`Y8Fpz z8o(4UgQxcHvEB>%7a)PX>nRk`sXG1vLwSh}<YFYOTsJ-Y)6v-KUOFdy_6 z1XLhQh{7=8(SRzcW;@`^jOv1lX)9>;@zRJoRhK7(;QDFnIXh_zWGsW8wSM*!P4qDJ zM3%?ePa7AkzB;eF-+;W-orBQY>!0aXcBkv?>7!#xx_mBi)ae49{*K%~kiutRs(tC5 z4{4jUumB*d*a`W)ef3vi<@5xP#;AQwk4g1&*>ij}b>01t8SkDM+t8laA=$NtxAy+o zc2M>^2R)CE#!kj;dhfsjcnH$LeB`!@v;E z{ip-!g#FJ>B-Ey4(D)heg8nIgg+@6cc%gs#^m&rWZWrMj%w3GhZDc=#{0*?k&Z6t< zvqjL9@r>TD3C4n#9rJ@|4X+ZHA*Q`|Y$OB&r;oZk1lCZ>`JBs0I)>$7fEulIUH3vF z+k8I{Ng|c<4v44v?CGo+WbB4CwE}(Xa$WQB5?S-5CN&!#AubwWTnz8ugSa@j!i^BU zjK@Z&3^m3pV04X&7(zt3k_M*)b!t;EgfK%){_gfqEu#UaPtP==e~8^z9x~(5PYdk# zLiiUyjqCBT#S$SsrSR)xx?#P9{p*`=h`iMp2=qNCqb~=16blihTWG?DZ@JlFh{FZt zGl`=f-I#4;$NZ=6AYO+MI{rtxfwEseCqdBxk)?x?m7#y`bRwFmw3g{hu`|DRpuJla zUXLuRHH0!s_$hdaM)9LL{jaP;B>TKK6C%lJYo%Q@DI1$~lIUwB^A*u3zlRR=Hm+!b z6;Ia9#p}M<)r!$Gr`^zGX3X<^CWQUq`T5hc$pKaVEXCGZznwmyU_Ej`VV~bXzXUr` zFLL+cjm&XxM!0J(2oA<# zp2JO~V!HW#MO2)}03o2C^uT!7JAhPM12?k)eG=`P`o1OdR*2~Y<_zmCC@4b?xd{UR z**=#wdF5mcycj*llP=7LPSP|2F|o;z!gR;~>PJqVM>@VIwDoWbNET%Qi=5WcgSX9@ zL!>rh(@()&(k7nUOR;Y!(4jo3{sieC+!zFF^@5rb&{Im;d~>Y5CLSU1T_Zooj}8Ra zM-*l>k#Y~b4aBUcBhKbDm|gvZV$|U%7{$s#Iv;%-khc}AD*u-Fc=$bC%_M`GNY2$7 zAZIVU4rwy$I~twvvCEH~tL=~cQconmzNMiD>~}Cgp`2h9ZAkE;uWJkPMK^w?umN=# zI1TBK#?&tkbUosF=v=@`AD`&j(N73C4M+PB^7+2kl;#BaY`?1xK+WI0S zm`x>}gy5Go(U0i3viZ-kE`u9jOTmmot1yHX-cNLEMM;hTy%9e_8-JwE+m3DUCan|cI4_7+Vs;tk2^xW@7?b=YD`N_s7o z55P4|q$ums|7RM@C?QoN9Jq(GLgGVCe)iYFhp)LaRBoN3(P6m`{>k3r0xPZNHi)AC zl+EM}ZC$znj1~(m4bkAw9e|}dd;|`)@j5~Xv zvE5i>IUnU`1XcpjeYw4|b!+k-eyWY$gi#+6h(Ma#`2eL^I$r<^kN63FHtvnP0=a8;NpDzC^JJk^}BV^bpit_&23-_{mBn=bfAIK-2sm`Z3v$ zwXqZAwE&X{EJqN;23Qc%j>TDl+PH>$08{wme#yCIx_`dE@zOiTHP=i%P})Db=5qThsrrd3f65%aG^g;~S%b#W^rr=C`}a4R2Lui6 zZUDCi#aJ(x{8E<)Uwd8m)1w-_M)XNY!{V$IyK*C4iqGC{^Mtp1@5m8Z%pEigs|pSi zL)Dx8D+s;~UKKai+5A#QXa{{$0DD~?`9(JNR2DX0Ye#8-Y@fNI?Ur;KU3DLgV9_b% zdMxp6>I(R~@$d6Xu@rb?lPOTKdFO^(*e0i{>4+PbaLs%302<6pV(&oDRKLRo*5 z@=s$Lls~~w{v-77{}EzOJ6HhBo^u`F^XV~~4vwdG5;;J`7fR`lavYNOdTMhsZYm2E9NjTvEaQuQn_9((yYA1q7?kiOeDx&kHXy zk0Nn?DVeAB`5pGDb_QwaCZT%&&638wLdyF$n&J~|t1&Tz;eXC0DH``@QZ*bu6M}xR zE~A%!nPS@cU#z{F#&W@WvXK?absS8;9{!_7(cnQS#gLR6U;_i!2rtqWRA|i;#Q#d7 za^_%%l%j-ES3uiH#isl{e*XUeUxfK%NTdz3Zb~`!KKBzsp#)P(sk$)sMk(cQ@KeA! za%EN$d|)L^*Zgcb^kvETjj52kFYVnAt*)V@BD`_ha0~A(a;&!!+8dAp+E21o31e$Z z2kBdkir&&_7HN$=9yeY-yZT7=9oJ9;={5pRDHk#@_pmpO%x{?!8jY(`F(NWyUT7Yk zh+95PGSg|pVQlM3)jz{?+R%eG3{pz`3Z#K@F|=_I?A}h47pq}}Dk-I+9wijB0x&d* z_9pX12QYwkZ?q@f>@G?R@KcmWZsUvuE}=aulw!O~k;H8ylhA(5l+UBK1+93;{kh7d z(U+ga25{D&Oq$KZvWc>4PmnBnKWmiP`8~hZ!CPzLOv7J&P{7}l3;25p|(WKl~D(m1L z{n9@bK6q~LkEB40DQ&|~!E42_q1hz1L{!r!9gK#vMmxVESQAY`rPN0+%X!aL5S;pojxt<@Fj<@j}70ti`_>;Djy``5SB#@Jr|R*3QAd#)VlP@9F0d%z^s<{$pb5oz=AN@_!p$eON#81mk2 z1>97L#o`$ypQ^f3@6Zv=#R5TXYaGT#t^vwkj1L56HDe@a7@&-7vMK?uLQYXsvmDMQ zz$X!XSxAFNpepzmY<|&42K}gN{9Aj*oX}u~9HG6GzTmO1o)KDtfbYEv4A~kRvLWKz za}Mai7EBL@Vi9asWkQuBUZseDoUHo)_tv4%X_x2IqS745Y_k%#ixR+jRM}A^> z2dtPaY#UxYME+_NM-q z)`AdIU9nAxY>QsBUzF@WZ#hO?a3X0(`+YhvZXt*?4n*vr zlw&!Cq#DKn!!!5L;i$TYBzi=38j-gIBO$yHA!!wQEkU`^@+756SZ03ML~@}L_WuPb z2U*coab`~*X@gUo3=5Ye(_V}O^@M|ANVxx8!M5o4tZ1qPY0SfdmF~A*Vfx6)$E#yO zPihOfq1InVkLb?0M%OW4!~^~oCmEvglI7=a;Mb-QBn!<)v_BF831TNJ0b`x*e|cEn zf(%rRjVfe`yye&cV=KcxI*_=j4V2x$D7z9%8vZm4Y@a$o|7nW?njIw`is1eCWJ9yyOhMv9cbb-p|k->J3+FW8o zsM0#R4{R;UL;~IP6!OE2f-x5u6iD*V4kxpPJm8~x&wqwb{$P0&Y$WYRunH+ArPM|b znZ_b@)G))FY8z{6H|1&g$+}%Y&U~(5I^!IUxSsle{~IcaSp<`0 zXJyTzrY6(Fx88WuNLA~PQw||13V#vW6=>Qsy6Y6}fg`URL(|3{0FpyrvF?0Jt!Izq zkt5wvGZhYzqdTywxGrRVk>Q@wgiL}J^)=#s3HoQ;?glt{ZQu8_s$m~8e!Rn*2Zti1 z&^ct(w3u90W52c5BKSr-=o||43d=*s3$b*88u@b=HHlrMsmfvok=f!&s`yP;_>_tb z&X5dd0yA9U^d`J&c-h!O)D6ckjKP0Uzto82+Nm!MzHO{a{ujCo80+#DbZHhEcJtpf z*62$7Nm}8>A4~(}AaR&d;vGgSgx=YJ8;^pDhqurXb}&8S6*>xt=*Wc)Rjf;NAr||olotKu0qX(w#f4J^p_{8ZGC*FVmLq_{8AFWFN(b#@}!?-ZdTd_m^2DU0~ z6SA&yrxMX^TahjQr|<_zkXwrZ#NbhlQna$mewPDhVGO9zl{c!ZSUC_a&kK&)!6sDO z2s)$p*P=6=#_BqhmEKRH^%zMY-L$O{B11d>hTd{D3+mWqSDc{LUaZwDb@Jc( zRm9c`7!26w*Yd0jDp`;5&>-+T6TkO+xs%R6M(({cXU?2`&YXDy)!jNOXavpkL<{h2;@|gnn6C>)cw++j zRisaHG~&GJDZ3yuZ{>^cdg;pNw_Uox!_E@{z(e&8bmenAgQ-JHT?L@!Bz=SQok8cU zLjXd;ySDsb$ecH!h?cv6KK0wFYn)^z($5EKP;aSNZ;iU6U+|KMcX<*3ze|A3$qq-uy zchoLQfD;zmXV4aC(fX3vZ+<{?*8nhZ3OB@yt~^$&DiI}7w~*x)aFR`fX?06A!u35b zIK9L##3(vi=Rk`v-lJk>)#}QP+{4Iuk!dudt{mI|u+*JcJk|82F;U<^cRP4GgcMB! zx@)2PdE$}7t?Q73V+CF6w=TJDZ3gmSDa;<8p5%%&T}~mK>^iZHj=|Zr?{IK)+S@j> zWPZp!ItqnVZlPV7u~5X~Yp+Rf2lmY_D538zf8qD8dY1TeSb^EK_vg~Pf1By5n>j{& zJRM)G*2T2`I|cF1H^IqPx&Q-anex2zZ~Xj04%=h5Hj!5 zrl&N%CY-yvW;@K=B}J#For{mXe$uC=V`_K%l6QwUPi1a}b0kyf@=1AanJ&iQQU|ij znl6aMtB|j_XeLID*Lqu421|e!PvK5hSJBZeI?pU-!D2$N;~9;(iG|&F5LakDwh`)A z7?9re{)j1F;mg@tc@*kl0Xq9_|E9B;a8deb^g?&6hi2C~c}PS_$Xp(UUsJsQR2P-o(3>`64?-_skl9 zhImrN!#k{LTRDJi!czygLR!xhx^b+mutrwB?ir|x0Sq-ax4r{^0TN%?CYb#2O`3Bl z3!$YGpPrq=++A|rlRPNButQEq%CzS?gjIV%^_N#XI*l&atQ)Z!b2H_!m8p;HbXra4 zZ~S)w#hOCf+A$=P_7_2g%G}Fe{r4IC^0=ovMX!5SYw*mh@WJ@6P=Mzf9BGZV?`npM zJ7J&rnJC$8KV2sAHt7zvPp|(9>iQ(7S$_qD`QIkqhY+Ir0`?wf*Z%e$2GO<1XQL~}bT%1@FGWc6yf?mxZ=_HvO8w{y zI=W>Kmm}KMJ-ce~td@dj90#xGBUUTht-hqs@n~!MqsIvE$4ZJG4iC=R75FP%9&ti- zTOuTc-u{?9&m@YbOT;9iR*x{q=t!GRKZZ?kUP7oucgS2P@8G@vH2dnIcc=H|V71X& zYL{*zbrw*D^brw4dnPZN_kXt1(!U)pGAvnv(7r(DlKuBn<+fcC6kK~e8Di0)Vu$}e zfnU?FB_XxrQ4gsn0m*MSiRo^oM_cpZRum*uKHNW@cjl9%KnKPO+FX^C^}j;{(26F^08i%X@b1pr0 zb1@>OU&`Cl{w5|l%$QzdK)EPl_I)G+mAm(&FbLOV_ar^Qpp*qvTmn718y~p1%I$)# zwviMU68D3Dd?7%X;o{2uB@x-(kkPNc`yZf6RMkcQ$p!eomsi*Pr|)lRO9IijP&uOK zRT$nD*_s@_iDc_*uo7vl5o+(C^1(zUZr!}HL=h}?!ZzcolB17CXE&R^T}b=1de@R# ztCb5`poyRTmba&4#6Q{Hxavdwca-voIrnw0V!#w8@rSoJ7=e0?*J_GlUC(sNTkr2# zJ=rU_A%5L`MenchQ~7QG|5=J|n0b0Ue=p)EgAc+-XTLM<6Ts7Yn{_#r*5TyA#Mx%Z zpA)P{TV_+}^-xY7T!H%Z{xuHMD0t)FefhWW2<K%w7P^Q0JnE%ChKTCE9)`bB(^_<*6Zzh zt9K^(>NRyBaaTI?UpvzV?SBW$$&FpZek(({T{J8ZlLrsZ_FJW^?4)Gzm&A^HbPdx- z@3K4mHU}-*kDjmv7DBIzMD#Dy)#96j*#o6%P%bqPkt{O#v|_&Rs;C2MD^>)JJ=C3%;F6Jo8LWvgn|_aVoDH>5nX4Q|Gnkvr8gNX^2{G z(Vg74`o$(F$fBIvLJ7LI$J0@9F)S?E7%^vRehr~KWa>cce0%R31k{>le?o2WrSOZ| zJl&VFzxy)KD>*=Gne_$Sd<4E!t5x~TH2{3ndZw^}iQa#-h|Nd7{V+=G6Ifs{TXb)l2W>0v%))G*p4>(662C zQUH?E!vX4h6@1!CGw4qh_{~0nNK$qfYJ*izq#wt7+M6*uNr$PaSg#jfY(Q(sIPqC) z#n-hK6C-JB__Wt-<-qC}o=9LYR9}_8*@jW{>dVFN%Gb*hVA$D9z3HWK#Ff6Qp)50C z(hAe*r_OmD))j1(n_^wwey|GZf!vZ|W066*Xd847^+`K} zXv1saev6HWTs@!$o#jG$38dw5!?WMS>YifO=&9@!9b7kPoe>0+nZ5Hce3p~M#} z6F;RF;yZOMZjO#z4y@F`5&4HB`rQ-vN}X!E5DEKlru`l2{#T*Bjp;ZQv37k~>wsj$ zwKF0@{TT1=#2j7eG^pPDSx429+T4ehwG=||ry*Z%ZZ#QX7C<`aYBKk~o#Gw%??G|2Xd zXJE}&dFO5(*(^=}u_m!vePGx(r;&1e>~`{xs@WD}Q*Rr6_m2-&o-(rck1VWe z>lhp!%LubhN(~!X7MYnk-1`o|E>ms@x|sC%1t^>=F~jdi`=FpecW>!&`4PCMV=Wzh z@(+>= z5?*BWfJL#lc(K*9Q(=;5X;?PkPOo_!sPY}Xqw5}S{9X3cf}DrlqUCYK0bML*`RBRG z1S=*AB(q)&C~)d`>hQZnj2~!VR!wtNeCHpfth9 z5n0C85ARZi*iCf{>J_BB#BOaooOsP9!<8#`=WAa;SNbjCWe%mA$52c1`-H@qK__SB zmx}X@I3zV)Y+(~_RwGR&6ASLnAv@9mrz$s$K0VA`nqLe&B#5D#cdZ$4QM3M_1n>OV z2F(k&1Pksuy9jqhW*gHUdtCH84j-uOoEnYH!u~AFemsSyw+OkVU4FY0vTK@;MQk4@ zsYL8Tt!e$X2-J~HKN%D35}e4kyKGSK(4-1%cM@v+2ET;im+0GQoELkaenv*Ffd%ZF zLkE|Ton>pX&}M|(hsg%Q3Q-P%WQ%7sfa@!8t@`uU)K1;xjp%(_9h z&vU4Qh;RY|0~qSr3kwDicj`4>P^%B~oc1o<4W~TexyB^zYJemy4t4-3b2+2t}Z&>)rGESPomQCP}C02ruT=6BJpHwh*8PWL(PsmT}#|TZ9?!fIv z%#-%p9PoSaYtj3?JryD}{A%6sg_0H=K&Q<74Bwa-WC1$B4PM#L&M(WSO+lrolcHMy zi3o&;Pg;GMVbGyo6BoVAP3*{Sb7=)sK7c-w3@9hCCzsUS5vQ7hQ3ziW=bMfQR#1l7 z81meV4WkM~JdH)K{)QC-t61+oWE_L5K`x3A-Rd=Qk#LuW(tUm&Xz%lZr>~9anxG!8 z1`J>gqx&S&ZUE_h+iH*TxMz8Vb_9_?(iW@tiC_cdjy6&iXax7K^#+EYO8cl#&4a&v zQv5oAJcOPc-WU&)l9=G@5$z`NbwK#|26#NX$6a@Ew|@5?(V2M}oERajn7R|KSWgqk zNBw4h<*+0(4T#n86CB&AB`ovRKrPF#oJFGe);Y2lt+I76tn#;`M=1oqezU(eo|i8h zNQG4M*Nfq*xyEoWAs@r}!JR8LNoYpaI|3LybLaIw=r&rtro2`v6+PHn1>3{`dbyw% zQ#KZl&rkuVgE1_+N)+F3V5K0?vHeD(xaF+W53y#>gA=Bzecjw<#148*zH^|UvQYa7 z-Qn1#8}*|02_}Xtx?8CfG%je2h@P`#BgUmF#|~L#d07x3UF8dt_bJ2gu{;=_qdf{J z~t86QBao62!OHmn)skF zNTVQ)8)w3$&Y*Yu?q+f_aS3%c#!aV9cq6hFVmX3oU^hH{?PCFT=aKl_6T))E(f&~iC*&j=q#6ccwJpO&X^L{!SOJ47pLjJJiM_Ju zXjFafD)GyJukEoseIja0L2d@Rg_B<_gj+Q5I}h_hbF>#Usq%`Y_SxSwd@~bStLM@?Hg!6Lpiq z#0pU!wo#J=C=%Z)1d%q)n%&kWN}@Y$@{Gz2OojF>BKD7mC%N8$T2@lFi!Of&>xWV@l9P!pfNrXWD^-&$^D6BD zrTWcm=bxfpG?KGD><(LyLD)JxTg2ts>F`($fU?>g={!f66}l_V-YV-hCWdO~GN%Wh zG}Z5&5KoQTB-Eh(cc(&azAlUk(ykV;lTh!+f*Ri^tTBNlo?0r?zCpBiAH>FxYMx|1 zwifF5DmhH4_MX6mkgr3F5n(vO8xmPL;>Qobf=qHZba`6C<51yueNwObgesYJuK z*M}>e9ZR$~kfPOV^6+7HL;e7|hk9Ec;P>(uDww(dJzE@?oTU#}?_`gkZ}&`9S24z>f1j2TgEO)^YPtquaC zc?~8i1pCL<=-_nphzB&>>5}L!uGjB>MrmnTfwl{V%Wx zhbKe*WJ~REIA<_6j3TKg5ZLb`PEq?Yl5m{FWfvf^WO^+N?yhmccrBpEiu@j_g0U7b zfh}-aUf{D~ltQdFj=1H1qa+CvOUjK5&S=p)e2?9SF4Cz4=y0aqOkwZsm@`XpN~=XG z!v&;|rC4gnb_nB8MQl>vp)(Xemdr2_Hc<2TYl0@K?o! zC7^_to3i1)39O)$(z?7re0;Bu6u?3=6K)TPa19?x5+Mv0BOT90Wq=~F?zuI~fKIR(sCs5IW=bl>C9DPn%UZsd36YQapkkwVX(R*yfMny^Ps8UO zIl6Fz{t)kbw>}@a;*thZzp@Q9!yjzTIqC`q$8>>Adznf?bR7cT#N?%%HY^N7tl*I4 zl38fZC6*^mr@v~YMsS+GK9%82JnMif=*7st+nb+ist*ZdoVfUmsu8)i+Jm@r!o*!Q zhm6ZvhyX2yB3NByIuM41*-pqy4cBJ}R_@Lq8=6EY?c=;DD8%9%rbW}gII1}rDGw)(_@uWW zi+?i`YY$`M*W=VY&Uoy9p8iX70*CBW)p|uRdcF@b9t_rHpY|3t1EwpVGMTW9yoJMc z@2qs3Wd&xXcugc|_L=p02AX{uWyh(Jj4y>CkVO#SZ{|YTz>P0xEJ38*bdcEOw7XbM zAW|XNCI1+5(2!2hYs#O~-4*3sHjgI~Lwk(GA(yscie%cr4c&e8Ja;QV@E@xrDY(wN zqBzCy1n&U`*#>}o2Yx%QCz_N#3j7=)8$5qlQaf1CyDh_g^adi9pFt)~)OL_tafLn=zwwEV@l`-wxB2X40P^hK5*6D!?aku;0P|aKFFnR;FEYnnyGO6e$;8(xNE(J=> zxhU+Xyo*RE$3$Wy$wxM^UK1~g+$b#7R)duED1#k>pAEpZcz8>vb$C56P;2ID6TPni zlKmd+!Tg2kz%g?mnL5-4h3)m4c*={blv!xY2gE!fFx2INTwgCH@-X$A{nbWkv~(C@ z^&cB+mll~B46-Xw6N9++e<9hte-tO5O{UyIq+2Hts~{WX9!`GkWjfaI9*>b7N$`lGy;hy z^%=l;IfFA=1Hr=gh%B@i#*rKs6#dk17JVnk6p0yP*4crM+1-apchL6#X=5(Yk=pRl z@0ugu#?&9(Cs^^p$H&AAE`0dQg%5uH@`(70>Pq(QE2lip9XY{pACbp>XR~y5cD3r5 z=Oedlf zfAbAf8ykxTm0zypG7HN#Bajzl8#i5L7 z>3R<-d{eJK3UqEI^Yx73!GwoS`VXCbnL<|MbW+#q0UpFQkV8ZFLK(bU-b*m{_j+ng zI!O;BSnVL{COa|0vBRSSw&CN{MXDOHHy89&`XF1kW2y&?*j96d3X!@Yp7HfS-K103 zsC$^PquS7s3v_oMBtu{E<8bB4OXnawOlLm+c_-lDwVA-dZE%RM~Vg`#(wDE{Ps6ygKHeDG z3KaB8L_~Bjra+sC(W|mwD9CZMnWWu4{acup3#0%HyjEc*o`99X(P1|B9=HhmOWibAa0v{F>D5)aW5be0E4dT_WcI4e$tFy zP<{>p`{)tXOQz#162Cup`uk1AJRMB-@#9yvbzr0|uuz4?SvyJU< zy09{lPp;o0ZY`ELfcGP}s>qEUW|oPNX{g`iff?&!3d?o?-fkhhwVe|^#$SeiV(8jd zoXavC&x+!NDQFbPB~|QvgHfA2AY+}P5MhB=7$xsJSir7w!L)wgiFmGwBnikzz7!CD zFoadLu?^`|{ia&%mX|NhM`&9Ny4YTY@1Bd9!&%f)kP-a%jfv=PgT-k`_el3)1_Q=4 z0R(T*8`}XU`V!owVNw&w6p^U5Sq2!uH1`F*N~YzAz2AVoYS@;*M>ka}6W zSNbxm2};p7P#}C^Cfyh$hRDT|agObNC&FU|*aQ{>UZh1fK8ofz^(S=(P}-EBIj$(m z8LKQC#>At1Ft$Kz2D6nVfmYk^9vA%o+D(Sru)xVly|1pA;c6Ej%X zc7t_2?k+K7C4nWv)7WMi7c18aR|rc0B>l#_X)ev?G$WLi0fT#~k5M-;rsCaOAu;2a zpmBU)oEn31O6PG0WoywmOAv?u<|U0Ym`U{i3OlGY7@PwnHo7xN6C$08(n$20c&D4J z(jAa6LAe8J?Yac#)=R7z;Gya_*?zy=N{<+jYhv z#7K8C&f@3#SRn-&V6Q26fX%@_G*x0DEl1f!`fdJW8%d$W4J64TJ}A)dEB$ogQvFwC zY2|DiiS@EpBjq9(sP`^D(44k{vQuRZu3k_Zs*zK($e#exn+T8-0EomL zN6Jy*N^p{p;nG(CWO57=BLBk0#NCXIinBWYjC<475jR|*+byNRdeN0LoLi4rczimc zigVyrp(vhylU2+UKArX|8P;eBiM~nwtY&UDm}ayV*f}h90ZWfJh?e^FUb0c@iYtx4 zPOdaiGR_3VSbMEC;pZC6yy$!mI2tInIRug287Y{nL0H1?lDDW zBRKzXDt%$+!4ILP5}~H-T-k0+lX^I1v%A?z5aQtt&w!1N9-P^a4fy!1V@8!4i+w-{ z*Pp{>;{)vp(}P4BBFX_U3i;=^3VnnPI1>epW>PY0f2S!CaT!!oLYpV}0~mUXYFOqR zgiiq+9lKeEB`^^l(Mbi)EaW$+Ur#5F3u|#mKgsY^lrVMy;ro|>Z4sJ4l~J#7KxS1G zXp5*3K#8RSp#+2qzN5%Lkiv;OVzEJ71X*6ohjTM<4~~DJhGUikLH`NLJ6{uv2D9EJ zR_T#}@`qjj68^2rK)&!;1VnY7;TB$CLLcbgSpWQ4!$=Gg~cD2`PlXaxAv*O6UPYJcAU@z-kN(wcCqF_meACTb$`5MqLZ;zx(@r^IStADxXGGz{E zMd4C1{0>h1nzeb(8%7_7f1oU0M95EK!4X2L4kq`J8^JR7+5`v*^5isgvcYJjHI@V0 zE`K3dAF3^NJw$M09*HNg5V2|m$9-6r)SHBoD%;MW^+2dyTQ4!PML_tG=$s}l+D!16tp%bX z9EqQJvKn&N<}S1hHu8WS%BJd)cez>mJqeCvaN5cl1q{d53Gx?U4_Y4DsyS-PRO`P4 z86LMWSG1)ARd2xYiMNulTVhePFr3n(nwTq<*l4y`VeMf;iYx?d{TIwp!3o)bDSmIdiR{w@B}8e9lW-pH||ZYQMJ zrLQq^bOw6p_@{2?i`LWowqP*3OD9S9o?SxJY==eP>7*ztUeWt4?KPrhfJp{QLI6LO zwys^hgIa??sQ9zzFQ|uZc+nn9+#NTr7cE$hc~e7#~IfUceg&bn%e zU#>GsY}9Y^hp~B#5(Xr%s^`rhR13Os8$`AzfMX-I2K($8R1M`Hdx`lKMAOw1WQ}wl z%Hv{UIMQGQrjA@1oWBrf7mrzyx$SaAYW$B zqV+*EU0yU~P)KUm1VqmV2q_knq58P2Pg z%o`W{Cl}y9Q*ewZVU6c&hhfMkkjTPw+g&C40SV9lyrBD6yre{y;WN5g=qv2yo62j! zhUq(D=0@K^BKUuFfQ5*;27E?qAT+_)w9>Tk04 z_1VbuXS}Cc_C8_X5|1yg{cWc7r4%{rsawI2WeVk@Teu8+pK)6B6By__;|CZsqeCvj@N{&B@>}%NQlvcA$&j!NBNCjpq90 z9>cNhHPA?|k_7H|5`We;eRs4scNCq3qBUl*c8lg_&&RwXNMDl|4EUwvgt0s_-`6Kb zp}i`YB>xidm=eM^aN(D;>!@91jAW9;Yg?EYIVeNq1#M_N{iZ}X(V8fgLiR80HQq$5 zRuG(5kL}(P>g;8?D`pW5;8Z<9APo+%M)7DX5qo0~MUuD3&#G;eVxanwfdP=SAL8?G z&5vYNxwioc^<{!e9T^BD*|`3;Y%1V#xk)hG5Cn+&!v`=A0IbtPAk>gMIf5LxPdakO z^dr&ZNs8zx#iOTso!)MY?w&Av5AWkYzW9UnIEn^{ne?7D?j{rM?B z$IS&&I9s3sK5!_8cMM_?gzIA`$$aTN(2UX5pl8akvvmXn?2l8nq#Mw9c?i(>@u^ZT z$zfcss}6PKjeReKXo=iOH;$L)8fM)Q5q%TMREaAfvm8d+R&Fqo{|hted}$n*Z6C6Wi>t6DB?QQfaG@INl40kNclfYP62+q^YYf9H+JrTQ0Bim zMy12~jTPdvB}^-2sT<1$rP}K^W&SRKaBY0XoY*j-z~01h1CaHxD<;w!$kd=UdGEr! z4ENDn;U5UbVd5Si72p~KBs>@FhKoHPtH*-eOyr-Ma&$TD`rRlqqW-N(qlTypozv9L zU`cv>G>_xJ%?6~?nml`nDyXtYTE(?p+)AW}QsCkm4weiZi z-w;Y>j9k=*3oQR&S$!@_WwF0C1if@0p#F)o^ns<9wCAY=i37)ETNp2lzs5u!z7WfJ zA$YB4w3mRWyY_qW{1LVpe~;}?o!5`DG&g!a_J~B-P6upb>6efhVZA|dhEXEAEtn)* zVoX@p&%wQx1?h#-NRA)ui}u3N@%Wc;x*dmlL3)8?VL@yx6qH zjutJ~oB^9Kx7t?DnM?>mAgDmYAHmCo!)6kyr*WoyA$kE$`_f-f-i=_gYW+k^E>;&@AO+8uarEuGB-!+JX4SSxGaun`>qjyk|Wc z>skui=4JprKqpp&1!*cEY&vt%CN$E{AOq))2<)$uxa9kKr!Q-rFj5a=bs3J;en#}2 zP$+ETf7AzO&MXfaM1oY){d^U3`6X7$8-{Cp@FIKETll@^QRg((R5bhg2#7p3 zt*3QG@UB>qaWY8S2O-mU5*C+J4`wE=4^`W1*j3&Nh{K|{`r)m+5t=-4Jpg z^pLJEmSU#zl2(t=4Z?x&4=n4OV7>dxsD2!0f?urHkA4UHMo&AZy`F&BrlL_2g5`;W zH6i!`h%`jvViUZls_-}v2J^J211F5W+o{sbn~Mt<>_H3JJ_7lZm=DN{A6pNb>fO@* z&S~~(Mnpt)V3sir>x6oG8cUHQa@8DxSB|4s_Ti#gKB=-&u9QqM(@P()_YY5g3HD-iW@#tE8EE`RS&cG`h}AS$;mF zdoiz+P|XWq+2yRwfoNdbtxZs_k5^(Pi$xj7v^I3-IRse?!8NM-Ja5xhFit(3%yNPy zYw?^0v5|>1g2B7}WOQGASbH$hIa^vgruq=D zY{nkUb6(_Godbe6u)mY^3)qgmmw5Fu^_aAac)HZb{(wp0{Z(;ZG47hjxTca%m_{~p z>||?m+Bt1sdtR*sE6mp^S6h$U@g6g4Ao;_^H|AoQ=$rkch>81|XUZ1(V^l16PvMSV z5VeGV5FH2#sVLH46JWqvS73v&2+XHPf=SWWOD+`Jtj(|V$7jk>oq?^hO~QWx=Oo_w zGNKJQ_29GXRM`%6)Q8rZu8v6K*oqyDU)s9%@Q13W7$ig!@*gtRrTZyz8DXXSd^STF zjTaQIa6MLZc#rN925X*mPD@0aDhGFpG>3LSp$!EkFm_i!QvCO1P_=EJ5*XE@tBk_W zN)qyGYx{2#N;Vm3S|T?F(eGA(TW;bh&yJGkNDIk4(-Og_Aolr3?DFz&bz=tJP~BzI zm^;IETpP>a&RAsHu6N#`JK{!z%l`TqIH$oRL%7-XPXvCTmsE~sc^T;76|GrpD;Mq1 z{A_w~LPcR&*u`J%cqBF0?6O7k1tA*>eE{eVn| zSuqvb3~Cjw1I1N^Y-TQOZm40*p*v@$_(T1~Z1%W;G@qCrGZJZtDr zDvlG9SNT)vR$CMa-kwwdCmJyH_g%M;_(@XtpUfA4}Gs8NjGlNz-{wi<91x!z7Gu=m6Ypzq~S~YO3L=ONK;r<8`{22 zy&yuA5tW%!saO$6zuuLAKvjMQOCcBi8>a$=cWn{O~?$BYR%z@GvKGiiQ7 zA}Vx2Yd^%uK_CoEo%VYTAs4mvR)8dcl?2;-wAY9qm={G6!U$m?%u#T0yUlbs&78I_ zW*FCJ@=u*z-g~x}%$5XtcFjc5uGVUEc5~!*OnVdRfw2(HAjH=qCzte#>0rkMU)*jE3#(pa z?cL_VL`mGV=J6qfw9je#DgSC)r(&iR5x>(5a;yg-(nD|aJHG>s)xb)U<;$FzGcHbj zpYY%$P$mXEb~JRe<{q_=oFxgAxFt@r+J|PIa9Cn7s5Pf|$(t8k;Jb0uQ&ZV_Y@`Sh zu!kRpNSh%AlHTU`{{p!^O!5uMz4fFOV#*5&xwtJ%1a6Xo;5k z{$@{^;PqD&Y4czkOf6W&22vK-ICEpxXo_%^s(i3(wWdJ=3K|Y9F&53(0$dast(k>u zLFEI{7EKJflr)C-+g!~idjfy{E@Pgr&*IGt)EmrL@Cc7jk zen)Q>omZ(`vVjx88q5v8pJWlzU$aI%U9lUN$tuTroB(b!D}~ij+U(%nr%lD4vNY|K`i}RO^CLdG6jB4yR)6qzt0o$fZjx+jKLi3?GMJNrN<7h; z;1?a5-N^WXUS)sGuY20U|3>-|u1|GHX1nDE=Q|5Zjm<}%=N|d_z3x=g%Xg|Uq$~-$5BD#=CTQim!HFqAWA%>H>Yr+a2weq z_`ouufo+b**9gnKlU&B(>O4+cT{h<65s8<-&m7`Ze3AypN&+@lXPhc-xjtVMXp9 z+n0A~nu=Sf!?^gU4BEortHfCKQdRKvaps#7IN zR_~rRvr7z?q%~pEV88C$hIf?-Xh?TFU`z%M_OF4y&l>h^+Vz6cMn^Y7g_5TiC_6*Q zI?s%VbWeH0c3d4Qncf1wkcC6i2}Ad%N~*30Skgu&JWK~A8Bu;F{C@Wj`bvhmg9gTB zY2C!(NHL)0{w_QgKt%4kHEJbSC4Dsg#b2hp>QL2Q=38W%4<$=HRNBuT&3KE?Z7gK>=PC}G2{%_P<4}ayz*iL%iLf^EqZ^R z#k>tgb<|sN(3RI14^ihFWirGQywlOKFk0guF=Ho5O|5G$dqtm|P}jL!^E)nlcwH4) zvv$9(0*hcNBt+6aM;Dk*N_?XJ%a^VEN7)6~yTtleeE?J9nk2sZB~KB!=UkY`#LK%cR7i_lyaCa;n4y6}zCdCP;3~wCZ08Uw_+esI~`}kXEkI z$wq|ztw6&xKk$lwPEP~XyXNJ6>aD@FgTT9JOi$Ym&kgtg<+1bg z#+nVE`|esW&w}6`hH`c^%z$D!=*Ec)UtkV#@ww4#O%F`)bzEOtOTpvFn2ye7_7 z`{$ewe_X^{yJoK>YsaT^g4VOYpYlDkl_e2%+nPk4 zW7_tH8aA*P(<6qza=zg4mn*MEaj^_l-J~_u%4}&j%gs`=qV8;ovVJ7NpyU;yTq}y6 z?}()Jvm;)(ycMU14@;acdXVwFno(~!b{1k_+&Xm~q8?Dcv3K(?{hp+>eqBc~ado3y zyUS}nLpQ|UV0=@Gh`7-veXH7h)Ml?$ao)4#n&(2GYGPr3K2>f2SgDg_Qtxgh z+(PkSSXyF0xm^R^!w~jS_oSy`@f_lZn0#%a&}B10WVE|VMhy7n>q!1XsLv?a6^w5x z6W1!XPEA^1|NMi#J>8K0k!V1U7MfhD+2Q%^(5Z+RcWA~8Bwts1MQ;3LLizY_*5cki zDlb*UKc5R^w(P9dQ`3iAnY>xfo}<^Yti6J%nJQy9mZ5oLQFv$M;a_uY_A;LZk~RjW zY+z(@S-vRB-E5(Q=HtHK+}Lpj^eAgHd7#!2vvg-2o|_?$hz!(vS|6uDd`bFPwFQMKXmLRIUp*XvzYaFf#blrJ|VW9P7_tM=FH%KET zqHzO~{U(Vuyp|bE5Q$IlGGPR7YdeSewdVC^YLjYeL(W=u6*`VeYnJz`a-5fGUWcMr z+*pQ$=^7!?KHUPwkYkwx2QO$xh-Y0o%W#>&gW(6ps5k>7&^2@<9KQ89IMqP&u}4;G z?)Q9P42LTsIoSqOErle3h#NBmRduWLM)%H^^^NT7&C>%GA-CI(Z;CA#uD8)OPhg3O`Ry z2v(N3nY=}j{Jz{ksfh$t4WTu0RVNE}tKJG~%+MGaqMR~3wSy?lae8n;M{~X51{$C= zrzP8XA#7+8(S078qtqJ%9Wy?Bf`URP3%7xQj_&gYC4$k_>zN2hM+l;-!t8P?Syl#7 zFovI^l(D3B=lVMIPPSy&z?Nml{AtTXY$yM)#z5Xmf-_A^j{p)Z#r~wZ)ErOERvJai zM8QH4<53Mlf{`P)&A@**8L$d^u9F;VcKN&Ej7uyAff~hlAF_C@W$gyOtO+&F0hpIr z0enjh;8QOj^%X`i9`>M!nAlQU>7fwd5i!%71yEu!F^T~gaQvcMau^p30^S(cNr3EO zUSlv-i~Gd9#lab-rQYzg&{{Tzl`V!!a97_@AZt>9j`;1*aV72e@i50PJyG}h%Yod= zZ}1p^iMpvrJbx3MmKyYiB9vG(ukX?zYcMUb^dB(#wKdG8*keLg(?*_c{DgajAZ|v< z4e4)471U_Ng-n;5OPz5YA5G0i=U?)nK=1J|H@C4)8g&C#_cl>)!>=9%ff-iMotHg} z{+wsl=4>Tcf&#GWd}*b(mBj%41vqGXp2}R~>V5DrkWZ z+Q|aCQ^#B4hls^i;f>+SuYhpHHZNq9lw6GG@$p=jt@q)^_%j~m9BVXEn!Sn8Ji&#S zYUW_DnNEoD&-UWn%ZpD-Gxb1c5CrRO3=iKC{7doDUI~=Hypn764(mwp2sLe2JRq#&m<^u^hqz+jSszTW?VEadNcxChmh|ns|#firTlqP169ep?n6dq z&uXfLdj5%xq(Q5M%RHK*YeV3WgyV zp^Hk25S>XXPH8u5rsBF#{)5@@qoDp1J%6l$(+ULlF-v2xBjizd*y_5D5_}>?aT8T` z-?q^xbqg$0a|{_^AkEe|d&dMbHXlX{RlXCqSDGGO4OeEtPM&zyn;z;iwb1~)e|6+% zaG4CN3o8*L{JWCdhSftRi1`t&CJ}G_kiF{j~(3TE(FUiOD7YOYx;=0fcS@li)V zgKC*X;?p3jr_bX^uvI)x1aPw@nYf`XmcDvH?QQ(T9dYB0-BM8E%QbHJah!#Ps@QJU0uL;6Y66BhvuoB_N>CQ@IkhQ&(*s&W7 z-l`hvkj5>xIv<1<@j*-;Sp%QfpXR{)sn#bEUj7SCPD z8l0m}F%ET&CxCX2?~25Uz%j}knPDw(cA4PcTmt37y74_TfxO*ow58|Qpdz3G`zNb4 z`*Fc;`rvtwI0y+gdq_Pqfh!a+(^9Qo2HWQI#-A@She8qXmW4ruO1R@@>e8{QKS4#x zcUF0h;>WrOlgGO?31mvVQ!yNrBvhp?d2q7~-St#{cgdk<+zsqM%dBR=2CWI!CAyjP z{S5stdg!5fqdW0Ud!bJeFEQr?WUVNMQ@X_To%v-uF$F5#EBLZzJO%Q_hy!o#Q!I2! zgw_Qy)bxfjm)e;{_Wc5;)}kkeD1#09p$7_>Cm%u|az$2|L6&}d*(L@r1=%7y2c^Ea za8|Z2Wh?#!HF#k@BA8NxS;|w||L7W@k7Um^TS)`k4lf133rWlM^^OTD_0LAKXQ#Qu zU|U$uZ3lvxkJhvJ3e=d*iQR_T8e+w>R5CtmR>Uo|6d!futzC_6Ez8Ye?>CCE*&K9O z#*13>c*^w2UtPEuVsbepY(HE!@w!_VS;>17 z*O(Aq-T%@|C981Z%L_=$k1b~`wz^P<7J?)4*Yq1q@mei)2c{Uw2PFNN#Dz36+$rSs z`s9qcYw~*j@PUnWqPQtRYPaQo=n_D@Y6NXe{2GHy!{VkCC})5pTN4abD9k};^Q5CM zsk6As=jTC&iKKpYeBWN6N;x?u*WzbwAx0UMIL>_n)ve?j>%6gQTnu@2^EF;%WY&tI zztEbCBH7uvzECj+^Q}Q7&x0k)4l6E0MOF2iI4`U#Tv-XFI|!%F03;{y)6l&6yDPOL zV440A1LyIHh%2*@MW^2fxONAdAHR-!JPoj3|N0yiHUpD2j^Q0r@Pe3D7eXvwOi1Z{ zNg8-N(<1{D$D6@Z6U_02ybM}XmRe*R4;?ik)IaW)Ya8)3z1GTwBXgVmfUNWH4dSt} zMNhO)njJAtMEw$SJl7WwKPi7mmy892pS;Bn&YX(V!?JXDeb6AVi1Y{OkU;MHv&x;h zj)`aUi4R6q!12sy;n$s!mFLvsME-`uY5&A_>6jlnFC;GnYcHIDM^~to#Z4-}w+48R+fQ_j zAB2OhM0Dp#sLzgSt%i2gdy_;kfX_z8ifrvmgRiekrIP>`eMktDWaNzDWfO>$$KjeA)J;Ln zcZl$!dyA=FoISmd0Tuzqa2>*632P~XoLcX@mnatqfvzxxlvP3%=)wgmr=9#9vx$!U zeD}z^+N7DwfBAAPnYAEUenf6E-M(eQ!m|^;_o`tWITo?NKj49pQ_NkVC2NA`v`>s? z?D(f=0_)tw_m8YOv}VDU?KhH_PZ++i2$n z(xlk#Wp8%J0iu;V6=hoBBq*v%sJ8p%LCGsTQB1iL@*&Ee8=$oSq{`W7=Rq#nQu|y1o@KojiUwla!W+)Yvc24fLL6Zk(m7~ zmiRhaDc2x3EAK+iLdgKCg{$A>f5924!SMGSkWpBC;|_#OF*)ru0OtW(D-e4N>vK#w z9k>LN?{oHQ%PR|J{E~|NU9WDfVJQhOYR-)D0vYP$Xs{pD-@~iGi)}-LAY<@N_y-Ol zz%=}GQb`JqZ~h7HwzpMxk;Z6ZNVQvpPoVUWep41lt<&u3`5;l(MP8kB9N%-1&uLG7 zK8_BDL46!+NJ_59Tsr0cXm503Uu6-(H)+Z#z<0$}0=SVWBT;>9DO^e(4Ox)1rrbaB zn0gxiUI`q3Al8lU)Lphfd&A=C?~tn}ZJgP90ftx(TTisdgm{W3`M`MdHK0uO59S;* zJPkwjMKh@sl(pDwWMkS&HrdUvWq-{sA|e zzq=#gU9Y@bKAy1c@$=zs5YIb&-(8cTKcM_t2G=S*QT+%ipb@(d2TGk-Nw}%zv4YEj zOtj;sosU5062aFd!43izLT$ReN>Ttb+Ytd;D)<^nT1n$^KS*{c5K5x>oiOdZ2bMFD z*tHZC4o38Wk3J(a{~udl9v4-)K7QQ7t_t<7B(DOuyj}0TDB7YT2vnxzEdgaVWg9ak z1p&nY1qY6qQmI&(qOoZ%z?^{@R2D(ts42ODMF&O@7)3=7o7(__Fu&({Cv(p6cm60p z!#VHrywCnVi?4SSkK-h_T;x17HVcxhR}6O?-y~v5vQs&TO&dqG%AE3^OH+65oWkw= z)H^C}`>IXSn3blVM8r!^zvo;tB&{6JYRY;))zS>PaFWXCm8wiYsF7KrKo(J>nnKFN z?m*=hkEtL&jXUaDxAmWz#D)s}+PV!YAJrGdn}bk*yAJ8fZW5Awu#d*6HxD&|pX z`zJ|s;&ed88*+K5JY=u!(pUtU&lTt*;NvY^srI{+EI>yEQMjV@U{hzS}`J zzeem@Vf`q7ZO}mEy|M?fDecfi2lwCy*tS9N%*l|!{9iVrzV14ri1Azq0m?$-hV?8x zR1#7dTykkE8s%wUGK{_Wj&<~UpL6E%VL&NS-*)<``E!wiS?JYKe?s2_HDTAei387k_AGh5+vmPn_y)-Gf?*#^zJqJ6dC#^6_6B(uP zFn~pD?LjlFyiO^kSASK8+}?FTiWC}t2<3s&ZXo!a87qE4%p(Y|?C0d7Vc5=W7XWS- z5@F1#EJiNIg!WBdRlSK}VEa-r=RKHDG+18S`k{j!^8aL`PL(}Q?)?MEL*pMSyn z1xk@vUEQ15h9f|@2t=`qW^kPwqN&Qu`^k1`BJQ-CeJplGXI(!#&K!9d@zC+{LEa`y z#Eg7?pAJFKubpuijsDg4??d6gf+y|El+Y&?1t8F<_&e#`!6V`Uu3U$zNKj}$@8Nu{a)X=8y?wf0of3@e& zHI*j^og5-~Lm}On(=^NBlorp)(S6B4rFe$O>tAj+p9kH;{Yf>{W);#8-O_s&5*#;! zqB_HMk%#y$*SI2ZQCWi9mz)s}c}no&=h%TUb$02psdKg>Pw77Y8^o?xim!|#)-8q* zbSQ|f-HL1U1jQSSA;Bi7nQ;lwXk<78H7+QnlS58kPQp47$1uc&Xb0!pg0w?O_qWev zd_NWOw}7rX%<5N6aVKwltjdmqsxyL_^aXi2gV%R7-&~2Db`-hqPo;8kQP8D=;WvKuluF zunD=4LVDuvOR^f^2+AwDP{t=zED8gz7jQd$z4awzISzSwI!A0xV*P|~$%2BD@Cst- znFxP}>`ut`wtj;OKkkKDl3#MrAe)-j9;H%aku$+7%7X*zOy}>8lr`XDMqE1r>}k39 z3_kA4bp&MNp^6NpfVMv4HI-tSJN|Bn1o{G!;=7a#YBFtlt^f}^@A3PPGzB7)iNph+ zdo8M^b&ZJo!%K4PE2d3C>iyfSW3V1511eavVWbUIK1S3^f=X8OYisAI4nffd(UHGA zsDh%M!`qf2$Na3S-7r1fUA*eBj-yb|39MSIN=&ie&XRbD!z&c=)t7rSccCqz_#jkf z!#qF8-G{(UxHAsgeK^S9+$00yj@|mgjLiF9SxQ{W&!DyiH?9%wN#Pul2TU!^cIf~L za@ijTl7s4mH19fY>V@7+f3lLLMY*2A>5#cE0E~7^m?m1|4AqtW5zk+XSzt;NQND8Z zlelx{w5`|D$*Jq>eL3|Ad$qW}E?M?IJ$L z|G5P=mM)9`$Q8>B($k|>o3@FlpS{r6HO_o&6dB|O7I%wyZjf1v(&a(#!Aj5?)_&8* zJm*N1RWa`jhN3$c%5#l_Dt(Qjt7UpOG+_2Kox1zdj58pil{*4MpthV4vfAx+pFgQ~ zK|cp}Ww^m#6I02xGnyWtwOL5`VYj2eFD=A2<+ZkVVHse~QMFfmOb2*R@m}_NV|!!$ zVlu*=DALB%`tX#OQeh)@WFvnZEzv_mMG@A=?$iu^?)K$nsHaFN{Jk~e`ed}ar*^yf z>O>Se(+jg*NF6KdDWI%M7t{2%!>JYIVDk@h)ncWo|F$pe!w&Z`gN+9jUBqkSJCiU@ zS{aR!cLqBZASQU?J3Zh`Dq?MNw9{Sgk){_Qr#Mg}*B23xX*hn=VpS&smPeAcfxXKu$TuT=^C9PuqHK`*M?M1zsY^Oa9h^Q7SBw9c0H~k;0%+SDfWCL^urIee47DMrU zV8YffQBkJ{m!r3O-ue;cOy7D{zxbVE&p?m;Zjg@NjrN3LXq}`e*U>}7%_h{{yZZ29dQ{3hsr z{*nRL^JZOh?*_3zxi{Un&G0hyI+`VhcZ%{{NC7;-JnPm#Wh{WS1kIc9eP=k1+bKRW zkAh|1l=3a4^TI1Wm4l3`&igmE8A9if~s>)=Fy?~}+c+PUw zQb=17o@w}jKQYwNT= z>Tf|EdFwS$RKV?4U|MsLUEJy5mWjlKa@5I+xQ|t!(nX+gL=P?){I}qHHer3-47GL| zFp=9qesISuJhmCv%y|hAQeTc96H3}x3e74Q5h@w{cIGz0^>OnBoI&G~lOV2FFyoI> zU}<9z;JrT`V?JRT#Gu^zcoU}2M}304dE@1*=Nw$@)(v3*rf+Z=&BjvAX0Ax2u(4a$ zufre>*O!55Q01punGjJ;4B%#4x0@Fuccvn4=p;4_#K8;q8`l1X=~o^KUAtlgBfRDO zT!~`#r})*dl6|<6nQgUDin3I^lE1qx@;KB76=Tx2-y(07JePf<@UKX@?-hnu-t3x= zb?wz>u@RH?quene&(Ti}O}Bh%5wI<8fdk^QSlWGZkeWZC)QsBJ6f|&IgglC2ph)D{ zLSd~OWP?%Lz};;<2Rdq+f9=hjj@LQHuTJJaS9nXSZ_`9GzP7RKe^3F4`fzYHupc4N zWQIi0il#%uQ;L1@#K{t0m05%$iVu=BlVtJ*N$g#+j?;s4(CQE@MZ4c#p1CiXt|=hn zlpZaKey%nq`dWNX-XC9!*W>iAwFxS5ElTZo_L9uhWV%t0qs%{{DN&n>MEZzwMBrkN zoIZZt$aXZ0s7W1HIeRf#jxb!yCk`9el}Qm#1`qruEMB$O6bhC|Th<(95h{zWZ%svg zO(27)%^A`l_^os$Fn!t|ROIER9`PZwS(+?K5)3mF8HDTd3Tc@*gXM+UWzb%HXbhSM zbj^ca-cC&9PC-i=E8tFjcuWJrrRKp_K360#^*aaE=gi?4U`%CoEal=K0?t@H%78OS+g>n?j%8eOBE&Ky{$@I|A=0Od(mUsA z;fg_=l@@<p>nnsFfI(s)r#y)<-Ml-}V29>uJ5*H)(@YX`AeZ8DxW?HAWyGA22ep?# zoh^}jnGU)af(6|4At)3KDsRS%$q);=tm}TJT^zKMP*xyf7+%rkJm*r(x;~d|Ka*^K zpSLXWr%(^8!+;FQR%dXlRs+E#prWV`ZSsGPH~XB52Ch14gY$b(QPCIb$jd|uZ`7A? z$FeX8Oq718wn{;{)sLU+;1>0NRn@(jQ!q+QS>2cqI!CDp#>FEtwa~Nz3MWh?+l~&& zi3sq(Mo-pH#3^Vp=IhO3@HW+dqnoSL91|Ub(bZGoQ4A`_P=7LzeVw#Uwo?=>0B(_- zgah;qDm)PQSZOHvaxQ#5tQ-z$Ye=o?sLZw()xwz5P$UUOM5ZAO&L;F z@?0?G#&q+-GVr^|PLZj4?j;Yr{9wHGrYQFKc#VzBX`k&TDf)+%%|U(xog%&^nR>C; zsr+0+=8(dgSz!IF78RH`1c&5yN`pYsFwh!}V!!r;tDF^@YfDn>!MB2mJX-ZZ%UoH=TqEd}j&_wX8#Ff6R^l40|DtiDCD z^}Rp9{h`=K3_n~cjm$`S1AT;AJT(sHsVCVw7WW)QW&e9CQ-}Uy% z@)YSzD4|$_0#h#o&%VeRJ-KiyYLOB$LJEBg;-4|g}SVtB>e-wfK!IOogLAv#7!&;XC;7B!6a)Jvp zLL5X6aAn661z_4K82~o?M=zaYV36n*ovnwu{*Bx>*KG~!anm!ZTA^X2rzoJEF1Q!O zP4)3+XFvy4O25YQx4X`tnnhJs=rwgvlF$ca!3?xC^xwPWH7$gWGs0t7=&QlVj|ReH z=DEqrL|PiXuwu`Bul5`~>+u~$Or^*ijxzd4c53ocZ8xpP%NTGb;6NSVl#BuJ7M{Kjt*xN0uk~bM= z!22q&>kBc)n9j}5PAG~KmuBm~5ymuw;<=j8d{~+$c<;ppf^iz|?1p`plYL8@LL4;Z z;UegJL~Egw29O4ctE6)u{`{P)y?tM19%=%mN+?ys*3MegSk(8EXzMP9>wE*#aAXb? zVnOBMf94~7*bv?Nv2XWwS3@UyitPLMd>`}v{ym~`sv4Z6%>j@^w&E^8V^kEynA4d;#Z-LG%YSBTsI-5^`n_{G4E?IO_rTakn2JsC+4`0X!FyKhgZ$pOF z{*_$PC9>d*!DT10WMsRB12lHO{*fx$J5V)KaV^zNXyN-Ru5A05R& zg!ZFI4eqyohuahEooD@co-N=Y<`af-A?NPzxyYlK^!2rRi}t;LiQkzuQCUY=(k#2| zCaH%g<_W?~q#kOwq1j}~tx(1eN*BL@gM@deq1u{tECBqtPFvGr2FLpQDCG?Ez5K;_ zLiC{8)OmNL5vwUf1n4(hn}}=27&4`H3?!Kk@ge-{Sa3+0NCGL7%HC^9R5&ANim6YL z)k%9q^%)Is*Gc4(Nl<0Kf{<#KT3Zr=y+N#YPtgt!)49w~y{Swh4y*bDxE-9mNV9JL zn$ci24o~o}QFMB&wr?AcJ$bC37`B5eS{GM0g81(#iI;pJQz*`8hkIQln=lqCkyB8x zBiwZ4WUBQT5dNRUBuT+-NS77?ccDwc^|4-sZG5dBc2D0XOg&}yJ-+Y`)pqj@C`=>9 z*1}5-Oobd$WrkFRV_)CIv)}tTWo>|NP*wv`?ATdSb*QQa%70g*;&!htFmPZg+%pP6 zH0Ay_E*2D(o+>a7Yk%7XtrWbihoQnZHE8B=3!r3q86Fqg*t>(DE>b!IjJJRRkr)Ja z+{TrrWIj>^)M@Ds?O6QU^ks?Li@Q*C0Zi&$xb4BzI!Up(~5^d&&g^2O;-tr11$^)P%`QGb3h=%F8F+ zoRnL3w8Dp}x4-45q(c`P>*sw3#)WBuH3q)kG9QYM1TbciuA-lp@J>sj0gD|{u6CIr zjf%!Z(LxM18gEGvY}}q~y!HAQDyUd1!k?wpc})DnD2l6TS$T18~se!%HMuT#vIpzeepWEi*&x85;?NJPpi07WKj$8&7ol?2T$dqnn|t8b;| zA~PPE6Ku{$2Buzn$Zat;6|x@5I2&sELMMu-D6-z2u-+V75kjOL>`}#yM`wbHlW2dB5d=nb8*8ndW_WRz`QUNEE-O~CL*NXV`TYV=b>R~75Uuw|~Y zpx{REflN4w5S~B>Fz!sGC>0X!ONugwuVPL-__7#CdxNTS+GP^hUF;QHsP zP#@IqLOx^EVa5TgUv4_Wzb$02Y}NWiRW{U38LpU$uzfw|Xx|{xo;B?B@8a!v)Jz#t z;|rdUoM@7YhN+DYGW`G?!h?Wi!8IM!lD;PzrJyt0QHtoG&AJ79(ta~h+`@^@?f!PV zc~d+ToP{gWhd=Q-LQ%)op2#UV?gnB-t0P0~Yn2v>OqGDv3pfO!k?GOJHC>fDQJKxc zbIyztgt^x?gW3<*!Dpd5!$cwa(>r>;fxEi0GY;$v=#ysu?k4kK+(cq0{AA*8fXf~N zmm?7xM;SVDtRWY!ZG$S0peItP7#K!{wSNE#@PJSOrgubZ;yyG%!&c>HG?SG(9C9Oa zGemBZ@U%=O0qDdqc^jOQBKjh>fCbC-KHYmTw3GwmIrJ%JOj}${Of*cm$qD_yD9=EX`HbZ1$`OQBk3_~ z4nZ?Y0YB2$Cj1xhZzx{wD9@ZcA};l>kBP{$g-UV&pD?7A@wYc{9ilU@-vDuS?1&{u zDqA6BN1|>NMlb6<6OLgMH2q`3^fq<+2L*UQD-`R4cssdSQ&_&Xy`o4WkLhdqnTkgZoC>&c15BAK!sUX8R4$j)0fsiL#1jaB)Ie=u zhxNYc)!nb)R9}#(ZXV$wMN33d-PhuoE=}izPO8v=L{)fcmoW z*iGjmc3)KQ?>o(7e?zN>KGxmDkK@vTk0cWwY}?xoErvFW7{D=Ta8w5Zi^TU*?$Gvp zglOZ7A462drZ))AyrJuSbZe^BEYOy;agoPSa0ZOjr|v-}Jtt3_EK)&2AKicvJ|Nir zMv-KaW|BxGW!`=YmrnGou*oN~q1lN@xEXgPOG6fd)j8a-n&9T!l}zFi@FfV;CeOQ* z-Wjy1Wzj&0xnjdq=QxUTA0FlL`_cz{C$Z$tsXe<|3n_W-LZPBR<0JLeBtY`l{#AGe z?))p_NGB+|mIS++eiSt#hwcn0(F@HHtU+V=V5Zzx2bE)n^qL9Lwm2%vj`ckez4f-Q z4%L}^a>5-d)yLyb2{~E&Ueq|X2ap~5aXOi=Fi(nhh&lwddN)B6$O-ZQg}dPRO|f|UUA@{|0t;0Y3EVs z_a55C^~k}YVf_+xmdi)5pruQBp3Ri@XTYz)UdLZQv^rR>^BZHui#T2_O6f5ktSGuIt z{G&?OAv2&?F>HF0y{gaYdl4H^?zpy4Jr^#;N3vT`9idupt_OA`x(5QI5@#EQIs_fv zeI4TDM72uwFXZKxXSvO~HYDm45(B&8#Q%r)jdlz6ID+jN*kH?Kw~+UJBLwv8k5E&a zf`ms^HP~qS<)RBGddN&!b#^i!D(O5+MSb9TtfUay$O+Kd_R4uajF}0*B@J%zt%U=- z_&XLz_wHF|X>L+!|%MSL5{C0*=-<$-f ztfTZo^$2=$9)e3_f%G z!DCp~yrc{~>!iwmzq8n{#W4HRA2m@$ zb1#1I^4#Pp#;rcy?|&uxyy}(zI;NameRbWMZ@#&-{OuLr{M0_xtep1|Ge?nA_~WAb zA6|X+lUW55>W3cgj_O%w?yd}S_+w8~Qu9E3NK)m*6Ke}co_&qH8 ziCt8n44K=K(wurGLp;oeWl&!BWhxab0aDsB2+L%|TOXOJ%}_ut)No}D;i3hxzN!RO ztB};kU-!nTJ|t7kD?U(C7B?t-BdjA)Uh$s85Pc2-;5mgPQX4FcmtmKb{LiR*Z&$_^^Zul3Wy@MT6 zF9qcJ2(~`V)W&Ur<7yzs6~3iaYJaoAnpG(6p{K!39&(21)nrA5r~8>oiLcOIZ~U<& zt1pk=43WtJ#0U)Ek*UiQ`c#cS_UT9mMp7t;3f~%kH^{}xp|tw`@(l7bzFuT zQe`+>D4c++w7e|t6Ufhd%GU8zj9)bdI%uG=)=>Q@f{V3Ke)A5rA{CIc>r#LmNX2$6 z<^ajdjedElqSnjVI?7$ns;wFWvV z-w<-lXM3Jb8 zfaWzNu>$H)R<=vMegs-9AWCXX6I=kwu^%nM_s_@hhE6xw4`x~>M#EEn>9Vq1XliP` zan=@MH5PDqk-X6b>9wRclzWXkDBM(`p^+<+;oZx<9@N#SPH4J`vdHQQ=uBDr#7lX=d6hr z;&kD!J8$(mDLYW9p&VInx4!fT4#M1n24fEsl9o&v50J?me>ocWiK#<~h~wM0^7DHJ zhUsr3%cJaWd~EubuMxeoO6TSUvU&U&*sZ?GbJ0MXK&yuA2rtb{@Y6)KlfBzr_u%Rz zp+e~${#_WjN;~mP4P-gVrw+n}hfc_<3=}9B*)E_n8GBJAK&y{j?jn?KnPUZLNPJ1W z1Tu9V`V6TF2Y1TiIgy2|%?BnV_Xd!;CTs&#rCapcra)1l8ReKpna2qTDHusj!m_ti z)P!V-m!DebE>(^h_&nJ>WX4Yb9%W6SyljO)MOR*a@`1?(6GbPy1qcv;bq^@LZ}1{fIX@#680=A20{Rg>KqP})=2x` z>E<6}gKnyw`1c?y^?b5`V5xBElQ;-&aN3_Z67On9dkquvl?@`XmCl|nA!-ZhNd2PL!Kpe|v24>kJn$D+~^ z%2tP*s*Cr%DB}H5UWwP}_&Xn3_qk)gGD`-kU?pwj&SqNsC}`82CA3D|TcJ55*9h}y zZSbr?$@+o6E&w0IwdNk2IRXD}Q zzbZVjbG;o{;~aX?5Pmo&Upx5TMC+N@IsNaeR;VrlaiyMxKd|}nfsnXi5KgqZ(cj}3 zdb((m3ra!Z8M#i|E#SR$f$1V{eK_F=GcJY5;SN}c?h5xVZLri~TqmWRLk?rcm5ET4 z=3UV^&{OXwuZE3;=buFleEg6VQ6py>6%>nFv=jYz$#z;l-&; zio8cirZ$}>*u2t-Y`&271`AsxplxpR{NW9fmuNNSQ&WcjyU6=$M3z+6wd>Hz4rRaP zq72dt!J)^u2oLo?Jtg3BiTc}QB*DT!^ZQQ)^ zRg4^j)IeV-i`XoTcTPLbFex&GnZ6MTEX_?W50R#W-_~lFwBj?6)^5Usw+PEU{rP;E zkiK4oYk3FP z6QCQH!WxXqlLy_7xk1c})q>W49M1t~0`xRYAynwFHbGRO&G<%Hd0Y*!)>4b6u&g{c zE({a`>wP(1;kc_r-)?tI3Z*EUwlfY6OZ$?q0~-AG7`xm9)BTA^iGaGURMb5eO?j@U zL9{XYWMSVK+<#>rK$>xy(bO~W`3H@7nnv5ll zs9D+(b(R}GUd#SO=;z*k&vnh_WAmJ?maTj^@Uf{9DB+$Tk*OPl zFY;gVCj@Lkf1t@vT@9Ex0i7^ZTh~Q2X9XA5^qA-%)jSh~&QY#o5uqu^-zRB+mkFdH z`@*b6WyoB^zeDCqRo>hT5sQ)IJFON(FSzfdfpj%6Gcd}DGVTRKvmoxAfO%+7Y=bx~ z9GtyB4L;T{9-Ob5E0Qe=|C#bo8JgI13zj0HfPCd;N6}<_HXl9Rgf21V9D+rz5s5+1 z@iXndW-Zj<8%p_LAwRH69_abg+n)^ql+YaK3)qNqB<Hzb0-w{2Ivf6;16Xy1YN@qK{HQl zRJ1iffou$fr7S6URN8TOri%nJKU+0DY~7)_0KPO<9KJoSg)1L%6*`p<$5k)HVe}IYMg~``>)mK|Q-`7_O*!52~!~ z5H6Mi@krLpp8d~*iFg#BSf-1e+0+v+bYrz2Yt9?QW*ce$C2OuJ)l|xbN{})$(7)_Z z2?E4tH=2i3)}@1*SedWj+MV9DF4nZ2M@L1}e~I*QT^^BJu0x6a3<8wT@71lnPPBs_ zc^P>1K2m+664vrd+wYZ=fYnTGp$8>Jcl0FlekPPN&z`8Xi0oj$Ms(xb5G9%2)O&*u z;^e~3zg^D+2SPQf;gl`86QSX9#dK7pm$}ZX*aJ#w%q0}Q^e~{g;ZK- zjnV$5GNQ#l8z{=FLOOsQCO;(}`Dr&w_$m?ah{|M`#Crr(a|HgGmc?$0KojNVKvDE=&o)u&oA76nO!hAf@_C>{zg17WDhX(_Ln zxDJS!n`1SIVOEzeSVEX)8;ie7Bf&KWc^Ou_21}&$V5PYZSxX5~%JgHqH4hm(foRdc zn^0J?4vxK+1O(6pYhzRkq2hq`HD6)9lXNP7XLAh2s)<0*?%pXY5_!0xm=goYfx%O4 z=Wt0qu`40na=bwP7~H%yDUiYe$ECvPF-kclT|NMztN6j6Pe5xkc4mU@6IY;ewFBDv zf(iLs{-Uo*itHv>J9!~%AE7zgd|Mk)PKP(tJXFR%lTT1yG+2L`~iipz+}B0fCf@ z(f?}vI7l|InMYsrvq$kaaP98}s4qW?-W+z(hR;pwGn&o2}Vv%OxPE+IVYVt5!C zr~52qc?vt&oomsL2ig@2LmS*Xt5*49=m(|! zKQdHS8MllH73d)PgH4M_CXnp%IXrvk*6Un9(`p+F|9<)ac~`_?K?LoaI86IjmC_Ws z@FJEi>{|~K1ZyZN=B6U5X%DrzoxHtXsDU-CNHp7)0YASDLk9X zVErTI?$vmmrvH5gQzRGqP@+DCuuXJfYTd|!j#o-RBNk|2#y3tJjgt|LSX*)#saw{x z0MvE#yF7a)6ik)tszAkP|2CI!fYZn(g_$H1cF&Y|WgshA3Lnyq53ck733-h3{`n~H z56m-l;fmA4$%jH!1@Rg*1P4EOq*!+ z0=4bNG6*;#^c93AyYlxI=Ax!Ta8;nc9ihuu3}q&O6Ng75$`{0}Hcb=;O+i6g=sRIU zuL&S0Ugj&QlnYH4ZH_r`;0BzOAHjFO)v~VaZh`F3?sL|(Vp<(Up~G4f6L#jh=*k6( zhjPI+8F)pow5BUr3srt&D=+0BWbWCv=;`;jB4&L^FpJi$RTos$3ql9=H=tXb5$~b;C`U+Wf zac-Q7VB23Sf(mzvGK@RW>(Ok}XM4&9dI1uDJ?!5epCB3~-Cu+>OxYQ~4`)Z2HMJfZi^@-bIvmzYjak7=I-c$}Ti$ zs~BO;Qbm*#pbz1g6J{Z;OirzoIOPbFdi49t13gMhP%68+5vCFKV}zzEr&Az-6@HQD zfkG$0MTUVJ881PAk)BQ{=u5}d9I%{x64ZKbV0H=E?$}@6;=(j2tmvc_1d7S0&M-aF zYJu_ddW?UPm%e)+xC@N0hm&)C+x5zI)divc@q&XkI2F`RMI1rcm^x`IakxAKxqetJWl0V+e(9=pif-HcWRM!+RF00WL$@`A-Ch?cSaV(KeI}?<*+T$ zHg2=62BGv{d&(T$zo*aG z%2WI;ZUgLt-A)9?>uUp`?sS{AKw#xh7-Wn~8VJ){8Y)jrYd-gM1mIm-^VRD;shB89 zMO#kZz=4xq7+qFdI~^<)tdpbMqe~k~y}w!($pnM1_Srz%^ae<-lH)iJXJjF=4w;}0 zmUjqftoFhI9?zXBKaF2bh=~SoI}~SlHVl-p{1BpJfqHHj$cjfq$CxS~=OWAc^J&+{ z%0r=(EzGoS8NrRQmpE<>*CVhYo!jd9NBl(u&S!7qm(6$7+`AfKIIeSOA~2o;eRm{H419al>@w!9J%se5547K4QUuh-#U)k3-w8Rmo!Dz>}Ku1 zp1id=HyAq~Plk4{u%hs)>?YZ2f!I9gxx~ZbzEA`w{|M%ap`Gc}_y`p3a~t!|biLY) zfn$?rl7ZS?G#Qd~K_ppw$uJH&hasw6j3ld;v4FwY9^$V>!_{T~d42#w9cV3LEMaX8vAneTN%F32Az`h{j#HaT@kshCM>0KTf1I>HP(SvLJ%meAqX~DX z;?_ce+TW~kQ-7pNSEWS{7*(5!+)FV!R1(P)TA!KnGTd8b5hn+`2CR+ATh-j)s%q<< zYrhX*YBX*56|@b5SAH19h~zAk0@gzi*>CU}8*&vfh$=tlmE#GKn)rp~2{VRT`ju@g zATrH3eq(@YzOVpa?=1}(!5@xNG~ zmg2J>nNH(^@_GF~h^ER8bCZ2L5{VY`G$RkvalaY5W4+HuSBB84!IS(2kWu8iUGCmSAkG@e5)+P~II%Qy;%f zFqG0(8mVdW0!DoAJIhe(!k}^ZRKe~xJqa|q10$sDID*tspZaJ#{e+IUt_Uq?)A;34R*{v4x|116BVsokd73TaMq# z&WwQSDj5O?SLvN(eml?OOC5S5RKin}^}2$%Jj0+NO7bSoJl84*1ei=!Yvv-dR5~ zA*auTl-X#3B-U7T(F_Vyh6x9}a;va7D7cDVAe=NfBczP!8*dHCd;f4@f)$OPuorz8 z(K_iM)oPPHw^;BNm8bK`El1IzCpW8X-{UV#U-JT&VzFJ3EKAalco<`Wxo=mFSdNF> zdLM2UF#~~q(L$V1wYw`fL*OBR+=ww;Br1`gTKLzwYl|VSOOQvWNkrREd6}5LRErNZ zcyhG%oUrwM1AGB7?CANZ+tZpF$XgHydS%B(y<0B1l~L9cm#h9IPi%H8C@K?nOJnO~ zZboOgek9R;6K_4>-xekmC`QecWyvy;e<)rh)9JeN_(S|R)?m~gch}TdFnQbOM2S)S z8yH%ii}fY4ayh7VAwhUCqyK_T7t)msW+Y^bAYNG>+3&tmGhW6jUq+robzW>`?Bz49 z^=|zlz!45{WG-<)QIn6i%Dc1z7N@)m6>Wa9@PMDeeu9z4))#Q){A=T0LX5FI#smFI zux3yWv2UVpmYTh{%pu{5FgI(@@8%pI2GcYt#X16kiT7K@eono_v+laxLN#9eD90f+ zQOSQi=KL8!Dy#n02&P+7hicp8ZA3gNb7pJ$-Zve$hQZkSP0(uE9rcSn=ZVIlmqajC z+B|D*Lb=pIlQ0>01?7DiXNx-S83Gq^*8L9XEsv%$%@`}Mm}f!B-{U@jdQ2WQzJ@17|0gfZ4 z4f?+8P%8cn&|}ZxulmNku6rX{jMMw;Y5y8>YB0Ew{VzszfQPya;y{9|UxDCHT>^G- zQc8(ZN;$W^3;33{YT1kte~kl zHLbEtL@k9qSySVqDWJRK_19nPHV$dLcHPdagS<7#!r+&jI1GhtFIhAAo~|nX7TVqh zm1U&v6RUhpDb`@x2$I5?8HK#G_IsQ_dAb~sy~FyQCk1o3RHg`NUh9n1%Ko@h5-P>C zl)oN7&Pzwibt}^?;127kv4Fey8Mu|{1F1aejai#c=BjVv%`$;i0{-Jg1DDWiN>+R} zYNcwU%G$He{`9yE%2^yh0wu?>t)+~E`)z9nkm8lDyoBtMP{1qtjOC@9C;4Ca^VYj^ z?z{m?7x6$1T3lPS?%~%E{33h{LQfu(SORL}6ted>%Y0uzigQC&o!st*neaDxBpu8<*|-gzx7qPetl!S9WCt5(1A?yTeU(%!cH$LkBz7Hogv;Oj4YPdGK?<&U-w{g$^k z&v}1%&d*h|svSKu3o;7qY-IPOzma`lV5$$fEH-thQm1 zM^@aKJ8-y#83aW#(v}SDkGqM#{Q1!13J>>P=64^Q1K!9P1Wh(PJijW7--N$BeOCO@ zC7)&m*ZG+FYLoj{?+KFe&SjhY^b-Rssb{p!w4lBMi`mz4cv zy0NE%p&nW({_^xugiey~%$;F*i5%$IvzLFGM|HYd@knL*Ms3`BQ_F8}072SX@Z^Nl zbe(5UA!Pr2!a7>GGn$7O{;H3&5W($2C^E0M4v5u$UoA;*n3YOv$6cV$xI9z@nGB+s#-kE+GHGG`MrAoO2`hhKHiRdx%?@v&IWEI_2(=L?>q#-o40YlPoKIo zJ(?t0C|P*NY70i$dNvlG9Fx%+o?aJs{^VjdKO~D!A#YvXs4rQgYPNo>?&g>L_na4^ zkaB<=;GW;+bLHGrTAK7Yq?6qa!c566Y7DtVX90Z%6b6L8)9np@^q@Z6_0*&alMS;1Cu z&C;EYRwp=lx3i16A`E%Pu~Yal`*|x5eZ%L$XHTC`uK&P)!`(+Z+v|W6QhDn(17rOF zfBEyFw?GTVLwq`UX$pBM;rC9iS)ODKg0a6J=5&%SJO#G>>NNBYD$fP_d6e|ES{*Zc z`f8xZloaz2s(7sXcGMd8F6@^$Wp}z+VU=QJDsxaXlYl(Ng2U4eR^{0;o?cdO?Tt@m zvRWT_QB>X1q~8#r?{@A1^4n~^zv#P1`D}gxS-N^WA@@tgky5+7a<^gxo8{T-mCA(P z#GwLKT84_gQ41ovVRYxyS0G>Q%xxHI2N}wVK%uZ{$byNKO)^mrEibOP22hYiA|bIG ziOX8Q+BVzs_=9IX0-{tY?*$DeR^qYW#+ZJ%U5YK`hjCM^7yj<8ANcv)8Zw)&>7V6_fwiU%YkE=jrSO{w zINdCZN&vRJNWI!hD~#&!T6^xi0yLRE#E*+cF? zXj6~rNYbznYo`As6=a-_$N}~Nkqpz$jpK$fWW!HS&n+)5Q1u%bh#2ein(~DXOVk^z z05CaUF89rLA*V@>_gvpR)yJl*Ry)&wHTZL!PXYPrM}l&T?=^y$n1l@S&xd{Iv5p(X zT*Q-OUyC8qjIFqOEG|}+X+0EMD5(e-xQk0FCh;WHv0L-F7r8eqIH#-%3{Ee4@bD}* z*V)UQT^|@EORsoPI*M6PcQ5qGJ-0!pR^5|X0WI^mbD8(MX68MaDKCmIczB_DX5NhV z)aA>ncQgt`fHKsSA_gKhQyD{1@5bit0|dzdG>ejJpHt*Ud7YbGeBY@_WB#dB2k+ zH1^iqK_X`8muYs7h~HyQXID0F&`9b1d(AkC(PQDBbOTD{th%rRF5}`ZAf!M_)q}{rpQyY0ra4w##U;kZ zsLt=7SL_+#*LZT}NaG4;-Ar9X{d@n2I$PZ@pE=tv>2Yja*@bJVZmJBwRPW{nFaQbb%PI6G)`lf&1VZfQSCZ%fZqJm zydmAC7ur5puxyC?j=!OitCXh69D>zE%950RxH?^y1nDY?7Fk8N9Y4_*qncMU^V9VF zwdE%s^he62{q?s>_L)Km^aUt}2aZ-MSNIP3!T%2R60mg1Ham?y-w!#aq7L8=5E^@F`f1 zSQ>6eu=HWa8ZK26WRY%{ik;pIdf-*o_nGPN?mC?;Wpw+{;*wNZ5z{GYJWvu1st&uV zrFb&TOYegsOE-?-ruN2@bHClZnQ76CwV;)&0F4Wc`%UFHx75to!^`_J`69s%k!%tJbA$e(?BB_(WN_@krc97Oh?3?05wr zJo!i&^9mDhA%Q(ji@8>CH~Pz}R&sm3UkC*s#>;xLZG&gU=5@+CX1{~VjAF?oxwotp z4I8?E_^p*|8jC?T7zt>VD>s(){lQhmZXG*BUk~(M*7ukXc5dzDd?p@*&*?2a_53XE zFv0a)g6oR#QfZ_%*`mi!PK%UgW_vD9|9#z6v(21s)a%Prj=VvKXcJc6y5^F(0C81T z=_E_^TTLv$wo`MUogsa;D8G;42?bH~32?=&s+nu{*MN6p^pv5>+Q#gXcvTd1+#AA` z!Q?tdMLMr*R|L4~tc%ZCn`> zqDeSVul@qANvLUzOLj(J8Q}n0atlpeycMhQy4?Q({MGosW-WyHoxFS0Tp_WygGDTE zS2P|hNmMoOt_v751^2PyR4mlx$Rq~n#NvB!9Qut35RFz~v7(fXtMkhJ)W`4sZvGF~ z3h-oo>nq%fSB^G*$J;aMNn?>h+U`0-=E+oY91Dq#Gdas!QYkC79BD0h7`vcAJdKA`($Jxuq6CCJOPyA!pJ0mS5^=2@`(WT$@_Q*z#Nq};~bzK`X> zy?~vMfBgq|*v4y0rFKi8wta-#ab(qsF_F52+>$Sl__wcsA1LLC#+<%>zSaWGwp+kf z2fUV)6}c@7x1~m}@l#>@!+SiPKMP)FXY@Vf&sxmFX`{#{q8Q#|!7?0)ZLeRHE`u6Z z_b$u|1HfN8(jc|dIv!uU-3Tyb!%I%~*>Ra@Gti4a!w+aps$`O+$D&a_NxjJUr@A~z z%oQLQx% z@|(F6bHXU)+l_}oTI1n(tiop4BTZtx%OlvoD0pF2KWKz z)|6sqXYYs114sg^@iCE%s-0kGbmz2%q6s8pgBL^pn*(HlM^<=VL&R|{% z(fO#o6GL*Fqz)nKL-p^?uz_G<8)$d!804|PemR^etpDU?&b)Y_4jIz4sg_d=>I?>3 z_cPocbt$_`?xby!r~9enzZe6#XTThED?jadgF6M=1C+V_q&RL>jnV}+vzvUbpKhyZ z3TjNSd`@qJp3IYS)BKq!K*IFms8q1e4>C6LQgV`Xe!0}+NZ%tw*}XH#Q5cr=ODd&3 z7Hxmn#=|QobbZC2;kF<&$Hi{u_54ET);*TVgVdV456t@rTXH09Nf~f$f7~1uu`npb zvJ?n{^a(F{WZnYMV$({!<;g>?mDalgC_qkJa@U0DTnGz$NW?GIuxgp9l_OpoFp1oc z-92sohU?cnM7$ZbDie_ZH)mb^j>~|A5D9*`uZ6eMT(l_yoC+igKWj4eb56I*-h$yD zhDDovL9Z=kd}pfPf0r~Y5@tJI1VP)H+E|r7kWh8Qtc#ocLi*4P>qm)=MsvixubF@Om=EB=FKR4Ql#L1 zYIrpGC>2kt_EH|S;_;U6)J3=<=;^nP9qx zNjCrkY~*$#@U^As%o)uj$xfylmxHlf`{S0>G+%^&hy8+IQ(@QVa^}pQboi&XJR02p z%a~o71vveRbLaSSZkJ{v6R;hRPI+o$>B^0rnM6bQIr?Q7gD!Z`29sO#o@qVh3(F41 z#hbog^$<>q-dA)0`1h~id&xymQqx)o4?r2{MkE^jXbaZwaWt%(wX6$&qAsP^q&E4N z=R(B9JFs14M8}o)Ubx2qYwX`i=C6YK%E1LI(JY)i24;s97c|HxNs0*8vzPkAO|`qD z>%oym&pm#??GTy$Ho^J5OH*X#ytu1KF$&^-r4)Ak@2SIDEcVmhSy{5m89{wsYH;kb z?_33xgRfs)keFfz(@2|h6At$gN0%jwgHlW_l_dIm5JQDJqdo$1E1$DRl=gF%CB@u& zoy{QgzJ6!dg03uXzI%Psjal5!pw9^-2$Cj>+};5D@zGPYOOl01r@R&ArLo^ z9fgDv1mf6Ar>JyA3WD2!@E%!|1_UHTtuieLYJ9SU0E$8hTNNV`O!A$3AM?$}k5=^E zd(S=h?C0Eb8&P0_$j50f;+`Rw3{ZIExRO{@d=E}5kRC#zuS?Q;t`k*qH}(GRNlY%4 z=h_8r3U}nM6U{AX!^ATG>Y<&tU9heR4LQ$GQuYLArlV-IVQdrKPo3vFRd|E^h2uIF z9@cQll8bOFhu@(!U9C_OF6qN@6MlO;G=0bxX2zniRP;C;lb)P@R22;$<~|rP2}mal z;yW%^;cqHCm`JPW8k$$SfVATowr$lnS;n;NIUBKI4?UK z0taYn4ZFrt534$mHxX(J{^}>li(UL8^COM^)?yg1yje<*bF;BecL_D#f^U}RDIy|A zaYRC%o$|4HGO+ih)Ps`8NRSNZ0;%)-tyESP!T=#)S6OJ&IShFmLIQ~0lp52enfP?` z*!QLasHmHq3uo-nICeL+_TeIW*6tAaFuyB@S|Nx=Y)xc&W5R4XTf|GE#;}SK|8lTY zCW1fREX^yOw?owPN2D zt$PJzUfj?Ph{$c`hsEO_ZH8+SHCTmLmpH6|ziO#FM+K;)*eXze;LRIP08!p* z`WB(w?SfFSHAd!=d<(^!y_A(7OU@QpWK3m|*yVH2Wf|T>zCay}=>Vi&J zpg99tnX7+Ow*UzjqD8ZtguY_T(l|Fp3|vR;4;!%_7PlTeBQyRw)ztw$a>xHh`6DMcVs=yBR`BZZK+xYISR=q6LY7 zoG_ z28>GRp|=%#N9r5ys-E7|A-e)=ZbDo((*Crvua<7Z`wop;A!v-q#IZrO1@Bw^iWFY; zvYd-;!s?A0T}e|^qeAP2&>UqvV!8z$NIxmU61Wn&Yn<=6UsGxm#i~~1`99xUjeW>6(FPnb4z<&_)u5;5dD%$(ltZpgBw6;gc zX<%cA+9QC0*~?I2Sxx6o*nqQ~JD1ajB6nN%KKyluH-xMsLRs1;Z219TMtuAtKCdDoWR!#SY^W%j-^5)_F;XCOU4Vd-_UN;@0AlW=??BD#G22c2f+1oKhX@ya)M76}D*e6c$G917DlqsYM^o2^c-l6hrH&Y^;=80AUxsSPC0g1&_XmNH5O{8ms1mQ;W1OHr@hyPEE=?>{MbZKJ(DKEZv6(p70NXt_^ zcJzYKeAiS%X3R&VlGU{cu2VQUAxd#RipO5EmE23M_-!s`5$(2yx*?&Ip$&DHqcVca zDeb~Mx(#qx&LoW8To{Nm$G8n^dN0E-%b<9s>c0X&S7>Nt*I5*?<5>C~)e5bf^b@ZF zHF@oXm7y}AH<8X(m7JRF0_otQ-C+$hlO{iOg2bkdbFwhAfo36U)m{8-i@At)!c?Do zvlJ+a2<7AmR29!yh`n=7yP*jUJcEU)s^Ik;Pmnrix-kBoZ%>kM@SCvQ$Y&@L`U4~_ zp7q&tWb}ppWl)e*8NtuQB&c(%PcWY}`H&p!iJg7F8tM~9uz-1jWi&x0Z2-}04;l4G zhdV$IQjO&i22bE!c)<}e6jJj)Ox|b*;)u+8S(fAlRt!^EZpbw$?eOvk2W>-l^3r8l zHar<#Pp-mRaG(q6rH%BtC+X{fYQmcMZB#1`ak;I?K7%aoxVUzcU1{5(cNj$s`K$pN zGeZZdB}j0nzaHCWjRMf;;MVg3{6@tWy3|T(`YXq8-gk#B3L0JPi%KA z8ri{Vu%yunyywb};D)mnqv-`ES1hH)EMvLlyRy<`Ko`G=?1vlku2?&$E4`t7z_wfe zC1eoXsI_n%bR3(*$uBdcVLM)Ft7GzZmFLzLX*q+d$#E>L`aW?GtR_psM==cdn)AyB zo$Xr7V@$25#IRkk%{x>w+MYPxdTpIzo-D7ic;_PND_;9I?qC1PH-9_fxysAyPpc-~ zJb&=;dbBUbC2xhFguOx-9?bq~rF+Hwe;nHT`M=&dvE{*$BVV6&;l8xd`J2qBR@ceA zYx4Om&srwav)YCwqDk{K=iK4(fXB7thI%ssu=~S7D_GdMoqcJGxf>*o=mx-|+vKZ~tv9zKA|RG9 zaSAv0X3Dtd0GKDRrd-w5xo;0vIK zgVhyTjh6mc8X2_DUp=LYXn%UEyA*%3aQ8;@X>fhM_RodF#0O6_rZg%KJ5U{e$r=LY zBXZk|DIWngjpcjCe}ypHZTe$8HZ!- zuS?+^=(;-{A^B9ol{`bA6V5e4?p9Svh%pi2yt%EB*H#&XDN|j`jJ=aQX<9`$Afc~z zI~m+iCd<|v4!}_Hh6DlU4Ev&`7BN6e;{^EzcrEv^Wzg}~%-{=X;f)$ST5O>0bvnS) zIz4b6D^?Fz$Hc|6KMU53;(u%|ghI3lY65GE`0Wfo4RxNErI_XD7+Ss<=O>j%2(4lS zDKQbFGW|%8^D@wS;vw+fPny;unM^pN<|TmeLOuuv+fQ9F==&{gT~IMxZu&gdjN?H0 z|71aIV;NPCcuYLxTO->q`BdKksFv3<=0kq9!Ly;l+>T_B`t29xG67WcHZv&i8SC|w zz9=ZWzZ=#$UtCEF)wQ>bxJQPmy8U%8fl^;+2 z7w~F)(~0m1kg6ggtU5kBqBEMJGGSV~HBx zO@e$0Auqak7M`ZtBl&wt-b)a|Zmo<6o7we+iFt`IHnitig{@46L#Jd|NO5=S?{+I~ z!topR+eVEn$ow>R5JB2(d>IVb|J(JSF@F(IITx|RmVF0 zV&;pn4b*&-7dXkWZPsW05f=6S8t=Jpu^)dm84;ck09X>&zOP}|$u>)d@Oc#oR+0|9 z&HS8)ogYIc>ZfX1lKERx9G*J=?Z%%Gp(&FZfuT;IOj`@pOigkj9)!sTt{SF6@*fPL z1fU|_W#3xMHB%Ml&HVSUy3;MF-2rVGS5pm0613zdaaB}L_zY*erTO_7=cV%{ZD`+H zjBh~GKs!#iie0c0Arf1H=y^r=It9pz3H|DxXT#{gZ%`jZWBWk9Bsm%4y`i`$PG0(O z#FP!~1^Adf3zlH^gvZ$GO>KoP2j>udWg>3Fc^OY)!5bG}1H5Tu5t8$0@!U=)WVMKx zkg0f#S>F4`VR#k60mbOUv9 za0mTs#3aHiKR^N3IVz7E*E9g15OYR^;J(Q;6R;Ke7wT%uHqgwgu{aNvGUO)w^$ZwN zX~@`86RolAr}li)Wz0vq2kJOUsD7c&hPG1uxduu-nn^tt^lm~1>8oN4pw|M(L==D) zrzn&`7FZlzww{s0C!SJ?8s)nypY1d)d zR1i|{b&OaV!9wO)-)nSp;Sp3+9{TwV#`K3FTb?Ba4pom7hkpT4?VLTZA&-f>P;2+$4nZ<8QD@u%>FR77(EzUX_(x3o4ISv*BT0YXDm2o8>nfv_vUnSx%Q)HUJ zPFYOM;@?E#`rO>>B~X|&$n!%|I=_sj8@<6${6NB}UwNSP1ibvFCxwWEPOOZzXnm*8Wh-y=YTR3Hk_%$Avtt z$3&o{z64Iy{bPC$JWa}>mm}f^`=*{lu0XMXG{Ba63e=g<%9AkIuSQ1*CloBngDVaF zPy8H-f)%|9vI2Mv0w);YfO%<(l5iH^i0mTue)pKVtxvu(3Gv(ub=Mx_;gf6W+(MUK zLZm=DJWoJEEJ}TA_p4)?Y#4 zxV;=lg}~7@s@z>L?RiW}D_n$Dsafv7;SWUa_4CMtSzU{h2}G_uvIjYd69evn8;Hgo z3Fv&Df80yqfZHy7EJ_8k~xyMCjAj%Hy$hNe3Py4}-{`A%z2)i?UC_?-_)3 zb-}57CA-W@(3N|!t|U7CARX;mBhTR*Ai*l%*pEDmCFFPS0qQvlFcd*enb1C3j z-L5CDpb+yav`8R~O1(eGsr z_Xx2syFr!)@CVEwF}3@$j0<s5Gew>MNl-jFKXqv}E)_*_DUqD8>*}f68d!4i6`? zM92zLAi@ydnJjXA(MYjNXY6yiuV%Md4Q1@hC?lv-&n@M9x9DJ#y)+yh0CcKy7JTOfWSVs()X#o2l7^Du?Y&U^H>a1zm?`; z`su4<=rrCpLy#lbN+p89F5f%y1d0cy$^MkzT+soR4i5l2HuIbm(#1t{bbqd{wtS>N zW8Y29!zj^N81>%qq&h~naP&)fC;ck~@f=9HcBKAh|D4G^0q(9VNSAO{F!VpY1{9M2 zrHVgZ*|R+}B_5Sq#V=&gGH>`Ey_2qb^5$YfcyBMgxv(dA;*e=GL+)a#E=00V|F?-b zkw5Z{ zpxW1ic*`pv<0Y*9=@t1G4{m|CN2D;SPxt=HBA0a;v66inE9}(y8$DV=kcpji5U6{h zs)%$6vwos!gMaq^Zi5}hws05(Yk09Jj)*aA-fYd(iO{IA|>t=l!-yQ zVa|xRw}X5^a+vwbQi}uZ>qmy&)z7=n$b!v&>GKxo{Oh4_B0Ec3ycW|Xkzf1+&7pEy zlnz`2lxCfdm6$8ardKraqH&U6u4qOWf)Ix0?9lqE^L)^8z)3pi-_54aJI#+xzcOT{ zV@nh2d?uQ!hIM7rUWD7_d2q+v?lFBi8Pn#`-FOypOeokmoKo3mnww~ww@jvafeyAj zRS=HYz>$A0A~OU|KZ+doLMM(bmMFd2&&P5Z2 zF8t}HGM~HQ9?XV1K1|%fQCl8$YQ{U3%9lq6LNS|bRJ#C6H{FAW_mg2NdFiO5$ZziN zDIlBkDT>B>Hcyo~bRa}MH<~wj#Lg|>>y55+@LF+ECD=b$4aM0#2 z7&d9igDei8qa9kmmT+!Or<_M3Hd1r#)?0GL_(jwAW!G#g zc&8w)f-2$U%Wt3+;p#-4&2% z)8i<8;ndQchW_Y(vwh=Bq|;y)T5KtREZ;iFJB zB&MdxqiSXihO6?FU z-cKt)(ztz@OSO5jo(EJ|4r-#9{pkV?WpzTy@9g&Vi_+#+LwobBp2h&*Qp>N*x%Du+ zOU_(b*z?ZBZ>H_E7EtWnnI4!_Iu&ZZU6w=NJ3b$oD@4bK)fLZ@7SDO!**SQKc3gH& zzWlzaEaRP1$W6L!GAug`AIXOq>qr+^yTPpPH21~U02+rSiTa)PIHmpHhqBRB;;D|Z zE>+AQ`*bFG=itrFn`T{u`t45v1*mQ{z$FYUQlcBTodza2idhowv`s4bP{WyDRYisr z_5`JT;`jm!gzm37q?I~cGO~qB5Nz9ipJmWTUGW>vww#yS)<^ zs{*IBKckIx(m(c%RgI?=S)+CN6AEROi~8^F}fL!~@^ggcM9? zwPgwn83+Dk^P5CV5gq8H%+#_qLpu8)*}Q2JrfM}^nY2_q9$T}22mDc?ZGy0@b6vhwS@iXeBXMHDVbV}-pGf3z9c*Ks;BCG*`JE1vAq&U!&wfha>Y zVJ#eXzV@rQUldW?nR>~7)D#ePDw=zOsWs1klTit7Q5le4?gl1anRNKj^}e&Fd7??R zeTb$pZoyn$=_fVrlp6#!ibPI*V#p}_e~#}RG?@&vk1{PY<=K>RCkl4yy4PS3b-@?U z)@A7brpt^zHO*VOdDE4p^=F3`ctuud!;8JAZ3-xfMn4`^A(DC%Kd_(3@LDjZ((lh| zfyP??LHl5N+HPs@T=XH5)74Bd9N{K0@X{(ABL>;!LkbVw5x?_*MY+8$$EI3{ z=?dZ&I!D?CsHLVPGqSg>hN@_)x%gTVe-2EM^_f#Y4zchpbj+H8qcjTsx1Q-hUpl7RFM z+nutEzYN!@!|GexAjw{0HLfIGZ)Rx^aO?)OS~$Ll2foctA1bj|vU%26gt4@a*16~B zr4%|&_1;=kNL^b5k%#=2^hI!pMiRGqy((7~dzTZQ!U zYo`B)#Ayx`pQ`!M zn$oV>t+ASI@qv=tvc=h4QD#FxJvo$YtIHn08k->5uc@=_hu6~6C7mPFdG%xWZMji) mYh0EMzGhZK{}tb!%6{wBOs|h$F3Lo|f4nj1BjtzUfBY{15*hIT literal 0 HcmV?d00001 diff --git a/public/assets/github.png b/public/assets/github.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb3b705d018006a2bd4200ea94c9d5fb98b6f76 GIT binary patch literal 6393 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 Hu0mjfZ$b4` literal 0 HcmV?d00001 diff --git a/public/assets/google.png b/public/assets/google.png new file mode 100644 index 0000000000000000000000000000000000000000..78bacf15dd723a1f5bf090c777d4f226cbdbf639 GIT binary patch literal 18230 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 literal 0 HcmV?d00001 diff --git a/public/locales/en.json b/public/locales/en.json index bfe9556..1fcb278 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -1,5 +1,15 @@ { "admin": { + "login": { + "github": "GitHub", + "google": "Google", + "apple": "Apple", + "choice": "Choose a connection method", + "connection": "Sign in", + "division":"or sign in with", + "pass" : "Password" + }, + "signout": "Sign out" } } diff --git a/public/locales/fr.json b/public/locales/fr.json index 7311e9c..5b97efb 100644 --- a/public/locales/fr.json +++ b/public/locales/fr.json @@ -1,5 +1,14 @@ { - "admin": { + "admin": { + "login": { + "github": "Github", + "google": "Google", + + "choice": "Choisissez un moyen de connection", + "connection" : "Se connecter", + "division": "ou connectez-vous avec", + "pass" : "Mot de passe" + }, "signout": "Déconnexion" } } diff --git a/src/app/[lang]/admin/login/page.tsx b/src/app/[lang]/admin/login/page.tsx index 697e1f6..7bb3b09 100644 --- a/src/app/[lang]/admin/login/page.tsx +++ b/src/app/[lang]/admin/login/page.tsx @@ -1,8 +1,14 @@ +import Image from "next/image"; import { redirect } from "next/navigation"; import { auth, signIn } from "@lib/auth"; +import { getDictionnary, type Locale } from "@lib/getDictionnary"; +import { AspectRatio } from "@src/ui/AspectRatio"; +import { Button } from "@src/ui/button"; +import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@src/ui/card"; +import { Input } from "@src/ui/input"; -export default async function AdminLoginPage(/*{ params }: { params: { lang: string } }*/) { - // const dictionnary = await getDictionnary(params.lang as Locale); +export default async function AdminLoginPage({ params }: { params: { lang: string } }) { + const dictionnary = await getDictionnary(params.lang as Locale); const session = await auth(); if (session) return redirect("/admin"); @@ -13,14 +19,81 @@ export default async function AdminLoginPage(/*{ params }: { params: { lang: str redirect(url.replace("signin", "api/auth/signin")); } + async function signInGoogle() { + "use server"; + const url = (await signIn("google", { redirect: false })) as string; + // TODO: Should be fixed after next-auth@5 is stable + redirect(url.replace("signin", "api/auth/signin")); + } + return ( - +

-
-
- -
+
+ + + {dictionnary.admin.login.connection} + {dictionnary.admin.login.choice} + + +
+ +
+
+ +
+
+
+ {dictionnary.admin.login.division} +
+
+ + + + + + +
+ + + +
+
+
+
+ + + +
+

Sponsored by SG

+
+
); } diff --git a/src/app/[lang]/admin/page.tsx b/src/app/[lang]/admin/page.tsx index fde2daf..af15c56 100644 --- a/src/app/[lang]/admin/page.tsx +++ b/src/app/[lang]/admin/page.tsx @@ -14,7 +14,7 @@ export default async function AdminHome({ params }: { params: { lang: string } } return (
-
+
diff --git a/src/env.mjs b/src/env.mjs index a9743a4..6dc85f2 100644 --- a/src/env.mjs +++ b/src/env.mjs @@ -8,6 +8,8 @@ export const env = createEnv({ AUTH_SECRET: z.string(), AUTH_GITHUB_ID: z.string(), AUTH_GITHUB_SECRET: z.string(), + AUTH_GOOGLE_ID: z.string(), + AUTH_GOOGLE_SECRET: z.string(), }, client: {}, runtimeEnv: { @@ -16,6 +18,8 @@ export const env = createEnv({ AUTH_SECRET: process.env.AUTH_SECRET, AUTH_GITHUB_ID: process.env.AUTH_GITHUB_ID, AUTH_GITHUB_SECRET: process.env.AUTH_GITHUB_SECRET, + AUTH_GOOGLE_ID: process.env.AUTH_GOOGLE_ID, + AUTH_GOOGLE_SECRET: process.env.AUTH_GOOGLE_SECRET, }, skipValidation: !!process.env.SKIP_ENV_VALIDATION, }); diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 8c64b13..7e01936 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -1,10 +1,14 @@ import NextAuth from "next-auth"; import type { NextAuthConfig } from "next-auth"; import GitHub from "next-auth/providers/github"; +import Google from "next-auth/providers/google"; import { env } from "@src/env.mjs"; export const config = { - providers: [GitHub({ clientId: env.AUTH_GITHUB_ID, clientSecret: env.AUTH_GITHUB_SECRET })], + providers: [ + GitHub({ clientId: env.AUTH_GITHUB_ID, clientSecret: env.AUTH_GITHUB_SECRET }), + Google({ clientId: env.AUTH_GOOGLE_ID, clientSecret: env.AUTH_GOOGLE_SECRET }), + ], } satisfies NextAuthConfig; // eslint-disable-next-line @typescript-eslint/unbound-method diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 22d824d..a5ef193 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,6 +1,6 @@ import { clsx, type ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; -export const cn = (...inputs: ClassValue[]) => { +export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); -}; +} diff --git a/src/styles/globals.css b/src/styles/globals.css index f11b0d9..6a75725 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -1,11 +1,76 @@ @tailwind base; @tailwind components; @tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; -:root { - --primary: #09090b; -} + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; -body { - text-rendering: optimizeSpeed; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + } } + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/src/ui/button.tsx b/src/ui/button.tsx new file mode 100644 index 0000000..c524adb --- /dev/null +++ b/src/ui/button.tsx @@ -0,0 +1,45 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; +import { cn } from "@lib/utils"; + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +export type ButtonProps = { + asChild?: boolean; +} & React.ButtonHTMLAttributes & + VariantProps; + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ; + }, +); +Button.displayName = "Button"; + +export { Button, buttonVariants }; diff --git a/src/ui/card.tsx b/src/ui/card.tsx new file mode 100644 index 0000000..20c7754 --- /dev/null +++ b/src/ui/card.tsx @@ -0,0 +1,43 @@ +import * as React from "react"; +import { cn } from "@lib/utils"; + +const Card = React.forwardRef>(({ className, ...props }, ref) => ( +
+)); +Card.displayName = "Card"; + +const CardHeader = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ), +); +CardHeader.displayName = "CardHeader"; + +const CardTitle = React.forwardRef>( + ({ className, ...props }, ref) => ( + // eslint-disable-next-line jsx-a11y/heading-has-content +

+ ), +); +CardTitle.displayName = "CardTitle"; + +const CardDescription = React.forwardRef>( + ({ className, ...props }, ref) => ( +

+ ), +); +CardDescription.displayName = "CardDescription"; + +const CardContent = React.forwardRef>( + ({ className, ...props }, ref) =>

, +); +CardContent.displayName = "CardContent"; + +const CardFooter = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ), +); +CardFooter.displayName = "CardFooter"; + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }; diff --git a/src/ui/form.tsx b/src/ui/form.tsx new file mode 100644 index 0000000..26b1316 --- /dev/null +++ b/src/ui/form.tsx @@ -0,0 +1,135 @@ +import * as React from "react"; +import type * as LabelPrimitive from "@radix-ui/react-label"; +import { Slot } from "@radix-ui/react-slot"; +import { + Controller, + FormProvider, + useFormContext, + type ControllerProps, + type FieldPath, + type FieldValues, +} from "react-hook-form"; +import { Label } from "src/ui/label"; +import { cn } from "@lib/utils"; + +const Form = FormProvider; + +type FormFieldContextValue< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> = { + name: TName; +}; + +const FormFieldContext = React.createContext({} as FormFieldContextValue); + +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => { + return ( + + + + ); +}; + +const useFormField = () => { + const fieldContext = React.useContext(FormFieldContext); + const itemContext = React.useContext(FormItemContext); + const { getFieldState, formState } = useFormContext(); + + const fieldState = getFieldState(fieldContext.name, formState); + + if (!fieldContext) { + throw new Error("useFormField should be used within "); + } + + const { id } = itemContext; + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + }; +}; + +type FormItemContextValue = { + id: string; +}; + +const FormItemContext = React.createContext({} as FormItemContextValue); + +const FormItem = React.forwardRef>( + ({ className, ...props }, ref) => { + const id = React.useId(); + + return ( + +
+ + ); + }, +); +FormItem.displayName = "FormItem"; + +const FormLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + const { error, formItemId } = useFormField(); + + return