From 9e9adfbbe1185a2b41fe86011f2113c0b572ac6a Mon Sep 17 00:00:00 2001 From: Jahongir Yusupov <91022355+jahongiry@users.noreply.github.com> Date: Fri, 19 Jan 2024 15:28:59 +0500 Subject: [PATCH 1/2] Add redux and login --- package-lock.json | 237 +++++++-------- package.json | 3 + src/App.js | 14 +- src/api.js | 1 - src/api/axios.js | 9 + src/component/header/Header.js | 33 ++- src/component/header/header.css | 273 +++++++++-------- src/img/halmet.png | Bin 0 -> 186901 bytes src/index.js | 18 +- src/pages/login/Login.js | 98 ++++-- src/pages/profile/Profile.js | 80 ++--- src/pages/profile/ProfileOfferData.js | 91 +++--- src/pages/profile/profile.css | 410 +++++++++++++------------- src/slices/authSlice.js | 92 ++++++ src/store.js | 9 + 15 files changed, 791 insertions(+), 577 deletions(-) delete mode 100644 src/api.js create mode 100644 src/api/axios.js create mode 100644 src/img/halmet.png create mode 100644 src/slices/authSlice.js create mode 100644 src/store.js diff --git a/package-lock.json b/package-lock.json index 5ba1904..dd44a1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,11 +11,14 @@ "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@reduxjs/toolkit": "^2.0.1", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "axios": "^1.6.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-redux": "^9.1.0", "react-router-dom": "^6.21.1", "react-scripts": "5.0.1", "react-slick": "^0.29.0", @@ -3405,6 +3408,38 @@ } } }, + "node_modules/@reduxjs/toolkit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.0.1.tgz", + "integrity": "sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.0", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.3.tgz", + "integrity": "sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/@remix-run/router": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz", @@ -3731,104 +3766,6 @@ "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "peer": true, - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "peer": true - }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/jest-dom": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", @@ -4608,6 +4545,11 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -5474,6 +5416,29 @@ "node": ">=4" } }, + "node_modules/axios": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", @@ -12057,12 +12022,6 @@ "jiti": "bin/jiti.js" } }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "peer": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -14697,6 +14656,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -14985,6 +14949,32 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-redux": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.0.tgz", + "integrity": "sha512-6qoDzIO+gbrza8h3hjMA9aq4nwVFCKFtY2iLxCtVT38Swyy2C/dJCGBXHeHLtx6qlg/8qzc2MrhOeduf5K32wQ==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25", + "react": "^18.0", + "react-native": ">=0.69", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -15166,6 +15156,19 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", @@ -15311,6 +15314,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz", + "integrity": "sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==" + }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -17116,19 +17124,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -17276,6 +17271,14 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 1ea9b78..ea3a594 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,14 @@ "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@reduxjs/toolkit": "^2.0.1", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "axios": "^1.6.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-redux": "^9.1.0", "react-router-dom": "^6.21.1", "react-scripts": "5.0.1", "react-slick": "^0.29.0", diff --git a/src/App.js b/src/App.js index c87993e..9afe675 100644 --- a/src/App.js +++ b/src/App.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { Routes, Route } from 'react-router-dom'; import './App.css'; import Header from './component/header/Header'; @@ -10,14 +10,19 @@ import Login from './pages/login/Login'; import Signup from './pages/signup/Signup'; import Cards from './pages/cards/Cards'; import Offer from './pages/offer/Offer'; - import Chat from './pages/chat/Chat'; - import Payment from './pages/payment/Payment'; import Profile from './pages/profile/Profile'; - +import { useDispatch } from 'react-redux'; +import { checkLogIn } from './slices/authSlice'; function App() { + const dispatch = useDispatch(); + + useEffect(() => { + dispatch(checkLogIn()); + }, [dispatch]); + return (
l^iHTtz5b**0nGTY=k@wB~lKa~TlD&g&G1;eivi z&g-?*H|0jNLi(!3`4EWNIu4e$t%q2Y{KS!PTr!iuWv~N4#iA}m!eEEzEF&cpGBR8x zuLKw2w60GHZ{d*4Q%3=(2>`^&0NTLR7GPOhn{wOJLV(m}a;2>-4R3YUJjI}53PDfq zewGw?;h+kOBG+^I$w(^@r-&ALe=7v&fQR=tgw@T~b1?B_S;%d_gQfhM5uq3ODmGQht)s(oe&*Ae6Z^Gs0&k{%L@JXodPd0Kl)5c;|BsE zZ8hP(%H0R$;=OFU4v-17ru-qyz%s=c$$DS&5*MUbRo`=V^M#;tEur$U#so@;J;1;& zQ5#KHX@c~@l)^<;k~5ZH`IOKSI?rrSFlgkVxxSo4Y&e~dIr*cGq0TZ488wKE ;e1V@Mw2gk{1mX=>obwhpO~k@A?c!`VGLVb|X;ij`Z){#oCIValwn$sGSKa~yWCcOE)&+h3{myX6lET5v{?K_EJY zV~grorn)-cx32X*rtEw!@M#7(w4)xMW@!s(&5V{8Y3SPQk@UXXlQkIVgPy#9IhX)> z>KI^h18^uQK+(Cp)xMGX6h8>7H2&uNSxVr6U?1FGyyygui%Mo0JR$QALs*QICXXst zDvT6Bg{X{z3m4D?&2XNVn<* G{q;D@;CyMl1`hl zzmZm?z35MoSnF68^-3KPz2}PpEAg4cR;Ua6eV^|cyeH^7eqV863Jv+RsC8*hzte;v z6{~M~yilF#a?@R>Hl(u@tet3{TLG4A-)Efdz)JTkGtZrS-di&kX0N$uol2Q``^q!- zir!}gg5S#kzfO}S>TMp*2qXwZ*Kllt1Iv_+j>plG*^bvUub zkFD1I{RM|56KO`b<`9Ne=n)D+;oA)Vb}+E4mEuZH{)8t$g&ZZ7s$^O4;C$gBIE*ch ze`O^O!kGxW$)y%Vh_?@5%?#9rpjGU(!%>mc!zvF0^OBt8T)~pdvPZ}PQ@DY1ZT+5S z^$>;yM@1Ndk4upb{buv6%l$4Lc=P#1%z8(&e_B^yNS#Qk`HjO?l94ltmQ6`TDbiiQ z@qy&Hc%NrninxBi5!f;0j0;xzULsHFHVC _+-Kob(Q?f W4&AWo aRTNDrtXf8U z9u1_bz04=SY@nJ&Kava xB z$zaU(%IZlDwvN?6DO5SI#*=_*wm*B`*cH?I!A| 42=q!r9{{QU|r&-!9tWPEFd@w{s`^CDM|Df+^9WR#Zrc_zCw>W0qi1OKYh} zh^xUOk~JOWNC~>nVKNbM%YNr!O0*K|2uUFR&BGMmLU`UvyA;Nyg~C=y^*wb~Xyrhw z=&?HBzN5^=?#eT)K#9lSQM51#DT1X x!lNySgmYEl_B>IIoqo$J zBcPABV_r{IcQ7otTO&7G{;w85SITibQ948z;;oAJ6z)`1qWU&xkt@UA{2^Wh&%f{* zo?o%3Nyfq!)SOKLn#%s}m%Ad`KmmN#Kc0tYtCw5ei<`%d+~H$g0Xmr9(o~mo)4zw0 zr?}6K<9t5a>3cpe?eIAitPeYdgL(yP>V%!J$*)wqAFJ$|^uEjFKd-L7c=Z{AN;htF zotrQyj4L?q7xg-?Sj~3FC*(xiI^i%I2D3Y)2e=bvGD?%g;`77K2T{|X9HldyDH)-p zzm!PDw;&|ha+Fw?lM_2FSmi{8KWzLO*%Q3=)?}2ba~=7I!8HxXBb5_f67R8RJr>HM z6zA!-W$Yu9S7Xc%X+%Oppfxeo$j5DgxxtA(_OD#r&(nc O1l-&_v6JmlT0Miql zRL4T6`#OYs=lfSz|NNQ3hT32{J-ArLd-~5BBEoL<*BEMh(njj0-|rJACJzN(c_Id) zvZPUrjY1L)qi2w!+QsB3<(5|1WI;6&RhbAQ)Pe;f_kfv|jV3R0Hk)<-7;JV!Yv*8n z;)xn9m)E!E1T!3&cJy-^l=oRsgiG4qXp7z<^yv}Q)a<~v1|0WfT>A$`jZz}`iBWW> zO?wsG;Fj|0ze&7$LcU{@%;}}|T8{^(EpO?q0hjb*lXW{j@KVHi5CY@uGEsj3nJHFV zl)1HN^|h3FX+?63tsr?VeK2 kD#w%AuQj<} z59D9Ry4Rj7)9O!M@oxB1Kg2dXX-3VBmj2s()g`;%QE`jiX6qR @1-|SQGqIkfc-<+10xG$yAs0mYMh_6OKC6M+530luKbRQx+7lpdh zt(K%BB$6iZO5v<{O|StZ6sg0x@Cai?L#YxblI6T6vI;U3fxoi13{4H2mhN{KdCSRd zBTW(}W=30tXI%fZTIQd&>_(V{-3)N!4;aOXQ*;Qd5u+EvO^p(<(YPD*iWqW|70YEu zdfXoyUTwCWo?RM9$8 7Xx733wh~{hW3gRqFE45|M=T6XLTu)zxcb;h z*&+`Tno7gx|AzkamQ7WOQyhF27Lh3DH^kX!R-{3%^S$J<-s*;nEi#Px 5jjFVRy;)7`t)tNzv?2#@wup>DRo1&3zLBFRwLf~m4h(l9}XRkSTy(?QZ!OW7pC z(>Gdze1aE2{#s}(Bc#K(4qpHJjd-;YlS283$2h_6vNvZ=u*FMjWQG5>Ebep31;5jF zWUl{I Vp;CSi2)5?$g&>*V1Oj7&Zd> z*e!TLSa|qh;`nzGoarE@dF>xdvdudTSS)U<%Q8bz*qxO>T$rfr4O)uu+KSLzx0}V# z-F_ dS@wOU}WjrYA69f+70V&IB4|17-%+ox-n9bzG#l;~2(HCl~N`Eg* znK)%K+2EADivPSloSmNi+j~ZJq%Bpez`(=p`$X7^yY$&$U||`glO`f1Wl+>zz>XUx znq&nAyOkhP+gl~Fsg$8RuaG>{y44BR3%~sIS#9^ArWp|w*Tx3CpPnMVx&9L z0rx-%zZVh1g+* $!J97@`Uru`><2GY5~Z-h-RI{8OykM7f(;?5PGYoE%)Q?B&`E|Ne AO3jDmaQMKto&4}Ow!w9qF{~Snk!e}+Si?h zSyOb_#wb@XiTn}7VF{K-d0-l1pPoE*&I^lC*@xtaIJmD_QslR;j7v*GsYGhtMA==q z?{TC^jwv~D3( KP5%Al4hHcY1lrfp+%q{tT3yt#9+Xwf3fn>P>h=FLGAR-qdaDis%{(ioEz zS$2yTFUG=!i%}>P(AL%l%OVnpF*q=Yty{O^|F^!eV`m?#)iNq>nXjEHESb19<$5Hc z$%_#kyE3`ll&a1_2U`%-vrePLb)U(TVs^uON7-$;Yu9eJ{#sh|D3?Z9c}XhHy(7cu z@7sl9sS1Qtg35+X8?!rxww#ZG4J@4x{NC>_!9^F$L(Uk6Ufzkk19)!0u2>pB_0Wq# zFDVj0g#+rspITXfq(u(9tB;~3cd#T!oeY$klt@l}Yn0MA$uVV52zeH$R9IRsGe!`5 z?B0!y0z7oU3#Q|_4IaLD^MB*9r+}&s1Xdm{Jr9^x#WKww{;%sl`iUE^zkbtE*m6$j zj}($S!qb1tEw^;v`1#NO>DH}V{>0RcmaLtHh9VZu&*G8`PQn{ra~c*eXhU4t1Kl4% z){YSc6= i){mBp8wOAVm8ycE|)@vV5MsgF$E#1KOtwpJT zo0w|w%HSjiE0GnEwa;!Lsu@We4yi6_12r@sp v|aaT2x-O>aej4mhpz@Y`pG z@QZsl;732*h;^F*mlTm^9#%^WhWGAa_1~;{bFkvH(=nrW24+s5g|?P9j1@;QRvbha zddTJSSh{ox&OB=+X3UtO^59}>qG`ePT QbMIkR@eS=uU`i7sxAg92CQ-A z7J9HsNlukgqLgB)^vzz3Mq=Ie852t)grC$ru{TWA$^R`0BTRjl1vj;A=o7 zauAacDvrz3XH2`}eeZtP^*7w`@vX1ydm`^X7zBjm4hFqfc<#-g|9saM{_!9G=fFV! zA8SCnr30M>6VrM#xcGv3c*`5l!>p+>jA%D(RAJH6G}WC90 eKXl}ku2krYWz zV+Tp)l9cFDl2a @*#?&EQZH?sO CN#`S{Z2Nkl~LnUCL z*dYDPW-?qO^ZE4~v2#}+db_)rq(_QFaB>;6wzZ++``Eo_6fbP;$LKJ{=4?dODjdy6 zM@B ES~)YE^~FiSAUXI3{_+!DuB$Xmujnu?$Z #7VMQBDT5gLh4%N`K(UME=E+sj&N2%Po@te|qL<9SM5}x?}gL#UlCuph~Pr>{& z4yCNSl;lYN$f6X}hYt(oAO|})8zZGwJowmd-1_eiW9 A{#5hl4U31 zj5ANg%$YNh%eJC8R>9Z^xfiRLHFFNmT)6_vPCf-)-5qdj3ze$N`EsUhVCT*OtXuaS z9((L@jE#+OT+DGCc0s0O#ugUM4Ye(5XjWP;@s)HSn9KlSYmV~gXwz&chMm4QZF7{k zJ}FIv`qJ69N;==Ub0;=#d>(s;_n@<@l~W+d((^;IFLXHB7H$qYG&qV4>o>x8D ~#Sxsn0(j>ioPl%Coe!_lhnzVEORKU%lN6gKIllSnL)9EprQEpGak9xL zbwOX**Wu8;d!i-xk``R!`lY0A`Yt7wT9US+Zm#YDQEue=c`Wiu$dA%63T yhg93hfZ z!9h}2lCqK>k;#HGpa&LPOH`VwQXK>7 kZ>b%RtQo>r{_S2owE=Ki+Bo^U z q cP>dBVNIS7In zFKpd{haY?htJgfvt~=V?DON>E*<_tns+16=BcIJGwS7a~M9zIn)sqb+yBZO$TXIyP zg~ng+44x`v(+3vnSU_<(s(hka@%T)(ByQQcvk&Vwu4U_jKQq>0Qr%923QgOpl8Q;9 zn-H5fY{s^&ThWrqv2|Ff7BRCUgW}#1oO1^7o_DRnt5(i{jehv09q7z!h^j@H^z6YL zm((UpNUmP9^k5!x4#Ai2AW1GQNL?%Q)$rY^doPk&qp4e#yHq5v8C0O#gOhbw;51wU zyto5hQ&-^bdpF~o-}(*ido<#FJ5RGwbVF35sM0fi>VLiSy>I`-jW^u5{Scramv|8b zgyatM@}M+<&)x8`50}OUuhaFYgEqv@4q)z_sd)42&%+hx&%*4fI!dG4(2}KGClAHJ z0a%D(oAeZ|tT^aZR=lO Hrw*a`$R!VTBz?_g8pgIZEg(vkY{}TXs+2od 9CC+pMRFtnu%QK15{pPXgx#9Q(C{eq+%#08nYjJO&*8T3uf@|F$;)J+N(tq$ z!LG>O-YJ+jcRIQ|^U(DO)22?v)G0Gip$aILgR{>+7c0(Qfn2Mjq&WeVLnASZfw9q1 zJp9n3cy#q+*h|GLbq$4FUb&~Zdp9XN165zrpyJFX$|a92tF)w7niH2QCimy6RM(?9 zQ)RWd8a_XsBuUnZWv E&2N4)fBp5J`olc~eIGHjaF%0*nAVj+SBHsfuek(Q zty+$Gy)G)lo4BW#UmbxFdC1rXs$-+9Dx`*|n&BblyrqDvlqgSD(gB(Cv8bqT+PG6G z;r1ap{(_EgxS6`1#*OF*lAPMqm1Lf)uaH`lHd2 3o=YB|zYPzwym&)L%qM)@r zOnO)}RHA;Z^cT;O8Z*5fP|TPfcq|Jpxf8g{Ep-wvpyKBNa}FMRau2@u-%sM__wB(z zQMH(;g52J5v3L5^TR;2BPyW^W-uJ#;2RlMJe{uwb Pntp57X#h?q$jC1GY41j3kBUmTzROWNnm7RVKJ<*oi=2 zh@bstJO1U?`>?4W7^XrUWYHMpVvMkC*)qKGjc YdrPj0(n2g7| zCj6ObNhiNI=E_Z+lg9a@zo}FNWuZ6T13wH a%>Zw?FH=Jy&J#$*~7?$M3^~fx{Wy8i_Ui7hEH9FSD)E}p!hVVwuh*W z4ItaniIKqya+z*enGDKf{m5h+h@ z;`~am2g7hXxRXWmwAkqRPKzh$iW^O?m73= zcfEV>wb$ARa_jhna&s45bdmX&2Oc=^gP9-yCPX-h`t^+s4u +0&-$RR_948iu>Z!h%!fBfSg($u~4&O2l4ZMH$FSj6I`OYp=KPY6iV*VoH7 z2ynXQ!jz;286I$TFPtWzRG)~B?E}?>6dkEmzpiQBj_+4*r&=y7m2#xVk8K4cqu7?v zOW>v*l)RDvex*``OSLm6#*zhdF> z2KW& zmd~xd5#-kK3FYP{Y&T(-*WY;kF4%D|%k<6qTA+7#V81=bV%mP&VQAkpoS+$TdAYcG zQ`<=ZP6iA1y)lwgQCwok($?!%J%~z8AW5!tWLB=OKkNU&p?>2{YSM&=8(XxaslcsC zAy@F=WP76$_7 !?v}qVVd^n!^``_^K#~%x*QO=9eAJcqn0OvNC zDkPZcsEVJ{tpSn_Oxgx?#8n-Eb^QICf}D;dxg8C{+U95J(&d;rb0#WfU%4N+7HKN* z1F}MGR7yGNx2((1S|-4@TW^H}_Sp+JUUM}be&`>fw`ir |0^(b>jokj{j>-)Czft*}V4eqP3mQ{m%$VPnALEbar)bv9k?1owM z3|w==lla^7tuP%MMarq!4$9?~t($E+ !LAzQRyU}w Ucp^= z-G$FS`wT;d4HbZ-$_ZJFGiJRBm{oc;5|E!aS4kwYPQ?0Qv0O&lrS(sMQZa|xG}UAR 9qky2)3X!~xlnS~U$W)q=8T}~o+J0}ZrRmQpTNp0iOmSo#9{k#D ziaup>tW@wf;G{A#D74T%rnV23wbtXQ=N91)H@|}wtw3wpLTIK?31bW%JQPPBeFSQ1 zT@;IXNi&jdNZrY?W5-GqH+1OGwkB#0$dVRKX#Lk+cOCAz=N=iT2M!#F-o1Ob=}xl7 zMIuV6R1&c4)~%aFcig_1u)41Nd=bdCwFy-9mqhRY!ndbP9DOSq+FnOrgb+X-aL5 z$Ihm8i9C645a>)3g+dD~Ge%9?Mk&{VY{o(4l`&@XLHOQj2Vvfv&+yA%U5|fEUxtW1 zdxnkB_c5R+aLUnRaPX8(QD@FW%2 ?)dv%TB6wmt(JL2e!03n!g)(x5y4eE01L!>!EFtL@RH z7FoN91NPkp2kpBRMhv$RR^}pQx4<^a@XIBkZo7t)L<;QyC!ogKoOr|~2BL|sq2ApM z1?0$DqZ798Q3udLY^P9+GKf?C@!~(1;EJoK Xfc3ip0|v od7>4`sE+^RHrW79ppzcHs>blI3To@(c3UN~vrIXTw40HLnCwtWe<@`S1%P2t z7A;E0ijj3~6k1zg84 >S;Gsf>Y27i0zHT?d@`|+=L^9<*t570Hs*lZB+y;H_x z%FexDRA$1<%|T7tg#p$*+3}G$6?9^dqdb@roQq(IH5Ao)6l*g^8HN)eFe;+8>czC_ zX+*{EgE 24L302-n{F44!_u zgr%*3Ti1v}DS++7IOeD$FnrJ;8Ps#7GTd}Z2q#<)JM1uw*>a5NO{UxwO68J7VVa#t z0?NJj-YZcVBQ#2Ku?|P6EP?~KNiZW=@-uvY(V|5HY$UBPtyx`1)DhO|BC>T^7wuT{ z)7Q|nRf9T@gP=Qq?gGsE^b`5Fka(g9ZpuV9okmOZGNc_7vG2>|DfX6Q(hdW0 n_q+%rx1x<53u*d6fXMV6!ffJ0u*PVuE9m6IYcU5E4`cTjp6?( zch>*Te&|T<^B_l`L`HH9?J5ZU9IRR!o*$r4vXQABfCxQN3VY(k=}q|cwNK%bdF-D9 z%E+P=#04wm{OhDsPC4a n^+Ozs}DUmY-@OZp=E6 zdd8T|SkIV>u_L;}jhCaw$srC_pi)@@$ELzZELJEsg?(9z3nLkn6w!peTMEv!GW~`M za^mV;p&?}*45vF<%2^mSgYo1)KE;3k?s+U+36u>RzL}L~@jWN)f}OS-3pdeoghhWf zNNRD%9e2b*2OT88GkwVcUjHzPBVgTm=bciE>)yS)fE&R $ zbdEx{szmVei_w^A!8zYQ4n2F;vhfhV|HEH#$9>b$;#+XDS$JL!y}JPyoH-7Ajq8qD z^AlKp6HMQRMR#%v9Ir_v`5Qi4|LLoXZZp%Ba{PRDl`@P XaVm>e$!eITy84DYe|o`L7oD}yqURgk3L8Q0 z8=Ss-?`mnUp8x#bue|)^lMicJ-_O oO^~U&^Vl0E8X4ZNMS>Z;xGe9Ez^#60#`63W_3lYp~&)s_m5M zGAoG|r7|rcz{$XsI7+j5m&=9%a;rPdbQpj|r)>IjHKG#tMbRIEKi=~y?s;?u7PbNv z$3!uV(W6g4Or3fldUflGTGvG-zfuPAau~x+XK=_NhX~PxH8Y8D!VtD)!>9YV?O^7t znF4aG+Y#V+t{I6@o3a|@2u@ @eVktx zF`RZke9v{$m_2(oX3zdq2`X!kIuRC#6NQ&pz|M^eFiP_ nyw@2Li4tmr?K&6$P{30^FrsH1Sxmn9c?mu%i zx){jCO9Y*hy;MM_40@G#gG^-+^7EFemlEtuvkSbaJLWHKz+Df$jX&Kx3oV=nvz$RA zTR&Ppbok(3oOSLG{&3=nCsG1o ^cmuxFCMh 1S{iU;-pEKyvGz2 zR+7dZBlg+D1}txF#m*Ba;E;n4LCCsh;>E`3hEW*%}lREWSEzecm@Ldf;Yib+lc${AbTpdB6 j=X#ISw8ZQ?Hcm`takA zlKwuWVJX{Ty_aPoro*W;gA%gwa-cj1hwL*Jlg4k2Iya46$;Hig{{z?G@fw;u2UeyA zaj+6&M%ei6&ksSr`i1CXE`%AhAQqKX-oq->(6;{~U{F;-UL!GO?X^$W^3h%QtF`sW z#mWF!-Gwm4p2t;8%b3226h#jZn)DE4e=HFACahF1_(nf0Yw3#XZ+jW{|8 wf1q{4H(-xwW{)r=Na$zw55M?v9#FX6v9-s;fx@{d=Zx z)U;hNdCw6TI?zU3o(nr#2_q;={X-nMIXFiiVxtHHB_;YQ0 > #@MX^UjdL)utHJz?hdXy}g+JTNO1^Vyx8|0)XPCWKh`Jw%2n5JY;A~OqiVogMC z) %!i*%RG@!6s*e*61J@x(JtFj7FF0%U43m9ihrnY7oG6CQo^ zp;y=DUg^y1Yy`QldG#;4=%Oya{q1ir&E;~(*QD&)u 7k8wNgghdONA)BrfLo+`pON26U z;?CG(&plDDl%*c07lNElRX+Fpb9nB#=adqNZ41b80A`&o^pi&XHgRO76{(|=FH5&| zjH;@yg$B$oi{`%W_3K#Q)R7#cR-OYAXx@7JUy60 0i zg51|QS**hiA3prVS+izcSzlk@wVZFofF1_MZ#x9XOxq3HZqW-FYZ-#Vd|^`7)w?LR zHjC3VqXIEn3_T$7V37ns>lV@gWFo91xmBA4lyyq-;3TtU4k+sz$gS=)2S$ui9HSg} zL7W E5Z^lCc!V6Vsk$Gj+6IkGd-v^w )-B$qbw3FY0` zn9SFN4f^i;@5y-*b(X3fX@eNLFTh9WHKVa6LSfm*m@;WJjyZUH6j~M|lkJ8@%VPZe zsz>nrYs*paZFKEY2RmrSNk?vu(~lkv%bSUmU4R*v+atvU u} {PA !;IXVsSZ>@l$Z-Lb@9W~>!8c;fZewD%eE8I_C1fX9QId=SR9d*(_P6#z&h=q$6 z G+=dj%vFSSjIkO@z<3cE* z>2H)#5?}HxQ%_V`Whs4HI^XmEWWQQK5TIBoz^-jTbJ>8E8Gsdqo_OH#8TixP|Hk4b zAhhUJ7a|BNxox)F>cThQc=LB(;a1!DkyXfh8&Ag %Neo0zkx$SqVLx4LM+ z(xnU;DB9~C|9K!MiI{eROp-p;FszkXNEVSnHaV8awBQ>l uPK1@2rhMj^ zXC#VKnu|&+ljmG(P ywzR9>d0$Nq?L|0-P(Yh26!6066mR6Nu?Gx z$!o*cwv?q#ZzuPaO;PM}6D+S8!}^*y_Mp+&d~g zj(fOK6~EM6JHsoNCAZ~(5p z@kQKp$GZq r?~fu60>pK))JH8b1_2JY_f3I4j_oA&ejoD=vz&fEiT~h9w$qC|7|thXLIKr&1PD zw6CIISJ@9Id$y`y)mPZv|HY3m6~@9lXQ)a=!wgf&U`Ed@_68~a#Mlp1YA`4ZA;iko zAQxrf){n*;?-p_CFQ3G_Gl7cfphz-~?c>nHreU)oo5L~FD73VSaz`p_W8vaO*lVAu z*mKXl;aa9rj!Asibi~G2YB{p`o2g3e4W}bB%|z7A;u`d1U#laKFFBhXBfO5aN9kc> zznWpRS@ %?v*SML?=dV>wNjMJa( {JqGD`8H&XM;!Gbr`1cvO^7=QiB1dh; zG@Pi6UAN2Pg0uI<;J&RWw|s;eBL=%S!q7uxMzGQr0!p7TWf~^V;t9!$rmM7 H(vGP}m5$U0)Lw%V3?$GelMOmWP}a^OOEoePM1T($fmsjV?2S1~ zGPv}L2k`tG%wX7vX?NsUemQ7;{gm&Xa_n_iT{ruG@qu42ziK1MeaU5`H{9)iyzBHi z^X6Svm$K?=Ql$NR*mc4XeD~yiFt}GMYU~`?^Tm3b8J49N&Wt@ED8Zn6fXv|3gCKoN zGTT*Y8-wycUkT*?6KfY5 qG`@wg*bHdmztu;G|KAy1+|q zj{E*H16N)B4ptNZE7O3o5ur!_ZrE@CDd^pO0L<7yA)iOabx`tKK`E `^}Up7cEC7Ak_hQ+klFVD4t@GavLj_Eybswek$jS(JPg7)cWdC zZ?lGxI&Xx)3}BiSIB_dd-V$uTX#-9;csv^2CKQWJu 0N(7Ztcf?sjHhL>R2!$SG?(HA{@l3VcaviBCrSIl{cGk-K{U -@5jDvEi?|5#+w)8jl~p>yEF#`o?{(5%;%HLVYI2mZKVQ+9?NO zhcUg84n9NL%1OjV=A;$z0j46kr$EnO6K*@eNw18w38)8KiqDc$>iAf91hxN6kW E4No;i6*o!m`o;TzSn?_{+mN#Eye9GAM>VChWc)_Skz5 z_(DQ8M46-}<6!af1sFMM6s8?^ENbc+lvR `Htb5hPWA1ii6H!59VrUXB(!>hod#Xqx2M5QgWBrSq1D?U;1k3tHAdi`@%{(W zGC>D$0YBY`ne12_$VuujLTJaZOvVm*__ {dZBzgRRwoBc*ydGo8d z|B+ANc@`osM4ba1x^H)!_1%eR%&Y)%OJGI?7!L1+2m$l$Y^aYyX; 6CY#KM K2)v!5pD#zFF1Fno_cDZn{U43F4wlUwt`|^O*+7k{uYird{-QLz&K>g z6^Ki-kv0nymw-V~i+q?=C8r-; AO}%+VC0&D zgQ!%Ja|0)ZeCPr-L-GFHEH3@kBY5j=(xpkG4iGs84nJlpw%lqARxE82kYm%fZANHn zU55P+n2HG#_JrpJqV!QMy~Wc>z#}-k`s%BA_~C~|Y*~|0^#8Qw4gsgSPfp(sU$uo` zO;MHxDd}NLD;pdNJ@fDW{rd|j@jY$8sww!|iCn9$=>7Skbft(eyDplVn()z#50!Rj zT3HJ@recq_r8fy~qO6k)rj`NA41^^a<>#Vjb_Kq7{2mxJ&_JcI5Fwo*GK28<*Yddh zcaLKBT);M|mICasm4yq=+8tXAu@JV*1A>)EWgs9|VLu*IsbMT>JCjiyYti)ok-99O z4GnUie+WAR$Vq=42|7$6hc04+Sq4r7)HuQPWOLp`mtLbVZ?TK(|MVOldVGQSD&|9= zuAzI>l56_(fCHu+`p`p<{(J3VV8dQ>Bgn1c`d)wi_1XWr;HMY1Hs`+W7-0i@iiQlZ zu }-WF%P>VYO7#b+bfv1nGfK(YF5oGTyvR(Uh*}tRBk $vrc=YK#2q6at4xpsTCt}RH7mj~Z#_Q#mUlyTd z4)_E((W|VApmfh%H4x~i?2GDi)lAIQ0Z?@$#)yhFL4G%DWh92szGu{^QL^7mPinB^ z{_Dt3OO&k%Ncnyc# ;`5TmhMN44RLH1JA~)`jBC1f}d38%?0Xb `UtEf}fp@X#AGW_h^g=4bKzYaXbVLVvo*K_No)!p| A3y=IVj|*0aF7v-GFhE#$(*Xv1rLRqb`$$R|#O5K(1vaMvobZBaS!%wv&Zrx$wPq zwxqt4npw&IIHoKaNfBtY%Qpd~TEa^MTw9%sV#WypWOXEz>i0VKuC0!#sm)b&BRbs= zmMmE!3M`{XkCy$?P6!fxIZm7Rold1z-$QLtnKWH1;GQ%0GjUfSb60APWa?4>Fd?33 zqQj~+IRmljBBVG$oJY!PLdyFLdynsfL-!hrtksM#C?Yf)5vI1l +6D1i97R5C uzC&l~h9}z^LJM`1Z;BVDE`T zQEK@J4e2s$6cJYPFzCcgFF5IgBV&xwoBEw9CtNr;<3eh+3|NWIp8~lrs<-_o*5caW zMCu4kxsavD89QB(SwL4H$NG$loKhwSUkkD4A+YM;+5IqYWdnY6>BD&aUokAZ2Klms zx^CSu^^mF9WLQrDxvZN~GF*ND-}f+ipFJ>P!Y&9xz;&{1?%bMiLIBdN#G7xv84DIH z5K;yg4*Http+Q3fhHg91L=^sCr$MW4kuQqcG+64-^Rv|vnodD-e>Bk1n3eu@!-o$S zprfS^7yeFQt_HX2=uv+c>p9x^m5uL?laOhGP{6V+6{~wWG~r1AMmZNU%nB&N?BrmU zXJYIy8{au{J9Ntyge| c7AM;Zl9qyqQ49A$5wSWhon@pp6IL(`N4Ta+XOvkXRoADG zM8%I_xQ!@BJ&})x;HKMN!d(x3h80Di#Rsx=-O!qAT{?O4 x$2ABK~BwNwQt;-CtvFa$bnjX)gVWoF&?kbrDN%HGffMXqL0Y! zin2Wr?|ufHb J1M<076YP;Ad7F(6P7Ppf`Cex-JiebZsAs~^3 zBEu{YC9VTHy{LQPuD||z0XYu#nte!c5!PYCSgaOj*6UZl_qoA$H7v)DkzF;&G0Gyi zRkJuX6O IiUk(WC~sl`C8E@y8#F;VZQ`DOxS-)6ykL zRmx`*kQ0&vbM<)T8kX$QWSN5&}vrB5)lR|)5wvMYMl6i~@8LMqh&-|Ub1E4$## z3vR_f-v(KKw*qZ#$- `4;|s- kZwrv)@L<;= zS1N^db@fjjbL>ec{r>k?EMD_?()s?g5#%~t^KG`-VbYs#zVSd!wytaBwW6^u#$LOO z!1qqu2b&Fa5SHcu X^dt{Y>iXa z|738}CylH*70D@(OMJ8#$t57?hlcWaSk{Z3 <&()m zR9OKxT7-e!3po2*6Vazj32|W|T!*!vzF1o5f@^Pk88_ZJ2WHkm9Qx><0WSQ(cpSR- zKopwZLN=X~8lRJHfL96O5DdlUhyF21>r8CHB4vJKx>7k6Bv}v2-0Az%6v9rVT9G(& zF>HiRBZ^TE_*Or>_OB*f`kN>4-e-VSL%BMj9E9b;Lxx}S$tUk$zA W$S(NqsZ+7rxB;;I`LKfJ$XXS|UJ+5?!%9pM338IA z5u%B9_+B%}wWY~60FV>*s5FEt;a@#?F*RjaDHuFQfserV;YSVvrxzCG`r_Bu{|yg4 zQ-E(8C|4}FsTxe&brQDSep?teodT#7q1cnTmOQrIc3bg{V^rpQY(Az?b230jQJbt6 zS&M)D>t8Wr#*Edb9IF9|;89akBV>?w-g!p=nLx)zYJ!dim(_vTR{=S_9zjln7T?q9 zQC+8FRQKkaZwk=T0G8k1r%xX+1<5)c7w#wbhYsgVbFvRm&HUMGr4(FbBE?CT7WPgi zRBHq|lP(NO0uBC3A)gHBUc?W-wHpR?D ygHgZrNP7{9pYP2@vE%x-Nj z!kH&-j_({d7G~u`xHh>DMObbf)v84CL|Ocll_Cfj*%`1xf}Cn&=)CF5RRx~agd@=) zjcgbMIxEQxae`=OkoRj~Wd~weE{(rF{Sj_^;5~de2XI_V&UwBZEZbwxNmHMA;;*lD zzL;(GN4yc_lJj!QEw`l4`_b9wu2|l5UM6K_Q*nsCy(}Dc=mZ>h*hDne=iujO!wFlF zGJFJ;vPzXP-5}|OB$AV6Z j(;z@_ONg7X+|a+ge>TrY9MUs2B-$?b=ngLFaJR z#kSaD3#pT7VCtAM)Z1KL-A>QO^=mbuMMq<-4HCTA-oSPOf*0R=`|Y %EVJ0sSIebm6E}kgowZkQS>YzJAqIw$^ZZ$ z07*naR2(17>w+`RzY8-LQRXj&&<` $U(dP?BAwRv&!u!5BSy3q(3B*3s%))6H25q{N3PS@l3 zU0P*@+h cHuVMfsjM{hT}S_AGAH z7IyKNVJ?1q@j)2as~KVWW7u{Pv0=+K `0~+L%7u)CWuFgR`QL=v0 zMj$4t>Zna=4p+_dQcI1Q=J#MxU_7=FL=Mb!7ZihTnEs)UE3bYE?|%#w0w7)2h;nG= zd-m_~o8Mn` YueK-v((5M3L4;OL`|M$aDIQLcDmyW_efFR1Th6voEyfBoxUQlBGO=-#+5I<>ln zR~^|AV7V?+hm5qUK~6V`S4U~9lk?Kwsli(J<7pBMzn9S&Y5z1iC7?1r$?swW%I_y> z=7SGDkQ$+OP+%>N;HJ0B){1J-)f0@*A9Iz$j_kbB93{v}+e>7?H7W>;^DwA~hciyx z6@z>E@N=IbWqGXHA@A3r;tt2zKe-*xyiR8{3t87hW7fx&Kiv)E#%2(CA0p-Csm39i zjLdW}y4RCD1#*B*6X9g(%peyM(AsL+s&SsNhXy&Fj`o6zI;WNc*11i~MPN6gsnQD% zJpLYTyXzy&U&?y73(v@)6jYk09ysNYM;?6ex%F^pS*N?)=|PSjalLytet+qbrpszl zMmns-7}Oj1?x}m?kSW`sA=N6g+iWU?*SZ8Q^KNkf-gGtrE+Rczd6`Lyh*rsRpH{a9 zRFOy$y7UGCa)Q}9U8z7$wGk-h9zo7d*P&7-9hx(F8y>RAM}zRk`{&@-*T0LBLy)UO zDWAj6 5ogfDU`};a^X5I*lJ8bc;t~sB!Xk)Mqpyf zk&zj}WtF}%J+SIpRpMB{sEH9L0g|8B3{4GAI{hb?HfjH;eiEyJt~#|@9qs9ej_YaS z2| k#ZfR z;tDSO-e?@L-w>G5OgQ#RwNEAoZ3Sw&g@*TpD7#fLKRYYPNsuN2=Q{JlX&@)X96mTH zw59GzaEqw;YMakw}OG_SqC?fBOLRYYboqi(m%Jkpla` z6hn+k>tXD}aShQ U8S^u_E*owi)BYjSG ^z?Jy5kNcE z?lh}XM_=4Gf)v-&q!WTMznAJPOk=V|g8NT`2|ru?!}VCh(~%t~T52EKeFm!uDDB6* zs $Z-}Efrn+b%e0Lnl$ zzj_o&^nza+J9gyv-+uF*o7OX2TBp0)sX^}AYp<<6_uLD9SMkb+q^+pIHGK^11^oD& zW3cOv{a^