From 635850a1c1bec771f10b2a0d1308189b84630c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 9 Aug 2020 12:35:27 +0200 Subject: [PATCH 01/72] feat(create-app): add catalog and scaffolder plugins --- .../templates/default-app/package.json.hbs | 4 ++ .../default-app/packages/app/src/App.tsx | 2 + .../default-app/packages/app/src/apis.ts | 48 +++++++++++++++++++ .../default-app/packages/app/src/plugins.ts | 2 + 4 files changed, 56 insertions(+) create mode 100644 packages/create-app/templates/default-app/packages/app/src/apis.ts diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index b59ca63fa3..71e4d50f6f 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -24,6 +24,10 @@ "plugins/*" ] }, + "dependencies": { + "@backstage/plugin-catalog": "^{{version}}", + "@backstage/plugin-scaffolder": "^{{version}}" + }, "devDependencies": { "@backstage/cli": "^{{version}}", "@spotify/prettier-config": "^7.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 8a0aedca2e..724b83d41b 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -1,8 +1,10 @@ import { createApp } from '@backstage/core'; import React, { FC } from 'react'; +import { apis } from './apis'; import * as plugins from './plugins'; const app = createApp({ + apis, plugins: Object.values(plugins), }); diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts new file mode 100644 index 0000000000..e881c128af --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ApiRegistry, ConfigApi } from '@backstage/core'; + +import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; + +import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; + +export const apis = (config: ConfigApi) => { + // eslint-disable-next-line no-console + console.log(`Creating APIs for ${config.getString('app.title')}`); + + const backendUrl = config.getString('backend.baseUrl'); + + const builder = ApiRegistry.builder(); + + builder.add( + catalogApiRef, + new CatalogClient({ + apiOrigin: backendUrl, + basePath: '/catalog', + }), + ); + + builder.add( + scaffolderApiRef, + new ScaffolderApi({ + apiOrigin: backendUrl, + basePath: '/scaffolder/v1', + }), + ); + + return builder.build(); +}; diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index 000bd79f3e..b6c8ad083e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1 +1,3 @@ export { plugin as WelcomePlugin } from 'plugin-welcome'; +export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; +export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; From 75decc011dfbc12972acca44b6a992e4bed3178c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 11:52:23 +0200 Subject: [PATCH 02/72] create-app: add Sidebar and other app-wide components to app template --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/App.tsx | 15 ++++++++-- .../default-app/packages/app/src/sidebar.tsx | 28 +++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 packages/create-app/templates/default-app/packages/app/src/sidebar.tsx diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index c3de7ada80..2f3adcc5ca 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -5,7 +5,6 @@ "dependencies": { "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "4.0.0-alpha.45", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", "@backstage/test-utils": "^{{version}}", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 724b83d41b..c96bd9d05e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -1,7 +1,13 @@ -import { createApp } from '@backstage/core'; import React, { FC } from 'react'; +import { + createApp, + AlertDisplay, + OAuthRequestDialog, + SidebarPage, +} from '@backstage/core'; import { apis } from './apis'; import * as plugins from './plugins'; +import { AppSidebar } from './sidebar'; const app = createApp({ apis, @@ -14,8 +20,13 @@ const AppRoutes = app.getRoutes(); const App: FC<{}> = () => ( + + - + + + + ); diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx new file mode 100644 index 0000000000..1ced85cff2 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import HomeIcon from '@material-ui/icons/Home'; +import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import { + Sidebar, + SidebarItem, + SidebarDivider, + SidebarSpace, + SidebarUserSettings, + SidebarThemeToggle, + SidebarPinButton, +} from '@backstage/core'; + +export const AppSidebar = () => ( + + + {/* Global nav, not org-specific */} + + + {/* End global nav */} + + + + + + + +); From 68cd1cae8f6582d39ba80505d76351e986b08f38 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:33:15 +0200 Subject: [PATCH 03/72] create-app: add missing APIs to app template --- .../default-app/packages/app/src/apis.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index e881c128af..32af5b7185 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -14,7 +14,19 @@ * limitations under the License. */ -import { ApiRegistry, ConfigApi } from '@backstage/core'; +import { + ApiRegistry, + alertApiRef, + errorApiRef, + AlertApiForwarder, + ConfigApi, + ErrorApiForwarder, + ErrorAlerter, + oauthRequestApiRef, + OAuthRequestManager, + storageApiRef, + WebStorage, +} from '@backstage/core'; import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; @@ -28,6 +40,15 @@ export const apis = (config: ConfigApi) => { const builder = ApiRegistry.builder(); + const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); + const errorApi = builder.add( + errorApiRef, + new ErrorAlerter(alertApi, new ErrorApiForwarder()), + ); + + builder.add(storageApiRef, WebStorage.create({ errorApi })); + builder.add(oauthRequestApiRef, new OAuthRequestManager()); + builder.add( catalogApiRef, new CatalogClient({ From dddc0e15babdfac6c3063e4b4acfafba6023ad3b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:34:45 +0200 Subject: [PATCH 04/72] create-app: remove copyright header from template --- .../default-app/packages/app/src/apis.ts | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 32af5b7185..35f3e076d6 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - import { ApiRegistry, alertApiRef, From 953e55330b135c80db12e09800986cf4a48251df Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:35:57 +0200 Subject: [PATCH 05/72] create-app: remove welcome plugin --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/plugins.ts | 1 - .../default-app/plugins/welcome/.eslintrc.js | 3 - .../default-app/plugins/welcome/README.md | 3 - .../default-app/plugins/welcome/dev/index.tsx | 4 - .../plugins/welcome/package.json.hbs | 41 ------- .../welcome/src/components/Timer/Timer.tsx | 58 ---------- .../welcome/src/components/Timer/index.ts | 1 - .../WelcomePage/WelcomePage.test.tsx | 16 --- .../components/WelcomePage/WelcomePage.tsx | 106 ------------------ .../src/components/WelcomePage/index.ts | 1 - .../default-app/plugins/welcome/src/index.ts | 1 - .../plugins/welcome/src/plugin.test.ts | 7 -- .../default-app/plugins/welcome/src/plugin.ts | 9 -- .../plugins/welcome/src/setupTests.ts | 1 - 15 files changed, 253 deletions(-) delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/README.md delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/package.json.hbs delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 2f3adcc5ca..ae49c251e2 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -10,7 +10,6 @@ "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", - "plugin-welcome": "0.0.0", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router": "6.0.0-beta.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index b6c8ad083e..b35d7aeac4 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1,3 +1,2 @@ -export { plugin as WelcomePlugin } from 'plugin-welcome'; export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js b/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js deleted file mode 100644 index 13573efa9c..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: [require.resolve('@backstage/cli/config/eslint')], -}; diff --git a/packages/create-app/templates/default-app/plugins/welcome/README.md b/packages/create-app/templates/default-app/plugins/welcome/README.md deleted file mode 100644 index e9b9dd0edf..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Title - -Welcome to the welcome plugin! diff --git a/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx b/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx deleted file mode 100644 index 6fce113093..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { createDevApp } from '@backstage/dev-utils'; -import { plugin } from '../src/plugin'; - -createDevApp().registerPlugin(plugin).render(); diff --git a/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs b/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs deleted file mode 100644 index 77e57c1a7c..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "plugin-welcome", - "version": "0.0.0", - "main": "src/index.ts", - "types": "src/index.ts", - "private": true, - "publishConfig": { - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "scripts": { - "build": "backstage-cli plugin:build", - "start": "backstage-cli plugin:serve", - "lint": "backstage-cli lint", - "test": "backstage-cli test", - "diff": "backstage-cli plugin:diff", - "prepack": "backstage-cli prepack", - "postpack": "backstage-cli postpack", - "clean": "backstage-cli clean" - }, - "dependencies": { - "@backstage/core": "^{{version}}", - "@backstage/theme": "^{{version}}", - "@material-ui/core": "^4.9.1", - "@material-ui/icons": "^4.9.1", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-use": "^15.3.3", - "react-router-dom": "6.0.0-beta.0" - }, - "devDependencies": { - "@backstage/cli": "^{{version}}", - "@backstage/dev-utils": "^{{version}}", - "@testing-library/jest-dom": "^5.10.1", - "@testing-library/react": "^10.4.1", - "jest-fetch-mock": "^3.0.3" - }, - "files": [ - "dist" - ] -} diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx deleted file mode 100644 index 24c79f91ee..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import React, { FC } from 'react'; -import { HeaderLabel } from '@backstage/core'; - -const timeFormat = { hour: '2-digit', minute: '2-digit' }; -const utcOptions = { timeZone: 'UTC', ...timeFormat }; -const nycOptions = { timeZone: 'America/New_York', ...timeFormat }; -const tyoOptions = { timeZone: 'Asia/Tokyo', ...timeFormat }; -const stoOptions = { timeZone: 'Europe/Stockholm', ...timeFormat }; - -const defaultTimes = { - timeNY: '', - timeUTC: '', - timeTYO: '', - timeSTO: '', -}; - -function getTimes() { - const d = new Date(); - const lang = window.navigator.language; - - // Using the browser native toLocaleTimeString instead of huge moment-tz - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString - const timeNY = d.toLocaleTimeString(lang, nycOptions); - const timeUTC = d.toLocaleTimeString(lang, utcOptions); - const timeTYO = d.toLocaleTimeString(lang, tyoOptions); - const timeSTO = d.toLocaleTimeString(lang, stoOptions); - - return { timeNY, timeUTC, timeTYO, timeSTO }; -} - -const HomePageTimer: FC<{}> = () => { - const [{ timeNY, timeUTC, timeTYO, timeSTO }, setTimes] = React.useState( - defaultTimes, - ); - - React.useEffect(() => { - setTimes(getTimes()); - - const intervalId = setInterval(() => { - setTimes(getTimes()); - }, 1000); - - return () => { - clearInterval(intervalId); - }; - }, []); - - return ( - <> - - - - - - ); -}; - -export default HomePageTimer; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts deleted file mode 100644 index f1fc55bfe9..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Timer'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx deleted file mode 100644 index 27e44a3f75..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import WelcomePage from './WelcomePage'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; - -describe('WelcomePage', () => { - it('should render', () => { - const rendered = render( - - - , - ); - expect(rendered.baseElement).toBeInTheDocument(); - }); -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx deleted file mode 100644 index 31c1c0f3e2..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import React, { FC } from 'react'; -import { Link as RouterLink } from 'react-router-dom'; -import { - Typography, - Grid, - List, - ListItem, - ListItemText, - Link, -} from '@material-ui/core'; -import Timer from '../Timer'; -import { - Content, - InfoCard, - Header, - Page, - pageTheme, - ContentHeader, - SupportButton, -} from '@backstage/core'; - -const WelcomePage: FC<{}> = () => { - const profile = { givenName: '' }; - - return ( - -
- -
- - - - - - - - - You now have a running instance of Backstage! - - 🎉 - - Let's make sure you get the most out of this platform by walking - you through the basics. - - - The Setup - - - Backstage is put together from three base concepts: the core, - the app and the plugins. - - - - - - - - - - - - - - Try It Out - - - We suggest you either check out the documentation for{' '} - - creating a plugin - {' '} - or have a look in the code for the{' '} - - Home Page - {' '} - in the directory "plugins/home-page/src". - - - - - - Quick Links - - - backstage.io - - - - Create a plugin - - - - - - - -
- ); -}; - -export default WelcomePage; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts deleted file mode 100644 index b031301e7e..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './WelcomePage'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/index.ts deleted file mode 100644 index 99edba26c3..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { plugin } from './plugin'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts deleted file mode 100644 index f5bf8e68c3..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { plugin } from './plugin'; - -describe('welcome', () => { - it('should export plugin', () => { - expect(plugin).toBeDefined(); - }); -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts deleted file mode 100644 index a65fad5348..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { createPlugin } from '@backstage/core'; -import WelcomePage from './components/WelcomePage'; - -export const plugin = createPlugin({ - id: 'welcome', - register({ router }) { - router.registerRoute('/', WelcomePage); - }, -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts b/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts deleted file mode 100644 index 7b0828bfa8..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts +++ /dev/null @@ -1 +0,0 @@ -import '@testing-library/jest-dom'; From b9dcd46c09a420cbc2eeff0be8a2f2d42fd9d1be Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 13:05:16 +0200 Subject: [PATCH 06/72] create-app: add locations for example entites and templates --- .../templates/default-app/app-config.yaml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index 04a7913286..c5dc00c266 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -23,3 +23,33 @@ techdocs: auth: providers: {} + +catalog: + locations: + # Backstage Example Component + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/artist-lookup-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-order-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/podcast-api-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/queue-proxy-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/searcher-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-lib-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/www-artist-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/shuffle-api-component.yaml + + # Backstage Example Templates + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml + - type: github + target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml From 2fd38ad228e92c36eac5a7820a93b588e517922d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 13:46:19 +0200 Subject: [PATCH 07/72] create-app: add register component plugin and move plugin deps to app --- packages/create-app/templates/default-app/package.json.hbs | 4 ---- .../templates/default-app/packages/app/package.json.hbs | 3 +++ .../templates/default-app/packages/app/src/plugins.ts | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 71e4d50f6f..b59ca63fa3 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -24,10 +24,6 @@ "plugins/*" ] }, - "dependencies": { - "@backstage/plugin-catalog": "^{{version}}", - "@backstage/plugin-scaffolder": "^{{version}}" - }, "devDependencies": { "@backstage/cli": "^{{version}}", "@spotify/prettier-config": "^7.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index ae49c251e2..57e705d4fc 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -7,6 +7,9 @@ "@material-ui/icons": "^4.9.1", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", + "@backstage/plugin-catalog": "^{{version}}", + "@backstage/plugin-register-component": "^{{version}}", + "@backstage/plugin-scaffolder": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index b35d7aeac4..4063fb509b 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1,2 +1,3 @@ export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; +export { plugin as RegisterComponent } from '@backstage/plugin-register-component'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; From 20d83e7d5b8167bf16b0c31879d87c9e9d01a143 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:12:24 +0200 Subject: [PATCH 08/72] create-app: add minimal gitignore to template --- .../templates/default-app/.gitignore | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/create-app/templates/default-app/.gitignore diff --git a/packages/create-app/templates/default-app/.gitignore b/packages/create-app/templates/default-app/.gitignore new file mode 100644 index 0000000000..3e786d566e --- /dev/null +++ b/packages/create-app/templates/default-app/.gitignore @@ -0,0 +1,33 @@ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Coverage directory generated when running tests with coverage +coverage + +# Dependencies +node_modules/ + +# Node version directives +.nvmrc + +# dotenv environment variables file +.env +.env.test + +# Build output +dist + +# Temporary change files created by Vim +*.swp + +# MkDocs build output +site + +# Local configuration files +*.local.yaml From af9d127644eaa013106f8e485a2145bedafc3d54 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:31:23 +0200 Subject: [PATCH 09/72] tsconfig: set rootDir to ensure output structure of tsc --- packages/create-app/templates/default-app/tsconfig.json | 1 + tsconfig.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/tsconfig.json b/packages/create-app/templates/default-app/tsconfig.json index 9dbc3bbe27..cccc375f63 100644 --- a/packages/create-app/templates/default-app/tsconfig.json +++ b/packages/create-app/templates/default-app/tsconfig.json @@ -9,6 +9,7 @@ "exclude": ["node_modules"], "compilerOptions": { "outDir": "dist", + "rootDir": ".", "skipLibCheck": true } } diff --git a/tsconfig.json b/tsconfig.json index 1a6128b5c9..7ea674798c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "plugins/*/migrations" ], "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "rootDir": "." } } From be0847501708f2f9a4f5e5ea8314e8470511bb62 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:46:43 +0200 Subject: [PATCH 10/72] create-app: fix App test in template --- .../templates/default-app/packages/app/src/App.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx index b94eab587f..a05924ee00 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx @@ -10,6 +10,7 @@ describe('App', () => { { data: { app: { title: 'Test' }, + backend: { baseUrl: 'http://localhost:7000' }, }, context: 'test', }, From da5fb05a3fe686f17100e95a7b71785ae253f2b4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 15:30:25 +0200 Subject: [PATCH 11/72] create-app: update e2e test in app template --- .../default-app/packages/app/cypress/integration/app.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js index 6c561a734c..dde26b7b39 100644 --- a/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js +++ b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js @@ -1,8 +1,6 @@ describe('App', () => { - it('should render the welcome page', () => { + it('should render the catalog', () => { cy.visit('/'); - cy.contains('Welcome to Backstage'); - cy.contains('Getting Started'); - cy.contains('Quick Links'); + cy.contains('Backstage Service Catalog'); }); }); From e2e50025a5cc59af2fb1f40901d15795fced13ba Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 19:08:32 +0200 Subject: [PATCH 12/72] cli: update e2e test to work with new create-app --- packages/cli/e2e-test/cli-e2e-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index 8f518762cd..8a3285c544 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -246,7 +246,7 @@ async function testAppServe(pluginName, appDir) { try { const browser = new Browser(); - await waitForPageWithText(browser, '/', 'Welcome to Backstage'); + await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); await waitForPageWithText( browser, `/${pluginName}`, From 5374dcdb5d699e96a2e9fdd6783e3f8fdf7814fe Mon Sep 17 00:00:00 2001 From: Dominik Henneke Date: Thu, 13 Aug 2020 15:16:40 +0200 Subject: [PATCH 13/72] feat(catalog): update trivial tab implementation --- .../src/components/EntityPage/EntityPage.tsx | 61 ++++++------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx index 5dd35bf8db..8a375b8d6e 100644 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ b/plugins/catalog/src/components/EntityPage/EntityPage.tsx @@ -27,22 +27,17 @@ import { Progress, useApi, } from '@backstage/core'; -import { SentryIssuesWidget } from '@backstage/plugin-sentry'; -import { Widget as GithubActionsWidget } from '@backstage/plugin-github-actions'; -import { - JenkinsBuildsWidget, - JenkinsLastBuildWidget, -} from '@backstage/plugin-jenkins'; -import { Grid, Box } from '@material-ui/core'; +import { Box } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; import React, { FC, useEffect, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { useAsync } from 'react-use'; import { catalogApiRef } from '../..'; import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu'; -import { EntityMetadataCard } from '../EntityMetadataCard/EntityMetadataCard'; -import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog'; +import { EntityPageApi } from '../EntityPageApi/EntityPageApi'; +import { EntityPageOverview } from '../EntityPageOverview/EntityPageOverview'; import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; +import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog'; const REDIRECT_DELAY = 1000; function headerProps( @@ -105,6 +100,8 @@ export const EntityPage: FC<{}> = () => { } }, [errorApi, navigate, error, loading, entity]); + const [selectedTabId, setSelectedTabId] = useState(''); + if (!name) { navigate('/catalog'); return null; @@ -122,6 +119,7 @@ export const EntityPage: FC<{}> = () => { { id: 'overview', label: 'Overview', + content: (e: Entity) => , }, { id: 'ci', @@ -134,6 +132,7 @@ export const EntityPage: FC<{}> = () => { { id: 'api', label: 'API', + content: (e: Entity) => , }, { id: 'monitoring', @@ -152,6 +151,8 @@ export const EntityPage: FC<{}> = () => { entity, ); + const selectedTab = tabs.find(tab => tab.id === selectedTabId) || tabs[0]; + return (
= () => { {entity && ( <> - + { + setSelectedTabId(tabs[idx].id); + }} + /> - - - - - {entity.metadata?.annotations?.[ - 'backstage.io/jenkins-github-folder' - ] && ( - - - - )} - {entity.metadata?.annotations?.[ - 'backstage.io/jenkins-github-folder' - ] && ( - - - - )} - {entity.metadata?.annotations?.[ - 'backstage.io/github-actions-id' - ] && ( - - - - )} - - - - + {selectedTab && selectedTab.content + ? selectedTab.content(entity) + : null} Date: Fri, 14 Aug 2020 14:05:30 +0200 Subject: [PATCH 14/72] fix(catalog): read correct property name implementsApis --- packages/catalog-model/examples/petstore-component.yaml | 2 +- .../catalog/src/components/EntityPageApi/EntityPageApi.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/catalog-model/examples/petstore-component.yaml b/packages/catalog-model/examples/petstore-component.yaml index 5cf0d1f270..7e2093ad09 100644 --- a/packages/catalog-model/examples/petstore-component.yaml +++ b/packages/catalog-model/examples/petstore-component.yaml @@ -7,7 +7,7 @@ spec: type: service lifecycle: experimental owner: pets@example.com - implementedApis: + implementsApis: - petstore - streetlights - hello-world diff --git a/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx b/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx index b115539366..5c0ff5485b 100644 --- a/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx +++ b/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx @@ -28,7 +28,7 @@ export const EntityPageApi: FC<{ entity: Entity }> = ({ entity }) => { const { value: apiEntities, loading } = useAsync(async () => { const a = await Promise.all( - ((entity?.spec?.implementedApis as string[]) || []).map(api => + ((entity?.spec?.implementsApis as string[]) || []).map(api => catalogApi.getEntityByName({ kind: 'API', name: api, @@ -48,7 +48,7 @@ export const EntityPageApi: FC<{ entity: Entity }> = ({ entity }) => { {loading && } {!loading && ( - {((entity?.spec?.implementedApis as string[]) || []).map(api => { + {((entity?.spec?.implementsApis as string[]) || []).map(api => { const apiEntity = apiEntities && apiEntities.get(api); return ( From b349720c7507d611aea7239d55cc220a3d20f325 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Mon, 17 Aug 2020 17:06:28 +0200 Subject: [PATCH 15/72] =migrations https logic to new branch --- microsite/i18n/en.json | 3 + microsite/pages/en/background.js | 2 +- packages/backend-common/package.json | 3 +- .../src/service/lib/ServiceBuilderImpl.ts | 120 ++++++++++++++++-- .../backend-common/src/service/lib/config.ts | 70 ++++++++++ packages/backend-common/src/service/types.ts | 19 +++ yarn.lock | 2 +- 7 files changed, 204 insertions(+), 15 deletions(-) diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index af891426db..5ddede3d97 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -50,6 +50,9 @@ "auth/add-auth-provider": { "title": "Adding authentication providers" }, + "auth/auth-backend-classes": { + "title": "auth/auth-backend-classes" + }, "auth/auth-backend": { "title": "Auth backend" }, diff --git a/microsite/pages/en/background.js b/microsite/pages/en/background.js index 70a15421ab..c5bf9bee94 100644 --- a/microsite/pages/en/background.js +++ b/microsite/pages/en/background.js @@ -112,7 +112,7 @@ const Background = props => { left: 0, right: 0, bottom: 0, - backgroundImage: `linear-gradient( to bottom, rgb(18, 18, 18), rgba(0, 0, 0, 0) ), url(../img/dot.svg);`, + backgroundImage: `linear-gradient( to bottom, rgb(18, 18, 18), rgba(0, 0, 0, 0) ), url(../img/dot.svg)`, }} /> diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 5cf2ee95e5..8d932cfd49 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -43,7 +43,8 @@ "lodash": "^4.17.15", "morgan": "^1.10.0", "stoppable": "^1.1.0", - "winston": "^3.2.1" + "winston": "^3.2.1", + "selfsigned": "^1.10.7" }, "peerDependencies": { "pg-connection-string": "^2.3.0" diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index cd8e445dd8..1182cc6388 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -19,7 +19,9 @@ import compression from 'compression'; import cors from 'cors'; import express, { Router } from 'express'; import helmet from 'helmet'; -import { Server } from 'http'; +import * as http from 'http'; +import * as https from 'https'; +import * as fs from 'fs'; import stoppable from 'stoppable'; import { Logger } from 'winston'; import { useHotCleanup } from '../../hot'; @@ -30,7 +32,12 @@ import { requestLoggingHandler, } from '../../middleware'; import { ServiceBuilder } from '../types'; -import { readBaseOptions, readCorsOptions } from './config'; +import { + readBaseOptions, + readCorsOptions, + readHttpsSettings, + HttpsSettings, +} from './config'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -41,6 +48,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { private host: string | undefined; private logger: Logger | undefined; private corsOptions: cors.CorsOptions | undefined; + private httpsSettings: HttpsSettings | undefined; private routers: [string, Router][]; // Reference to the module where builder is created - needed for hot module // reloading @@ -70,6 +78,11 @@ export class ServiceBuilderImpl implements ServiceBuilder { this.corsOptions = corsOptions; } + const httpsSettings = readHttpsSettings(backendConfig); + if (httpsSettings) { + this.httpsSettings = httpsSettings; + } + return this; } @@ -88,6 +101,11 @@ export class ServiceBuilderImpl implements ServiceBuilder { return this; } + setHttpsSettings(settings: HttpsSettings): ServiceBuilder { + this.httpsSettings = settings; + return this; + } + enableCors(options: cors.CorsOptions): ServiceBuilder { this.corsOptions = options; return this; @@ -98,9 +116,15 @@ export class ServiceBuilderImpl implements ServiceBuilder { return this; } - start(): Promise { + start(): Promise { const app = express(); - const { port, host, logger, corsOptions } = this.getOptions(); + const { + port, + host, + logger, + corsOptions, + httpsSettings, + } = this.getOptions(); app.use(helmet()); if (corsOptions) { @@ -121,20 +145,90 @@ export class ServiceBuilderImpl implements ServiceBuilder { reject(e); }); - const server = stoppable( - app.listen(port, host, () => { - logger.info(`Listening on ${host}:${port}`); - }), - 0, - ); + let server: http.Server; + + if (httpsSettings) { + logger.info('Initializing https server'); + + const credentials: { key: string; cert: string } = { + key: '', + cert: '', + }; + const signingOptions: any = httpsSettings?.certificate; + + if (signingOptions?.algorithm !== undefined) { + logger.info('Generating self-signed certificate with attributes'); + + const certificateAttributes: Array = Object.entries( + signingOptions.attributes, + ).map(([name, value]) => ({ name, value })); + + // TODO: Create a type def for selfsigned. + const signatures = require('selfsigned').generate( + certificateAttributes, + { + algorithm: signingOptions?.algorithm, + keySize: signingOptions?.size || 2048, + days: signingOptions?.days || 30, + }, + ); + + logger.info( + 'Bootstrapping key and cert from self-signed certificate', + ); + + credentials.key = signatures.private; + credentials.cert = signatures.cert; + } else { + if (fs.existsSync(signingOptions?.key)) { + if (fs.lstatSync(signingOptions?.key).isFile()) { + logger.info('Bootstrapping key from file'); + + credentials.key = fs.readFileSync(signingOptions?.key).toString(); + } + } else { + logger.info('Bootstrapping key from config'); + + credentials.key = signingOptions?.key; + } + + if (fs.existsSync(signingOptions?.cert)) { + if (fs.lstatSync(signingOptions?.cert).isFile()) { + logger.info('Bootstrapping cert from file'); + + credentials.cert = fs + .readFileSync(signingOptions?.cert) + .toString(); + } + } else { + logger.info('Bootstrapping cert from config'); + + credentials.cert = signingOptions?.cert; + } + } + + if (credentials.key === '' || credentials.cert === '') { + throw new Error('Invalid credentials'); + } + + server = https.createServer(credentials, app) as http.Server; + } else { + logger.info('Initializing http server'); + + server = http.createServer(app); + } + + const stoppableServer = stoppable(server, 0); + + stoppableServer.listen(port, host); useHotCleanup(this.module, () => - server.stop((e: any) => { + stoppableServer.stop((e: any) => { if (e) console.error(e); }), ); - resolve(server); + resolve(stoppableServer); }); } @@ -143,12 +237,14 @@ export class ServiceBuilderImpl implements ServiceBuilder { host: string; logger: Logger; corsOptions?: cors.CorsOptions; + httpsSettings?: HttpsSettings; } { return { port: this.port ?? DEFAULT_PORT, host: this.host ?? DEFAULT_HOST, logger: this.logger ?? getRootLogger(), corsOptions: this.corsOptions, + httpsSettings: this.httpsSettings, }; } } diff --git a/packages/backend-common/src/service/lib/config.ts b/packages/backend-common/src/service/lib/config.ts index 49f8dc4f04..e257bd4111 100644 --- a/packages/backend-common/src/service/lib/config.ts +++ b/packages/backend-common/src/service/lib/config.ts @@ -22,6 +22,41 @@ export type BaseOptions = { listenHost?: string; }; +export type CertificateOptions = { + key?: CertificateKeyOptions; + attributes?: CertificateAttributeOptions; +}; + +export type CertificateKeyOptions = { + size?: number; + algorithm?: string; + days?: number; +}; + +export type CertificateAttributeOptions = { + commonName?: string; +}; + +export type HttpsSettings = { + certificate: CertificateSigningOptions | CertificateReferenceOptions; +}; + +export type CertificateReferenceOptions = { + key: string; + cert: string; +}; + +export type CertificateSigningOptions = { + algorithm: string; + size?: number; + days?: number; + attributes?: CertificateAttributes; +}; + +export type CertificateAttributes = { + commonName?: string; +}; + /** * Reads some base options out of a config object. * @@ -40,6 +75,7 @@ export function readBaseOptions(config: ConfigReader): BaseOptions { if (typeof config.get('listen') === 'string') { // TODO(freben): Expand this to support more addresses and perhaps optional const { host, port } = parseListenAddress(config.getString('listen')); + return removeUnknown({ listenPort: port, listenHost: host, @@ -49,6 +85,7 @@ export function readBaseOptions(config: ConfigReader): BaseOptions { return removeUnknown({ listenPort: config.getOptionalNumber('listen.port'), listenHost: config.getOptionalString('listen.host'), + baseUrl: config.getOptionalString('baseUrl'), }); } @@ -86,6 +123,39 @@ export function readCorsOptions(config: ConfigReader): CorsOptions | undefined { }); } +/** + * Attempts to read a https settings object from the root of a config object. + * + * @param config The root of a backend config object + * @returns A https settings object, or undefined if not specified + * + * @example + * ```json + * { + * https: { + * certificate: ... + * } + * } + * ``` + */ +export function readHttpsSettings( + config: ConfigReader, +): HttpsSettings | undefined { + const cc = config.getOptionalConfig('https'); + + if (!cc) { + return undefined; + } + + const certificateConfig = cc.get('certificate'); + + const cfg = { + certificate: certificateConfig, + }; + + return removeUnknown(cfg as HttpsSettings); +} + function getOptionalStringOrStrings( config: ConfigReader, key: string, diff --git a/packages/backend-common/src/service/types.ts b/packages/backend-common/src/service/types.ts index 070794969f..d389f4b5ff 100644 --- a/packages/backend-common/src/service/types.ts +++ b/packages/backend-common/src/service/types.ts @@ -19,6 +19,7 @@ import cors from 'cors'; import { Router, RequestHandler } from 'express'; import { Server } from 'http'; import { Logger } from 'winston'; +import { HttpsSettings } from './lib/config'; export type ServiceBuilder = { /** @@ -39,6 +40,15 @@ export type ServiceBuilder = { */ setPort(port: number): ServiceBuilder; + /** + * Sets the host to listen on. + * + * '' is express default, which listens to all interfaces. + * + * @param host The host to listen on + */ + setHost(host: string): ServiceBuilder; + /** * Sets the logger to use for service-specific logging. * @@ -58,6 +68,15 @@ export type ServiceBuilder = { */ enableCors(options: cors.CorsOptions): ServiceBuilder; + /** + * Configure self-signed certificate generation options. + * + * If this method is not called, the resulting service will use sensible defaults + * + * @param options Standard certificate options + */ + setHttpsSettings(settings: HttpsSettings): ServiceBuilder; + /** * Adds a router (similar to the express .use call) to the service. * diff --git a/yarn.lock b/yarn.lock index 6a63b34141..9ab7af396b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9349,7 +9349,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -docusaurus@2.0.0-alpha.61: +docusaurus@^2.0.0-alpha.61: version "2.0.0-alpha.61" resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.61.tgz#f347b81c98c66f1de3ecfccf63fa421ddff52fbb" integrity sha512-qDU3nOA4Xs95tIjjSETnEuRmTukTzgxyTZ5MgMyuG7y6h4oDHtpLcYf8F+xlXuuWHKv3VSxRJNzV8fZHPgnK3g== From d982278fc34450f59c5f237502413ae92c3cb4bc Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Tue, 18 Aug 2020 10:27:48 +0200 Subject: [PATCH 16/72] =fixed broken microsite --- microsite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/package.json b/microsite/package.json index 6a10628b5a..dd8957245a 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -6,7 +6,7 @@ "scripts": { "examples": "docusaurus-examples", "start": "docusaurus-start", - "build": "docusaurus-build && cp static/img/*.svg build/backstage/img/", + "build": "docusaurus-build", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", "version": "docusaurus-version", From 44e09bd980afb1cf936ddbe6679eb7f34239dde9 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Tue, 18 Aug 2020 10:37:38 +0200 Subject: [PATCH 17/72] =added disabled config for https w. self-signed cert --- app-config.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app-config.yaml b/app-config.yaml index a0233991f8..f3b3b8d00c 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -13,6 +13,13 @@ backend: database: client: sqlite3 connection: ':memory:' + # https: + # certificate: + # size: 2048 + # algorithm: sha256 + # days: 30 + # attributes: + # commonName: 'contoso.com' proxy: '/circleci/api': From 141bb0b9ab3c902b0c7715e606b251a2fd4ac7ef Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Tue, 18 Aug 2020 16:53:37 +0200 Subject: [PATCH 18/72] =triggering checks to see why CLI tests timed out --- app-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-config.yaml b/app-config.yaml index f3b3b8d00c..0e94367aa1 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -19,7 +19,7 @@ backend: # algorithm: sha256 # days: 30 # attributes: - # commonName: 'contoso.com' + # commonName: 'dfds.com' proxy: '/circleci/api': From 86eac5b4583c3e2e614865c8a2ead7568fe513c1 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 18:35:45 +0200 Subject: [PATCH 19/72] feat(catalog): add tags to entity metadata This add a field tags to the entity metadata to specifiy a user defined classifications. Closes #1997 --- .../software-catalog/descriptor-format.md | 17 +++++++++++++++++ packages/catalog-model/src/entity/Entity.ts | 6 ++++++ .../policies/FieldFormatEntityPolicy.test.ts | 8 ++++++++ .../entity/policies/FieldFormatEntityPolicy.ts | 6 ++++++ .../policies/ReservedFieldsEntityPolicy.test.ts | 3 +++ .../policies/ReservedFieldsEntityPolicy.ts | 1 + .../policies/SchemaValidEntityPolicy.test.ts | 8 ++++++++ .../entity/policies/SchemaValidEntityPolicy.ts | 1 + .../src/validation/makeValidator.ts | 1 + packages/catalog-model/src/validation/types.ts | 1 + 10 files changed, 52 insertions(+) diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 4751bd88f7..a7d57890dc 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -42,6 +42,7 @@ software catalog API. "labels": { "system": "public-websites" }, + "tags": ["java"], "name": "artist-web", "uid": "2152f463-549d-4d8d-a94d-ce2b7676c6e2" }, @@ -66,6 +67,8 @@ metadata: annotations: example.com/service-discovery: artistweb circleci.com/project-slug: gh/example-org/artist-website + tags: + - java spec: type: website lifecycle: production @@ -232,6 +235,20 @@ The `backstage.io/` prefix is reserved for use by Backstage core components. Values can be of any length, but are limited to being strings. +### `tags` [optional] + +A list of single-valued strings, for example to classify catalog entities in +various ways. This is different to the labels in metadata, as labels are +key-value pairs. + +The values are user defined, for example the programming language used for the +component, like `java` or `go`. + +This field is optional, and currently has no special semantics. + +Each tag must be sequences of `[a-zA-Z0-9]` separated by `-`, at most 63 +characters in total. + ## Kind: Component Describes the following entity kind: diff --git a/packages/catalog-model/src/entity/Entity.ts b/packages/catalog-model/src/entity/Entity.ts index 4f245da8b7..7f323043b1 100644 --- a/packages/catalog-model/src/entity/Entity.ts +++ b/packages/catalog-model/src/entity/Entity.ts @@ -113,6 +113,12 @@ export type EntityMeta = JsonObject & { * entity. */ annotations?: Record; + + /** + * A list of single-valued strings, to for example classify catalog entities in + * various ways. + */ + tags?: string[]; }; /** diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts index 80cf70fbab..edf04a64cc 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts @@ -35,6 +35,9 @@ describe('FieldFormatEntityPolicy', () => { backstage.io/custom: ValueStuff annotations: example.com/bindings: are-secret + tags: + - java + - data-service spec: custom: stuff `); @@ -102,4 +105,9 @@ describe('FieldFormatEntityPolicy', () => { data.metadata.annotations.a = 7; await expect(policy.enforce(data)).rejects.toThrow(/annotation.*7/i); }); + + it('rejects bad tag value', async () => { + data.metadata.tags.push('Hello World'); + await expect(policy.enforce(data)).rejects.toThrow(/tags.*"Hello World"/i); + }); }); diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts index 4ccd8ec711..20a3724079 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts @@ -83,6 +83,12 @@ export class FieldFormatEntityPolicy implements EntityPolicy { require(`annotations.${k}`, v, this.validators.isValidAnnotationValue); } + const tags = entity.metadata.tags ?? []; + + for (let i = 0; i < tags.length; ++i) { + require(`tags.${i}`, tags[i], this.validators.isValidTag); + } + return entity; } } diff --git a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts index 04acd58686..5d4e60a1a3 100644 --- a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts @@ -35,6 +35,9 @@ describe('ReservedFieldsEntityPolicy', () => { backstage.io/custom: ValueStuff annotations: example.com/bindings: are-secret + tags: + - java + - data spec: custom: stuff `); diff --git a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts index bbe374e811..edb63cf05c 100644 --- a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts @@ -29,6 +29,7 @@ const DEFAULT_RESERVED_ENTITY_FIELDS: string[] = [ 'metadata.description', 'metadata.labels', 'metadata.annotations', + 'metadata.tags', // The below items are known to appear in core kinds, and therefore should // not be appearing in metadata (which would indicate that the user made a // mistake in where to place them). diff --git a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts index 2113772af4..d63ba49dbe 100644 --- a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts @@ -36,6 +36,9 @@ describe('SchemaValidEntityPolicy', () => { backstage.io/custom: ValueStuff annotations: example.com/bindings: are-secret + tags: + - java + - data spec: custom: stuff `); @@ -190,6 +193,11 @@ describe('SchemaValidEntityPolicy', () => { await expect(policy.enforce(data)).rejects.toThrow(/annotations/); }); + it('rejects bad tags type', async () => { + data.metadata.tags = 7; + await expect(policy.enforce(data)).rejects.toThrow(/tags/); + }); + // // spec // diff --git a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts index e901e82d8b..a6d376b4ac 100644 --- a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts @@ -31,6 +31,7 @@ const DEFAULT_ENTITY_SCHEMA = yup.object({ description: yup.string().notRequired(), labels: yup.object>().notRequired(), annotations: yup.object>().notRequired(), + tags: yup.array().notRequired(), }) .required(), spec: yup.object({}).notRequired(), diff --git a/packages/catalog-model/src/validation/makeValidator.ts b/packages/catalog-model/src/validation/makeValidator.ts index 7ca01365e0..3602c01a63 100644 --- a/packages/catalog-model/src/validation/makeValidator.ts +++ b/packages/catalog-model/src/validation/makeValidator.ts @@ -28,6 +28,7 @@ const defaultValidators: Validators = { isValidLabelValue: KubernetesValidatorFunctions.isValidLabelValue, isValidAnnotationKey: KubernetesValidatorFunctions.isValidAnnotationKey, isValidAnnotationValue: KubernetesValidatorFunctions.isValidAnnotationValue, + isValidTag: CommonValidatorFunctions.isValidDnsLabel, }; export function makeValidator(overrides: Partial = {}): Validators { diff --git a/packages/catalog-model/src/validation/types.ts b/packages/catalog-model/src/validation/types.ts index 81209bfb75..ff00036991 100644 --- a/packages/catalog-model/src/validation/types.ts +++ b/packages/catalog-model/src/validation/types.ts @@ -24,4 +24,5 @@ export type Validators = { isValidLabelValue(value: any): boolean; isValidAnnotationKey(value: any): boolean; isValidAnnotationValue(value: any): boolean; + isValidTag(value: any): boolean; }; From bd6195d79f43d0d299463bf3b8cb54f55108c449 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 18:36:05 +0200 Subject: [PATCH 20/72] test(catalog): add test-data for tags --- packages/catalog-model/examples/artist-lookup-component.yaml | 3 +++ packages/catalog-model/examples/podcast-api-component.yaml | 2 ++ packages/catalog-model/examples/queue-proxy-component.yaml | 3 +++ packages/catalog-model/examples/searcher-component.yaml | 2 ++ packages/catalog-model/examples/shuffle-api-component.yaml | 2 ++ packages/catalog-model/examples/streetlights-api.yaml | 2 ++ 6 files changed, 14 insertions(+) diff --git a/packages/catalog-model/examples/artist-lookup-component.yaml b/packages/catalog-model/examples/artist-lookup-component.yaml index 448dd13fa3..79dd3bccf6 100644 --- a/packages/catalog-model/examples/artist-lookup-component.yaml +++ b/packages/catalog-model/examples/artist-lookup-component.yaml @@ -3,6 +3,9 @@ kind: Component metadata: name: artist-lookup description: Artist Lookup + tags: + - java + - data spec: type: service lifecycle: experimental diff --git a/packages/catalog-model/examples/podcast-api-component.yaml b/packages/catalog-model/examples/podcast-api-component.yaml index 19f9a3d4de..c1b1c9281c 100644 --- a/packages/catalog-model/examples/podcast-api-component.yaml +++ b/packages/catalog-model/examples/podcast-api-component.yaml @@ -3,6 +3,8 @@ kind: Component metadata: name: podcast-api description: Podcast API + tags: + - java spec: type: service lifecycle: experimental diff --git a/packages/catalog-model/examples/queue-proxy-component.yaml b/packages/catalog-model/examples/queue-proxy-component.yaml index a9f41b8776..c9b130db52 100644 --- a/packages/catalog-model/examples/queue-proxy-component.yaml +++ b/packages/catalog-model/examples/queue-proxy-component.yaml @@ -3,6 +3,9 @@ kind: Component metadata: name: queue-proxy description: Queue Proxy + tags: + - go + - website spec: type: website lifecycle: production diff --git a/packages/catalog-model/examples/searcher-component.yaml b/packages/catalog-model/examples/searcher-component.yaml index 33d765117c..042fcb24a9 100644 --- a/packages/catalog-model/examples/searcher-component.yaml +++ b/packages/catalog-model/examples/searcher-component.yaml @@ -3,6 +3,8 @@ kind: Component metadata: name: searcher description: Searcher + tags: + - go spec: type: service lifecycle: production diff --git a/packages/catalog-model/examples/shuffle-api-component.yaml b/packages/catalog-model/examples/shuffle-api-component.yaml index 275c48d6ba..1f9de46d4e 100644 --- a/packages/catalog-model/examples/shuffle-api-component.yaml +++ b/packages/catalog-model/examples/shuffle-api-component.yaml @@ -3,6 +3,8 @@ kind: Component metadata: name: shuffle-api description: Shuffle API + tags: + - go spec: type: service lifecycle: production diff --git a/packages/catalog-model/examples/streetlights-api.yaml b/packages/catalog-model/examples/streetlights-api.yaml index 69a6d101cb..4aeef993bb 100644 --- a/packages/catalog-model/examples/streetlights-api.yaml +++ b/packages/catalog-model/examples/streetlights-api.yaml @@ -3,6 +3,8 @@ kind: API metadata: name: streetlights description: The Smartylighting Streetlights API allows you to remotely manage the city lights. + tags: + - unstable spec: type: asyncapi definition: | From f06588def71fd6abd5e1ad3a766460b501e5179c Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 19:52:49 +0200 Subject: [PATCH 21/72] feat(catalog): show entity tags in the catalog table --- packages/core/src/components/Table/Table.tsx | 3 ++- .../components/CatalogTable/CatalogTable.tsx | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/core/src/components/Table/Table.tsx b/packages/core/src/components/Table/Table.tsx index d200b07bc6..882272cb43 100644 --- a/packages/core/src/components/Table/Table.tsx +++ b/packages/core/src/components/Table/Table.tsx @@ -127,7 +127,8 @@ function convertColumns( ): TableColumn[] { return columns.map(column => { const headerStyle: React.CSSProperties = {}; - const cellStyle: React.CSSProperties = {}; + const cellStyle: React.CSSProperties = + typeof column.cellStyle === 'object' ? column.cellStyle : {}; if (column.highlight) { headerStyle.color = theme.palette.textContrast; diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx index b5afbcaa0b..00dacdc0fe 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx @@ -15,7 +15,7 @@ */ import { Entity, LocationSpec } from '@backstage/catalog-model'; import { Table, TableColumn, TableProps } from '@backstage/core'; -import { Link } from '@material-ui/core'; +import { Link, Chip } from '@material-ui/core'; import Edit from '@material-ui/icons/Edit'; import GitHub from '@material-ui/icons/GitHub'; import { Alert } from '@material-ui/lab'; @@ -63,6 +63,21 @@ const columns: TableColumn[] = [ title: 'Description', field: 'metadata.description', }, + { + title: 'Tags', + field: 'metadata.tags', + cellStyle: { + padding: '0px 16px 0px 20px', + }, + render: (entity: Entity) => ( + <> + {entity.metadata.tags && + entity.metadata.tags.map(t => ( + + ))} + + ), + }, ]; type CatalogTableProps = { From 5e6f1c424839aee432b5cede42313619a0eecd33 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 21:57:37 +0200 Subject: [PATCH 22/72] feat(catalog): add filter by tags in the catalog --- .../components/CatalogPage/CatalogPage.tsx | 9 +- .../ResultsFilter/ResultsFilter.test.tsx | 102 +++++++++++++++ .../ResultsFilter/ResultsFilter.tsx | 120 ++++++++++++++++++ .../src/filter/EntityFilterGroupsProvider.tsx | 39 ++++++ plugins/catalog/src/filter/context.ts | 2 + .../catalog/src/filter/useFilteredEntities.ts | 1 + 6 files changed, 272 insertions(+), 1 deletion(-) create mode 100644 plugins/catalog/src/components/ResultsFilter/ResultsFilter.test.tsx create mode 100644 plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx diff --git a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx index e58b2d407b..6a3d7362aa 100644 --- a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx +++ b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx @@ -35,6 +35,7 @@ import { CatalogTable } from '../CatalogTable/CatalogTable'; import CatalogLayout from './CatalogLayout'; import { CatalogTabs, LabeledComponentType } from './CatalogTabs'; import { WelcomeBanner } from './WelcomeBanner'; +import { ResultsFilter } from '../ResultsFilter/ResultsFilter'; const useStyles = makeStyles(theme => ({ contentWrapper: { @@ -47,7 +48,12 @@ const useStyles = makeStyles(theme => ({ const CatalogPageContents = () => { const styles = useStyles(); - const { loading, error, matchingEntities } = useFilteredEntities(); + const { + loading, + error, + matchingEntities, + availableTags, + } = useFilteredEntities(); const { isStarredEntity } = useStarredEntities(); const userId = useApi(identityApiRef).getUserId(); const [selectedTab, setSelectedTab] = useState(); @@ -140,6 +146,7 @@ const CatalogPageContents = () => { onChange={({ label }) => setSelectedSidebarItem(label)} initiallySelected="owned" /> + { + const catalogApi: Partial = { + getEntities: () => + Promise.resolve([ + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'Entity1', + tags: ['java'], + }, + spec: { + owner: 'tools@example.com', + type: 'service', + }, + }, + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'Entity2', + }, + spec: { + owner: 'not-tools@example.com', + type: 'service', + }, + }, + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'Entity3', + tags: ['java', 'test'], + }, + spec: { + owner: 'tools@example.com', + type: 'service', + }, + }, + ] as Entity[]), + }; + + const indentityApi: Partial = { + getUserId: () => 'tools@example.com', + }; + + const renderWrapped = (children: React.ReactNode) => + render( + wrapInTestApp( + + {children}, + , + ), + ); + + it('should render all available tags', async () => { + const tags = ['test', 'java']; + const { findByText } = renderWrapped( + , + ); + for (const tag of tags) { + expect(await findByText(tag)).toBeInTheDocument(); + } + }); +}); diff --git a/plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx b/plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx new file mode 100644 index 0000000000..eb500da651 --- /dev/null +++ b/plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx @@ -0,0 +1,120 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + Button, + Checkbox, + Divider, + List, + ListItem, + ListItemText, + makeStyles, + Theme, + Typography, +} from '@material-ui/core'; +import React, { useCallback, useContext, useState } from 'react'; +import { filterGroupsContext } from '../../filter/context'; + +const useStyles = makeStyles(theme => ({ + filterBox: { + display: 'flex', + margin: theme.spacing(2, 0, 0, 0), + }, + filterBoxTitle: { + margin: theme.spacing(1, 0, 0, 1), + fontWeight: 'bold', + flex: 1, + }, + title: { + margin: theme.spacing(1, 0, 0, 1), + textTransform: 'uppercase', + fontSize: 12, + fontWeight: 'bold', + }, + checkbox: { + padding: theme.spacing(0, 1, 0, 1), + }, +})); + +type Props = { + availableTags: string[]; +}; + +/** + * The additional results filter in the sidebar. + */ +export const ResultsFilter = ({ availableTags }: Props) => { + const classes = useStyles(); + + const [selectedTags, setSelectedTags] = useState([]); + const context = useContext(filterGroupsContext); + if (!context) { + throw new Error(`Must be used inside an EntityFilterGroupsProvider`); + } + const setSelectedTagsFilter = context?.setSelectedTags; + + const updateSelectedTags = useCallback( + (tags: string[]) => { + setSelectedTags(tags); + setSelectedTagsFilter(tags); + }, + [setSelectedTags, setSelectedTagsFilter], + ); + + return ( + <> +
+ + Refine Results + {' '} + +
+ + + Tags + + + {availableTags.map(t => { + const labelId = `checkbox-list-label-${t}`; + return ( + + updateSelectedTags( + selectedTags.includes(t) + ? selectedTags.filter(s => s !== t) + : [...selectedTags, t], + ) + } + > + + + + ); + })} + + + ); +}; diff --git a/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx b/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx index dd557a4322..db8e21e071 100644 --- a/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx +++ b/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx @@ -54,16 +54,19 @@ function useProvideEntityFilters(): FilterGroupsContext { const selectedFilterKeys = useRef<{ [filterGroupId: string]: Set; }>({}); + const selectedTags = useRef([]); const [filterGroupStates, setFilterGroupStates] = useState<{ [filterGroupId: string]: FilterGroupStates; }>({}); const [matchingEntities, setMatchingEntities] = useState([]); + const [availableTags, setAvailableTags] = useState([]); const rebuild = useCallback(() => { setFilterGroupStates( buildStates( filterGroups.current, selectedFilterKeys.current, + selectedTags.current, entities, error, ), @@ -72,9 +75,11 @@ function useProvideEntityFilters(): FilterGroupsContext { buildMatchingEntities( filterGroups.current, selectedFilterKeys.current, + selectedTags.current, entities, ), ); + setAvailableTags(collectTags(entities)); }, [entities, error]); const register = useCallback( @@ -109,14 +114,24 @@ function useProvideEntityFilters(): FilterGroupsContext { [rebuild], ); + const setSelectedTags = useCallback( + (tags: string[]) => { + selectedTags.current = tags; + rebuild(); + }, + [rebuild], + ); + return { register, unregister, setGroupSelectedFilters, + setSelectedTags, loading: !error && !entities, error, filterGroupStates, matchingEntities, + availableTags, }; } @@ -125,6 +140,7 @@ function useProvideEntityFilters(): FilterGroupsContext { function buildStates( filterGroups: { [filterGroupId: string]: FilterGroup }, selectedFilterKeys: { [filterGroupId: string]: Set }, + selectedTags: string[], entities?: Entity[], error?: Error, ): { [filterGroupId: string]: FilterGroupStates } { @@ -153,6 +169,7 @@ function buildStates( const otherMatchingEntities = buildMatchingEntities( filterGroups, selectedFilterKeys, + selectedTags, entities, filterGroupId, ); @@ -170,11 +187,23 @@ function buildStates( return result; } +// Given all entites, find all possible tags and provide them in a sorted list. +function collectTags(entities?: Entity[]): string[] { + const tags = new Set(); + (entities || []).forEach(e => { + if (e.metadata.tags) { + e.metadata.tags.forEach(t => tags.add(t)); + } + }); + return Array.from(tags).sort(); +} + // Given all filter groups and what filters are actually selected, extract all // entities that match all those filter groups. function buildMatchingEntities( filterGroups: { [filterGroupId: string]: FilterGroup }, selectedFilterKeys: { [filterGroupId: string]: Set }, + selectedTags: string[], entities?: Entity[], excludeFilterGroupId?: string, ): Entity[] { @@ -201,6 +230,16 @@ function buildMatchingEntities( } } + // Filter by tags, if at least one tag is selected. Include all entities + // that have at least one of the selected tags + if (selectedTags.length > 0) { + allFilters.push( + entity => + !!entity.metadata.tags && + entity.metadata.tags.some(t => selectedTags.includes(t)), + ); + } + // All filter groups that had any checked filters need to match. Note that // every() always returns true for an empty array. return entities?.filter(entity => allFilters.every(fn => fn(entity))) ?? []; diff --git a/plugins/catalog/src/filter/context.ts b/plugins/catalog/src/filter/context.ts index 31e9c91b97..7f16107f09 100644 --- a/plugins/catalog/src/filter/context.ts +++ b/plugins/catalog/src/filter/context.ts @@ -26,10 +26,12 @@ export type FilterGroupsContext = { ) => void; unregister: (filterGroupId: string) => void; setGroupSelectedFilters: (filterGroupId: string, filterIds: string[]) => void; + setSelectedTags: (tags: string[]) => void; loading: boolean; error?: Error; filterGroupStates: { [filterGroupId: string]: FilterGroupStates }; matchingEntities: Entity[]; + availableTags: string[]; }; /** diff --git a/plugins/catalog/src/filter/useFilteredEntities.ts b/plugins/catalog/src/filter/useFilteredEntities.ts index 256f5247c7..3f70c0bd85 100644 --- a/plugins/catalog/src/filter/useFilteredEntities.ts +++ b/plugins/catalog/src/filter/useFilteredEntities.ts @@ -30,5 +30,6 @@ export function useFilteredEntities() { loading: context.loading, error: context.error, matchingEntities: context.matchingEntities, + availableTags: context.availableTags, }; } From 2172a8a698ddcba5ace6f6e7c4c2c7a10ca5691b Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 22:44:15 +0200 Subject: [PATCH 23/72] fix: layout issue on the entity page --- .../EntityPageOverview/EntityPageOverview.tsx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx index f4faa8c574..45a62198c7 100644 --- a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx +++ b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx @@ -18,7 +18,10 @@ import { Entity } from '@backstage/catalog-model'; import { Content } from '@backstage/core'; import { SentryIssuesWidget } from '@backstage/plugin-sentry'; import { Widget as GithubActionsWidget } from '@backstage/plugin-github-actions'; -import { JenkinsBuildsWidget, JenkinsLastBuildWidget, } from '@backstage/plugin-jenkins'; +import { + JenkinsBuildsWidget, + JenkinsLastBuildWidget, +} from '@backstage/plugin-jenkins'; import { Grid } from '@material-ui/core'; import React, { FC } from 'react'; import { EntityMetadataCard } from '../EntityMetadataCard/EntityMetadataCard'; @@ -32,14 +35,14 @@ export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => {
{entity.metadata?.annotations?.[ 'backstage.io/jenkins-github-folder' - ] && ( + ] && ( )} {entity.metadata?.annotations?.[ 'backstage.io/jenkins-github-folder' - ] && ( + ] && ( @@ -49,12 +52,12 @@ export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => { )} - - - + + + ); From 4618f0b76a9ef650a58322cf270d2f5a66db113a Mon Sep 17 00:00:00 2001 From: Niklas Ek Date: Wed, 19 Aug 2020 09:34:15 +0200 Subject: [PATCH 24/72] Update header background shapes and colors (#2015) * Update header background shapes and colors * Remove an unused type frmo PageThemeProvider * Remove Waves.test as there is no more Waves.jsx --- packages/core/src/layout/Header/Header.tsx | 136 ++++++++-------- .../core/src/layout/Header/Waves.test.tsx | 27 ---- packages/core/src/layout/Header/Waves.tsx | 148 ------------------ packages/core/src/layout/Page/Page.tsx | 6 +- .../core/src/layout/Page/PageThemeProvider.ts | 126 ++++++--------- packages/core/src/layout/Page/index.ts | 2 +- .../components/TemplateCard/TemplateCard.tsx | 2 +- 7 files changed, 122 insertions(+), 325 deletions(-) delete mode 100644 packages/core/src/layout/Header/Waves.test.tsx delete mode 100644 packages/core/src/layout/Header/Waves.tsx diff --git a/packages/core/src/layout/Header/Header.tsx b/packages/core/src/layout/Header/Header.tsx index cc2c8d1182..7aafc2730e 100644 --- a/packages/core/src/layout/Header/Header.tsx +++ b/packages/core/src/layout/Header/Header.tsx @@ -14,59 +14,63 @@ * limitations under the License. */ -import React, { Fragment, ReactNode, CSSProperties, FC } from 'react'; +import React, { ReactNode, CSSProperties, FC, useContext } from 'react'; import { Helmet } from 'react-helmet'; import { Typography, Tooltip, makeStyles } from '@material-ui/core'; import { BackstageTheme } from '@backstage/theme'; -import { Theme } from '../Page/Page'; -import { Waves } from './Waves'; +import { PageThemeContext } from '../Page/Page'; -const useStyles = makeStyles(theme => ({ - header: { - gridArea: 'pageHeader', - padding: theme.spacing(3), - minHeight: 118, - width: '100%', - boxShadow: '0 0 8px 3px rgba(20, 20, 20, 0.3)', - position: 'relative', - zIndex: 100, - display: 'flex', - flexDirection: 'row', - flexWrap: 'wrap', - justifyContent: 'flex-end', - alignItems: 'center', - }, - leftItemsBox: { - flex: '1 1 auto', - }, - rightItemsBox: { - flex: '0 1 auto', - display: 'flex', - flexDirection: 'row', - flexWrap: 'wrap', - alignItems: 'center', - marginRight: theme.spacing(1), - }, - title: { - color: theme.palette.bursts.fontColor, - lineHeight: '1.0em', - wordBreak: 'break-all', - fontSize: 'calc(24px + 6 * ((100vw - 320px) / 680))', - marginBottom: theme.spacing(1), - }, - subtitle: { - color: 'rgba(255, 255, 255, 0.8)', - lineHeight: '1.0em', - }, - type: { - textTransform: 'uppercase', - fontSize: 11, - opacity: 0.8, - marginBottom: theme.spacing(1), - color: theme.palette.bursts.fontColor, - }, -})); +const useStyles = makeStyles( + theme => ({ + header: { + gridArea: 'pageHeader', + padding: theme.spacing(3), + minHeight: 118, + width: '100%', + boxShadow: '0 0 8px 3px rgba(20, 20, 20, 0.3)', + position: 'relative', + zIndex: 100, + display: 'flex', + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'flex-end', + alignItems: 'center', + backgroundImage: props => props.backgroundImage, + backgroundPosition: 'center', + backgroundSize: '100% 400px', + }, + leftItemsBox: { + flex: '1 1 auto', + }, + rightItemsBox: { + flex: '0 1 auto', + display: 'flex', + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + marginRight: theme.spacing(1), + }, + title: { + color: theme.palette.bursts.fontColor, + lineHeight: '1.0em', + wordBreak: 'break-all', + fontSize: 'calc(24px + 6 * ((100vw - 320px) / 680))', + marginBottom: theme.spacing(1), + }, + subtitle: { + color: 'rgba(255, 255, 255, 0.8)', + lineHeight: '1.0em', + }, + type: { + textTransform: 'uppercase', + fontSize: 11, + opacity: 0.8, + marginBottom: theme.spacing(1), + color: theme.palette.bursts.fontColor, + }, + }), +); type HeaderStyles = ReturnType; @@ -159,32 +163,28 @@ export const Header: FC = ({ type, typeLink, }) => { - const classes = useStyles(); + const theme = useContext(PageThemeContext); + const classes = useStyles({ backgroundImage: theme.backgroundImage }); const documentTitle = pageTitleOverride || title; const pageTitle = title || pageTitleOverride; const titleTemplate = `${documentTitle} | %s | Backstage`; const defaultTitle = `${documentTitle} | Backstage`; return ( - + <> - - {theme => ( -
- -
- - - -
-
{children}
-
- )} -
-
+
+
+ + + +
+
{children}
+
+ ); }; diff --git a/packages/core/src/layout/Header/Waves.test.tsx b/packages/core/src/layout/Header/Waves.test.tsx deleted file mode 100644 index 76bf5e913e..0000000000 --- a/packages/core/src/layout/Header/Waves.test.tsx +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import React from 'react'; -import { render } from '@testing-library/react'; -import { pageTheme } from '../Page/PageThemeProvider'; -import { Waves } from './Waves'; - -describe('', () => { - it('should render svg', () => { - const rendered = render(); - rendered.getByTestId('wave-svg'); - }); -}); diff --git a/packages/core/src/layout/Header/Waves.tsx b/packages/core/src/layout/Header/Waves.tsx deleted file mode 100644 index e87fc78105..0000000000 --- a/packages/core/src/layout/Header/Waves.tsx +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import React, { FC } from 'react'; -import { makeStyles } from '@material-ui/core'; -import { PageTheme } from '../Page'; - -const useStyles = makeStyles({ - wave: { - position: 'absolute', - height: '100%', - width: '100%', - top: 0, - bottom: 0, - left: 0, - right: 0, - zIndex: -1, - }, -}); - -type Props = { - theme: PageTheme; -}; - -export const Waves: FC = ({ theme }) => { - const classes = useStyles(); - const [backgroundColor1, backgroundColor2] = theme.gradient.colors; - const waveColor = theme.gradient.waveColor; - const [opacityStart, opacityStop] = theme.gradient.opacity; - - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -}; diff --git a/packages/core/src/layout/Page/Page.tsx b/packages/core/src/layout/Page/Page.tsx index bc4175fb6c..a5f5e4fd2b 100644 --- a/packages/core/src/layout/Page/Page.tsx +++ b/packages/core/src/layout/Page/Page.tsx @@ -18,7 +18,7 @@ import React, { FC } from 'react'; import { PageTheme, pageTheme } from './PageThemeProvider'; import { makeStyles } from '@material-ui/core'; -export const Theme = React.createContext(pageTheme.home); +export const PageThemeContext = React.createContext(pageTheme.home); const useStyles = makeStyles(() => ({ root: { @@ -38,8 +38,8 @@ type Props = { export const Page: FC = ({ theme = pageTheme.home, children }) => { const classes = useStyles(); return ( - +
{children}
-
+ ); }; diff --git a/packages/core/src/layout/Page/PageThemeProvider.ts b/packages/core/src/layout/Page/PageThemeProvider.ts index c99509513f..57411c8786 100644 --- a/packages/core/src/layout/Page/PageThemeProvider.ts +++ b/packages/core/src/layout/Page/PageThemeProvider.ts @@ -14,87 +14,59 @@ * limitations under the License. */ -export type Gradient = { - colors: string[]; - waveColor: string; - opacity: string[]; -}; - export type PageTheme = { - gradient: Gradient; + colors: string[]; + shape: string; + backgroundImage: string; }; -export const gradients: Record = { - darkGrey: { - colors: ['#171717', '#383838'], - waveColor: '#757575', - opacity: ['1.0', '0.0'], - }, - marineBlue: { - colors: ['#00759A', '#004EAC'], - waveColor: '#BDDBFF', - opacity: ['0.72', '0.0'], - }, - veryBlue: { - colors: ['#0B2B9C', '#311288'], - waveColor: '#8960FD', - opacity: ['0.72', '0.0'], - }, - rubyRed: { - colors: ['#A4284B', '#8D1134'], - waveColor: '#FFBFF5', - opacity: ['0.28', '0.10'], - }, - toastyOrange: { - colors: ['#CC3707', '#9A2500'], - waveColor: '#FF784E', - opacity: ['0.72', '0.0'], - }, - purpleSky: { - colors: ['#AF29F8', '#4100F4'], - waveColor: '#AF29F8', - opacity: ['0.72', '0.0'], - }, - eveningSea: { - colors: ['#00FFF2', '#035355'], - waveColor: '', - opacity: ['0.72', '0.0'], - }, - teal: { - colors: ['#005E4D', '#004E40'], - waveColor: '#9BF0E1', - opacity: ['0.72', '0.0'], - }, - pinkSea: { - colors: ['#C8077A', '#C2297D'], - waveColor: '#ea93c3', - opacity: ['0.8', '0.0'], - }, +/* + # How to add a shape + 1. Get the svg shape from figma, should be ~1400 wide, ~400 high + and only the white->transparent mask, no colors. + 2. Run it through https://jakearchibald.github.io/svgomg/ + 3. Run that through https://github.com/tigt/mini-svg-data-uri + with something like https://npm.runkit.com/mini-svg-data-uri + 4. Wrap the output in `url("")` + 5. Give it a name and paste it into the `shapes` object below. + +*/ +export const shapes: Record = { + wave: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1368' height='401' x='0' y='0' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M437 116C223 116 112 0 112 0h1256v400c-82 0-225-21-282-109-112-175-436-175-649-175z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1368 400V282C891-29 788 40 711 161 608 324 121 372 0 361v39h1368z'/%3e%3cpath fill='url(%23paint2_linear)' d='M1368 244v156H0V94c92-24 198-46 375 0l135 41c176 51 195 109 858 109z'/%3e%3cpath fill='url(%23paint3_linear)' d='M1252 400h116c-14-7-35-14-116-16-663-14-837-128-1013-258l-85-61C98 28 46 8 0 0v400h1252z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M-172-98h1671v601H-172z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='602' x2='1093.5' y1='-960.5' y2='272' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='482' x2='480' y1='1058.5' y2='70.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='424' x2='446.1' y1='-587.5' y2='274.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='587' x2='349' y1='-1120.5' y2='341' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`, + wave2: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1764' height='479' x='-229' y='-6' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M0 400h1350C1321 336 525 33 179-2c-345-34-395 236-408 402H0z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1378 177v223H0V217s219 75 327 52C436 246 717-35 965 45s254 144 413 132z'/%3e%3cpath fill='url(%23paint2_linear)' d='M26 400l-78-16c-170 205-44-6-137-30l-4-1 4 1 137 30c37-45 89-110 159-201 399-514-45 238 1176-50 275-65 354-39 91 267H26z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='431' x2='397.3' y1='-599' y2='372.8' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='236.5' x2='446.6' y1='-586' y2='381.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='851.8' x2='640.4' y1='-867.2' y2='363.7' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`, + round: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='2269' height='1408' x='-610' y='-509' maskUnits='userSpaceOnUse'%3e%3ccircle cx='1212.8' cy='74.8' r='317.5' fill='url(%23paint0_linear)' transform='rotate(-52 1213 75)'/%3e%3ccircle cx='737.8' cy='445.8' r='317.5' fill='url(%23paint1_linear)' transform='rotate(-116 738 446)'/%3e%3ccircle cx='601.8' cy='52.8' r='418.6' fill='url(%23paint2_linear)' transform='rotate(-117 602 53)'/%3e%3ccircle cx='999.8' cy='364' r='389.1' fill='url(%23paint3_linear)' transform='rotate(31 1000 364)'/%3e%3cellipse cx='-109.2' cy='263.5' fill='url(%23paint4_linear)' rx='429.2' ry='465.8' transform='rotate(-85 -109 264)'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='1301.2' x2='161.4' y1='-1879.7' y2='-969.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='826.2' x2='-313.6' y1='-1508.7' y2='-598.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='718.4' x2='-784.3' y1='-2524' y2='-1324.2' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='1108.2' x2='-288.6' y1='-2031.1' y2='-915.9' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint4_linear' x1='10.4' x2='-1626.5' y1='-2603.8' y2='-1399.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`, +}; + +export const colorVariants: Record = { + darkGrey: ['#171717', '#383838'], + marineBlue: ['#006D8F', '#0049A1'], + veryBlue: ['#0027AF', '#270094'], + rubyRed: ['#98002B', '#8D1134'], + toastyOrange: ['#BE2200', '#A41D00'], + purpleSky: ['#8912CA', '#3E00EA'], + eveningSea: ['#00FFF2', '#035355'], + teal: ['#005B4B'], + pinkSea: ['#C8077A', '#C2297D'], }; export const pageTheme: Record = { - home: { - gradient: gradients.teal, - }, - documentation: { - gradient: gradients.pinkSea, - }, - tool: { - gradient: gradients.purpleSky, - }, - service: { - gradient: gradients.marineBlue, - }, - website: { - gradient: gradients.veryBlue, - }, - library: { - gradient: gradients.rubyRed, - }, - other: { - gradient: gradients.darkGrey, - }, - app: { - gradient: gradients.toastyOrange, - }, + home: genTheme(colorVariants.teal, shapes.wave), + documentation: genTheme(colorVariants.pinkSea, shapes.wave2), + tool: genTheme(colorVariants.purpleSky, shapes.round), + service: genTheme(colorVariants.marineBlue, shapes.wave), + website: genTheme(colorVariants.veryBlue, shapes.wave), + library: genTheme(colorVariants.rubyRed, shapes.wave), + other: genTheme(colorVariants.darkGrey, shapes.wave), + app: genTheme(colorVariants.toastyOrange, shapes.wave), }; + +// As the background shapes and colors are decorative, we place them onto +// the page as a css background-image instead of an html element of its own. +// Utility to not have to write colors and shapes twice. +function genTheme(colors: string[], shape: string) { + const gradientColors = colors.length === 1 ? [colors[0], colors[0]] : colors; + const gradient = `linear-gradient(90deg, ${gradientColors.join(', ')})`; + const backgroundImage = `${shape}, ${gradient}`; + + return { colors, shape, backgroundImage }; +} diff --git a/packages/core/src/layout/Page/index.ts b/packages/core/src/layout/Page/index.ts index f8fa7dc668..000a565c83 100644 --- a/packages/core/src/layout/Page/index.ts +++ b/packages/core/src/layout/Page/index.ts @@ -15,5 +15,5 @@ */ export { Page } from './Page'; -export { gradients, pageTheme } from './PageThemeProvider'; +export { pageTheme } from './PageThemeProvider'; export type { PageTheme } from './PageThemeProvider'; diff --git a/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx b/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx index 7d38c6f223..d98b1a11e9 100644 --- a/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx +++ b/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx @@ -56,7 +56,7 @@ export const TemplateCard = ({ name, }: TemplateCardProps) => { const theme = pageTheme[type] ?? pageTheme.other; - const [gradientStart, gradientStop] = theme.gradient.colors; + const [gradientStart, gradientStop] = theme.colors; const classes = useStyles({ gradientStart, gradientStop }); const href = generatePath(templateRoute.path, { templateName: name }); From 645c7f444bd07368fdc644a92018c1e0f36482d5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 09:21:59 +0200 Subject: [PATCH 25/72] core-api: switch auth provider apiOrigin option to backendUrl --- packages/app/src/apis.ts | 19 ++++--- .../implementations/auth/auth0/Auth0Auth.ts | 12 ++--- .../implementations/auth/github/GithubAuth.ts | 6 +-- .../implementations/auth/gitlab/GitlabAuth.ts | 6 +-- .../implementations/auth/google/GoogleAuth.ts | 6 +-- .../implementations/auth/oauth2/OAuth2.ts | 6 +-- .../implementations/auth/okta/OktaAuth.ts | 52 +++++++++---------- .../DefaultAuthConnector.test.ts | 8 +-- .../lib/AuthConnector/DefaultAuthConnector.ts | 15 +++--- packages/dev-utils/src/devApp/apiFactories.ts | 8 +-- .../ProfileCatalog/ProfileCatalog.test.tsx | 2 +- 11 files changed, 70 insertions(+), 70 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 3bc0c82b31..9f54e244df 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -66,7 +66,10 @@ import { } from '@backstage/plugin-github-actions'; import { jenkinsApiRef, JenkinsApi } from '@backstage/plugin-jenkins'; -import { TravisCIApi, travisCIApiRef } from '@roadiehq/backstage-plugin-travis-ci'; +import { + TravisCIApi, + travisCIApiRef, +} from '@roadiehq/backstage-plugin-travis-ci'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -106,7 +109,7 @@ export const apis = (config: ConfigApi) => { builder.add( googleAuthApiRef, GoogleAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -115,7 +118,7 @@ export const apis = (config: ConfigApi) => { const githubAuthApi = builder.add( githubAuthApiRef, GithubAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -124,7 +127,7 @@ export const apis = (config: ConfigApi) => { builder.add( oktaAuthApiRef, OktaAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -133,16 +136,16 @@ export const apis = (config: ConfigApi) => { builder.add( gitlabAuthApiRef, GitlabAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), ); - + builder.add( auth0AuthApiRef, Auth0Auth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -151,7 +154,7 @@ export const apis = (config: ConfigApi) => { builder.add( oauth2ApiRef, OAuth2.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts index 3d8a42a4cc..e69733741f 100644 --- a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts @@ -34,7 +34,7 @@ import { Observable } from '../../../../types'; type CreateOptions = { // TODO(Following the words of Rugvip): These two should be grabbed from global config when available, they're not unique to Auth0Auth - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -67,14 +67,14 @@ class Auth0Auth BackstageIdentityApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, @@ -96,11 +96,7 @@ class Auth0Auth const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - `email`, - `profile`, - ]), + defaultScopes: new Set(['openid', `email`, `profile`]), sessionScopes: (session: Auth0Session) => session.providerInfo.scopes, sessionShouldRefresh: (session: Auth0Session) => { const expiresInSec = diff --git a/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts b/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts index aaea681cef..1ad3e08699 100644 --- a/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts @@ -35,7 +35,7 @@ import { Observable } from '../../../../types'; type CreateOptions = { // TODO(Rugvip): These two should be grabbed from global config when available, they're not unique to GithubAuth - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -62,14 +62,14 @@ const DEFAULT_PROVIDER = { class GithubAuth implements OAuthApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts b/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts index 20e13f8a03..e612c4ca61 100644 --- a/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts @@ -31,7 +31,7 @@ import { StaticAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { Observable } from '../../../../types'; type CreateOptions = { - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -58,14 +58,14 @@ const DEFAULT_PROVIDER = { class GitlabAuth implements OAuthApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts b/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts index 594116fc1a..c6a21dbb20 100644 --- a/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts @@ -35,7 +35,7 @@ import { Observable } from '../../../../types'; type CreateOptions = { // TODO(Rugvip): These two should be grabbed from global config when available, they're not unique to GoogleAuth - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -71,14 +71,14 @@ class GoogleAuth BackstageIdentityApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts index d2a3531d05..4b6177bed9 100644 --- a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -33,7 +33,7 @@ import { import { OAuth2Session } from './types'; type CreateOptions = { - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -64,14 +64,14 @@ const SCOPE_PREFIX = ''; class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts index f10ec4ebce..f60b182118 100644 --- a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts @@ -34,7 +34,7 @@ import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager import { Observable } from '../../../../types'; type CreateOptions = { - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -60,28 +60,34 @@ const DEFAULT_PROVIDER = { icon: OktaIcon, }; -const OKTA_OIDC_SCOPES: Set = new Set( - ['openid', 'profile', 'email', 'phone', 'address', 'groups', 'offline_access'] -) +const OKTA_OIDC_SCOPES: Set = new Set([ + 'openid', + 'profile', + 'email', + 'phone', + 'address', + 'groups', + 'offline_access', +]); -const OKTA_SCOPE_PREFIX: string = 'okta.' +const OKTA_SCOPE_PREFIX: string = 'okta.'; -class OktaAuth implements - OAuthApi, - OpenIdConnectApi, - ProfileInfoApi, - BackstageIdentityApi, - SessionStateApi -{ +class OktaAuth + implements + OAuthApi, + OpenIdConnectApi, + ProfileInfoApi, + BackstageIdentityApi, + SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, @@ -103,12 +109,7 @@ class OktaAuth implements const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - 'email', - 'profile', - 'offline_access', - ]), + defaultScopes: new Set(['openid', 'email', 'profile', 'offline_access']), sessionScopes: session => session.scopes, sessionShouldRefresh: session => { const expiresInSec = @@ -126,10 +127,7 @@ class OktaAuth implements constructor(private readonly sessionManager: SessionManager) {} - async getAccessToken( - scope?: string, - options?: AuthRequestOptions - ) { + async getAccessToken(scope?: string, options?: AuthRequestOptions) { const session = await this.sessionManager.getSession({ ...options, scopes: OktaAuth.normalizeScopes(scope), @@ -175,12 +173,12 @@ class OktaAuth implements if (scope.startsWith(OKTA_SCOPE_PREFIX)) { return scope; } - - return `${OKTA_SCOPE_PREFIX}${scope}` + + return `${OKTA_SCOPE_PREFIX}${scope}`; }); return new Set(normalizedScopes); } } -export default OktaAuth; \ No newline at end of file +export default OktaAuth; diff --git a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts index bfbb2dbc0b..b6c31405ae 100644 --- a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts +++ b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts @@ -22,7 +22,7 @@ import * as loginPopup from '../loginPopup'; const anyFetch = fetch as any; const defaultOptions = { - apiOrigin: 'my-origin', + backendUrl: 'http://my-origin', environment: 'production', provider: { id: 'my-provider', @@ -114,7 +114,8 @@ describe('DefaultAuthConnector', () => { expect(popupSpy).toBeCalledTimes(1); expect(popupSpy.mock.calls[0][0]).toMatchObject({ - url: 'my-origin/api/auth/my-provider/start?scope=a%20b&env=production', + url: + 'http://my-origin/api/auth/my-provider/start?scope=a%20b&env=production', }); await expect(sessionPromise).resolves.toEqual({ @@ -162,7 +163,8 @@ describe('DefaultAuthConnector', () => { expect(popupSpy).toBeCalledTimes(1); expect(popupSpy.mock.calls[0][0]).toMatchObject({ - url: 'my-origin/api/auth/my-provider/start?scope=-ab-&env=production', + url: + 'http://my-origin/api/auth/my-provider/start?scope=-ab-&env=production', }); }); }); diff --git a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts index f0f57c1c12..41af7f4670 100644 --- a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts +++ b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts @@ -23,9 +23,9 @@ const DEFAULT_BASE_PATH = '/api/auth/'; type Options = { /** - * Origin of auth requests, defaults to location.origin + * The base URL of the auth backend. */ - apiOrigin?: string; + backendUrl?: string; /** * Base path of the auth requests, defaults to /api/auth/ */ @@ -64,7 +64,7 @@ function defaultJoinScopes(scopes: Set) { */ export class DefaultAuthConnector implements AuthConnector { - private readonly apiOrigin: string; + private readonly backendUrl: string; private readonly basePath: string; private readonly environment: string; private readonly provider: AuthProvider & { id: string }; @@ -74,7 +74,7 @@ export class DefaultAuthConnector constructor(options: Options) { const { - apiOrigin = window.location.origin, + backendUrl = window.location.origin, basePath = DEFAULT_BASE_PATH, environment, provider, @@ -88,7 +88,7 @@ export class DefaultAuthConnector onAuthRequest: scopes => this.showPopup(scopes), }); - this.apiOrigin = apiOrigin; + this.backendUrl = backendUrl; this.basePath = basePath; this.environment = environment; this.provider = provider; @@ -154,11 +154,12 @@ export class DefaultAuthConnector private async showPopup(scopes: Set): Promise { const scope = this.joinScopesFunc(scopes); const popupUrl = this.buildUrl('/start', { scope }); + const { origin } = new URL(this.backendUrl); const payload = await showLoginPopup({ url: popupUrl, name: `${this.provider.title} Login`, - origin: this.apiOrigin, + origin, width: 450, height: 730, }); @@ -175,7 +176,7 @@ export class DefaultAuthConnector env: this.environment, }); - return `${this.apiOrigin}${this.basePath}${this.provider.id}${path}${queryString}`; + return `${this.backendUrl}${this.basePath}${this.provider.id}${path}${queryString}`; } private buildQueryString(query?: { diff --git a/packages/dev-utils/src/devApp/apiFactories.ts b/packages/dev-utils/src/devApp/apiFactories.ts index b88611f062..5acf64e0d0 100644 --- a/packages/dev-utils/src/devApp/apiFactories.ts +++ b/packages/dev-utils/src/devApp/apiFactories.ts @@ -63,7 +63,7 @@ export const googleAuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => GoogleAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), @@ -74,7 +74,7 @@ export const githubAuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => GithubAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), @@ -85,7 +85,7 @@ export const gitlabAuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => GitlabAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), @@ -96,7 +96,7 @@ export const auth0AuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => Auth0Auth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), diff --git a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx index 50268e6a50..a502f6fb4e 100644 --- a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx +++ b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx @@ -37,7 +37,7 @@ describe('ProfileCatalog', () => { [ githubAuthApiRef, GithubAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), From e171eb7669ec102eed007dee6befa14bd15a6398 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 09:23:10 +0200 Subject: [PATCH 26/72] core-api: fix usage of deprecated wait in tests --- .../OAuthRequestApi/OAuthPendingRequests.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts b/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts index 36378798d4..280321daa0 100644 --- a/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts +++ b/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { wait } from '@testing-library/react'; +import { waitFor } from '@testing-library/react'; import { OAuthPendingRequests } from './OAuthPendingRequests'; describe('OAuthPendingRequests', () => { @@ -27,7 +27,7 @@ describe('OAuthPendingRequests', () => { target.pending().subscribe({ next, error }); target.request(input); - await wait(() => expect(next).toBeCalledTimes(2)); + await waitFor(() => expect(next).toBeCalledTimes(2)); expect(next.mock.calls[0][0].scopes).toBeUndefined(); expect(next.mock.calls[1][0].scopes.toString()).toBe(input.toString()); expect(error.mock.calls.length).toBe(0); From 08464607fa4576964a7796488aacf852b7e13a2c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2020 09:48:50 +0200 Subject: [PATCH 27/72] chore(deps): bump dockerode from 3.2.0 to 3.2.1 (#2019) Bumps [dockerode](https://github.com/apocas/dockerode) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/apocas/dockerode/releases) - [Commits](https://github.com/apocas/dockerode/compare/v3.2.0...v3.2.1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9d0232337f..73e363e3b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8131,7 +8131,7 @@ concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^2.0.0, concat-stream@~2.0.0: +concat-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== @@ -9431,16 +9431,7 @@ docker-modem@^2.1.0: split-ca "^1.0.1" ssh2 "^0.8.7" -dockerode@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.2.0.tgz#80e5bd9c2a988bdde4c995ae4aa2584fa0166c23" - integrity sha512-C+y/W4Kks7YLBsfUOTMkk1IVilb4cdj+rE+UZ5hnE+rpcn2frSs7kX+6H8GteTqHcv8sln+GyxuP1qdno3IzIw== - dependencies: - concat-stream "~2.0.0" - docker-modem "^2.1.0" - tar-fs "~2.0.1" - -dockerode@^3.2.1: +dockerode@^3.2.0, dockerode@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.2.1.tgz#4a2222e3e1df536bf595e78e76d3cfbf6d4d93b9" integrity sha512-XsSVB5Wu5HWMg1aelV5hFSqFJaKS5x1aiV/+sT7YOzOq1IRl49I/UwV8Pe4x6t0iF9kiGkWu5jwfvbkcFVupBw== From d8b241f977ce4ff3b39a77edb703ad66d56966ff Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2020 10:53:37 +0200 Subject: [PATCH 28/72] chore(deps): bump knex from 0.21.1 to 0.21.5 (#2020) Bumps [knex](https://github.com/knex/knex) from 0.21.1 to 0.21.5. - [Release notes](https://github.com/knex/knex/releases) - [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md) - [Commits](https://github.com/knex/knex/compare/0.21.1...0.21.5) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/yarn.lock b/yarn.lock index 73e363e3b1..b82e9caae3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7986,12 +7986,7 @@ color@^3.0.0, color@^3.1.2: color-convert "^1.9.1" color-string "^1.5.2" -colorette@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz#1f943e5a357fac10b4e0f5aaef3b14cdc1af6ec7" - integrity sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg== - -colorette@^1.2.1: +colorette@1.2.1, colorette@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== @@ -12936,10 +12931,10 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -interpret@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.0.0.tgz#b783ffac0b8371503e9ab39561df223286aa5433" - integrity sha512-e0/LknJ8wpMMhTiWcjivB+ESwIuvHnBSlBbmP/pSb8CQJldoj1p2qv7xGZ/+BtbTziYRFSz8OsvdbiX45LtYQA== +interpret@^2.0.0, interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== into-stream@^3.1.0: version "3.1.0" @@ -14562,25 +14557,25 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== knex@^0.21.1: - version "0.21.1" - resolved "https://registry.npmjs.org/knex/-/knex-0.21.1.tgz#4fba7e6c58c9f459846c3090be157a732fc75e41" - integrity sha512-uWszXC2DPaLn/YznGT9wFTWUG9+kqbL4DMz+hCH789GLcLuYzq8werHPDKBJxtKvxrW/S1XIXgrTWdMypiVvsw== + version "0.21.5" + resolved "https://registry.npmjs.org/knex/-/knex-0.21.5.tgz#c4be1958488f348aed3510aa4b7115639ee1bd01" + integrity sha512-cQj7F2D/fu03eTr6ZzYCYKdB9w7fPYlvTiU/f2OeXay52Pq5PwD+NAkcf40WDnppt/4/4KukROwlMOaE7WArcA== dependencies: - colorette "1.1.0" + colorette "1.2.1" commander "^5.1.0" debug "4.1.1" esm "^3.2.25" getopts "2.2.5" inherits "~2.0.4" - interpret "^2.0.0" + interpret "^2.2.0" liftoff "3.1.0" - lodash "^4.17.15" + lodash "^4.17.20" mkdirp "^1.0.4" - pg-connection-string "2.2.0" + pg-connection-string "2.3.0" tarn "^3.0.0" tildify "2.0.0" uuid "^7.0.3" - v8flags "^3.1.3" + v8flags "^3.2.0" kuler@1.0.x: version "1.0.1" @@ -15075,7 +15070,7 @@ lodash.without@^4.4.0: resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -17423,12 +17418,7 @@ pg-connection-string@0.1.3, pg-connection-string@^0.1.3: resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= -pg-connection-string@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.0.tgz#caab4d38a9de4fdc29c9317acceed752897de41c" - integrity sha512-xB/+wxcpFipUZOQcSzcgkjcNOosGhEoPSjz06jC89lv1dj7mc9bZv6wLVy8M2fVjP0a/xN0N988YDq1L0FhK3A== - -pg-connection-string@^2.3.0: +pg-connection-string@2.3.0, pg-connection-string@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.3.0.tgz#c13fcb84c298d0bfa9ba12b40dd6c23d946f55d6" integrity sha512-ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w== @@ -22638,10 +22628,10 @@ v8-to-istanbul@^4.1.3: convert-source-map "^1.6.0" source-map "^0.7.3" -v8flags@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" - integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" From 0ed795bf0663eb9260b213775daa45bedd9b485c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2020 10:53:58 +0200 Subject: [PATCH 29/72] chore(deps-dev): bump @types/codemirror from 0.0.96 to 0.0.97 (#2021) Bumps [@types/codemirror](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/codemirror) from 0.0.96 to 0.0.97. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/codemirror) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- plugins/graphiql/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index a034c14a11..27437d0318 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -49,7 +49,7 @@ "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", - "@types/codemirror": "^0.0.96", + "@types/codemirror": "^0.0.97", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", "jest-fetch-mock": "^3.0.3", diff --git a/yarn.lock b/yarn.lock index b82e9caae3..e119146c68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4463,10 +4463,10 @@ dependencies: "@types/node" "*" -"@types/codemirror@^0.0.96": - version "0.0.96" - resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.96.tgz#73b52e784a246cebef31d544fef45ea764de5bad" - integrity sha512-GTswEV26Bl1byRxpD3sKd1rT2AISr0rK9ImlJgEzfvqhcVWeu4xQKFQI6UgSC95NT5swNG4st/oRMeGVZgPj9w== +"@types/codemirror@^0.0.97": + version "0.0.97" + resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.97.tgz#6f2d8266b7f1b34aacfe8c77221fafe324c3d081" + integrity sha512-n5d7o9nWhC49DjfhsxANP7naWSeTzrjXASkUDQh7626sM4zK9XP2EVcHp1IcCf/IPV6c7ORzDUDF3Bkt231VKg== dependencies: "@types/tern" "*" From 5e0341f01c33b32d4943deaa53f91a1575b6d1a4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 11:25:22 +0200 Subject: [PATCH 30/72] plugins/auth-backend: refactor OAuthProvider to derive options from app.baseUrl --- .../src/lib/OAuthProvider.test.ts | 3 +- plugins/auth-backend/src/lib/OAuthProvider.ts | 50 ++++++++++++------- .../src/providers/auth0/provider.ts | 11 ++-- .../src/providers/github/provider.ts | 11 ++-- .../src/providers/gitlab/provider.ts | 11 ++-- .../src/providers/google/provider.ts | 11 ++-- .../src/providers/oauth2/provider.ts | 20 ++++---- .../src/providers/okta/provider.ts | 11 ++-- plugins/auth-backend/src/providers/types.ts | 5 ++ plugins/auth-backend/src/service/router.ts | 3 +- 10 files changed, 67 insertions(+), 69 deletions(-) diff --git a/plugins/auth-backend/src/lib/OAuthProvider.test.ts b/plugins/auth-backend/src/lib/OAuthProvider.test.ts index 0778b875d0..06bbd15c51 100644 --- a/plugins/auth-backend/src/lib/OAuthProvider.test.ts +++ b/plugins/auth-backend/src/lib/OAuthProvider.test.ts @@ -205,8 +205,9 @@ describe('OAuthProvider', () => { providerId: 'test-provider', secure: false, disableRefresh: true, - baseUrl: 'http://localhost:7000/auth', appOrigin: 'http://localhost:3000', + cookieDomain: 'localhost', + cookiePath: '/auth/test-provider', tokenIssuer: { issueToken: async () => 'my-id-token', listPublicKeys: async () => ({ keys: [] }), diff --git a/plugins/auth-backend/src/lib/OAuthProvider.ts b/plugins/auth-backend/src/lib/OAuthProvider.ts index f2b8c8e09c..dccab34da1 100644 --- a/plugins/auth-backend/src/lib/OAuthProvider.ts +++ b/plugins/auth-backend/src/lib/OAuthProvider.ts @@ -23,6 +23,7 @@ import { WebMessageResponse, BackstageIdentity, OAuthState, + AuthProviderConfig, } from '../providers/types'; import { InputError } from '@backstage/backend-common'; import { TokenIssuer } from '../identity'; @@ -35,7 +36,8 @@ export type Options = { secure: boolean; disableRefresh?: boolean; persistScopes?: boolean; - baseUrl: string; + cookieDomain: string; + cookiePath: string; appOrigin: string; tokenIssuer: TokenIssuer; }; @@ -120,17 +122,31 @@ export const ensuresXRequestedWith = (req: express.Request) => { }; export class OAuthProvider implements AuthProviderRouteHandlers { - private readonly domain: string; - private readonly basePath: string; + static fromConfig( + config: AuthProviderConfig, + providerHandlers: OAuthProviderHandlers, + options: Pick< + Options, + 'providerId' | 'persistScopes' | 'disableRefresh' | 'tokenIssuer' + >, + ): OAuthProvider { + const { origin: appOrigin } = new URL(config.appUrl); + const secure = config.baseUrl.startsWith('https://'); + const url = new URL(config.baseUrl); + const cookiePath = `${url.pathname}/${options.providerId}`; + return new OAuthProvider(providerHandlers, { + ...options, + appOrigin, + cookieDomain: url.hostname, + cookiePath, + secure, + }); + } constructor( private readonly providerHandlers: OAuthProviderHandlers, private readonly options: Options, - ) { - const url = new URL(options.baseUrl); - this.domain = url.hostname; - this.basePath = url.pathname; - } + ) {} async start(req: express.Request, res: express.Response): Promise { // retrieve scopes from request @@ -298,8 +314,8 @@ export class OAuthProvider implements AuthProviderRouteHandlers { maxAge: TEN_MINUTES_MS, secure: this.options.secure, sameSite: 'lax', - domain: this.domain, - path: `${this.basePath}/${this.options.providerId}/handler`, + domain: this.options.cookieDomain, + path: `${this.options.cookiePath}/handler`, httpOnly: true, }); }; @@ -309,8 +325,8 @@ export class OAuthProvider implements AuthProviderRouteHandlers { maxAge: TEN_MINUTES_MS, secure: this.options.secure, sameSite: 'lax', - domain: this.domain, - path: `${this.basePath}/${this.options.providerId}/handler`, + domain: this.options.cookieDomain, + path: `${this.options.cookiePath}/handler`, httpOnly: true, }); }; @@ -327,8 +343,8 @@ export class OAuthProvider implements AuthProviderRouteHandlers { maxAge: THOUSAND_DAYS_MS, secure: this.options.secure, sameSite: 'lax', - domain: this.domain, - path: `${this.basePath}/${this.options.providerId}`, + domain: this.options.cookieDomain, + path: this.options.cookiePath, httpOnly: true, }); }; @@ -336,10 +352,10 @@ export class OAuthProvider implements AuthProviderRouteHandlers { private removeRefreshTokenCookie = (res: express.Response) => { res.cookie(`${this.options.providerId}-refresh-token`, '', { maxAge: 0, - secure: false, + secure: this.options.secure, sameSite: 'lax', - domain: `${this.domain}`, - path: `${this.basePath}/${this.options.providerId}`, + domain: this.options.cookieDomain, + path: this.options.cookiePath, httpOnly: true, }); }; diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index 6dfcf3830a..903f6dc63c 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -141,19 +141,17 @@ export class Auth0AuthProvider implements OAuthProviderHandlers { } export function createAuth0Provider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'auth0'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const domain = envConfig.getString('domain'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -175,12 +173,9 @@ export function createAuth0Provider( return undefined; } - return new OAuthProvider(new Auth0AuthProvider(opts), { + return OAuthProvider.fromConfig(config, new Auth0AuthProvider(opts), { disableRefresh: true, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index 863cfa9f5a..78db99c75c 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -125,15 +125,13 @@ export class GithubAuthProvider implements OAuthProviderHandlers { } export function createGithubProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'github'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const enterpriseInstanceUrl = envConfig.getOptionalString( @@ -148,7 +146,7 @@ export function createGithubProvider( const userProfileURL = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/api/v3/user` : undefined; - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -171,13 +169,10 @@ export function createGithubProvider( ); return undefined; } - return new OAuthProvider(new GithubAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new GithubAuthProvider(opts), { disableRefresh: true, persistScopes: true, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/gitlab/provider.ts b/plugins/auth-backend/src/providers/gitlab/provider.ts index 22d0bd4f0a..e9246a30c0 100644 --- a/plugins/auth-backend/src/providers/gitlab/provider.ts +++ b/plugins/auth-backend/src/providers/gitlab/provider.ts @@ -132,20 +132,18 @@ export class GitlabAuthProvider implements OAuthProviderHandlers { } export function createGitlabProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'gitlab'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); const baseURL = audience || 'https://gitlab.com'; - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -166,12 +164,9 @@ export function createGitlabProvider( ); return undefined; } - return new OAuthProvider(new GitlabAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new GitlabAuthProvider(opts), { disableRefresh: true, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index b8070949f9..d956cb2f44 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -144,18 +144,16 @@ export class GoogleAuthProvider implements OAuthProviderHandlers { } export function createGoogleProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'google'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -175,12 +173,9 @@ export function createGoogleProvider( ); return undefined; } - return new OAuthProvider(new GoogleAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new GoogleAuthProvider(opts), { disableRefresh: false, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/oauth2/provider.ts b/plugins/auth-backend/src/providers/oauth2/provider.ts index c03f7c4371..ed3bbba6ea 100644 --- a/plugins/auth-backend/src/providers/oauth2/provider.ts +++ b/plugins/auth-backend/src/providers/oauth2/provider.ts @@ -29,7 +29,7 @@ import { } from '../../lib/PassportStrategyHelper'; import { AuthProviderConfig, - GenericOAuth2ProviderOptions, + OAuthProviderOptions, OAuthProviderHandlers, OAuthResponse, PassportDoneCallback, @@ -41,10 +41,15 @@ type PrivateInfo = { refreshToken: string; }; +export type OAuth2AuthProviderOptions = OAuthProviderOptions & { + authorizationURL: string; + tokenURL: string; +}; + export class OAuth2AuthProvider implements OAuthProviderHandlers { private readonly _strategy: OAuth2Strategy; - constructor(options: GenericOAuth2ProviderOptions) { + constructor(options: OAuth2AuthProviderOptions) { this._strategy = new OAuth2Strategy( { ...options, passReqToCallback: false as true }, ( @@ -142,18 +147,16 @@ export class OAuth2AuthProvider implements OAuthProviderHandlers { } export function createOAuth2Provider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'oauth2'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const authorizationURL = envConfig.getString('authorizationURL'); const tokenURL = envConfig.getString('tokenURL'); @@ -182,12 +185,9 @@ export function createOAuth2Provider( ); return undefined; } - return new OAuthProvider(new OAuth2AuthProvider(opts), { + return OAuthProvider.fromConfig(config, new OAuth2AuthProvider(opts), { disableRefresh: false, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/okta/provider.ts b/plugins/auth-backend/src/providers/okta/provider.ts index 058300cef6..cfae366f7e 100644 --- a/plugins/auth-backend/src/providers/okta/provider.ts +++ b/plugins/auth-backend/src/providers/okta/provider.ts @@ -164,19 +164,17 @@ export class OktaAuthProvider implements OAuthProviderHandlers { } export function createOktaProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'okta'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { audience, @@ -197,12 +195,9 @@ export function createOktaProvider( ); return undefined; } - return new OAuthProvider(new OktaAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new OktaAuthProvider(opts), { disableRefresh: false, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index d372fd1b94..78cd4e1fe3 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -93,6 +93,11 @@ export type AuthProviderConfig = { * callbackURL to redirect to once the user signs in to the auth provider. */ baseUrl: string; + + /** + * The base URL of the app as provided by app.baseUrl + */ + appUrl: string; }; /** diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 69f058f6db..70cd6d8f99 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -36,6 +36,7 @@ export async function createRouter( const router = Router(); const logger = options.logger.child({ plugin: 'auth' }); + const appUrl = options.config.getString('app.baseUrl'); const backendUrl = options.config.getString('backend.baseUrl'); const authUrl = `${backendUrl}/auth`; @@ -64,7 +65,7 @@ export async function createRouter( const providerConfig = providersConfig.getConfig(providerId); const providerRouter = createAuthProviderRouter( providerId, - { baseUrl: authUrl }, + { baseUrl: authUrl, appUrl }, providerConfig, logger, tokenIssuer, From 1d9007184caa52b0899844e3d5b7dceb4dcd2dd2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 11:26:29 +0200 Subject: [PATCH 31/72] app-config: remove unnecessary auth config --- app-config.yaml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 99415b5b41..4321ef138c 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -54,8 +54,6 @@ auth: providers: google: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_GOOGLE_CLIENT_ID @@ -64,8 +62,6 @@ auth: env: AUTH_GOOGLE_CLIENT_SECRET github: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_GITHUB_CLIENT_ID @@ -77,8 +73,6 @@ auth: env: AUTH_GITHUB_ENTERPRISE_INSTANCE_URL gitlab: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_GITLAB_CLIENT_ID @@ -94,8 +88,6 @@ auth: # issuer: "passport-saml" okta: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_OKTA_CLIENT_ID @@ -107,8 +99,6 @@ auth: env: AUTH_OKTA_AUDIENCE oauth2: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_OAUTH2_CLIENT_ID @@ -123,8 +113,6 @@ auth: env: AUTH_OAUTH2_TOKEN_URL auth0: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_AUTH0_CLIENT_ID From 24a12989831c5ed7522ceaf74450cac0abd06f29 Mon Sep 17 00:00:00 2001 From: Perry Manuk Date: Wed, 19 Aug 2020 12:10:32 +0200 Subject: [PATCH 32/72] Techdocs-cli Build Fix We're using cloud build in gcp to build/package our backstage deployment and when you upload your artifacts it will remove all of the .git folder to mimimize the upload causing the techdocs-cli to fail as it relies on using `git rev-parse` to discover the full path. I changed this to be statically linked so the reliance on git is no longer there and so that as long as the structure of your repo doesn't change it should build no matter where the root folder is placed. --- packages/techdocs-cli/bin/build.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/techdocs-cli/bin/build.sh b/packages/techdocs-cli/bin/build.sh index 225cc334aa..0a3dfeb96d 100755 --- a/packages/techdocs-cli/bin/build.sh +++ b/packages/techdocs-cli/bin/build.sh @@ -16,9 +16,8 @@ set -e -ROOT_DIR=$(git rev-parse --show-toplevel) -TECHDOCS_PREVIEW_SOURCE=$ROOT_DIR/plugins/techdocs/dist -TECHDOCS_PREVIEW_DEST=$ROOT_DIR/packages/techdocs-cli/dist/techdocs-preview-bundle +TECHDOCS_PREVIEW_SOURCE=../../plugins/techdocs/dist +TECHDOCS_PREVIEW_DEST=../../packages/techdocs-cli/dist/techdocs-preview-bundle # Build the CLI yarn run backstage-cli -- build --outputs cjs From 9568848b54524ec70a621e7ef4cf1446674231ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Wed, 19 Aug 2020 12:23:42 +0200 Subject: [PATCH 33/72] Link to marketplace issue from roadmap (#2010) * Link to marketplace issue from roadmap * Update roadmap.md * Update roadmap.md * Update roadmap.md --- docs/overview/roadmap.md | 95 ++++++++++++++++++++++++++++++++-------- 1 file changed, 77 insertions(+), 18 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index 97020a3a22..cfe43e3e86 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -5,17 +5,17 @@ title: Project roadmap ## Current status -Backstage is currently in Alpha. This means that you can expect APIs and -features to change until we reach our -[Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). -Before we have API stability, plugins will need ongoing maintenance. It is also -recommended that teams who adopt Backstage today upgrades their installation as -new [releases](https://github.com/spotify/backstage/releases) are available. +> Backstage is currently in Alpha. This means that you can expect APIs and +> features to change until we reach our +> [Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). +> Before we have API stability, plugins will need ongoing maintenance. It is +> also recommended that teams who adopt Backstage today upgrades their +> installation as new [releases](https://github.com/spotify/backstage/releases) +> are available. ## Phases -We have divided the project into three high-level _phases_ and we have already -begun work on various aspects of these phases: +We have divided the project into three high-level _phases_: - 🐣 **Phase 1:** Extensible frontend platform (Done ✅) - You will be able to easily create a single consistent UI layer for your internal infrastructure @@ -35,22 +35,81 @@ begun work on various aspects of these phases: ## Detailed roadmap +If you have questions about the roadmap or want to provide feedback, we would +love to hear from you! Please create an +[Issue](https://github.com/spotify/backstage/issues/new/choose), ping us on +[Discord](https://discord.gg/EBHEGzX) or reach out directly at +[alund@spotify.com](mailto:alund@spotify.com). + +Want to help out? Awesome ❤️ Head over to +[CONTRIBUTING](https://github.com/spotify/backstage/blob/master/CONTRIBUTING.md) +guidelines to get started. + ### Ongoing work 🚧 -- [Plugins for managing micro services end-2-end](https://github.com/spotify/backstage/milestone/14) -- [TechDocs v1](https://github.com/spotify/backstage/milestone/16) -- [Initial GraphQL API](https://github.com/spotify/backstage/milestone/13) -- Backstage Design Language System (DLS) -- Cloud Cost Insights plugin (from Spotify) +- **[Plugins for managing micro services end-2-end](https://github.com/spotify/backstage/milestone/14)** - + Out of the box Backstage will ship with a set of plugins (Overview, CI, API + and Docs) that will demonstrate how a user can manage a micro service and + follow a change all the way out in production. Completing this work will make + it much easier to see how a plugin can be built that integrates with the + Backstage Service Catalog. + +- **Backstage Design System** - By providing design guidelines for common plugin + layouts together, rich set of reusable UI components + ([Storybook](https://backstage.io/storybook)) and Figma design resources. The + Design System will make it easy to design and build plugins that are + consistent across the platform -- supporting both developers and designers. + +- **[TechDocs v1](https://github.com/spotify/backstage/milestone/16)** - Our + docs-like-code feature TechDocs working end to end. + +- **[Initial GraphQL API](https://github.com/spotify/backstage/milestone/13)** - + A GraphQL API will open up the rich metadata provided by Backstage in a single + query. Plugins can easily query this API as well as extend the model where + needed. + +- **Production deployments** - Provide instructions and default configurations + (e.g. through Helm charts) for easy deployments of Backstage and its + subsystems on Kubernetes. + +- **Cloud Cost Insights plugin (from Spotify)** - Spotify teams are fully + responsible for their own software, including the cost of the cloud resources + they use. By making our internal cost insights plugin available as open source + you will also be able to treat cost as an engineering problem, and make it + easy for your engineers to see their spend and where there's opportunity to + reduce waste. + - Further improvements to platform documentation ### Future work 🔮 -- [Backstage Beta](https://github.com/spotify/backstage/milestone/19) -- [Global search](https://github.com/spotify/backstage/issues/1499) -- [[TechDocs V.2] Stabilization release](https://github.com/spotify/backstage/milestone/17) -- Deploy a product demo at `demo.backstage.io` -- Plugin marketplace +- **[Backstage Beta](https://github.com/spotify/backstage/milestone/19)** - The + platform APIs and features are stable and can be dependent on for production + use. After this plugins will require little to no maintenance. + +- **[Plugin marketplace](https://github.com/spotify/backstage/issues/2009)** - + As the ecosystem of Backstage plugins continues to grow it is becoming + increasingly hard to keep track of what plugins are available. To solve this + we imagine a "Plugin marketplace" that helps with discovery and installation + of plugins. + +- **Deploy a product demo at `demo.backstage.io`** - Deploy a typical Backstage + deployment available publicly so that people can click around and get a feel + for the product without having to install anything. + +- **[Global search](https://github.com/spotify/backstage/issues/1499)** - Extend + the basic search available in the Backstage Service Catalog with a global + search experience. Long term this search solution should be extensible, making + it possible for you add custom search results. + +- **[[TechDocs V.2] Stabilization release](https://github.com/spotify/backstage/milestone/17)** - + Platform stability and compatibility improvements. + +- **Additional auth providers** - Backstage should work for most (all!) auth + solutions. Since Backstage can be used by companies regardless of what cloud + (or on prem) you are using we are especially keen to get auth support for + [AWS](https://github.com/spotify/backstage/issues/290), + [Azure](https://github.com/spotify/backstage/issues/348) and others. ### Completed milestones ✅ From 19259185058603a67554cbad29969715f460cfe7 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Wed, 19 Aug 2020 13:56:15 +0200 Subject: [PATCH 34/72] fix: docs build short-term --- microsite/i18n/en.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index 40ad25fe53..d2593a13ce 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -50,6 +50,9 @@ "auth/add-auth-provider": { "title": "Adding authentication providers" }, + "auth/auth-backend-classes": { + "title": "auth/auth-backend-classes" + }, "auth/auth-backend": { "title": "Auth backend" }, From d41e5bcc0bee526aa02dd964dbb44aaf0bd6ae65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Wed, 19 Aug 2020 15:54:36 +0200 Subject: [PATCH 35/72] Fix doc links in latest blog post (#2012) * Fix doc links in latest blog post * Update 2020-08-05-announcing-backstage-software-templates.md --- .../2020-08-05-announcing-backstage-software-templates.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/microsite/blog/2020-08-05-announcing-backstage-software-templates.md b/microsite/blog/2020-08-05-announcing-backstage-software-templates.md index 6143442782..51c1da2885 100644 --- a/microsite/blog/2020-08-05-announcing-backstage-software-templates.md +++ b/microsite/blog/2020-08-05-announcing-backstage-software-templates.md @@ -35,11 +35,11 @@ Since the templates can be customized to integrate with your existing infrastruc ### Golden Paths pave the way -You can customize Backstage Software Templates to fit your organization’s standards. Using Go instead of Java? CircleCI instead of Jenkins? Serverless instead of Kubernetes? GCP instead of AWS? [Make your own recipes for any software component](/docs/features/software-templates/adding-templates.md) and your best practices will be baked right in. +You can customize Backstage Software Templates to fit your organization’s standards. Using Go instead of Java? CircleCI instead of Jenkins? Serverless instead of Kubernetes? GCP instead of AWS? [Make your own recipes for any software component](https://backstage.io/docs/features/software-templates/adding-templates) and your best practices will be baked right in. ## Getting started -The sample Software Templates are available under `/create`. If you're setting up Backstage for the first time, follow [Getting Started with Backstage](/docs/getting-started/index.md) and go to `http://localhost:3000/create`. If you’ve already been running Backstage locally, run the command `yarn lerna run mock-data` to load the new sample templates into the Service Catalog first. +The sample Software Templates are available under `/create`. If you're setting up Backstage for the first time, follow [Getting Started with Backstage](https://backstage.io/docs/getting-started/) and go to `http://localhost:3000/create`. If you’ve already been running Backstage locally, run the command `yarn lerna run mock-data` to load the new sample templates into the Service Catalog first. ![available-templates](assets/2020-08-05/templates.png) @@ -69,7 +69,7 @@ New components, of course, get added automatically to the Backstage Service Cata ## Define your standards -Backstage ships with four example templates, but since these are likely not the (only) ones you want to promote inside your company, the next step is to add [your own templates](/docs/features/software-templates/adding-templates.md). Using Backstage’s Software Templates feature, it’s easy to help your engineers get started building software with your organization’s best practices built-in. +Backstage ships with four example templates, but since these are likely not the (only) ones you want to promote inside your company, the next step is to add [your own templates](https://backstage.io/docs/features/software-templates/software-templates-index). Using Backstage’s Software Templates feature, it’s easy to help your engineers get started building software with your organization’s best practices built-in. We have learned that one of the keys to getting these standards adopted is to keep an open process. Templates are code. By making it clear to your engineers that you are open to pull requests, and that teams with different needs can add their own templates, you are on the path of striking a good balance between autonomy and standardization. From a118951eaae1adabe2d9ebe66138405f50c8df21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 19 Aug 2020 17:03:35 +0200 Subject: [PATCH 36/72] build(microsite): deploy site when docs are changed --- .github/workflows/microsite-with-storybook-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/microsite-with-storybook-deploy.yml b/.github/workflows/microsite-with-storybook-deploy.yml index a4828ba55f..84ac6f9490 100644 --- a/.github/workflows/microsite-with-storybook-deploy.yml +++ b/.github/workflows/microsite-with-storybook-deploy.yml @@ -9,6 +9,7 @@ on: - 'packages/storybook/**' - 'packages/core/src/**' - 'microsite/**' + - 'docs/**' jobs: deploy-microsite-and-storybook: From 07bc5db0269fab4d23bcf6173c8c0f19599c6e62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Thu, 20 Aug 2020 08:34:05 +0200 Subject: [PATCH 37/72] Tweak roadmap (#2035) * Tweak roadmap * Update roadmap.md * Review comments --- docs/overview/roadmap.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index cfe43e3e86..a84bc525c9 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -5,13 +5,11 @@ title: Project roadmap ## Current status -> Backstage is currently in Alpha. This means that you can expect APIs and -> features to change until we reach our -> [Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). -> Before we have API stability, plugins will need ongoing maintenance. It is -> also recommended that teams who adopt Backstage today upgrades their -> installation as new [releases](https://github.com/spotify/backstage/releases) -> are available. +> Backstage is currently under rapid development. This means that you can expect +> APIs and features to evolve. It is also recommended that teams who adopt +> Backstage today upgrade their installation as new +> [releases](https://github.com/spotify/backstage/releases) become available, as +> Backwards compatibility is not yet guaranteed. ## Phases @@ -83,9 +81,9 @@ guidelines to get started. ### Future work 🔮 -- **[Backstage Beta](https://github.com/spotify/backstage/milestone/19)** - The - platform APIs and features are stable and can be dependent on for production - use. After this plugins will require little to no maintenance. +- **[Backstage platform is stable](https://github.com/spotify/backstage/milestone/19)** - + The platform APIs and features are stable and can be depended on for + production use. After this plugins will require little to no maintenance. - **[Plugin marketplace](https://github.com/spotify/backstage/issues/2009)** - As the ecosystem of Backstage plugins continues to grow it is becoming From bf55fa1ea1de5142986789cc0daac68eb0da0229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 20 Aug 2020 08:43:23 +0200 Subject: [PATCH 38/72] fix(package.json): make yarn dev work better with double quotes --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b24c0ed2fb..e4aa18f540 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "node": "12" }, "scripts": { - "dev": "concurrently 'yarn start' 'yarn start-backend'", + "dev": "concurrently \"yarn start\" \"yarn start-backend\"", "start": "yarn workspace example-app start", "start-backend": "yarn workspace example-backend start", "build": "lerna run build", From 709f831ee1aac9578970811e78c652ed4e3bd482 Mon Sep 17 00:00:00 2001 From: Nikita Dudnik Date: Thu, 20 Aug 2020 09:54:38 +0200 Subject: [PATCH 39/72] fix: make docs table font color white (#2036) --- microsite/static/css/custom.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/microsite/static/css/custom.css b/microsite/static/css/custom.css index 392d9a31c2..c5e76eabe5 100644 --- a/microsite/static/css/custom.css +++ b/microsite/static/css/custom.css @@ -7,6 +7,14 @@ /* your custom css */ +/* override font color for new dark tech docs styling */ +table { + color: white; +} +table tr:nth-child(2n) { + background-color: #2b2b2b; +} + @media only screen and (min-device-width: 360px) and (max-device-width: 736px) { } From 0ee6ba404905cce6ddcfcd052dbcb7b56704333d Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Thu, 20 Aug 2020 11:11:53 +0200 Subject: [PATCH 40/72] =Fixed problem with the stoppable wrapper not triggering the listen method on the http server object --- .../backend-common/src/service/lib/ServiceBuilderImpl.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 1182cc6388..806096915b 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -218,9 +218,12 @@ export class ServiceBuilderImpl implements ServiceBuilder { server = http.createServer(app); } - const stoppableServer = stoppable(server, 0); + const stoppableServer = stoppable( + server.listen(port, host, () => { + logger.info(`Listening on ${host}:${port}`); + }), 0); - stoppableServer.listen(port, host); + //stoppableServer.listen(port, host); useHotCleanup(this.module, () => stoppableServer.stop((e: any) => { From d263219c2b8aa55a82ead09c2adf2a79cc28678f Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Thu, 20 Aug 2020 11:12:16 +0200 Subject: [PATCH 41/72] =Fixed problem with the stoppable wrapper not triggering the listen method on the http server object --- packages/backend-common/src/service/lib/ServiceBuilderImpl.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 806096915b..0e0feb6a37 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -223,8 +223,6 @@ export class ServiceBuilderImpl implements ServiceBuilder { logger.info(`Listening on ${host}:${port}`); }), 0); - //stoppableServer.listen(port, host); - useHotCleanup(this.module, () => stoppableServer.stop((e: any) => { if (e) console.error(e); From b3fa6ffadd31b2e2c2e11822ecf32dd72152928d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 20 Aug 2020 11:15:18 +0200 Subject: [PATCH 42/72] plugins/auth-backend: refactor providers for exporting with consistent casing --- app-config.yaml | 4 +- .../src/providers/auth0/provider.ts | 46 +++++++-------- .../src/providers/github/provider.ts | 57 ++++++++++--------- .../src/providers/gitlab/provider.ts | 45 +++++++-------- .../src/providers/google/provider.ts | 39 ++++++------- .../src/providers/oauth2/provider.ts | 54 +++++++----------- .../src/providers/okta/provider.ts | 39 ++++++------- .../src/providers/saml/provider.ts | 8 +-- plugins/auth-backend/src/providers/types.ts | 55 +----------------- plugins/auth-backend/src/service/router.ts | 8 ++- 10 files changed, 139 insertions(+), 216 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 4321ef138c..01e2ff33fe 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -105,10 +105,10 @@ auth: clientSecret: $secret: env: AUTH_OAUTH2_CLIENT_SECRET - authorizationURL: + authorizationUrl: $secret: env: AUTH_OAUTH2_AUTH_URL - tokenURL: + tokenUrl: $secret: env: AUTH_OAUTH2_TOKEN_URL auth0: diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index 903f6dc63c..7eeca59028 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -16,7 +16,7 @@ import express from 'express'; import passport from 'passport'; -import Auth0Strategy, { Auth0StrategyOptionsWithRequest } from './strategy'; +import Auth0Strategy from './strategy'; import { Logger } from 'winston'; import { TokenIssuer } from '../../identity'; import { OAuthProvider } from '../../lib/OAuthProvider'; @@ -33,6 +33,7 @@ import { OAuthResponse, PassportDoneCallback, RedirectInfo, + OAuthProviderOptions, } from '../types'; import { Config } from '@backstage/config'; @@ -40,12 +41,22 @@ type PrivateInfo = { refreshToken: string; }; +export type Auth0AuthProviderOptions = OAuthProviderOptions & { + domain: string; +}; + export class Auth0AuthProvider implements OAuthProviderHandlers { private readonly _strategy: Auth0Strategy; - constructor(options: Auth0StrategyOptionsWithRequest) { + constructor(options: Auth0AuthProviderOptions) { this._strategy = new Auth0Strategy( - options, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + domain: options.domain, + passReqToCallback: false as true, + }, ( accessToken: any, refreshToken: any, @@ -144,36 +155,23 @@ export function createAuth0Provider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'auth0'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const domain = envConfig.getString('domain'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new Auth0AuthProvider({ + clientId, clientSecret, - callbackURL, + callbackUrl, domain, - } as Auth0StrategyOptionsWithRequest; + }); - if (!opts.clientID || !opts.clientSecret || !opts.domain) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Auth0 auth provider, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars', - ); - } - - logger.warn( - 'Auth0 auth provider disabled, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars to enable', - ); - return undefined; - } - - return OAuthProvider.fromConfig(config, new Auth0AuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: true, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index 78db99c75c..e6ba56d2c3 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -35,6 +35,12 @@ import { TokenIssuer } from '../../identity'; import passport from 'passport'; import { Config } from '@backstage/config'; +export type GithubAuthProviderOptions = OAuthProviderOptions & { + tokenUrl?: string; + userProfileUrl?: string; + authorizationUrl?: string; +}; + export class GithubAuthProvider implements OAuthProviderHandlers { private readonly _strategy: GithubStrategy; @@ -87,9 +93,16 @@ export class GithubAuthProvider implements OAuthProviderHandlers { }; } - constructor(options: OAuthProviderOptions) { + constructor(options: GithubAuthProviderOptions) { this._strategy = new GithubStrategy( - { ...options }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + tokenURL: options.tokenUrl, + userProfileURL: options.userProfileUrl, + authorizationURL: options.authorizationUrl, + }, ( accessToken: any, _: any, @@ -128,48 +141,36 @@ export function createGithubProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'github'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const enterpriseInstanceUrl = envConfig.getOptionalString( 'enterpriseInstanceUrl', ); - const authorizationURL = enterpriseInstanceUrl + const authorizationUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/login/oauth/authorize` : undefined; - const tokenURL = enterpriseInstanceUrl + const tokenUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/login/oauth/access_token` : undefined; - const userProfileURL = enterpriseInstanceUrl + const userProfileUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/api/v3/user` : undefined; - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new GithubAuthProvider({ + clientId, clientSecret, - authorizationURL, - tokenURL, - userProfileURL, - callbackURL, - }; + callbackUrl, + tokenUrl, + userProfileUrl, + authorizationUrl, + }); - if (!opts.clientID || !opts.clientSecret) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Github auth provider, set AUTH_GITHUB_CLIENT_ID and AUTH_GITHUB_CLIENT_SECRET env vars', - ); - } - - logger.warn( - 'Github auth provider disabled, set AUTH_GITHUB_CLIENT_ID and AUTH_GITHUB_CLIENT_SECRET env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new GithubAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: true, persistScopes: true, providerId, diff --git a/plugins/auth-backend/src/providers/gitlab/provider.ts b/plugins/auth-backend/src/providers/gitlab/provider.ts index e9246a30c0..1c2a822d82 100644 --- a/plugins/auth-backend/src/providers/gitlab/provider.ts +++ b/plugins/auth-backend/src/providers/gitlab/provider.ts @@ -35,6 +35,10 @@ import { TokenIssuer } from '../../identity'; import passport from 'passport'; import { Config } from '@backstage/config'; +export type GitlabAuthProviderOptions = OAuthProviderOptions & { + baseUrl: string; +}; + export class GitlabAuthProvider implements OAuthProviderHandlers { private readonly _strategy: GitlabStrategy; @@ -96,9 +100,14 @@ export class GitlabAuthProvider implements OAuthProviderHandlers { }; } - constructor(options: OAuthProviderOptions) { + constructor(options: GitlabAuthProviderOptions) { this._strategy = new GitlabStrategy( - { ...options }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + baseURL: options.baseUrl, + }, ( accessToken: any, _: any, @@ -135,36 +144,24 @@ export function createGitlabProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'gitlab'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); - const baseURL = audience || 'https://gitlab.com'; - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const baseUrl = audience || 'https://gitlab.com'; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new GitlabAuthProvider({ + clientId, clientSecret, - callbackURL, - baseURL, - }; + callbackUrl, + baseUrl, + }); - if (!opts.clientID || !opts.clientSecret) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Gitlab auth provider, set AUTH_GITLAB_CLIENT_ID and AUTH_GITLAB_CLIENT_SECRET env vars', - ); - } - - logger.warn( - 'Gitlab auth provider disabled, set AUTH_GITLAB_CLIENT_ID and AUTH_GITLAB_CLIENT_SECRET env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new GitlabAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: true, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index d956cb2f44..d4455ac4d3 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -47,9 +47,14 @@ export class GoogleAuthProvider implements OAuthProviderHandlers { constructor(options: OAuthProviderOptions) { // TODO: throw error if env variables not set? this._strategy = new GoogleStrategy( - // We need passReqToCallback set to false to get params, but there's - // no matching type signature for that, so instead behold this beauty - { ...options, passReqToCallback: false as true }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + // We need passReqToCallback set to false to get params, but there's + // no matching type signature for that, so instead behold this beauty + passReqToCallback: false as true, + }, ( accessToken: any, refreshToken: any, @@ -147,33 +152,21 @@ export function createGoogleProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'google'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new GoogleAuthProvider({ + clientId, clientSecret, - callbackURL, - }; + callbackUrl, + }); - if (!opts.clientID || !opts.clientSecret) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Google auth provider, set AUTH_GOOGLE_CLIENT_ID and AUTH_GOOGLE_CLIENT_SECRET env vars', - ); - } - - logger.warn( - 'Google auth provider disabled, set AUTH_GOOGLE_CLIENT_ID and AUTH_GOOGLE_CLIENT_SECRET env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new GoogleAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: false, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/oauth2/provider.ts b/plugins/auth-backend/src/providers/oauth2/provider.ts index ed3bbba6ea..72cd76c4cd 100644 --- a/plugins/auth-backend/src/providers/oauth2/provider.ts +++ b/plugins/auth-backend/src/providers/oauth2/provider.ts @@ -42,8 +42,8 @@ type PrivateInfo = { }; export type OAuth2AuthProviderOptions = OAuthProviderOptions & { - authorizationURL: string; - tokenURL: string; + authorizationUrl: string; + tokenUrl: string; }; export class OAuth2AuthProvider implements OAuthProviderHandlers { @@ -51,7 +51,14 @@ export class OAuth2AuthProvider implements OAuthProviderHandlers { constructor(options: OAuth2AuthProviderOptions) { this._strategy = new OAuth2Strategy( - { ...options, passReqToCallback: false as true }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + authorizationURL: options.authorizationUrl, + tokenURL: options.tokenUrl, + passReqToCallback: false as true, + }, ( accessToken: any, refreshToken: any, @@ -150,42 +157,25 @@ export function createOAuth2Provider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'oauth2'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; - const authorizationURL = envConfig.getString('authorizationURL'); - const tokenURL = envConfig.getString('tokenURL'); + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; + const authorizationUrl = envConfig.getString('authorizationUrl'); + const tokenUrl = envConfig.getString('tokenUrl'); - const opts = { - clientID, + const provider = new OAuth2AuthProvider({ + clientId, clientSecret, - callbackURL, - authorizationURL, - tokenURL, - }; + callbackUrl, + authorizationUrl, + tokenUrl, + }); - if ( - !opts.clientID || - !opts.clientSecret || - !opts.authorizationURL || - !opts.tokenURL - ) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize OAuth2 auth provider, set AUTH_OAUTH2_CLIENT_ID, AUTH_OAUTH2_CLIENT_SECRET, AUTH_OAUTH2_AUTH_URL, and AUTH_OAUTH2_TOKEN_URL env vars', - ); - } - - logger.warn( - 'OAuth2 auth provider disabled, set AUTH_OAUTH2_CLIENT_ID, AUTH_OAUTH2_CLIENT_SECRET, AUTH_OAUTH2_AUTH_URL, and AUTH_OAUTH2_TOKEN_URL env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new OAuth2AuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: false, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/okta/provider.ts b/plugins/auth-backend/src/providers/okta/provider.ts index cfae366f7e..db8e0cf313 100644 --- a/plugins/auth-backend/src/providers/okta/provider.ts +++ b/plugins/auth-backend/src/providers/okta/provider.ts @@ -41,6 +41,10 @@ type PrivateInfo = { refreshToken: string; }; +export type OktaAuthProviderOptions = OAuthProviderOptions & { + audience: string; +}; + export class OktaAuthProvider implements OAuthProviderHandlers { private readonly _strategy: any; @@ -61,11 +65,14 @@ export class OktaAuthProvider implements OAuthProviderHandlers { }, }; - constructor(options: OAuthProviderOptions) { + constructor(options: OktaAuthProviderOptions) { this._strategy = new OktaStrategy( { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + audience: options.audience, passReqToCallback: false as true, - ...options, store: this._store, response_type: 'code', }, @@ -167,35 +174,23 @@ export function createOktaProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'okta'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { + const provider = new OktaAuthProvider({ audience, - clientID, + clientId, clientSecret, - callbackURL, - }; + callbackUrl, + }); - if (!opts.clientID || !opts.clientSecret || !opts.audience) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Okta auth provider, set AUTH_OKTA_CLIENT_ID, AUTH_OKTA_CLIENT_SECRET, and AUTH_OKTA_AUDIENCE env vars', - ); - } - - logger.warn( - 'Okta auth provider disabled, set AUTH_OKTA_CLIENT_ID, AUTH_OKTA_CLIENT_SECRET, and AUTH_OKTA_AUDIENCE env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new OktaAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: false, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/saml/provider.ts b/plugins/auth-backend/src/providers/saml/provider.ts index 1ccee1a9cb..56793d85f4 100644 --- a/plugins/auth-backend/src/providers/saml/provider.ts +++ b/plugins/auth-backend/src/providers/saml/provider.ts @@ -123,7 +123,7 @@ export function createSamlProvider( _authProviderConfig: AuthProviderConfig, _env: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const entryPoint = envConfig.getString('entryPoint'); @@ -135,11 +135,5 @@ export function createSamlProvider( tokenIssuer, }; - if (!opts.entryPoint || !opts.issuer) { - logger.warn( - 'SAML auth provider disabled, set entryPoint and entryPoint in saml auth config to enable', - ); - return undefined; - } return new SamlAuthProvider(opts); } diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 78cd4e1fe3..bdc12a382f 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -25,7 +25,7 @@ export type OAuthProviderOptions = { /** * Client ID of the auth provider. */ - clientID: string; + clientId: string; /** * Client Secret of the auth provider. */ @@ -33,58 +33,7 @@ export type OAuthProviderOptions = { /** * Callback URL to be passed to the auth provider to redirect to after the user signs in. */ - callbackURL: string; -}; - -export type GenericOAuth2ProviderOptions = OAuthProviderOptions & { - authorizationURL: string; - tokenURL: string; -}; - -export type OAuthProviderConfig = { - /** - * Cookies can be marked with a secure flag to send cookies only when the request - * is over an encrypted channel (HTTPS). - * - * For development environment we don't mark the cookie as secure since we serve - * localhost over HTTP. - */ - secure: boolean; - /** - * The protocol://domain[:port] where the app (frontend) is hosted. This is used to post messages back - * to the window that initiates an auth request. - */ - appOrigin: string; - /** - * Client ID of the auth provider. - */ - clientId: string; - /** - * Client Secret of the auth provider. - */ - clientSecret: string; - /** - * The location of the OAuth Authorization Server - */ - audience?: string; -}; - -export type GenericOAuth2ProviderConfig = OAuthProviderConfig & { - authorizationURL: string; - tokenURL: string; -}; - -export type EnvironmentProviderConfig = { - /** - * key, values are environment names and OAuthProviderConfigs - * - * For e.g - * { - * development: DevelopmentOAuthProviderConfig - * production: ProductionOAuthProviderConfig - * } - */ - [key: string]: OAuthProviderConfig; + callbackUrl: string; }; export type AuthProviderConfig = { diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 70cd6d8f99..8ea1d412cb 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -72,7 +72,13 @@ export async function createRouter( ); router.use(`/${providerId}`, providerRouter); } catch (e) { - logger.error(e.message); + if (process.env.NODE_ENV !== 'development') { + throw new Error( + `Failed to initialize ${providerId} auth provider, ${e.message}`, + ); + } + + logger.warn(`Skipping ${providerId} auth provider, ${e.message}`); } } From 774a00072950db09dbd33e97a58e8089fc0e11ef Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 20 Aug 2020 13:57:59 +0200 Subject: [PATCH 43/72] Readme for api-docs Plugin (#2041) * docs(api-docs): add details to readme * docs: fix wrong markdown in readme files --- plugins/api-docs/README.md | 20 ++++++++++++++++++- plugins/api-docs/docs/api_list.png | Bin 0 -> 275828 bytes plugins/api-docs/docs/entity_tab_api.png | Bin 0 -> 426842 bytes plugins/api-docs/docs/openapi_definition.png | Bin 0 -> 298487 bytes plugins/auth-backend/README.md | 2 +- plugins/catalog-backend/README.md | 4 ++-- plugins/catalog/README.md | 4 ++-- plugins/identity-backend/README.md | 2 +- plugins/rollbar-backend/README.md | 4 ++-- plugins/rollbar/README.md | 4 ++-- plugins/scaffolder/README.md | 4 ++-- plugins/techdocs-backend/README.md | 4 ++-- 12 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 plugins/api-docs/docs/api_list.png create mode 100644 plugins/api-docs/docs/entity_tab_api.png create mode 100644 plugins/api-docs/docs/openapi_definition.png diff --git a/plugins/api-docs/README.md b/plugins/api-docs/README.md index 7ea87004c3..db78b60373 100644 --- a/plugins/api-docs/README.md +++ b/plugins/api-docs/README.md @@ -3,7 +3,25 @@ WORK IN PROGRESS This is an extension for the catalog plugin that provides components to discover and display API entities. +APIs define the interface between components, see the [system model](https://backstage.io/docs/features/software-catalog/system-model) for details. +They are defined in machine readable formats and provide a human readable documentation. + +The plugin provides a standalone list of APIs, as well as an integration into the API tab of a catalog entity. + +![Standalone API list](./docs/api_list.png) +![OpenAPI Definition](./docs/openapi_definition.png) +![Integration into components](./docs/entity_tab_api.png) + +Right now, the following API formats are supported: + +- [OpenAPI](https://swagger.io/specification/) 2 & 3, +- [AsyncAPI](https://www.asyncapi.com/docs/specifications/latest/), + +Other formats are displayed as plain text, but this can easily be extented. + +To fill the catalog with APIs, [provide entities of kind API](https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api). +To link that an component implements an API, see [`implementsApis` property on components](https://backstage.io/docs/features/software-catalog/descriptor-format#specimplementsapis-optional). ## Links -- (The Backstage homepage)[https://backstage.io] +- [The Backstage homepage](https://backstage.io) diff --git a/plugins/api-docs/docs/api_list.png b/plugins/api-docs/docs/api_list.png new file mode 100644 index 0000000000000000000000000000000000000000..abc948b3c624ef3cfaada1c2f201c6a5b55f2a55 GIT binary patch literal 275828 zcmX`Sdpy(s|Nr0N)mbSj6qbZWkweb5iYVlK=pc(3iHHfqtRpGM%wY~&a!$yZuvHGr zafO^&S`0I5W*eJrzr8<~%lG%s{@9+|^K#kc@wh+l_v`KYNN}*TI=KJD{%zZ~9lU+kI*8Zt*)xz=`B-+fHq}ZgJTq(sQLf0CmPB6qoQh)%8qkv|dhrTDVUS z2S3BUJvylsXj2=G7meNY_Z>7sLen36-Q~z^+wm&V!sm}$m%0?vb7Z?CCgalSv`ZFS z6wKC~B+Bpur<#4qS2AWJOY}i?IKfyk`GIkMS;yQ>2keKAxpyVQOcI6pPE}geKCTlR zyy$#G)mkCtfexmO!Yo_sb3Vq3{*he60PacwdZhR_xpWf<-F~(vktUMy?KyUS?HqHF zIRR>xd6)kXS*b(N6h`OsmRuBi4D^E)qefS*vBC>MU~qZDLzzT_i}{@1*NN_Bgl?Td zBC)5lL2`lW2D*z{p_|50-f#`7!LD)(Unj!e7qM8pfU{HnV*~M(A0g4M{GHV3Nb(C_ z))?-C1nD4>{Du7yqQ6X~s25)SpWPiMv5K)5aTO3P#(K;X z+Q~e??TL>OvredKJJsb5y3@?ebXoj-{_TEh)bs!Nw$l&}NO?v2e#+%&%kQA{TG2D+ zUfQE+f|uNEa3uIqzM}JNIcT6!P*fHbi6wL`3ZINR@Gq)AC##UPA=_}t`j{+?4Tcq&Zi3Y zO-6hQSDPlU)!xyn5nNzMo+Yku1(6pyPyaSr-MDQPwpOMWEp=bSo^UV zy7JPTGt|sdK<|itR~K+^Vtn5mK8M#_3xM2*T%^#iVJnWBkUyCj%y^pWK|1>lV({Ns zb6dN_x3j3NUg7Myn2(4)kogn81NJF}!Yt=Q4alhit--NRxP%$<3!D{{4Eo0Y3L@j} zjbYg-?~si`|8}>E4$b@E*EOU|qHodt+;|jWZYxE4*DR@EEx9dXAw6M#hV!TmQE*wo z*ZJa0zJ9Ly?e5s?n=bt4PIcw`k-Pc1Gbv{MR`(dSf)p4M{8hMD*ZrBVvq*6crgyVHS-Jrixzn<& z%{f*PTT%WVwxTsHBBIUd9h~mN#t>MrG5Y##{PJZ9{z&wXYe#Arsam$ zt#-wx$pbKbjB)ecpnTo692Qg#MfgQgr6M_!cu`2q8uKfyn7vaGcPE8-ok+W(MIA0S#C zB%7KZ?1pY90~TGZN-^--!jPZFDld4?AM<|m%tk@V6A?eI$I;Y62&dab{~{w|TXCrz ztr)>8ep-PbMZ0#PlF$y9Yp@*JofRC}0b2o-dZ^diKV`L9@~3$x@~Xb>dUTuLKXlx< zJrGG7qd#7W{w;rL>a-{Hy4;{&UJPQ)YRWHWW)%CHvxlm839@n13?y3pk8`OFM01H~ zlFnb5i+Y5G{)k(xzQQjKS*A`At_X%Fnp7rn)2wVG@FTwEL;kg3NX`U)aBF|KJYO=e zt{eDqB;-SV-SJ*0K_BO;8KZF$QO!R@2S=Lb5{S!pQ^ysL8;%NPPXI>oy>!tkGJvMN zcwtQV-yrhPn{)jBF}bg zMhO6j*lhc+<@-coU!Ew~H;Xb>-Z-`2F=Ws;?BsC*p?PUkCHu?Q-2+rQqXs!1dlvUz zR5xbtgUo>f4o&Par{^l7jlZx|rXe3oDSa!|YkY#yj~VE!P_1;&rKf|(DosOm8n7A@ zj&qv88Rup5-n9{$#zP3WHq7HGsKkNV8-@>%bFQ*s*APy!%p7tG-RhG_*w1jul#zg63{zaYA!&ryo%ORn@?7}zG-** zunLSIYVA4qBn|y`4f+WSJSbS`x7rAuHyPZsfpHeqdzJ^&T-9`Bm025VDH0Fas#iQ- z|24A`ZCrgXrzTrIn2$Gon?Dwh9@`RJ%a|T}WQqeczis{%k^iOoCwL@5o`>|b*L^yY zEm}0q)kR@hkyWObu68VZawf-`mg5XG8YUU}QVPmLDzK;ugV%yl@Ld0{hcO;w8ymmq zmAuH-N3T6yEPt!H-)@LXZ=qCjNHO}(fCYo)SVXB}kj#S+xb8>WCb^&YM9&7-eyBlY z4o$e1y+vzuZSr$9E}OGmu3PIKGNx|Zy}i!9>c6X$_C6P@qm-~2yNvMyfn>wZN3hS% zYm+Zk-F@M$+uci89O`&VeY!k4w+Q^{9Gw*>RIDw$XW~5>Z@pe1c=)4S?z?H})q^`R z8X+Fmm{aB)lMhF^`*jN~h@66X*VM~85w0oYQ<%?~>Bp)L?|%L1GX`wVcdnOIOVWCaaLB|4#z+t1@ymsR-WMDeUu7tpymDNI`DR?_SqjjYHjWuetXp9!(W{Fu8A9Q zycA!jIgYMyD|8-FhE*TfS+l}yAPKtSY%Tzg zfJZbfGw?2mWI6ADy0EQb#4)Ok3)Y5F{X?MgvslwvsmaF1dj1i=eNFxtb)zR^eoFxO zP|CPdWlH7iR+&ova-KJ8)U8Bz&&n;Ms!UVl0AVo&L-KU0HgPz_7fti@pN$qx^!sR2 zpk>H5Nc_s4x{k~AQs-T`am}*^d!mxZniVKfzdJ;H@`aCMXWbjPHhqV8;x^eXnAMDB z%bM9YiN}$+4gM92KrN|k6l0y3+w}or5e~uLosUAvuKlnOCe=nMA|_3uwRAF?o@+3a z=-`K1B?d}w76((%cTo@{k0#XbEk`cnHL>(f{it=6%ZM}#spkA*J+FO;oRDtTy!nT1 zd|^ssL}JpSQqT7il6C`?pm#;o>I+q82p^-a_sm3m%cUKX zQ#(_rE{aZKs;fJ9L$jQq`IFr8THzIbmPX6w#-c_$VnubZsXf~+;CULYT<431wnN%a zSKqwP!hf~yxH0=>YH0>9WExmy%7rD~WLQ=;Ma^neqV6v|(+6or$85!hR0jq73fLD{ z?W1Wyt->I-K0}wB)mACo4&!x%mgg_^O- z7wLEWOK^zLdS>+xi~8`=)#dNcU#3T1RpqUGbP zjJ(ab4tA=lLSB{eeRG>OZE3Fv)GFHlia_|uT{r1uSj*1r$Gt_UEaB4=xY6NvfUM2x zLLd8R&;aXN#y@{zH2=KgkozaXlJHx9+^#VzZpB3oE_N1}i@NWN4^n-l$NvJHjQ2*X z^G{MOxR^;der1$ra8hlK#?Sos?G;;Hg5e{_s2;bl&G-Tg!kR}m`RNGsY!o^Fz+(pM z$c|X*D&X#C_-wW9#QA(ceqOz3pm{GDH;Wh-&>OUvLh%;dIzZRsXRI3MYy2cGA5$OH zof@NMdHQDRiM9{;NI!sp(?|aa6(>tiT|eeL`i2tlSC}2f)^oO>-0IQ|`4Zz+3ks2Y z$+-(NQt#O;Jqd727^Jo9nwjFA_^91>!pv{&hz^^mC+a^a*=8!XA+&z=dsWcCYU)1` zx4h#*;%@rOsb<~u-3rj1o8LQPY8jLCYP6~MMb=SHsqdFktmp&gp9heX!E^6_Arh_^ zDK_O+z+RN81()- z3EjH;$gC|LT#X&Er)BVJX7p7#CcfSs3!wO)yDg)DwfKC}*(|Mc)T*y8JGV7jA+ah$ zmQ$B;2lb-6V`gjAXqa*QK&hb>w8duZP_JAz7&D~XC|~PtppEwAcX|68UfnK8%zZfjNC>e5YPQgwUb`IaCW!eW>Fq$E;~ znR-{%xT(qV!mxDPur@}cxPN;A)$7$hQU(>sk~B>z?`4f_s;wib>-DU6KGp9yacDtn zJ)nP9bmV0*+W*M0rLxXxdG3RT$+C{lqOekymQIs7M!{K@8Y9?A)9>$81_ql;EGl&) z9?l~Mg%>*wsr%OpxKrh_)bHO9X_K61o2d8lN-uoTo&h&%b()gA@}8r1pcj=E5a+uQ zhlb7Kwqw^!U&>MqwK^}1JNhRJP}bc>>NICg^o8J;XzDwQc+SN=Q3>2;g^I)-cfF0F zvj3K77nNs(Hn6B-onOu*E$yVxZ06yw%fm{Ty|>**)y_y@Y*n2vNHsjUb#$0;+1GfM zbYx+u1v8>Th|iUu@swHW&)95?DdA^z#Q<7`E~=)kRov6%T2JKc7i4nm@adk4YNxI* zt*Vyks7}i|uhLQg%bT#=fvwhX-5a*B+i^F6uoLSY<42L_MHT z*xf|&7&jsnIrfPxm5mDm|5~ogE)Q-H)$0m^%0d0XzXYKZUL|Aq4w=k91P)Ka#`~ae zkV9iwFG1nXi3X3K+g9rtmL^;(p2lZ03Ej;F0xm+zIWkRMXifdYHyT6^PT@d>!;Sk^8(O)njaKyKX2K=d=-IrZb z;9O~@1sD9$H5fslo~*@uM4GdcLy{FdzS|O+`>p>7whbF)-dcUOw82+?dwmcy6tq=X z3rYhfTiKE0~O-=iXQ0xTHX74mDb#pzU25Oyq&DNB&iZp8Yy5h~OvF=ZsB{I_6aH~{B1W#bi6;&t%goSid|1NgW+#cjJj z`!?>lbIs(}xenK}@v>L)(+1k_3ts67~t}LA^Aud3HIU zY6h%^XP8Mr&#OrZ&ug@5y$9cu-W_<^;lBsFeLOaqo7a)ip5@@+F`44Lc0HBgR&1Y> zTN7V97M#gC$!?t=0?t1IA1xetCVWUX;Lndjq#x_%SJ+2HEU$9hkT=gIQJzgmUzt~m z-ZKM9q=V~~eodNbUf!H=w!B@cy<+fl_KfzIc=W`CwfzwI)9f3k(E}1;J|rhg;|p_Y znO;fZyU$TqhJX4i^7?O8zh9H*lg>`q@d=t8(%`728FK4f2+ z#nsm6Ufv6xL2(V?RyK-j%H!2%?c6;t1K~nUEn$R(gXK^{ZrVA9O9BNoB4>1$QgKVC zVMd58Hm8RIzb^cUij7%a?TI(SaSMkYLA4FjO zA>$fHBxNRd4ZgZkovZu33gPkD%rA9c%1YOm7hbd_Xq{YDI&BziosOP1UBhJAj8AHA zyxU>UxRF>fDp{j#-$RBcz&+03I|m0v(ec`y8%*40E}O}Mc|C0a>ojnObU;g^>+vHh$xzPtHL;_i#9#m+MBEh*n?wfO5C z&yJN$PV}rIjDvvAgG|hV@N?m^g=fwiTpi0PEq5#SA@gdHj`mt78>SRSeDod7MiC4A z6VKKI*2lt7F7Xo!hK|}hWxP3ZiwmZ_7U-q`O+v8?M ze#4X%+3F%z*_bh62&m^?aJBZ%BMS2y>wNOIQ)0mRXE)H3V@DS+VzVP+l3PV=$p`xR z{w0zYLCM-L;!f*ouSx4i)}&#fY405D<*c*`0G=?rRw#v@*6u&6xYQ%(l$Q{$X=$2r zW+4%A8`WYPS(TUargI=+FTfdZlepodH9TH*u>kLD;*6pD3GjB1V11Nv{%F{TV{wK- z1^qN=pK<=J#M&955QmTbDL-(cHo7Zwgo*#8gG71I=qzrv1y8&&~ zfO+!>UosN6?h7)c6$!p({Av>^XN;9w(`UI>XlZdTO7$PyX#Km!W!Lc#4NkbRitg`0 ziR*8mQ3msy&1>@LBYjIQ0-^9SnQ*k&jUP*^Ml(ZobIbWt#Zk?7%Ov#&TJwxZhWT-5 zYMEX{@7$GnBlQ{}yy4m=VqC-J9;sCKA?^=sI?I@!ZZ}5HSgOZou1Ry|ZcoG-o^{~N zMPV`@e`^0?!Q~t&)T6?DN&-|q->^EcUp*lq+24iKV{7kt91e@RhQJoC9Gckaypkfd zGv9a8*6}r*KLyO7YCGy_C$f&VCKK&XsKlHte5wa{xst1G9RifLyq1tmHCHh?udFGJ zb&vG)?k&@cr^+s9-yX%>sm$L^lDPv?(KYi2zv3G-q9zF|Bf~)zjapjQX&CV?Pn62g z2sZC$9qnqdA%Wf*+Amc*iQ5%u>@~SWYu02UT%IJp>a`Q%TEg8sh(rBrW)>~uyX8l&~<_xpSlN@X*=796vTQpV$5e4{1m@`Pg83~afX4a={1{va8p7>C)!4l{QcD%pV2*-HEr9- zK!9;i&Ca~xY4u4UbSCV_DQ89s1RP-Lsx|u6etfPytfFb>zgo-$wEy8?XE-^6l!cLr z#we+e!AlxZ_z=$^+lSH!(6`PY_FZ3v3)C>n)#I!?UV7)kBqfH5#W z@YU&=z)26$5)ETu_DpJs-2l_aH4nL?z^A4%DcT*Q`9OWdR6AQciItz zYh3CiZ;w+jX!_hp$N5jgjK}J?Dn~lkCz^$IFzl_~6jGHFdX>=dm3$%|K9)7RGmGb^(8U!%7a4{wpP1<9zw;qB3K|%2eY{)k;v)@v_49O@dLs> zKt+5B075{``-ABZ@<{o?w)!VHj)>(6N8kn=)L&+sXld)gThX)kV;$B4#j=FE3L`bAP|#@R<2!{Sn*}WceBkcANx2863FFjsJnjpc zzKS|C>~R93db71nlom335~8^?4nP=qYUfF#qlTlm9bGIN&qUAGgNn`(U)clKSR-uU z7{I%Em||}I_@-^78Zzq$Znbv4Ad=4u zkR89*dQF9`n~O79xi!9FSGN9>1~g^i~LywtTEsElFZ$`B3FsqYul5LLLCdHN@52t4@er{4n_ zIcu58_?xa#a!qK7qmc3h`OoyOE6IB zR`Pt{DWk%iPdg8WYQGa2UWcb#zp6~jG-br~9U@nZHE zrikpvEEVv62v2w6pY(<~i_23e6W?A z`{Iz0=M5!d)5=K?gdOqZw3SxvzA18~nd<^~0hn8L*BVZigLKXkGnR)~QaOOU;WVEUe_3xk z>lX;-8A}CBM)vnBpSMy4aU~fGocNCdpd*$g0H8DtTJw1|cLRp@ue^CAGzbrYWXe+8 zP|Z>b%kAm%L*4erT(KvqM*ZnCNS*^iT(qI0#dRW=wZ!|Kz z`GI6;z$!1&qw>#G>1hSv5Glh#f;a?m#ZuS7u2_@k)b!1%HwYd9 zwc&t#t#N~QVwzY|Uv2bb7}-tVJGArNB_hhBWx(XMRk&v;@;*!acOWn9IB`ei(~Vn# zaRw`DaC!f)4&VPKmYQFc+Ojn-wXE>k9XIs^h56(nv%G_3_g***=)UF|gd8{gs*L2@ z-!vFnZDX4{wQy-=>#Avlnf@K4d;g$+=N%#G9$cqE>I8?w?&;@CP0h}N(|%=wL0+qZ zF)bXlwz1teQ&fS+tv>RN_OJnV1zG*1}dJjw?!cNRM{ZhBPC2Ikxm{U;aTas3Ow zyj1T}SA)CfN$7qNKN4w$2z|E6XwMfhVG8$(;3`^vF-=i*`?AKVm8jdI5deVDe(Qr| z-xPi*o<#8QA6{;i7#;<8p9NM1pXU4RA6##J$-4k4Yn^wRc}Bsgo4@43&mY%<9gdht zzaN%yvw1FxWNQVDon)4MTs{kX?sloFUvU;P{5aND#L-Q9OqZU-R3%L#=oD-FYD21% zThD(df(RgcSN+CLDJ~yc*tr1mu9w6R0@Tj!Tl>e+hR06C9J$sC+y(ZACl=S%FT1kVyzE_9)V-3fX-YzR0yqv^As71AJ9v}l;HuFBC!al;o z)crVMBq~zv!nz5_-k)WU3&DoR+!qd=zWVg>V8&t|Ld>!L$a853KAdE14*`pb1w3Ac zz0LI<>-(UC9A*-W2|BIih*`~^&OD-`9rusl!d6mg2@`yYjPKIcsrT-^C}vj^xNrCO zYyUYZJ!{cca)IKAiPcm!_4^{JJ=d;tsvo^yoAOikly-SHdgUSwW-05}OU=?s+Xrzj zSL}$4-$f)K1v=kXKr+t!9J$Hn`Mao@LZEqk)W(%D|(Sff6koL9H+cSRBip zEBw42m*_St3rq8R-?-**|NgVK|K|druGu=Q5Ns-_WAKCX;^dhZ3C&)*VENdgZU$^( z`N>lfXofm<=xnis;ILCk3R@CZ;;gEz6JOxz6dS5i9xDty+!QSg#Hf=(c6Mbf6zI6- z*zjK-wbXaT7JB~x{!l(jE%nY*9!8e6w+RZ?4nq}FcUsEH1QRYtA53&MorQVi*|G(8 zHSzRA(Z^~<{?uJ(ZCJIm! zceesNE>#a0QhQnO3xjibXBhABu-SsJ>%tdjSyq`IQ7CRThX<)4pfWu!YiuL(H$|oM z5tR~fpYYlmJ}q*d-^{KBg@Gec;x(DZZ&rxmYKiRQZxtFGk%CT#%T(LL4i#fXN6GP5 z^(@g(;R=1mHUr1B=a^Cce^>6nzM0=)pEmhoyI;FF6muJDyF5Y$?~(S@D5N)E%>5Ws zGJcZ}Up^^~KO`O7M6LiM`B6>_2=LIviC@=zpTc#Uyrf@Baq>;cXXrjY7s*!k6uvbK&LU{A!spli%kuk52O_ z>(5xe(mtiNZMJO(YqYeOt`45zfz!&T+_9zFUyO98O%AfMXR;d==+b4TS`TrpW}2_Q zoEp$~~obri*{s^vqit!u*Y0aqF zuJ2F0SAQ{c6>QOk_`2o%ZN0evK62j~=@%ip6^|MMXPTQ}IdacO0sqqyF2DXy7j>Nj z=5DdGx!nmb*`8;hoRo$Y-NXEQM_2s$qF)axvEg@0Ev!m!t!}+snwsIw6bF!6K{&j^ zWX3Eg2=Glf3S3#@pNAu#N<1h%Ba{8d$t>CGBat~t6Md%@3XdsVxL0lEos;sbmHG@w zf>%qTsTXCb>w=rLsInQ*3Tlx*xUv62D|C5gqZfoX5q;S@<}+)hLt5IHeEO;Jk?2q& zJiW0!201Rj7&I~ZzZ^AFv?clet-Ckx-?bkFp|71hUZ3gO`w4xGT=4z7Y%wy>r=qAx z5=gYkpq3L$Ef%^P4LW5dX8@)Ezuqxf$t_`VqLpG#-UlD8&DfQV8;+wXcTkNTs$3*Z}L+_Y2K0 zlCM~a-Pud4xyJMKLGGGo258rjX^d|5R`bNW31%?|QG2fP#%^S#&7#L{AZE~iVb*JT z!kvYiWKG7en4o7h&gkoOekH*Z-qx?C%Vy4bBD2XKO!jV58eCISxqr=nFaxCBJD@bL z=Iddz1aQH|%Tl$i;h)AFU_7G?sz-vN`p%uPJKjt7J(J8lf6~Mkas$IQ?YNsbl*c8d zuEl)EKDCDSc4p!M0pPE;|3Nv`N24cGk>`jYqmkJ>mZR!t=sS0}ywY{lw7}LKD>(qp zdkS*t?mziY{#|}9c+ZCXAF?^@Q6|aHxuMPue%o?hRXrrW*Aa8lVV?q&oQ9^}S9{&C z=b!DvQP8K^pvMkcdyT!(O^ZHz{EYnape@HK9+&^^@G2pWJ72MeCr{W$0d}E<%>>&e zt?Cv1%knM=Y^YiD?0UIt-wRa<;y;)V_@y*WRP+U34F@4EV_wSxBP^ll(b0{M1ByXjz>P+|eyb$>) z#&c<>?CX(I+eqNs>}0=kh<>XKn?)(KiH@_ZK6UbzkEPAIG7fh%<#3Cc&LIacI(l5n z#6-jhhUNd9^h$(fjYxW{%0=fpA$z0b#(p+T2?Vf0ys23Q&ht{5rZ!=Ud~m9YZBC2l zQGTOZTU-H3=Q-oiwZ9^6Q7gfkAHa$WP0JlK`C=CG;p8Kb1-=xhP|{~inmSSF?d7^8lTiwsA_0nC9Z|7Ux9?@A&^5wmUPQxVzfU2+TM zu=_a4RV@I-GXy&Z%3?k@%^G-$<%cy;!X%&UP>^YbO5||gCn~)0C}!t9?Zm8BcfFwY zZltd9owENqp`d>w1B)IF^zZO6(#jwej4Y%PfD+n3smR2iv2yIOo);;O+d9>kiy2Qd z0vcvMknF)O&d=<_PSoBj3JEG=%PN~R2oC~Vqa9D)_)4#=$iPrM{0ELvYperJHMx9` zo&i$CfHmVNY#^YG5nm;l{URwX2)*-00vWwwWW9D2_Me%E!2jn6zXV5LlA^Q%hsjks z$ZI{a-v993T(QfuOj)xtJ9pfyM7*N&QmC?G4zwoCKaf3|J$HaE*DSgc{l!5p16SrD z3B0VZ)8NWx0{waT^S34=p7*d6;R(#5lU&9^>Vg9AWv16`TK3}Ni%Z2unVYdgrSbX_ zkFF<>!g_sQV$&mm zgYR>BlkWe$@c9RJH!VC&a=~GnY8(ell^R%^K#C)4EA44ltl>ms^aC z3EV{Yub<(k`e-R}4&X(on29nfUBAo%yehdLvry{xzkQBS?R1(q(is#8KxHQqS+{#x zPTfZCuW{xGyNtgcw-gKYhzJcUgl8*KTjHP6{H8e2!(wK|PtLP*(8;V?!U-oV)h9?6 z`c14Ez+cF)zpSAI&*ei_-W?HqCn+tg%d#fqo|>Wm{K+2pJ`!_K+{k{yJ=;#gEGem) z&SC>#oyu9X^SX1|M`sOxIXVV=zFuW|+t$FrsEZipBm0o_I64KEu(_ZtMfV-j@w3Kw z8WG35zk!2Bm-(#p$M31yg(swAUhEshOy34g|=mR6rqYxsVynk?N<)mBp{RTdrczllvBB$|~_}l50}R=9VS$^WC!eE~oRs zLG|$O8YT}Hj6DFSq)+NLT}uqS1DGVpsbxAIf0^B>&G!7N=o=md<3AEadzYO2g)owy zHA&xNN7OyJmvgnSjm;osi<{!O_!ZcxZ~wp%EkP^UH>456Ut1#%~)@96+ zrDIOGX=94c&*$HHUFl3%l`20hQNQbun@X}5GgVS|bJUDb=4+xwI2 z7jOGh4~3VnvrSK@T6HJ?$`XRiK%FnFcC{3p0lOoEM2Fat$@YvQhLx1LsC3kM!EIRp zl*2XP$a&OinTdzgW7iQl9m0##?L=$}{1??CrelFE=6d*Q>{S(GKO5$?nX)MAnN^K; zHnUAp88frc7xZn1?fE*RjvF~Czvodz9lx6p9`i=c!=uNurX?HD6JsAc6`@aTtQX+} zDRgd!waTK5-VU>>F*8eJ%O^Hzzbj|Yj^7cz$k=)qvrZ&3o+4wTDf!6J1VtyQ!uM`Y zqm5A=oInAT_f&%fiH@0`5mQt8739q;uerDEF@wVe&f<0^?KS7{Y*hhY()yM|PP~}Y zUy2u`JMWO{IzQu{^s6KGwMGpBwB}%TL#9vej}cATrR4dV{81Xu`D7Y0E-rh`p+px* zii+ZYUYb>!)p3v|-Qq1$zYBCDV@ay& za#U;{@`Y)zIYTWL`-8dOQf$q3c(iRJQz_2k+o>PC!&TzRECHxkFOnFCcysAm@z0}f zSN}Tjx8_tY+~pm`@BApjns3ai%Q^eOl*-ju6>d_~7`ZJ@nJFm_W(trkLAEZwY)zi3 zb^VrU81ksiDeW)NNoxMz*_5Y=@GUf&x^?+?A`3q=vJ$_Ezv}%?nU>ci*%v}*F<{LE z7tGxuky5nOB)51|Ll3`b+95}6n52@^XKe4A^R2=%hwTRq#bj&J9vxyQQj`~=HaY+o z0+lR_D=RCi)vTT_TjBB3^4f6A z`QZK+23p`Hfcqeeao5}It_Qq03gGZepz+kk?hZH{*@o4jJS|AhHNxyl*?)-?$I$s> zKLrBg=Y@22`sQQr)B*p66gUVqcLO&eA1_4SF)IhqE;_%5XC8IG4Y`T5?-`hwSbWhm zb|c$^C>QdFD@>-&rHz#4f;)1_Q7pI#>Q&9gXTg+vR0Po-(lda0;*ntHiK?W%(T}w^ ziS0-XtNJ@1_|Gj^pD(4`&bFuF5_pEW6=aa9I5PA|=#WdO#8>?F7YxH1J-=>5ilHen zxA-$e^OuC@pM8NojLuZq%=<5rEB+7qM7*}o+Wonrjn1fRc53AxoW!4?ovfC>>h{2s zA7k>fMIDnEKQ-pAIOdz5RY`6abbM@Wf!7o%uIjlrvY1Dl$*#Av=-{t@o{d6k|9U;2 zT*qj6cg)|TXoh@S;t`cn^hSsZ~psp zv=AGD-QWizf1|0VX{Pk8|4S0bY6i8xU-yQlIdT{r0 zzV2P`Cu*MJV$E_nQyc%)HgYI>>?{t>4HoB#a=%>=s~ICP`MRd4CxWtyPCJwTsi+~z zy&(~z%Aq`6QgPJthBXW|lrPq?GzO}VknEk`5h5fbz4%$8Er_IhwVnHRBWRE z<0ae31g7RyHv`oe1L^J`F-Q7hs3csc;Tto^Bon(Y<;WkGIcBq`cyVOhX!_+I3ZLf` zXF!$nr?_^di-WG-SvrkmDd(xHMR#ETF6uTypzV%BkTTN{R<(^*z-R^agVnr!7o`o+Y^^Hf$dzVn__pC@uNt<Ur&kE4$l5}xw|d3MW-GT!BNg#daK^buM|MxOm?rmmy`~7}w zC;g5v#`0-$|2k8E?>gCHn>#(5U=8mP_R@-V96zX8e3eM5&Sq*(*gwNa()A~*A2NZOp{&I)4kTa^-^N}FeOHx-M>E0`@wo19){gK{UK&ix3%T{?cS|DWRn%H z^?;x8^Hb-+mF^GNYwt4_8;(*R=)3;5u=o0$r8Bt6--n^zQ@hNR=eSE0$|V~ZzAYU5 z`wS)viNvFsFRkGo_Ho%%pe=1u;!(P$;-r{VJb!DN8FJ`=M3t$QSDtydcK?4$KpJ$_ zPhzKOvB_)_KdqT=C&w>zoGLaNI$!y zq$kNBmvf|>s%4+@pnXDC&DiqWZJ0qa1Q(=`F>Q&NsQ}#bJgD7gjqwwcp>k0a!w;Hw zjW4*}A4r_8&yC^oh&nn3FQW#h_1lPsC1EGYSVT^gs9Lbe#@zXAt!f~Y!c?!uaQ>^I zmiEf|=zlv$PcmlOej;X7^4g-@z`>(u?i#6Ao~&zoF)^CWVEAoK5Be?#GXSr%U)k+@ z+v5^Q%+dzl5&fbQx&li;nyVw?9&Tok`l5J+j8j^8aBf(q(?ZMJ+o|~Dt;73wt6rBI z6X4;4o4cM#7ytc;Lw@FLa82ltu+Y%?7J@0oG^w(*KdPORD$9*QDx;B~gG*ex8Fc~^ zf?0upsiHGnL->k!3PlD1D2Klm^UWD9O()+MF#+D#vHLhOdEb7{HGVL7`09!Dw$c%c zwpXnMuTC1NQ)24ozw@4l>qnPV`v6L8!#42X_OCJb%uMY+fy-*ZI6ZH1 z5Rd*UULPg#3l&l&7bgwA;CCPTt*y$tX_gGAw?|jmr-me3|JE)ssom^bjm&zKIrxajq5S<{AUJ@%Cw zC;5WNQAIpR!}~ zCwr=rlWSCgL~W-naq5^h>Eye8l3?5pw&YB_dv+LZx`5~=rw^+AV$q(i{n&WE_eTNG z8KiYl$NfbWgEcJKfSB;qgY$+kuGI;O1;OKljc>9LdDL-nmMx$kg5__L_e(Kic-Z zY+?UySW8jc;4PG6w^1!Q?J?H5#5SP!1;9F3U7ogX7Gr|HIKmJ`NBXm+BL zvOcf@JijhVHB;^qO4S-PGhxnd-5vngHygo`0D=y|;ERR5LtY{4L*`n{Vr=QSdq6e! z>!H8s>EUv>-B39&vn3J8_#bzCdWHXPp-z0}NIdDGZ4aBXWc*6tmQkN1mWnPHd1X*1 zd;I!FApdHo%BghAhvBW4RX*F3VjaYUnN&vGUV7?3l}rB)zQP{GR7+#1VWQ(sIq>4h zL?`_sJtEWPz3CWdpvUDghUzPN`#z?s)Rdty@N@8-_Mo}-dj1+i#U%&2kS#TDWZ1{t zG@nQG3n&7_A+by)FrPQ-ug(ieo=3B~>a}2mJ*1zp#;(85S(%*5go`PYseJ(M2ulC| zSJ_=8))Oz@)(XAlTWpg^=@Ui2I>^Wfhe}Xcjar#<_P0Repx(IBbB71r2$>;LzTa}M zZ=4r&bSVogia)y#UQb->l`8yqez0jwhtTQa*ApWj#dxvsaLcowUC#`iF&Gt{&|{C z&)X9UQ%i5lJw`S5Ln{45G2)?Hi)6oCO80#tr&jZ2ihScQk`~V$k$gk35D15@E}GeW zUU`s!m=MnL{6EB~mPP0(meeKq7K5kHi}U5vG{Hi4(Yu=;|IL>8=LM`xz(*7?&Um-f4IIV4u0-E>zAVB$e?RQ{>4EG_uyGCQY$83D76ax z9&3?O$kw~5{1~N1AfK01$ySloI!`1vjCmtRSAQddoPbT91O3gZm`GWwul*0OTX z6M=%y6E!?II+4{$xx3pcIuDxvMj|}H3?Ph73Be+e>znGgQg%w;x%}QWAp{$R>`cHJ zP{LB4g=f~2fXf;UbtFTrT&+dcT^;*(OBmfjqhZsAm0M!NVRmA!j5D0@jPy2qG*U5l zXM1=0W-_T}qm(dqM5#t%*a_y@%M3}&z3ZFmejC&E)GoMiD*nyOo88gN+?LQpfR;v| zJY`3=&Y3HI*+;}PyB5$(Wr2UQ=>9?2LrwF~jYC0;F)G$mO>QLo_KYdS z_iX(~4-x4p@D}o^i5VW__P0_8fLAZ}g>KM3Uc4;B5HTt1{A&GRD zVrse6lM*jbSN{}3cnzBtT^IY`NFZFcT5{Cy-MU1Ec`w|998zqoKG2TzsTLo#yyE-0 zYHVpDX~)k}xMUX6m|Z2MkgO~5NSE|<`}v{~D!aoP3H6n)13b{gL1WhUO#Em*PhiBEAJ4Jb~8SGg!UVTnHKCdVk# zy5mR8e`ibpt!KqJ%I}>dkW@o>ggW7@={iajM_#-G8N*n|)ngOc7!`VqWtg1!i)UM* zlkpr*wm?UHAOxl0ge`5TCW8$bf7izjOmNA1yLcv?821NJ@lRJhyZ!rz`}{ojTWd=u zdG)I&|ECT+)CEYfjij%u+3wNxe}Qp)ual%~Y4;_@z{I-+#kNTfe0KkDSuntT7DC>z z@%mPJq3;G)@lE!!ibUiFGOEok<;;aSV)n8u5CKe#gvy?x*Udc&PS__ZWk7y;5wyJ5 z+BsYQqf|XHVoK%rV0g1d99L-RMz3uC!)X08n?Mqnyu)<|ldjw|?Wv^NJ|t{irr0UM z({*=VUC4C~Lu>Dw+N5!Djz!=*S9yG|+a0>8z5N0GEUpnqxGGL$^Dj?A!_+ZyNBhcd zK44d(9tHpGjz@tO(lNY8s8Z1Exsg8$-BSi07hcPlEv`3ikc=w(c^2Mcm;4x1D!Mc@ z64`;7GgDnM@hLf}WngfsE5n=xagdYu$F1?J{_zljf&p3xs`|N?#)P{y2j%Un?I$u< zOK|GuKBU9E+x@;Rs~Q6}Ik?B4`3FCmg)|HIUX~liB*nhl4UQ4X`L*hK&T8l?5Z#xA zWq#bN(E%$g%Cois!LLY}Z!TPnh6B*diD0laIR}u>UE6w?Y{IVhtdPkrWRew!8#@>| z@JtWDpMZbs#kK)H4klMWAGCXIMu>(K)G7|mr1uw>kHxcO{*zpceqtMtdqg7(v5KZ9 z&~xPvQl`0*(^GG`RuQ15n;nJ&l2`&ybJRdk3U11DCsyL)wS;KffzIZi@7+n zb67iLBtCoU5qL|r7`N|~i@ox5cy&riP5d>Bgd^k|5vU)%!6%khl)scrVvx&GAmIZc zNL_sRQC9vE*yy>0a%b^1=56-d+V&!WA>i}XeU6&fSr&_%02A!kFq1_j23ynbNl%mX zoODR9Z37fmD9U>vv}mBfM!AGGNbvb~EIYECk<}E5oJ|N^@cSUY_~%R<&D=T=>z1lf zQC;l$x`;?<;(gLtmlr%|-MxnSkZ~^@v~Depi0x!Q(F?}bD#|XAvF^*HsRn2fw3AR| z8_f2-gtGpBF2FsHOUmYuiCG?%$ERvh4VJYSj0Pq~BWaUg_$wmgdnM}9KGQ*;uGlC^ z3RM_h0GcINv~J!=x!9jU{r>u(_N%W($@}5g#U>Ek#g}&K(Nn>}?x-pYEB)r8&fVs( zBTk$w)_0BNbQ6REA^wt+TL<~Fm!|g6CQr4*R4g%B!-LMgXBVtbe|O0o@{eD!a`91` zK*jOm8RWPXH6zZhX~4c5C>x zJP;Ua8&;0bUHW3G_5aay?(t0b|Np(B$YCTR=i{s{ zMKYGdVmZwDP!16xhb7u-W-F69E6awNVYZps_IvmF-hTgf^G7%4<@I_z?~nU4YF2lg zetzzVlImq@1_3iH(u0UEAZba-bNIOeq2&D&ftBo-2q5c9zAFl+1fqV{Zp!Fj8r~{- z(2L?reCgHPqb4hYr5g>hi5Cwo!35y!w>l=&d3m4LO^zic9mLd%JE_A_iK#`s#9zfEa0MrTL zsLy>=AOLcQDbbNgi=hi=d17F!7%>5P@J6xWI3#94jpQb6PaFx^=(47Gi(QYyXCJB-lH=*%%|=xsWV=mV4eDAncS9k*d0QdMYLWC7B3<&UYfzSDB=n%?WaH4um>xg&;IBcuXjZ^eMxww5UfY%CuH)OIkfyDE)O|{wMk*Ox{;9ME%(W~ZQpi}K}^OkL9&Y}OI_Kc zMT*>B0nU89|Kw>el43?PN9~Ndg5r<3`}JTQj-TzJ#p%y5lyFG>yQyx&_gHoQEpZeo zHQ(GyMEiN}-x{`7>WRR>cM<;_Y2{D^i%p;AYyj@Sl{Z-R(z^79Z94Lu)dM?lb_42N zZz<8|bsGf#UL^DGbvI))v8K$w=JF)$ZdE|wYt*P!jmKNN5VW1sOdq0+B*`1~DURjs z2ohG1qa4+I9`z|NMNLoCEh9UA3ZWe;hODxd0-hYn)A;&qV0BG9f{Sq0A=}@n5(E?N z>BIDnH5OX^ZSO(D>se#%4){MPB~NnaPtYLOE|B5Vy7be<&A`vkggx{GtY zeTxuEB;+s47m0Ig+gq9BmpYHS1d@#x=mI0JS-)bsmv_xJdn<`2 zbk|^o;p@TsA#DR^VtL}ygGp!@3E;3cU;r;=j4>PS9GW^xlvSrvW^Kh&fRo@iBlUp^ z7WDu%kEJ(Y>EyY=otP6yzq~YU>5AjDdym!)@;eJZMmeUB?JdsNm5s#H{XQZLevv*s z=IQ;bGVXaZ3o?Mtl|pZH-?h1EX%ivkXHjWyoV^`DPL$$k+sDD(Y*V}4tWL;_9A|rF zbo+G?X+``xT3k1FmQG+&bkg#sY65&IX0SbMY4x623GxeD8oC@VZQ9ss6{|Q}=6U%+ z1H{vKjvY>1rzTV-&(x1lhN=zvkEnYE?#j;FZ2<2Mwh)PEHbT~*WINO_$foCEBTxox zU321E5Judf@4H-M0XaZ?*H>cw*R98fPpzdnc^uVi~ln*^RgHhA$AiDV=X`X7P z{^Ikr&VjQOj(zhPw-*WvZv3=8eFa<@17v)nAKn_yR}x5Hi>VkUr62YPz&!8q4Z+B8 z%Iu?apno>uSmL4gc`y2`ei`~5BYq8-_!!0H#%lp@yhPaqRRKK8;G)Lb($>Z@wo}C= zuX-#oZ2|}I^IYTfM-C}|F0_oVNhy1%1wuDzsuJ_bZ^nVjPJwTHW&Z*dzTsmUQpEuPWq8leYQ`=&gEumc=JT)NPB+6%d@E$f?@yomZkym70+=3JuED*{I$=Z z3V`0HL=Op(1*%R#M8y$nN*aNs1{C~S{1nE$g0g&16*f*!K+06;Qb64q36K`RUr7M} ziU2w{hKxGk2pZEC!gR2mfz><|U7LEk8mcYm+E1OT43_Nb`EuMe3fd+Z)E>NFy@P0x z2DDNZkpHJg#L@Pw zFI&5oRNI3&gZHX>yF)TicdP8%Vv-bd8#&%L#X_L2zY-QU&2@4)Yob|Q`rsa?TJom& z$syYBv1VMyjatN@Ip>YX%_p4ItzE_VMsb4O@K0(AoOUcV7}j&&MXht^8P_?P$$Wii zmsj9^+Wj+zNd4(d*K$(P>7Xuyr)9TTGr@VXY^y;XG#GBXZ*NV0tq;Gd-`#DM)fQ&Dt0OTPyPP|{^)+r; z=M$OhSg`o9f#n1KBhF$waIl%AVbQ;|uy?=%8huSTNqPwNvKR6e}mS}ebrjZZh z8x0S5XmrMjpCp8+s>lMvNZbbVtMCEKjv3iwzdxOaK!iz8$YeIr&hnZXxG+V_(nAa6 zbcaYcYwf*yu!P?Ixm#^{k819$RqIgv4sKOZz9_D0&qq!*xoIR%uN~8-3d_wkTdp;= zg(UnKW_i!C)7a-SKi>^O4?Lu2&$TM~W+Anv^_WR6zs$6hkJHQpJF4>f#>He_*fm4h z5vUa)Jh+^_Ji1B6hWYbfA}MjIF32f^Z1&YUrh1TG8OHb6Vz_d61D-L$0M~$yoPn^` zc)d;N?{tnGbTV|dSk6=fB>o3E+5k=c?tt9*UGACgx9u4UwqsWth1sz|Rq=M>a|t{F z|2*_P#(lzar-P2unMXMXim(3&xj0{bEdZAntWC1EizNNQ!_PGnZq`~z26p<<9BN)d zOI&xI+4eUhhXnig`=LM$X&wt3i3>)uP^{LFbEgcBDpFxp1b+M{{2V3uF7{Ry6a>MT zlOgP`W`ZGMYWc-20jWFSs6!+cpbtT*_yhs77 zyMkVgJ9&kD0F5r~R#)_*zkSe|y6y=E%U7+&ryPBfx9&uPt3f*6$(~J!er+Ua9=pd- zxmPTNydGt=mHhtS*Hoqv@}B2{Aib(iqc|-{XAV~h&prq-@KQC&HKi&I2GJS1L)p;) z22mp&wJCbOZebH7L*2_eVbkg_c_t{#PLP^6Rtuzis*spSY&>zZ9M0xPmESd`C$;6# zf&8jVT4%^~(2};5y0urJ2SoJ%iiO(83@end><^lfS+jf~aD=J4{ff!!fnPjj7}A*5 zr%diOpaCUNpQm+}QNp6C$R$Pyy$QVHhox8Xx@ub~!K(eo4HpUB-#~=xh$hD|37Iz? z!z}vOXzvL@0Ki|ORWR4?i-S1=Qy4|+va&V8@Lf-M^WfiC#EJQt2Lp}`*0*tmqpZ?4(cuqw2?F2EmS&DakgO!lH4xp*br?F zO}hv`C4C#CpSf?j>p-jHjmxtNE76K8&u4@_oo=d!ue3e1-#-xN)zY|NNF0p02clN^x8x}5#`z{yR6UE3Z|_@9<~ zEk>nNNmQWl=kJ)Y{ONOmyz|Zs|F`j+#YNIB8js{HYZF)HFSknSUsPCa#>ZP>Mm|R! zcnw$0*alyOKFxmdDv1Q?jhuf!@O*Z~YlNN7f2b@XB!IQ zjAiGorp}Fd$xkS{!Ms{P>@&F|$Pzi%@hazC8i8liS9lnkpe(y+0H4H{F60y}6mat> zf+*&N&Jg2`QbLTKd$e1feO%LsF_B$hpWLSSqY57x1iQ);Xmc&TsMs+JwdpB>bg$SN zqjs;&qIFZyk;<{O4xy>r8ScJdRwOs`!MJi5h0$8SmT=0l3wQXToHG4zot1HEEnmXl>G5P>(vCV?N4U#_{^V69yqYQ@T9C2kpBVbk;{gFD z<+bRW*vB>Y4FdR>5&mZcmU0ng;a0S0Uo5bSp z`4<6vO8If>l&XqY-^xeG1?pp*!Hjm6Kj>4iA#yEwPEe7jodsumRGYSYm)_oiFphcr zVe{Dvn0g@%W)oda4$N{$%$&I z1t~dF16+y8T-(nkIBJ>a8CWz^(rmZn1L<$n+*xo`c}+V|Tl!*FFAPhNo!X|tVx+ax z%kX5@h63otUZYSfdDC-<*j8XZYU7B$a0*2x-Rad{&(uk;`dX<0m? zubfMW`rgdp$!%qCGrxI-Ps#VpJ8}wDSn6Hj$%I%30znh)F0J6Y^ELy4KL8)aQHWb-ClK^P{_y!O!@6 zpA9q>MiHV0cfa8JY_P2DgG){n=?+-V!q&zV(-~1&I9~Ah4*`$rY4 z01j|1Hsp%~0m_Cg*p9n=L-jqzNdBB`?A>;Cmx)@9J@3qsr0baeHO1{z~=I@3PPG zy9(}sdnaBj%jUEc%z6)8nS)Z%+B{jNS(FHsA|yQv=w^>j!a6`!NzjrVSSOsG%nw)mAkDF03rrck zv8I)tJ$;O^*h-CD7Re0BhTCs8y7Z7d3^^cIl`}&|@+pe4uZL{RzX`Hm6hTrllG4M; zOGCb^fQHchV+8h{+pKGVJXT}cqLY97&Yd~-2@dSFG25GgUS*Gy+`bCEycdr`b?b9g+QRr@$51$c+ zSE-1vx0g(OyVosllkb@mNgR67(vsW(^?Gv;ovQcGJ`;-UTbGDcVAb1ZM--r+*}F-WlVw-u<=2HdZD#%@rkTiE2;%lJgKx0_90#P^6DQu z6ZZ7`!A(ye{6cYUycKZg5?^7k{+puB^5B`&GB>uMS^6%1!}PFxGW@{51`Km}-Cm!M z8G9nDEB}F%0tI}ZZXR-ET9kNSvwK?*jaqFYJ$3X+zAW9*Ot;MA|2M;;b8cETx>wlu z74R`!!LK5^`C->W-OkxRU5}_^G&CaoLQ@VnT)#(IK)V{Wx++ea+TU+fies)XBpizt zt`U1>SK!J-A~{1Q6cq|R>oDc*ur$}5B9bxu21>*hhvVU9E3b}#p-*d1wK5|cA1bM zF)Wz|l;;454PFI+1Kg_C{C4zX2!yhokgrhm{O(RTGS-O8z56cEA7%VNJyqOP55bCX{r@S$begXQ|Gls#B4N zwSyt1f#rK4PA^jCl!};laC?!~D7*ImHI-ivg;Lhs^FTyXS4E&;M>0#?0ck(v)x&j0)|bqC>dS?J><9*_VG_n9i0UEm{u@hCKn5H`tUTi zUgo5^rsF?s%{Jj_)SR0ljpdD2yojQnhJjP1qC}ztc}v;$8qRg6RM6PJ_Htk{@+F9{ z!`s&Il;TSZxoxvt`srn35ydR;o-Ag=S@7p+XhG72j zZmUfOw&)$f{?Qk%mw@hq)gvWQ>47DeE4GEsAC($Ti???E;?$#kNA4eCwB$nEP`UfyN$atB#)p=fw zemu?ujaM3w*5a#3feTwsKBux|Uthoh93S;{t2i6TKk3bkjORkFG4VGNBD}nd-yD}T z&R1Ao`uB<8$f_^KS6)j(=xK*Js9}~VebV`r->;uz{ClHUfV?{-qYmNnOu{wOM3^8Q zg#8PDZK>vhNanU|Pw&`g#>l1bMXZ{Z5x-vW2lMA9yH5lTMD9wmu6sB5o`NY^4TJLm7!N4(Q+8_K9lUEdnPhbAXqUKEyK^?Jo| zv_~y`V~2DkJK53seK&`lsFAhE8jJX{rBIH+G@!rhF_05VGRN5F2TenVzdcbLX9{Sd zHc_3S6<}HLf_8M?2b^_{z1lCeDY}yAvL3Yf5Y>kgmfN3+xK8fD%TM9wnoX_1WT3GPR7|gJ$G->+Y zn?peBdvyv=<5V(H7gFdFkkj!poghoMnHvY>Oa|$1>;8*)24q5=S-$&;mt>JV2|`rO z0G6{u=WQDPG0^k=R_bX>?<727j$cN%-{L@o^@o98=Eb|GVAlTzZ9& z&lV~dzb_+E?&zf{tVprqR;ZEn8XnukQJu*7+1l2 z&gR8=5U9%rAGX+ATn^SNgAol>FqW3D>G?yiF^5g8&EMIN`{k7tuk-ZP7n4~1T)~ID zgh`?DvkR&8t{SDI*#0tJ=+hqIb$Z|EDLgi*I9gIC+QcxbUOGqt6MB8A=DXdwk#533 zuEzqCb^G0I2I8hL+`RA=rbk>m67m$1iC^c|jn~MrTZOmVM5aTV59#FQphu`9H+sEK z{*T=J_wNeEpp}Hh(44!k-ajpAYN`AGyA>7iXJ5PGttL#3Vk3mX92Twb;oT%ekV9IX-qFciRMZ7I{Pu{MTaO&mo!grwesP)h|gV+bVRsOnyOA_!|T z(F+c2plAEDo7hUqTO_~8(tP5dtnJN3@wTJcu|p_FD4XgD z0QP6F8}^QWsauwFdCi5APgfw@D$$2J{x!3k*261(e!t2j`EWTkmuKKMUY_o`wkS_G+xB z;nzLp+irnPQhiYog=oEK%ec$4wiS|lUic1n3B90RmUXbn`sfKv_3<#fb;|W&@m5S( zG8EQyP^%(<%pKn<%S%1h^yQ8CTu8%YMWaL`^GLJypK-qxj`#PmCMwp5Mpd-PfNh zPG>wH@()das+PU@f=GDX_gK76b#90?FMf9kO-lXi{Sf@c`Atzm6XC9sUW3r5+9dGU z8lB+@h^9tlhDZkX^fkUui0CdSe@isjDK3{gf=U|D3IrXIvUegJ%)Q}wXvdF%7y{^A z^8;9#w*H5i98pdQAhZxwn&T_WRT`huQ{>*W=Zqr^^; z1H&};fWX=};$4C~JiI|jT|SXbuuC6DkwQ*$Yh9IK=7n{##(Oz$y2*8u=Pv6Q^xY0P z%8=f87DQG0#qr7(#-J9fGv}FX;;%64_`R-Z4ZzHS<|jyw}OBse-=sPeJc3!G4N$GO7D%ZC@2eM@Fp4NWLw;*d`JutcoQwey~)>S z+b5TKDGV`zcLY@H9A1JqqT5FW2EL`Wt@FYxfesx)16Tw=Uz7L!CQug4nxKX31#bI` zG8IA6&&^@q>^&r70%bJ`2O8pU_Hlo%Ih|UB`4?GF-U;(CgPA7k`@eVycS|QE5ELG= z_wI70ufVKDmvcqRhqh*VzbY*x7fy=wDkPmA$z(q+y&$XoCA;}Cx^_SAvyy00K|8_u zjxqR`VVl<$R1}*GE!%Rc{885gTi&*4I1spAIg*yQq+HQ(yDM%Uc_Yt7T|bi`UFC!C zvC@9~hsd%TXyws^?k7sey$JPsm46H!|MEn>*VRjYXo0|u?|_W(Bd}b*#oyil@lLj2rn^W{#w_>GS8~^=!be5 zr4KpRF!QEYgJ!y2oaMa$c1vc5E4g^F>2SlbrXJBtH2Q0jJDcB~#};s`(FS$6_R^`w z&fe!BVP!q~Jbq;Y7g=@2@fOdE;VvlNdY|9|+z@5RN5%u?BpSXS;l?u1`Vy8gN!x(# zOt=-W)_4d<+|Y83zHuCK?9QFFbCI~d1h*2P&PUwJ*CC&423nIm?Xmgu-0pMLZO_FCwZbxP zINfx@y>ersD1N5@pJqa$fskITFR6U#9FkhAk8|{59eQN*Q;O5o?=@6y*meTF*;7DW zs*w37jkrSwez;Zy}9z{;H5Sf99M=H+1x$rsar~w)3WJk$3(ho?RU`Eps z`vfXOZaP)Pj?FOh8i%8-g)g=N)(EL+8MC{Uarh2wDi7fv^@_{fR( zs%aiH^nr+HH=N{$N( zJv$a#{|mhOMe#=&wa#UHgomWrDv!(`q5~m(q;vo-eWI=met-tWQogJ0O4wakK(;ai z^Aza;GglX3uZ-x_blsnRTWBJZ`oX8l&FYoFXgArUjMrNoiJTLD7L4^OW^y94w-H{VF7!KOfjJaLEMP6Mv~P zAK~2Sz0QeM-xm+w674m7Qy+2pj#rhwf5aHrGw6HZuc)Rb)~yTF_iT;DR`TY0_+sIu zn~g;bi)gTPF$V5Dgv1s>I9r?okvU=RVol4ykA!Ik&jG*6$^6b!|D?wf-AUM7jWiq; z|4iod1+konRfnjc}A#KL3Bs&G@btYfwJaC0J}VSydHpqUpA9EataJ*Z$gcSfp9*5NDCpWpCDwW zAtvHAt#Aw7xe9qefA9F55RjsAWUu9T|JW>W2w0-})>+NOUo>-Xyv&Gg$YWjtcUEQV zwsmo4Q1eXn>FAh=EuyY%7rxt5P!JnqCq4a>8(#JPfYgZpLuzsrUH+Zb+|Pul>(u+d zh!>;gOf-xKPagm7r}WHQmQIL0SYX%-`!Une}h;aSZhZ6*T}mw9N86RTj+LjD}j zDm2!d0}L%D^Lv~>w(v3-FgN_)y|9JtQsh<)l!|Pe=I}f$H&2_PuJ37*O-A(iw9Gix z*0Taz>?XZUF#8JRBzQG7t*Sv7_o50_4JLnavM)|^_c)jg4IScn20ZU^0qR#>;FnjLbhmK7@!Pss3?0%Udt7N@=!n+{ARt5dob~y2 z$cAPIA?`M{z2Q=lR|Xt2zi9w*-}5#t zOA;6*YGbZxT7a64SCi`$R{h|cYBV?LBQsT>##N23SiSQsKaRNe)!b&{NZ?1DKIJY= zVhj49+}a3wAIl9kXmdqPQU=Bxd_Zwv%2BWaxae5g% zC}+4{Xj$ab$hpGE4~Au(h42p#CPv35z7BZX>8IohF>^0ZQ~2R$zq&ut1R?}1!RIs+ zG(G|M6ki2;M^={4N4Dr3&0=i6L#|L40X$<=mhay6?gNc|Sxw4uDbmH&4HxN>f)t68 z#Bku~esKlTtpe-r^eVPdQFwpd)5W(boOr!@M3xoiRA%+T-tp;wPkqX2;IJ=V)x|f? ztQF?n0R29$T&joE5^MbRh|RqJiem$rkT{DMvVe1#WN$g+=*E>nT9XiOPo#h*c0G9v zy7(8`-K|6wVMobrQE`-$p9T#(2g&qV?Me$eNUwEEYr#sk5OQ4NfiXOedDF7Lq|Zxs zOY&=SiEq;>NKs_E6q*ll@64Knlk=S7lnFHxT7G&N|9gDw@A5 zcJL`;i=+W`*b6RC_fs97U$f>I}iz|0e z@2xe?z#C{@YwtZ1Y0Tld7Tn4MN~HKVW0EzU4ACF*UYNXa=Ut?fndx5!O)e7XIMod?o{jTD2Z#R-3el2_wqNurAIbP~{156~E%w=`fDb+0 z@?fWVO!vWYU4srR(bx@k*>23^Vj`Xwfm-#$T?QuFm%L1}41WaiYr?#vM@~SZB5B;V zJlA8>g)WnZQ+|14Z35lv*j#E?kT0c8;jjQl1&+!MeI#Va=Xq8dqGMjCXR{ zbZaL$iIAI_bj1;*>fzX>e&4dtfXIg9HWKIIAak2>REugEJQBCwR?jX1jeUCPv+rbZ zYpxH<@JAY+c;gZ`J5+r4P=*0MGR)fuKkB5oypL#QeL*TOo5--{<`fB~A(gxW+P(6l zZ~jCrnpmac%h*+L$*Hh?<0->L`uKvSX2O4SN-0-Tk@VEMq6nx4SNC4nZ_mQAqyd@! zm7fEu+Jld5J)tf!JwBNZ`n&PgtF*N~61nxPt^|>PflM4qVer*^+8cGP{4cUGOkOK#T!!g0nC#epckD_RNfAip2-=WA~9}b z<1Yn;7BS?N32^E@Nr#e_neL{tV$UF;tta}&#i7E*l$oRg`=AKuu|gV`0d@MC6>ZrT zc--c3e{%ZbJ3!zX3=oFXFIJhpdkrYrYcLPQ6G{uFUep*k;}H;NV9a|C_+B=vDlR?= zNzECsK?uxkM3*tRL(XmZntLQu663mM$CetJ-kqgyuD&9Yy-ol6&(dkYot!8&B_9{? z;s$#kQd{2YNqAm!joKcTk*1qHOx6J9n}uoRUZS{SyPIZNrv;gTIv)gFa(mdGGYTGh zhHYd8&$a?cSWwdUZghk9ds1PgQEgk}*K>E(M)L>0-iL(=k@{XEUfQSGiaUUypr?p* zMS(c*4IKF|&pWZv%$Wpfsi?icM@ zu)m9@Osl$OJ6szv)x0=oXuo!7AJ!p%`7l63fx7nHwxw^#f~#vx4&V6EFSz#&-}M~*X{+PqrGB``J!im$1XKA8K3IzDYp}w?+h7_{5AINW%fSBOY1~i zW_sI1TFkhP;LqKAG`ZhA6L;RH$6#E&0gc{u2p%sUGxN3spfSlkITFX`9X@1*BC>IG)&J72GPTK+he&!117?1S(Do z?uyYBOqvXSnUrhD=tIqGQ9l2?sls_Sj_W5`0xe8)d@bGHyqYTbOt(l%zy8q_aYHH<~s*2*j9DU&i*rRS_zeWQs3APzwPvfAGKnm z_Ia?@B>y1RDeTXE(h^AoE91%$lJCu1kkCc|a{f8ytyUG61po+NvjGP6$XF^?i<+kR zqaPpYhd6hA#W{LVXdm^P$`-6a^dr@55sJd=vP`j6tqaFj-!*C_p)_TLk z9m02=`#+VFC6$ZhKs>f{C>So z3THf71O8)=1SxirUa9nO8C3M?$f+c-O%PoA!FKXfsgj6Zz<7S?#wqO~003>a{NHc+ zKJDgUT_An(M(^;dwg4ZZDjC)w|7SXfLZImIEMZB-!8ArcLD}>-{uBh@Pb;^7K$L;m zy=u^t;CB7o&$a{^!wfr=Q&YGF2uvu)om@%suMG4;eJ(jgR!jZj^|8J#JlRmnCt1Z@ z+ed`Ii{q_LG!8GW|XJp>7oJ`x0t{tZ? zgrMJeg(a+Rd84Gj*vF@Qut0WIgtEfA)euxF;@S(n;Aj60c$sN9d)|H%eBLa!z?`@$ z$p8HKgx+q!907vQR>ym&Ch_Q5}< zke!KEZ3o)Ed*2tE?2Idf4Vk^}f!*tYefTVX(B-7cVtu#ovzSv{%n@EPM7JHz2zx`t zM~R!7Uq2Bvx$2XH+ek)^PSrLOC%TWd5k=Cd?ydJxcOPD+tmvI+fYaH}F66!#A8+z} z84%?V#psig_LZ}k`SE?7shg+WSh#Rp;3D=hTJh*fAso(v9r6F6`lejiUcf&Ulhk>1 z-HdxNd%QRZa}Wvi=_&-`a(*Pt35QahmA@6k$QVdyo76pxu1ml6CT%(R4ww(DQ&fq) zHJ%(sfo)o>M5pxhU>?UeGQ}OedE1h{mbYMkW5C@oi3yMQnDFE$J-59z-pLA%2qYEh zq2lHLROU*Wz6$l$Fdh7_I>d`KVV~A8ZmGG)+`QLLpsGmk6dhUC15m+p>OCTa5@u87 zKWglrgB*y!wn)~eNO5PEsj5iV6c$;U3%M(p-2j%nm?5_3vJu@Sy5Hj`csW4)q(fqS zRKF2SiQHw5$U9jFto>7YWO`loSroCy%K!G7Bk^es2T+sQ?7j>~k0odi=NJ;={7;Mm zk|~XXfMdD`{O3sM%EuIkc!qgJcALe0ImAY4!jgYR9gdwgtab&^p#S`z z2K`bbGm4x2*i(u`e&ZbheJX`EgCT}k6`cKW-{MVJi(S-9_Xitsg=-g{nIvaYg_|q7 zuNT>$kQ3U}E-WxBTTFh%j-;P)Kh>UqwlS|<2H>euvT-FL6;PZPzm0oXmsx*5y%YK` zC&%T#n(y<{E7xbQb|tyeCo@=Ea01x6_3V^eBVB(kEw5jj+xe3l zKc#$?uG9*?u*}kc#NHL#BWWd9_c|=4EE$k~isb$duT6%Hy&jLM{vpo{_8^*qwb=R+ z>dEEG>O;wo_H6XZO;^=^+=mtoa1<~5e6Qo-*JswG_?@l=iw0bTn!ph*%s^nCLxTy) zwhU(g+OigPUNFz!@JwAsv_gUD+9XhN`Q540YhiUsOC}fnjN5tQePl_6yyb@r6k-hH zcp7Ojq*^ACYE%P5e5u@owz(iC+gwY?^cRM;RU*1w05jxxP?f1f5&A@wMVnz^0-FC9 z1uaJ{5`cl2YeQ-1yBl+)uYt!Gr5Tdi-nK*tYS)WMuyCQDVfkO!!+|ll4KOs>1c0Tk z0T7p&*h%1YgCv0774LLd7e>AMA&)bC;WvT99lln=rfUM2c+i3=)gl0Pm42=pHWe22 zOc)edS|fl@9;lSm{BSlF@7DO3ig)XrIeD)WGz3C_x^yd9clCVbt&Id=sUPvMuw5D*FH{;Un;u}4qAsx4G)7vjoAhfDr-vQSXmKf1L?56R*=1H>} zIPoIGJ@+LGnJjkMa&(E{FuG z0@dPhKTZ_JHu0(MxS)q}?Hv!b7{o(+2YT13hKcu0$~uJ;tB66|+q2#UGge{S=)4^c zpj_I-;lA{dYxo!Awi*JDr&3p$u4P+!bccV$M&$cr$=N1gUcq8G6$W@M^$L+@%Xct8 zmULi%@o%WzI8bgF39S41@FF zu$Og)gg+b;G0uXW*Irx+i8QvVmn(+JV%@)p_7pFehydkhE0?1{NAXC3G9LsUf#QWj z^tj$F0f}}tY-P1vrF74R0xipXAo0XW#PR_9alw*-{R!px{|LwZkB)(Cus+aG#R)Zo z*|bKq4XrpsiiBdeDX!7|KU!mI^r82X0RqKQ-FlIytWJO9zTbbp%PU6I^eJU45bA4? zcY9JM;G4=O;8H3pulk(40+?M|%{17zecxTqp3{bJdeA6iNw+f&h;dEc8;M%^UzA<0 z*G#dln240@gNV;VA(-?O5#TCMg!e&*?C-nfMOIzY4b&IAC_XB+SkP+re!YymQ0vwo zJ$E_}A?N`;+dwA#clws!<3NLtIE4txP4VR9EnqXB?4mU37u_`bzyuMEb-OS8zI8=1 zlVh0QO-q277QX_jQPJ%lCSl&D5=jL?$}O`&HJ%T%8xJkMV481e8+@&6G5Dl%dccj? zjN4~GbLEl?I_}a?~7eK;EHI=Y@2L}#*GC#S5CB9Oy z=p%UJULL7w=8jFptK5X$~EULE3 zzUu4RmPUw}gIo%-=ZsLj1%jr&C_NviJ`ONhbbr;gaV%#01!z$(UCPnW_7Bw6w8rD0 zz~i(lr*bt$Fn#*-$Nm|4tEL%CcYpdv zDA0eKF=rR*Hb3 z*V-&$WJ!WQYdC7z2eQ-s=C6F&+=?yHM!jgW#rf7HfybjS*FSm!E2N17ufK`KB68CR z(?9f(QKr=G0i*l&_l3P{Y+d)^wl$8IAh5aMHNtprbi4kujRM~7yBJ^#dJZ>mMHqJY zc@;M!S@QyE+-H5M70@wi8`y@Y#_7z^j|1aGXbbUbO}34kH<1q8zirsY;Nb| z(fdicvUYv^5iRtZ_tMt5HpAe{`~v4zcF_j{H;8Q@@r<9`1UrTUn-mXb8KZ2cHp&g( z+8@;Uj4PmZt4vDb!fHwk(34`X_)t*7K@7&A79z`VL5;60Uts_(!T-+!z=IGd$J+Jo zkfa+)J7c~+(&aD=NPJNjz_z!v{$|_l#R72^`KIi}SEG%3&VNSE--qXPzi9D#_Lz`f zl$klO&)}!uF;ui2+f?AhB`I#S;XfzPr8mnWo=SN~CXv^y z{$5-<_9ezVPeO7|8%jK=CVO;NgKoII0)}aw!kj+it zbr0Ot?+X((-sROB)mkYj{5qq>cL_F^1Y)|F){atv=8~RsS2N-u;xi?WK6YBo2%+ z@FuoTKrKXI(Y9r6_A>j>YYRu`mlYu8qIuw_HE&eaQa@k=iNW&$l*`m^?Iu351K|mD zgMkn!=zp$tlTh!sn0wkJpWZom9 z>haL(dr4RjQjeeLV{ZDldnfdc%+&CjP;WDFaeR{-DOL9TguAuKt0$XTRz2>-4z2#`2?!e=BKy zJ5q7$dW12yL+bCdPud70FFYpJU}4lZnf+wTFrO+llJr--nx?|0*s8c2?xF~jS{&!5 zu={o$Q{~w7Ie-tIoS2>U6>qD`q7?*1%}N?J^X8iZ|LT$OCO1Kd@GJJ5kp5$Z3+Tg6 zeqZOlf2HzjuOfzj_X1g%RWHO6YJ4Ebq0c0rzNQ|TB#J_Ik^BE;`zO8s zhsu=uuzoSp)vYe+)Wj`I+=YjB$6$VX3O7RkbetpQN2R~SEaNnSzXUMoxc-xSJCb@w zD-O+JJgT!I$^TDi!zkk)_%pDlq`hA~Fs0+z%|}v;eW+g0Xyj(uF!U1kF~-CQV2j#Mgm%*Y${3fc98UQg&oo&s zon&H@Bw4Mq>6rSv1hqbS8et@sZPe78Hem%~E9+6uGu}CBy7Lt&t|D|xRI8r>{$UCK z21uSsTP+?NoqF)ZCw{bg@9>9_vJA%oZo}Nu!{Ug&ptFQ`kt2@_@Tth8^8DTufsu!W zJ?$Sw_99qaq>=gq;W88a3j3>s5ZN-Fa2gy`M3a!SF@P=bD`h|po7Q3O3upE1coz1x zIhp_*VEi>2Wk*QKSbK#Jz2zKo2lw@IoFCLTu_jbgDCfI0fx$n;+`{Rx?}Z!isuDOwL&U zy6A~piOyK30b?Ddw7QA6p`SU2#x&DbG1QmEG}8at7@H+xo6IKEBBH?Ci? zsWaQ-{xU{&=(}sJXEpdTTT_S|og;3Vu5I#@NbOQ8_LI$=(>)1%zb{~kvybMK{a;`=4K6xVV;@Sc7fM{(X`QsCMK+e0`imT2OpmZT7=Fls z$hRM?_Hn~MpFr#`88|B@{Vde2c;MXn(fCfrYX_%}mNyZq5^^Kw$CNm#x}zIM-xK1s zqrZtx4wKGqIJ|7;LSMX07k7gB4D^eyvkVdGCs{voA}-ky9!{^ab8k|hq78=b-1ezz zS5z)j_LL2wIPxw+`mNjv@Odib2&q)k>oK8qCF;hlwr`Q1aXJ*oAQ5ujrJ{|J4NAB4 z8M%U+1ZB!M4r;FB-ioJ^5htRtSnisO+-1_qwvPn>8{Kc@EFr&mf7{PPQSR+U(p8MjPtpFT z8t$B0K|GeWz;=1Gzhd8p1akhT9g%2E7K0WBMY-=B``%arlg$UHCUGa_WL?ypgdIK? zi!@W3?H{-*@|w)jh-?aR0xmhe%HDX%i1FK2)gY_BiBY1#kit4>MNFF;T8i625$~S0 ztS!uFurtq0pI=@L>R3=1cc1!YAMr$A51oHGaJ&oc6QTa1 z1nwL^2DSe$Cs#`GR;Tq5%&Xt&CTOv&%6kUBb(j|(OL}L>b*^O0C@Sz`CYslKeb@2e zL7y?2xK!x07OVw`hbNUV3jKmL2Vk=PdH}d%GA*!JJ{R?k}DZaKEi%Ki~I=aEJe zBto>vqS1yylRn@dxPmRIhqhteJtKJAdNz9zRaen|DVP?^B$W4As7JVF$t{d~2zO;` z`&bBlbT`7`EVP0<73lkQ3%8$Cj+QynDDCecLons5n{nG9qvQJEFX> zW*^^XjJVx_r6DwK03wcKHg8gobSi0p_YDq-(Mb`P;7-j@>R{SN1$TT-Jf63^09rSokJg8|n)Qr{=ij;xTfqnH0>w*-WI&uR`awwu*UTnYW z`T}(0!}-UQI+C79>Kit%|E8uEQdUqTWAYc%L+-YB(k_%*g{^T9c_VUXQEkeHOuCw)q)X#_FmvT$z4#D3i`{&PBLzl8{63tWd$9~dkB)uAKc z(AEDdW7zk-EVw*>ok^jJq9EoOj22^lk>f7FTUoV5j89|YyRbgj(cuwOTwE4ks7rHa zHjQ#luO7#cK1jdy=>vr&VXFL|YztyfPVW(;>)>7J%XcPHM3BF>r6^2ak#b96Yr*MF z@8jvxW3H$|mWiJY!Tu4YVB)a%X)_dVTuiCUrtzX`J91GZivLE|s*=&Oxq}gE7vT~a zf@0vJedsR)N+D=;bF3>5?GSj2*g#`tz~^aBCE9%Sk$5rhDN(&|F#bkZ@gvq>fX#Y? zuN;FFKrJgPlBQAnb)L$gszF@++uqL#MAH%fGAciG8j4D< zoVyUMJ0A;`wh#jjm5%&YFGb$JKALr#Wq3^8FB9-w9a~TT2&3= zi$6;8-+r~H4j3+q>f(6!k#0_3HsFSLlT@(UzRC_c{ZpD^vn3%LRm$sC) z94Un&aRk`vv{6fQsF|5rkXc1NbyL9niFKILOLK)OF(X&(tk7(S;bc)fHF@bbbT%gS z#uam)2jxu#D>7hUeU*r=KW@+q*zjaiu=27jK=Z|<{@L@T8$DlYJ2{uj7F`4uU>P{rC5P_tMm=c3)r>;p=oUk zPQ%HPZw}Mdb2Ur89_JsmwX|2yMTOJC^L{>E-Rc4Y)o}?nLV$WnOeZZet5&RyJfyp~~?KYRX{B;}VakR9H;rQ-alDEl!- zLj(laNg5U(a>y202^eEYp%)8pN!_uW>3zO2v0lRmh4xt~#tbsr_AuC{60-FG3=2Jcm$8-;PcrjUKw1wH?J z00rU(m8=Goo@xgONGW=R=?-ImDHS#nu&TXOo4Q^h2Hr=YkPo|$z1pvkV8C6 zg+DN?Yyn2_r>+5(*zTUH^`#?5I?=7G&S}vHwtI4mWV74*C=Q$AYhNG=&+=zw0Kf*| zd>Bj2mtHWc^eE=#3TmMoC}dA-0FNcr)i9C<2kjU?qK6AwZGX`whGSn~$5VBOGR@)Q za&|>7vDs9r6%0?$-&!Kd2<;|qhXZ!!ow|b}FJb}4v>zl=-mVVnP(O8rWF^mM6(4kF z9sBZVTIu~r;?YCl5ryHoRn*^7PBVv~BIP|`O&qYn?Bf5Z3nG1iy7a?oBiVuksGEyq zqspe<)k2-7;WW)Q3;qH+PzyPC?v=E?ts@h+c}CJGUtsizwd91tucyj(udZ`THHj5+ z4jX!z9{3b^j`Ntnog_2LLb%$pjv@eDoKZ20_8IH|6Ky|Kt4nRt&(y{Se30bG2NF2i zT4Xqp;As1L+C6MbWNzUd)VO`*bX>Hbos`U*DKg>-1#?%%X*GF%(R(Bh6*D09YbK+I z^1($X+2&smSMqDJrABH|*-nMg@#36}2wng5y4k((=4`n$SXSTrMoG-D?loSSkE1Ef zPk7Z}7^#ahD5b-U|Hxy8%MUeNPVCyQ8uyWNQu}2dHOD1a?i3vYzX9h(^RNrOs{P** z>Q1}S{tSW7sy}|n-9a%pkQWO7n0V~Jy_n%D)}3<#bCq>OK|?`6KQ&L&B!P}g8kH6Z}a?E@s#%Z&g z1I5Qw^M0&l6(2R05+RT=y7%aF63j?)F-2EA>?AWe$QhJsKJ%Erb=roFd7;uuyzl*u z?IiGQruJz$xlw#ayzfjhZB4i)UF;Rhy5$CC+b$;)6@GdmTKI`k$|k;F@LQ(T;yC45 z^6BkD6IMU#KlR_ybaK@p!Oq%Q?@ZCA=JK#m2| zbW9p(45^G9*n&n|&xIgK(eX__;OD^R^0b*`CObQT+YoTu#;SzNyv0AV^i*@Oeahxt z8;SJqI&d_vgBSe-tXi*ZcH_My2WcO_H0k|@=`Vv{L0ueT!|uBodYuZ@kF)&QO!X-U zdqQ0*`4{387C#wn@8BUF;?=v&)2@rp0Lq8JA4v(ZI#sG8j!-q{BO%6;z1Ex9wQJ$q zpgTH|M;&|=1!TKI#w1h{H-4H)LjwUev;ifUDt4T;NKFay`_lSN&VhJwXKc-MdTji; zQ{h`d(uIVgr~Ivct*k$gEY&dIXTSA9fz+2Fhd`rqHo*A?)$3xN z`)P;|xkQ|lg$XLjrwa7JY{-&V!e6hzx|Ozu%hS6Sj~k7zH?waQ1E1GGHfeBhOEI2ZBD9@%au;dDmHcg*_r=g9?36dJa^I+`^Sv2K$-9|XX={9FAfFlkdafOCC44C)OR7^P z(Z%SipK~L2SGNx&G(7YorzqQY;FMnvw&NGkdhUrL{a2vO#i$Hg%0fLL(5@AM>+w`1 ziChceuJWl*+IYL-l6C)5{#vdF+3MDOT403NYIWSfLL}Z2@ozMSrCap&KxHay?jfJj z0=MkVoZ9WB@{Nb&Atr-4wF$ph9V6c{hvxI%Z9eei>gQ5h1-s8Lr%gOmdMenIFet2N zL5i4}ewMw-hz$I466VqH#cp!n-z;NIpY>DZV%=#Yfg#WgbaGZNRX;yl5#{nS;C9&u82nT>Uj$CBa;aU^p4T4 zvYOW;>%Aw%(4vE4cWUt;bsc*rO0=9q+D}|yX#cbXa1x`OJx^S{2)?BEP#cJeo9<#5 zHtHfl>0TtrQrlF7yzd*s z2$HkYTefw$-@Mh~vG7uGa73|OkR&F&Ll#@Bc`g7TT)`(*K-r5KJAsMkcXs%29@fj? zlycHe`R1Hxz&XB(bB!BYvV>94@CYDIc>d1HCQUhRd%U~h9|GFYYO)e#HNZ5d)|kg{ z0MpjYwJqXP$Jc}Ee6jK0Rt~Z*;)Q4gz;;5+z}7wH9Fbx2OIMzI=2m@&YP=O@u@{kj zPATgLkMg*QL544nrW_i9>?6djz#zd+SA%3_eGssdj_>?4*q~72BH-t(H z3$ExoIjuRtynL7nIpThV`c%85O{M`OF39kb!yFVvRX8?YM6%Y|U-%?xnN~(E?o$a+ z-k&60z`Jht_1XKsnsP%9p?abZKJxKGm4tBCD}gOn=<4O|W`c|}5K!Yz*Q~rA@aY%N z!*bEk?1}}<`*eLho)wT#wQFc5P(gKi+u>U#XqDWV%=#mZo^YC&%Dwmngq{g22pz1#9q&_1>}dxov2Ao9Rvw7TMQQ1`lpi zWPY3f_BFZ5{LsFTEcgqzB?LBd8QAR!Q#AbRx6+g}YV~6H`~6EPFfS5Mu+Z=bJy%SZ z+)}Ge89ggV2zyth*(UPs7w%~1a1LB0ruh|C=IFK7gOY8wxcgSifAYn%0eCjFo7H7? zxM`u8cALZU!{?1d4oY{S>K`QkfauD%$h7Jb);ojVwA5WeV|dutr53Y{M*d$)WfT}f z)*MaJpNO-&-WMhwNsoW}=yWTd9hmL%-LEh(l|E8Y+24s47R~NOV@iv9?e~t`fH}}~ z7RNvna{4Sht7MqmX!*Z5ULm2)LE?ssxPF~TVZ&?R&D*6Jf0>NtWR!lNJkI`Sm|Tf6 zI1ea`Xu2ZtVzNV=#r&_&nsY4X@e@1z85rC=Ce5;*?Gln_5KY~a=$b@PH7YF`^9Gdq zKO|X5s2UEIiiW=7FEoK0Qw$QK+kf)(MXB4(4+t_W);@M@ubdn{+2WYDD`Yc2mrLtK z-Dm0po82(J^SQ9~yms~4%OsMcf9&R}ra+T-Qwk~6f6DKXSYy)3g!`3H1G1Snt!jnG zA#ksCNu)*!w_j6CQNP@!ieM`EY<9JFZL&$UWeegT&W!S_iRRD`^lgZPXoRop2K%}# z)#(X(BPfM;LE~vPig`AkJoA4*JH+0CM^kMQ*J!tzq4+KK+I!n+=Ol5Uvg{=O?-&rV zJ#ze7qIUQoynXjkhSi$MuIz))p?>hpnsLJM>cg2s zGHfH9{a;pnO5gjS>fB)N``oUUbqmp2D`l^VTKr-8Z~6z^VpC-hw)<_6w#Rok_&y!* z0tfHcjuR;1mSmysvEKKLC6G9V0HH+{qB1vN7@!87M+VNlH*U{Fh{i4`=aT&%DRi92 zj?HE)u`I5|f>%)&FjF<-%zQb@Y^qL96<2k(Szkomq|(GN=e80n?*_{sp&{CWyld2M zNM)8yNr+j5Oy%6_tjPf#Ep;M$s=^LyX7v*&%T~-_gV;0 zdV2BK^}K#%V)}3DtQ_#tH9g%M1duSs0G4RlIh!d1B1QU94g ztM66c{NDxJKMgrLG@znFPFm(#E8xv*R<@Jw0j~f^8i6Uvy-arY!*=dLg0akPK|)jD zXMwbhFog&ztS`MpH(Im0Qi*QwLs6pmHGvTs>TunB!=}4D7UoQs8J?9&klDIohB}?{ zPQ{@R?$td;TE$?hI?TNthjGV2_O|7R$}10(fOw14KhMqekBV|t z1$vvz!pka*jPiY?0qUKFy0#WJQHr%v5|b9OE4u`=A2n-<_EH2j(HQyM9>O@!W6frz zNBXCF*b%9Dud1!H}`M;%yd&(`Ytezh)|RD(&%$$YSR)5tXuK zT|qW92gFq1!B_pwoYJR^b}jjmqsE-3EY+*+f>up;@uLOrS5jE0p|EM|O3Ge?GC&BO zlo~;W?s#|DjKWr&&3840G5c$|AtKB6NMiEmiUlT|{2(Ug3_|;6|?UV*? zY&LN}rhfKQ1r3T%Q1y4j2{kk(IacL7fJps;Upj%~D~%_01Egwdkvqz`rl|GF-{zH< z_2^|#SDi3k<>;<3no7Ka2sXD@n`BKqTs{<>< zwzJ35-x~=p#TsNluGSuFr8Y|5rPS)`-X_D$BO}8>z1Yp4dln*H+XogU6`P^q5hE3c z5BS3IbCW=Z#dWyQeut+^aYj^0PM-Vskzp!RWK`$$3!tc40nO1HN*NLa{0? z&H5UNQP-yv1Vt0bfgon{iA-IObq~@0_8!FgM>sHTb8y@{gytGfO`GSEQTj{(G;}n; zM`gKH zOh`?uSc`gVv^f-}kid9KNwC}8*8lSYWUuWKFnP7L67yCJ4fu?s#*#2hi_)jbkr%># z6JWFNE@L_Z4f+G0k4}=7zN2?n9I}nbR^@&+NT+OqCERraguTpk9Pv<~IWB-ZjAD#d zPL*n3CSB=AWFvB_&i8|fRB9Ss_Au{n7!A~izwM~Owe#pff89<;`<8F;+9@&Avtvfa z4SD+TZp>PL=SWIy`S!1je&8P3xNsIV0M>TII7zz3js?-aqk31tN&5!|r9pA@M8jsX z@JdB|g@v_b>z7+s9s}Ehr~A(SGDyS@_zKO|Zm94!9V}lFhzTqRpCBR*+8OGA?8FBQ z)peSrPvj(*nzaJo4ynZK1&NA^sJG^XLP1@ElrZ3G^Xl1(Z5?cD+zgKw<`9+eKL5@}B zd(=pk*Z-DJGiU+1pfX>pLCXV;aUN&qC^zu_WH37qXH@kf6FV2T%jv{uq+<9+mBY8BoH|L>%F`^BbrH9#ul+-(2U~d|(KRj(iZcQRgL=9imgY{)v8#+? z{PN=|qgmOt;SMuS@5~kU~8_XE}#pb=B0k^k1m%DHmym&hdJqo$t?y)?iEnG zVz{&#wNR?OHp8Ut1yA>T0zK(wUUxbb4`I69mV>TbRH0fnd+1 zZrf4ck%Cri?QHLtO`E@K)a>BKQF6f$@pspYXWeJe3FTr`}T>to@wa(|oKspCF5_LEymxTu%ypks$n4Yy?+t@T>C(u@`1pg%Br{eo0<(D1V-W*bG@g&@2w8$U;2X^=-!cQA$#U{)bvC2yAY0Qc>j4gfV9(fmASe@1W zJ)a@b_q&5}hU`*bfk~fzX-LQzLal(*Y+Zky#E=?2+6&P7$vbQppWZ)m$XNLh>yR_M zrKfgkD~0*c`1HW6@+fb>pBJ$EJl+n7Q>;QJz-*S!)=s|lr*l@7`A{rCzw^qzu7dIH zP!Vu2CBb1RK!f|XMotTW9|G3Db)BT#F&}sr{Cc=?Qr99V_bKBGQx*f~pX|?-l982~ z&$9Ag^ABsMSu+SDHO(tqH3}5Dv3>84K-}Bjjy8mOWk%+O-j7Ey#;dWxX3M}Nr^Cl& z!5x*^b&itxv~BrfW2|9e3-4@gD$$i8*l=N%*V8BKM0ItP@^m&G20vanH`hIBJt{hB zeL1Mh>VN)0csx`qCdX`W9*c5kbHo;mO)w|{%x#4lABkj2^@LV$8HNNI(r-Jw_TxX& zPE$!0F(-DEDp{YH*1;`)N8MYk7AQz}X}aZEta9tsxmTLYy_-L(Mt%TCYuN)#+QK@H zg@tZ&a(|%k3m8*-w6$h!wP!X$OeTj4-}e*38*?V-Ba~Aqp~Y|nCl_<9|7-}*vyJof zV4}-LE%b26(WM$HUsq8TH`V_fXwGWp&`(gQYp<(d8$Sg&sRNO|GrP~XTJp;qv%ROz zUJ^RYv`KY9Q^!sAx3fML$ zGuqb5pMI-t8}q*Q><>ZdW@7NLGdnwv&e)Tnop;;FnX4^c&Ep$RwtBV=5QQ!-CbrI} zjL@8(>E}KZpN!rvbRE8LP<9XH;SVe7PZpO_V&u!o${2N>JcqkZ4h`q8#;0(L(WEK^ zCzqrJv!3ok!ZV9$%zH@9AEBRp2Z#XMpyq`MF)_|HLd$R<5^=;PIYK_+wDuHGtB>_h z8m-%{$;_?Dt_`a}56P(4WO8jgXq(~9C?AFBwwB(oOk~l9omVt$FuVzeo!>b2`LbrQ z#&`fuT%|P;^I{1n1y^;4#pT)8|JV(g;Aat`gAvb`W|>kr>|VWoAva&UkYdutp#O4+ z@^tg2nex7cqBq3k%R6N}A*hN*VG7+P4H_xSOJ8RGl_wz&PGz|yz^oDFgbSRx<(geN zy?(OAn|0B~UvJGghfoLqX-*L9tD%ruoz=r=;MwbvijC&gY;#wybcsdkj(_>CJ>DK`COJZxS>0V0?*S14|7}9})wfL|+ z!Q(iK@?nWNrROzkxZU)?hV3hgCgRpyJjsEQ9yAx^+wp|>6yleIr()vlL&&!Yn|F^C z&$eo_T<4GG{YB=&2PaG_)NSPtV%}97shV@MB3>o+^xzxSs3#K99=g1-`*{?TWuAhR zqJgK8P4-kJywYPJ&dmIOCt7+<+;_}pH)+7}9%5n5gg{N2hW6$@5%?};qc&qlZ4??+)wxa@#TtB6sV2I*o{PC^*vPsb>XUf@UU4K!> zR8h$h9Pegr>PVX@K2Cdiypr>OQdRpr4IB+Ua#!NM!Tf>If4~sI%?XVf{-~qIhlz$ zbZLW^hLkMllU>4IU7w)okx!&5YdsND@7XVC;~MFSONyHYpYEWo->*tX#?t za$Omf%DoqBcdy8biFTOjx)NA+MdD@jThmnaS-~aw-@U3uuO6mRmAmf=hQ4mOWptDD zZ>`%(tN`Tjxra2{4Q4bFZu|i6r-@_+`T}WxEt2PjR$%4?4Q=wL12uy_*feEas1KAV z-b$6BW$xe~oUW40I|9hT?lW%_*Qb);{hRh{-{>6leT{QmK-gg}nH+yGXE?^09keG= zc8`K#wE4R65ev95$=srKC4?vmxDv^KI^H)0p{qA4~c#pfxgLZhLsXZ&m)ui;)q$7$PEmd!lFQ&+2IrL_Iur^~#Z4+cSs8DZ^&#!98@(N*~3$yyN!+ByJPQAUQ0C>gvLvTCz^JW3Fp_X#-n-=TKB z`8znmlsu6Qymn*5?HSpYmg=u=*K@h7E5winyk+;Dc^*W zPsdI0ZjI%e^W_JxEy9xtnZpsnk%pv7NF7eGCOEZQxBve8fj4Xg!stmQF#h>c+!n~- z{Kcui;(USsM!vsZW0g=})6e=LI}4rA`Wl|k*AwP>DnlOge%>~t6l@hGQ(|4-y&jw0 z@kZ=qr%t#1(nY$7cIVaNJ|GC)C0Usa9tm3ys#+_AM?#qpAcs|+ zHg4FOIcESD&fQ(Z5^gclQ8~Ep$z&1MmxipO`6sZsn?A;Yg%V{=;k-i;_A_vgO$ZP9 z3nHiaBPC%guCQhnid+sf5}w^EazgfEyDYfA@P^OyElEw;747qGDit<#XPo7ec7uX`WWP4n3Zi@Q?+MpUSB3H-^t-Gl;yXzf zFBl=XYl-SJSIpXAaAv-2cqvu7I;}$HXX@I1n>%=_9Re+gBV=;hl5}+bt<5oreuwn_ z+*xg%*G1}4bOJddC{4a|rryBL6f7WSdyzbyifj*x1NmZTso^j_T zWc9soGOuj5U-|KgB4ur9(VM#5JAnswoQ)`Uyh(ynM80TRb2oimfY)h~|Jj~B0Xr{6 zOyJe#!zWlq=9mQTN%{Hx@b*$aBX93m|I2G3zOhw2vpamtsl3k!r%t~9mKVN1J4rc8 z`m=X_7APS#v?`5zp8WH(%=EJ{yU9m7RfOcYGeNO}a`)Dm_Wr?=?aiQ+_b0#F{~>gFG8f$2N-;SwA6ulA3RmS=J6{kIE;MxOq$tPORl(tt`!N4b1KC5w6RC4OBmbQ10qea?M;yo+(R~bCbtI}qs4}6w1j`|w2 zD@-X7RwbXkBgRVz-V>xak$PsdA?>m)dlj19_fFAR9O9ChGihCg=3;tS*}=Vr{7~>H z!{+51>*1&mX@Y4Nz4+&5D)4ZBmfQC-?X+vCArVfBwxy>VlqoE+-|g&h;@Daic!N1F zZ|{K+1H^t?hc-%85QotbH4l2X6doMjGy6~WoI7&`?XPwCf{xKO6R)#UQPLxJ81XmI zurA3#J~)Uty{T4+E|Xv14S#)hF7(ZN0#NL;i%-Z|gmJQvJllYAF z*V{$6bZI$e59y(9&@H;Bx;&Uaxj>-5N`{hJgE;DEIDVSYT?+~GU0wO=E&Zo}2h79z zHQ}X`xy{uz0`>5coYT2n;Qd;rw;WqvXRe*Y$dEtE?MIKNWR(T7){nht$8+R5qKNV_ zci0(+?OSPeV^)ppKw$NV|@Q;PwChB=MKjXYZw~OS8BNM7# zUexhkorN{9K@{q%@3(4cI&J(}0YC(?@5roLB`=YIL^(ceeBCe^jCQ!4a;J@lou)gu z`9&SN*}0VsxNGod=qFT_?>2tfXz3lpIJ~a9y6P^Am{|i?MR-581L-~jClW5kx5u6q zS*}1MpCxqgSlC#(bHgZR~MHZA}Cq_x_9Hhol zWi^|P_cgU&u{~)aCUE}_SKh#ange z|8x94+YdRUs1Y=ca5$W#6ePvzzq($HLd+81A+zB=LjAt{)c-r@TkNYZQHJ<-&mf_`r`&uBI#{YVr} zr14%+h;TLEN`Ul*787q^W1PgU@T!ZXvqQ&$ZDYo?IogZE$Wm0DN!?pG*^J4^63kml zT3X9<#q}ipt43T)4V2e3Ae5 zoE^a|FhM}6{rOOjF2tGlx+T8iu5-v=u-}aB6=rTydl`Yz?5oR|#`^3y^>HN&V_U@N zVEJ~W0b+tKnR&*f!`q8B@G(Z@k^FS6;I7y65>61pgxvHQG0wa+H>4!EW;hyC;jIi) zD%@*jm$EKAne0#Rprz=~&a4hrNo5SqvO-uN>xb!BD_3qJvOI(--{7OUc;o}xF(!LT z)@Y;IrUs}ReL(!`^Q{PkJ;-GH(>PoC?pozZ;G*#+2SlDbXP?@b8GY3$7hiW0P)$5- zyU(&l_v9|X)iEP_?C2fPTF50i;nvUuDRkEr8#PH8)M*pPLmJQTEYuwsiYzJS!+*fV z&u5SPhu`W89OI7`=!k89jefWUUe%3iO`s>1J?)UzcDFTMmU9tIGiZ=p95T%zbBjL& z&Ny8tP%}*N%@)DAo{K_T5&)~rO`h(yOf+xS!2Tx+$kB6HVlhs5{xLa7+x%DB&dWaN z!7rmw$N25>{MJCp_Pc(%`2x04+9lZ)57z>q**fcO_fjVVir)@iKYHB4K9g1>UsArR zz3G)s5^hpSo1**-Hz(N}0UE|Uy7mp}Xht^2Rh30uaj82Uwn>fWfBxgF@lq)O%kDJ= zI-DJxlIz%J+2oOB4M|wAnpoiQ(LgOl_^ZB}v+KwovLtO=%oFf$&$}hYv##4V%Ie)HX zm)7L0p&LATLNF+$IX!D^zoPvs$A%q>GY@3c<)^nj;sXqGZVCjZ`g9u?W@`IYh<>?u z?Z)$Gcvn-<@WOh5bW+w9dn#W8jUt@VJyW17yJ=r?r9OmfMo@{PJkoqMezOk9V}^?( z{cw-4;Y{BGJwUl+-m$F3{7RdL(jFY}>poE0ki4?tM07dagSNHKA`9Z14BN}8qX@cu z+#D?cn8j0p|3_V=&2AUtE7`egB`@}D}RKlFrbx_Wv(6u9>wrgiWCX=Ag` zP_p2CwA7z}epvmj^GLRK;UmdVpZ?VnNPKmT=a!nAtWZeEE;wvfReTB3zT^4ty~^!_ zc|G=5)Ga<@^tHpCJ?FTx0n@&CV&SEEa2Hq7)_aoDu0h7vOdV)CxsLJf8V~ua@i&*} zv$fxLgbvs}Nc3ceq^WUT1Zae>NxA$+X{bNkx;`=qdA8>xa z%;y-r*_Ms}IlRUK(^ar#Gwrp+8mg$z%r06T{-oK3w&kGv>72zYl)-Q1 zXPbs86g|w!^ZvXZrmu#olKo9e0sP8rB+wSsUwD%a$)nYv;L;VHekF3I_x2G*sY@3d z#FMP(Sv~zen&A9x#N%1=;UjZ`{iL4AaDgFbRbI9acc2y1dfZ_H>(iF2+CKl2@505i zfA&r)92^4c-00pQ)i6?Baz|VmiQ5tb@89X6j{}+F`iZf^`2v_m1tYX%;AOJoipv0hZtrs*N>P@Ae^BH-x(v}C;_OC0B}ijm-;yK4TJ1wiA*{00i)?($t1G_1SD0=iqejA^0xL~~w69>bTWuY`&9 zx>TL>TODRsJ>xPT9P-Tduyu31j1Y5Nb}`Lg(-!=_eire%-}7JPkhqS?DD9~O(4M+e zv*yyXfA;#jng(ns!td$DiHsmu+>u5rI_)ehG;iKo;$ji;FYd zWfqe^z+OJRUC6XwW14z3iHjqeqTb(iL?NP<4Y%>u1@7Z`!_NYMhC5hCXVz|ClaA)o zXj^QAARkA#L-6GnFnto#(pkbX+{U?CKS|_nl?+rK_M{d#SRjPcBVPtR3E$#!Jw$>x zholSSu=%bcI4YRrvY`82j4W2u@Pyf1e)^1kx5v0}I|W(-PD=fSYRNJAq8(Ucc0Dbj zSD^yeG~4!b9l=;5m3<G$WQG0`RY5A17MF*zm;HMnH+1-Gue zn|>0tKZ{ug3Jo(;SD{jv^m7 zjfbaXYV{`x^HvWVYU)7#|Mv=O;aL$=FNA+n5Qck&srufhztUOSTi39CoU)BX?} z*hWS;^!HK zuadkg&XoR_d!rql&t{cWtSY>5eJD8~VffUTVIvV(Y{s$Fl1V%0wDyx|89%#J5PFpv zGVh(b{_6?6Yy+yEDt5?N%DT$RX6Idd(QmjwGuI#m9O3Y?A~q(GU^oym17V@F;u1i&7i{GUrx=e$2yGRCHg>I= z+R|o4!Z+*RDQ=yeen3>-CD;@Cw^L9#8k=3;m&)#^AlL`o%(a8B9#B($Ud5jVmffmv zt|NXN+ev0l6G4n`FPY<|(Ei5!ndpPt61bDojgem1l!AhI+8O}u*K9j-H41Ki*ijy` zJtv?R_=hy@8}5nrw_R--R(_b>ng8v!CH}u9D-p~uOwtk00o!zFtkfobe;V;@jao=$ z`l;hcS%}+gv~k6k27DvSV-JL{UodLpf$cc6hoJdM?z?c^%?NCPr9IIzh<{`4rhiW! zDeQ0l67%f0zmzYsHh<~mFEzKfhwg`u190+DC{956hBD=#P13p5Iq6kFI{*-i2@DbXvplY`7~Y?_ z{TgSj+}OZ`g?j|EPb5LQqpIoUc7Fd_d~=JV4NK@!1paq{5Hu!6!WD(vQoD}+EHTk> zk!{5&X!5krv|A0_fv2kK&-9c4X(+R*f$i$tzEukWK@2L?Bvkg;R@C z>CpyB{UzhqIvdXC4CxB*#Ywc(u{h?ZTVh8L~PPxp-JfMcW%Ewt?zFIG?+z0VLLO==i~-Up0CqIZ)f7 zTIv(2XZ%|)`;JF2F4;)1Qb(^HMy}sL5=Xa}8=6pcf$V#Fvchi5TF`XUNEJ({3*j^~ z4-_=~PJ+xpoF2w!t*jDgIU}9txsRoo{y{3i{UK1ioA@UBZ6EceI1q9VcZan1Rn9of zx@ejpC&iV$_@2)=-air{wqfb{T5`lX@OvH6GnOPu9yRu33LHlFq^`-3_;u|}0= ztOzheLHl9Hx3-pwsY9_9&^Z^ly#x#a<9WX{Ldc_-q$-`!3Go>%eSp}^(|EsA1_kAC zPE14NL6vKN-FT+!VYCG4%_GN`1E*-?92|wCrlUlf*nePazHOU!+drMeX;h4_T>;)- zX&QEvla>@4ZRQC(yjgL(cY1c`{k6)b+lLDg>GGInKE`MYL=kX1q6=X9|Iu`wVM+dR z->$!b~#iJ;%Wt_+8iU^F2T37kP3puXMU{neCBlfEb~^RXJU`=B~(}he=UZQDSurCbJtm z&p@ssVIV%il6z}y7!{~iBi8|)f>aMg%8sj~PhhL-Wd zW5)?ESBew<)w{f(=U;6mU2CUdmp$xK( zb?)D0;;&1o9Zs1Iz2&vZ_rIEN6&?vA>gn6lM8Ln`8{gGPgTlJ#B(-sZ}UtXNi5ox0`1NBx3%IwclIrP zd5E#RKlVyVKsu(K$(+W|zH~f^3svdeVf;o=o0(Q%`9{2)R*AsCBrS;=^@KYfZCd|c zvMaR7K9vM<(3s^<{IC7QzV-Azdp1XS9Vp3C$8ixCw&PT{qm|lVuN;jIpVxV+X_6&4 zGc#h-D-MT=rC>ZJA?mF@c^G-NlBQ{==_9$`NE}7Et>zpvYUua%@`voA95|fRj??o= z$TY!V?c+yp9n4_26zazm(vNLR$t~=wJ+P7x+^tajnvQKN3s6d8vbG(>fKMN95H1l+ zrm1ElJSGUiHtSYGDKcW$CkGr%AuS^xq(MLo-h75hJme@}n}aUEl=nKAG}{%lDG7{~ z$co}o8#{_i?*m)7q15<#f~vIr9E%b)*0GLU^lp=&oR{;b`M6Y1zVP=E(KPiqHp2 zm`{SM2pQkl*uBwMRP;>uhmR3r001PhToJUj=v3szb_wTNVW{b0-7~V4L*uPDJX}2P zPgu$m50foo6r5vKEm9#-&3Ypx4)9K6`Xf*_$YpRo+&nrRgS#;MDTFZCwKvkJb8k zjn1OTNiamA&{bDF_Lz6JRu~;paFtDXE`R8{3KJpq+e<*Wsd@SY=>o4BhH6~G|2+Qn zT~MGYG9sREH^x_V&ca^GUo^cjZ|1&TxLoSoFW2Bp89TD+T3$Rw4b0VM}`WH8Ri$^oNHQ z!`6X8s)#PnGx_IaGW@RD?QL1MxOFRSBl-zdt6Q-sfCscLxmS%BzXDQ4dCmnjwLhBr z29tCQVjtR+5%9lh&=j}WoA&qY)?_E!0ugbmBHKE5<^v@CmNt(l&&jCM(iZqwFYe-v zj-a;FVYc7xnOB~1aTNWh{GL4_={+L~`cP@>yYdCr7dXM3@PgrT~IfG$(ExFsj-bU%I&gq?1G`D4IBHQSB2gtgGqfQI$Io~EUiVb zg~6ShOu5olGi+wOEF37eqN(0}0>2YIU=?(YhQ$Y*chC7K+F!lxUKFO6yK`x_xaJ^r z`&oDTUlFw*+;M-L>ml~|4b>3Q~dzO*!N600z(_BdL!r252~ zYV~fW?7O>-mY2UW>>#UN9B`4m|D?S!w?V4pG}(;Kv1UE})8TI}o1~Hnq@bp$dGt3e z!PhWK;w*@DTtyMZOndLbesO&R$X>%epVBn=TB`8qDPMk`_p zn~-zL8blhjP607l`;90rjled#_QQaLtJ%0tTy@5>Vrr?zF6V*;cF4~zNq{?ilS#E>=?2pr5GKvQZog;JT7bfcIU{JX4L+- zyYjZ^C`|~rq`;u@LZGcOYn4?A)Y_@)g+bI!Q@HUI-;k9a!6Z2RGt=evsApbZU+4M? zH2s>YeecuC1sb+b`h*qhjHv{uf4hzjh(y z+A7G(vs|XwN3RfaHw5wD5^bBX{x85QT%v!HFg0yXROSJ?APCKi| zcw<>jG@A#4LXq;tJ|Fex?X!|bEoK7QG4mSzIYmmSB=*4~C1wzKv#si6&_2Vr2a?dKjg$zf$TVfI?C_7EM;kAphYMCT`5BAT6+~;b2_0*UDoCMe%Dts%W_I zQ0CCXiHhh&<;`2z0QqBiawqNs193axm%hy01yrnbLU|BAq=j`oEp%rPi7Br1zJm5- zIqfy4s`v^af(O<1N~3wSENEYdFs7i;3z-hpX9c+f?qxv_#+E>W*-Tr#f>Lwp9QVZ@ zE;9tq(=WEH3LK48?0$_}ze0uG_b5DP^$pO+B0Oh$y!eZypgvIwsjE=jfpCl(vjbaS)!CF*p< z2M^naTQG5lDGzua0$V7r6#3Izd+y=zlVgg%Yr~DiLvj~SqTA-iCQIw^TSV$z-$a+W z9}LDn7$o)_fRcxLR8-{lh2%!HP&3$u)Cem8at}DnMa5Jh2kWZ4($V}DZd2r{K9a-q ziy^3JfD%`Y*^|KT?d#pM{5$Te(!V=*)9zuE2JH1GDQ^lqNe&1ncN5Jvj?TP4N}M+a z2xo7-X$0J*0TcJ6EqB|TJg#t?X5pb%ehhK(TWTN`{-D~aGsxVYoO9IBxwL3SsvC#4{S6OipssS5w3`+yb1a;8 zq!oLRH*gk=G$=)`HCfF9wpIFwHa%4_WdGZj{+e)hIf(XGOM{RpKKEb!e2DH7_Elhj zbZ9oCl5`fu=fDhJdK5$wwK}iCbK1~hM{QSbUbci&{92&{A=roFJtf>pl57n1^0T{il9`FsMXt z1_|>(Xa*QOw-P!qQI1ag#-bTg9>*rU{`$M3L50*Xh%rB>w6af zBfteUf#C!#bp_$|>zag*CEJ}Zbq&su?TzyZcTqnb&2hoP5tl7;`c>sprtWT?4_-)3 zDfzOkD@z8zsTS_QJ?2lZHiK?S?V9o$??{@SRw zS96|=0M*|iDsWH*O8(Jag45WKV;Fxg0iNCbhRW@Al-A zRq~9sCSIlo^6>!p20x|D110;g#2$GQ*x5W%bi#GSn{e;da3HG{9v1C691mRdqW38>A~WW z)Ml|6v*~NoFBraD^7DB|mUNicx_#azRmcCt;JOJx?eM9v1ES3Kr&*94AVEDf zNZZ{dRm?0S^;%C&4iHzW^rYY5@wxp+Co1)FFJAVRkU5h3uWJHNU{e9q8j;!H2OYZ-^frnGTg$eXq~4_6rB0Owi$KFyrh+>-&H6 z+Fm*~2P5}-Sx~A=raUKPXRV;DLyT=l&wG<$Z;45kfmhynH;r2u8*}id?(Anr({ZM8 zLDofzQX}U{CALv)wo$%CvN)87Wc|cZVeXlxHoYgJKTYnW)ZH*JCq_f>7*dj?R9K%X z-Uesey0~@|rI^M)lMK2JWw%D0Uxb^L7+uF#^uo}sNLE}U@j()c%55G!)6YB!!7}G; zf=OY+^fG1-5*M5Xu@hHPx=JnJ( zlgw<{G(IV7&kSO;sut%`)u*Y$}t%!?u9eAP*?b97r z{VcmL4Lg*T?^94Z{U|m?a1-sLY1`;l#l$H&4ELzlaO3-?%26Zg9iLS-JAF^@VWi>- z&ySJtu$k4pKLiDIuq_`-T!)G!bxi9;mzFtsv@t>hsNG&GqR4lVD5%Z0(5paF>fo6a z?7GswOOx%~#GxSTI(^7T$BV3=rdW>AMjyEqMv@YvlyHhpD{)Mpf2ZJrz&|-S0uty*`EC4}j37OFEG0@Hm>;RegZqC@2{DD^=&9M-|bzMcl9Xs#+v zCAws>SIj)VmH0s%Z^s>S!6INmQ9619PQ#OzrkHVt_XA^O@J4;Tb8Jq3c$#QupX`IL z?N>^1u>5L2JmqX5jPXP^LqpnpqA)LJ>uI3K7;7Gr*4Pn^MQn+nlY+L?Gmxi9|0n-d zTdNc!crhi|M>SRn1d`(`sSKaUL%zJ1NkMLDuf9m6-q6f5yXg`qw;zaG~R9b*-H6XfRPpvb4pTh&$Rl5LO-l?S>spqPwc=u%Q14Uu*q4G3KkPv zyix>YGld1DADpD0i6E8L3)kvB_TY||E(>X0ARW(cU<3U_%a|ln=BLF6oH>=@+75wc ztuP`}c84s#Y}g`>AjU5hW<8OA?TMXiP@7*(cyiM8KDi|)dEu~i|2fLw8Yz2EBT3}Ufmix# zo4RFPvSU)sQme}(XX2+kBJ(`Yjdg!}RDQ#GdM_fMRGj?`ydkW2XsBb#-+4>4n#Y0| z`-=cWhGr~5>4lJut#d_>P}R_fz_JD+Pjz@-qdQb2s-7-T11~)$W(z=!12^nI1E-n} zROdNh82?>W1Iy#|D_{C+Iaqk{Q@ckqSYA5YT1Up<;$rQ7FsZREa*}7=ux#peZpx|O zXMl4Xo5tS7lva+vxAX-Xr*4nlE$_ax#Sd{8>Ca8lx|9MP&Mj+t&Lcy0m@be12FfHb zTIK-WxQu>XrdW3lw{_=!nZ4|sClTz_1uVnlO3PX?Gpz_0jD7B*7@p(}R3%(^7Ap+4 zN|mO1?TbiwD)3hW?;IqEV&xUan8D=x^6NumWxF;1lHQPdkHPFobZQ5B?a^WgUUw_o6+VI^S>-96r`F7B6?Z|EV~H9P&MydX_{W=uEu zQVV&zO{?`5{B+V}xq7i#NA0!>O}MyY&iZ6vJPbj_@N{&WSmnfN`IT!I1P+))AXYQP zs~hhYYWU2kuk6!Sgi&wn5kbB#bKV{Mrz8ZIVou70TLC2@V_lG*y!cRj0jF4@f<}r6Y;ob@*>t}IVaY;*HEnF0p6qsf) ze%L{ky;&RJQ=HHyMV`vK=R{Gdz{a>%bJI0>C$czo7+n3Br~jR-TgMj~+9gO^#d%gO zCBZ~GZfUjl#p~L22;x}CWap_v8Q^YkT6op9m#eOWaFM_Mnj7y)glGj9L5DuDrp+tI z_ASWi>DW<#WPa&M!`J4`wrTmlnjR{MubQ6yz$DvE&fHw2e)vSb^U92a`aQ@y8{-L+ ze~*|3{mcZos`BUJ^|9uh9X5w^Uyvs?L^VxDwoGw-9eGoH1c8z9^7Nd`Z>@ZGgZKuR zpFTv-krK6RBkzWeTK|B4x~03tn&$$qacMS@FbezkWO>Cw>g`*)3LJGTSIj}Uj|-j( zsjzM_Uw)e`htlj!g=b<2m3!XWLCRLw%D1(ronAT0nTK6jbnl?9IlhgaVV0L}{Z8pO z{5p%0{uP!i|5mhFdb{|!;)lfJn&0H&e2l1VPSUgXNnnJRS(Uyq9$p}ih4IL9D3@}# z&V0Afb^N+?e>09e_l#t{q7swMGrBb%3c{Y~Rw5hqmF849eGd#yf&@9NFihL`gG?7) zYL^omou``{zIS;#5WzKPW*?qG%3w7Qe+HMyCx})*onpxFx7wpTrX);B%Zds4noOTu zij)^h?=+l@&Vf5-*T1j^ce8J=R-jHON5Jnrd~E`L6Mxk&-Y(eBFvL@7BS`)vYq-*I zYt5eD(~Kn8M%$6_{<}@o0$B10P!TzBXNxQ>z`HBK5)6(KCTlf-}L|YAO*Ox_ND#`I*UVP|Uan2i2d;9gd z8*0?T6phWuU#ky2-(#3VLO1tj5ctPOgAdqD*?0RMp)@5c=8E}CYtkX75e)54i-)`8 zi;E9y*;JrAY0E{;yKfsEpQ;MwN&EWPGeK$Z1v^cPDJq;~`Ojv*xR^kPaO$qy&msQd zXPR~5@1Ni3$RgNiHr~<)w0prOu;iJneQq;kXVCq~v)1n~;x?_*q!zos1PbqjmBVB8 zj3t-(7V{!60`qg;p&*ViwBdgRl1qWwx}Su?4cL(>^P-k(FoqvK^1fm#5cjP`56Rl< z^!b1Jat!|2-4VSgKcHA1H29#U)akK<-NBkY zNVm3lTT;mXo8*3>^N*p3z3@Xff`*RA$Ez>RBsE6)%I}pAcsqFilM$wCZn-EKV!q8` z&SIyN>@X5B7JfrtKI$BrY0HnfJ5((`up_b#J3`!|MC*6ONa zBRuF6&Xs{LuQuAcX=wVveVQl!yY-WCRl!5o;g!qdGAlNRa!y^*(!-NP{8VVp4h;T5 zV-0KnXU9h$;%@hj1<%>bCOrJ~7WO%P!;n%8(Y{=X1j7NP_ghPVQE>XWA3CKKxC6dR ze%-epBZWLZ=>_(4hZwFgd|MF|Bn<%On^|1NZ3YEUAGCQ#BxotalTm~4eQcQxq+*bLkQL% zpi3h}Yp#j>sWmW@@FLPhEvrXQ2@0X>DB7i*U@fI* zT><}Dw;s1G@l>2Vv5$?BE@_=5MdI4|r$T3%Xr(!1@RAXr_#B5mB^*(j12rx!-eYm` zv%jVC>-gbbP4e$(v;ldkn81FNkHToXnkM+$BX z3fL)cg$93v)=DiGK0zZb3=*4uE|jPipWTkRDqf=Uo*k&kFG|ZXG7dZH_q*G;Fgh^{ zw|uHBLnatk-0*F-jTeM%0c?3v$6WU|z%D(hGtzP|SN-B}QhE|i(7jSr=l28aSK<->UW z?oz#!oT@ATqsmM?weRgtECK3|=m~DN_3M@9GNiPVpDI*tDC_F%AX6l>$?t!AlAg+6A`vrurTKx&A5EoC<&B1k?*d;@|LwOIYXSq zivP$!$9Uje-wxXfE8lsq6+@F94D6ZmRz6ka1hHl0sBnqeP0_&HrCjW24-FU>RaY>` z5nNl$=>@bfEhOearf=EU-OlYO!nppdv;R%3z5TLTznDsv@C-cLdxdRd7KVZox=}&{sr7>ictTV)yaUvtu*}zF_<#%!2{d4(mp|Bo!E65 z5-Nsi$Cv_F#xeyB^R(R|9Gv1O;L)PtNAM?&9_qX~-azVy77sVtMAV-ihy{&JzPQYn zkoiDu;G*^UCcoTbPVs@o)9K6Pb{;BHc(1oOi(W&Sc(vl&(Fu)k?Pw$3T6C>B>##qU z&RU(!KV{{-U6HbY3!M>N4$tz*sOEYn*S5+lSe?Zy$5T%em?ln=igHjdRDx8tb70po za>(?rNp6LQFUIjZ%_c>C(rihJWjVSVAB&7W$->*pA&q&=@&SA0C+{ImNB zANwZsgQHpPTxDkpp>F@06yiP3`hI<_Ps-$Hi%&!Bt94SssC|{yAzwJ~8dNG5Q0V}GOl(&t?_-W8(wHs-tvBC384d;iY{~FCWfHxL3=BcRV5atL15U z0CMw@1_K#wF2>Re;KyUjxmaZm4+!SG)s+G0%$t4Z-a_)5e3>lAS+*NOYadSsegsOH zfyN#dZVx_dJbi$R=)5BT2Lehpdk{3DhI-)*QCpvohN1!EB{?kq*W#7Vz`i=Da zDVdvqSWyuk4R0o2o2LGuL)yh(PWT=5>G>PC}tn5=WgT_bqlOe5z_FV zGVf$ahM*`t z@4vYG=O&v*+jPpFha)^PyDZt>nIOO@p>J$BRd~BX_GT`&;q9cbh4E50;8?W~%eZgoI`$QzrDW~e1i840N5Zwa z>+mxZGiXQGj9vGVDpH>)>PsJ_r>MFe^k!11VK*VPzB|Eg`ne@G-LdTtjIK~x@Aa=o zMT~Mga*#p$#my9I4CnzPQ_MkcCFe|2jP9na+7zc-m(^<@((%kJZBe zlu~B?3INl1sD1W})R0PVP4?rx>b@4yetA@&m6>xn4lb|QGVP5XB5XF8Qszll4vWM7 zc6tGf-G_IapcRemW_H<};Hu!VS|{vMdxaGP$e~M(b;MK3f?AKX) z8x2Lo$Ky2+A^9(}?J^}OidAEQ7Il|*+t!-?z_&Jb*m8XC8|)Sddym1MI1jOvp9@Hd zmC_ofgp)qzFORmJ%#BlN?Ofo7O<{PtcP^RJ~;0JMwzxw8d zvW;rqjA}WTSPY3^ovokQ*Fa8rHFtHSmq5}Bh3|D^hjxvCjSWmo`kQQxDq;>{sXmBI zjJWniur!!idbm4YbR;Zg%2aDRkD#Kt{&MwD(|yrEb45oq+vMcP!g+WOQ`#lq5Vo+> zcmU%8gvQy0S-SxgmzPo`={fU)2Zx4M(IT}^>x+ShmlGpsV^~0G_Ep?yGuG+I{WklD zNWrNahWZ8q%xTvFvS=%FVibHDY`l6zC_BmDWX40SXZ9r|_Fhj_s=o z*8O=_AqobjqyIfkZU=ltGGu0l+xJ3lq-YlgJ`?y|c%i;nn!PU9s+5t5XGXdsUNC#N zeCXq}l@i#RT%jBOVJ3fm$dAV;@&(KzzWEEWVcXZyu`PGs;hgT5pbw&`v4NOM?(;8R zvhNfWbP1eSFv*)6cu^)hzWLDG+D44u4z)?bEj`{57paf<@{xDeqwJ=Vg!Fm*PHOv^DWaQgPPA}ktR%AWx`H;u z1JD?+DTohZ8E5hSYq7uZNn5P8MRPzaSJT@zi)9Sm0}LXq3h$8&z8Zu_6HS1l7Y-p5 zf5>-V)UNM9r@7s5*`w1@JRh$V=*wHyyzvJ7_kY9~V@iSl1K|T4U1h%>HtRB>|6&6s z@5O6$V)WB6AEnew+(y{woUqi_-;!*(=IS%3H*f;YTihkIV(4gmXRHk#Z8{7a zX$^(?e7z?Kv?q+j2A-i5pzMT(3lG`%UKN3nAH@fRL}z)N$+35srU;+7U0V;{dZ{_fAXn%I$p|W*EN+zI@FMO zA)&X)_Gl;-sj-1B&d?sAyE~*<^Nzb3O2@=u+SY`Ip0sXK_(O6xX%DGXV|JY%$JvH8 z{rfMKd191#)VCtv#j1Rim9wp4Ja2m|2_~Ig>ud11o9l~@$5Kt2!=HLJZ=@VH#?Jx4 zJMuKyQSlFSU`MftawD^75_3hM(NlSt?a2-!U@g4_e{0BvPQj%|CXTLO zmfF4snsX8<5l(+{j_cQcXT1Tjy3bUb@Z_GoJ=D*Uw*X@xV9Iw{X-E9}e1()_(`}8O zW40>mt1Onn$j%*uwWCQU;@*C3&3u$)_1G^q=_mVGUB=wcIPqSfN~ly!&fKhw(|LWu z2wTkOO}~Y$0jCy@WhP^7P~j8S1@eKdV5O;wf}hqgw{HbQYg#vR>$b(qSkrWtTPVE= z)-_?S5SkI@QE&Tu7ySQ;V%;ARkN;f@8Q_#B7&SqzownH~?E<4>_n=ME^cB6cTv%oc z-)#LR@IF@s+XlMcb4CQXA4cmOe&S<}{5LVhXmE4Cpg~Ct;vX#K&@PI8*5T2Y{8T_I zT0lDwU+8JK5;bm6kXK^3l4xPU?pDgf#rdwHWy@CbaUcaKXZ~hfpas0LFq6uv&v+aY z<7D{Ano`c(zOw#m(;td%3q9vS9wurg6xdyaEx|@Y&(e z{3zW~#_g$f^#UfK~4DuTZTr(&z;!xG@p00vsL|NL6qtJb!^xWXG@;Icz<ZSkSY{k#i4HfS`;0w{Fl$T>In?>$1$&t!{i#A3-D-F) z?{p0i#`qz`*z(@@v2U8u4zxmEA??7=6rmp}_l6NG`g^kp@H`noM5ZocyRUgOY3A*A zoCd=1D)#h&y;m#~`je)1{>)SK* zx+XALEoAYjtdrDcDWV%olE`rDO72Bs^(*l&L`v}B@a?3khJ&00Tkd0YETQ3<92?)- z-}~$vIc>BiNcaQU%wJA6#-M(*){es?r(ok&V;5ig`gxwM9k-$s#|+~(o&;6g!!@@a z!gHZkQ!;p>9j(w&dsxyze&WBuA1U8>sS@;D{>@Sc5;%}!0)1C=( zbyN6|meR!0XOwR#Ill?KP3oQQllaNOZKJ7*?BI8Lc^cx;#>;Q#lPx0o)|61trDFyQ za_nEZWT~*VYAtwc#+yH&lJF3WY9TTV%ZodPk01}LwtdIBO$6Qnsl)fr5?@bGHmf+T zO$oc+*CxXOKBoW5w(ZL~9JrjbNGiAyqqX&mG7+}feunhv^B;=USIYStC;*aq33va3 z^rI@LjBVLmly0}Z8W(n=M4B@Hnt)krW{nC{wUCb48sx%PlScP-s^4uf}811pi8 zJsR)4bH)(4rr2(zE<@syw*>wsuGqF$SERcX(@O@mgaf!tyf}xS8xNFd>h%X!ESR-I z@<11jHu-8OdME)J=wJ8~jt{(H0c6jvx-}l|5Fk2dG&+VBXY+DmZGEKWnCsi{wv{}) zcD}j!k(AvBX%~%8+EHOQIS<}RCwD3XKk(iFnH%dC5D!sIXL33puf%YE+%+FoP)WMz zwaD4}pS+@<{T@2U%{{I8^djxan1#K<8jra~PktxfeKp4VG2kNdBWU4#h z2Bap2KY)#<`sKxGmy4R8f&k#xF5H)2S?%w}N8|qY&&8vqmstkzLVqXHMv}Udb(`Vt z10lZTmp!T47qcf2Erh#Tl5D=&(sL$FZt7LOQ5j`JFjvH?41L(OD8+;>&pU1Y9MqxY-o64i^G6h`AYe~^@@pp z>JumVqEBp^U9)H2r#g*%Le!ii-;UMXcz@|rWyD!|TMSe}=4GIWaw(~jDIh?2q?B56 zQVbLYC?gdp23D)M%gmjBmaa10icx_rSc<&vSBac%H!Bkx z;(xN`@TjoKR^(|gEPWtmq@{(az)%i0nGwOI$H#5}Q1n5wC$QwB@}Yo(Q-?p`db#v1 z>{YVv>~W&9;7X8eNV@1)L4xwI0z$~3xK|#3+ZvR4MNZxieeOI6TUQ|` zjVgWqq(fr)4u+}`H^cD0UbOk2wxPaJ^1{Op>6H3`l|2E#%AUr9 z`Doy-kR=*Y|6AMTLn~?@kgwijALYK};_XLT}|>bE{)u~RiGNqgcKO8MH?%cNkBp?Y=CiN$%p{yOr0&})L3 zW}x*YkGsW|Nfh+HRfnzqkEeV$@aP^^qBFeY(Ui{N(HTg`V}?#}+uG${HnvrL z8(l8r(09mjvjOAv%En! zVd1>luH9W_=?%+TuQ^S$-*j%xAv|ax>)E7IRhq(fF#sFcTvmO)A>veIeq$e&|jlCC?g*|^;FK6Y`GU3D|W5T zcOHU$6z22aZo~TZ>7dbl33h4XUdp#w5=UtJFQPg@XZUW=^m%r=Hegj^Oq(3 z7uMUUxLnQ<@CGZf%5F2@8ke4x1CMM4t}vbfS9TX`S)c)nt$!Ysha^9_V+h*ne1pB@ z$9+~SDYZZGTF|~UoK76F=KH#>-@ni@2}e1+8HB>pl;!^eJ=6!q$QUIKb33H@pl`Ep zB{>O2SLH|}LV4XOe1S40n^t(94 zU8`CuWyaVsgAf0RT{DCl0w@J_S3)^bZ_GWg5Ah@7GGH6wg(g<~^&h?s!)8j$EF^2m zx|LRvwMm*d9gzgZGB+#NUS=bYG2*)0_leqr=EcDVom*wh?MHhO_j%{+Q?jl7RZ3l3 zjHjxba!NOj=Sne<2HA7Kf)mwWCALBwntpy}?}z4q&PZ0GhbT~oDRLw9uau}N+PBG! z8e$D>2k8oD=th&*LR&2Y*5p{58@4%)x8(|sCSa@-De%EiqA=_Z-L}69`_(7gl^d`N zs!y~WhY^UONk{9LYtybOK$)I;k1*CZN1V8y5{R z%fs)5zzzg+zjwZ_XAnkx*1BFv<)v3}D96Aef?C_P1kd}=3?0_&*EWp5XK-|SjhJDj zawmDK$h@>0!pmc_q?_GWfekAFBc8kx#0fy&Rk7Y4iqMSF&}UiU>0dK|9RWR!x-?cJ zO%rmorT8M%?BNx^!=K+~Pt$-vWyr@6$`iKh_>WLz^KF8~6G!Nn-|_*qn99$?FQVh| zTqYL$=^H`Yf~^>Wg!kzFqfp;@hPK6^zupqimE~WwlH%Y0n6Rg4O8bi&FIr{9Uo&%F zxUtUK$Z^2#l-ZCjOkFfjoM4^4_1m^LZI^8^_^wg_P1_P@nU&SD@)y4hlwTTk4GKT? z5|2e%>MihvUEcq#`9Z3(Viy^mdEoCaez>j{qgTN5b}5gxk5l2w@t(i9x00U_(LYkz zF{R;yZd>Ao{YOm9kf0SH|0&S&(!}hpoS4jWL-N;9&9fTItvu zGt*i144c5#_Q?Q=MD+dH2`JYOd~CH5p1>dsZ_pnY{XDQBj5p1+-^ixremWR^X0zD@RogPzYWR*U4c18xgB$mjuH~bl z39%%0 zDb!hMgBwC=%O*mxmpzFl!Z>i`XR8&33=Hpz{H=mtz8<%W*lzzRkFd>W!CO=#E#rLK za9bkM&)TtmuI%&@cqXEG*%8^K8c9L&^-Cn+qA_SBfOj96wpmZG;joCnT%O=HcCYER z>gz6efOi!+TKUcd2FMQypB03KIXXJd|BT^n>xL`}Tm)_(cPydE>C z1u46xXi`+c$)a*cU;ZF3FbV+4vkA66ay|-vN{(o_3c*zK*h6Y*<8;ulr}@@i`Lh$H zp(72)qBD!pgLHjMu|0N$+gJ3VKUrggYfr^Y%<%Zlf9YMB(QLg?b`Wf6tBQTL9Ah-J zjg+pgPF@8TNI}@=%NMtd_^kk@IWEWEZS(lx_2nyBuf*TE9-l%0g^IfC#hbS;w_9MR z7_vd~JH76+t;g`4p|>#x~G9X-^q%3PHZXmSnH-tm167U;v3G$_7_9S3c(!z${Do7!1 zY$vf?D;grr-n8BQruRbswx*`PLQW%ic81jh1(-#tbo%89e=h zzl}}$E&4fu>c`rcUK8PklAV7SDl2KjuRQ+1$p=)fBn4+Zfdx&>7I^nWS@hbQ-p_&I zB=w-fHFH40?3tXD74r9`5n`jp;5Drnp4YH0z<^%;H{(+VW_&*g6DM+{al3~}(lMME zt+5idMi z9|}kfZL87ol9(HGLJBW<1g`362C3$6g89OdE1pnerxC6QA!eH*mKa|CZXBeJ+1jm_ z+eb)=05~US1eMrxf~K#PoCf3nF5rJt_BLOLiS#KAI12RFtk0Ij0wa#A5& zxPtAyySuiaj~96cTFgL2EvoZLELprQPv_vuDlwAvRSDv3BTW=%Qd-pc(aY&!r#khE z{-KH73F+&4zSRS2?6|vRu#)omomJx%)j)~x=AQZZWOPj91GqF@o|}Yp{vEmCU_-4< zTdhqf4vYkDM{BZ9E~Qi1J{<-HjhtAQ(;so?|KS-Pg0ML;{yJ{!jiHGu;uOZ5nj?|( zmt{8b@zVs)X4`<;DI8ek;+DEYhLy7)Uw6!X49{&ZjzsC!8JF&4p;EvCjZad3i3Ypk zk6(VKxtxwszzRxCES-EEVyrIK<2pLWDwFi3p~M?GuwQT3cS2N%jrYlx7BH9Tq~zsf zsjLWFI8MOKJgf;WsbJDFBSX7*OoY|`CyL-}Jeq^f__a8-Y7~ID%qof~- z;Pvc11qE6M5lb6j3E0M8LDu-YAQ}rPoZbLkB2Q8Rmn-YHpB=f%1{42NQn9ulv1MSJ zRZ6|g!4q>sZ6M-6VP1C1GDx-z9Hd|=y_;7+v+ ztruT-9PSpby9PqJm1Nf(r_Z~zh;&0F9fJj73l0)nQ~KnSg$QVeq80PMP`G3`0n*th zad;~m+Wdd?P|76NR%5igmsfm!Is9_+?Klm(^X;fq*K**>Q%POM zEnHBnv#i}r$2x+SXwM_cd9II|zR>i;hZvN2hzx>aKZ=eGelHG4Pjt6fRszXhu@0N+ zmQaux(ycCCZKI}zzlEdgErkyu!Cv6=Cj_tlT5DsZuTLKS*(1s0c-|2qE*7W1dotpt z1VFa=z?z(AB$564;FgZRxjnzy^eFZ*hipfz4mm8SnOU4{Uv>N#`LYnYlO!JV;98;jr>M@fl79t5$c+WD z9$DQ^R0`Ti`L?ypWG)Nf3I46{G-d|ZvS7ITwPUL2a8<`9Q@?qUh#hdt;r{g_P4>0P zY?suDQ)tjR*)ns_TN?h3(rj}9-zKgj4;@{f7ex5iiDv*Segm-5+Ohw_fZm%~FF!Lk zT9oZ3EHr_mHvJ#1^zJRa{M)Km$JJF+@2$w^1PFI?$`+Kkon+E#p@G7cW7{mVjc9s= zih!d6?Vdo(aVvzgJhT`SRfBQ>Uk#uyY9Um&0q1v4cB7Pg=!RCz?5?fCCwC&3gSFcW zVCS)_+!%gND!*u=*yfA{UIwY9(H1e>wp0x+s~^T=nf!7Vxa}$=E$av4J`x02&>wJq z%d6wZ7mI^y%3W)1{vS=>9?kUs`2Q}I?urVz6>_bx$(?m^3CnWNy|BqW*O<#nQZ5lD z=2|Y3+m!o#Zn?~uONhB7mtp2MbDM3yeSYVB|KA@w=XHBLAJ=;J%-*%=0Dn{qSCMzE z^?&aI-rQp7ukCy$RQV{4K6^9!^}h4-)>pZP(E6hDU2ux{I7u>VDKV&{2aHE89H}`q z7io}4^OYcl5zipQ0hK*fkYDI96_sG47GH+wS@AG6pdW=-V{KMudYSA1&LOazS@k>z zv_DGz+aim(HUIz@GXL;qUp6GSY@ltN;sdkCG)MZbdH$$lD8FJS6rQsi^;OuOj2Ent z?BgJHmSdufuxaZ?Bg4qJ)`I!;tvzGaTeNk~ZZN#8!s zCs-;B?o+A#amlGYBUuc{y|>IEa!w?SlJR`L)7j0Tc{NYujl+6q>zkuG35acUU#+aY zh-EPqe8#qD01_)ZK2K8K?GIj$R? z(Z2TMQBX6$^|lz?8413@;g&f#wr;f_|8DDd(u>`589+ei-PEVJ>(~Da&U7S)_(qs6 zWiCwoN+DU%>a-Ga99ni!sJ(5>EL6QNOs~)~wfoLfIkmhrhGC4__JpLzI97^1RGXMq zq2V6BRIHrR6gU=~#`=n{SalCzPA+(O;XZ46f+Jt!{k#;=AG*z*y8cA8w;*sDWlP99n_GE@)FJbjesiIkZ7CFNQ>DgUhe!S#+4 zVx*wvB4-kAx1x_l_MSP5_3IoeO5KjinLhiPv8y!?MS&rY47`L<9~OBos&i+D{o6n@ zyV$vy%mZd^2RB-8(dUTlw9OcUPmJ_&mM zKpv%7X#n%>acnn4f3}_SDS$WlYG(XI{(8P$v}gRsMduA2FxS}rCgIfW|2c#!(>B@D zB>d~p)MNwr40Aw!u7iJ53m<6XTrcM|6L?fg2XS$PyLnx_X5DXlyXC3Q|C}3l&`OrR zfY@VvV-$@%I#C~=cI1* zzFE%Ay>UAC28uIb^KV;U^2h}ip=j0AF07%L+U&Oh?k7>T_D0LrTc$_Nr_D*3vj?lY z&%AOL**5DmzUBO#0(`kdh>~>N7E|Kq9+}uJ#D;@v^O<8qw$a)7aX6QX*e&oS4Zp~r zrI`!nmuOKHPt#4&Cj@w=OW3Xv&vIOLl2G5D9BGv<23z;O9D$)iM+8^W zvvSX%(DO6!w(f7@7H;6TWE#jW8onlQF@g$FxmQs(v-=)$pSApB5-lYWD(Dv@OEO>Z zGLi^YNm3C477Ek#6#jM?97s5}3y38)_c*V`6wQGKPjMmaSp_S!HkuPZ!m`6u$ zPvx+lTF=FSq3?rbzo6ocTqpkfaz48Fo%T4p2OeW)RNG<^=eMEpBQwf%0JW?J6q38? zjRN#1Ml?%F)V&h!yO>tOh%~WtYWR4Q=wc|xXG@4AhfK@<$AtxGRw zTjbIjV)>av-K_nOwKOpf@J^vzlkKa)LaK<&V6wIs^wWvFo_muZS8*F#=j-LH)V%oj zd&1169-D*Bn8nR<%dmT$L6DM27E=#&j_6$xyx={}T5#I@xnU=5uatQv$LwwR7QtI_ zosgi%-j(gWE!KR6<3oz-qv@)!VXD~sCQRI{|4it9Z(+-o2_@d?eU3WHTTn@0w8^Yph{Eu6f$1yxwJ3BS{sK zUS3~R75>nrEF_t*ZEKm%xfQp9{B0DRjcNXeoa(m*-4a}05V8r}Z~HN7Re0(TNsQ2Z zTDHY6>t0#oy49l(YF?lQc-hmud3I{p*mHnoVGIBCm=uqV&KaS3zuKU1L!Y2iQ&&a? zw158m9m^1wtg8)O>ih9>V5*0>k5zWyRGxYL`psMMnfPVfQLQj&^HH|LES*d9tk(XQ z=VK?B9V$L5bM1uo)weB!Ojo{Tm<2eLo_Kj=hrinh!XAeOPA;l5h$2k!wWb4$v5>b# z6c&TivaK1SHNf|=jjZOo7dGd&5h_wuTWym-`=BQrL16B?$@*y)l>c1sR`^u-d3*Yr z@nq|4#+7TfD`sRD%oD3cPRI0=lS=PD?$3NNDjMT8-Py_$zI0)#{9hNa;M;G|eD-Ur z)el|W&tLlg{(hqDDt!l=Lzn*dN_Q%)G{-*WEpj8DqU`TRt!pjTJUXeS>G34-+5V4zG*{6!4_rV7 zK(ow5s2239aJ+4NKt*|b=IhArAGxrzV;3&MR~+)GaV+64^J$wlx2;cnAC9NfyUM+y zHl}Ih)~&&x;T?r7Co=Ay<_uWwZk&U>J|@$YEDuf6-8GJs)cJ1`XEgw^oWurfFy<;Z zLJ`i?zs}n&k|OVNm@BoL`+ah4e|vt^i3Axnde&cP@|@+E>krwG%sU~*WKvcQ=j8fw z49X%~^=}HR#b3_Ram~KPZKkbOBl<|HC(QzN;&xn+ji&TSC16hVQ3D?=v<$TgyA}H7 zF}Shy&Pt?d0vca-g)rxPw-$h3W7tz1^M0j@$HF=u{pVTslxwlh z)NS0Ms6S=Qw%1N>Ny#$s9PIk;hVK@h441CWcu=Glc>XJLvl4NsVA$H-Hcq!Dr5>g%mFD+ z;+7N*JWK+Uo4fLNbfI+>TvlnzW)OCrJDLpbeN+A)n@3#H?~^zca;>0FAC)yQGq0mr zOn(S9lQIl}q)VN)k@#gTL&!V)(69BPGr~O)ft_(y;Mr1~ph+og*V~b&22*cBctG zuIUK$eM2sq^=wh{&&0yXS?q7H`blai5eRvEt6T7loPAidf2R+OT(ZPSVTD`E-Ug?FSMns_06#+M1LJ z+WW;i+4<)y8G^fy-QN{hxc8zV^$H&KeK*-4r1ysi$_bYQij0%*We4t8ClOsQT>J5 zT;2M1^5in%jQvKfsT$fc9Bm#bajl{Q3@(w<4Yh`i<$EN=dazCfo2bIMIu#~jTM$*> zpB&P6smVW&4;QUFWV4e^?$^E77>jx}bo~C%_K6)X_T%?6`i{&9bi_f>Z(`IGzEw04 zuHpCJwD;%(4ap#TSl|@%<}Kx{H%pP@Vk-cPIJsNCU(S7s1ANwBAfmj1sQjxnBzrfZdp! zrGb>gx8hlWkl8^ zpuUe~oaxhHGr`mE#|SH9B-(Q{X$8?TEls4orlEo3h4<=g;f z5%+%6PGaX0=n-o?i)YP@ z{pT3fLC}IuBP*_gid6oQDOOlvNCkXKxO@I@Cts=HGB01gB9n8vMdEnf@{eu95)kBF(Jf}wxZnb!kk{O$}!xQ+t48-dx4@3Gnc z<&NdR!uOBO#Vz3XzR&v=-uOZ!TF=>WiX0;ehB^Mw`J zdpovMHEM1ysrNlft<(DL^L}qC;dbpptzl@WT$0GAErC;=B{hJSX*E-v^4tA5>@J5%2k0KNt*^S)ipHlWNKJ&)P*wK}o! zCGzASY5T~gK>yabc%zr@?xq`A z>^I$)fS>yHuBPc9mR^IS2PlxvXJe`54avWq9fl~#sqmyl#y8+dG!&!t?c~#FxlWEK zh{?8-rs^yW;#gW3%+$8a@x~fZL-$gabpD78-gT@-1R3lqGVp(}@=^}cjSO(mF=GR8 zvlq+I2^(AC4f_cqE+w?^$xIxLIp;{yTPTNh+;)53AHmO}wu&4Oxre70l_%IHI7}vK zL0egV=zV3g*{PS_JjA^Hyok3s6wiMlcE(0+JZ#y{w)qd2j?K)`bALxcdx7hbZP7k? z+|xVinLYz_PRm@U<_+=khkAzRmT`WQGwAb$8#H*9&j3T#x9%f7O;ewF$QV`wwn({uts1 z`NS!bO~foL~RK~ezkU?)txOdH)3iMm~C?^}t&oCg>= z!86%k8OKSzDeJv-NP%@!H6MN?#>l?XQMpu+MD)2;Q^KY8A&=PI^^t@li=wvb|G12W zJCZ@`^rER5c2Fuu?B*?{+G9z6Jurc|@4OUT%JC*d1Kd@+;*-s|*4y2cHx|z{TrT=o zb7v^A4#mGm&XK={c8kb8X$`7BUtnUDkG?=i5bzG?w@q!No|EBECd@jkH|+XRK13b2 z8H0^O=3D3f&kF!bFF@Rg^3m1f{VF=`@Y?)q%t}ESc-DU-K^~|%dsr<6YbaN|yL3>9 zq-9r5wZK!20*E;q+OA8-(zFJ4O=|0EGoEUW$Cs4(MdG8UVnF9^r0#J)=w^8H<5O{&-FYl%F!)+ zr1D<5N&WHii?m0xf22%vIX4n~(ZpvY>2bZ5e;VI4YAZW>dj*``>7~>d(uta%wf%HD zmbCiLAZ#YSe_U&%{jJdkpIL%;NLSI@s`W#<%d!aMq3cV&QMhD>ahVTR6K6yr-}Zb zZ%=Sgj9I|qSKra<5AIxcE9-~v$Xv8_E})wFx5g3y>!$P3SIy4y?r6!RqXtqI(EtT( zO0%wCOj5IWKRg?`WDI6+iIZ`@j@e`b|Ey>)$IN85Q(;XXClS?{^Ww6ORSP%KS?=t3 z-&e$J_HS8;cAHH+lLVMjBnX%3KfWg{wqC{o7Kc1VDMqmuk^NKK>^N>rDybAjn3}p@{#;ARTk@u>@Bm^yXwt$)zOVvD_Ujj<9`^i zAONz8>Zqa+Y~i#jOLngXZKEt(NGrdy#lB+$qo)o2y${X-?WcJ)@XkrajEW7iWVcz=Z^IKBC$&?!-E-}Log z+D6;qJx175*CIEAUx$F9G6RoQP;%>(t|SJ8eFgUH{(TW`H%`}k?CSYKcPzcW3|Rfk z?|QK74E^3$?La)`KdPD>)vI`;eE3_4LE!rb|EQ!0@@NwwLvB9gAwlEo|Df>uAlA|j zKJp|Gb`s!yFv9EVVS(y;i1J=F-H>fMP0r=-*Ssa9c2<5rxYYXXu(rN^`xV%i z^TT`;RerNm=lWOVKdmxo9}W)5b{j6MRKSBoMrWe~#$IN@U!ue|r+3$v0@R!=Y-|>S z`S10Rl+rIcr7io=>atUYAzt$O78V;Xu9yD{b5s$mHML#?8tBW&$?egjk^lU&W8SU{ z&2(z(71pJM$41RgMkXYzTlj}Q-bs76TuGa=e`P%EyTEYyq z5T#Uy^Gu^>3FM!HN25g0K)AImOsxiS5*YHL>s)_0Y7(2vw=(k|L6x;Lf=P~;u9Q6F z@t3Q1O+&SKIiI%YU*>8CeWK)i4mMgLGDsYjfI=sG`ZKF3g2FE$;PeavUBDs4c^wVy zMy~b6YjUeyyE6zA*=1p{WZ@uYgUxgQ>V>>U(0_JsF??m&j)gN&fk#pa+}WbtF=p8r z$Tj0cH@LHak+2GfR zMjLqh-fyWr!piSNrQ7uVoTKqsPIu13=LfQ~FMh3Ba^SnIr7PXO;cr5Ron`8WrG}mu zgoGh5W`&eIQS-{9@TB>~_88#o2(nVDw^Dn1yJtqFAndTmjX&DcbYNV4+u?4Dg5NuW zAi=~4_l9(NR!Jf>b6d0bz_+Whs0sE1qAiz^HkFT*P}*}&As2x$wcPMxR`!z>&8x_9 ztCW96RumWRbo_yC(t(u)^tHue%z$mC2Q+YML(&zi+k&lBYkWSpHY3kd_2%Gy(w^U! zVBMtof7eYahGqXHBb60r{h?;N=B?FwvdDXGD1T8=^Jmt)3u%R2ZMPeffb;+ww-qpo2LApyB56P6kADH{8_td z;6D_U+N6-c_3er@-~_=I+9 zn84_f@~3UVgbsd^nNc26NxHuXq`FwoE=e(;f!J_1tRLC4SAH@M zg+dPKtt%!C%JbBLbGWmBIV)J=so0l5>60h4v`-#74Mu?XVAj7q_yi-j-1Jq3dabf| z{A4P#1%g`?vL>@U9vbv|I=PVc!_}$_$>TITy*~iY!LT2&e?6NTXi^QCFo(Yk$96ye zQBX;GV5!$=5~M^8olr{9l|0lgI^i@5Fq6P#4`&0_?Iy;;*F((O8<=y4Z^@jr>zvDf zvPP#*dJd*92Maxa%KJmym!D~e#{*9gw30|or6~4(#*M`HYu@bZLD|ks^{KBHhhJa6Ukmi5i?TI?RZjNmfUgrM?vZLG>+!8OIt49HV@UMQaN|y& z?d%Uk&}>+#3tg2HK2tlcIE#2r@Dxver>FHxK~>_Ly>{RPpP0t>bnA`iDUfJV=`~!C z=|Z|=%%#c^?g=#T?+C!!t*n#R?@r=ac`>_>6sMMK=TgO6)}(*E=p*Uf#$dZ3TA^hwM`!!t~>L?N_aj?KuoIx^Fq;C-oE!Re13)Ywn)(7t}x{#lu!mGDl5 zX?HvC_{cr}b>vvzu9e}bP~TtI6V4}C{@F`7-}cJ&;cb9mvbtt+hHP1VMUy?=6SKAi zUWb{4kCTI^)(j>^2Xe54gQHs|-0FAyGGuEHnEj<|fsEj70M{Tq?r`LYzw&FXi>}*J zu(d8+%rn6~J9_v8*en#PHcb~-CTF>w`~pTpiFm#UcYGV{TI z(v~w5?IAGu^@5-(ZuRC0_44hhFK6WRy9AQ$+93!de1OBslfVYWT~TOx$=5Jbt(+~D z_UK|Z@Yt0%k&x^KqoA753I{Z5!;g;94>oE$rjH~U&s*6!xW^Jyy1~50izje?d5A9R zxET)mW>;wu`wf7^4Ni`+g%S2!Ij0yA9DdEzirq;nZ-2Kd3ML$~WTbP6U zV(>K>+@t`2e(<_G2aXFQ-OpLNxY?8{cV#)|=Yz9JnfUlBd_vtUiDu7VE|h0}W!^w% zQbFR`LkUHfhULo<+qa%I?kXra1w}e0f>$)af&s#-C+;Nr?BBa<(A1-h0b4d!9;(2e zi2aWBSC|n|_`7l#^ZanR+Y*oGlXxmPVpmSWrx*1^7OF3#ZMO9|6{PKo$XhI3_DYIc z5&q~QQ4pvr(Zrs__-@*DTJBSN(4|F}maDyrDFmP3@Ev7&wd0R?oW4D_E3TEcv}^Ww z+eGO=O&WYFcHwTVil3oRe+jc!Yz4iO6jlXPL(kZY#Iod3-4<3%1% zeA2zilRQWxNKb=E{=2Oa6O}1c+h(jUz-2zI>XVsV%1RPjQb^&T@>FX*ElT};?lB%~ z+uW@YKoKL&dxWnaejtlPoLTGATi;TsY~*a1BrYCCH0SIe_P?$O!3Wi}#FpquBD3r9 zkh#a@oY~QzOzUW?eqEmFg7s4wJ%6xgi62; zyo6PvTt69M065ji8&@a#&OB*=D*#<> zmRU#yv9s3ElxoD}RtII)l@fcC9ziPIO% z{EJTRu0F?4rO!@0OJyU_ z7q;}rx6;UU-xdwiYm`snlTaFhoxt!+!jBcl81zE|a9c#9M{9M%O`xNq%BT;98&=oVsPR zxnq{DV{$sg4>bHoq_hQ%2S)l>ft95zSrnE^@hHJ9DP{C^?OEWNHbgxAEA24lFpH=_6c?-4IMQa!5{^qR0`U zYBdRdUkms68#Sx0@%?eP`6eH^Yq6+p8B^|iwb=8{V6K*|eZy;Zq?iE*0^eT?QTn3C zgdYH+RY9`Utl_dh&*GCUMgtX_pL z@!954dkqjfGsZQtOX{7}aub}$F+7+RX?yI&%*MSw`nl!vM@1o^?1l)WFc5!QKqV@`hJR*W?nX2%Vu?S*Iv^L%PvA6oSvEaLA4|vL0n$? z-g@ye?AtISi93-q+F0%HD@`?jss4~6XBawJVMGZLNb_YbPIlvsUNbsqT*_L*nj&gy zlP>~YYExlWuz_AT>}FOrGvww=kBc&W9Z@eUw{4{d{3dUOsy|cMwH#0(8Tf^V)xdKC zjEn+6cD{ovUz%D@(<@uTQ@Z3DelIix*mD zJ05)ts746%=({^P>y4B5#_?)|*GE6NvvLa6!=J9q9#Q56mj{HhOHM`}pQei5dg1&> zG$lwpxy&Ob&4@=j1@1S7 z6YJQST%i?z#)0dUhRdq+i&np=(B`yFpSa+-HEnimIz|H8LZzs3XvvLKpN^8X^wLX7 zmj9a!m>7}I`nL|rH)+<9;qfpCVuU6G%9G@$JQJy|s4Z8%&CGgx_pXrP`GhCn)~KNu z1=`~&leVa7kHy<@mEw&0Gj1WP$|;1sptBT0b}X|hp4CM5A&5w_Y$3Gz*tA@}p@`gbEGJXM5I#XzSW<&TLMKURu z|8IjyCcBjwX_x}2s;)Uxpy~x#^es3~Df7$)OJYHxpnNQ>Zwewi*$ArCV@|Z=>2dR}U~w?u_J; zCN|G;TeSD}-qL*^y({}QjGazW2fhTPeYQ%YeCmp`JiGaMcqZfb5IJI$1O<#bA+p-8 zb$j6YB8$7367L%l#Lod{Re8$BHd0k!N7_Z_$$F>AxT!#}BZptV0_qcZN!QtJp8o!d z+|7cTPtm0H4J6E~FRgq2`aGCvKfchpM55k-3&<~)D+{C4=dA>GFRuoye^=z6(?wr#UHEYk~R zZLX45kKfUHRzV1kbAe(_@h${?18B;MAtp7YHGMQMnTPoP^AIvHE4~~zvmselco1r> zt2WyrowlO;QWN`asbbY3w~Y!U)8aCZy;lg71?yqfvEy=zu(}^qxDiZA;oMbGk`U z@xOUK!O7z?nktM?>m`**u|e1D07Uog95uY}8iy+#@|*GcqCe~B95a#C2{g?2mwOcw4gxS*-kvE(TBThq zjHm51W-25XvdIs>Q=w&jnG+b`Us{h|G9X8GRG`Sisin5I`nXPvqxG$357V0Y{N`)} z6@|o3o%-5mgQ)soJ(Sgz zu>5b2grixfZ0)fXo=aWn@L9xO$Vy7Je#*2CNG^RPh!(EZI121ra*ZhRN}-_d?1X zndC{sNmpA$S_|Wat{$g$g(Ub_0DV@Tpu(0pIk$O#~ScWn@G-UUK;;!F2*4J0Rg3q$zvv0mx z^IEMeI2qO5J(u$B7+)IS2XO-uTf0kQWDQSA_g6Ygyt=q^-pHvocJ{c*TVa&BM8(Ya z6FcmQm!RNq$zQhORN68rcI~y4`3ZrU0khhlWAoVZZrbw@PX665)C$0y=k5JomR1i& z2{aSUBT;7^)6w(iqC&N%u2Pt{ zqZ7x#BNan+or&ojdGZwQ&1;5|F?KO-tqM9YXk>DY?GABngcN~uIs=#2JU&1xNe@G8 zY)$~j@adUnsRjAe;!@%Znf)yjeuGf}(hz#-JMX#1k+6+JtFiE;4A4R zB!tudbuN$QVSPLQ-(U)Rdht_cy988jc7XSb+Zye^MwN^(W$5nKvqpDg$|7(?HBWUq z;96MNF@o8}V#klHo^0-I3**=s6g=CxVw zAhS{;{jJ|u-p$oRZ!xy#_*WBSk@-1_HS zTb_Y9xzX+Knt-WMN*fx@Qm>4uaDek$gLj7%QCE$Nq=7AuLsE-w^Z&J9QofVb*mJ@~ zIs=KbLQWeS_?WEL-XIGUf6n(%v%hvLP?2NG1v>c9LCBh39zL#Ms8U#$Q1)@UAhhC@@H zS>HVInP1`)qb1_m*IlKz1y`9@%542597d?eb08(B=r1VCAC05EOtM{!xt-Fz3eCJP zPn6iwt3N7k=pVlG`wDT{cztX<{;dCixN)L?=Wk=90RB0b*f^jmv*{`p(MJD1ye*Ce6H^|J^%g+Bk%oHQhRTJfss7XpSCNS6yjlR{C4W;n&s` z1`zqjd$d65@iewH!`wEyKI_VSb~p9?ymPL}sUw6v?B&$a$Y?T;f;4>b_*Y+^P+pB$zWsHUstQfgRO9%WxE6fgUJ^e8d2I6LgT z`8Cxvw!c_Stv}4q?CLO*Jy9Sh-OelmeA2bWo__e)79t;<5vJy;X;h_%t_FZ#z00mI z-2v3nrJECKOKcokX80U9KN_X!GA|&YS@Pe$J2my~8)he1ae08mT*Ct%OgPHo5 z!b??8T-R)7@F76XSUD#|=>_1llGbI*I=7%dJ=&Igl@SB8M|l5kjn{a;^P*p|Z1LLf zE8Xkt9`^j5`)B<%?_9E6Us-YV*S(_?zXh=oPy1BluCB$h&#xT1(yDaobVB4m;#Kn; zy>DKo!!FSFZi1kG@^RDrjDgU?kE%8cw#}=aakVPCVSkU# z8w9J?f76dgn?0W$3Cz5i6NnfHCC!UJ36okrIW!w#5Pc^2IQ`0Vbj}QqZpgR1;T6{${bXg|j>Rz}XZD<2Au7wH9UHZ^J37WLAez6?-~Eik!m%%Gnzu?7r#mg6wDv ziyew99cL>OWPjW6P-e4z!ZBEt(O>peBKW*pg3En0ufz^EXv+-u>I++>bCP?tmc7eY zfeSd_1&*_G1q7GDaLdsMQEipmmB*-|!V6NzC%V zxgO4pW~7W_!kinOS40NhX1BSn1#a0qpU);niaJr&M1=M6{11A`{dhYF|I2`x#K^&= zsf;7IYEjbVtjuGCl)<^4=3Wr%>+r0%OK;@faN9Hf+eo7<1?#km=>cS6YBRx&%V=i1 z7V^}Uzzs}qV4uWl*3AU~wcg#XArZ-8_qh2E;G7k(!o z{ZV1xYKlI+!*uwg$+1L87ix_j zW0j-y2l3h4N_k-uwH#1)krM7HQyEeg=lHzt(Kx9*^G2ys7phcLno1>9RI16%3wTnji-n> z`zQ1K?kWwW4ePJ5xtKu6EGUy>I=I8Hx;1LLHpW?P>|L<4DZ22*pCxGBxHE#ILsMF; z9k}Rm%`X?eh4xY^`#tY!gVYg_jf+{;j}+ zP{2BOb0z6YY2W6@5={gCwav4-5)xk#{?E|8h=r4`6u0)3{EcOA zR2`sg_(iVv7{c8H-2XPKOZv-5qxJ(g5X~ zak9oSf5kUMewpp^%}GQ7CS)H+UNJXn*MM|fNpQ^cTMSC_Ei#ExazeVE_Is3Y+hfRFLHxj*8^Eji^*O&m{#~jQg>~H1W?eK) zEB)JcL-on;ae?Pjr15<(KQA1V#FNUnz|iPN;!%xe03yyAB1(_9?_%CRzmvaP1!oT^ zqYQ$VhTjZlvMVE&R40$cm}I*AWMv!)aq!GkQ)~I9TiG z==xi$oG&PG2|47tt~4bh?u_^I;&VsG6r#U_f)hW&S&9lFZsr6rh;%W&^XT%t?xqj= z8jsfJqKDHWsu)i&8una9S7Fw@A1oJfz+U9K38r29bo1!gGzglH8_*EElk(L&=#N5? zjaXWPDbmWG%}ohbvH^_r$9N>SZFHGQ*7swV%w!tjKtHc^`QG`o$?D?0lu45byHjtJ z2rrXAp#GfSm=!Jew$S7B0K9(d=qdqiKa9DKSyM_KJyOg+kxCqIoUyFPKwu|U*~5<) zV|@J4^T6OF5^H@=b4eb0(TS?}zYob^xN!-smh7-{$UAuh9s=V-E4zHNMc4~8{h<%0>WMpIfGE;VP1K+`Xz+4(UbkdP#=1kniNlJ9!2nU0dVsvXxIMe}h=(T|I72oc z;Qn^4@Rgj24?8JA=!_(t-~V0_eJ00X0;9t{$+zvAz}z$Z zhqh`}(WfnHRgK!DLn%$EQEG2$?@dzLQnjimDH40H+B-&3Ge!x5P$O0ZAweX0@8|cv z?;pT%aNqa$_+ICAo}bf&wHGgHAMND;m;i~vY{$02=WDpTE#(g`#OB*;J7jq*cH-Vu5FX4PLb@)UTdayMmM$6+J6a5q zV{0+VPZ|g2Qo&GZ3(o4rXUqYjz+;^fw~u>cs|-;Ki)?C4OVXgl$8}=PVbgo{rAamS zmhZ!h;e;Ru+b$n_WeFkc-iG?6ytcDP+zz^{N*+qfm5s|Lw`cWTe`g8#Pkz+{h80`8C|? z?nUi5{7^gx4RIV|@ZH`-Iq_hWP~_((MKO+mZ*#G~9gWHVyp{ZY&DQ-DGSPptP30Yx(Am7Rf;r|8f;!`QY&RX1?IKH|S zfYEz?tFEE$OhHiYrF(7Qfd?fGDeOMRj#+_XczJsx6M;8#d*AMFC5d2ik|Uf_V!be& z+2?)__~Mv(L3*RMBSpWvm{)IrkMfuUzZAvlSEH*{U#`I8E+d3*-qXCH9&tZOEHP%f zB5}ai0`b@wE^=M^Z{VG3{g6KuQsCUMa+65r0Cxc3C@Lw>x#+#8^ZF$eNp z&M+{x)QPmyTMfA`pyU`_zD0=Adils_EwvVAb41eDoH2hH={u&i>Hy*cSXEn^CBNcr z9r`AH1mv*o-2Z)V8*^m?c;}|G>_bD#!bU=+b6;RzW=+B&$j|$0M9!yg&x56OMI)*UO$v-EW`c+G}SkT8s92vXQ8}(qv&@iqBi0|PO zb+-l5%fVJZOrh<$7QpIeuP>Dga3Rgy-5A3kbv~~7sI_TdTWXzI)Y7*`Y=)R z$rFod{Jl@lf#=S(@eX-a%VzkpdQQH~z|K9bJq~8I-HMC)HX13p@u|;+;i+dHNHx4; z_C$)!EIz#)cf?(8sg@!-onV6bL+Y*WnEB14Nxfg;x|7-?HSvlXLvDCYpODhrKLlUT z4@@4rzvYbMTs|xo0B|MgS zop-aiHh|?|W1IS5aaK1xenV;0N&A|q0S7B6^i8QRUN76q)Q(zj-?p?L|MiCocY2%b5oG3&uAFZ&4=n;~mR! zV7E!=r^GYmk1jPTfQH;3b3`dFaO9u9+^jHKEwz*SDr}^WRf~YPIMsmJcjO=Jj zZfrswFxY1oO8;P!f+h^oLHme<|zOLYFAE>U_02Gra-wY<8Yh zyMdJ=Kl&fM2L6+XsU%3KzG+|^_j9O?6jzQ;TbF7SoTp&z=p*|O3+aap60yvRg3UNJ zqb<;?fslQZE!@!_{?fh~3mFODNiUwKOVu)njJ{FJel9%1&1E)Ij!vr9FuJ*S@W{-` zqBNMN%^7&buGA@~oaGno%QMX#5cFcXf&Y;3(9d4ckV`sK_298n--Fxw8bv@a!nlow1s7$N(UWrVW+?J0`s6D+WB2P6z5BYQ8?x3P|9toK{}3!(sJjEIeA;7yW)^ zK<|$ySqdrii=!>0s2^Y=KqQO@beyJ9XSZ-Zb9(>SF6OkZ=7kI8v|4ic_>O^N?-p|) z&?xcSr1FvgWq1AlK|;dG7q^O`x}SL)orKNdvJIyN)qnHlwuG$npmPWdK5&Uw<1A~Q{cDC zxdD1>bZY^=a*cI;k@B$ohNgv)41kOeg*M$Oh^`!dy14maz`xit#Vl_gF8;mKn>yrK?Dz$Yfvl*ZGrot%yg-AxVu_(Z z1!6%u_1v2n`t8%OL@_UZbm}mqJQ??{P_%<)t}NYVMX}+ge4u3vO@W@mEMZ|vZeiHn zhsr8dV;yR#14~mSaeMepb4uP8pbzb|E;X6l&U&0+ZMb3`FS?qRv(T5#aV`^xid@H_o60PW4% z%F7;N23!p$k~RAJtgXOOxwj^i%F5zxZP3l_+^|`^xcGa(wWEiTY*-D=`wmQ=%x)vQ z4-4o=9Z~ZbzwvtN z`b1vukZ;8=?Lp;)S<6;C6+vZT-Wzw}=KR7lDT$9IE$u?4J{-H-j&EsE8c9xqYx!y` z1-6Ec8`wI#cy!EV#CPt>JBBG^q6$PUW!C%C)=ZK>+o!q6#D-3Ox==oMC2H_qNjELx z4C3oC-*tzchn3^;s5@x~ckVwoRqMaa&S9PYwLc|wBgGNgw4NAaU|t+=?{{JmR%{UI zclQH{++h2~(WV3)Q~U}Xz*B?Kd3ZMkV{h~0m5<<_ucK6-IkYWp#%stuvsgT3e*AMR zj?+M^(2g{@M3tW(sVptMB8yP6+^kB}z4D4w&IEBqq~W+FKuT=Qh^M5IF1E}(i|8*`-f4oj+IgR5jD z1dt&5LkF)5P|2j>j3Hmk8|-eDeBAs|g%r8R#Rk{44NmSx)>WznfIZQwGbd3#S*6yi zw50s=Q~3IP8^M(~CxW_X|K3s5Qg~-m>+r_VF)kE!5^^Itp8zCgeIlLO1`3FSn1%Wm z$W|@C0k9Piqos7i)c?b^C_C={X^RE(F)j=BAJq!43O$4A#{B*jEHduqnx&kW{%@qR z;xm=iF!&4ITYbi4)M2ai!=*T_0P&=cl6takcIDQT7x`@@iWjaBou0O9d?#j%+u7D? zCSD_PL3hA6RNIw{JK|gK9r3?mPnq$xfLqbf0>ibKHxzIC5v>O^b6F+&DzyVah?HdX zFPe7A9K2*;vpCTFJ$LBC`<+(=Uzil&4^Sf`EYmg%5s|v^Tpz{K2$^>tLJG)i;b|{60~_3g7xu2T-x-`^(`|lzO65ZLl%| zUh%+sS!`d0!=6>E2EIx%s=cyAE4n8q9OFe5P3{s->1zzTNf9;5xyZG7Te{LJ*kA8Q z-+$u-SXi6;T7LC{FV(36RV34wrADA;*0<{kKf7|l`Suk)c8ZC@OJocjbPl$m*N<1| zdDQY{=r;GHg_P`V&4Q2jU>XzmdtL#cgug{X`W=Lt>vza zN_!-ukgEyOhTy@0JT5B7WCufS8l@DtU{0aGJ<7ZjVsLJ2R2BYexd>L-_dCL9z&Byo z-9BgbZSey67o>p~WmuWECuI9a~qrmr_R!By6=V z6u(D`91ELf&T61)(*j{&j3kbFXMS=xAdhrct~01IJJI+@YUGFkIlB zw+zzy!F@mNSyo`@mIn;ahYTElb(ec!$ID?;faB58#J6*m?d^A{zg3YsTa?ovJ?iG_ zOKx+K^FacNfiK}w!y}h723h)fY_FKstxXLSqP@S1hSx|HZe`bsKkc9Y3=YgZ)=qRO zas?#tps?|3VX2DGq@mJ090ilM8+8E z@pv<+Cz<3GOU~JvJmyM1xY496ugdgnd08YEoZ;QPa2TI$9ug^Q^vx&V&n&E*YtC#& zg*^?UuR8<&vgU9ME@{;+{iEH|ra2SGw5Lvo#57&WD$RYCk8Y4O6?U_4+j4?9Qm8qb zP2QOhpq~E7Uq9Pos4tsIcWB;Z(x-s(w&~s<@l|i*hkt}@7ff|NrL?FHAG5I^nnWGO zw-CI|cV@HG{6FjE5XszaMn{yPJmx6``WLtWS5xk40s;;{+kn@1a<~M7Z`#Yv7Y;7~tAqKt1nDmC(A;m3XMiBTm1%8KYr zCgXh5FJQYet5RPpV!GZT&T;1W48M$=i2w%0h@OW5Q(!J0{trfSuJ7OQ zOm+7rW}i*dp6Nqm#9p8XiQf@QcY1NHAQ0jOE>Z?Jor24^@e-U$OH}(4A-#&ehe`L# z%g7PCnUZeUWBAPzO-rv>a98Tq_O-JzrGJxMMue)c4v6XM-H%_h8b9cK4< zCv7%ys7ror#-I`q44N%^?ui;bma52q`o3PG84g$u_I_GifXem~dl3AC#68^D&S{m( z&HS)Xq1I54aG_jgmR70-CfMNPGai#+yI}twyRvIUUKma#(|jOkN3=?y)M6eX2nES7 zP0Skw!npH;!}!$QEh3%o;uGRyz4OJmHtlb5$_EYf|M8=6B2|C8fV?Oa*uEJ(Ly=lj zn#(%Y@+ZisRw|~Q{$uG(pjQ@Fa*UVFLdEJK z*OP*zLNH@>+4i$*KuEDdrEnfP(E!K;LBXsQ%9Va?I|g!+#YulGy?ZsRya;pC7uEr* zsUJ0L_m8MVrv%@rbQ$kDnf)j)mOV*6q*>9_?v~LkX4*63Or=La7Y|D$8>=$dtgjm- z5fuaRFMnOI`NeodY{V3GckpRq-g#Pk^kozjAsrf1p)&#L+woy&UH;mg@@fO6qsnA7 z?^XKwb&tPM;x7|!48f%^jEiFg#sgamUEaN2X4Z1k!ldN_UzoLm^66jVzZX#1N(2^1 zUcXpHpp>rZ>=g4swB|j@;N7Gf2QrX@7beXXr^;4QnM?k}Xx0Dk1^7s1{ghASyvfLv zT4{0_)Iuij?p_f+yZls#kX%bAdbtd$S@U2uXTH?(^5Kr;ZZQkp3M@(^s_b`pA8ih! zV|u<2@(%jyQoMHDEDgdEUE9?4E?w1+hI+3mPCXMYszs-4g;W1YtSa7A5kMXuT|2A? za}~oY^9&LKfwizQfo|ZT-{>8wY_yp0Dz>}#=U4}^Q*QhyvGRo2JxM|7S0v-`b|vJ@ zq3STr{#RI`ayiMyXnQwX6S?3vedkt4~;Jz+j0XVGZ5P@VVTH{(G-u_kp}nHX4SKjoc3mRcDW zX7~+Q7g_}{?OzCG0XR8M+6P(lg8dZPLCUA(lIHndOUGb{5iIcDLE2QxM*F)Cqw#Oo zmEyuaW=tRTr!1|{X`5Q^XRNGL*DB7wK-czX8HQG;-SEn10jECJh9ia!(j{^TPBnVeTNGTV}2_rRO6%n1{hbv-e zP}6ld<|6p;ME>vpB}~VRdAPj{sT7?!^zW~w?Pjc|ok@}&-va1UHlRPKN)J1(?_>`H zEngciOxj!pU*@2{!?CYBKkjjYAFTPG9FyBx;qLly^nOVCgm{*jT&vjw(3aWTw2ttK zhUdj*5gyneo;m7KZs%{M!NI|T8!Jf$h$i0QkE}Y{qPy{o*h@mUb_KnDKrQ!}&3uV| zv-eWRU1lsQjyFMJr@{|C{40;}E>LKpXU+x7zf$;mC%tmfC^xYu-n2(HDqVrXFP;c5 ziM~17bmEV&Cvp_|b4jEwW_VaI7acHLUKEdKc%ZU;w<;?j-tW5Ik6Tod2Wv+H?a1_g z%D|UlpY;bJ9mX1bx$#5~Y||}6@}cpx3XR}n`qW56sTDU0jqDD<_HF(#>SFO#MIMQn zg>L=xQ1^io5R?GWK5=ap)sZDtsCuOi&5O4L-ws#0O*3%PPu0tLsYE$R0Eu%&f>z?$ zMU#iHu;UN^LqCEV%q$!B*y8`JEdSw02y(RQEtm?Sj(Y=s5T$h%@JI>cU75>{v3@LS8Q7FN!UoN<3P|Mjp^s#Zk)spn|ZxffW0jXPMQ97{Nd`M3nk&Zkd;;7 zxq+hJZ?>y;kC>!7%-YPDF>hV!-1sXFSfuNl#?z&1?AtP%cq>>hXvk{QA4y~8j?brT z&mdUq-dR?xtZjX)8c)B0ezICu`AgfP(vh#KQpb$mNvp|nKG zefkei8ezmz-@TdQ_%lRi=j4$GJxWaNiXLjn!AAP2q&kzr;2@i64!}eZzG<_ zNufT7?H(M?wR0H+WAH*JkY;b-`@&#pZ$1Mb^AX@uCQ-773L{DV7~~2qExZR3wlpL; zMj(57K0i55m8c(}pHAQhJ{=gvsXrn0iEV`-U>4T@`Gs!Js#;a2j^6OoIH$8y1XC_|dj~;&B{8&bD$*w3TUsNVF zUw06zYRnyHQ|>1ITGxpwDOJ;Yv*z7BC1VLo|K6smOYF$kpAz@HfU{nmKhuQx_m8c* zBj?c0#%1u+UM)7y&N_4l(Zxa^%v7q!q5JCxQAqr*>gDc}k5rcMB$jV12T?}KjGQ@V z=d%EJYPrG(#aGAsz=pHLiJ@`39?=mti1_C8wH7Ov5@VH?B$b&wpJc4QrlcqxFz@>E zXsDmS`Y@|X0kYeov}nXS4}_+UUh04}4m9Q<0P5#LWYn(}-hWhmJ7DuF4|7YEJWoRq zp*JdyCdIXMA-_jjx@J67wTI&NWJ3=yshyjhkT-~r!XW6B>(R>P!jA7T-%Iu$$|y3S z+E1jEsry%QpyHVgS4r~_$8}d1BOI|qTBjqw0n6}4$0-4`F+dRm=REUY;2nVwF+GQ6 zX2_eWRH_F+vKwEX=@p8vTqY@9(pKJmr58>+^*$n`SL$m8hn>#!>fD-8=@0yT69Bv` zt73l#S=?ZQyVnwuQ+bQNZwFNT>Ge{J4KT<8)`%wF*O3)X8An|>pJI25rlYGrA8b5G3 z?NeINi$w;2J7v(s?5#8l@ehy_gGo!|DOY~#n)~%>p?P3a3Zo=&>o)|~oN+{xIe z+R?fomzM=I@k=eCCSdbWbN24=o?0^mRaKU}rZAAA#clF1Gc2FEyxc7-b>m1Ep}9bo zD(ZTPtc(yFvajXW3gMJo`T+aqW0>xAdRSuo$ZIm*vDyN4!_>tg_&UXIrUk;o$h)-> z+&DgGpxv#kBh{X}-P5#fp7apP1xtJ1hpzMj`zE%}Nlw;0T+L)uNu^BVW0`#Ok9L3D zjStesO!$Y=gZ~UZS82-=^<16df5UXp!cS2$3&NHETd$<}r@^B32F-~amVX^hX*q6h zSvmpHwNsWWkiSpfSMxDw&(h;WJ}C*0DiHGx!Ph~T&Mb~&piE>Hs-3f7d?R1Vh?)Aj zSApM)4L9rA$uH6HgHzh-Z`;MVmTlpao>Crk_jnMohi=q*!W6pGOt>%bkK*Mqg%?nO z_N;#U{0V|DgsY;NNP4UyIn!WKePcv%|J}6ro)jy==#vhVE)wX}t>|_7EMT5@M0Njd z9igwH>6XP7=C(tECIk~m`qY_N7Q5$SeBxi<)t|+bg9!qFXP^F=|h!Ske;W^}i}C-)XI5jOi* zB^o8sXNT|ypTI}7r$cwn+Sig(799i|O370aaN^rxLR+;9!WI8aJ;)g(qEF#4PcW_> zb&nfi^j$2v4KB#gBP7%kmEyQXzQ1*ca@Q`-8vVVtd~y-NzfaRAoCvFeh&iJrZO zFJ3Ek*4pPQb6#Le`ldL4yxOLkJ$_x=XMFbEkk8EfnN1bJ(6_}S(kQi5YF2{lkgq$^ zklFJQgBZ7+*kJ*U$KXeyEu6A3n;&M7AB1`b(v1zg=`ql+P4bfPdDazt3wy)v>gy`v z-jHJQver>Yh$x9?rw-HM3o>ht;#+4HQmE1+8juID@hGw1QQnzG_q#2(w|*@7Mw^mY_@x z?gXvvO8Qn`c1x~)ZQpsc#Xkrr&grRNJd{rR;L&kqYwB&vVrmBMTK*b+f-RvV1=(u+ zbKCEN(gGsiXYD_@tA@RLBQ-o^u^B`|cz)xLWWnXe>p!E|8d(Z*txp4t=>gbYa8OIn z%cU5C>PtL5<|2W;Z;FgY6*iRew4W}p4*VQDyZiSC8YnI~sn>(|)q$Q{Y{vSlc(VbT zYbbEw-vVB7%{xkNeapyzoG0P&`0P7~wihay*L0}YFlV5BwP6N%F0*@I{V2eOp|mo{X-;PI^HSsp^Ee-7C*(;vajJ<40|Ec@+WRu|nF_#kJ zD$xf5GBnK{0v;8z{xv&eyb0*b=JV>9kH z1(YW|4hw3&^d#7~@i|lxNoxXGM2BsAB^yh`sa(rkEon2AJnvC2Wn=f-V|-ysq)Mt4 zObwSFePxebFh5_0mVUOr%#QgWJvQ-Y%jq=TFYGgVcj)BNsF8?*K)rsBD3tr>d~Wgv z;5P1Y*(T|VS2>Wy>po}6M@Gg`6_2r&L8PD`XQ|eW`y-|d0}P{)*L0SMz&NG-Ayand zX>B(@Ka{KD=ukWxKU*SRg_6Z|^7v0bFN($iFr~3^c~`D=&d~i3cp!7+;BxP>?TVMn zc`K}2LzLTh_Y0=t#v&sg-BzI1W{Aq^(jKzArn2JOwSn2=%)pL+fw_Q{6W7DOeo*~P zXyw$xj%%Q32CKYp#Kpy{8~%wH;?PA?YGd)A_cl#aa^di;_v?tvJ`)&(zj-td;)~#% zs?cRx2Am3A;YvG9lix*J-4KjtCcZ3V+jLZzBr1)?+mRH0*6!w|Cw`$a3_Eqh{#96( zmX59ki?j*pE9zRdRS+u%KI5OaXa~P?AL`vC-?en|#&fGQV=zlunE{{NzPmDE#4zV% zSy;NHOD!TmpuKagvq--9*)YqrnR#&%eQ;mMYPH!fqAgF_PEl!g=^xC_IgB{wT)lC# zaI&a<;O1)T;)apMM-8~;8G&nOtZkQipwJ`t-+ZY91e{T21e8A3uyksRy-aa!$vxT` zLC&*c+qTfz#4e(meNVn4MD4H-q(ZwCN<}xQSNWZJpuni#j$-Sh4NfF<3m_Z&OCDR! zH;i>XW~~X42t-q?FIFNvxNf~CRx~jWa4kK!BifBwcHK@3V|gFYws&a~k|qlowgRoa zyk7HYuClO{jb+Z7bJ}mq&3Yl$I0wrd&)ofk7Uzl8Pw2!VpoYS8UKF{VYMvp)%oX5K zUZA))B&|cK&z|jWA+ZuCk`@!df0{$SvZp3^>8m;Ey<4jLSs#ayh!GOYw7l}A$})4& zUep)hurlwvOyR$7l|?6uqhpAx;3FV78KqJ`%UA!l^_;9_BbR!w`cluM(xp$2N*5(` zR4)JiItAOc@p=*d`_20bV4(nwGFPKxg8KzWMQVeM884viC4i)dE9(ShM&6om7axSwCdoYZ2rCAl#W{Ti?W#uP`nQKq^rbAJ4#Z zkppbbb5Y!wjN;5TR|hdPP7%*+N2cg+v`62f>8VZawD(NyZX_-6D4cs8M*UNg+LPzwMKG&0&#OTn zMB(?ba@0$3W2)9?Zsf+?r`?|o2s83ZnU7aaR zk>V0U4z7)S@JUeBlz;FFs?&OU7SIB8tUP^X{PONSH-zk&7j}};T_3PO@%#|R22h~H zt=i=Z&yg{qFN9I!($@xrZ~EEOX2wavn4!*S4`h0Xg*D&WP$kW?rxltJ3I3&XVfy*^I?YP zsI^Vnzl^-n^6RimyEMKwLb&I6c+^vkke0FHxQ!F!-XNmWr__=?5z&Z5$&_?(T;c3& z(m*oGnpZvaRY`k5>EeN2!tsYNiDgJ@{INVC@+^is!VSboVu{s)_E1BC7BGEfNupK9 zRKYFJs{;RsBUBeyX)&tCUqfxxR4q?DTvWKb(EAaUo7{E(+tN=-Ai*nrZuppBU%382 zd+a|>`_KP4?T#iBK{xuFAN%iBoGx~_dFqya!8gue=LNe_hU0|2HmiqXgUnB=YG zrq>dM*6;O0yc`-U=5!`30P2a@!cHpyOh5}|?gCJ!=Z+8qX8&QxfHe8N1EHI&`n^di zbKC2`eMVa>L5GJe6Oi%x!H5B3qLG~Ydrpn0%QV{CxKkugj$1bL;ARM(Qjq%@@b zL`adE?PIPuDLnq>JO1#{(b>#vO5@FmmtB_S-j-<{G1r%%rw}r?#Tv0pg60-kf~Hv! zM>}Zis*l>|gTjc-j$QN+lrj8+IbQ+P?h@SmQ0hNKGU=rp8{$Y#S@i-gjH0*B&wqIv zx)g$n45|t4k!^et3>g;T;^GeHm76~cK#)@OsfnC$cJ2KyoO=)0*FCNSL38BpcNg|t zS{|DJEJ2=Ya^uaOP5Wki`Vw4-pDiXN z&3ljv{kXN$cEum#`%)g~CKOHh&vcvt{)-)*z7Njw;bNds96^ze==LAY=BmNN_M>u& zWwZ9grYlP?2?{UspZD1!TixRtFRn8qCg<-ax2{iTj7^F|c=Y?RI0gQn>F#xbmqT|} z$lc&dNTBNti?>vf+J=Ts!=5yLMJPsodtGuZ<)8u^WU#BHagdCTocy=CQ*#KO1rYDnYT_D@Kt4Aue>O3xw zT~cs2l+W~7+3Ywb{Zkk92+hwR#2fqM-ac!?v#8VNaLBYB?de-tkMNR-iTUMYL|{j! zXV)2dNbBQ|fOLb7ImGe#+}UoRZmrCoW#|kM<+!={p)MB zGX7&ZYKnau33mpmpZ9&im9@)-_X`xvpP8&F(W$i*^f%!ICO_Zr&qC5YZDJf_(a23d zXs=+eb@x%)!`Vg4M6d|Auo<09H*iq&DUkKR21_<*?v-ck9K08%$nyu#&FMNoht;>K zbZ99#1^DSVl{fU)?@cTqHmNVS5Q4>huv3;8-Jl1Rh2Mz@CVbd{J9f72oOQ^`(HO_^ zlFJ35-KHOk>^TDthes^}>0?<5BV5^UH3}7b$sE6d#jy^V2By$_sR@oFuJFUYviJw@ z`szZykZS-aSIKrLfwgqsjQeU1?9Z3IvV1Sj1>HIEtgQSYd3etEZFVhd(XFw5VXt6s z=+eQTw8dXyg%kSr1hU&K@tA$@me1h;sY> z`Noxc#8d3_rIGRXH*_@chr#mH&kfQ3o&Dp_L6mFCt$!7+jwE=W2O@s|AV9~AT`(c` zZ8@g%EptdFM>-L+_*sR-PN~FWFQwA=1p~cTUq01bm>Iu7ufHt(wJ#S zM<9kw1|b4Ybd+9iqY%1Uz#l_Mz>pc_592hxV7u=(3_>A{r^hpeXSKQ}=o{spf8dpz zePN!*NxMj7;~5b)`@NPlZQ7N>j0;Ma-uPW%j%Dti!Jb&YNx+5m7#ICb9q{%w190R* zj85C}b3XjQpOKs2Uug2F@^m}uj(Kp;%V!|RHE`qOx+@*4z%Seh+V@H+;L9uuaclc9 z&2Q;#*}f4~(>DCudFxVFQe%ZotHnCL(0AWhe)=c(?to_C zI-o#b#D=y`Lsw@fcl-H6pVcF9YQIvCQ}|Ei603RXd=|jIXb<3DzwogK;z>M+Jw@@ z5fI64+Idgv=Y_|GN5|N<>%9Z^eh`E_DYFVKi-`$letkR;2l|+j2A?-Q;3Y>gF6Dh- zVZA@039P+-jFF$ClOojAyT)_==vaO)u&}iAS#5#bnyWB8eEv{%;(q_LAo`hz=g24ByA5xHc4&Rts|Sg(L&@Y=gq6q4$rDGBA)0!T6vG$;ZOo zH;uH2hn1xsXTT2b`c;o?DMwEf-gFTA6p+lL$!MoiG_LJnZj3vZYc2+5V@AI%SrOrX zE^)D6HQ`4rIYt%fgXA~(-g1muK|u?A=xUOm32KE_4OYG1|D&alQ)#!BhkW4b>7pNA z9Rlbz+iCe_r4sn|^^?Ntgt`~2a>Bpdw7gFFKKyuX43M|=RUkRi84H$nxHZH+^(xK$ zBn)%1P;e`C%MbLAoCm+V;|u>#acs+_2OX#PH;AR2DNmx*%ybd5KtC?@etsj`T}1!u zF8>Q31f;3?#l4aRJH$XWWHeTUbx1qu1P^ZrVbq{r_hYB9Wz+MjKKYA=cu z26N%M5v;?F^vJ}214}$|U+1u0!Sw#}KU_B>W1^+I3%w}-%Bf?1jmgRMvB>B~f`-(7 z?(v~Ru98uSkF5SJTa^kpKh`o&>%3wCRW{$0m4|Wnyf20dy>Yr*M-79sJy9G(g$zb_ zX+}bS`_OtTJ;)gywByX+-`701As1uZAheFQ-47s|y8OSgum*OhUZ(*lVF7+9IO~^ArZ)ogNQT)fMUPX`tQU z3tfU;&BYUi+AsQJyiI=+D*2jO+XK**=NaK|cV9Z7J~f2IThFacA?FxNFH-(^Rmf*X zTxEFBL>2PHPUu|V!UJERTH>r}Eg%wf%DrhhB6DL_@g86C`!N@b%^Ca`e0>@h%?nFe z4q^OZZ1881k8C@j>%)CrJOMNMZUK94=x!=XS)g9Yvn3M%ifeQDq1s4Np*y#>pYr^F zFF+sq5;5uvxXcg`4q&^J6R2xUei;U#n-rtYms?Z8N&oO^_Tw_%B)Xpt)TlD~s9f9$ zfDnC-hVQZ#Q^zicv=?snE+b-C@HE=!o&>N+?s=@Cv4=HOX8XMIOY<_Vm(SGWVoiuc z(bn_lv_i=4E9;J~{>gNI4C4st?RMiBAlaLp`riT5p#X_>pK-8Br?;&t z2Cg@)MjU>sS?KnkVfzonpQ9~53O#z2AKP^z&M6*A55#R~WkWjs&>ba*Ta&avh`Aen zH!~sBq_|86c`AD6^I0-zgTXELmse_4q zm;9CLmh&6tFF`x4lD}S$m0oYsD{BmHD$44whGp{^mS8xA3;I>CprNAu*zY%@Z`n+w zqY^~7j=c`|BtF==y7V9I@lVpb6Q?(N6P)Oa^52&WEpQ2CIzt&!lHuCEN#9D=$pLee zFz>ByE%yPlX9#bIm7^;~%T?MoU9_&yh!UBi2k`lch)^m*v`&FXHg9E3Rz4WS=B>u}sSmRj{u*pA-!Fg({uA0k}hVmF5EkIcgxR8HhA< z1ABk9K}7k2W5Mz-`IfLJNYxsYQh8Ve&+B)8`J~ETi!ex>e;g5P%aflDdXX4D0@eu$ ztLDGa$3RASILHPmQg|ds_w@NB=4si-a*6`ueUH_qWA&I3j9q< za$54+Ymv!+!2TIl&N}Ai!V;4cK0N{e%;#ammp3$_jPKHn*gI?-`pKZZ{TLhXPkjlt z9RUIUojB~C#k4zjNmJ?WAada%mOjth)p)R`LJnuWl;Y1055cn^k@+EmN*1q;ksBF7 zRm%nGG2HvRNB8Fl`NAM4`fWyPB0H*!!lF@EZUBb@ccZSmqL!n{r;w|iAuLo!d3E{U zrdF+H5lVcmtUD)tmP)K|V6)yMyRBlD~7im>a?Qwd-%w*cJnY+5XBZ+8+1 z2F!juj8S*k$P2+rtG6Xm2X{M5+W{A(tur*^F?7ok#ksMzM<@t^vi`3IaV$RO>)@mF z!QZ?-W6JQDOPpAme&<2~QQ^QZ`z*FXD+d z)X^d+(Mrj7W$rS^`IGSlh21*okrannXLeOu=AgA7)bjJc2}m-ae}7oNlNaRd7CXLMj-o1Eg!}3Z?FXje5NVOztKp{lAuv1pKd*xnaXKEjJ@la@3<>e%%62YS;@x z0K)73hdk#u5A=c-*1;}%$t^nIfUU~ZL(*a_SzTC2w~Rf}tB3<>tCtf)KCkb;VQ)wH zYguf-;e_>a|U9;nR*ea!2{`ea5te<@dXtL5(@F>8 z6lT|rnz|IfH8~?eKpN4Q$!!`})>POG6b#{Ph!U`Vk4c_3gFP7ZZeMTUObKf#e3<7< zpci?c$8X)=*{??rO0iv8a=I`5vRVqynPK_+xE=y>!?O*4)IouTdYhxO;k~N%wpq5b zB(W`F^Pq*PP3duWB(hAMD=?y-G&JgLXSuJ)U|`aNmC`@5N$CxWi>MeiSCPJzG_Jb2PzdCY)}&{N=ysYWJp&~OmT|@a{0Rfcshw3 zayP^GYC)EJI3UTQbhi+!iWK_EoHX1<^|y?%tRr9O#vf^Ge^$i+>Wh~K{2=1y;O@bo zMAtJ>c=($w^yNZX;fZLsP0`U(&wf1UAArK7G6qxeQI~U-47lc6Z5945)gF-i;s<3} zi;AJgXiztq(5^3!1f70gUi^y2|I3mMO-MZcQqB};BEH-011i07TJ%^$Kp9SWPEauQ z9ND7*F0t+^NXK%<=)K{V&2nI6&=R6`dNCDrhVC<{^XtxgnrmXi?`--C=6`FEr0Ii7 zl{@WdrMlyJFiZRM8!e`N#aqq`yo@ z3;a9pvwuo*mn}YTZg)b@FKq++&ZwjH$<)ggA+McW98CDz$TW+!vkDimAseYZAC)C0 zK9elvePmthUrY6;4q0AGAF({ABbJ^(=jd9ylG-8rQueaU2Fxh*e58=zuK=$1UF_?D$|_-$%{ZRLTx{E& ztWY5bPCna0`}8ho;LLSTW;pebel3P!DBiOwwVfUhY=JSg8KIcW%eB5jka$=TLjG@nzly6tWez71C~pqzChLP~G8x3-WZU=Nwa zde{|+kgBV$w+F#?gB>m&p4trgVvaPs4ft>IM`cG#9(3gSIxsnJgdOHfz(p zY!XF+O@5l8KKzjN%lvP1;TLV4T7jay9_h||P~?@UwR_SN&j$3fTPKs3gkcy#N_B;d z&Y&`Yh)ud9k3AN!4lcBhxR|o*gi1)>lo<(fV62cycz_0o=XegTDDFPQ524*d&Tl-A zRs-LK*%k|}{U4sbJe~>vkH2yhDGH%teJZz{-CyFQi$3p00$ch2hQ z5V$Vqd{6ncjDdxKWAM4())ofJwK3Zy>Yr%Zq$6H&`(nqY+bt3KxL-2}BNHM&S2z%y^Ll%LQ0u(maeG3Mo9sZFgN>dKCp|J7tq8J(X0}K~iz>E} zGk1E5&zvhlnZ&{kz)uQb06*v<^qlTm^?~;?m6RWPtd%}v)NK&y)MQ8+?ipAn=Pc$- zF`voc^n+(FE&XmI3oq}rU8;I5@6P}T_rT@xDEbKOO&(#9GY)v}RolU5T5kcRNF?f1 z{JLoFa6VxrU)rVv#n`c|Oh*@_m?xr~O7a#zk`$kGMwT8*FTY~=ESc!*JfPPAK)f)h zPn?+%9H))cq3LD6W=>_myQ;T;-Xe$l%>z%ESBS@N3A&zeHe7R%Z4;c8*2V8+oe=-P zQH993NqV1;yGFqRm{aB8YIx+*6i}Y64JO!gFTJzO@<3;(6Uo#T{(MHNRbLb># z-z_H67Rbwrn9;}^2)mpDQiXXQ4mF9adPkx~m>lZ9IBozCub}CMDM`ek!n&)MN*b|W zG6+}e3@W9#yVrkQjAFK){->pW97wAJbeK|b<&1{f%Yy)-i0y1L`6(8Fm1vxnT8YjW zpoGedMytK1lHQ|Nj3Xl!91s$lghbEy=ZTf7enJ+{B~_--m(EPLx<(o%=6}7;Z|vKj zy2-s9nq8|~UK^<`Q=Kf=OOg?sMR*my9dm9*f-T%N+>_SaRx;&q)of1bQvj=I@C0eT zu%{~NV9n-PKi^Z!Qt4PRV2g0l>Q%<8(0ro{MTO>Kx5m?Z_S+J9LoOrx{C{6xemb+a zroJqO%KtK;HvH3bpyfO2+xZ&%fo_kZ*@L{1>Nz?+s;u7PnAHJo;44gnFW{n4kbCyS z7jP|C?POoIao3dK3`k|gUTz!<)yQ@QO za~f+h@=Ys^PhW@hS*5MJ=hHHu0KP$gEBhB8xwD<_hThx+;Rk#MXm&lo5?q?ku0*x- zfX$4#;iZk(enZKc9Iw!imU#ooYGbkQoKs|f`gcG3ul{ce(P{7y2|uTwHz>{dJK6AE zw|X;YJpY{Fo16D#`t4C)6GlN}{Q};_zqVBPf-_HG+t5mFctD6TrQE+oj7e(-CkmTK zt<){$X6An3Aav)bcSg$t;!4!3Vx=`I5>UG2Q@KHZcT8Y-4 zT|pEht{?z?r*C6%&)#oGjbB`$XB>WqtJzHxk1O`IUrI)`o?jp}dUkAf{ zwPf_%g}(_h)4dn;=5c={t_=O=3#0#x_mUF4QUGeX_GQfB)9H>Du%FPXe$z7l&ekQ^ zhAwPVH<}Q`@7??J!BUmzDj1@}HF?|*vIClKj%M3e*)@g;Is}s5ox9L#u~7I=TsTlQ zJbL|{Q8x|{>9P)_^0G*_F4H+zepcQ_n{Xmo!X8%_ho*vQhj)=Y{&hmDSzXcLBq{Ow znv7KkvF~mY+%dR9bIM8B&kN9~4S*#=3o{!D4rh7!|DJ23cq3y=)crZ>$`C?-N!RIg z-b=Q(O**fcSH?`_OeXgq3#*QB_*xCt^lzUA$^8cWj^4+gRgqmoKGo+VvR2r@LWJN7 zCXWLE+yA7V$c0| zY-e15;S{cIsjEtK%5=YdmW^n98Jtv?+dLCm z!=exEIs}EdU^2{7I#m$QD`8)p>u|S`-IG z&@N1B5Rq4j31*)F??y!>EADJkMQ6F7#D50|vy4-Ooa#0&_3YmzJBCj&wX^l0e0TYc z-7EV#2m+SQ_KTHiLFqqPhHRLK8n2~KkllX|kRrF?x!(=Y#>ZmMoH5zfoe(+>s8>1m zrwr;n?cW52$)FxXwQfp`5JY2F-ElZFtstrIQ8C`^@lOvoO6o7nqU2$arVU!XjIXlAz#R1gHvi$%-v+O7$3{ zz3A-=`406laij0n{nnb(nI8YqdgoZ%zei5R{_QJ^%Ps;umndZ!1UqtqiNF)L-zK-S z`!hY#EORHNp&IS`%1)47rD}oKpel#PEq1pK>!ddY_3Dr*lm#9U)?Yc54~sdho&Q8D zrh17u7Q=sWz}`=YR^us`&)Tz1cDmSJ2Tkmxc*A7r)saiP0qZ2tb*PafodDf+?F=TE z97c!E2%nwv)K{?za0|X%)j~M?ISRN1QF=8Fha|3s_|7(*Vd5z5Qlcx>n)I1~NuH9` zg=uM6u2JMgt)hccR>UPB&u{KhH7eI_C6I0w99h(R4%EKw? zbAyO%&yuji%k-Cq*2odWZOK{!{J|Aj#`&f5P*Oaes)& zW{rGV8O`Z`e5S`B_b4HF_>F_E|LX??I3aOhI1IXUby{7eEaRVuH&=up6h=gHS-w)k z*G;2=c>l#M>9%JYRs`5G$|>BfuJ@~dpXg3cMHhhx22n0(I*EO<6I4%4>Ci#ZkuKn< z;v!!p<6~xWa|}##^shMhsQxMI{c>cdejfG0F3rvLJQJTp?8<{z{_c#5SWtq@#eENu z7Q2n6z2Oa>WhI{lnt(9_A>Hg*&|WNsFDUzV%-XL0OR9!5cJjtKc4}>l!W(mBbh~0& zkaC<(al0*F@GP@Rn7<1RqdV@>Ubk$WW$jV?h39-OU5aaTq|2&+A3%lfXB=X5cEkcY z=0iB~mYy_DQJVoR`C)czU58mYTqrcpNl`J7NI zhl?86zj;4uVjzST9?n!;(edo?tnn(ov8D8mXU=%p=>oSd($4H)rsPSOEXKa*`fy8rktdt87NPq-;{uMi8uI(?({m z%x%~v5Q-hiL1=;q1=3J3Gs*`Csmyv1xFjWi~kUNp0bjiMfa9%&j z_l3k<2)!(84U&#Uq!YBh4D>UyHSzPe@>g66E)_@aLp?2u=ZvA5mbr%aG%E;$e-gLE zj=UnL!q2$J8@e|srCn7S>nGMdgeWeIm%;Mgb!8F}60>-ht=+Q9oW)Y#YX*r`s-q)@ z%UZ=XXo3#sZ_fzM)_(_&xU>&a*}PHKiVH=2hv59pm9YGgw6Nh`&?2fuQ^JY^p_6lN z%IA(L(%2V0$=>e`BWzBbxpjt+q{z*^Ji?rpuDH^w;4_ai0!6Cpx?D$5_7%eFRla-cf3ci z2Sp73XK>g9N6C*5P!76{z$}|-e~o?^2o-Xgj)#Fy%%MNnC#MO#h*48?Ct2-aaSR(y ziDjho^rE(swqflrqQkC06x|3n3eA4=s-1PzzZ@{mL0Q|P;C%THS1*kSgVW~F_m?&? zFw3F8T`1tD(Az7T9r`G;X~51)g-l?lwzNAlh^&8#xocgWwybfBOC*Xx`W`WO|3{m1 zbNiNi^((=%I(O9Oi%u}AuRdU=3W9mir@?|%?RcBRqYztkgHaL2f+o&+ax>Myl?|mt za&Cw3J4>s9a&Hw{1@bZG*oj9AA7BYw;RdrpW)Kpn9g>!h^d&KNNb^w9RGja=j1# zAz>=Na%_u(z6ob>;M$ii`X-nE7z1oIJy(hP`_6xyFXG7*j7-qKu)*4@L-JQgjy~$O z@Q3|_9{#h&*)IF1gE?YD4%c-S`0pMZUusz`Bl2)*%YIMQ=`lHVo9jp)bQJfX3A#vR zN}Pqw9(S1|(zk7Q)J)PwvY?{BSUY0=lbP(V2cFe=|9XKleAq%MW<0eo@uKQ4M!$T! zbPO&i-lNkNcL0sXvUk$ZI|($RO=C{XYHgPO&iYiR+JqK;?K7(Do~@&l+&~an@6-aV zOs!Xan!A;_A#z$m&vO77_E$E5?rgM9qNQYU?!79iNAH_n7*A0dJzzfPm-~f`^Ga27 zpKEG6JoWAET7F-Y(nbj-D_IOqxwgUddK~L#&W`O`c6c8(^aup&mq3Wd`f94&t2s2G zNzZvlGsfquGhS=QKG;8M!r3yPl{&ufA4bd;Lmqq4SLw4uZf8yWZ~dAnTqe4{*f_ek z)zS=nhI)ar2`)D%eoC7yT%IcE?s$CyC|(@ih!aysLnyP{*LkVW98AnZ z8vy96$@Oz9795+UMEm*q2h-(%OxLj{k+tf>Bi9w06*+TY+C6J~fiH>+$4)}9c<>75 zg#l*+VhO6xK@~8wDbK!=CmyjeQz8rc$GjW;60=$tP(aqXMFh9(```kOkWk^9&y(;yDOCT@V`|n-oM0#6AXUJ0vD1>g(o;ph~$@hC(D#v6K5>Z(@?|I=nZ z;NDTtEdoMlRr6k$S+oFyWFxz7g<-22VUs{w*GUlR z{?a96)~g^Ts!)oV39r8FZ;E}h4t-+-S0?rs)ylYV*!Ke^#AKFA(a|%+nB|xp>`8c~ z;~4;JsnHqVP#HlJL{cx`KB&vp?G$Ebj|wx4z_6-QF{v6-OUQPHaCq?6i#9z8Phwp1 zqN{)SCB8o&Cb1`3gfXR#?v41$D=6nSxzrl=QvUM`Ey6n}WeT_Em5GFnq3< zy&RE|yHAS*QNsfE4c=aQPZ5*$iDJX3v9byt!cpkuF&}t0X|{UYEXtmL&zLTXj=;oeXiWkMDOC2d zLZrlwHMkQyqoln&fl6E@A=RbRlbrk#PIArhU-3ysYx~q@F39{b~GsWM+ z+BQ*33)be(C;y;OYvOXGV;%U7$qs4Q&W-8st}SPuq4vLfcIJThl74ZMUdEI*NO~k)(#Dz`G|CRYuPqrT;x_;ki0kz#-cL ziO|d3%LX9TDk8DCb=oB|zlLxf6lzNiqq3G!Ta76hS~-BrH^u5d z(=V3+SmxV)j@nk244owHE*mWm=(K}&j57YTJqAjB6SR%MQ-e^IU+Zc7hmNlDXb8*D z4cf^}#+uuvfM(6Bsk?*cES`$KKgX-dS5+v}l@^-G&h?1s1X#Dn?IoU7i#xJ#WOOue zOS4GC2UC$a^iA^@xbhdQ=kybqJ;w-m5g@mw`M9|2*W}&jT2T3z#1up-j`i&NvQx|) zw8Zi<4v>^+HW1|Ubq+O`5@K049vHZ0l|4!T`qSg#_ZZT{nj#hZ zQOwd(?)`(Qg0*K~?to2S3^o73+fRm)Ll6&zwrSp(Y30!AwIMCFyhe-zV*3$+IQZ}1 zQG3soCirX6Kia%aK8bJ_4c1-Tjs^EtTMl@RPlu{3++X{DT7dB9cw(tuh{e zU2@S*65(t=o@VzQ=bVut^N*I&Jpq!;cgKry*l6i_(lqZ=6}r%-uIJgyuL;n9 zqhGEi!I1RPutl;k|5`KyrH13gOa}p+tFf&-RqYIqEFY83O8y1u6O-WRDb}Q*KHym! zFEnBh;Iw=cq8#@8)LC2@O!Hy-paSDo2&)XuMqHRY6$?KNIG=#RJJc4VGA>?%zh)Bb51DkCOTgUEM+p4gc3~{T&i~Y5r)Dv9ls*7L%5Lpc}}?S9{f)o|-^R z5KqH@k6Lok+_l5R#byp_8^gXyp=gQ1-vj4Pdzc_Mi7>kR6mT{ zyU>v$9H!t4+z@~tiDr7hM)9PL0=NP0Af(G*Z4pB4!=#OEQKxP4D1&f)fW4#a6ymQ_ zRPAwl>HD8mRQgpR0V@Ga^041YS7X1CA)DB1pcVBq`G-&EKH+AVmd%EhH$A6B=r5(B zWdH zry>P$Bte#*Q3KY&Bv|Z;trxDOxQ7DKP_rJa4d^CM)W+R~G*szQDUh~maEjf_B5(Nx z+&;AWFXQSs#J2w!TMu`57%+CI!qw6X(PGLx-EI&4PdF*XcS*DyvFY#5B-MUP!{AcV z-Y%KwtW^43#Pn~&Kfy-#3isq_&|8d0VQs&{pw?~GL*WmacEtn@8^c9z<~&f4{gsb{ zBP5&7>rJw35#n@wY%TMU9w?~?K+D+zu|HWK5-om)VYPeNmH|E^Kz^v$b&ASTWOdY? zV^~VVX_Tkjar@W6-&6d8zm9AwKyw#jL+{wBb1_cw+5*z%&0GtftTkrrWVRlhIH!4_ zQl1F;!jQ|*d^v!6xrK3#ini%W(xd2FeleXw?q^tC|u@UWiKXg;TV2TZ_UJZxy9gHh*9XY~vPXT_gH4R1~ z1Xw=9?`b{hL?Bdj70S{;U9oK9pIqNrQX7ehB~L#>3Wl8BH)>lCV*Z=Nb%*)?RPTDL zf1qX5y^$L2r9d5LG03)yui0;`DH_Qs4WQC{fV*<#4yzG3X0Lg7d}U6YDkIKZpK~N~ zrn~@TbjCDzg;4zA++ijWX3F_gWEf{xGlDwZsJmD2_`NFuTJrh7pF4llmIThNQYa$; zyERaL#X6Q8ws4OQ(v=J0nq{HHW7}SF5`Tn6}%T70bw0#Sear0b0y3Lw~w_i)2@6ptD!?Z0qD(RoOFof-Ifz1QV z+7G*ws$RXDYwQ&zq9y1i;Twt7uU6IBfbD=`%_q= z-7m5Dt@^<4DYMp=#ZR1F!7HyM2j8fE1K8z%6Ob!7HBfe$cLR}PjeR`g&_7YxQ28L( z-E!RnW$rbSK^PyEFe=i9T085MNvRC-DcE@2xz&^@kBt%kUn6vC`9qKLh?PF~k;+@( zbsWW5%;6scx!?X>EojF?+^az+DB%y^Z)I^??$eUWMM1VTRw5ia{2aOIOA%4eREB+* zn<}q2W~`(m`buu1cWvz<`62XJwT@`qoL$yVIP1Z`D^u_})mcB&7Yc4UQ1g5{0lTAQ z$hPNsL98{>awF#!bv!ds$t&u=)A;!k!xHHGEu+^LJ#I?gZyx+);6IRZ-(bfnIXpf8 z=Hph~$CnQYKgu}-qq$W_?;gYQI>p0QlwRLT*yOPi60*(lp0fnm^ykWAf)mxi?K=&p z?>(ML>Yq{37(JQw{H7Cj#Zbmk2+F&GxxHrlLHqWfohAvwFCOMxb0Qa5Ov85U!7&L_zeI+_ zlr(M9lPf#WFKS;ho*j~Z*mi^S!-as<;>OPW7Dbiim;I>jzOA|C$~9svE#>Z7)7dJ{y9Ox=W-gWfnkbCLPbS0$6x38$H~pi+~&Vut=*Mz|fD+dy3# zWnJ=Id-ypMGqVo%O?@oC$5bc1mW|PbMN~Cat74|%p8T1R?66}`l_M2%LpC2ReJcT!S#ISt zhoF;AE{<)$B!z;J5raCtZ_d&qUv_K%+{qEy5azdQ5Xn9Go90Bk*RuA6AbOj1n1K`C zxcoC*taYhZy4zszIy#@J{5EXZ5%vbK5UzK*hIM?WD$U%gO3HzjIk)r(MHOpZfhfHh zhXWTlm)S`hW^glFX9|xe>YtFN3y#Bi^7hS3T-+V(PL8ru-opG^{w~=oMKi7t36DEX>_2+&$U1!6hGd0{{_PfSBPCjrx2eiW;ydq6P*&B0ys9L+ss`UX)!}n^~}JX zAjyLIyVSw+SyczF1vUwvUms6o`v%R4ni@yCw6|vf~Stv{bX?93G7Q?s8x#wny^BobT*%Tp1Qz8?yC(#%~{*@}jSGgYLtvM@c(> z>!H@$7m3R)+q}tyEk2S5CO*Wz@zjqas~ip9BAs^Sw>%h6n=kLyh6qF1XY50L1Qo(n z4lBk+H*elNO$N1chUTG;v1f|c8J8wcFY8e~&+v7;X3t6NpG%OQJlpN+ozOdEx;H+g z@6s}dM)!ZjH7z3l9XoTZm6R;f8UNwKuOahDhGW<)PkuwVhN$Sb?sd~k&J*z=$||zw z$JRhX!!i@bFN>n8XIG3VFE*o$g9=Sbf)6~T%A$dhH=c10irk2ETp2o7K|&|kcDr7h zOkPBJ$Rq|Iyo~>sZU$D`;;LJD+s{w(9FAEU&RNHglP@_EW=zO!?X5+4B;m$(Sx z@>cgvQdy*(eDOVC(n00+Pv<#xF+&?ZYUzE!PfE`?Ta>1)-5j6(fQsujxpSDLnDh4O z9)-=hi)cEny%fz8jicG<9lsVcp&+)u8m6-B3j?}V_2TyHVSO>Tk@r|yj)?Sep+J;X{`yLW}@@55M)L<>IVt=G; zb36VhCzMrAK3Sx$dO7kDHP3ntD<`Qgj=Ds_C7E1|71af|+WV2+F5G*pAyeM6rJF3* z(qd=F{!F-h#dRCLtVy*B%lr+% zWI{@92Ts$D#~!>E{oihBo$~lvoB4n@;4YTjlD_gsLRxmXNmcWq-H_O#UHU?UDw|J1 zOu@IrJcfEwk`9>J&vCyLYhl2JB=rV(`>sggP$oXiI#Yz)`231|pNZ1@F#RT0{Iq8G zyTOA(W!+34z*IV0Bw!^O7Xs&=ytt@=_VYl)n6LcQK>r=8X;4kp_C$$j#z{o5vP| z3S+tPjy=f#sX5Gt>>U(TB@b9;o%rbMx4{%pcCY0qlaq`W# zEB@3OVw&8=>|abd_dJ>?jtWx}IGyS)A=HWEW&R!7e~DMR{~7G3@1cvz-cT6#4}9m@ zzu1!Tpnfs@lipdYex_Umd?}pwUG*DiFadQ<0;IvWA=M}N6bIxEKa4Kp7hY(yI{V)% zP-n8Q6!C9=Y*+#?#pTP1Hd!$O@KVNF+A#N@qZiLgL4S%7VNsDTWtrCOrWlw=O;sBj z%i3}1&v*B5TtI}|O`2QIO3Tjpy6d#}Bp!#;NHY!R9p%L{RP~0Ln4pClKX(r)36aD% z>?9Sdtmh`{Bi#$hpE@GJAyNu+?jN2K8pD`8?ZLz5_sRltoZaStl6vGA3y2xC_SUtB z)bd&?br;Wr${wAyEjOrh_NZ_6acRf%J>B>GamEU(oWd)=q-V_Nq9rT;Yf^3hHnuPv zh3S54ZdEqNgu%vjoSVwJH5MqIKMyl)?-W+cax*Nn+R-uhb{1@rJS|G^Lk=~I|X&9HeA<9=oUC*14%4#u}7g9>Yt&)8aI=dl2w%};9~nnhOZh1_PWxSRrOjUS@SsA9QnKB z>C}hDV>YUbHTsHUsPb3ZKz~i7mJG3i2v+Hrn*I!1Bm#!2_-~tXj+(OmTVwd4ruORL zfAX7Vlkf1oxK%11id;m5#cNm?1>$rPrKor)HPgPuVKj8ChHR zx1GUa*E2hvYC}SL4NmqtWTGV1uybpfyph`ayk{TjK$-tCr@ZKaMUf@+bMAV11(vg} z0yMT-jF+fOoycaTzKu;lKI6i_d-zlpc6{?kcxjf*YZzN*)@yI_RupT32)6~+#BaS+4K;7)1 z+tzQ!fA<@zp#iY+tl4Kxm1AeJ&nBAaKd0rHOq|WYnN+gsPI5cp95aLU#xvALUAO9D zo07cl9?+^yq2sKA{-TQ)%kEnrh;i9JsJ{cL$49a=rpB|j7MNN@ep??BvjqY*{XX^f z)a8i;`IB}Bs!1VYZX&HAbnW=D`8Ig7@rj#^3-?OEBpg5Oajl#3z4`Vg>8Xy zG1Lw8I8@Xr z?z@38B;Z zpNs&(%KsB9I+xf5vESsKagslU3^UX-Z#RD zE*+%(pSep5awsLNi08B2gO7A^U*wJD*5Rk<#b%G%ve0P)!8nAMyk1aUbI&1N*S$<)Hz7xe~hbs5i}=Z9ld*YT#B}F$rk7;F`)tOLsD3 zx+Y1TFzFom!btZ>q~&WIpep4Q^Et!s9`$!Y`6I2j%NR!5i}NxJKc$UmhH^P5q2$K1 zXU~?bZ2tSxzZDJ9X&TF_7NJ{6hAO4QdB)g~spZ-Q>zKKL2Q4syC5XfXcs5{!P;iT( zSX+nEDKFHiV)I*uBbovOAtpTVYt~X(&J^&o(e?xeEd%-)HhRR2D`zf+(H=+N{+?eB zHK(O_9!7p3TftE3IT4X9jy178Rb;doYB*!{O*Bci#Svf9pqdM>4lL4ompMAN+(`4! z{Qz>KPuf@pRpb$muqFXoS~w=Ocvr%ufaIQ%n2LvF@d(EK_oBA2(ycLL6$tVME=N4E zLl)6Lt{Z)#Wa?=RX#mp+v_X$-67i8EbF(F5@-$RyVVMT?_oT8(3NDH1<{92EgG2u6 z*YcjO0;M8$9@#`_d}6n81h`njjf(TPxtgJnMd`#}-gk^$8@?j^#ONc7+(ii#?C~l- z!bZq%rHiJP#pQ@sfl{s6Vyo`;!Ejt}48iyyT|>WS1Iw z`s9U?oRbI7#3%h0PO;~MS2PN0(*1otLVnL<<@Fu zaW2YvLa2qQFgG~T3VAp__)M|rC6a29$cn&_k$;BDk zWlnQkkkV7lFbTdt8*KjLS_QWD+;;R|mGE%vx~R8ao)|`q6hEOD`+Fh-p3H?o)Zd$F z$eUJFeQT`t1Mw1s(Iv)_XZjz*a=Y^FkwV<8BD`7H#u>1VHwUGnT#rrmhdoBY$Or4p1 z3xDceM!o9WH-x%Bq=$?atslq3XI-A;8xaJ8iZr4d#flrA*aY=8Jc4ZHM|q^r08xB> zN6c9qDkcA+CiJI1^GM7#qHeY@cHcP6uV^%tdo7Jo>C|x~l{~VKtI^8#S^O#77i##x zF@@vpo7fBXHfAm*29WODcV>QU)VyBC78sE=V#VxK!fmu4Axff@UGbYo1;183RgXXW zd+c-8J2?%;?DeYs^tlg~>iILuxWkWFMVqdIPw+^GnLH9Lf8;a`EP9nR*7EasNs|Ir~MbF-* zkZj4+Gjo~VEOrGwPVsq0c>E=3QiCfonr~+@(_nvF7AbI>e`&{3@)hsCuE_;^vAhiG zmQ_QLWaP)ZxY3b}waV|l_oKwvkt`kF-0-twgPFHfmYVcWl)E*#=AY$QV-63pCl}N8 zijZ=cs=SE!m@iKloMCroU|CEC#d^+xnvWhCc#au-Wp1y}&UWnymoCnLpTmglWY_eH zu5Y<@iMV$JNwxYKrT>lja38SNE4up=RVnDItgiCebDi6x@yWM<<(9#|y>0`Ok)M8z z*klvmDg{i}x6^!0FT`Gct&oxoE%CWLWGLBKxxdY2FM|;wN(t+ivCe&(kl!q`*|h$l zU-&02O{{ss%u=RL^`f0vuy&KUtr_m(-?y=+e%gvj8C)3>oCD+ zGkxG1QtvXY*-2dPwf_c!>$gm@fGvC+x?kLs_M>qT9ufJwP5?H$N%%U1u|`!;0Jixe zHPQHo5g+3ZqTvTq=m#all0^;te|ZYkqcti&BN+isU(D5{B2E=#@&XdxA$8sO)#^;u zEdE^4mJRWG+;&Hwd*Wa_OEqt-e?wSRbw;NNSR7b_VsmtHr3-RWQ5Vw|df$f0ZAE7B zC}oiQhr+hu^1aC_xOXwA=B?hZ?}gZK`*@qeH9g{P+GLmt?hN~QOU=|OO@AXi*a?@K zm7aalYPd)^kJ5NU+6j;>zVvk+J0b+J`7>EzC@Av|;w(GcX)`KkD%1GnK*stDuF5Ct z-@%*|!D1&3oL@{P+n5Ms^ABYOpl(}#mc-LRufqz+6p`DQ}GCaqzQJ8sDkoTW#_j^Sam&( z_H8aTK~h25=HrR~rv;EA+_93G+~sH8IGTUmR22Z+av$kCLJO-T)T#PMQV$Oz#JRmg z0(smK{qBghz~Wn}(mL51{NwZAyNXWOm4uZLgIr#TxFu~czl>bJIK27vk2y|bI(6Fk zpjBN0<&9VqJ^fqbSIQ#63wP~c&}Nc!c&CrHQ3iN9_8P_fO3f2Hf4Cg6UhPf)MP&eH z8;!H}wqD>az2l|_4yV0N1is5!WlOBuGP~Ilt5;41BH0KVv(oqhgC{5Oi*1izjt@Ea zI#Fg0cadLvf>h>7GT8F@1@s$2N;vX{l-T~Q&%(wLIV#8o*3IPz2~@Jm{Pt0%5yDTN zke0sTkT{aD?pCr@{T8W)BTXwxwR#u(*c9n(VSWIM21&9+($M@t9^9Pjr?#ZU(Qd6? zgS9VwqTw}LX7go`(TmvmxNOE3X6%XCl3lGn=oTurHgQ0XO`s7wkaXfo)E*HoB%RBH zoalSVt@yuZr*WW|268LDDNBeRII1-co`*)dp1*%T%*_&nr#>ltqEz-T|17&Q^_bPg zTH1Snc2u^TYoco9S|Y6z9q()9OOD^2*fO1A443i`g|9$#GRXHbun^%tH=l0KRn5`K z)L#!HKRz^LYlSHu5EDBK*(rtzi9|EUt0}TkVN+kppO0qpSBPI#L67;)WlBzO$o)*k z-MyMzYq3eOgngbm(pZWjQH)M*a45f;5i!huUe`8gHjs74*k=Hq-)j~DavXShF2QVTo> z0)MUedLNOXO3c(@TW_j-=)YgvrX{F1ZE-(JBh%>rw;ck!!AgR&=m_*eNn4=NDp5pymQljn`aui&GCL<|xe(}vuD!kpxEWZRukR4b+Ufhji3Y-C=~?E)T1bH1R@|;#imV9W#ZL`Q43MDf*LS13{E#o zdSQiJ{(8pGd-(^vC~t}K<=~1B0TVE~aZtTZDuF6*X_PyDWuX|ZNo&?5HF2rrN1iYtWBNT+5ISoloqV0 zwPUNNoh+-8A6nh%PhC=ZQq|bdw)R9vBy~=Q5;D2?O5nOMMCoHpvyb=08ev>xLFNsX zp-M7LefqukDcsN28Zv_qavv#Q-%uM0x%R0rcq1;;U0x)o=Sfwo$?vuyX#E&guJ|ej z{M<9LB#$vTTjE6P`P$L>hB&*xFylYI&wKG7qBYqX^OQSU(|gqA4o^;cyp`2hbw+}v z)&h^tyW@`r?pZdR_J}VE#<p^=X=ImQtc&?;bYDkqE82wI?{V#~^c?yX z0Se#%vNM}k%w2w^xl}uvglE<|e$Bw#3cA@26)TFik&4n0-TCUERG31M9rr3$r8ZgS zdGJcBU;|eI|I;syyXRq7$?Y{nxv8)6_ub3+q3c!md64a>Z+r7HqgXUQ-=U4{xa`|m zGw!JK*Cg~+)rr%JmgtYFt(h4M&K?k&$ETp8TS%>Z_GSFkKb$ci1#A1ZzkRPL)UGJ3 z(O2L6BnF$LGNQ0NP+MU#-pcolXjc3moe;=`r^wP2k`|?XBISa$q@qGSq9i=5^EV{9 zqg4gl!)Z#f-CHvt*K#qEqkKx~39^9Tf=xr9I~>te-7Yo3o4eLKry)Wb?DfH^Yx7=v z$1?=ydBr%xIQB?K$!cx^#QB56N=NyJn(_}VwMxe!-w3lPBF8@7Ev+nTwpd3dwhn@r zcaA(@d>Q*};|P7kmcl(E+>jYoxG|_}I@d0@5@J`}VA0Ton49+(a(OL_Eo0_K-MK@R z%22X>)*{+j#k8z|_0e2~=Nz;K;7YOPJdHZn#;5HaJ${izhq@mLH-~V!W+wlmpe$qt zC|WT6lQ5@-!o430Qz!3o#4a2;$9yU~u<0C;TfkVi@(1e_Ub+Hz(JcfZ%T@87f50V7 zLr}367)h3v_U3sQQc4=<+c`hvKf)=p><&7ng)!$^J|JJG5;PQYuyP*F+khk0efLW6 z#Y}-&Kxr$62|aHmyYI%I-E&16mKDHj%3V4MAmR)u$X?cB{EzQY^jTp;X-V~V^e`#b zYr(ylvY45~_`i+0#&Fc3?Q8aY7*SUZIC{VP_0!k)E2z^s9((L5ct-X4U(daUS#w?x zQWXft-3o%2lrO2#%E&<;Y#ILWrfW+0$RxYEuR)K}iIrr*)9eb5!H3DBA?}~{&B;3d6tW{Bb!ci3tdy1>^AC96pTMvvx*_X_*qcNvvSFll&`J7-zDruQ zSGCdz@Z$Fo^D6Ew6S4wmXBzyBnG7m3(2bfmCQFe}7vq;1A70B(o%ZvO*@;4ptw5j58zFX7(_SHY z^ttw2(R^LwjEn<>{BC(0aEe)|5DtMd^{Y7ldWSA3#V+S^0jx)8cBniU>X%b1gmuqu z-9jo9 zxwEXH2$Az)QVu!Ic`BXJiitT*PIJf{BaAs8<}fVBVdOBU8D?gi@w>ae*XQ@&w)@)Y zdfoT^dOjb|$04`yLoa9h_Tza<7(dBYM{hXwcy{Zxz@agO=(IORkIihSS@M6Us%)M> zT&uqlt~D*4?5WRbj&tc{&cg}!O(So@o0K{Qv#=yju0LamWTK8xjR zfj*0}fuV~hv#-$HU*hf@*_OXu%byY5Gxy&q+q`|5du-G$cbO>m0c6BpxI9@we$f=? zn`JLcF{yPO(G&2GO;}D|T`s;l_3L25O6CEmQv(HIl6^r`{?joPt;<0Yn$3eW2v1ub z2-S7_66FWVt#hh~6*8tVOw%*;R77=^fGHxCymV1OJ0)C6Vnx&t@`3uN-s4|AG}#Tl zxw(|i1F%!4hKktTUT@|lrZI1{p_@OW;N7ph6hy}z>qHw<5?1cgJ)P?^*3O(*0Lo|4 z%$QMmirdj70S&d9Bdaw9s7;qa8gWBg-C}^}zV)OvP2+oO`6uroU0obcO4mhS3q3`5 ze2xWGhJ4F4B>G@Xv{WlHh)d=uL4|ySPh$$FsqxnBWBKqn7U$L72M*8d&y}tzMXJdm zV=gTr-_)g8`pDQ-jMPr}sB9VWKjs13WO!JQM-=Olh|3w3dhbK{aJrQ=CRTe2T<}C1 z6Ja3rINlA_JdH$DPD6ZBLdi9r6&7paGY}$oJ*b`zv_$PC^@HEbm8x!e4{uAB!X11d z_GW2|(&%@sl?L(KSp|Zmv(Q+nOx4LSVK?8)~N%H%%uJK?#m-3<&ybJO!&!YGNgBAs~1EEha59h77#k790hNG1M%WZIqC3SI7 z?@9jcu5CnjyL&kh{OfPK98{3Ez0kQ^Q9dtUZ&)T_!c3LS+5{XJ(W^;#5tccK>_qgn zdF2KLf`wxnYDRfuI6I%so-t{4YIbX5|$w{Owa;)qtr{5bS;Iny#TG)r8>K zb!;&OJi#0WXe$Hk+m>0H#Y3eEWDW3m*Voo_E1Q2Vx=TsDGnhVi75fTYf~_7CmMQ5< zJIpJz1>jS-vE0nn8cc~|YyRWs##nB3N3upyD9y$Pq@Qm-ySbrH4XF7`qb+Lfc$&dY zH3Awr!<|+pCq)~}Deg(RN^v2GSx+s%wIjGoIXK*)ear*0?x`sq?=t|?WXIU;L#i6$ zo1F*IC92;qZasqe7ggtLKeW_(n19fvz&I#%;K zX!(dYBJ)bQM;>EOd}{&_%Xn&M1w_u>3hnfxZr)2>{gb(84?Ub4BrfUagQWc~k_4*xI(=4h)X_R7y3 zC>Z)w>aB&apA#8zomc+x&^yvKivM}1Kdp0y%1C#f7mK6MMhZJ*_{Coe%)m#F-1A<9 zK?5SF&G%pQGnbM+*@!!4s z@(l3`epDcvALq7YSZ(5>HJN8u%PcIht$1!H*7QZ0!z&IL2S0jWnts-eOrOHRX6KLBd87PPk7nN|cTYc- z0!!U!4vln{MuLY5)_2UTU6Z|Smo<)kl6h%#V}HlOIf^Fpm!D`e;?TKZGQ=+y!vnux*f-qez3X~+Il5h=D`Gq*I4HnP0Z=pRJ z!GfsdExLV!9B2aY=Lax8X3CZulnp5JP!;SC;5d+B*a=`P@MVhmReyMVnZ;D3mMSg+ z@15#gDIo?(i`G7u(FBoVB-RsBfs8F1h1=QA!6C`(Gq4;}&EUq+f_p*?Dkh1O+Wo4P zeMqsl!Vr2rZtkXmO-+oZ;e1EjKqwy$Dz7X_0@sE-;z%v{@)mvZwWiq$iD%4HYDmh} z4c(=%4nL-*M;=74(7pT2%pxZt(+#qe$G85Gdbij-E+*&cM(o|7!55I}c|>hc+``?s zVV5|bb#6P`A}*#h2{qD$A~oJvHj}v~V4R)d^A()S;TQ9-cYdbc&cUB>o4TtRT-wAC zx7Pb3h?cEd;F=T;+8;F|n1^RBK(85~&8*Qk`$nFoSe6X$vk3Wy-8O571}O9bIAAD2 zR-rdmV(E&cyc<3O#e83>9LKtD+YCMeGhHx#-Pts(i?^@^hbHa?>0zn}b4Ky~udv4Uk|xrCKBj|^MAGQlA( z!NIvXgHbPDgd_zONK&}F^2qO~J~^5FMTR3cd3=e-gIK}M-uVg^%8_5E*bWsRmUtWh z>TiznPuN3YTn^WX(2*wRKw$W;&}&`sTh9!f@+d4*zqKH~QefEKgw-t$#IZqCwBj^+ zWsja}m&A$$v;sZf^orE|*w_gt&N9_Pg z$0i&Dt*@<}DilLXibVWMN^BruZ<9J)!nIoM~vu~{bkro+u z_(p8kQ8UC_{&E{y`msHO3*XDq6tRCL)~fUevu$h2dNL%#l~aCyHB9=RaRT*5#Xp>2 zUN;j&h~;13ez<=s8K=t#yw}J5E7^C`C3t%+8sjGLyZbN3E963umlU{0q;%X`+B8{f zB))cA_ftWgjN$onNh%MxtVtc-5k!BYpEn13<2wh0Sr(}Q1 zUMiMx6`9X%dR~J^R8e)af=}voiL}^j2}pTlY0jQ#=E}ZV?=&V*9&~>t`GkgqbO!>` zSL87-o(!S zUgX#S{p&n8fnmAD<@l;jdxubvBA`TcG`QI9p1QIP_?HbL1a`e^7rSep*DvW4vtoC| zMFLyivN`)34WmcUNO$ms@%V}_uuh8^x#nu1C|J879!A-`9%W?IB$jMl*>NJZW)6F< z~)>vM-I&{Nu(Zg2w z(;@>eY}&O8t-NPPq%EE^+4oo2xf4f?(m(1`|Dg_Fe+%K5G{jRO59}CRp)knG)8st2 z&)?XBV2tkAA8KuIa;vxXr+CMQH|okRYU6gx6>)L!9>I!MS|bcX4m@%>2uAQ^O$Dgz zS6S6Ew#6p9znk*%F(4#)KfpCb?`tkw8~CX=wsm{&UdOgwl7Gas^-umPZ{AG2)LI5r zH{c6V*-m}D`Z%}7sQAh_4sN5%VyD?Rz2yiqs<4M$s>HPU#@K0BU`iQNnJz8j&ypK; z^>|z;Z=x2V^|2F!bewu16!cfgB$-wjZZLRlER}&Cul1i|?YQ+%slMmpv+M1R6kOEp z`ZjN@us^Lmcj3I<75pv7d+1*LtH)`sE=4{vs;-K&?7fQ7r_(K@P4ik4qEQ09tv*Y_ z1c!#!Ckt1eNho=ld7}BL6D8wk`G;p+aBJR06HYXX?QMM$IGo>J6?O-WL(OI$7$90D z<{Ci!YM0Ivd{;gy^gDH(F-Qxg+kLhZ9M+-uhDZI#>LxW09KYEK+pGFy+3{uM?eE$< z=AJ5=I#2`SL5G(694M@N-vTh{+VAz|kD}@AC5@XWgE8iRTP^2Om{a^8NGO<`1fIa& z5J;J^!=HsQ0W87vU57qAFQXNy_ug8lWpEB}C(scVn{j{Gb6g2fCOYso1MdXUouqp0 zNl;cRYV>n-0eS@DMt5<43UQZvL77D2!+lvQ#0}$yjhbP-7DU#E=F|Zo`S*#HpJ-D6 z){xB`Bj$wCX+YEPL%T3TbEKXNU<_UMvXj@Q(|$R}wD1h9Khej>`w4k}xql&(p);m4 z8_N@Jt82v_R1)G4Pi`h$j!4ZEoMqXLj2Z)r!Dn&kRC2;d%F2rw^i{N$rqE3tdVOJp z%b2z976MKjh+XOzT7j$PQwI@Msdif5Va9u2HV+Xu-=&Y42tRPagB6dl^r}95Tnh^~Z!S~s^hy+)bb9T| zu6C;9w0NB-20uD9GYzNOCED2^Yg#%d{X&z*ackBv#nHy~q~hUogobC?Z{~tmI|Y`v z3wQYPi`WhohHLHGr+D9?S|az_7?ItLHLowv71*>K6T9>sEikpXpCFQLVF5TxEQgKl z)Bk=v@b3-hv<`cP?xsYO`X!^0F#kqpFC(MfBW@2&K9YlVtHDtLCh4xOT|Cr=wUC_* zQ|D9v$5yw40Gd9UUk>^hsqoW8g5iefenkU@AJq_9yw_~t@eAXvuLe66B83=cwWVl$ zD9p6_T zllsi?ba?xL`Sr8@5|SLoFxPsplAvT<-8Bng+Ouz7Q|q4BD*DW8M7NDOPBBsIHDeDD zCeAP?Szg?jnWr%^M7s3%b3LQ-@135)5F+AZnbP$>jxN#*Uf3?}Jamg8fBSEXAgqhPAU!v4Cvq66b)B3ylT4$6(OT9_kry1{k5#3r;gX4!@*=AMxJ zQn9ykO?${^>%G`qfjsi)4bpL$!;66r>R@SPh)V+PH?oXw;B5pEE4YCb?YS9xv_4Eq z42v#S%<(L5y|MsO%~v{&(j9Spbs7x+;^KZ+r8kI0(GMj*Di@a$Hf*wKn#KDud&{mze^tzuS{4CPsd@yYTEQ?D^XT|KkGSq5sw{G`m0-bA~1t zv9QY}VI^6z(Dn18-&%8mjb(zJ+B0R69-Z??B=C9N+)c7@Xx2|gnqFQq4HAU2X4t}V zyB=1c8KS0!5|YyI9*IB|W^$37G39J^3;5#UeHPCTz5|e?&H|Y32Y#f1aAJ@RiysaC zwSTsCkN{Z>Kf!wO?wW+#DU2npE!t zY<_wcBfsJ;f#N4PR_L`-#h%z&5pqR89Z-wRKM4EETgD@|Bx-g zzDxaxXS2tH0~QjpFkbZ>ew_`+g8Z&1d$3D;&P%oUDA(cX^W)RxJBz+ zDw?M99o>iDRh1rgfHs)8+A26$@EQn6dth)mqG{c=?|W>Y=H^qge-<(U&<28Ue4Ufv zWy55R$eS={2pMWuVvsuyN$QJOKz~#m(*ofX_#tO0*q^ON`#=>MjWuR)74Re{%FMCe z7oZ~v0Rr=H{BHD07Havtp#{M{SoC&j4&ABN_g-jvbp4GMAVcc^p2g5j`#O-KU~-jI zInYDt=Nb`1l6Esp(tQb}Szd<|FM$ET56;y9(*?DBw;a2+2BI;~P_Za4{jk5RYmvuO zQ0uxgc;nph!!DW%g8(hmwO0IBEUb2F)oQ__GvLh1@RjntEvI9xKH1)rJc}9$`(84v znjdnza@jPPUAtD5V}ch)ja<(g?E-{cw2D@Iio;+Kv*vTcmG{q9I^c3jzH!7z)ZNi# z)LN2K`tP;e*zHS@8^<;uq0csOAKl~o$saKZ_Gt-Cq&ptB_;C?q1mT>ASZ;-Gfas0e z&gwIs%F-FuagFCJJse+7v5zYv@2Z+j$fdjC-u2ZSno_!c43P$VGp8#PY~JiO5^R7r zUUSZCiwU{~+tU^v?kF;|2YoWO_QQObiFuH1CgN*J?N1ZCzlXU$a@CfH)D;^3yXmI9 zSYh|cljnc?;V~^8FIZ<0;yZL7UHXW!$&MSoSad3KgQHvJAoX*!SVz8B3c6`7-xUVg z04{MUwZo@}0EU`hMw9Hx%J6yT7rcb`m$!6?M#$8{_~M}krovNYGCla2+MAGh2m6-g zBd+PZp-LA-K+)q1v`PE=R*4PELM(H!a%jNY{1?)DER0Ys@ph~a;0RfIfUEc-9+0Wi zc5rT@VX!wE-dfIwDof|*GYQp_D<;L`k)#KI`Kyo5Rw3^_A)!}2tMBt?XoB*;`-Q{r zv?c}ratb}8ZWP6_B-(7Hs!)s%P_Q+HzMC4QW3H`FD6o>7r#7<5bf4>pMTk9Se|5u_ zhVPZqQPN?5@a;x!%4P8djQ1?CDz2H;!=na^6*%~Noe#(7+=Zq&+sA@#X?Jd%C(u6r zx~LkVwIg*L*9bW`<)UIt;=KjktJ*1lZv$;<87k_^DZjEDG&~vctE%pc^8#``e^s>} z3ec%%MOI1*%*GduPRD;l71}$~@?CN8{LZW9t2Xr0f;s6a3Qui8&7}!RzB9Z(v_`1(GF&2mt?O#y?SO8;H(De_qBdxo+A-kBh$K+1slwQq^J zd7W0%2{+eL>d0*iz8kk>B%@st@Diq^Fw>4pSy2CXNk@>%#!MqO)*7rQ;Qi z2=9Jt%&eAJ3zG1&lw1i)Sg{tu1k65{l&LYc#AKIw$%yJAkEbY2ma2`CVKIMM878`m z+c5+BvYMcYQnhjN07C${@*1k$A4A#<&Ke&59jPFxO@mjXHbg}a0Y-}gPSNiJjV12+ z6)NPCfvCg+4j16y`?_3n^JKKWohl7m=8gtRx;O9%<^}y zv-g5>c-h(K;l4!Y&rRFbRy%d^k}Ywc_LC^=+EoD2{}q3CB>tid{QK%@>AhpHWYc@O zm(U}!*i#P|3qN)4Q;SV5J8gO>hduZ<#Vg$O6_ttW1Yr0ZimXyla>sXzP<+deJEUV> zq&~)yOP0^bruhoHd@ZbNwrgdgZ8q%=}0%sUso7B>^XaZ*RZk;mc3wqGq;T9B-L&;jCRRXEj~nG?x-AC^rnzUAFv!=sJ{1 z&P2Xdklc6WP%@F3CAP7|U1xngUmlIX3y6G~nm!a(rPKLV9Gs?*Q=t42JoyyR9aV>m zm!8#w%ol=W^h`9!HdK|X3RyofgI=Ji(>qs;{?jUL$L$1RNS+Q2Q!FpQ;;nbpTk;Nr z2(&3ziFmubp;Q9qI{6xnmw!IHd|9uTXR35~4Ya(6=?{yKj|5U9HvVW=Np|1e@)ZW;a0D;vCzUM$`VVaKl!90i}HZc9olxefl*DDHKz@d!56iHE#15D%+<| zoq8kl;QL2fNMN8uOH0edj}K>$?|2NC+$B6~(EI!Ej-L9yFYe^<_U2!rUo9dAgIXvD zfcOE;l+>F$&t|GRyp(3>Q@%3zu<@q6S%?`|Cz9G6N}C_7JYJi`*L*_#>b7F=$xDeI zbPBjJs4Nz~*-rxCJh54~`6s2^N)v!(lT-A;%5Wd07YPn)|FT)BW+N!R1r0Fy4eZx< z`AygVJ^&as>#^xNH|LF(-1793k4fj-MJZrrv3wq|m2WA(Kiu__)#X<}WH{B40jMD% z;E?1j@FQQQzm7vjgC~0nBQ~FhJgr<_BX7HDg%}Y105OJ)Ypond;kSoMWolG$;^*RHO=%bX{?2e7Qhjps~ z^I>*SBDLVs6&}U_fjNp)y37eCcS)bNYv|M$njhE5s1Yx(kPE8r#_$xtr(7Xq<|K29 z>(W994hlI{@fn2U@%(zmvevWd*}RQk0Qr^6eI0N7edC>RcYSdB33}M|aT!YnR|oWt z`c%zVLiycsTdB5X>EC^6Wac+)*p-`WuqE#2QM=IEbv7bgujgX0^#bi+;nV$Ox{O6S znVoKIY4p=i8ay^rA-NQ~V{M7KqU#cWx^O47dKw7UVkSSC3wlEPv2!`1@5h;JeGT^! z-8}(b){MvLOonOqfg{^<0imgDXz$(YI_y!=FPaPTbuQlta;brPJgeqq>s&S?<6k{Y z1J8Vq|IbMJ@~n;gcvxAj)IP>Nb2&Y|rP4=5NquGqPkvQIYP$!Xz39beQCivHiOQH% zaHSR_zJ6VvJU*nDQjPTPh(m8&Gs-UEKreY}Kh0L~yMXBqS>n z7#Vxw!qtZ4EC*I)valOP<8HE*&9E;;iCPm#k;5RD;Ge&+=PDU@haB}R`k3USZgV`< zF!To&j$GW~MIQ<#V#;a~F7-4liq~&O(WG5(JknH@evrrCp7V`a3x!@iW}aI2(JLh! zKm30zN?l0n_z};n3Up^&FT=$%=^UY2*f+~zODIxN1F(YI1FqisZF0_B%Mr4tJ2bmq zMEc+eBOVGChVh=jQkW{KT1Pg9f?l6m_b=6(f_S~q0o|v*s@+cPe%YUC@Ge+^ze>g4 zFf#GmEV$_gPWVpPa?wlQk4+Sb zxT@4^T*B3>-59Zu4r3KP(*P8iZ@Ma!2%@gO_4caW^ElzN_ht6G=;q>Ok4l6+YFFx^p2zYoeRgCnA*g?I_ zq({5gr@m+%{-V9scFTK(;#qwNN7&}xq8QPl&+5GVl%Vi20{^Goe^~XM$P10whuKW@ zaj61>WCtvQA_a8hb_@dWnq0>tKmGDZngp~R$^r%=&G+wSS0W{yD=Yx7#*44nm&?=Qrwb-Vm$YgP3Bln3c7^${?o7zp zdwArevTjM-wEV%+%N~4l(1Zcn2pTATyGBIxEYIz!en1`EJ@O}dCvz8#xMDv1x_C^t z1->^!;W>(AZZ7IuZ3d;6@o5gvV`E+^5wtvfWj3I{0x%W3PIe_>c`wx3JU}-qrBMHo z%_W`Q6#10g{Kt7%_1jDt`49K!5d1NEEOO>1(G8cmtWL>lGTN$bSjE-q7R60&aFu5Q zmH3uKQ9Y%qciyS-pUw_gJl0gI(HS>3F*4=+Ub2k1?WmoA3jH%)<^I^3oOxh9Hku@; zQ09hDKuTA;*Kghv_}#VD?PeNoC0_$#W+ayVhXD`=`4cN*e)09qORO<;?v4G-*xFXW zA0Q0kYcfkgj7SR%_IfFi4CYf^L(hHk?gooGm%6QCKZ(vo#pPk3!hTg=2I>O`m%^Qj zY&Hm|9CM5Jm}g&34N@BFg*yMxPDf8!&(ym%4xvY_OCyO~{npkA;};f!vcX9SbKvu@ zz9@_s>#+WG=K0#yoi>}ZuB?vH>X4|2J zkmO1_dM7*Rnsm+IsV549NnwWPW~(;m7Irahk}p`SO-kwhkn`XXo$m zN1n@ujckWaX;cNYq2^Mo^s7Rrn#iPaTnVZSY2pDK@+QEluH$Bfo~tdNGJQ zvE;jT`y}^obL3>t?IZ7II^vVkesIMFdQ}KpYeNh$OYm_T4<>LtqXj!^#H68vo+(l2 z%>P`p;mUnq1{K54$^<7KAICnfK(92ZW?WfOPC{*1#xcs(^xU%j#?k%CvZ0bQA>a58 zswr<~aV~wFqs%bH*Skq*MnOrwef?tnt*lHh)D1jSIT@DG%Hj8nwofm~3}kA4VT=@C?TIq@oto$u+_qS?4cEe_vvuTi^=m(RIfh( zYd)HH1Z#z~&+>1GW?rS5B^x}qv&*lb(WXlGGC_LGZ(v%4luHk(Y3#lv(60DjW z=L*UB0^M-Hvb{Wcui-qw)iKD~Y`GfMIgF|?TmcQ|51nmo1bzHMr5g}^pSl@Mop(Xe zQ1d9%+_T7Sw8=?w;7jwG%jwzY-RuF*~KFi&h`D1Y~cl& za?xu#zf7X+yt4y}c>82yTTT;Etz}2jq{FvXUp5`nzw?(Op-Nb;S~RJgZ8K=4gVH>A z#t=NZBX32p=xp{Uu!1=0$F>&SKfj8wKPnj! z1SsUHg=ItYC0EG>2*ZlSo3OY?v%Uf$`Kf}Mhv|Cxbcd!FF8IfzF>5C+7uL_Ph<#nJ z;@txawAsbu)hhvCri$pc!6Z}HuYHq~`j^7;kC88RZKw@}xx*LPB`z))Jv}Ns+}B7w z+uqqnq(x4y!`6JLcE8MoX}Pn*Nm(7n#zsu^jMMWE)Z3h<#a1K!UckQcRsvY{qL@i$ z)1e2~cr_Ls??!~Wfs-Ns8OEw7`Mu5i<8yfc>0%T&&H3!=YG^O|0kk9BvUQsiJUm#C zYjOZOISEu%j9n3v)(>Mhelp& zV_z%AS|qT*UR>@JDKky9xHuR>X-3b_EEL#a^4#q1d)qdTiSQ1{^zda~E-u8WY7D^@89f0p}RMTk|RJ zKE-B3F?YWE9g^&A7h#+8m}-*-xke(KpYS;7reYk+I>;`rPq$EwYDmz z9>q@PpRR)xw^U%?OmnF7g=vF^zP;Y}mxBZkd)zfsLTzTDHr$B8FJ#pWb=&f;s8k_r zW$-nKQ>8U2hcv<)|169+} zRF|3EXkk>>})F6~w=AV?3bYTbHvMJov%nGYe+`+Ak z@s?GpaV=2`s!{;1@`9&b7ikbr1m4pu*n*VYoxg5qOE6#j5FCEl?31TpJ{_8N1+fU= zcF~O4_KOgRUwof6xXvshc7|{5KP&vyfYe$Ix~&ANxd34S46kUB08niKYRTwnG*y%= zg}lwb7Hw)KX&t7{_f(p)L0|YClbo;^tu}E_h|wJ zA67z#s~upLGaUHnuC{4v<0`v4dDN@wLP~LE2}M^Ld#lG!b*wmY;@_^09xkXwbX%9B z$?2P5)%g7x=!CH{-7q`zvYJPu#PtR4YR`PWLU~L)2YPdP!wX4$u~(w*MDOFE(CV7T z!rZcL{X{z?_IYz<6ET5g+R*v6L1)-YmS@)3rkrSSA-5*r%aJ+w#Y%*|YK_5^_;vLx zGNrl$(Bru#uuAZ2wkjT8NNgskHx?%yv6}E@+>Zf@_9xt@Tmp~grfG*DI7~TNrFMZm zH$;AtnHlcPR|4Vk7#vPI+~%6d>3jNd$919#A78Ci^VmDbq>(=Ol5{MtrEenD^1R~{ z`AT*iVfWz@8J{RL?CTyW%d7-tb1+P-)I#alrKf6pv2T59+P{Z}EbAu?DdOlJdfoUW z6Y$ECOO5$nlT<7x*Z1DyqnDIa&i$Wo>C!P8Tfqcy;F{a!z@JsaeAbu~t%W0`xJB)h z=P}eQD9x=<5YI!XT(lE?D-za^HnrL-(sEM|am8#qa#eX6XrA3v-HvrIz4;o(yimUevX^&g1+&b)1B_FPN*rMDbF!Xt$ z#@^J5sZW3xx=zetJJ6KJY>1Jb#lnlbwIfF?M)b+6a?;f1xopXSTJ(S!ukv`xLacFn z>NM8A`Y@4w^)+A%e6}W!pYu?E1CYCY>IJl>zxGfkfx|V^0QszLip|`R%1|AD_VI>h z@t@5YaFG^WZhx7vkknR;%UJsw=;riw)2E?JK?xLi6$J9s4ak0u#f(S34O(GgD0Jyl z60c^M@b?_w*%k>J_+}9Og&-NhR(SKfFY=##Mbx1 z4mB;c()*d^0el<-vYj$-zSZtC-MKt(t~<&7%c2~1tR#Nmg-wY*4lns)_j@5rrxug~ z82?@8pWO;`RNLcfJGkJVlkrNwxRT6u#jWa#Uc5Htv9X!`&@s~cIC+`EzpZ78?7CBd z{_7KicTVMDj#LnapWU!45cvJG|M@G3S4sXULUY!}}T1m+ZDjpCy4tV_Wo8C5)EfRtp>Y`?{tOI6oSNwt8?TH2jeKGi0l;hsu=H zGVOxZVVLzz0lFmB%n)7|d}`}Q=-MCTiPM9Prj&b*5I^1RM)X9zw3Kv7hwF$y4^n&W z{`KYGQ-0bZGsL*_{vl{R=uB-W$EPN8v5;`qvzlJ6R=vdWxFF((E1Ukwj6n!z$Hx3o zeS5+*;mvxc-|S5>5tD)E?|XGL_VZaeK04`taGP6BkUx8PNO@qeOG2@2;lb@|g@3n# zIQO^*@|ctdO95w-1BzQU_UaaTpoR_aJ0?{RC=vfCw>+dpz3krbBE#-^K8Jad)M8Jnwz*1w#5}-L{qym)6e0M1yaD-qosmH+vo!L|1cetbxon9QY~pGbplDi zEI~DY@|PO6U5A-=ssZXtx?bWEr_LOWNb*r7Ukg$lHjYRxtKp1)<1sm17oARB@;5e8 zkI2D~rEe&P@R}oh`VLb%ZiePge=bdM;p_`{CAMZ_{G~BGdfJ5nhBo||jIHgA?Fbjo zJ7H0!KX_m}r-U#_R7q_=58n^DHGdjDjXp>0M+Wj}-N_SARXP~`Mc(5{W05J+7LM3o((0l%pAk=ZPNk!F z-$Sy_SRmc-81#?uVON)Q^6?j!v%33rCphMut!D7eHVN-b%!uxNlN-Dz^i`^4|F--FkJDeVM~u-EM0asohZ9tgZ<)_Z;7a^cq`mNGC0=ie5-> z)7@4F?wi^}VXS_OMgZb7RkROl`|m@Yfn3UCw}-WVg#7DUjz|?fQEK?cyXK(KT!&j5P9TRyKL+pj(6 z4jVMSKSILw^IwtMakd(6VW84e>JvlM|8W7hZ+(&lcC0*@=pkoUjauYxW18`{T2uh; z4|`bb?eczEd_gD;0x$a}goFe`ct-P!WcTh+_OND(w!@jnT#mWwBvW-FtTUkdl`+sT zqv_303SaLoT(}@Grl6ypmBb!e%eczprq|Mj^l(6jI^Vf*6I4)!u?|ywVanQya~Fd%80Y2ovGq0$)9q^}%h*B*Ihr#b!&}cYYNGg#^Ge zB1I`6Ldr~2E>0gPb8HY}JC7luCG(r~lFFD6*fJ|qxW1zzXLR0(#>5$j}FvuFD!)FS7w9z0lmsv zd*j>I+OLt{B2sKqKGoHSw#K_8+PT&{baKm>Dt`k&OQAHH>CghV5iH&lX0BA`6oSUt zD0Y^ur5F``NLcaldG$DZQBOE{adFXzkR*v5B!85rb66*G33n5UniH6C&7ds%B?sV) zD;s2pw>SrYDw_50d>BV2?k@a-gddx&Mh_}S%m#UYEN^t)V5^S#po~+efL6jQNg{$i z<#hglVfZTg=WC7r?lm`YQ?2OXE;Qw$#N6`6prc8)Dk1V0qlU2adRzBNE%Vls>mj&w zQGK;H8fP~LTqw4RX8i?ju57BhZaJhFrI3(_rwRuCmQ5jni?HE+ak8KAEQzbh0EER zg0P&k@d2Uf6MQe$szQNI4eXa836tt~PCC+vlRMtC>OnCd@tp~)pa>}4K<^rPN>~Z9 zBzWvQJ6iUisOVUK?LF}B?$Ol(x6?Pmsl0L5nxngwtLD-_+WdLekBCe)##Y=00Ozj_O#vE-_j$g?r8WOMaE}EQmH3^g)BRkP$)dqTxJ<5&)L{y7Mr5tS{q+% zBeJOtVV|cgqMgp`m?pn|JiAHn6th?2&;e&}$R=E|S7A)SBCi@XADm5aG^aon0B$^; z!_9eHaEr6-NW?14lba7kc~D+kYn4oLPCJSjw(NRf$qx&zHF z1qlMGIFdq&Mpg&Og*jzej{FDq97{@IJUy#JC_MKwKPBcC2e(UrcIf8N zi~3tY%HvgEa@K(obkg0ef72KL>Yuz$%4OT}_i0p&w74u7(PvUi!%_L0f(< z^D_P2{5LEV7bK2+A5|O^D=BOcB9_bE^IPHW}l5wa| zt)Abyeqp>hN`HeV=33{Q9sI@yRbaz{8+5LER;pNbUubxPiE)=UX>%Q}UGTYFO>h)p z$%Es>2HZL~%~k*AU*GYp@*>lMRhh3p>}Irg_Ehrf&`aJ=Yc2kE23&K}39Bg~c?{5F zy9?#048^hdNP1G1>AT#q3gnl@ja;FLrTO{iu?<#A#bHZJ#|f?lNC%xBNe9iranNkg z;IGzRW(L&qv8~%ipN3Zb@GSX`gA|n z(lup&q`1n!Rl*5{(LtQe!Fb!?`Sq|WHET)5p3-h>Z-w5|(F$|GFgy%ecB*&*K*smKH#FcoQ(AM45)0Qj+y4uCP}Rm+6srdKqe#mEL2 zVp@_b)|P;PlpHoi^h?eqq8Tanb*8lQhLx$)t;o}kMIGyGPp#-l+jn}%TVt&s0S1e) zQv;Th0pTRxe`>d1)K;lq6g7Pdo!WtEQSGSKYqH3xhvR-4mmag|EnL6|pR#a?f7AlF zU11gaDP6CmB~QOAI3$v;kEW0fhEskK1_#h}=CJg6KZLbqm+Ny^Ge@k#FY=akW!Ioe z{?c;OhUKDM_Svx)+k2i|@j}2(x|n@l#zQuKLfmoIiZ6U!0{V$LwhzCs-;`XJug`$I z#FcG;?8&IXf(_uB-ggy zd09j_BEWrN^*XibhIrJ==3PKO%W?PkzGSiCyW=Dmu)|Si%7~NrUfsCY$}i*84(XIo zc-$8wo)f?IyM`K6TI4d{q=?P9sj~{9Rq*zr?xar_KLvTZ-fQEA9-BJT+RWOtmu@+j zy$emL`MCuLHB>*!9W8*YdH&u}XO8*n0*!vqvt) zFUHmZXkK0pyTr$hxE6W=uKFm?_hKjKJ5Pq*pF@JlzY5T2N=$eOML`vS$>T8sG-G@p zTG>yyCmZd2-sX`Yx;!yA=C!1f*f&7VT5ev#J}PQk)M`d6wE$*r!_P3`07+08rq#VA zRzH2bGw{bxV~2r7US{eJTy@L_ypj{QL%s>AL@c1x_0XJD_O@ve#rgO% z8PimWm8*-}=R^Uw6|>dgV-4 zGeM=~t>jz}|Fr3IrWSvwK8z1*B;)J4UYJjnv-#4a45x9)EcFdnUcrJK{fZtdKa5ww zA8Wvm2iYIpNFeN*?N0Pi=q3}qs%Ew>Fe=_aS)R_YsdL3{;~AYsN#2Ts^UCjiu47*6 zxz8%^oCT;_Imap5(mrZ-mRi|S8CME)U4H1M>EArP)jO*oXF4+4^RU)PCQtF4h^|wQ zdiHhJCX4H_;`EZ3+2#30M9rw3>C$?Q_%ukzN~i#*QV4W*1?w5l(rpX#85bnal%r=| zxW?<-6+A&R)$WdROlU|7*MfRK_zM&C?I}Q&V0U?`ehe!Aj%2~`~W8*Weu7AtTlpY`%0ghWO z@fu%7DCXRM1!UU=}qTXEEtAhX|pvduvPi_;VHa)c1X3` zbLa1z4%rt;=v)J^hED8OTzaVb)s%{HW$e1Hxf>3?#0XjlgRFhk4`~zaG0XnVbm^~# z@Gc=YjaVBB8bS*p+7tATy1+0$9)XB<+D@>8S4;Hdf9^>tj|m?6owyjJ)~;NXLrHotZ6w9AGe5RH^a zc6S^w{VEnhc5x*|Pqd0}>12jh5NLVqz`CdVgYSPzJ-i@CWTRrno_fWt%p(?q>A_V` zz1V;321RRUG#RU}0_bMeGNFYFHb)5Gp{Gj8vy&&3Ix{-r<%B8WPYK(nZY}dKOnu2fXdKLu1YJv`S{rQ6uQmB4pOJn~ztWbZv zlyXn3$?Wr^LVL*2?U0_(wLn~UoJTEZjQdqQKOeO?J$$N44>`i{VCWO42Lp{avLgI- z+%0YE+p@zNRM*^6^-5a?!z;!W?~eUH_TD|7>Hq&9rjt@q(YvFmR8Eyb6x%3?R2D)K ztK?K6XFHivNnsU|WRx=*au~*RUXH`Cm~G`W%naL%&G^0g+^)}cyRO^y{eJ3u{dL{0 z+wVWOn>}C8$Mf-g9PiJ^^YIi=bUZCYcDba+GX@Ew+4?TgR$_yLdIOO&Y;e>&A@*Sn z%y$2tEf~1&45l$9^_$KK3-P`HnXn?YUHtLGG{h95CZgr-g^A6ISdXuDf<~S0g6!XN z#k~(_u3-IgA=({TY|XBc>(pyxY3{K5kc4w9FO6&Qt|fVOF#=OYn=Qe>f|ALTQWa5g z(}LYkk7zQvWqBVIAg-RrM{wP8sz?i3J&Zw%z_)OASa8}VMm(&hY2sQDQI?+iG~ctQ z8vCRRcUum#xG+Bgs54e8vk>DtZ~# zu^Ed-_jaAoQ%Wn?H5A`FC^6bsfA2`}t0vc#^uZA8vghRoBYH2qSAY;9qJtlMLAT*& zr@HL=h`bokyM}Sz6VSkN&{QnvMr*y}*LqWGptE*=uL_IVu$wxk51JL(jF$cJQdg4k!n@cc z?l#di*n9+{TMEgT5wrR7>^?J*;7CD7ik|WNhrZ1rKiw%0e@gn_hU6_Bq}Zi(GJeqr zLjT;gPvCvm_nmTxO?P9DD;=-qFsjwF$`>_(equf8#1A!XZ7=6EyuYWt53ZN3-hP=? zOr#dIHW*>N>lQCyr2Mebg7f@s4O=P|=mWUYYsvxRG0$MZSc#aOInES^8`Dm71J!O- zi-TqXnD1GJYS}_emap?GV%yPi5ifPi6&ruAW#j1@*}LtOF!B=z8{Sg9N5Q@h17TYy zo((%@M98WVjs#IukGMHN?cZ=sO4hlx{tS9urpvqQUcut0x=+kkFqhYn1Vv-1tP3v` z>LxYz)vQu69OngJr)9AO3-r=!PpHvos&^Qv^CQ0<;q=7=40NbLM#ku$STQbAD-D&U z&mVQrU!fmVp)K=OC%2Xr#J)GZ6Im;olpPGfOwE@~FRJ%mjd=Y2xR%G6xk>nW*>HHj z*9+gPwhZx;(@4=bzENcN!mS496^GcdbLI7sUZ1k>^?v(8n}qL}Ai!kbSG9*et?}*W z*K!Hg56A%Me)7nuqqEylMSKZqvbHe@I1jh8zB?&<$v$!72XBG!zW#fK=wfNpTzdug zNbeJ0(@$SHYchsEvUHUrxZ3P^?>e>Jm%gaDtIt>TE2d3C54(L+Va+x>w#6h#-pmUk zzPNhU^8$SOMArPTAusYS;*kt2w^#Mmp}wVevuKfh+$jxI>-|6o(}G4&K&yd&J&E{0 z(s;9ZMaui0gavv30tTtj>t%Hvjaoa9+s!@E0(A8 znUqcl!gk3b3S5^$uw8;z5d34?5~JguJ@C3OEg7VnX`K|u#fwJF2lw*x2OiBo(XK## z)y=M$MLgBHWR^c~<PhTFUP?)Kdgqhu=oEX8BWcqZ&c_hm3Nu@ zVCUF$?>Q!c2+{iNIry_{rVM!6=#b_%yx^+(9sO&i(qZJ}NPG*AT)V zr=C``3&PyFQzd>jPG98`HP}>b<&GWdWQiT0P%`ctE*&?4D1wBRkScX&!Whr5Kn^i4&74&9lf38*dFaIUysvfWFz@<~gfO}uaN zh_)w2AQ{z3J?$awCBOVos?H9beixq1o1L>kb-4~-*@n9e9-dC(bEZ|0@Y^7EcSKu? zU&;Bgo`^+X!7^nvXvBM>&ecS8GV0V(uS$|AFukM_OML;qUaYQ(rrTR7$)XScy^aoA<7 ze{)m{4tW_tczCE`AxJ>WSggot4NNap6pmOeT|ji#~tkY5Ul}u zPp4&rfwElIv76pV=+*THM?D%%ycS7UDvg?|LJO>s-W_R%ne0YJ7hf4L$ zP(YU?k5$Q@Dxl4hxCZf=^^W7tN0{+j>gtu-jFQG&KwM@Q2{b(!q6hx@1W~2C+CTc- z@RIGzGX`lh7xj+vfDkHqDES;?F*j+Z7JC3*_6hv{`UAvmq-PQVm6Sy9Ia`z;#1P%~ zuI>I@p8!7DG&wr|_SdtU87U91A?uHF(kOaYE{=sZ15F`_ebT!T55Z%JEr-vT(B>9t zx|Z`=MAuVeMzoJv5S)F&@Mn-X^ye0PeJ^bR$b9{hR~gK=XFbTJAMgtEeNq-dZaPurdQ_SKT%qqW5!O$8S8BR2orzu zFzw2C+Yrt<4xQsBlG3+Zs|lk5B0ekArn?(0m=Js+i_kv3ea4(Wv^isaZuqN`(LhGY zyw&i+6r-U+r=tj(P#6%<1Fj3IL4@=^j@m+6s=Z-AF-)ctG?TfhOj!ln;xIedPA@}! zG)47&R+;*{nZ0&}MxAE0v@o(h)`HSn7(DV)iKC~#w&zOljp~G^X*)5`T7S*aHcETQ zcR^_y+e&1*jImNa#hhrv_iroG0Y^nQF`n*8WKZu`&or))wY3X>813H_q>1lZ^c71_ zZKf%X>+VD0Ia1-g+el$*=g*5lJBJzoXQs#`yxCPyn`B4nL8r zCNj3Avo0>no3BZ=1pWzdX}8%9UfP_@^10xcyid=3>TsZc^3UJYgVk3K6J?A0P_*wo z6@g$zi{Cj4M|^nt(s2X7T%ntGD8@$2E>`an3R^-9&9y5ciL7+;;3BHERoU#NYXMJ( zv0WvJy-RJ)Z?Czdd_*61hq9MBv$*wdHxY zkK#)d2dJ+u`EDtpB5%xr!=FU3YGviT-qs!2c_pCtSE%8p=@Itls9RSuV?L@to$@J7 z$6c>bXTJ=7Yr7ir+~|D%T126D`V#gddD;`V*qm#QJ+yjyGYLQ4 zN+WLTaxP^!;_s_|Xyul`%NRI`kJ*g~GEtW|xC@~+sopVNl(c^)Dtt1dVC|)gX8D3F z-Xb@msj}x5wgO3JjP>Kkm2h)6miFSO<3B2~BoP;E?5Gi#s}ZARlotJ*oo!>W&OHve zVJX)oz29uPlwM4vHHtb|*y7HkAxo|K0Xo%#93`U6XR7UGL}ZB>_O1)|)Pp zG@7$K(S8OK6TA7BFLiWuvgdoh!Gy?!zxfpI)YL%`vsH@PEEW_JVv6Yv$MSc=6`mk$ zU8%y6@S$T7Ec8-^k&ja>YhJdGm+HQ+B;w8~>EOj6@G1h;uJjUrN4(@lZP{H}A(3O{ zBMZBI+6~fh&`h#Lp*N8mtT75Dpj9WFHkeh&{4x6Jud&6=G2?vn6wtSMsjj3|#qA^S zm>TjOm`H0?>&lR59Sv4Be>Ik-DZR9^z0xB21xCsvQj1S7G1!a$tZXZWOO8->Chpua zYc{y^6j4!Vi`R8pb91Q{)G!tUhn%VgWfM-4oJF3hh|sAhSkja2;P%z87*~;!5^k^m zW**d&Bs)f5*Gc)vyC4M;oCygHFW3!>kdjJRs~Wo5-?@=tJ=IO&MfVjERo>ksP|9vk zMwDC8#q;%IjRsK7V|G%y?qVgQP7liqJ%m3siYl=S6r)36SZqBt9EXjC)vrCsmHi1|t_nL$FiYOjo}8 z^p9=z+y|Xm;zH<E;OZdDfmpngi8m8|`VAC=sls2J#8}dx!aky&+B>O{d(XmX!FwB5bib>9xG%Gbw> z|E>k_u!Nf(H;lfxD5@2`;jgJ;Tat~dsSQ~sei_kj!w7~z^yU5;U4w!ErDeE10O;hU zw9nThe`ldM-P?bES(UiCvC+EV9~0_nPlOaSvKR{aR^U8k7Fit74iw6_7=j=u)8OCuYpE{wwK*#=dPXV_#l88^f1 zn5sK=VkNuqRDk$GxRpsQ%XE0$f*XMRB$cKRaM3@f&9f>r(U)udAp?y1=q6Ev+ZYX^ zp0Nd;wuvQ*3{RdtnjbKIFFa}7k7H$Vd^>na;gWhf-)J>nD{wIGpIGm(ENK3tuyMw{ z#JjVMr0F(^V}?_eq$eY9$8`U(x2 znwA}z*jOSA)y@fHL~@xjgY?w>$1~DfSrx@B+(hKJ!x<9r^~u$Nf$AO-&;hNSpJoRs8p_I5XM#)iIZp@hm@}HAybxnn`4>Xf;8B0Xw{=M9qQwTFPm ztCw!)-U=9PTMl$x*EhZ2W@YSP@q}25*WAHBKN;B3QVWlRNvFTgl$m6|8dN41?^N-` zMwPho@tO#3G{;%Phgsmh4Sv$I>RDMfU9@ziw(AOlpALeB>`+xkWa8XqKUTFzTU|>~ zyf=E@+CDQ6a;pgv@#cm!u?%=S$_*8fvZ}sJ(xHtmrOfB=9 zs43MJu3irAZ|)I)S`KY4uiwH*(Yh6v!1gkMGGQ}-TM0L9;L5{8`tt5mQP^^6jv_1~ zgM+dLprv1Ux&}FI7Sn`u_JspZe00V$X<|2!+|0XQOoc)qejpb>o@#?Elg4sfskfaA z+(M9BA(gy&Rr{ODeZi=mJq_=tHx?u6dQYqi9C;hr&GlftZXA*HxMI$ie;nA?@#Kl) z!nr2Wp&YsG!jO%_b`6`qyerxMHO$(Vr&GlAMX9ej2(N;k?RBew-a?IEP}lVv;0WDO zFKLkz9~l9x-7q+PkjSPvHI56mRyEz>9tTeV(P?5iIJp3qkvD_9AWlnh{D-j^YI?BS zLn8a(^{t%q#MBScNox}9RdF2J2SP=7Bi=IjJHjF}IEcQ_{USqU#OqskvZd(WR)IUd zMfc6Qy_O}K2ymMP#o2@wb$*SH^lQlLJ!LyUPTMAsU+8{FRWMh8?6fl4zdw?kT2{4B z16m)_>oM|}v0*Vf`8>)P)4jD7F|?EeCk`bB6ibRMa*XB0`-~fnFune*-BBmjv7vk+<+f- zryjs*1`EsD9h;QjXx3F}EXg$5e6Bw!T3D~GIa3AqLafY+2BD1v<{oAbB^mt++YN*? z1G43{jDGCv7A2#slbvSHzR(ERoYqVCsm0!S4kBbJ$iOcGpYg&LmS&Z5(4bj#@*gC5 zdud)((L~kUtENk7Rb{X9;2k`EC4dHO5!^UXyY%k)*H+bbFuA{FSv;;Oep~;rF}~sZ zyYj2o#wF^yjjmwL9b-pDfhAuPgU*3}HAndW!)$nM27zL?j|DU%+r-HE3jM?D_h0%N zc0@T4O#jtgcz|~h=bzluDAV0maSiUw+m&!LkCAj61PjW@3%u~_(2AHo6W^+?JkmPlXKRf!jI(Y;H*EmV%!-z}FG&ptY*x{|X*un-QMZ z67bwJBfG3>iWhT}`w04JW4$(W2jDfG3lcuD67d$cf2_B76T}G*RNshJw5Mg9U%Q0c zReQufGdwG);>6LSA=lmf_1exy?c2}2Y!Au4lK%2`5wS_A-}IrPvn*}4aLVbd?ssX< zJJ{(@mSf?5+gUdktMVFed#%g2i3Q!Hhdw5b;5pH132bNwMno zJ}*6eGX~6V)*AG~c5;Iu>?h|K(g#I1_#ra>NMwrl(u?|~A178Kl81U$WslF713hZS zi-X+sh8tz2zjEllCcNEzhuWC&qxtXR6c#3$wrMgkVsS_68V}Hw*_SRy3=*|EP;b_$ zD|m+VIYg>f8D|fLCDR8Dd0wDPb$vHS)(HN2g(xav?X0-2P%=gQx}5Bj8+U@rKIgq% zAxmJJm90m}4u_1TCM2IWV$U3#8Fe~?cV6=XExf1X(P`v2 zbLw6>2mnF|w0DmIb1a&8ffsM$YW3al{DvA?PnqLe6?46vMgeYD`=dt>f<`w-bV%v~ zEFPP1D_Ixco8Y-hdSOJC$VX3~Ck6$GZ^Htt^0C+S<^V)&3Ckb)#YK+vAW+wpBYk&I zYAGiPL|Q`yYBQPZQQnltBetS2)53|RUE(zQa#l@-(t9j|ADtDn^hkfJVck#WU^@ig zyp!_6`4xX=ShqD=H^u6N@Pu25ONqY1MXdVHz0L-Haj7@`oqhTiS*`5UGamcB5W!FD$ z&fIbk-!nCyIi&V{@LS}TN{kBf3SN&XY_%lomj#s#UJ~8P51O+ zY9a2$6a8(;DE~9?hM+xT$6S-9ftMW%h5~5Zx>vJ>|Jox5i#%lvlF91T- zf&8xHDb|OS=r`m)hd{6|>{&fxhZ^V8Yt-#?w}|eSd@_LI6woiM>Kt>=VqW=|qyXT_ zdua1=vIFLF4Sx0!pCan12Zd+dCoZ^A#U~;@FnEpJvPqytV&8IdoHrVz98t6a20pN( zY3kh=Fx?ZaVH!}l3Yy*xn|s>nPGM^3zOY&x9UPkG=@c`i9hu-tHyr=kMI`RtCN>1r z^U8qot|21UdUI4~Rv;l`l3Tnf_+B@G{HsN)5N@@-s)y?6?0LQZi8p>2ULW z!&ubPZFr)kNjcwmMa&CL?(xTx9Ird`HcsmJF=wsL%ooSGh1&hY6)bdhT~r-*%*7QN zz(Sf{dpGO|nE_{{rW&avIy~dyM#Q$TbNjbFt;Mix%=oGZ^5~al;6MeB-K~s5p?^r+ zVO&y5tKroKhxq0YyBuQyY`eaE%idH|NhtV=4993SOVPu1R_dOYY9aAllm$|{I@5WB zxwFdP_ERa#Ak%dfP0bIz@2JK#jm>YvsLn>r_6=w4s;5O>AM3aT*MpoXmpE5IZ5wE% zueV)?&H0!HAqmEt6VoBT+^EvGJQALVNO9h9Bdjeu)n`RFZ?U6dmC}6)ToX2T>6#g> zLnU%6SQl`*r?m%a{IgXL{z9;x40mH8LdIYo96vQFI)ahKb>2FvXI`dhuK=5~t64n# zvGupth2p$JJGfYPs-#_3-Y?542O#nSycTb}n4^#9+dJi@(8GS5a0;t$%+y7pFDr*~ zN<`;)c^uT`Z6IFS=pwyWP!Dl9E5`G2wk3ygKvM%mmZmswuUe(!u`j;y1p#1qYX#Da zByK2#5dBcC+r`K5#zbJ}F3QE^*ygCB?j%s3<}QGj7>gOAa7N!Yok%UGxQ!s{(7+G)vc2Hst`t~pSfZPeaAP) zDq$f@hs|stJb!OpPfh&6YvA5>tzwGB76xh+g(%ucn^A|=CLh>Lqf zo^?M-(^tbcGa46DyE5a#sG@h0icjRU#q5;ubY)!PQN2!O}nMwex9glF*JF~k;=LzS9XTsYo* z15oq5)5*u^l$sx!-F0a2;;B4?{CvIm|lfM+jLS_Kj`{fDt@x))V+-fvl>Uw!w zzY_KZ&P*pvfG(5h6us1JbG`ac$iQXDZdMMM~h zZTI%$!T4P@N-r3kQlHxCooS0Z?C}h?DU)4Wv*;8WS^PTHD0qL~ISIeNQM(-NWwPl( zH9G@i6BrJ4KJFe`&;97PxqA1$L!z?lsI7COQg2nZwaB=BDPJ9&v4dYj>n{^NJ5}Jf znX%hba+t1SUUE!7ef?V;a_Y(`fqmmlS`c`&^=7jD?h>KmxNFjLrLRa@G< zO0CUq>kD{d*-*R4CyE@T~e9GQ}jv9@m^|X?T?AnV6Kg=8FysXtNbc2CUb3)Ijg5 z8WIoNGvkkOHQRn-E|XKG)M?zAuA5$SuW}Zdo}Iz}B{SyBT6gpx!Yr*-XcZuw9X;2ij3m+#LBSrMQJ#;hYMjq0OQ>={e(`<_IZOE%qIvE2d7T|C=yMgk_ zx}&W~!9S^vfFsW7h)Xsr>&(QIUJn>g;|howL{{W|Kb@}w;^dK#*N3`_iHzQbM+~UX z#ppXh-Bx3#Wz=w2NN25hxrX(S5j!O5HIKo5A7F?p1^! zrtFv{rf8E2w0Olh23_HO`3{mj2TjVEDEYL!+J?`mMIOM}H>et>CGE-$lnJp_dSMGh zRIYJS@(I`-EJkpgwu(w3Eg31qe?4(H?OJh7aXOLOIx)iXKAC!M#w*NceXiZZ<%wu# zpGf5d1NAwwGKJ$Bj!vT-X{JOUKM4{{-GxCCa1H&ayc*fYl^rzvsF4iueJy5gd`+hF zPIKpA#kWOq?`Qh2lOnS$?T~6kJ3Cfa*aE;na(N&3V#zZ<-5pIQiqI{le#!S;1Y%m^ zvER`|J;r+beFgM3Wgsht+%mBz7$tECopps{`idg2+JWkf$q)l;wzVK_1+OUGR+n2O zj3VM^e7{Cm&%1y7?8alru2@QenBpzHNME4*>Gu&J^;H;T*z`PC!bMhd(!(G>c_C&c z#IPF`NgVskEz>|?^dT>qI~)1jDGuvwLV+1M=)T_?JT~LtpkpexHd5PX@o4 zPbt3Q3rcnOeQ^kW?TV*3GndksRo@~aZvhSIZr2b1ZvT(8qoI z^*~OkzI120uk#pWJq-#Qsg1~V<`uZ7%)SS6o&eZ>uM570fA%*5Jk3%GE2#3j=T3D+;eo#Z}@Tbyzi@z5toN zQaOfDp=LVe)H*ut*YI%5@${(msaJjVY@m30`pY49W3aO)B)JsjqCsgnBV|aP{`HT z=k`-FjgL!|%m`80yUZl0lgU z(xrTxz5b*+aJpXtp)vI9Lq;=H$9KcNR-IekD9d36%gR!de^)uiEz9-Isd{$Rk$x7Z zX^8JDd#(nX?iu`?D=4Q}eW#VsMYB+EdP8T+tK(ju-qi!yUhLW}Y28jPm2V6Kv>JAB ztVo;cNs@m&pNT5E1a{BK4*e$J22GpE>-ZF&jr$7`IqJnV!iFMmh?UnT)cPv)lGuJzJ?RoBCy`!XeW0dSwoBcl{V>oJg*_NiawlI`hcT=F*{s8)HH*1uXA`8U*6!_wiLYMRV``rf+#5)EetIr&gyNaR_v|aDYtvPr zw@jGu-!&cb?4mKPQG6{n)By6G>-Sdm1qG#mn|0TsCx*<#;~qG^Gn@XN_R>%{=ZoL% z6z)78UnO2^+5lh+3@-LNjalVv>GdK6JM1d?J~KR0Ha6zdu4HqkAunt*)qA&Rcu6un z)Zc6<&CBL13#f8a1qCdcMjUC{c@m%H(sZZp2amF_fX(T` zpBdilxgFGFQJ??5UuPc;G(qqdSHp}~xSx3%H+IalLTP(~25yhdWW~&nJVU2KVZ}_f zElp9SG0~JO`H9L%s>iJ|8*zH&{BmA18%!6RPCchd=6V`auz9lh_gg&!FT1o%f0({7 z6j43+MxiBM%r<^*6S8d7ZAH9G_L-lx@ms8Hs{YyM_}QW=6>l=TUkTa#5bOjhU8Z&zV)0sY2>Ku-#qH!u|!V2SOTVN$spLKRJMJpjc-KcY26?Kn_ zH3KC9dQ$eJ2;v>{K%JRN<18 zZz)k1J_LY2@w8YdGP0{u{w1oi>4?#rR=&~E8Uya)4DPRo zH&rB7!t*(jZ_|z?(rmto>#Rw-`=YwC*;W5)*a=~UCQ{a5dP9^Vhg@k~8t8vgF~oW7 z21HpUhyEq|Sy1lxkbx8UnUIN;O(u2^&)aV2mbqWlX6wQtoLyc}G~8{Z?}2n)6a8I- zoC5ml3Hh0`uvWX9WVY?%hUQsk=G`9z8Q}DL2zhb(EFGE~ZuS69tiwf( z$@7t)yw9iDHF@85XtEkeE|`NjbAl<2VeWROas?w=WM%$2?fd=4zd5w z;)pO(GcIw4VYAQfrg8&NQ+AnTv*4fn!!nuSA|TmVhA-MVMdHf!5nai>Or4UV*-m9-_gycNw}l<6nmEcM$99_~8$dIW{Wn3x(8{FJp8K2LAhUa9fN0>^udya;Q(d zKdC;(4SmLS9Yt%GH&mKkitOpqc33Wrme~;pr^!|zeR@AiY^~j~CKDGdB;E6CKn_|q ze*Q9a8~k=JPrE=tjeG57M1t|Xf!KZVO3%d~gMqTYYROiFY4h?9odF2m#240Ug8WvC zANB=6e-*MT>{qV+q1mUf1HnPaZzTMev0)6Jt5{K>Dmq6PT+|*JV_;#^$9()Z5C0NT z6nokLBzCH{EV>z)OTth2OPLYhng^Nx048pzU=sO>G0a;SllZI%wPf%I^Mw3KNlb@| zJ8E~cfLW}J^ipb9f!gp{K*u{bIFswp!F6?#GJA@a5`*{0*Ta8o6#6fXM_?+&xKW9r zqL`ng>842yUD=@yK$@vN3VEp?BO-wudvdx%kLpKvU|<$6V!#8JuxWH}Q@@OW0={y_ zSD;ri>`LkP1DE_n-*#;%n)|3yXN&(y$O~i0bmvER@*CU{Ufzfx;4_WV2icoCoJWVY z!~7Wxcd!N} z+inE?7`N^?m3{503)4>WvTlMNK0^F8{H znp$-G4nH`3oK%nf5m{{$PQ;RtVjw&t>w<+-??o?P`fj?Xhb8AYmfi6bu_=5ScUmnNrWC=66J&Ga8ZvZz0FskRBIym(Mv6oP;C*mC`(sL_#3;x~{bTGpT`>+ptvxm=4Tp%9~! zg!s0ICzMDeX;2tbfE#SaqD2D>LeE_5k{Dz@ODPcD$zk3(ZlP^S>t(Y)`giW#3y6uh$gW1saX%~cLS&+Uv&B42MTu$ zUl_1;7WTxrEbG4d!$pQ{DO6xrpAJK)3E{ zz^u2Co!6#VP!)iL+zHqIPBOBq;3?5(DMRmay{!v&CwObCEHM;aE8;a>O=Ho$F5gM+ zE^eA`pE-!HItWjDcmJ?(&0|T=xlM;O=ekm1>0sXUXmN^FNdWeoVP`di&eGDjtSVcB zI2TR`Sk++x;(VQ4LJ;`HAD1Si7Rj7|mZC-JHfji%cHGvA3r@})R9>q7Jbg-?%r{%n zz9uGR&mA!{oOm$6f%M|$%LlvVi4V-@+xfOef0`Pg&BJP!+9k~> zXc(!XPsvuHopw;=T*(WA;uC){wtM610>J4yQz8zy){0rEEZ+XB&=;hP_=o>#z5im! z2kQ-`@}bK{HOfpCh#QTf@RRZ%g&%p!J?s8r#X}lD9p0#zQz;2G%T}P}L$3Y}u^YCY zUbdn=Ca|PCp9<^|ymLnq=V;%Nkd=Sfp5Nqtx7<~H3OHq7yUpOiYM?gWC24i3_r|xN zzZjbTDoW20<)gNuy(rhri^s$+$sT@~d&vti+Vbbo8rJ4_!vH2#dq``}C}xr#L?O+@ za@>1=WUt(c+TA}La#hUv5BE0j{mrAPKg!|nAN*f5or&p}br2BZU^Kf3A zr(*Xr@#*Pm-_B=J|FiP{i-#Y!s=R#p(z*&SC)ujL+VM8hB+A_qRU!Wus$hQg0x+-g zQsg9$CajH?|5>ay9A43We6`KST~Y3e>T50jLer1#F_)`9ZR)X=bW#qpRlFVZ zXAPHIfd(iGzLNBNs4DcIzZr4!RFoVtKJ44!um^II!;?oPe`5{iR&OxpRBKrRL$%Qd z{$@niBS2uc^Wv^eD9Q`3_1_Y1`wN~;0qklEwEI6~ed}M0$lnM^>CwJzpMPv#Hu|}m zK5Fn6;`&p=TrPd^?f<6*91yrc_pHB>>?oX^d`Q9*dq5IWK2bjXg)W%K1KU~B(YEy) zVS~B)xBAl=f8#{e0Z#ASk^>CYdw}~Jw|jT{Z|ToUKN9D*I|>?yiiiG<8bASiaQx8! zR-FG=it|BBq21ft`)t{@zp$rqd+x@@#@hA2^GREsiJKtss1M^W%cW-`un9YQmi@^v z9^Ss<^ud?5au~ye=DU7h^MTOpwerM<>tFvUfEwmkFD@Hf(Qftg>dvA4>ris_X&(^A z&Fg~H%l!ZB1wt$`(=sEBn?qi54{-0d;=wtId z^ZCOHKwK3bdaU&6zQgb2g%_gGH*Yqzq?^)PQVl4hOR9e+#XK|lgHTxEQWKQpLPpng zEMYt^MUMjF+jn;3)^BpPdJzP6&m|9~^6|o=7Xu&vLN&K)E^B^q(BN#!p`+xe`NOMz z!!5K9Mzo(=l^jwlg4}cYR;r_uOOC>QpG|+Zj#=lgeto=o6mfrGL!>!9_8=b)AwhO z^WoBlh^dbX8n6&!ALzLg0Q%|?m_O^U5pz5WYGB|2-1It+rlP_l+W#1ueAv42siN$e z73fG}V&Xy9^KzKD_4fkVUDwuRO1n4`zmNA;K2uEpqu>IoP14vUsu_q;e5qWdsJ0SW z<8gH&1=J%~+r`lVngW5OnALKB-u;V~KgrU`C$F|UZ3cK-m~j7ypZC_~qrkZ|_UwxT z+h`Dq*PrcOCUO}N)CXikHKW`iu9tT%TlRT_xpGbb9jJ4P`ME3W$se`J!s5fKcBbLv z=Yi;iWf-6JmB_FVfD9uHX^~Jr+b3Faw&cIhi~cPEhwrbL1bU2|!a(D6fE}`kXzwm) zUeV62Fdkj|XNS7#Y?Pej>U{aEyvo)QImvI8@JQ>Sm2 z>S$Iuy!ZL*6%UU_9a;*`xdY?_!Bz%4{!Bv9h6}*`$zTK?NLl3LTuwg$qK}TgjN3|o z9@?}4@KO&!&Fdj|udU5Ii|}81W3Ddwj8poL8Rc)zHXBzX3f#rx;W<{)U13elt+KQ%1NC5NC6^bM>F)|MWfJr_X-G-#$eIhzmcP zF#H$tj|6^-V?jNiDE`)Xxqr$}{!zxRepv%7Xj-jhBy>NJGia>%v(w#B3QQAxAnqu@ zK9727Z^WM!rUIa+P5wyFZ~8=&-h+RZVt^J8xn(bY2mUMn{C)Eeo6PUFl^y;cOwfK3 zNX`|$T>7p4JpkGi^GCz>n-=-imjFdP{?DH`Lr(sz+)5M5r~knO=4%0t?%d#U9#HyA z{79p}K!yNXR_(e9Y$4~;AB{Qig9GxaqdV9BPbN6{d#}y^CwmRhvNb9S5czZu`M(mT z3;$b~{*;RRZ(;iXjWD6Cum1Ya5CT>X7*j}IqRkukhma0B?b2$2l*L(yx?zF2ZHw&Lc~*hNYAu zC9nSsEMEoxb~sd7o0IWxjE4SZDj~e?bKQie-rBJ7&a-+)`4~QmG%3U`iLq%M2p{35 zm*GBDf|V83OuTPy`ML#u+rMu5+ZDgC%MGg(cA}>~*7Oxf&jDRS3VUytw_dKT2^zKu z{vfaLQaVY}`ys2OyE7*0#Vjv|AJK1z^$}Ck9ZL9WUKOJS=w0CxxhTlkA^S%sMm@5+ z*E<8#SBL{1L=2XR=ybK+vi}_HUNr}7qw;ESQL)1BK;nn;_=Ag|Id~Mo#jmpaUb_8; zum;)elZ!u@Njl3%!(@sB?m>=?OZmh7x8gzoep1p;itmLp!!n8 zQ!0Tpc~eyw<~aCfrGL%vKf$xT-f0=K32&CULFS4ERLFz=`o_r8Bj{om&mcRTh1Qe-IBbxr;q zIK9r49A+FMO%@wXN=#QovzFBxyJhhkAW{X+QRJLjy~MCs>$Ev8wn zwnq~;X|ewJ7cDhZhX{94F}(gN2r=}`FKsc6z3{D0%H;b?F_Zl@BZ7>jIv1==MC!{3 z+wCdWP7Zab4JdCl8o94x>vKyA!%7m54?NPaDNg*aK*OyEm!XgG>;w)%ovQ0Jzaz!ky)|zhm|BlUJt)zMkF| z)V%(_{ln+K@5KWOTyiMQs67%e7+R4|P@muFUA@A9s9`d+#GnMQRKek=wfm30C;E)3 ze(2Hq^+b=N)12aJoSwFP+KS&2@*S+>uZQXop zKtd1y#R1rCOM1(?|02nVTOq&l+h#CKm%8~Fov6984P$vi7)}dkEFeTFNJ<1(19Df#=D*#yWF40{Xm^mbHtwN&QZb^*1cZ_?m)sXp2?- zfLt$U$-e`l!ta(>(?fe=C*ki$s)0AoYS+KzlB5Rs>9|pH?tu^M^7S`HH#VNhk`~Im z!yo5z-S>yF5S-rH@aK!&DS(!LKS&~u;F{nOxjangzM|Ha;0M@8AL;iG_r zfCwVUr$`t`38)AtIR>aSNGLFXK?|sq3=JX*A_CG9(m5#Ih=tNUUP9G}0z>`QC^xuNl*o?>#vP>}#Kbg?8cQS@r?HD6yAA z&+VFy10rUj-^ZW!{Cd@LC82N~%ho_}UoLM=7b?EL-Zt&3xNEDY*}cf*esNAYIEh3r z*71Y!4mnB!j>Y@o&^mnfHaFAEz@oHzPJ;gf!#o{e^8?=b>M&!hCGv&W!%B zvW-V-uGb4_nc4dt`>Z)6E(}^Y4!Sud5zqpp4_{508|rU78#(7CtLPGH?e*H6S$#;~ zyIQR4%AuauiD&GMW(~gNBV|S}J@0hz?M87G%G52fAWRz*Hm>2Q!+d}t@t|#A_4=?# z<4&n5rtHvtr57_!cvj*ulk%GvUd$t&d;K$`hj|9}?nYKlk>0nr1?H`Z-{RLZXTar} z-|R*^4VbW~&s=Clc?Wr{f5mIBQZwJGTgcw=HFgG+g|mV@||5#4=GS1HtgvqJumqZqdplkXf253jO~b;3K-Rs^|C-Poq&gEfXzB{n9~MMyJu z0RB|4=+CbMFJm4DwoV~`V{mIDzEvVcU4!~8tx}hvi**vQhNO^2zKyigzFw#}a(sOJ zNml!^P>z~_v-7m#>5MAHMPZGHy-#Hl-Idsc%<|7{ZV)_zMl^yW$~FHGx$=^m`PoO+ zW9aPd@*7=pDLFW&6MbgRZ`b@qJcW&%7t!8(oNFi7QmOt$B=-T zwNXLGwN9Yq{T}^$)~f}~CJO7VLGCPCl>v)jP5+>JCB;hhH7x4H2KuDTsUh$`Cv**+ zQ=Dh);;o>8Vt#T4;wB6ri2PKbIc4QWm+0s3y`-m5Gi!f|riF)0Q_8Yg_oVqyUcIoW zME~t`JlPfqnuF4ykoO*=Y+h*P@r(=FZ5POg1V{s~=qv?F#s%q;1rjn*Srpi+#MW5F z)!5=^w8m>)bMHmmTg|^^lUKR_Sl#-vR&IijGS(1E_=w5b6R3Vp{@HuOzTCX;&l?PdWlnT-=`_k%RZA% zxy8`m&={{*c9pDr2?z}gUoO=e8+aC~D#@>L+sM9Eek6%&!(5_KE3ct?y}tUq|1Evu z1`sq-tdoHu&Qzp)poUVxrfdRq){2 znT>WQ9{%3WCsiBiB{d!ro>=FiUdyaKrgRlsU)ZW2x?eU%NA0(EnaHn_xx|mPmCsWs z@LB}-!p9u+@|{@q^e4|8v(eTVhD_EXLymSmKy zClb_H?m7*py^%D*CQWwylG+KgIOo*jZAkpzU}dz{J63aig>2eu^ z@mg<}&(hW=VT<}gzdHoW$K=*}n)UWfn{Lptcr4||2Wl#Z34O^pc^wm+m1*8F$16KW zYiqY}B_Y94TVCYK1y1K=33Nr*T$58(`}*c`^)gmfhpdWx`@UEE>%7&qt1W2$ipqFl zm@m?_s7XzqT*$F?%gTC^x^0Z~gvYA-46EBYm!5jVa7xEcMz`IX+^F%oMcp%2DbVxd z8Ga!3UiI7u_D00fg%7hn)p$wDP;;~FNY>0&dK4$j{E5%H+`pq&k(H2Yq5G6XC35e~ z$)GC6)aq*~+s2CV7%LVs-681bg?O0Y#-z5qER~ebK{)Pjca2{a8~6?fp^adZWYSIT z;qjqzQ)QYKYma1qqcVGowkO_WaGtpJ3F9-jge!?{6<4Adk+nWdDM{5@c!GAHN&K|{ ztOX8i+6$Mn!?9QkAJFfV-5AsHfUJ|iXf~*a1kL$_?rY9c3B;>N!W$x)(u221i>+8t z40I)pr;YYLwV~*K@jxmi9(Tgl^(%X$io`%i-aU!Q2-{9}{4BMt1hMT%9ma1*{CFlS5YC(htU<>KfQ%u>M%_U*s(ZWsQ&*!Hs`$^$Hwo?|>0J;b`NgMEEW zG0JXR@v8WAV6yvK-yo+!=LOmMV7{CP7+QBwmo*bdCrsI|Q2%becBc!>qO}E9GR-eN zod?qDQHGOyqQ#+U4xNM)7rgxb4i{9`@AEZqm;5p(+aI*jv=B zE8&@Fa`!uhJRB&TZ7(%d7OS*V{ZgN;t@wa_`%;7q;;YL`rl5hR0{QA1p;|7I>Q$zjk`xjT=WW05J*M|$$azntsSG)B zJv-8l5=r?RRJDz@{D+=q>XF}Y-qSN*F)AZ6e|DKwW{Oa~wOLA$FhKdzZL z4A-YuxcbckudeaZEw^&XKQm>eD2jsh)SzjMHFHyJ-X(#A9QUl}Zc9C%ih025ye<_P zu3GP0RJnBKj$6DW=ryI>C7x}U$4?1VLyizStwht}u@Ez8zwTH7)=VLau~3%kGe0uE z)GDvp&Z{lc4m&S#9`uZBe0W+R5((<344jX1AdzI4QlZeIW0^T+TALBSby+Tw$%t zdPNMZ&UlZ_)!^%LT88Ui*kS;f5XqFC%+4>n%2EHF(0q>Kd#E}q&1Fe3wt9+T*r0qW zPpN}IFH&)vZ*4G06|{~t!%Geo078jEf|KMl4AJ%jr({!-$vd<<;}XGRYfV%l^)i{1 z-RI|`<}5RisC0bsyU8ZB4~4sUHMY8nyQEjka!s{LQS$)=Lgbkc%u+N|>1*j*=E z=oR@2p@H!TZGs>}H>1bOIlCGvwtE*Yrr{3l(X3zdm+l`nQ}g;O6Jfl*J-I!%{+zym z{YK;EZ(?zKZt~p|D6hQ6#~kocT4&Jixm*o!AJ;}^&_06*CtXDbhF zq9ZS>$%rWy4hxpmxNX5i82*u*KycFV+)4}(_OGZL2pPT<*NKxRx9@xKB&J2><-}dOP!NpCJkSy`@t(uu(b;S!D(TrzNjf-d4M{tGoOO?}4@1Kq{ad@JnitWZ zgb-o%w@{n>;}Dr6vIe3`gKiw4bG(D^Jpf9K(YGm0$(l*qHa70QvhR>5p7r`3fI~4C zxml!(vkpIuV~8iih$p>>KF9b6pm%=GUv|fLx7qTmhBckuczr^Py(_7S8AaIDy|Zz% zuX-cq^hA16h22N1aX?pMid7Hk4qr_stH^bo4~>8PWKJ~&M{b|Otou~%nNDR4S(#x4 z81U)_4u@I}r$_`LL{O#Hu~+cJN~^88hA=VH7W(TCSCL3{%p|`r58i;i^5KNM^`{UX z(?&5|!!1P-QHZ4?Di#33)EW5}sm2l&VqP=P7ag1J<4REY`)CW5Ps@CDH(}-#7SMr^Aoz&lFV-|E(#6K9h4u; zm|7kyh$!n-XIgKPBAl!{mhQnQJ&P*XX|n5?S-B#gr|{(K`1NnRcu%TLdvyuuNkGxc=DfE8e4ueb|tqPdpFt&bhl#x$PS0JQ2D$0{AHe30f?&$Dy6% z6}6!uo-}B3IqlI$-NDhb%QURj!SR?Z`(-j$gJenO3;wzlZ_01QJ^Nfqm!L!|Ol8L> z6gGWZ0!F*7ZHO$M5yQJKS+q6lCwD$06Jno1d65I!Y^z4T&-ye|J%~wMIXA;FkJ=Ns zE6F$@w-b_BCDNU|{Ta^qNLqe>QKT5bb1OGiA^5)u4nIh%O?Th#HvP)>i-!{k;?1rj zqJ5Gg@?|P$Va7Yox7PeeE~8d%aIIaLVVTtqCE+|aaNo*fC>rQajtY&Na*7+KZAc%?ITftVds z&C}F;4~3hJH&Xrpv0C*7FHYm(JDdXhGWtH@OL$NR&>QKAMO5a_1S_rVb=q}Ct4IdJbbN-#o{Hw|koI3QlW7s)>Vv?B&@miPY z;E)NEK!% zd(#amtEsW4+|Jrpw5oJWr2miCFMNtLsc@F<~hw_ z>3LsG%Naw~RRIUO7AHDm!9Q#+bdgBB4*6}*&0Bms`Z14M0v@j87Q$_|jaeGe-AZX_ z<1>&F5GP=!T_u+X7vh%BC)sB4?Q3D83o*J~Lp1{EZT59BYwIy;5$&p6^Jgy&L#DQQ z#a>8yTTSZB#YD8$x6aja4Te^=@%=`f@KzpGqeb=3&CdtR zqXP5b9uPPs*(j>NAc!gk#c3zM!2_4VJf|S}G<&GjdraW!8RryFT`5qtX*@ussOvhf z)*IOX;4nS5rTI#!aYj&6-jd8GTzCA4r?3=i@r=i!jM~8_u`*{VfQE!S$4;Ldg z6Pf$M1|=`e1hps9HkJqFE){;mrYn<``>X1{a!;Xi`AlzQ{*Ap567%yS+vNSJ$v>KH zHhXN^1;4LYm>}(*-;ZE-rn0kMj0Hkz5sds31BqiSh-^**S|fTRQiH3iEUrcGQ}5_Ly*lWcEmu~4qZs&|L+mnP_DqI@ zc|?v+8#0v@Rd+H7q$QJpcTD05Iko}J5$X1t30a1N4FG$`m>WL&_^b&(O0z{wlN-1N zhfw3iq2g!QLMiRQv2aR%%4Q*M@39^~khI@YD2zQP(13RANzvL8u9$sum_se&!2|ni z6k{8Gcjh@Y$x3mhnj7TG7fs8Q@6BpjkcL3Qw-j%7fSLdJMwL>a%ioHY_p?) zXAY_;*PP4TsD$Skor;LbzQ8G$sJX(e(q^}&TfpYw9oC+BwV;0FM3@IFF6PqEauWK^%r6G+Rd{G0L84Ld_p6lw4=Q1iyoYNAjSu6O?eFesd z#l%QC0^-2tik0^ws_t#YJSi6gS1c*y?y;xhvXUEA7xZ?1`Q3gCw;v+6ucj=W-vy7G9{a&oP>G zowytyz2lzx+Ta>~IdLkq2(%FAL0Iy@3nc;d!f47?DFO`N+uPLlNLSw`nPv@^r=16*??e#I0?o`e3YyG1NNe)J{-fWcRX~E@4Y@NjR;Do%0C?=!r zqDk?0+6Xdst3Cn^hrRkU>PB4vYG0bOIK?HhSiHDJt(V&sFAVWl>?#r|S(8NLS0A5- zAZ8&u-1)D`57?-uD75z&9TNeVKi?B)1RiD+q?ZRhs-4#2h{?S2gG($41TA9aBH;RG z0xrH`nD7h7E$`16Onr=V?W(P~NQSO|4s48(A} zZkjM_T@>V=QEJ5omyGXvRkbMaz8m2d%ul|`MR?E=z}P-c+%>IqO&)2C!HLJaVt1bY z_OxiwXg(w&(h0g*;T`j(r>4(J#z|6D7%fEO&TrlrKS)@C3UxFem)u3X zNB7j6LZsBoqm=hLvkXn}#8e4q-Bh>R5Z$m%Jmf3^Ry%#@MB4Maiq9NB3CVBk_LU5~ zF_Jjx@s=I`^qy2o42}V*Ic#>#2*#}f`#3TkMM`WfG^q!jVAzUfN?!<9CH09Cd68S+ zvxcnBi=*2ZrCZEgY)m0kR83k5NqwvV(rj39uZ&2=cBY_#-&oP~_S;ZOp(3c|VCs}PRdvnl4~IIkOi zg(|4F5@3jsLny{QbYvDC#v%a7j1_9oM&B83ptgJN1a8f7ZSA7!bsKK9b1tbxMq8{q5(ULJ5R%EZ_g*2JWZYT&q@F@j z^kU+L-;dR5AR0Cf$l~K-LJi z=^=sexB*iNBfh`$mZjTE&e-4jcK6ziBmY3)U%y7Mq!r<@esZctqourvMWK5(E=k;F z(q4;B&*mME(-Eo>_kBZ2|CAQTffXQYGXNh~fgD5ymx7dZNW*ZMr<( z(DFuF7xjGTV_kJc0GG#_uLNVm{0$p`i=nY=IYSdwD>HKkKm3iI$Ac)~@BJBxLn~C= zKwTjL_J^^;L2*1+Yx1gmMt53jYMyDpgd8wpF^JRx?~ELi9_35VR@C_@c8UJC)`jTp z$&fhNcfYDw^M^f7mji%a41WRU(OH;^#O>elTr)A~E>kQS#y04vGu`+fA-Tc1E8hL` zn8POJEHhPi;Xsy12y3c&P7SJ%m0$G88v(Rf4bv9dfMhk!CmjSNjUq&hIB!}{m4b)PO@!H*?f0ims9?hJUB zU?Ye0{lj@jkN?mDK%z7PG9N2kY&Se#!wWyoeFmFo0ww~{{e+MJibXp$5oMU>q@i1JiS2 za?m^}FtK0~;Y7d3|Xe4!Wf7DY!??>!LmC;S?rx zr+^ns++yR`Z1sQ~__1cUQy%$KmDfmyRg}sFrZ?SVAK&i{?oVO`gxoZ(J;UKMx~G-z zyW?1*e9E=>?%jPSo_Stfy5&6i&A$21ORQ81!}-Xut>-&UD7sD7uD&O|pFiE~{N#H8 zkEn~1h~u&T-gTNo-;)erGYg?u$b>bfwd(_EGS?Okb~`11J0XzvZ<<~vX{Sc*bZAQF<>7W z%;qXrhp;F45ce14C~kh4-`lKzQ~w3|u9#bSk6Oi>;^hXVL5&a`cz=V}#07tF%g*`L z8ueYi%8Isz%RfEI?>-_5ShtH$s3^uNdo)11|29mgHt02??s_7#)Lq07F<2(zhN<4} zOIifEMI9Iz62>#FJsdot(9&chD9!*f67-&%fKj^ijnaf@uk0$xOe!j}z96=ejrKWol}A z#7SSfp#<2Rs6#>0c{%*6arIlze?uVt^fF|W1|S#m`xg0~D3LnnEtDTa*&@2@_%=$q zUHAI>@TQzlb4H*C3yd$MJ=knhE^&W31A?81p55aPgkW+`og(%=|s&2as9KBt~pB5=p z+@ELCnxYgD?Xy$zV?StD22OrD@tcM9(>p#U|9-E~tiQa^8_JR9cw74%jeU#u-}RWw zpmupP&5AY#o#+UNS8epCB&t^fONYGa{l#n7|K>hOZS%Rj{J-4iKQ2>blD%FbMJX2@ z9kjg&nZ0|NZ$%9p_KbVxcm^i}6e!^lA0_~S|@qhS(f0e3yc<|lgbZS#o zWm%eCd}-nsN`^Ud(DY~b_j=2WAe)es*(Ls@`qCKBN%F8nK4WtE8vHKS>~4PlVgCUa z?WyUB!eztU;e2|Xscwxasx$AY{ptMgg`vit&gYE2bGvJLVp!RfIpq14VSw*V)t=Gf z<(sD$ro720wsU(T|ELqFK&6?7+1erf&!1`RIt79!o$(~*gj~(dS&3%t+1RYf`?<~o zvLR%ZHpPsE=g7z@nNa`s4>ubHvlOAi&e<^{oy%-gV5OxLQ;u0YI`zw!{_+@PULUtJ zC0t0&aBevd4@9K@o4YXGM!w~Hkski2Y}NVR-+cW#<@T0wrrD?KJG7BbQ$SH^yCFB@`{@i509}gG@GICy+ zNTdJ!yzpDz*E{SB1tpe}90&i)C5?;&83lwEu~omHwV%dF z)pPIvOvj(&@juh?=TIOU|Noik@FH<01aU}-w@ugnoey}bzuL@y zw@?YP^e^wbxY@`|#1(=Q>bh_6pTAG$MGYMSUCMn?7nFs;mJt5)m*KbHE${zK`#%@$|4jQY=KlXf zrrnm??ZxFZ)gpj`qc??*9wlz>442zndFvk#pyIIwm^prsMU=uGL;j2T`Q>f?5$1r8 zCt~{9Se`MC4Gv zdk}e+Xt2k3boUYEmwQD`zs=`4Z0b>tIaEDL=l=H>q@_YSqCmsu&PwYk9jt)`2)5G3 z1F#^)%+b4!lp~BsTlWt6$aVu08ZM`o#l)~s>Hn#S^GC7C7(UJOz^fXZDBw;3oalmX4q zaS05RcuWCKrG{BR*hf&3YHlrZxv$h97|pY=PI2n59|H3~1hTKyZmcgfJ3@AyA}yk^ z(NBxi`MIsn)$%ucd<(viZ8zGa{iGBs0xC%*cR^&*Q#Og!7n;>bQgAlnR{zBYdPTFC z_vED@J^c7>HT3i*++s(I3FNlAR1 zJJjqbKmV(qe6v0^xs7j~8V-RXk9t4DBj!T^U5gwM^jn36U3!AU`9fFo-jzr6P5=t` zl2LYrdt?QXH5CC|p_OHA-v%mn6DXtbII8US)wZqL!-M_!_494w&n0Z*D(CA2@yoO( zCML9#kz-W=W%+ahAw;bX?Wba6v|qd~s#&>kXS^jc-6*`7d9S($Mg9?=gv372!w8L4Bd7j*d~> z*jo?R)1U9}M&zhU7@I^=sgIG{qINk{aD~K`1NPrDT@1$%E&|X~eVn|EViD>I()5N9 zbpbi1@Y^ZcpB>VPUFzJc0Lb0E>(8&Q`*F47vKr5hESQ0MOPVpjr5%+$4b|0+5gj)_ zCBx-ZwRjsgw7o_fL87RX@~p|d+3bJ8M2H+}_GT-MB2&Kq~{O&n0$k!!q` zG*C+mom?(r9 z7wV?3xr5ry5sry<&Z2)8aeldTnSssVwij~TF>P*c6;h46l54@ejU1DnI>h}WeBjoE zv|=%#)Ndz;p4I2luj&ssr}CS-w#80mUi6HMHHyp+rRpF(&Ad9i&yC9{b9cg|lBZ!M zM!PheGzWCe^McF_3LmaC-f$|G8DwA^*7IB z1rn-Y|4zYH$+{b*yv@FG>d6+xTeLkCW;+7q!^2Q>xl;|-;ON+N)GI(5t z(4MkRGX}P5#mD509>4RTWgU_JWeCVAPwcwLa&dFzYmknX);F}m0fz`-bcnD6c5hoW zKgZEW6vT|nX-D=ea~SD1-gXD@uaYbG)rWoB;dZ#pYp^#9B&4p2#uQq2y}b4|vw;t{ z=i22|vkHRtGhXc#&7=W9nk!R@&uF~IOyeK8kcCQ@<)T0d zd`TUh4QWSC*p#=@eA>R*16wQ8-|TNt5S85z-9Gxm^fRGhmrM39>E)r3J#PM?RMKZ@ z7yX__yh>56u60LND&dT$Vf&krz>y%MHvNd@f1@S!qJYPJU72 zVf9F~6-h(}<}_6fYrZ;*l$(ucQGFrpPiqdXY0J3GTMi{FH>erR)#i@h_@K46S8Txz zih~16oA1bqGJ190m#t(AbXv!8+^FVn=-O95 z95u=wNgT}kCbu;q)n%meBLT9M7LL|;?!02_swL!OJue>$WuI^#qZ||KDHp)T3MXuW zytBe&!J8+P3@yqHPRJ8 zx0^`YfwP|H7-c$^Ku^0R)+nGWGho)CZ(G?JBR1_{#n$?mcvJp!zSJOxUE3wzRi7GB zHw6{LQ_}_Q*KN|g294ZTQ&n!?5taibVc)4? zw3I9u-J|;FGkp)cEYE!(O-7+RP+whKyS_5GwOMSTW)pUvoTPDqBg~Q3$+xb?*kCQV zw)sfcB52ai+B4kmk}34Rl6m6#yY04N$8|%5sNx?vrTS2QF}vR!CnGf?Y98tM@i1x- zc6en}AJ#l~ZpirlidmzBCswAhlh;6_T;R3SAbE10PE6J`+8GSJ%I9*$gS=EzH7T27 z`sn5)Go1sd=43Owf3uO@OAwnsrrpfTN%Xc2Eb7E-J_^6ixVu~Mp2uWPabAvMtW-Q% ztgBW>_EL>q8*V=J^>O6JwzqM$ zcYaux@5>XFN^#A*?>x>G821}XXK|iiARO$JI;l~zKh+S4-eVz>KkoN|rhE?9YW4;R zqv_iRT?jJmhQo96@vpRab&se--vsLQa-;x{%#mB3*cxg&M0R8}+492Ya^0@QA6fv9 z%DJz#wL98&w(q>QjR+)Tqkf^vvg0rk;gvN;J^2I!-8>q7jZg;#D^rm-p3s_LkGZxa zoY{O;W74zxw1owx@J_Y+#=2cW<`=lLmME#sFk+QBgKNGya-AZR%L7jW~ zYz0pGM?_oR*6mL43;S~FXE*gx2Ucs$7^fcEYOzyy*$6ZDo^2W_2CVQHJ%O_AFL?#} z=&kuBqN*-&@8!Wq{Z4~!sT)OTjVt&RCAO`>X6c2;GT_?Ag(Kz{&o`%&ch~GCIy*Z< za*;29)8NiN)5F8VvuSm$_kb)4XG|_JX~bsPTadvojWg4g80#NE2^Lu}uHNLqk(a%h zM|#Lr$I3>;yUdinXb`*T-u?30<}1tk-KwW*)|_B;l%@wkE}goWnCOToLn#Lm zKE3^iU42-AScOT7eY>Q=b!1znq*R~$>Ix5Ik(s{Md@An*6TCku#lh``G?+iZa0^`;J?*ql|=^lcQosd9G zBqlD~U2jvSq`1sf#Qf7~H}d0-Q&-v}xCEke5_*WxMuQWk(}{QH$LxP!)?$22M@m%e z*C6BULP*-J6o?6%I9+GY5C%(kvz3!0Z0%#nfQ;AGDwVE9Ov*rz-JXCS$bGmZ zfEx-L!aF{qu%GtY({HB6^>ndDvP7i@(IJ3DyU4>jCpn>YvL<-r(?r@0qP$|3PEN&w zF4kZiZIm?P<5Fv3Yd;+vXW=R9FrnoE&PAss8?!90)>yp9>1V9Yi;w<3t;H8UT#isRTxo)nnE`8#SPrkKNg}P<47b@|Ci*GvJHg%qTHzYes zrzS?<69#(bK7Es;F`5Gq{&zS!(=Gb&C`;YkmteK0s7SS4+??bZlL^jh5T5<|k^#=F zAM|y?ETu(i?Pe~z1=7{Bep$(MEsJhG)QJWD&PmdiuBBiqhtPT4ema)0B_F29@yTH9N!s>Ci+jg^&GO_gktCO7sD(7h=% ziVGjM$I@(s|*Y&8uynT272N(0wTgBA{E-G2hZm{?9a&KoC z}8)TJMnYSKnpPDjm<)&g#$HhZRR(FzK zN*OV&qn&1^x^;DR6)1H4Ry(Wjup5au$LIoJNrlO(wkFjW23?PvbS?INE?X{m-bu9E z;jwb0R~(l09>wQ4Gye&;M z89BKiBPTbw)(T<=8(o7tzRQD@V^KwvwLf#PDD-Y*OmSCzo*)9)NG_{SHpNs1!W8z6 z2l0^1ueR2Jg5>k7fT6N>Y_62~-T20r{zjD&#PpXUJ|FyZq51&( zn|nhA1F}u+EQPuJW*?<|4`?-vj~knlKV*ac$hnkC^6Yy0-CLPPlA$-$*Q%(_Ef_a` z*=Fzdd6#2#!3ytDA)!JaM%nHd=LA@qbai6KQXt!-eZdlK^~iyhf*4Iu>i>n=wM2Xn zd$yPC+X2^wM#HD$itC$QQTOXV#i=eoV)Rp!S?qY0HJf2bXNXq zZA<4vJ?}bJ-{6|zbm9W!5Mm?eE~Vx-4**7CRsELoLdRtF09RlMj&G*S@D1e{hFT~P zDK9wU`h10KqfRil0FkB2IrbJ{61dj;LKb%7k;am0Vw=*9IHV4{7*=7whs|;# z#WEtaTLNG&^6TPh_o?nzo6Ydrb2<L^>0p_D<6j}dcQ2BTMJ1v% zHAydy)q&ndl~G>d+}1(WCEBaGN=KslCrUz#WRwT&PS9O0rW*Y-u4F)HxhI9Th?$qbrBAGcSkgKL+IKN`b@Ee= zb!yblJWr<_)11IpmgC~t#VlET_Ux#*@c55wNf&~ajBst%(Wjr@B1mx{JwmirnMb>C z1Qi0Ho*e6iUEqS|WCBLnW0jdAZU&!DLi(UrYZytTh_jHHL zE=Ubhe6E!@sjvw9Ri;vNmT%M*ek(IQMiW8KXlMql)4P%{g$hJ;naR7QYF=bNy6;T7E&_0p>!TTiwhiF*aOM3ZsXTAB=nU$W=n%X;D@4hUDYTk<* z_hUs%xM!?LD(L1+yrjVtcAt>sAJ{=y3E+U&bsT%)_hJ3i9|=~uMB}Z_dFw~i!IUBi zj34zTgi1zxK#T~b{*LA zMzijG{SZ~OFF>S}uEha8ZG;`}_-giqH>o3Be;*Tq^Ycn4pYz+f1QlTIq^0SYBC(S$ zXu;rdjLng9sSHW-vZ5pOO?h3MQ@sJ`lo!-v81cqUoRbkGCoXz+90{FdH@_~)FvdND zymsLMBiD@e`#nb?E{^u{`9TDDeFVt_?$r@4Nqh4!lgtopjhYhgw=15~org?B*9`I< z3Qy{t69A}YFd7zU^zqxE@V)|2;(A>vS*2RMtRn=IwOS-V=$4jWDJ`CiK8{UUHi!Zk znavwPxIP4NaoJ@qU2Wg)qh07h}bt(KTrIaL6jRS;tPe?3@|e2PT7^AZ7y3I z%k3N^)!12ANR6>wQ+DX{T(X7LSCD~Y$Pjbh^K)W_BJ<*-HCMo-sm4~w>G`VVKO1d| zoy%Bt%_fZ}gPxxLGN+{T{7n~lEltj(VXRn^%s}Crj*OC$Q`55T*RYpy zPatHn5<2Vl)6@JMjsFP3t~da!mDMCW9!s-xzj-gcfOac>l&Y8 z&*4;bho#cEK=@7-IWV0+p5zy6_vdA^P@ZINtOWhv=w%v zG1PbJ+RUzz$l>}37nk@+!h%`5-st8Uj)gJ;Cp6y6PAI)UuihDv1pO#&HN z-0W=4;=4#U&2D)BWt%QkZ}+Ds`297XmO@xOVp@n%$V}`PXe!qZ~C6|5U`P>{Pv{I3vv~BuY z98Jt~vP#Yh^7Mm$Grom~VVNqml$NMiA06fNHR+>mv1?^7rT&{gV?f3)t}w&&h2TY8 zHW0;);<#+PM%f_EYt)!$dNF2yx{BYgXKqBSA~SV>t{GXzkc)h}G%YrXM2Un7Q`P zeenA`F)_dm%nL--qTqn6SnN-9`EOPmJl1zP-TyE2dW$kBE-A;OfscMa5dRv^)69R! zx|R%&j_QNtV5=6bCzmzJV+#P2aPDMSvio;qHdDkP_FJv>k9dd)l~4o-gq8mDwN8FS zIwoP!maOWmx%Y3@-9-Lt=wTM=Wf;%?w9E{IP;s&U-JWOHw3-v9JPOnbbMl2uQGKfo8;p*GE7`@M{08HoqstvyTl>b#5{9?`jS8ecTq=Cc<|Eo6m zIa>OEx7vUqSp?~{;s}QlTme$Df;U>yAyWq0ZsP}^eFK9<-1#@2|9dqOLxRY2=aDG! zd$U9L)#itM7%^ugd0s)4gv_>IjOcH|U#Q-}$PnnGo!x;_NOScEoyxJ@GLM+xrykqX z-Tvn8cljXHIM<+kCj+o{yit)%&qm?n^0W4epeVJ+Q2kBtk9d3{2G53vmf-4Y$IM$2 z)NAFZxk0m9c&hnV)avIM`M!5icfbFw)b^HqD-@#LI>r8dg@v4s?U^(uzdr{k1^oO|s_>+G!V?zzJro3|SWPu=!w<7mqBmGN7Vvyhn66x^B%^!Hfa zcYUE)uHGYOak*K)rW}W}+}JnKxQBB+GOQ?boukXK-^(;$t8VO$QZf4tdKbcUe7j?t zwrM->O?!r&3jYd6$-HJMpzT@u;#5yNh|dOiT)zu-t;acSJ_X4Pv`B zAXSAre$f@J(DCdh(tEjAf2=agYn!N9QvnD+Kdx1>80i(;OmFPGq&w0SYX$PG0F^lD z9!~d_Yx-5L&UKe1?Z<`+%iaA>LU3O93OdRcAm=o!C2ghtbD5&saIvYi2<0vn-Hv&UyeKj*%2#gzzO;ycby|wrI!V*&hSQgyKeUnd|JnYDoL! znzYN1yT47ZO3?Q-uG ziX5G5q5Y2$V*?{G5;!@*0mzbNy}HOxo*)FQ7H?6{^#Gv?Yl0Stz_+@gSBTLt%2$hy zRcv7ah##V9wqT29cUU^oRnHM9HH-)c)ax$+EZ_Od=&UVGTOnPfmLDf61m@XRt)}Y4 z6^q+4?`Q#B+rS0Lz{_~U17+d2aRjdwR%vfg@!6IDHXLfGG-~8L999IaTwH3$st3Yp zNyXlC(D=P>pM=dVq;MeiZXN#;=(~?p;t^(Nqe=7P7Mugov+KfsjhM&%^xyr37e)}= zLT$8ggZrsM4U_3|R$oNDm;+kwg%1vkI{~CEG)ZUs$&-D81bug(xoJkYv5xs7D5iUX z^VJ-F%^=?Wn!csLb`I!~37Q!_i`#HUlJ*nbV+g_C&E>Ivjjq%(3$Xog`^G^tZK^S( z!Set>b@izV2p;sqmLod012J|e5P=~8|pCf;M=exyFj+-HkWiEo<}hX= z*qdub6)>V#vz2f92|El};PhFO0?UmA8Dgeo`V=PAk`- z-fDAiJ9eV-T)^<~)t(P;bEHKE?DpB5Op@(a?I}$7ZFZSLutm&+4AEk%|RInhT0?sJn5D}54Kp^&lh;&JS*a#p^ zl$sEViZ~#kA|M@+9w7A45(EXL1dtYL5R_g*O9BZYXJ;PgeSOP#p8tn)o%7**L9WXm z$#3ty_S$Q&b>H`j$RWOuAkc2hI#Tir)&%S=mfwr-CKs(G4izs3RLNzdCy(?YPqbok zZZ&8X(vT&UYZpzsF&>DrZiZ=lR(P>D_aY=wxfVd*ye!oUU#qI+zYfJ_S0=quT^~~K zo`_-+?LkFpLi&^cPkD>)=aY^Iy3Y1iG#rWT0ZLvIrM5S+-nVkg!%&SrE5m`NRtc-)1Rjf^yULfF!v1KF8VCA1_hh{1{Uws@ou~FF zz>UpYdZFp4q7vsJYAiWdGP&9?p5*~Dga~b`CTN9ha&aP&VT}a6jjpjv?Iou`@ulyo z@&tQ%@>`dIZnyoU9W;C{d{%m*e2fPTw)6!U8U|_#rl&wOTIA27*L3ay@Wr5 z65N1*1>LIs(fty~JQc^jP5`R717xo<-KIJl;3W=|bP`HmD-qiDa6}xL_?g@Y|^yEf4oK!TD{$spio5<_`uahQ>a& zi?09}7>tgYZx^&Py~x{aR!OJ7T zj4PBEZbVTtgrh1xhiS=8Gz_wE3wTcpuFrB8tF%Q zgbU>rQFGsG=XUAR*-HQbD@+thr`qr!tsWsfa4`~kFn&M&UukkNYjAvPbh9>06!#wl zl{Q-ZQCO>D!rdj0Q}rT_-*ksxY>CvF+}8wwgkT#)-Uga4q+K%iI`i$Rxbx{H1^dMo zag;3Nj#aA$%(*Nkr)SI1kDXJ(6ENdf3nwGk&#gZ+z58if927g7bVR^aC<4Iv zLM5z@$oEy4HHlU9#>~B)0u{(rFAxo)bu$5Zqm8H9B^M{25HtaRmr5K1gS>q*%lBnQ zcrc1wpc=1e+&PpLeD(w25SSb4F(C{HmG4@; zPK-^(ml%2OJ+?0+X}n#!J!Tsgl#0>Yb8WZy%<3m*>rb45hWDMg`TY;GfUxi*dW#H} zX`a-veJ?=VXww4_bF(~cP~%5i z;aW;=RbjG=u1ps(OWH@f=K{i;*W(h_dp2CM_51Lc4AI`5S@d=_O%nT*Q7lb-VU_cJl)V>Lcg6dprsY@~qwII{|sZ zk5r62KwN6|0oO|u#ylx>!0k%1AImy>O`L4n{lbtu(v@u#kP$=APL}ObHB$MqwdbB^ z79RBucl1Qp>$%*c%SK;Q#~)Tl_J8vR{oG0b&a=+Kw6I2e<`3@(f5ZqhmbFRHb=$!k zr!tcBcsx9JKr!W7?E9dEMUQ%H2ZSyMDyD%d7^8$Y{|XoXKxUX>B^2P_18SX|owpg^z%*RGFb0}3 zkZgXxR9tLoe&b8yW**F<8Pgy%k)G&NuD){KF`XGi)h(av$-mpN9@>F1sOF)ZC#7(t zZ1lvwm>u}pT`C_D*b7+gegI2@4U-&P6M3*<{9Q0>tdM@@8i?Lc2rbF)+mKwXIVG2+ zBlP2H&r^sZjyd4mtOb_u=bNw(gMT^#w3Pr}`Onp+plrI?x9nT%4iLwV+CB9B)~R~( zmma7mvQt$t!-)~h3Dr+Q?x!jiKXz8iWYENA*i{5T=cMnD56@9 zxx#HZ0z;DeM@v%r)z*t+_Hb+!Na&gw{A460H&6lLYulW?Fy`xHPfpMzH8#)QxD{Xz z|8gdb6}abEtaCuv%(&vV#LopT3l8@5PwygH%U5k7)Y8QvN1gJnMH0Fl1I2$sn-($S z{i{VrO;@^hb=!7>5W@71wdKa1nh;SC@myS|_f`2&hnhOf){gE?0?<=WkJMX}S{*a= zZkeHBh1$f2TbLmJ`tr4B$G3nXZ5tsS{esE}-E3E~UQX%Iu!-sZgD}yq@KgVRw+3a- z`y!=$mS={6u%+abM$BO5=qr=m1yfB&%!*RV1oVVH#Xu!>?iwnWh#Sh!v>&q|x4ZEo z(x!(xfDlW4VW_YpXI?@3Amtb;ph-wbhyef^{X!BJVpEcCF9lEm<>jP}LPz5sU1&n{ zRDPA%(GW2=-S~Riu33hX>0S*$n4q2P?H&@ESTy^P7TqrVg&rrI+EFGA?gds4a(HR0 zK5$MPxch!Q%IrZE;~F?}f){TPJ6ly^HA`Kq1dwI6V|W2O@?+7K-zf!S!Uz-5fOk^} zVH0t9#aC117|ZzydHm?I_#Mb86F;dc8Diue%FgMjC*aapQAHrMc<`66Bi@zdrus|f zW?Zix{Z#z4tYu5&SD#@XQ0dyrw1BG=-d`Aymog`~Yku@kbBRV;i zVa*+6BWQYrr)8S@PmXj_(TQ32fQPad&JjyW9ieLpx2hif90A5!oasZboqyWMQ)%m) zJ5$T?>HfNlVC=22$?At1kpC1w2AQ?y)V2H$!z=YYl{oU3TW_Nv4A(LZ@^$0!M56e% z@=y2|C@Bf;W#%GW4`IIGFN&}$48m3sKX|Sgpde9ZrX&|-i1hkX9iv`N-+^irM4qt; z=k7J&OB=5tZKT40EPKeNsXymi zV*gz4dyeF6Q=o;7Zu!=XhlB2SMNcBubZFyE&!~2~f=!tOU+=dOigB^?#cDDG_g0ZQ zyD-F+lACLR#XjCot5SSUz&zwi))uzeFD}IUNDZ_CRCN=Bq)?arVCtOdyj|^1zufOR z#qs3+(e}5AJCe+B2$!8doeJ-SEMU7>PfG=#0PwP+f>G`V<-G#6NW^d10&?V|-N)`o zWTEyYLH3%x#V-Yl$|SgY-34)PbdfMpJVV|=6tTP1?g+-)FSU0G?xf*U=1%rAyOA!L z5_4s$5rinVJiO+Xk;0rRkv2C`$)hUUTTI=V*S}|}89vVzLt>l&k7anv6_s7^C%aXQ zEdCY2f3!H+w8SDmlgWUyN$DszU?B-prwW0#7O4$&MsVd zSMrz)5NE4}i{HY&`02Lf4cMq&Sj(n#$VwMR$KVV5toy#wB=-Z#s23hL z!DP=Kkok~~OEf*zb{gIbL!7srzn+}TETDGCX95$f*qHiBLIHx0UUstQ+t$*SBu=lr zwPoW(U&k8Ivi;M`lHR4Nau=!lp<;BZc;91FsWzIt)O*Jb-@~)<>5qope&h%?gWQ5N zHOn-Vmjyv_kMKfhDVZcf9Q~E*mz~r8$;3Q~0}Jrxg1K4go}4?1OHK&*7bkIDlgte^ z#+&d4D|)oNnUdw3C{Qk9kd z^mrnj)Eg8;>}}k5z)nOhb1gZUobF-1-dW$Q%)&S?trZyB7tEU>y3_8wab*(}3l}Bv z=2nGgA^TRdX+3NB$!>?WFXBw6_L`uJCUZN|dq;BWrH$S2Udp(gBRXzxd)JVaO`kSR z{Mpw5b!g`!UU>xBXHrJM_%uAUe~<0ss%^fb(97lCG3AkmR+-0sVn94E@dF31z3b20fGOQ`mFzmrawhlZnrZI}5L-@w1+8*;OeUZ4}^6waH-2 zawOw<6lFrCM^7^JwZ7KEd78P3QJ=zT+SERs8!!xv*TI5XFc1@gOMYNfZMU|BLU2JY z&+odwTk`AA#b$V`1VT_`vpZeam9$aL*1hWL5&m+K;BPiw^+V?{aWoK+FhEws3n%eO zf}m;<7vv8@Y~GUB4-YTNZfnzAE=tBiqI#T9+hnPFW!?#^ zSurdjH(P+U}1&U zT*jAUaPnr*`}}(Q^fcx~z=-f+)%o8^wrRNuXOzoLmPga3cA#YW177ykTPlYatCw%w zZo7&Nc+F!>3FV#CGcGDx0ieUIxcyqDO@YkGj(Wta-wgZ`?z>l3goeJ-d*FAufDhWw zv??c@&Egx(sT12;8*Zr&*;(o@4TqlP{Ju9S(B+Ej>@DAJX{HW0?rTL{m3}3#oJyZa zc^KuZ&}>9PhHZB#ssInfF{n*&N7xhCV_6WWG2fZ?KUZXN-a$uH_nud775`K(L6;f4 zm&4x>zmFd-V zUuD2@f{?B;7`?=oF1}wk z{FF-;+bs98iEj`PnmxvY-mC1l;4cLZiiMue8CM9*eeG128M+EOYfaBqWsknO6ecZI z9wfY~8f)QCcx*)0rUGqTBC%rEtZsImS(5^!)J@m5Lb5yNcGhUL$wLF4BlH)^(g%*v zq>v!)opscE>)eu*?=~Td@D?5~wt8G7#1U03zU}e26cBxIU;ZKv$+b(I`HK`&8<#y% zp&IP~$gfuYLcyqfd!##*0y6r=LzR)Q^i2jFR&MF&?n$y?Q*|j9!TISy;}KhjHbHyo zped(v1xQU3ql!a5f?aU{@Hv4&IXdo0;!K(B4wZvPe~2G1+4C7Cx}2sLi)KecF6%Fo zKHn2vHfHdu1nNdenm$oq`Hv|s3!7rjsh&N2vTS4hzvNNGWO>EU_CA)37e{m=YwMQ_ zsoZF@m(&}7v3>4=tM!kPl8IB?F_>a6>oB79_Nc=IYRM;WE%kyOgu3F3M6BB|z3NTW zVaW0!Vo5f3R9I}bPU>Ds#vS~^+t*RfOJUw0ks8EXz1|S-dq~<#kbYRut+$V425l29 zsvRs@&YdK)*0EXQQmn`3XTpOLLo`3{ne)O$6lHB*Q#GpU+7-Cc^+GfU;mb`{jd9gG zTVKG>%@c|}Fjlo^00LEmDH7b7Q-TPun(4#9Q#s#TVwBhFq>s*s<}^TT2G*;V}af%1qN59pF5dfVXT|ado!lF|Lun8{u zCY$G$n#$TSBW3p@D;N~1dmwrca+~%zB@-Q8cmvZ>@JcxE#|B&)x? zG`wnJX5tjFcg*{TEXlzjUUfU8i>}kaN-Q_Ata~BZaSN5qBicGQs=)|!MnUqdJj2vz z%d@iE_Q*j#;=S}G$Kmpd6@neN{SQ-Zo2y;@C6jk9Y%*yeE0G4@gG%n zN+{2Q?7=;4x)&$-A5cq&oI!TKS3;$&;o$4dnsg}HK1b`{6zxsd@u$HwmvCnS^cu+ z!R(G4F*$w2DGMX_;~sW8;S#C&br8*Raafo zu2xV!lHH_a{n+7eEC9qDH5wv+X^7xEd>E35Sh#Slmfy?Nb!CHZ^lIheLwokhiNXsm zY$sJaCy{45vqSpnB^cL?-gY6X^~0S>ay?5V&eM*ZHA<;yQ6IwRyRuI_u^cEOPB{IS z5|QzxgHa%S#_Ue9yErk^Te!T_yx^c36>0j_{h&&n2xHnq=L%iv1_g)m^4 zFCQ6c<)KXZh!%=ER0T>EL};gYn*Ej0*RNm8N4eZiAU*A9))z{xhJG2`0{ka}>maaP z;@FSofA<(A6eL_0E)K=VnjZjyCdC8VU;ku0-%i!V+-A=9QxGvwAM-~90wGSE)OeL* z5<8(OU0lI<<$i(PQqfx?9HF|TW#9$6dpm#*eiqicrHb&P&#}chK5sG{coEwNesOY; z@5H;H2o5;6dr8c8q6DDu?lXQ!RuzX(?LO2%@RhHZAHx05P}=1|%i;)&4HL8d1a+b2 zN!FwJ(*=NgR*nnlG_5ufSYEOKjOa+jpGieUokiu3O${%b+)JufLYs1~ciu`%PF{v+ zrcDc0{)?swJIA{y*(hXNzg+gWHIcyb*=_y{;-b{gH+ZZylI9l7D~{kDBE*U>U=St! z;w42N(NrbjxPIF*`e<;aubDcGuxB=B#cvbHP}|cqVq6C2;vw1I7jG>;q9|nBM(M7- zBvfX9(s-fM*cj~7B1~|t=*adY5^)yil*uC6M8e3p6s0g3D}T{=lWujpm+49me|}*f zIs2H?>E$2EaJv$3m)gmYn4X|B68$5&h}9^2&d2F)+dH+N-6Ozw7dXiaBV2P_l)frr zo+)u(D8#Y$c+{uP3rsm!YZk)gZ1=huKe=9!+}o zs65p53dtHk=@NDmpUbiU8hBLVw_wx>owfOo)IDCpa8M=ZK2?5gbY`+l<%!X7>P8{k z)9z%a>uS9)X6MeY1+{1& zzL*~eoWzAJJ|d93qhj<6%SUrKle@?)nUnXP>x5fDoTfa&t^(q^yUw2NMmXzH zDu37)p8$%=-8Ie4T;?Xsg+2LFHH~hlz^u1!Q6IuOa1TwR2XQ7kyd<(L^iMu0A>q&5 zNUWbzB*jN6R%h7>(xf=={Ka)$zdOS=Euz@!V`OgH*UCi+(|;w1#dTXVjWuDE-pyjc_!He~y%wCWmt*_bOZva!zc zX`Qbgn{El=3B?BzbG?ZUli&d%lx?3 zJFfAE8GpH|qh0N$u)_8uIr7tnrXyXorpF7c<5_U?jvDz^aLqNrkKFqyRB9LI5%$QB z3k}3i+M}{Wl!^}&TbX^xRD1_S=dM%$Wj>AuNRdtNi;2dK62;r)kF~$JAwlKgz54MM zc-+%o2vqWI!Z|k&S@T;oD~~hTYy#?nz2eBNhLZJOQ2z7J0hs_;Fep4jzW`f3=WI%> zu~QIKP!1@`1$H*QT6E8cMkVSg=XQ1PyP2dY=cXS}0B0eZ8ti+Wh47%=OsofF(1`sG z*J`_`EV7ESb>J4%H8<$2f%+rpUbXwtu0o@^I<~MU0*v>e8jVBx91xu6`K}k<=~9pA z+uG))L-(Sa6V^zk@3a8x*a47$=~KI83VviA*cV=b(5g(BJ*f6(-}85*WpL(VqJWA( z<~UEj3^SX1Mi%r(ds&4(mn*P*+_Jm}w3{6rJg1yXPv|n7yYJiO3sja$cu5ZIHLMP> z#r;o{#gFVxsqjAltkF6nwV$U_(`wZE-d`52Cd6b7rYo{lA6$W`@p_q1UH0WY1OS2l z#t2AFm=5ND0AF1a;rbSH9;zA-ye zhjd%-h!x7zs>~P(BEQG0?K#);0`^PWj@n%m7jJocV~0f)ihKL8V%00M&a%1l&?B=S zx4V-N^EqyFY$~yvp|pF}>U4(#qyEqR9>vs>dtZf0D)SJHbF(|gdlt1O-L$XBq2g~3517hn8=@$z0M;JQuxbNinS^pn+9me z3m5Kg%LP|rZN{5Fj4J1iZ)ZV(OViL-ek=ak38+v|t#=>!<3q>JQFwPR=h|>NN=Xhe z2DMb&tLAXCS-L)^VI6>n4nrM3J>Nl<9?U(gsU6F**`I`S64oxx#x_NYCtm21Mjt01 z>CS!-;0$7U0>xB58nD-W;@!Fz9zWvbB#W&9Avy+Wx_x~j7pszSR`9rmi!#Q|muzKr zWA8CgxUib91ih-!XL!K8NugQcbyXuCah5t96Ouh{Fke}>&)!o|y=b5WC5O{9F_xj5 zljm}BKp`ZAr#IsxW0HZh5qA2PAizHGYg=03*-$-ZE=VJNanrT8H*{b?-2bR*c=oYNI^?_==UV6z%ajeAjkkxg7X>tpw7O(;E@* z-q#SjiraR>%(EKzE?N1E-pSC%{b%y!LQo>M1e z+MS6f54peKJ`z}tb5}b4>_36~FmeBw&24VGW(9db#8{O7CP5kOamwqjF_s6anjg6d zxYCwxf2(r`T8`+ZYI{^BgtgOwwLD4PY8{Z)yIbgk)1RIJ@x1nQjZH#f6rgq{mym5t zSTEb$W+J!E;S?x(5s7h@8K7Ly7jB_EPA8zUa6oTn`hZYMj3iF79G6o9-}(eq$pbM` z9d4PabeIk&HUfCz7)?l;CU=)EOIHl|9(ds4b4of7GP=#G$2!V#?aToUv+B%*bNm&N z!<4c)uVNVjV>B1o*OQ$^-j&otyq3%|^Np78(pfRoLkqH&epWo=VuDugmXtQXjS5P+ z{0jFy%2b^MxK>tK4?&f2P>WvYA-YEfEj_6_HMzZaL zTEOS8B&C3|@IqD?Vh$OVdEGBpJEvM&ehT4a@5h@<(VVn*XM`6WDY=#r>6EJ*L4rCk zL`H|2xDC1O><{s@gRgn_#*|(}@qKIHYvY+`9+~V>@aJ_Z%5IeZzDxy_%h7CNu-y^Q z+h$Gn6_Mr*h7ja(MX!LubmW6efdk#RqLH>ztHj>+WD_INxuE~F0zLs%`K0JXD0+Fm zMp`HzU>z~VHvWN`83GrvQOT`9R!`c3q1n8OW4$#o_a$sCLecK8jsw-w@wjsw7&~ja zFXl8Z6>p#Qxt-k10mu%Hb^9QvsHju`Ni;CRaTm5 z3b~P#%Y3u(rLAm0)jA6z5jFOsyUKY(P}!DNsX!&zs|;stZB_kdQSEgu+G{R`SfVXv z-9aAkxl;aYy`S^tdGFT@j>BAa+0O`_zxf-*ke5dR;A5Z4K*cu6lb;XtO}z$CRs$olQoj}Hyo3lhs|tIV%y?qCP;!opa|5KNjhjHe%Qn9cG^DZnOsbVrJvU+wCOu9*Y`EdVA>j)Dmba!=u|M4vm0s_m8p-*qtaRAE5 z>5<5%w-M|8L+ffHt+A~)@D5~)c;1U|7RzwweHgtBw8-Jb-e{l`Sh%OQfR?|8u?d!( zh>w79y--O}L!IJV{_8mS1?&-Dc^$y_oxFFM1#~LHIR=f2c_4S4#%m|Cm{H$zStNc+Zc1I*wc$k>~(oMhM4-uhmaFqHPj-hsA(% zg9@GlKmL~$`RS9O2;LiU`oHi&YnH~8TVvJ#KqX&#PJQ(|jP~5rI!rvtteevHKW5^m z+5ZmaU4Fla)Rwlpj8%Z2u{0C`lHTnOiHU~6d_?2SMj1I6zA|6)zfa~*A0f7xwyy%0((!(qD2>@(t2Le9GWRHZE=Wkfh>0M#6XU?Y$;DO+DJz&IG ziOhpP4e93(2Ga!--2t94zvO;+B0g$1>GsOwgLTQp7sm~aH>!>OB1U6Xs`NQ9Ow`8 z(~kP-mB3&pTEGg-4Pd57b>J7(Bd-7TzyI4`LN9_|5qHZC&uJV2gLx72=oePDdHEVx znARDy9C-s^CcnS=_^XFI{eVqw)G*)Gzeg--ztn$QhJS6ozh4FzjqBZaX+ofYJ;>Py zqzeA=os<6b;~VtLumdlm=TTJ$#JT?QVeqYj8y@oWm*@ZUGvLo*$8T*c&%eId(`!OV9I;un53pBpCX`1~!vyB_=1E<5;AWGrT+-wm#q(FT z3|11%DR|dCzp@Uo&qB@Mk$-DAF`GBHZF?RA%!uO3wAcDa+W-s4U#O-i8em8_(;B0I`5_wklB6`^T|^#oi0%6s)|^KR(0z^N0M(Z6N{w&T#yX zfPEpD{O{}wu-Kq=BiKN70{{Gm;M>bU=cT%{|ITn=yTEMn8~i)_0xb4MFsESU{eLk( zz$BCUTVX?>ZTo&VIsX>n&25^Hajjp?6;vO1rzMtgu*N~)o%kZp{c6iCKLAcaly-}Z zAcCdX45UW>`DOlPBmchv{K}sH!vF?>GzaK0p~p=8rN2Fz{$Zf(kr5V)&BEazYYljr zAsoYy0Fb_FrWn~SJQ`RhF9ipbQvT6IlW^c6ONBWf6ItMDvgU3`{>nV;O<;Z`)73$5 zN3iQC?xLljYx6(ud;clk!LN_ZXn>1}CEJ8(n)ulX3z@bCZ4Py(%fK;+!Btye(7TmR6d&}$2{tC6cq?E%%T=nIbLu(P2~9Lw@CE^Dcr>sE$mt!mB{%VmFRn@SG>$eq?vC zqu65t%MXLgrGL4rAYfOauyQa(=fEv(P1BS2e`WjSg}{nq=~f7SbeYXFk1lMtS`{DG zk?F_&Rgjn=4Ms>`zHmi#GV4|aZqCT?J;d`RAMtVNalK!yPb|2^;<7)+Y@(2DB0Ws< z22Gge{c8ft#e;%#zl>keAfD*zkTBN+ey;yFf&cyX`qQj*flCIyfI8{mM>QcIWm-*J zn$Sw-4#AN9(68&invbkYAX0>4Uv-`LqZUhn`y1TZ1E@g$v&SRzJl?bv@OJLc!PS~L z81j$Lf~Z*)_$6Gn$N%vttmcRfv6MqL^34CU1v1_B|KyA9Nb+zD1dg`5fACkX&6sCn zjp+13ezckDN9hSmS>lv-NJvP4;>gfy;zxHak4 zj0d=&a&@mI_M67GFYGty!D6>Kuy-0N6o0bBA1^6*ad6;oEWm&Kum2S9;4@DIQ&@5i z*u?)g##E6d$$-)1Cry}k4i3k>cW_&{Dk>@|I}TlR#Rd$#`jvT$iu1-(FU%WH^S`@y z;u!+Vz*TAkp${>onuf?(Im8ryB^Zj2&Gpb-M@zKcMRwqSR*#3*pwSCrBR33i+JTnw=Y{%QyXk|IQ zc#Y!vfbn5KjQBp`;`qx^>GDR!F}VtUn#^@~0TZ5{GxGY?pIC#rkBWFiRs`grM;}8i z&iGMxDAfOQOZEP>rI7#RBC?Eb0U9kYmlU5n!0V!=)_X796*T;`rmS?PYeyuYr!uc2 zTmRf(Dt7{C*SZ4kSt_W>TL;$CIsoL2)RoLrR-UXF;>_I-GY8rfXn^%-2e6b5K%|KS zgiDrbSQRKSb^t7FJD~kUlUB*jQ^)=uq`&kL-m+{L|J%!89H}|CSV*sh4N|3%02Pq9PRILhY12GBb?e7Vz?dL< zHZ#|e@?BfVL{|CO=a|~Wxzxccn0=)#r@4W}hID7J*(@~Hlif@YJb?asm6Z#h>YE&<2Ys+q{q$L+nKi2-|XvGfR*y6wW z_EK+UEoBH`RXe_1!mn}TK8sShd&l>IdW z&b}D5eph9wIRh}LK5&Lj-zMaLTD#6jn9C^)P?Aptgx6d>KhW>+svq^)b=h-s;4SxE zVuLhiA`hzK@VGi%hcoHW?*~w1>7cEgT&?K_$A}R=-k^PebkY6T`iq`CK?to7X{bg; zE2ywWCxE6WH46Z1aX@kks7wC!iboT{f#n@(UDgi7UE2ZYmeP03l^<a&4}N_Q_fl8W=5wMXjGury4Eps3bMZ2(2LVaLz_-_{OH z=Oo}C+by9$y7$}fypUHe-qp~ZD6>8vI0=dYM=cP3R#a`bztgC&VqVykbII`Pj^ujZ z6kZ!UwujjsaGKtaa>vgB8OH1?J^0Bx6=(0V$>j=NiZS7lj;y(577LLsdrn;+yQftT zi}X26k6(gK(HFnr0yC#0B160oa5aafqI-j6qr0@~%%RG9!yyS7J>obuamvcRd@D7` z!1<~!rT=%;Wuzi`aKx{sm|eO4a3AB-PyrsJ==~c#+HE?E%|OU0NU~d&S)Zla7k#GF zo{^pyabBAlRZ)=FISE8%x(^DTg~-o-uvS23Ty0{DUeSH#7(W)`qdUx=u3UMrZ>45= zX4>bG^kuptv@hAwpvw9q0X*aMI&!;oJnL9YIE(D7LHAnC?_@{c+~?A@bA7cTC+4`f zw(3@?*gavIClsX0FHF(Mt5>?8OA2s%;rM{=eMdlF9;U`@SJ249bor(iUZxwnB z`v#6F@AyU|=s!;}{{;EGBmC&*p253e(DvgMGp_;5KVp{60Sy#W0mx7mG}OF{lSOz8 zx)modJM}ie|87!s#(*pf(U1Y}VAI=yM00CQ(*V0q31(ygs0R`A*O%tE9+#b+Kkx zis&A93i#vYG4-m`2+oQ1^NHu@4{%&SIn=r^CpJo*IH_j`npQRR@x-{(%gf7`O9(`T zSwQXU?S8o9BtYS1Jb;(6b4#_KY}|Gg^yIKsTln6r+=;$!wW7F~yXZ#|Ds|*e}=XQ_5m#guZ9nvA5B1TDMWb-N>+BStz?iG5r~f>X^`hX{c0T zbvvh9EhRLDMpsbE?7qCr#}Vr{idw~O)Ou(#{I-t&V>?b0dxX57)2-IJ|0J`zXl`&k zjV08odO9s&ayC7sZvA6NA$UTyyUV72yTu93kTtdoq!owL#XGv)h^d&po%xQWk7FWy z8IE>szCL~5tNj|owtM`P!%pfG(%7HmyAX_QMhRZ}JW!c^GyiwaVpP>N-?h8bTpF{R zKvKohaY(%#pVSn0983iDnn|9HhS;DPX)&S*AaHE>*8rXMr4K0Gh%-u$lWxqs<2;dB zOCl4ghm1o$oO-;}eRabKsP5bzPTlO~(Q`Y{G%Td#eEj0heijhkamksxAXEQIap6uK z9n?h<ZWqpK@gRkh7DAj;Jc!el z0q81Fiqi+R-zXOpHQ&qFVX7NT$<5u+;Xp{hLBA zx01%w?aULaXWaoOP`BfmI#!jA9&M<}C+n$ues5f^>6QsfseEwF#ZTLr8QxxLfJ4<0 z+&bK>&??(1I2D;rlUdP%v!-qQKb>34w*D;}C-k*f@2P!b>u^`~%Ry4Fz`S$E*Sf^b zT8GZ_G^Y|0fPBjlpG^lI!1nB{KQ<0j=T%~Jr2Q9;#5%lI=$9(2)!dal&X4ZA3)+xo zIuDU1c{oDQ-}aW;es3V6LPnjer&5$e*m63nS6KBr>t9lwl^d&_)vk2fIHVVYl-83h3i8P!&=q&Zt;#2^CQl|Ml9+{3Z{;3Q19848vh+%a&e zBGGf?&t+y67i#bEv_?sA4NCLU&%)#N3sK~&i7TJv3N#|ov!(0Rn`A6*QoTX=(@VeG zz1sHfTnA9uiX+#B0qh<=1-MkT*v!Nza0UbSqARoVVN*er6=-vqt-X+UzWEK_cu3r% zM$u;>cxE_YuSC8p#)<^$m+8D(Fz(WZ>EZrLR~48JP#i4G-zzKK_q>i%XCHXT+r7H%#!aO#2Q{fUa}_xEaPK$jSJ@qGvQm*zF~5njYm zd@3tIF{M`1`*(8hVp5ILd)lh?6!ViRWV+1;7Q-Fe)egDqu288xwH|E9txrpND=Fh< zp}~ls49L;G>4{xwj&1)?zy1bm$z?TV&e0?Ezqj_!rX0~FipFqV;k5j!lyWcqlxM%i zrmV)&!uNn6U|8dvRl=)hdYp$>xm9nh9(AyujRr_AE%2S;)+(k@@x<592G>H096F#K z%FgQ+!*I}VSbiIJIV{tsdZx(XJHxK}2<>|CGY1P#?2}8}mm9V6rZQQLVPgNqm&NdW z*`-*}wl_}2y7A2sGUnUrdJ;DrzY-3;lVhOY-wSMQ)d^9vqI6G^Uu<64>a5?A~qZNDG(qd%TzlW`Pb;H2I zgEN_w(0T31-@~k1fwI*?_8b7)Tgc_g6n0?fQxUUtDU8p!tZ3Vzwy@EOZ|?#MyZ|C>@RZ(ai53}Lvx-*A5AexCU z75 z_gadxKnNt>9je)_npmR(&hxb=(K zLLMwzUaYB7U9py*RZOu$*dl!__SQ=;3|VuwjZ)Eqg&sm$A-FWQY+jf<0H{O5bB4kTbXiwWuC3}`FKm;R~7 zVP@@V-TJxq8LZ+}2s&rrn`UH?%n~I`BG>Gy-}+Q8QWx(~syiIFIh+!^K5@^E#>N387Ft`?FTZ+i;q96AYEhpPKjM_Yu(I%bG%6&v*;aOWa+GFV3XC}_})wte>+DI;IjgCv_yn9cTc6KbB-i>3it1e#TxSQGwxZpuL^|624~gI%PmZ=36V~V|m>OEg zB9&7>W5V+fZ$rD8;>H!FPnJBeIFQ$ns2w+Dn!T1dU?{LWx}T&#rmCKuj%1rHTaiv} zLr*Sr`pywEhm<=EIgiKTo$uc8aUuq*!mXs}X*Fg0xl1d?Lsv0(8dlQfEUZpBwXH?l zebUj6#SRX*&g+Jy(9=uedKdb-WiBgLEz|zfBqs@`4 z1|!>l+NQ=h-ZpLZVH8dd2L_u;L+;pMN_jt(;+ImV6z6*>9A{c+R9t$%=LzdK2=Ml(Q2PG|v9B{um2n z?d}DZNIbmsLF(NDEtr^WP5)bd>820$hLibWYc&Bl)8h~lcPdwkO+;epjhixq&n=Wp zB?ivsUqUyhg&7{W7N`q!G~@?83pX2`%p-cHeD~u>1RK#hHY37hYk{Got0Zbn(XAkl1G1z-KJgi z;2fj-OtHYC+Jza#&Tya%R;x8Tymesw@pTi|aQm>UZoy;s#v^wo)w?vQQ4f)O*Pj<< zbMw?_l9(dV*wd=pNbEIZ!ksRXYwCuH);T7w$o1>v!>KA?2-@wo>ce*Vqe_Q0s0;P%gvkT5Zg znu*XiJ%w6BHbf#HGMl z?e*qBxs68Uq%-V~9)uy!eb{;3S(*__Vm|J4t{Z|wmui`D5qokgyoQTIxGol17*53U zGTT&PFp9jvcQt?KTwHq_#wU78LMv7Zaoswx zXCpekYU(R?rh@HK%S?#hvwg7WLCcZ+p_LKS$Wa_lU*Gp@R_6+rog<-WH#Fed>8q&E zk%5;fB3;ZYzooawx!_QDxBAdCJM9}P-Dg=BtYx|XeTiPT- zx&5X1_j3lmowLtUZ0|cSKWTQMe%z`2+R2Ey3ZS8#0_0;( zA>t28AAYXm7|}z}8mg#V6%-U$e*G-x$=_G@4Te_*Tt6o9a5NFLbzu9SCC$?Pnd@1j zKzFrWdDHdlO|0B-;-11v^-$TK{gJ6Q+gJ2%U-Wc&Iq<5_11z)8;4_~mMjtZ>DP9N? z{>ld=rSx}4tzo;LN^*cA2RVChWyDUCE@xZGx+$f()laq*~QT#}YF%YCNKeazPT?s%TUtmpi#R_U=#h*bEo{T;aAu z2SUuLf*ZG9cAPCF9_MJdks%P6iTpE4valOz(vuvK|6P%#` z9uGajE*~WgC+gAhEe-~&)^~@ZBSo#s0@0lITD_W)F@DyEfY!8E6l~gqkUG+ncAPV3 zB#T|OJQRs3rqHkUYR?KjlL!qqU!*VD*dWzK+bF(MGIsNph2Ma zGF;??hH}=%brPjLlSZF3FTkJHyO7gJHwlvXw)8%wL*A`WGp7zZFG8q2Icm@+GOk!TUsJR?7Hd<;`ljtj z{(78reZheas!&%MmK%n7L1YkgBzDt?BOSAzcW%Snj>^{P!iVScl-F%gA%>TvSdqy?6?fs&Hf(Rml0tx~u3zaU?lr9#ODq`p% z0#ZX!>7gTtfPjkhF497YbO?lARH~GO4ubR&fj}S-I5TVQb+-F`@Akg;!x{H{*dNvy zSq_CK^O^YmPn&S= z_43+mm-1wyaR z-ORc1(rbiB7A7jYrz3797C$(bJS~XU=RTPrTv1Ma#R@M<%ojO0dtV;hkll>;(D`0t zjW4P8%CJ7zn6b&=R7hQfB}a4V*!rbBgo4<|BRQn!(*d>0R?r&Luhi?Gn}OCvv*lN` ze03FtCAAuF)-Fz-IM==JMNz~?Q zM`!_|$d3{HCwlN8&9bw6zP3NOb0?Ij7#Tlbgm-_hPfxC>Bio104ES!9q-H7}c+4E2 z*kav<8y6{ESqcuEe+$vARx}OT5=kbYH+pH#pqHN)U=e@9Xi%cz`S(}AIEH>3f}+pHeDrfgzu2>-1^GeLd(RR1eA9D>|VO|^KQu~eh)mA zU`(o8NzNwb5K1%!Z(j{=5vh=YcI`|l+ zsp{z7#97>Dc9!@woIGGY@pDu%U~^(`RyzKfiR!T)!EbIwcAi2L-0hVxr%uU**Wz7Q zs_L4ofly0lMC1Ui*^V13Rew4hn)Whf`7#Ogu(Hz@czQ zd(VhoS>%k#)=%&rTToQnWEe@gd9tKp&Vl@$lJH-OMmg%g#U^?iaS-OCgEG4kD@3SQ zgJgXKIwzjSmgaY-HMV>BrH~ub^im0=n4?)ViM7(g+%={QX>{Ac-8KA-?gZo`;;^8w zNo3{}Y;6COO~WfLom*t&(5l8^LUgv|@d<&>k?%S~>kBR7(@Pwjef2creV=xHqkwga zR+uMft9B1dTHi)&YP5Z%;dQ+t#Fz@ZzV(8Kv^|hJ5rt!m$w2LW{@26&LP_uFyeW(L zEAwN3RXia-vWu>y?Ej(SQ6|N`r@`CnhsgW8c&(yXcOh+V@!F%u&pfEq4D16#D^Dqg zTK6rt4bB$zjku6nz;I<#CSJd!yh5Qb0fe8_v9yg1^GlnQj4PSl-{Tp`h? zn}vQk!;jft{92b7{nF)bHW(f0+&W0l^%;>>?6~hP`H82mkk*@O>c?>$Jo2?Z!%2z z2SG|0WZX=xenmBCMeegE14IotZ67{)NpP94)8an@-zEc$=w%!#6Hlfb} z2XPCq)rW<(f^Hb&$iLUjPstNh$6J9l;~9U}3FBQIF@;_QzxIB>>e}8%27>LIE&&!N=JhBC%pmv;R%z=6m7c|eVKZD#Gz#^ibstl1ho-YrM$#pAZuML(~C#;Xg#3Uqb6ITk}6eo&U>;I{!a|=>NmV`+uPq{-5FF z;V+n*f;9I}Sk4*|AjXR8!rGH=IQ8!BZ0PKfn@?#y@fGAh))P+sOI-SwIQM7t0h~*O zG&ckDdwdPxK##^4S*Clas0J>GbNk9^02d}9ebfL@)*eW~IsESD2!jYY_Vf|3b`u5K z2nwK!=xUKmzQrW}K1(w>Ax6mHVa$?Cb{N1~=s4yI{u(O(%Om-JrNr1JqpiG1PHB-9 zAjHeBOn4qc*Np<85ef6w*UwGL7g2mlD3Zv-o4?zR`g zH^h6gn|LFV+{61c(qf#~FB0@2zo;>AWhUAGZK zE$@}c8659*QI}&|l_ti5G5(JBmpqLHl?e|~6zxFC_iZU)Q#>t~3;+@9 zHf`ASWo0h(WxL7DNBr~x9dpg<hZmd&e;4=@Dn$jq<;4kQ~m%6#QM0M z{m@q2S)UeGz0)z)u)a&pEO?NMJ`Ee12kiYDrF5|j~&3p+jPRLvdKO^?x%LOq8dCLr9KVUB8%I87On%IH25FmLoeo?!m)XUkZg(k?4Ly2WavbXi0| z34bI(=fD4~fBp&K0eI4AS39^`g;t7O)enmi3X4V3X6UR{lJ-M2^BY7kudn%1#3WC6 zfCjXGRhhbKuKuyZ1Rw?CD*b$uBCGK4R`o#{wOXu*2FO`+3kwT>UPjq@q5gsQ&|isO zwkDfha_>+O6#)kGY5?)1@+EfB&W~GqkW!)pU|;VK6EOzNL-7eUhetFgPN(S|8sPh- zZ~O~f>#s-nGiPLV9o=4=2CjiCk8%uz#>T%{^y5Hp+kR&o^zCISkZ$@iY`*IMa62@P zzaE+cuSm4W3n7#-{&NL!|Vw+di^{JQ{;MAlL7 zt+>(1i@i~&ZVm9ocr8HT7Z*g)jgqdiP}zEnzX!$576EomE`I!X8v#iHn?uRp%nsK6 z0i1WPjDd5cwJ}~+k9*S^&Z$>P)Q}!~pQV*L{vG{j;}}58u5tko^uK>oJ!Rm?6>d5Z z9Xf9}7nW5`x1CZns3fq&7n7NMlC{Ws`JURm4`qE`V|8^58`PC-?s2Q#UwQMEL zR68>4R`cS-5}2V_~z9uIEM8 zIq{*q*Om8O09k2NcJa3y5;(Z0p-W?{W2%h#H1jJDW1K-d;eSFWjCLvE8~y*n7ZHCp z)l6xOC>H=zz)%S|Hva^!xIcb5ulgs&1BHU%y8Z+xyHYrET!m_qso*=!j%)vSb&y{+ zB$NVHFvPp!rT#&>Xr#bPp$IVL7?wxvP=QwihV^q4=gHF|@*r4HfI=s5nF(58u;GNy z;r!)i{nxGOUkI2CZUt`DZWIGU%E5hjy|5(RJjrf)1y1huD6;d`))J7Lj%_)8I<=qJ=9Gn;+LzPKk>V1*Ftd){9+Y#TFj(D`& z0QNZk!sc)HxC>>Emx%0WQrH0$J(KU-T|(2fKqTLF#6A|-vZX3>0Xv&i5paRN8|i_9 zE5|K1<)PN^c2qP)P-eWc$?c4yj~BqaC)3ZhEN{@EWUn!JYfuy7ytyy<>?OzkefKok z=Wd+>yKVf|qRQ`9VF?tqP%G$qGPq)n47OMRBgzFZ5x=s-0cS~*o(PtA;Gpv9P{!K; z*lr)@|}^Zy==oPqwzxJPwp%Gvhpwrh(mnY^BF+@!#j$h4IrvnyvuGtbJ^DgwN4 z{_Q(XGok?6OREiy?#jnJO$8*I7R!LP4r0iu%TfktjCgyS9=}cA085%%_V`1+-!2!0 zaD;UWFH``;9|^D*FX7^VEPKK=3)P`p1iJ2N6S2dX%4Q5e6&2lG$(fC!`5&Lm@6~1H z?>#%{>!v~l9|kVWTwzWCet8WVmMLv6p6k6URf&f%=XgI${%)xV$0gX=%TUGp0IwcmG35r{ZYf|ilwT(U@R=&*_*jXI6m$WqPu}W7gWr8?R?4@2Um?dH znI>!bp@Qv$in{`^&a;c(eE5O@5+L~A_L{I|vP$^0A#+MB0<&KFe8u>VU#;utSoFVt zD}bE{GQPYbz2O`kczYE)4@U#Y)E-=yk%CRh$5`V>Djdt}cEFWk#5lFF)ZbXV(qai5 zJqWZ9AisTBpg^H_rgAhkGJcx*W1GseU#iU^<7~|V*!@v4oyoG&Bb?q_ z%R@Gx-yKB$=6P>JcI-G6B6}g}-tW#p8#n`=#<8{!RKVHf`u1GtzdiatAICq10+Sdb z=eev{R}WGEp}q}HliK{!YN z^0!|!VW@|fDYB#s07j)oLC%Gq#CTAKW@rj-awZm*LNRX5wIzIBTBXdRDI@@FImm9r zg^eq(?oxUYy+BYlmAng@5bDwsUQR>9zJQhV#Q!I-152T#gT+wkx}MltLZwofUS@``>{e&O7Mmy@U_e@1&E|f zU=}Rq4H$1r4!4l^y{8*q*8vJ-E^zl5A_7L9RyN32Jj?72t&&}O8Kp;i9I9c!r2X`? zcp>0CkwpOg;A6{;o!tY9U>RjPJB+csaYBD=u#(WL)>rv#x;T}`D#gR{hQl1k5jtmo zKcWNsdAB|z(8RE5%XR%n$DZ|HZpHa=YG&KQ`+oZoZZ*6NJ(mHG@#gLMZLkoJSXKM+ zxVn88w)wjuuuyq`9T|GP0o0!Xv=-HwA}_0vbY1LD+IZhr6@~S;&XfK}vjA~J3pR8mOcghV<>_Y zsp#oku<`c|8Izxq!`!w*DC6BMUiIy_1i|TX0Y+~)swawMffl+vb zadBT;p@W?<@Q}0tn?#+t6;N0;jH54?6H7h_2#&oFfGnim8LyVN{`9_zA3!2sppA(v zAh@FT9~%A3+ULAh3cR)>)Ho$u1Gq!#6a@8F0R?i_qF#sn3XndD<>QDYBx8?x{1#>Y z7w6CIzXSRMZ#&W6V0c2`8NxRfd1E%tZp-;S9Ru(C1sgSEl}XkH9PsB(R@iP}im_KJ zV@*?eyao84{MA~4@R{SLI0+@k?u*JeCa=lEVEx6U&}u{AW%YuX9}7nMQJquaXGs)v zUBc@bu!$wX>OQjpBB@^!T!4CEc9;k{=l&_)($Bj~oD536|IlBSRVR>Rr zsX#F5zeaoWk>w zLo+RW+&}dx5EE6~}& z>XEG80`7|UAQTU7l0y0H@xS!$zTNqkj595mo?cM}oTkN?sxj*Z0myz#Su`5Nj^WZUK^)gWLV7RqSRoJ@qhskKlsN!XeB%7u1h3 z-|Z%zED9n<*revVH~60}%ajV;i%Jpp>=!@2hOxBi9&e$t$h;M%%F$dl!jLF*LK!_zR7RyxT{{9e#%@dl)K$)BUf+DA6NTtF(I@AQZ10oQj zwQKbd60HS7o>H7#?Nx2Hwc3CK66Y}yrJ5N4G^{sYztdOsq_k#1xuX#?=uq&I!YClE zy459O2y2nPa`M}gFM^r`xC|c|0tUy8?|b5#V1jp_QqPrp-}0g@tr)whLQTl=UM`_v z{^a4G0cLH^&L{wo*938Og`cJ|8nOa z@-L^s{-G4f=QgoBPRw$v-AEovX)ikX8KtEV?@;;uB>}Yb+{%`Vejt|fD5-8HsC6Ye zDcUmt>z>HC4^W2AmF*XgM8fZInT32GpqYQR2HRhc9eR#0@^b0O=};@R$_STI1ycOJ zx~brvy&9w~3_b=bxX7&* zDlK{|_(bP0n!GiVt^eixmR00qku9}I*ESzQQHzq$1#TY?8->I2!>nY^-7!&EtsHy< z9Nhu4?inqwsZ%S4%~Xz_BO}G68bDe%NS)y;mvV168hluh+u!iaLany+(qqm#q28l_4&MxwO}K?Oi?8PssWWY8)|;UWSUns6tObnqkt3D)jf_B@^2M&`#`v4_61 z;a^Pgq0L`Dm#b$%1@(bjFAftq)tzrpqHEM0kpu$aZkGGWOEIj9lYWPbm-Yc!_RILu zHSP|cP#ZWcg5SKn#2e>Di|E*olxdyQAwY$K_W|tsiFvlWq~F7l_q?sWduvZ`pK0C| z9LKNKM)g6NbJ(4pPFsf!yVT|CHtE%ps-<)w0%kYi<6!8|QcPQL?G z8z4Cd&`1HgMi%=;PrPc_r{vGziG%Btt(=bPpeS-wF3a*v!`Ezd@hd2P@cp2%Rw7K2 zRjA1DO^A&f<1trkz0;rV5dv?v@_i4e%cz0c@bZ?>)7l?UWY252NBf%Z386amrFtwqe=mYqT3vX_n z_)`0NjZ+ceS~B*;Dv37%V)7suBp^)U5m}9OoemHYq$aZz;+ZI5zw%EaW`Fni1YGB#g&bjFfalY1mT2epG_k(=p9v-|7r;&N5F&!>oChonV; z#!to=MV=v%7)JCG(&l0MbUN0n<~DRat!8@@AV{C2+G|f?&X9*|ns+yW3T?{8dhb(O1ma}@n7oGzb|+~oUos_of@AAJt^vNg+8x!5GL z{N_y~!8O0z`;Ya#YVXF4necB~-SJ6wfBX{^2Cj*Ub<-)#uF}5NX&6K)aYNqs>Ujmv zX)8@RKb&F6R`Z#V)U|>g$aX?-8Mpv|r2-w+uhS6g zKfVlgOvA{FdP97?M_$DP`8K+4UiZ+mk<9CN7u5YIhWA!Cy*i$RD}4vZ!fxdSeSZoK zBAEY!gLzv-r=@8*Yuenja6~w~*{(Bgi0g#MRi1RSS_$7$;jfF}kN}u?CF}^ZDHkr{ z?8|Q`W|KgR*VAzZTx4CjCDGPra)+1&&osM7Op1|i>~qcC!Awt>vIuemv|Z$+Wa=i5 zxtL{4oBaCKa*P;{XL_6Z8r|8A^HQzP6m}0jgo%6|hMY?ahRFFbn@f+I7vT|sPzvU8 z%OoWD&Qw`W6L3OJ#t_Y1g4`Wjzfx(N9dFwf7D>KA1f|;Nad=Va?bjJszU}j=#XKSZ zqyS)dO~59XT&dm@|HJa@-HF!St8(Dqc*-iwP5Jv@StEOSkROhmW^!&m%&mR#aYXl* z?c=ZFzlya>SX$n-sXd4AH2<)@IgdND0nQSW#0+1+D4lbLMiI;HjW;3@OV)ne-BJKQHPwc2*rMRXUtAGF3r1naJ!9qGKa+XY3(%(t%^JK%bNHF82@?hudi4H`EDyE#ZLLjDX0KTe zzygmu$4hu)aNGeFVmQ^7ez17cBOmwqLBiv-0rN)ki$O+SpE) zF~ZQl0lU^FdGTpTTCsb`1YLA!Y<|Q8nJ#`2v1yrr7gvDeJ%a7(EFY5suh(l>t8{86 z8lggk$s^xXnr{V&Mb>xlbqO+JrE(e9Ap^QWpsk zS1&2YU*Tfx;k_3E`>FEk+=cu7c^*(+iP!kK%z{JmCXw-pMT*bY@`ve~%yP%$qS+d} zme-)h!zI>02n&8k{|wHiHs5Ez9l$*sk#rsF?}AOle5SdXb68{PjJmE*zZN?AsuxJ7 zb4$G{V!iqJSqM3o*9!s4?&6b~7$pqG+bZlZ;f&k2*tPNSq23)&aq2{Uu?wxSY&NHLhK|Hrg;~+ z?No@7YMHxLb1;4LoqJD?$Cq2HK@9Ac=}+M8HvrLgo|Acd)=1F{h;^t}j6PTUK0r5T zF8T6G3se4S7z%)*3AX}~Ygg6ZJ9SSb!7%#5O0z3zRqttYj@blo#?c#uB#`>vbu2ns z*v2zhTH1(2KNc9I7P)U@>R=P{;YMLvk#%#|rxRD54kC%{b#7gwH{9fjU8A0Jn=1{s z;yk-=Ol<6>c;cNW<~GQrEFv6Y0k5L*uKlcDa1s}ykm}qA5zvF;(6y|^6fu&u#Q6ZV zL)JVATuRb4+gbZdhz;>C^B9vC>hZG;7Gg701Nsc z8V}J4!VBzJ4@PaG`>eBM60D2m@q1%mTjE-b=>1%(CH@~s>E2P&7PftJ| ziz;Z(4|N}NPmcjEMvoQ@ef3OT%{KhgQ!?mBAFEltz3-PI ziPIncNNk09KjOF%@w%X+bTMLb|c7i<{Vy+E`#8%dh~)N+ z0+-^T`tVTxd1Gm+KuHX2zT}p9cK3P3yNJTn+Jl|B)JVPSOLJ(`J9xeXM&%OByy3Tp zOo+Olo!zw`i16gR#x!M<%jh)~>2vc5o2G6*y(Ggi<9RMouN`8v`&=??4lMYrgqcs4 z*Z8Gmb2^tgU=(5r`?FRztXB>}8!EE~adTNQOz{ci?g}SoEibU>(VTjG*e-pC+yePIPMV*PH*ltQ9D=7JeLoyt=}>I0(?ngmwUdg zdC{Fro4fVa`~2S~Cx02Ayw6ht>yULy!?=Bbb4N*B?6LOAG|`)<1oKYWll!YpSzF>G zUQjzg8W$o3%q20;J}sy{rP)MoGbCP;y6)mJB}R6xLSEOMd8WT{(__l8!AJN>&_mPc z^mXkzf*fRFXTied_yJ9IxeiT6Ry`wpLD`(J3j5xHZ?z?LYTnzLKf}m>{o_Ovngq>`JW#XBvDFkqkrE z-&`6eom4dNOA&bW6VkDmy%!)({jua8d)iVM#Jho8cL6oMGej4##Ic)e2f3N+@mqI}rXZj3hXzoHQL#JU{Zh^NNyWx?;geN7Jw&74|=OfuMn#-|S$SwF0 zIBh6^jrk~DOgV4SR?znMRtx{20iFlq!|>2QIAPZmdjBX#K(GGBM5%JM!Pyoz={ zWOs3>B-@i~9-~X)iJ&-Jc^(ssE&67=1 z)e_>Bmx}Xt62Fv&7hb+$Q&ZLvQunr{?kJxwA7wku#W*x;-|?Q>-o5%zx^3QjNH22t zES0lnu8&*Kbi*h4N_C}6shw5%{;O^L16Dx}_tw?UK4A%klUz6Nh`*;834Q*N$zFF; zWN5Cs?%5qwE`@y0Ps~k>mSDK~leS8I?>Tww5)aDXIrWZqH|2G-Zzg^7TmSeDOrAvJ z(?4Vcfv%%ypuq0!f7w(gudw?YA9jXx@EK{z2`MoZ<|T$FH-7v?-)Oh>cH5YSf&LAI zKPyY%Hmno+Sv1~Tv2+}z3@^}2(C5#$F=fpmDe>h~%Rft)Xx>m`=UCcFnA$I_UVWaJ z;yP?o{`9*t(T(Oly* zi`m%HmW(9}imAf^V-?vioTh|m87D><>P3U@^HJnYLqSk$YdXGH0Qzh&yV z#-#$)qF)LqVR=$Qi$G7`KGx%+v50}*bh#>o6Wfe`sH0;Jq{l<*@G~+&)peG=ou%oA zX>f0}l01~~R0;CRC@~DSe@|u>5ouIp7G#uYl9~w+p()j-jaqAk8{Y^k39a&j^e)Nj z2@+p4x>K%eRL1c2Y^D(<>%4+V(^jrM6PrE>i@OM#I<$dOgXL4p$Q)FjGtLm%-8qRD zMQ-B~HgXdbj5g0E+Qq;4WbaLbDDHOiP0o~!oSbgxjs`EBv1jA&7z6+;>tDAJU6#k) z9o865rm-KK`PM`Yf)V@4SSas*i9t0=YBci=Hg_cLU5XdlPThpGBsn0=XnJdViJ<8q z0kO`6(+5Ms^Rh(A-aCV~UIHeeRZqkJRjrUOkXkY3%Thmm?~h%U5#NRsJHVjq z0&a$g!mQ8i?QTPvoZ`~KYsb^1tlC}lD_8j=Y^Mnk2;Tj9y&5V zJO@Z&c;zcl!FY)v1BL6j(y0U!W8uFt7Ksd~ffP!AXs3H2sn7E(24=QsNZA1Lc z#E#6PpD9b9oF{9{rJvV59T?J==-;DeyBK{ zXNbTLm%e`Xy6rn|FF^EY6(Y-S@1Md>Om1f2-XTW^u6aOdVp}S~uyz^PC#t&*wee_e zR#gGe51J@YHi>8W;#!#4N-*>Sy142CL-C~`jQB`VgZy|%>6#5XL`~!>+vLm{hQ|8`-<|Sg`HLJWZC@T?E4~8tB_=gsf?KaOcwGwrp)q^r*2eZA2 zrB-?CO(?15V9cDfV9BX_SD|p?=2#AYxlL?(`0hcUg{2y-dt`rz`PY287Idk)WnH(Fujh#9a?{Sr&4^7)dVNGFk*r+gG* zmG@9_dDhPv*nr|G&B^-<*T8kq{22~Z_#N!w8cz8OBa)b6B%LIU$0rb6b_L`#1iiro z?(z!C!Dkyt(9Uy<1|NdXAr%wu8mXQ9Bk|@(og`Ap{iMeHPFI=UsB|8zRm>&sliv4x2v^n$TYaUEr^!!q+k^Em>ytg?+ zPm^rQ!_^b8C>&uJU06E)bg+NPM-hSQDa*4p1%b-PTkz!}XkWabG1hRJVvBAhEmuTi z_5Bq~8a$o_61C*5qZ7Sr)85qKeXp>MFn-c&Ws#P)z@?BpPkXNO!3R#6fOfy_+@86v zM})~77TFNh>t+|Qw4g;q3I7?nBVjA^N6GpR-99&gUPHpel7Q<}o_rw0l6{>dTKA_S8oC zp}F0_W2Y!{K&RC9g&5jnvX3wMRP8%N{jzal^`vl4cMpG!QU$nF%#)X)5o|y=26Ga* zGiKFd(l*@sqB|5{ifBkJSl>LmBY%$pZ{I%WW4k#3ol;pL4BoLcTADi0^{cfVy%j!Z z3^tge+=YF-%XIcgxrq1l!Rk(rjR#|ow68;`{ji7r^gd6WMD`*1F^}@AvcbPt-XHQm zcf?RYNe{P&XhSOLNop5o@w-Vz7a*TBWxduM)r3|3MTan z-oUQG7l%0=DjT>|V6=Jba{2sk9@MAWF%rCJ=Etht+*n&kQ-(0VJTuLKHF}}b#($LC z9VP&O@LrAdB#}285WI}ZjU)33szVc#Zz@He_4EgyAQ?!3xHBC6?5W1a6C9@TBWSqe z(0}@xH7VMe&+MUXG}RGDV{N`2Kr$J9zk}A5v?Rq_#_E??YIwN?p)~`@o2Io`S=?F~mIy2(@zmxt zZ4Fu79AjP?-Sf>0W2YDc@DOy7nzVcFj)BC(u{W7;sQAU48F3}tzSp5VTt8)i;QaFC z+F5oLG@uLjbo9e2i$yF#Ie z{RL`*UE!Rw`IqTT0OmI_oWA3@Aq1?St$L`J3%}Rv*sZ*cZ6S^pSiXc{w!^5;<<7WP zZ6z6CAB@TS)Ti{_O|&06ec)DgWPYKmWTyEB%dc0{4}qR{R3xC31C{(p9SbC$+cY4F zgO7r;MZGsIkOFb!)71-IT75&H*pF?eKPM4wSDYofh5}OK+rwDWIt;#pWL;OY^j_Ex zcl2uFQjtCus8Nt#yIp2}%2DDTk)~P^2J^4A{&tbQ{-Z5&PggRL`f`v6@@tZuM{)Iq z3q_P{cnpZa_zVVJLe}U-e`vitSgN}X+=Qq4G}#4|v@FxtdMdYVqP!=(GOb16X@d2S z26D2<-gpdgl!T;@4=C_G*mnqB06OVaJXWXD;0Rld)cm1yrN;gNAMcFL{EY>8mJBP- z`l$+u2S}X6L@B7W^0e45bvi4oW~fr6ch&A|?~t2Q{8^|_#MNe&zj8EDJC6rPnA6$G7_o>L`Vs#z$2<#k4A%u>CtsYxy;j?LQTOCLif9Zp?904c| z7inD;R*$@<H!3PNrQESp6!u$=2ur7aNx2J z4;DDf>UHJNvAm02Qc8Nhd$BvD>P8`&0>?UXIfEu-EwkQOT67smWfam&O;90Z!jwV2 ztOto*d`VRXBoUhm4EBcMsQ6ZcS>#V#8PZAbP_%|$q4y$b!0;=n7Z#mOfAq8*O`E=H zgvkV&_EC6VBKzq>3uVl9^vKh#OD`E|($Tu5T97JB5E^0Q+TUZk?%iuJ;TtE>>WV>9$KzN;->m?swq4xM|WKW5wFOCXjk%x_vOuF)tr! z6vY2Qa0|*uYx6=k`q<&B&w?BhNODk}$GJAUo3-hSPF#BADVMhKN_3!yo~k~HyKm;}J&7W69T;w~PKI<3NTL)LCQ`OPYv(}!?1EH1iG7^ zy#HZ>e+vLJ+>)2PHKi}@bUzJGCZ)9v6esH{Ms*V>tv-!cNN(-lmGh36e+C^{gq!hs z{&lhLi+`C2j9P-9AFz5G!926qM>9X{3t~B%sKPDE1vn7BX9W?4V3tjwPMh_JJu-iR z3Xu|i%1y=3%bYLDx- zY_gK*b2e!lVnxE$Y!|{1K|e{#P}pQ12Tq#iC8=>FSc~Lwq3(%pTCS=`!5T8_&21|G zfTNJ(i)xOLxvo^jiPlISdI}kq%wUDrpe1#SIe)o-GoSN{mztG!&LL=<-uaAA zYPgg-EZJizK_?THHLU=|JB?3f@K=@CB(&VrN!umEjcC^C#aZ+DA86}mX8knwk8YJI z;(tY9W<>EUU5WzW75QnfZEgf@7~+PcF{`J~AbDzo3V6=B7-1sFp1~0rKQ*#!LFCbH z6Nw_ec|?Vldzc*Mpwt^@^Ll_VmaQy-@wKL9a!l{h|6Vk1^-xk{q%gPM#U7}>i<|Hz zeRaPP!sLuPmb?4(2vmLx-0S3jGouE+oNxzLa_oK;WteJUl?BduGe_yv7Ss{&R z#_A2(%+`WK zw#`AeuI-yc>Jn3mHRB3$dKa&NR|p$$EDF`fKx((%WF|JsyVmQ&bH?|51N)KVd$*$a zC#RVRiX9xTXKhDZW$HNu^76@{6$N8c?7~~$jZ3J4jmQy)If-js=9YWFKwtJf~Kh|CbiR#iwkFPat=a2AZU zMq_;zQGf@5wQ}V6zFs$ zOQ_$e*FDBnAwN7^`uJ5(CnJl#$9pEZT*u<0a>}O|HNRD2#-e!v6>9P(RkQ=$gZgX% z1)AD~5G9RiwxnT2APLs>;SCi!qQKS(8i}@1hII)x>+qqmEfA$2b^SPrEs|%s1}-$~ zsotwB&XX*OwP$q8vH~g-5)yjGC`wh6_8kKYFV%GpVMx6 zJ|(fQT>-H`DzkFwpyIv2>1_SS>5NETOd@Op0IWGB#TeUt#bk%c$ST)8&z&Ek;R0PC zX%FUPoxSSpZ8^MmoDET%s*65D?Yyai3Skhbte21taYR?$js9+kRvu`d*y(bc66f7c zJPO(^F2^x1OJ~6tYft?mscO7#)5B@Rz9Oj5h=+i+$_Th8331vb-aR-+(`k4VI$ek> zEqw7rI2Cul*nAY&trQ}R@e9|q*f|8PYXJ~uG~9$f#oMUDA(?-Bp!1<=d*ZwYx?G|< z0BcCZi^`-Zh!fC#R=X5YejUF;vekN3F3|w0mymnG-F^Y1tLAF`+J)D+TsX1Y4YTUJ z5sVz)+*wV0ev-VJW^kM(JEHrCH$RZR+?0H?SaM}PzJ14vC2i@6Kou)i)^ zuwHglSn5eY!C6xDwhm%{#>g_+tynS@J!-}}g8xxyQqm)Hus;ps$aDKd;uR?y_P-ps zm3fh^#6fhzG#Vuhi-qrYJss4mUfmk$_w!RtFG~-DANLYnYi;;MRVoZw%dX9MJ@zUK1vk@7hCc=LHjC=~_n;Ctt&0iy#za}(2 zSw|$Gc~}O>ryPNs-XSTGSx;}m9Cj6vnmP~i%mX1yGt+TH%eO9sqtH5Urg4vnyANoR z8_&q=&f}#X<<1_~Ay>T7_@1vEHOW!6yHb&wI1JNhFhz$BDQ}_P?CNHIEOg|#%75tL ze9nV=I%q4|Y2{BS`T+^y+Wnjd2yG7N_8ok3@Y8H%qpro^^J2 z7!3p4k4}xY0f}9-sp{^)Qjw(51=J~F=Cp;MPVskc;R*z@T{ND2`qsZcZ{7Gplz^=ohCjcz zbln!2rsdjn_o)U9;;_5vrAFRUt2%fM<&Wg{cC?`y+mrGpIlJk1USlyXsma`JTs!$n zpnmflwXnqFcrPf|6iQ<>(_ zm*3xE$lE3!*NeAk1& z2zk`UR*|TahwrJJH9@tBln<77X1&p8-PWcigevTgAiF1qp4>)b13&P#DBV1qeL>-qNNmT!Fuq3Z)W`~VD1PYyF!8G;xRF*W6)6NptO;pi zyO_B-qvuQF)aa6h00KW~$sK%e509|KKJCve-}2L$-W@dk=7jzJB`;xFe9S}YoYWWW z39LHRh*5=fmeGKko5X6yhu-ptz1o%<2$^l^XRIK!Uh~&p9o3POS6=(Uqz!cHC{!qi zf^pE;>MN*A!Ov#j8W?UeOoS}$*oIqb6!-%A&>)!J;~SkIsgYc=SS$*biWe#Ux-U|@ zJ>`C-(4`LIkD_;?nKR_s0q9~Uo$Wk}>Q(2wqz9ZbSIluQX%lri4JR33+X0?+SdLl1 zSt%Yd!B3-V)>W~)W`~a$8u=|%m8qm{Mr!$ulgyQv47EY`^5?cuL^W1w*~fWL31Wmb zh)tL~sSNQ3VdqBZ|HX7`e?hX$Y?9 zfcYIRfob)lS*&TfE#dukq>Qj;9#E@_|fIoM;Zs{qcFy^*Zx>2obZ_A zss@e1m6eK#F5-71dtc;}6ws4O_Lz;ozndl*?^wHIsZ*~h$W7H+=-wKTayqphfMadJ z>vF0wXOjEr=NXxO;lcl6@6E%ZZr?aiM2Si&sbpytDlL{Qv!q2ORI;yavdhjej7p0_ zrIKw-3$l%UX*9H}gt6}=X~v!mld+xq`@V0zz1#SmbDis)bDhh7Q@+ddeV+TdpL_j$ zf)V-NWjEFjWl6tlaY!8bKa=&GzMZBzK-pN0AAe}z)OuPxf@<48J)WgMMPHenE2-3b zWGgq0K3!`xa!ORWx&CfNo0Zty)e_TB5;izrsa5uE%M)iS%#ZL*?(rGYTJGT+KyrWX zS`O9LqNe!rQ$xd*Cd1~5VM5}cw@6PkC^0c>r;L&Xn8bi_V&l9Dg+|?d6|Ii7Ni5g^ zF8ynJnT1!iiQ!Y~<4sZ9y-fFbxxICkwxd%4z;;9D}T8 z0JL>Mchg9G2hehvo$*E|I_a)AkV@j3ytq{7oPIqOH{#lR-kxd}L=VGEc~^~8YT*kM zLa0s#wB!9zRpuh2;1Ih9NcemfPDxAKGNQM+d1|NU8MT}kBi=xy+RGEF(xRNWa6pvP zI_`Bna{an1S+@29=TP|x{w}MbA$-@HK#QDPa7LCsGhCqFW+znmEYG7&rkgu=%B!9) zATOEjyuCSZ!_-qV=$v-OWZ^OM(?&mZ8x-$pPX&IUY~_2@@r(Of+a!14Gg>MPLVP#1 z=_&`YUoQPLZK3Q>aqO+~mOx3WmN~pUlsz!VVWhiyRle!u)M!%u9+SzlMUJ_1bgy7; z?Z8e~*MFE&OYgRz^q)+r@Rpj&Hsf*6AJQ3b`l4%jBHFV>x~sq)JS=^TFV(m|AX@^X z^tZYE>pyphz(I99n0_Z7`L>1j`_8ES=JSv*H+}J+XKG%7+LKb{4OI*c z7&=;B_CTMLf(fmPsW`DrIo`U~|*p;^vxh zu50?a&UJ&Mxmu~EABI2VIXOKMj9B+eaPDt=4Z!%|%yrg#S@v!tWKHwi6pvPBrWjAJ zbFAKdRv`&Zc6gjWz=~S|)MWE%zE54#^`ABwUG1-MExj_>bcq@o66csjN~~h2QgBONYPYIOmgP>TONu#zHQ%2uvnR0}0=cN~q&BIy zpLy)q%GzsMT(VtTqGyaQ_u=k@T<7-AtG}A41gxp3_m{}CsZfyYgz5)OmfL(K5K!oc z9u0T;4%g2Ilt+B*mD6m2V$>U07g&9L*%hH)iAV6Y3h#=6L$k#t=Pnyso!XmtS4+aa z_-!pW0p6+-(3 z^Nn7chMjg1{&xJ2Z~I+XNl*F6Prj@Y+jWjK3BGSGOig~{J2bRXZp9jYG~3F}z9PJ? z58`{S^kjnS3K9b6;0eXcl#;C!##&QIpIkHJGLh5YJqleq_Ryf0xQ-C(bm!Z*v4cw<3%Z^%J!xXnt!cu$V(iKb#8&2NoPknGA`t^ldbyl3{kZO|NaOPgxDpY)<3v$Fe4zwDKHC>3D$4Gvr!~a?ChA?k-rxIW ztTQj=)Qju>Rqr+hV=0SsR?lG`KV|B`jk{0Y!^6~gmu2}w?w_T8p2NJkPV-n``JI?- zF1-T!;fS$I{i+RjPX*YBu_f<%M)yGAX*h1HVslR3&=YZ0)BbLjDL&DnEYIssv+-Pp z!O;`Vp#=?f;@&3Vvi)CTuNjAlI^_oETPxx>^^6J>2%)R%BycB&_te!JSG4aHqUClr z>`rWM(zQ698T@`@Nm5hJd;L~tara~pjz`~51@Y6WV-pv(ZR;z|8@+MWHhp1GFUmUL z<;haJDs+VOU&|yN4}uNXZL^eg)_)|i&~r!o(u$w*^Ii-7_Vi77_Pb*QE|gY=SzH_W zg5mqxNLqp+Ed(m;hp|ZVf1CB z@wD-Ud1aatana@K+fNTL+kNVWM&^Ou-8r^Wvjy$>Rwd8BxB^LHi-p}Rfu&4iG}Jnj zOs3vvP1RW~taEBKU2Zycx3R7)uj_lS!%L^QP|3pj>pQpPIVFv=zEo&uYO4ud!_?{N zHOS+sN&E86ks=H*Gk-T_zU=l+9%hOe_Iac_qOA^RC;NFV8Zk|)esDI;q<+6u@}!yk zzPw*;?!eDHK+G482bv@=-2!MAYzYWc|8}4{stTdqb9fyr0(M|}BQ(y5SQ=8G#XdnM z`SK!hJJ4B$TTJsl0K1;Yc&FsFO|+8ZA>6jKMts#l=|-s4vZMO4Ji&!ENXrtn^s59C z&thXoN5^o-mu#fLym8It)t}h;KEu|&)03=L)sN295re8u14F}RU}$o9dt*&qqON2! zG;bbmUkI9Wo|EYaN*{?JJ0MBwdng<;!)N$QBf@mZvRo++SWtO>W3Ik^nI#%t+4UB_ zjezZZB3YtNrQ2J+cp_^&y?jkIcnKIW6fVb?4Yk)DUkvCYsH7=m^Zzd4Mq006>eaE*3srBBoT;jN_&W(!$+YMJT?oUqSjmB6uSY_1B8H64C>N;%uJ*1EYTFFjtuXdSwL(F-Dt ze8D)ZwTv?0kY^jxNC|_G+gm@wqxplhM%m=TsMjA(df1y6h{xMbGL0^84Jo9JIW#t$ zj&Myy(U02Ow7;7)t1j`HE^~1TVV=)DT<&&RJnexN=9))arEE{Wu|xHt?4}LY9wGLP zBB=p=D}I<9h%SrbbrtA*`R3=I^KCs`*cqy3<{jOzj3CR@qb+w3 z;Lg>_7s9-35RpK-EOVia>6PT7OF?l{%*1}^eZGEq@;QD}%Q*Bj+6k%CykDjVOh7;3 zBXgjWOvu<_TnI_vR+SBTp8ZXY)8hft^2~d<0cfHAe7+Is-2XfrFON@pw^deFHs*4< z*0{j%t!}{W-$_{_V%-KnV+Z5LuUSsKKwkZ%1WzEN2LO58^V>V=%T9^sMv*+9;DM#l z$&}nL-W5btG%8`SMd$qt<>rlokz*OEF1{mOP#2H~tn)@+$8QR++rP^#x8o&f_>taz z0HcpzC|2ja)BBud&qF6Ogh;HpKod+7UF2YG%H{f*ezb7wtSD;1!xw4 z!!aH;ZhY^=SH+uUxeuc?avbxWS~YYnEjL@bycQXq7_La{>~Q&UhL9d1^~iPw42L2< ze%kPs_fsaOQh&sKy_G$UzUlUUr8_J28%*mq^(=K-piZ}}>!>iy@vK)t{~D#q$--{C zp{Jh!UymPbrq$e0(1zD*3*M?A&Hn5ep^y zQFeiTZJunC{&uosZmdw>Z<&jX#(b;x13AiUF0=wV+YtO)J?fvl_fphvD0Oe8c#uEg`WiCHmdR#@SBM9VQqXY#>FpGd zEMWLOx&L!_*bvy-l;Ux&Nr17)hL}i+{s#NyfzUrhIfRQG|2hhuypsVcooftQHuJhS za_OJ!jXI)VAlrcG62t9e0vllsdCG$h*D@ZjE)z&@GOP}nw@PuANxM*po6J z9H>>Od0TG~5(+IndPb9$DX z2U=y=t{MZ}$R}KABWfD``pTVe^sQ5Dp+nBMn0nsJ@nI6Bc8MGf=-KkBwdV*#o>}Yw zn6KAbAp`5=t9_Yl_sPM8;*ko90Y3#AXh+Z(TZ5+D`t&OxDm3!N3pnGqrI(0&mfhQ5 z6@M+Irx=3l<}3Q66Ice@(qzx+yY+4iJgwh)mHz0XMYix`1bBihpk{Q2+`G4q@(x>4 zQ#4r+pWLI9KbJxl3z|0B`tg?5R@?n)(JP^@@t~+(%1QIu_Q)KEIqtD>36JZ)Ps3|n zItr{U`ITCik>bYhrt+AF0mD2^DTyqu-_tu$%ZxgHL()OulOn!|EUBNQ8?Cfu=|}|1Cwx|Qe+C3Mr$1A%di7*p=@X#-&00hx*$eBHZAvF?Qxm3Lry`D*gg%@ z(uVuU8YYVR$>SsG7w}rk{p`fjsAM~H{cp0VquL$B^9=yDTaq}X)At>yxLTJrB%d?f zkQe2|e{cJ#OM+(lisbH`mr=<<_#pRf&;pfAGi-P)V4=N6vhMhNa(8F#j@TV7gVNPp z=DoL5n(!|#eJMTNJ(oKqn)uKo2Vb2tk{II}oT6U0kpDz=VTyn;{c(nQU;z)yUArSQ zuTpzXR3KJa@uH&kJ91KE?fDa)kln7WLh3#RyK?jLt=I4?K`$5IY2Q6qDCYP&m#0o*59#q_*(Bw$)x|O zZkHkI_QY+*spm-h$Nth#Q)ALemTq&x^RtZ!=(2i@UcG9XUxg~#>tSOsFs>x7miYBR z4c;fU;+Um-ymM-&fc)}Xm$66iQfcz?en1c%%gs@AOPuP40V=BqozMLKofzRk2ZslM2`KKn{LlW zVj;?Ew4Y{D9@K8NE#DvMc32imD1Uu)ln3RR9XwEIJh=#;n&p4ZxYZ=ZXpH>2PO;eS zY2TJzyMGnv12T&j&_ozA4O$KWNRkTx*QJxYR-Bs`CmN%nwt^%*kaD(y=%nqW?*-A8 zwgkIVd?`g61ZfDeF~Fw2j7q;}a3t-SYO2gzNeDiuk?ZywN-C65>h2i`&SgZMw|IU( zs_tMtrQ=^MGd7uEY5W);R9lk8-;DTZuI_0=9v8x4~8d!BR2O9^U5$(@g1nBDne zQjP!g>gv!QIkWm*-6lu)@+|ex;lDNUjLtQ`Y_hRKt$j?VY7g&)KJcu`=~vzBL+?t^ zMm|PcU!9kmV8P!#97XaD7487Sh^)gBG{p+bJY1pIJFHrmHJ z>fb}CU7eTQE!DO>mh=D*9z*DM=ug?)Qm>Q*eP-e0jN|%D6S`_cPEmHe%ZszOB_lZu;?rR=f&M{Z!u~B7bK+6b11>+Rb>k#d< z>VU^X!l)O-$f9`8<{~8H?yA$rOF~wW<~j4uZ(DKSUZ=K&a#RCTkpLB&y=hGS&H=Q@R+C~NcDQ~|jW1XU{xAl^3Ryg-E) z*&4wHL^`tlw3#Au1`Uw!A53^?0i|eoaHjGc8h7N^Le2MLKCUqVj9=7Qcc*C3TR6qG^c5BegenZYy6;#xYlutYyC7Yt`*mV0_ z((|ER2uoJl9^$~RqjTK*E%iowO==2S01a#41_Cysy_35IqAf~*8|vO_^UWLfoQ6wK zXVj-@1VX0j6rb~Hn{F;tgN*)*(*3=ey&FZTM0_=y4z`n~fra|YA1Y~+HAE9nN{F)! z&cToKOWnAB-B{qiED?UY{!!?Tpu&VC^hk}K`IS_e_m)7-X1(LxXxzc}oa_uP^W7O5 zhqPPC$(AVT%^w#E(nKEj((OboyzfW9S2xyUPyu32aX#(Bq>eJ5A35USedq*`gtn*v zFa0VEyD}_GV5B;>6hXhsCsUfBpv2xp4P{)dc)$CzNBD)f9+V_ECC=OmIuMjR`;4k@ z@kAA&mS1}!COLuY?Jj?fAwpYf{9<<}NHzt>0*=5zp@(7%`~mukQewIjE97~kwvVpX93GvehY*F`GOjYB_Na_Prk{@5jFHr_aR0CZhFv%|z~ z0?d&R-D|`H-iS{QXb%1UG3hcbiu=9;TGPi-l@l*`4SggagZNn(p`434PGa@cmReU3 z`(JqReHOU&vgzaV3+5hFlMEj7j$uGU>(46&U*d2Hzr8?8F}pV1gf-CG4{aBhn>SV) zAa!%aNB|*~D;Zl~^W|Ms^01I9LuwpM;+@GY1NG@~fGBs$$qNDNGw<>;s$Muhd09kU z-Ms*i$kys_!lY6Y{f`0{fJ;k0S~j(KB+dB@buM+#E03Ff$Iznt?oOJ+0?I&mP(_if zMTzY@F7s0H#~M@cUAe`;0(QUiq1ed@c7K*H;3Mv!I`~NZa2Jl$KH3Fu2Uu#3bN#l+NUyKOFR2U`Oq7k<=cm+{5eydXPS8UVXEU(!z0oJ!|yd zMO?95?z@3UKREE_G}VBqiH&=jGEZqLcjY^6J)&jyasqG_TkL`^0oVtUML z-zFa_&l%&IM0f$89#biBBHfZ+g><2d2m?=TJQRd!~vYPNV!r;m2Mh-A0TG+Z={{8{)(1ykGRU zx`so?rNVEh9^#|aMWVq>Ghd8vJQMNcy+OOX1K*A0&!gJCSLCi6lsy=$AV?}4fXg6&L3*`Z1pf4hpp$_-;|pTJf_Wvhn?VBkFIG4c=rmv ztCD!;%@ix$1+;Ny_bGu*DJdzfssI&EfzVD+m0DlM1zXi&=Ya9%1UnW0l_B+_lB*0h z7N!Cip}{ya5z~JjA6xw5{X#LNU1xJQK^qY`Qlt3;371BC>zk3qG7L$TU)FVhxR~+a zS_`E?;E=}!!s;Eiknbqgj#erQdYNn%5okT{$dQyI#vN(NQGi=KC>uTE)qV_`;q1G< zL_2%dPCz&*8?>-O@7=fumh^;7+ILy^^z`(K&JrJK3T#ZrvBS?q)NlDgx#w;TpO8k)P#2Qu--JI+{&$rjiS{cHjKeFYC6|gYlg}IL z#mW&T-|6~)df_o?x;uksU)r76gYD~AEGNkkr~pyfa{RNMz+KTTCZCf#poR8qeH=v5 zC|oAb&XEcDyMuq1Eslc{;iKY1c#B21Ok^%1SJE zR^7ddgzhhVA^C3(XrBT)zGJ=Z#Q}cp$*T1=;{s3cS|TK`ZXl*r85~b=T-GPy@=Ex= z`LKO`?`}Re0+^Mp67<~-vTh#LZ@h}f%?W;L5W2{Lpw?(RX3NeR9%bfkIff|!bdErxM%KcB!cyX?p zJ#L4aHbUxgDr@MJ%xCk4!2Ajt78t6{**FH=BRBeG3h4ADr13f3I1C&Bv4Ku~v=FhV z`@896`xoiE{p*a+zD}$RV@J_4tIgFYcNJ0yW;qi0jBa*7N04ZX{r;Uhc*VGJIuVP- z{>Zdqg&`IoT4_bQb5|77t3Ga_SN>`x((?G0S;;jV=gUqeE2ce(V>gyQ-eIbDQQj!y z8DH&~oq)9d5ILz?q)wV#m}Xlia=0h+c>Bst-p4n1nwy(HwMR-J1f3MSp2&8GE9yU$ zI~)H>9b5Y9n-Q3jCl#jdOPQ|5$MV)U;Z;##O zhDDdlMdKMw&^~lI`cRv4s};%qkaoS{r!wBgK1@A5+0rDKc;Mr$T_aJj|G6gJ&O`MHx?Ryga&_QePX(C_M0*i z_RqAyrl;VfcZ8^D2!j}l4t=C4{?PnCvXH@8tX`>oNDl}_Gr;-EM<&DwDe3E2derJ8 zLCnIQk5C+;kR-MBydFvLAg_)}*D~e);v&haZ#+>-Me$KQ?pq{D2}zR|?5~WYA;yLF zL@KJpb}7U{m1BF`vDVIAKhzX98Z2Sw>X#MomXh2S{&W<6{#iEgVW{eRM4#t-QtIsD zlpLd|5ZGRR?R863t-y(q)wv&=Iv+1jBqSH)suS+c-!HXoFZU50s_ z(1igEM3XZuaM;@YD8rFCe|J#*T0!SCr3d2#8wJ?qiJC3+7 z{o6SH_RqlOaQrxPpI&tIDctZ{O$o>f{w`F1adiUkBFk>;5^8uH`BKHz?sI3j!2qg8 zob~+|wKc&FX(*mQixK{s<^1uQz)uK<0Wp&#orZYx0*uv5W_ZI|c!PXZ;C<6A@bzsw z%2)HvaKka=%ndsFAdC-5tE||fw*SWl`Z0*VK7jNYF|3^4GR~n9!z$@r(Z65!^C_Dg z!40aCz~CgIJ`J^2D*A6t`9DSRkL_|~Kg`V;g?llFM&UqBl(}w``ayD5Z|yM zuPgOAvmX3$;ibA7Ki~bYvr5ti4<-NVi7)HJK}Wke{(S&{e+>Z?INiji8b;%Y`>x`{ zQ6?b215bC`ons4Mt%RD0QJ-P-ybQBB{NCI=?qt3h9=!M~&vBC5mjC(5+OSYhq?&R- z14K*s>-;5V_AhG&BjDx*t*To8w^Gx;o?FQ5cyr6ro-F@gp9~=P@R5rhP2iN!7Q#sX z(t!2PN5f*k2)KAG2wbuD+{6KKtyh$`z|Kgx92c(n&jlf&{?-i1pmt7Jo}?sj+Nezh$;OdEfPkbivSkMr!eKVVg0^F&nJ%qQ1S(E$nGfQ|z2 zpe)3N#WdysBV6=UO-;?|Y~w~$1Q)gM((R=)=pCuEfmQ?yW8=ot7!eT>mBIXYrPLKF zuBTJu7a1HbIT|#Ew8-W9+)hYlLR73tKR*ApfgLyH&Exy`pP$UUH|`8Y4NadiT+08l z4*y)GWyqpRr3SSoogaoeqOK7sH+s3pZk(w-C@{xYDnDywewCYFbk8lYs3K^!N6pP0 zfzrV?ujmN|+Goi!jr#f)hKBU1lmuB1$CP9b?GdsEgnE-{XUn3x@*L$txTtB@73f$0 zIig=REEWffk-2~0&;q`Xoo_+}W3$Zfk3qe;6|Bh0kz6Pg^Q<|l8Cj>R>mbm2_QSnO zYYlfE=Jl;Bi5F*ha5Qp~-8^C7O&0iOrDuiq9qo&$m#?4NAF}F>#P;nL0AqUi@wfO72CX zfnh0y=%uwfhKsu4w#wWYggPF$kS#uUK9Y6OkDC|$Vi;0A^jtbHOE@ookRo7S%jjx3 zq=F55eX>8+ zV9YYB&eH{k4c9K8lL5!CqJaZ#WAzhz6cd;oyP8IBHISF_xbK$T%t`}so7A7)fR(>m zdR>R}Jl(!R;Bn`pqxZ5}0YvmX_i6>38>SD{8>;k!>``voEb{viG@f0cEpjpCmRWU{ z96`74MRF_1%Nan{mgfn1;eLPF9QUAZ_8x-8J^S-i&Tq>x2hmw8F}_{H<ht zBUgXF}L5QS=H2I>$b#+F#kn_<7c;)9wjnU+Z*tqtmi0i~V`nXkH= zBjhay>d->=>-JwiSDkmZ8oUkwx6n|oG+{v1QYa=N*-O7T;?z2Is}E$|7V zl=II!-&qlC-{hfPOl)`|`(|gqSyu2U;+cf1e|!7g=~z&Iq(q8QoZ%sE$^yIy1!|Xf z3z4sqMRWY?Xp47FR^&F6OmC^%O|qQfgK{on_XVjP3eq<^6F+sFvLPJ*`iX4Wh!<=1 zbW7ND^ODxmlI`#FcHUaJP?elHXcR9AzhwUSz^Bn5Xx-CkLCJa2AxxHUmKN?umQp{_{)XydH zF;rQvWSOs|S})Ua<+E*aJWUQj1pg zu*-Ige1VcKH)!0n;@-UJ0kx&0*;bm>s5V*Y*Sr7pvi|i|SEOzvbeMWn zXU(TA6)6dmbOwH)uxal%*H`9w4}G$30O`)SzvuE71%4#c0Q>=ojd{qa4KOjU1By<+ zTM~`N<8(?kjfNa@S;*X0{Yomv>S;r|I{Pxmvw#-Gb9FZ^NvDx$V+0B6liQ|13pBSp zaf>$J0~IaVKyxLaA7$DC7OYro?eZp zCplIwp9@tPh(*=QUFhfhg7-&BEj+`ow#znip;EKdjb9fW$ubs1H8#d@i-sZ?(69-;fI*+)tS-~Zc`IuO7?ZB zA2c7mA|51IoSd`YYld~kN+n^9=P|BU7igXMV^JSTB}*aTfeT>^gFN*U6NB9xA1cH(m%@rm^^uBeqm`R(U0<#v;6l1RHWy^8Jsd^;W*4B1;wld3=YFtX`kff3?Ghl3O*5x{;QP z;bGR@q8H3KBIiIQVUnQZA1ZO9e^fcbpeIwmSC^06GYVWxijjHd70!Zs`M#n&Ouypw zjgm8{3;vwDSWr6pGUUZnufevmRC_zSz93PHZG1hE3TbZSX*5wEA|JXf3?{DZL49?yiJD*TQ>(Wpy1BY;OfAdh%KhpaHxBUbVEpH`=qIM zb+#9S_WZaDnWpYS@hqmwR-7%5X|#Uf7OTvSLt9+xo5R_v;pPqAP15FLNT@q#Gap~5 zG^kV8bzh4O!*yk#X8QDH*RatGXhG?Au6*4mpy_z$uBa?L6w0ckKO~lA1`h$E#p_+N z%=t5oz*X2Lo10Qnb-NEte*yCfb&Y-~Rbti&Qp` z;lB&~kuS+rxkXQ=n26bUz#i|Gc9o1VSx3#w%X><`xVqvJptSB%`ZL1$tDyZk&cFu{ zrqSK8K3rPY>Dya?SqgUg8hn2be9txk=8XRGH?Ta3dvAg_ReFsJwNsk-x6*}w8pW@{ z{{=IqTXq9B>{ZE|ndJD$UhtH788^2ANzeg5hwJ|)JHP(lJ_y-Z?7eU_*nACE{`Jv^ z6*IkH@ka25J%pi59<@YLYzDuL@FNO;`=lWRtz2ptJ7-}5MO5(Xd(`PqN3t}P+Ah$AcnjgRRyTo+t>cbXjWE^L4p}IP zR_`K$cc782GQ*tlOC7O-ckw?Hs7Ta}bAm!>CD@H(igw4VsKO*og0TXkvF;ZQL=_Kwt_oK``1nNw`KS^o$cj? z@igq>DG?1`v})5U>$yQIm$)puwRU3~x9O3l6}PrmlGf)~H0+;4?Tro4ls}BSY}W9` zMsB`>nbA!ex6joZ%egPVI(EQa;GPWW`l=mIFNWu$UKgd>p0)0e^r>?W@N_-)D0|d@ zlx`do?K~>+8~t*|c^)42+RTV06~kKmjB6K1J9+;?6-@XG-zEQIqZ8cRc;Sy)A#}Ly z#^fd-!Q^ng!9gt6Qp!(TU6dwzrLTm;mGGyGU>FL|SNqN>OP4QK6rT5g<;IP_2*vRkUeCY-O zeumaX)4uK8_{@|3#2HpVj@C#hvacsAC@AD)MGZe~>g#i$K*#f*4^@L}pk6%I9}`c9 zA}9`zd6vxYu0(2gDG|5z^Yha`QsG|-S=dD24!(3RzI_irV{-Y3A14*SpL!QKa@kRe z_En+cY6g>f3^zA7TVO_(2@s%O6XK>`GaVsv+HngK;C`IN*-!>VO%JYHw~iWM@lJEm zmz_Izc0(RBHiX`&hqZiX+Lg=cDT|GC0(IswyDkp5Ov7}y@^V~l%33Ls*O~AXCYqP2 zf1Z`a@dKIWAQ@`iR;c>~G&IUOaoU6K#&GR7Ps5MY`3yNi-v-V@76x6r?_S~fS{|I2 zS8ps7y8Y);tx$k#X-aK$mK=$-vZk8TwNe>&plOpUy*h*Vm`;6_g&dwMg_YXC-MZ!R zlEt)?@2erQ_}{W3b%Q{Vuvxh!bS){rKyfDoVgLK$Bk;V|YqH$j)ZmH}9G8M;K0hPy zZsn&F@-i=TcQJPxhJ$$!IKaPPFSerh zJvZtyGYB2JTBS;`TY@eMhR9-$76@hSwr$)fd5274RKTi9Xr`s6d$TqP@-v*~a(Ep# zkGb%Q$AqGqEB+s!1(N#;2M70nnV2LEQGx%qp{(xk&fQ9q-|#>Zg;Nkm`+46nST=r! zkJ&K39aua5y=!r%qi9Zn-uV z%TOVX%d*_ksf4yW(}o}M99>abB%#Q|$$H|`!=!;L?p z)Q{&R9E>9DSsr$tV{;XQ!6*?kJ-pY_28(g|w701^Ab{okdTrZ%LJ|LF%pnd_Pr%v) zmh&>r3q6sTz|IWOC6%JXA_HT+&BOHtz7x7wte4o2+5XpsU<4zB@QYiEvD|BUSRIr5 zwG}wV&am)4k~}!e6{z_f7m%A*Rg#wNBJ)6g0}&eSXcbR$d2od3;1EvYLcm(`sxGBz zS$6nSXn-75UHMScciJv#sKu}#&X>;1ESm6Q9OO7^C^?5EfCz|!sw&Q+YW1_>!GoA_ zuXuTPAqc7-7-tPyGQxyjRm^A1$+UI`nA-nb&u3VE_l+dyrW_e0T5TMm1i=~DWm&1| zl}+J-j5Nm&Pycn^en{yDX&4E5$BtWh&`*~djXw7g8$~2q)YaSczvE-pDOp?m=c|!X z!SoG_nZ2zqs5c9WjEua!j@{B?R#xralS*hy^1$un^zOMPq@8it3e(kMVp>pMZC)1? z%sBf^fKiHTRag1%FNW93ZK5R+h^GHWlwwaG0#x#h%p@IiYriL8N&=) z;i=}?ci`pAm!$xC2LxhX1n*@AwVQI|I}H3e z2{2b+1Ng=2f`1_DDjZi! zXwBb+TA}@(!wqIeSZr~|(Iu61%_TI^bAc259KTbWpPwOU7JkLz5?t*a_&?0bzSPG` z4+f#pT{yk&O_%_~vG3jgGNQ_rn4?Q8F4YQQ%v-ej0GJP2ezo2uyi9Mk z?ZO-);o?vdXx1xAleR>gdE6R_Ds@2T2;P4Lq1$hKQTjHer`UjHg-rK}6{!ew& zS9IF)GFSL+|MA;)!pi$N|36!geI?7}j!9{2r$xlPhovC9as*N6l>c3z6ehAGgRs-4%c$?luE-2#Pws(y_g1s&mEjbym*&3*c0N(yu3_V^kt4$@~@X7%`@45?IAy7i&NPLPEyN% zo0r#}_23W|oBqiSDoy@d!~?M)L8LP|yMhUApXxpw<}e2YEF^Kf<049EPN&c_ZGk?J}WFbiXb~I{?eY%{`gA!J#p0Lz-oAQ9)Ev zQW6p+;j+KB^E^S~tmsCL$zzfZWT?yJ1K57`Wb@(RFS>DqjoFDhPfsQCF+;c1G;_Ln z+cWqA+fvEj-B{G1M+0<1a#=>WwNnTKs{gWFf6fO@1V){sO*YQn*x&MG_-Wx}V}<`+ zG=e$XSIoxqGiomqIavu@fl~19Y57k8G!MR_;~_%;SNAd8siqb!0eJ520KFn5XV$u% zmsvZ)>fva`Fm;hCfTmpgYG`n*2AJ)7y|UfA0+viZxVBYQQ>A2h!fR{@UK0(OnIwyeBESK}1t_bkHZ}JkfN5>*UFoMP!X~^_Qt8tGZa>YwUN+c} zxo)A55KF@s9WFW6+YThrqwWBD!^aixiHErl{LRcSm3%lB@4kNsYbC{ zs>jW!^Z>+xkqKu%5h%z69djqFeTMR+J+Nf35ly7_X{1K z`~V~*N$wyaiRl58z0~#ybo(g?LyN1pKH3?fgB|=JOXXPNGDjZ5MbNT7+Gdzg!SWt> zLazeKEnK-JJ>9domt2UOo&p3=pFz2LtuQ2VKA}G_meL`#de@DF#KelR%+)k!Ab0mU z`!>$37z#Pm+=h6W<*8L-9F@XXB+#qoHE>wPwSskTu$qpU=n(R?90X=$)bxiji7~H7 z^!7XGojb!v`JCn;1M2o8E(;N@h*m8BE0JOp=*n#7)zSMgWV;?5l^#804+*Xh(+sr!0e*2MW%2 zmnFr?Tg0jR?C5VTWGx80CSSA*=~L|nx&>_nLb4j*&)nCfx3$v`#GS&2c8v8l496v6 zT&*M}B(|arWhnBDeHW%~5G35Uzk$No|9+iSB{Feit;f~tla9Z$A(Q3H2@H9`#K7jIeDCfXSaA&MQPa@Q@D}U1;cR_>cfZGFD0kWEhX7~z06Q|biQu`?1!*^jSWz0?BC z*?{Fe9&akT((T#-xBq>>T@5OsXuZK@PH`0|C6q-9-2#{oCFAANpYA{b@>Ms$sHUB7 z&#~2ODsVY9DAzJ<_#|!$s#ROKrvdeKfWpJj1~?#9pwFot`%9)VaD5i z{s=668*&q1;5$avbJBKDJ}Dd+D8K+%*n<=RU&L8HnWF6xiiZZ#5k4OWhs}AeG^x)veL;QK|wj-cGzo`fCOai>>K_T>aE6c!q$L72HH8qiRKsBTV zd@Ht)Sa%x2ImX$rR>pjDHNy_btQFUDh$6;}vT{mubuY37AWC^*);0S7omQEhPSk5eGAv9Xc)c3l`h zqcpjnb6j4EhCzbt6XS0O0n*d`wTR)P36CB~uXV%8?#l)Q#zxGOVfAV#f~)%a_1upm z>dw?qSimC$hg7t-aP;eZCfTuOoTD}`;E5Idkp`tZFaZbfP)Vq`=}m2VdoD46&Tb3? zIP!R~IYlB*#9QpeTFTg_bF3)yPC)oiY$F3@!kO16?qv z`#zK{rKx2fa^@u8&z>P8bN*eiUb5%`mYk}o$?-iE1@}65nXhfej5!WuEpqoC_DeRMC;pn%2{c25dDw&U}=aHJCP=HROb)}~Gs`xbU`_HLz)tU-=%Kn%(O)*>Gj z#5!gI?qR}NqR+;zfB{w~FtQv#j9--paMH%a97f1YSX${#!}A#_`v-$KNmV<4Q}niZ992gyB1kJwLqbR78GoYTc@TT`7EL*TFA}&mPo`Ui!wC#@Bhv4>x!^!^Bq7y!eyrM z^%6X|dZnI8PJ4WX8M0l5(}uyQKcw8|ed;&+`Yd`ll3A%K8BdQ3K%<6UErm(}r{~HY z0Khx&dRW)*)6#Avb94@r3H9T!`4~WU%0)BL98UwNn)bKr8tbh^ENNzLI(|#n<0&AO zNdUgs9n`Nc1gY&Oh@IbIQ_3gPb#KS9myM6qTgCxT$UQXcNku#udY0XYlOPYQw9nes zbK|WH2SYeH8jP4{&mi9x{lSus*jNEnU;ociF_=h%1cV)PrWk-NC8s4uFtGQj-cvvU zCbD%#i23noj|dmHQ3t}!S=0QXL%|9 z!$y+)zOt2^_XZRaCpvBj*fOr`|1ErYz!qxJg;@o5JO3v^g-q5e28du2#iQ5fDj##F z4=)ovE!y49aUqNp!NpWyBNg{hl+FhueMQ9RJ^lDTs3DIy__gaQ!6xazRuzHXU`z}a5hanKmdR8Sl{CagaIW^5-Wwc$atbQVscHWRSuuBw%(|%tLt@!j>jVzeihV84x{JhN!cVt zN?+?QYGHyMe6gH5@4vqk9+L&5kvI-R*7sY)Nz|kkAHZUTa;`7e6sDQBL`8DcFq`0c z1N-g}2o|sD+c=Ij5E2vEQX7|L+|<`;k%08|--8Xj1w*x%9qR0?&dTcSwwhH|98@JY z&#YdZJ*{RB)>(69*0P$lS7%M@S%+oTx0>}>XPs*fsesv##cXtCHfA*&UYiYC{@))8 zzPKq8|DzUQHY_|F!Jds^|GyT&-pYQXTr_l)zucPw*5t&8nqi|aC?x@Wyza_@NE~h|ojPtyesHLh%kS9@{+rvbY}~Ux z%JsoVsjj#JZu7V0;%Z(LH|4^y)x+~!LgEPGYWG&O}C3ix&g* z=%EKUoZEnR_9{p$j3YnTp;N9hIXW!SFwx`wpT#`-!jFM%OI3B%B1!bqf!jWX+N&ic zg`{JlBQocN)iDJa#j zZXeLb_Qy~-772M9k(9XE?=L`4dWP^LQIFTvjO_=~dpBUy?dd3G4%zL%p7}Lfv0+=T zuVF*ov7k?^ubDhiBWw*$+_HNsHoXlaK)k{s)`>Oevs+0@zsT4}+#9xr4d6ib`C+__ zT>B^UI2C9gF%E2+%ZL_!01(@%G3q{9S<&&07v|IKYn_C&I8?Zks(5l2(N3KW6IWZl zfB${~dsp=!3EhYFT}w#y@zq35T?p6_K08Sgi^;sGiynKFF?hdZkQBh~PRt#Xpm0&y z(+9jcVu^YPKgJUz#PFZr-aPmHYsU*56v|5I#OylSfRmA5kJWvmX2-F}ngnHNIR21o zI@H#>FnW9KUk_xS>XczdD?2aGvq%=4Pt)taPT^RIXQPiLOhq>^7&hKe+HX2C-Z}*M z$csSOHak#{i!LE0Hm&sFSS?OVCU8wEXL_^M{ROFy<%sC8L|Tgfd|FD|i3&|l(~joh zVJcEX(_I3l#^{2*Q)lDw%dM@g1x)2%2k|mwJof=7F9#9NSto_HeCWw!RDOj9ll;yG z_wppY#1~MDc%nDH;071!HTf~;Dnd_QUWR=QEcuJfQzcC<4ytFN9&j~)FJz1yGdn;a zo;0lC*r0(`L%zUn&z?OUFNH7;C7InZ-`S(zSFvO*d6=?Z_1T=}?QsNw3$I=5i^ILJ zocb1_;q?sZyV9uFa@@|1vlBlm#9@DN^Yjbw(F1pB4+UtZ$~!M`*sxrI3Vbk?>>UaU%aAhs z7pfzr^2Ha6rzZ!4(jq=-@GzGZJ^*544$IjjyqJ`JRBYwS`B1`ck4z=BzMTVxuNQS% zE^D}P!RAMSkeI_0`uX{3^^e5?EbA%s0ru}wigoL$N!q5QWB{9KD{Q7rIXjL$J|uB& zZuY9&Ff@A;lg0W?p8hXLpUxpB2>ePbLJfWJl)r~x!~xqd#d%kTTS6Xxlq-NXDqRO--d#7S9m1uhb- zL1X3F%(1GfW1Y?Pp|j#!xpCr@zLlH~mzq7KQEoQuyBE+Xc%l{UKjD4v-n~r@)EY$R zw5=K8w0ER#=#%QW+0QS`dpS?i??$cNOBWBE$GE^HF8oW!6PyHRf2AEG|0y`#A*{p4yvVnx?l8gP)uJrU5ODuT zduJZh)VT%lfXEI}Su3*XC@6@6QWOY8)KaMu3Myqwh(300P=v4sXcc%`pq2`yD8yF* zsgj@=0U^OcHI_x9fKj%{ng9}rguMyxr0w)|=C$|PKi>@bD`AGaeD|F5o#me2*{TdX z;*Q0kI733W6&BY|r>#eN7;DUZVegH1JZ)4@1`w8K1`)pEuCd$s(X6Xjdej`o0YMv5 z!&N%AV2uq8HPX?>Rzr*lQO80af#TEbec!oGvRcr&sPscSf@xiIvr^_gyc~*E#VC%7 zY=uclN!w>6BdrCQ?IY00Vk#wZmqFuWoJ2=w!|; zvJNEFK*K`b2YVcCZFRPonKibw96lD07epy@)Q0aNbDRvd;Q{vTn|ABTQU?mKjGxl0PZ>%~@NXjeMy9rq7d!TxLIl!GMb zYd-uC;Qt=GnqWo-^NRp4y`ZhH+mBZr^1XkbV=c_3NyXlhbyRO=BMhthYv&i6q_EAH%AUN6Mx)6$zRTM|_%zX& z*#wK&)H`$P_ow(LU&c0jjG{1<@kHpjHk=T2bQ~S*793+L2#!tM<|Dyu=utNq^I-ZYFyC$~n86Lnhc zfBCl5vvP~j$lee^XTGoz0e?c~$`7^yH79oJ^$!nhPox-qE{3M)5|Qsbi^a;FJOhK% zD=I2DZ|lA`Q|5RHv$_!DpwNS|GeFb13yDMu{=AkvnFe?qUjJCvw`NEZ1CKmjxNTBEXgu7m_&?W9B0 zws)G@cFjRAH!p8jHZG2e!VC*_!u_pKbWi3?qi%9^HtY z92-+5)rmeRam~6uS1+BR?*y2uy%S{@p3F7eQKwyG~#w#?36- z10#BbRKfOo12!T*+&vBwfbX(UYpLwl_JtdHf{UeX_45OlqIt%$xVbiFqAN7KoyR79 zmkfdGE&5p=Gl3jCUS4HWZtLt^FH}e6P6IG;Oz-&dd7yBl%CSrF{&dD@z&;cEpy_VmDIGp1tc; zwPT0{DM|h9$VOIPz8K9R03fCU=lR`fZf5c7XqL~gTz`GNt=E@>LHkt>R8c0 zaNmh`t}c~if5!kRb73-dUcn7aFSml-K4cJpPG0``H~r;>c9lpeVPRptcCYMaf(!0d zqmpt0wsQXXpQnJ1-4U-*$Ol!L-5lV`>{ry$pRJ8P-ENU9A~s$va(Z+)_}W9(F5 z;~9%p0~Y<29a?NQLpCt7C8BhX$2+BwVI5puU3X#TaLy8KtAGdh>}P>hMGOoKY^)(9 ziVkL&J*vb5@W;5Z2tZ1=8yg|ZJ#uHOrZ%S#3SWl5_#huM&{pRx+kfSXMH z_{#&y8Ny&N2A@Hjd^!w)=se>?V6dvItNZOZZCCed4OGVl1=wX}($fI=Gii4lGc4y$ zE$uO6Am7_XnLx^TFK<9s8bf3>@Ocn-Z}!a0%ms2^Tu5V_k0LDFvNAvoBGgZB#ugP6 z_>s3cH8cN)QbB@0pA}@3>I4a_in_X<3P7fnHUOfGJD<WDk#UWILIsc3ce^T0z3 zI+2k&Ioe*@2$SX355gY2Zg!Gqtf-{4tCjHHIe3m!fVDdR=+UF->AQ*oFE6igyczF# ztJZo;EbiueZiq(GBoDh;UOcZl3z(5jyMD}emg)}_F}&4Z%c{s9P+8A(>Jup7phPas zPPnE8Yy2XcCzJ`ZAEn@DHNP)H+;(+R-N0ugrlqC1Bqt}AJbm2G2b?w$N?N`1F#o|0 z&zDW$bA9p8s1t!kxGbEzJ54GrD=kz7#UK)i*G0=gDxAS2F70xe;DC|}N9*(#cM(-9 z)Q4*G`;!h%(a#{%#ajC_<7Y1K1s@+R1BPwVua~*^pcffD%X+{FKDcA;m~F;8nUOg9 zy!i3tT?GLcakb{==KP2w@9tc%)BC`+Zsyr6FYt>R0X*KE8Uy~>9@vBj@5!bu3?>Lf zUFO*Om6U4?BrR5m~BdW?FNU(LWzZ!NrOyYZt&xNn_> z7bDn{#b`}U+7f;dm@s|H{lHODRNr)(Xn8E@liq|qQIUw-@tZ#7pWGB(uR zFVt6M?@SB}E3-CX8A+j3qbV{Nl_|->G~c`aN}q6jS*sSc^u^j4L_^7;VTWP5>>Y@F zb~-xt(0(dusZCrs`^~j$yXe*q~KnLB2}{et61py&A_sY{xx~_%G)E)aP>X9b-e|J+~IS zW*M~}DfoHbAvMG$@QQ$ZJC051^I3k*3rN8)>c*oGqYnzyvb$Al;8JSl z4|N7(%lC zUNM#n0UWcQE?(+|CDc!!Kjlr$3%ZU;X_{HLT^soEV|H_7eRTU@9^r5$(~IRb*NM~q zmy9@=h=|lF9wlY+C749%=f94zO!#5t6I0b~(xQtV8FjMmeqfDMNarV!NQ&Y}3%bNo zX{nR0#HW1ZKB&I@(KK>7N{9W{uCz1;6B8?o86la{ym2;)!?F(aG`l2>wztB081&~J zl9X96A|1ID<6Sb_yUf?elnl2Zktms|+*xG!$M|}DpH3+BDpLuQjNW&V!Z^0*-ULI~ zV7oqkdwY^DO}hi%J(@K4#G2o}G$Nmo=Zo%!h=i6PcDF4cy2af-Q=`(LWrjUT@neLX z1{NHJoWU_;ig&CmH2IicDT_|qm}<>*Ix8~92uD-FmoKUi_~8YZ@)=Abe^q3f z(IzqiV}^t8#d=t?!f0u%LsGIUKl9*H%ESoPUe_Cnc(OEpSVDHn#r(Egd?At9GT8T9 zGKRS;Q#-H@JV>s}c(XB0VlK2-i`6vDGf-_%-a{DTtndwq7Ta5D+`_w*2y5=O96yG1 zen5eEpvJ#QdwXuc1978hDJTDxQ(jYnMk}WV)&)qXN;#{sf7t!8O6zLl{-p}0>ts1_ zcgvfd%e}R+Igv5-szspCn|_k_b7?=?4D9-Re`J%Ph^%#Mc2@uSm!+%PzF#iEd6>Tr z_**0yLML^YKl2OMw_evWVvE`0E9)Jb>fyYn2Np=rsfIW?FaarDyv zc5Dv3G25d%5!Utz@xT(w&(qFZYVYpLuEVBc2SER2lYzc;72zrh_-MT^Ssy}oo_-4^ z(IcbX@o&Yqi@Vbd;>iHuy44rG*R0X>9k1~AcE~I^3c(^@1%ISuCj3(L9PTpNj+Gh( zBDq0egat)!#J-hyuLkfgHHotPtZl9VPi2&n0rUu+;`p)Z zN{J|4IYNg^7j45~Pn(rrV5@wI@@Ue)_b?o>x?k?=T9VTKVlS^-ZX9aR(b{2+je;&7 zjMBD?-!yP8e(x!@V1c~ce{b#9V!_IoR7LTptvGzm(Q1bdbCL9X%Miu;L&ClmN>Qyj zE|lK(r~nG6C8vB*ow+a;8O2=FZAV1rhg4T9F|vuRIPdhjG4HOkQ~saW5dAD*hHqKbJboo5MkCh z(HjD;kvy(3houE2dF3*QX%dnJBV!E*za%8>Tvy1c&G{GjwlF49eSE2RN(iN~MKpfI z@pisBf&CT={exIwyY32;m}&PbbUYoy7gGT8%Q{RV)(u=#_#q7-!Yooz?(1q@C~Pg;A=`q`b45qLNpo#5(5mCkip2J0gDNKa+4a^m;!yK&Ym zyIs)&zS52IA^N#~WNCMVZ8yb~Ixw%4UmKHEP-fEJaf9{aKF!eN$5V1GEx~JKE_ZBk z_i5~R#yGu)d5`%;9A5JWv#XCRjTl&L+ZTRq%eX@YWUyrz=WpStK~foP)Qa>}VC>F* zJl4VYo%tmH9ZGOI=`in6buF7)qcR~v0`Jn0P>=m1Gj&iG#2#E+bZTiSjI?FyWFbyd zlWO?gH!C9@4&UYP<&8I0G-VO#J6i_u*r$%I4u{}h-<8SESB;CX!-omR00yM;%gSRf zh2I^Uz51y=p&^I$E3h(g=2#u#F8@xnGvlO23jZwoZ^GqiF!CBJFh5l67iNRv$pCKZ zX`5{q>88>&h{#*#jNe+*1t zY-Eg-xq&*kxOqxAQ`Z~WFwijFt+JH& zz;Z^C<| zpsi{XW!}o0pA9YO08J|i9j@H4WpwxQGV5j|*&_>RU*8986vmO7nz;yy6I>LrT5t3V5qZsh)C(W}=2i+Il zr8rDBI(~LJPUujpR!MQKzK#rC&acq9?)x+6FHE-jkk#KDul-+LCsMvXkjB8W_fWAz zA!-=6pLxXNDgrjaId{%s%dpNDmfEqPo%YH3 zTiYSJ&jey}n2lVE?E_KP;sX=2S@D!VPd+5=1)bK@nowKEO!+5 zuO`^0j|V3P-!JAfL1xtAx_7N@YR}T_!@aVL&vUti1&hA;ln>G|$*(=^4KUkPBVe#Y zK=~fUC-Jf$ca4HrhX8&Z0c>*?x4R%VO`tfK)0wx)>`Fp zvvU9RpAz;@wQajjR$X#N7UNwuq%kj0j8d)!#YB~$Gr(UTY?t^Syv&c}9rgAvE2NhS zTvMZ6sGfi{30+eLIrskat{>Q+q=hn)Lw|$orDOuOkh?GB%I4A)pQcK+ zfcnBh8ad^S@kRvVdp$UY2sp7E`0_oy|67cHO%70mWAk#wEEkFVbi_wwTXL9Xq!CZ8 zzVR?EvUG1j!GL^lg%i7g2yrm;ay*W;E>@$iyUASnU z{>BEo;-mLwIo$)Dk?y`(@8!-m@%h)=Rc6J|N2FcDfh`v|(ewv|(oOQ1NHLR}`I?Zk zt)^dfa+4mpdf?noX{mka9p^1V8_Ed0^Jc@7*C6fglV+WC*7YmQ-?R2m4Noh_ zzc#SJitv&u~L?qknpoWUhM zFh2i{4fSWIL(v(esd7gwiq{@kat#i=rQ zR4<|LTAWbo0EjDeu+(s)Com4}HpF=i#AKWk2$xvNYy zf^APxcZGc~d1noKrmaSnY$}Rt$d>!;0-&(@Kjl~7=ML(3NKXTNFC2uQ?{ob0?be0= z7Vo;(6d~r2nC%gM@2wxU%egxofQvm>LMh{r%{Ec#du8Het2App!R2T{LoiX?J+1S< zs5lrYB`!C1kZh_!xB1Uz}C`CAFU{p%?#UN|TT3aq%F9 zKdyZ4htYPZlIV*j&!(P`SlXJ>kpj$^>u9m6uBt9hzl>)D7-Zy+7K!v1pWv!i@ls|+LZM#?MBUlOMrC2b<4)<6%_g% z#J?!gz(LChKjc zJrCyZO0Is?*GmBu*M537HtGL-z-!oD-w}2m*0G~^;RUcN2t`z;$t6;|$We^Om-;lz z2xBx@jK3FvhyT?-E)w_=RU;WWgOPyEd4XM4khcoMdZ5$TXcSR!LB9p-?E7J^jq>=m zo>l&YrW8Rg)#dP7{T2kGHO+l_DHMRa*G)|$k`J6f2#^rGtNIztbX{ET8UhIV=#uat z?l8{K+cnr5H{15yn>osE`{TZoT-^R&PJAd}?AKF8qbE}1C8?aU;IEcaJQ^)dBFX)9$khj9Zqbmo$J)&*w` zI_9JIjF~$*Kuee&G(+(24}FpJBLrOrEmRd11xmUZQSPZQL#ZPR=U-v$i3IDg;H9>* zxM|i2i`|ce;ehFXL!WKftlSCm!4LT)CDD7ulIkO9yahxujwi(jTm+tvvCk2f9ww#@ z#)A30e)_P}po{jB*kbm6M2-RI@}0@tZQ4vVzDlh!(iBCkxH$RuzdqDNZ%X7YV9Qf; z?_w?ZBtw;=u88#Rt1ddzDkgYMdz08PY7;BDEjU3*geL2k7W0Zm(0ZUfbry#u7M~f! zb?HIUj8|zha5<7%?225Mfbh zvv<&sA}5zQU>!n~I-`go)bS+%rT7)(_?V^)(?UGCZPWeV%^{I|I&751idiDFE4rvtk%skAYSWdIgZ*F5!fv}Gn~7afS$Nj zlCQ;?EkY_^?vJWfvLA5J$PoN2^46^}3x)3s-}1$A{ia@xKYjsyzS$$Fd3z?LZ{8Ay z`~E?^CzF)QFj;BM*(1N}@0aPwdJxy2Sk)JIM%ivfT4q41W_Mw3-ZT_?7!H&k{Awy+ zWl=?I?mDsKrjzH;$SHO5HmR5wR|U zJiPevlE@m**2&rdy)esr66TOoB~B}P8h^tF(7LZoO67PJZUd_og&{9BM8AdKUJ*Uf z4h`#2@aL=ee$0aC-YjKPNcVNT0fTE;o|`W-7O@zhIhLR%xTXAUx(Yq{(R2l)_gjlhhB>Vs}2Ix`mRo9-Z)iD(?MqKd^tRU?`?Bz1=b`V# z@n`3o(Rx0zc^c3=?C`1H4-;}7p3&sqSTdUhf^pG)+@W-j_n z^?iM~1$Klb0Ds=}Qe78ymTy<}mnaglxH|D|`^qZQmWNoDp7zEgqGDQm}FKiR)+^0pe z==}jLTT?u1L_<4d_)f!&8ooOCrrMQYzuFrs6!B%9mDiE4ghAXY0ytL-)4cSxnNi-8rPokzFA6}cXy`$uRfmYXjDREUFm@i+kbg_9bymK6;nIS@VLl) zR%Sx{v#anI=zrjV8oY$<3&$-+_QMJUKa_EB%le`uB`_lm^XS+ZThiKVqFI%G4)@8N zsuenFouHfmFZim&dCIO&l&(@az;Y-cm};KNT>(v(Uqgz(QfphUVNSt%mZz$B_sWb< zI@CM5)f9%>nS0`n$virR94d&OuC; zppUbLf~?3Ym#|&1*0VgOy5`m|`+1!q_a1VK@oMAlF&z>~|FXSy!h;qCRbRCnX2H14 zYUDNK7RHWb!J&N|N4_x9U|!G!#D5Dv4#(mjhrhEBJWto?!v` zNrO;MPPhSM+5siRdXi0(YK`t8=l*S$8gP*Q^jx2NmTyw7=(J&?!kwjNqCWSC7;`fH z6I&y=d|n5kTXJ@H=3w281>CMqrrd5xU9PY|q-?kk*!RN>KI;T2Yv05=rHQR``XF^A zZ`+x)E?=W1Lh+Fjw;^A8$nxE=`E5t|v-8Jds!M)-uCoU1&Oi!?Eai30l|qX`;j=$e z<_!}b39jZ)EuP9o@#jiN<4+~oT|2FIjFR(p-!=5F5D(=F)KotI%LlT8itL#a?aMI< zrWRks#a4l3ZgES6Q%~(Ed>ZX3KSiLw-{?Fl25~D7?!AfWvDSEVpYL7yn1uP_u`hX zB-6mFp%v-wXv6Fu(W72*3mOR7Rj*7(uCYL|`%Y~#{z#IV0)WS^Cqg6LDtkCEM#`{? zu?S>p7Jq$oTp=?fF_P#u&T=Gn&%}gel9h1!q)^mwo>&EH&U~mMMheHP0B~JmATgR2 zS%X(1kahFVL0VAqV8( zaL}aw%`Y?c0wfLZhq!StqQi!OXtO~G)pr+YgK7CF1BtzfrX@p+NeP);9afN$(JeFT zs{Q9^pUE8#H5^EN?|IYGZc_OBXf9pzp|`?tFcB8}OIU36PN_bm=GV@|;-Py3V#NuMV?;?$>asW^=#Hro1dQ|6NZnVsWrK97B$7fj zYTd?9(gEid>Pz1Kec%P=ls))(P&($l9a=TQI9h2?`E<$XnPn^wOcm}cV6dBiTCxA= zZvkiLY@rQg6qBKj=>9+$wK$VK$+Dl#ajYp1zl7+GJFVEd>^<&B*`ii;5q<)dX=vUc)R_#(mzoQ5<2 z`1xv3m}51iIwSAcg;uO%x}==62>kAn#^uc?M2cZQc!JSx$?iHBThJ-(p4h9jv$og; z5)$N#j2nBP1aH73WIPC=p%a-G(c>aIX#&eHE!GnbC6U~VI%-&-$6hFQc%Se@onhut zYTGVsFX>M(YsS3EXkzA}q3^W1q)PsG8xHt2U9YLu(7!HhO0`@as(&!hPfSFv-ZJOS zn#W0#<^q46(zSuRDn;t3Kkp(R8@~hVi_51bd>>39OY8BSnZGRRA2K;mb^24V00fFI zx$NsT9}pzt52B%rMu@SRiP#Uq@XMqLbGHD$^~N{==1(LalwXm_dB%=qxh(oN6q+0p~? z?*Qi2!ZufYjBTOg#HdD3?VB^#$(90&dYX3XczsCZ_Sf&USoUIf1iR-vc%K$y|9~!esq$lrwcOH0NCBHCZcpJ=pBpg*df(7x`8Oim^pcJX+yFG?R$5>cKu=MM(oU&1Q z>-%s2Zw$334KhHF9F=Usx{0m`aKSL=pteh0>&K@J;83*2iC)Ek)FQK%##qFWDncA5 zq6S#m!OdZ2LLt+eQF=`V4a(kB!bF$&e`tHd68~k}LZw@4@u-zU^ov_f5YO-rRZE?T zP$_(paDL~tAxeOplxwOTcoT%VwW1ldD!~kN8ov8Yip2EVa&dAfU)NUpdnPldD&Xb} zD`|pT*SNn)o!sGup8pO*+a*z?dkmdVf7fs^_63tA5X42m?T7j$?Ah&P-60!zpMUtU+wEuv? zO?Jf7VAx!sT`0<0=!WuVZ%5+k7Sep9L7MMu4#FK6s$M9T6~| zcRO0qW#G!pN@Y=s|f4cC#JN zZKQ^ZXqV+`sXBG;-y)@Og0>3F&K>}Xr)z1%oNe+IXe+8_mi7>m>ynwLXFwRyQlAogAr z!rcy>kKK!E_1c=18V;uK@%>m@F2F)Ro?mMAK7;K$OGOl)JC-Fb4#}+7*euQsTj`1V zw{h?j|JTfW^}>POo1OrOC8byDtRGrN* zs{ZU%4R{G6!D`wl%rm;qykr|zu%>6n+=RSmz$ls|$*2PDiEhel(2A`>M3k!B+=GQ< zGCe1aUQvghvS%Rq_^Ro>n5@Y6Vfp=)&HblFDq_4gZB7Jsw5ZL;{Bd#~ht$Sc%yoEX z<;F*)2DNIBe{vMtpl!m)RQ#w>KNdfr;>{ATwI~q&Zt(e<7Fkb6;kX4w>3m~VC{wMS zAW28)JjEH2Z4QsYaEate?4=~!d0>-emxECJjZ~EEoY2*R_VTT#p8td&$NRmklkgxW zrn|}N0?p4Q^~Roe4UV&Z*H}vc;@5%iEG8ZzwN)aGdyiWh8v$ViaJ#Iq)G+A|rs;-^ zk}~>88d+M(NE7aaF=l4%A{+;Gx9XIy+_ciIx1{I-9iwKlxj_GZ^|`kJ5z2w@BSMt z_j$Jbrqz)uo_qHa;=3Rxt~~vi^|oMQq$rwuH>PBk+W{(Ma;K`5YxYWFhz8=@w?qxI zG%G9PlhP^Lm?Q=3%&_7Kk=^mcRDmTt6_yK*yV?B|P(=>$lZ7rSjX3(cy}4s`b$Ri$ zP`iTW2vTs|QaU01IPCWp9CO; zBxsN^vg(n*FCFe1ZWa(W7I5ROJU?d(!iq^yA5 zr=EuI&-r9kRz6pSZoH{k-n_FV?Oo%w5S@bpEWvn_R4qlNYWtYShfOyN7H9C??P9B% zJrS!DL)=jsIm#zB+5=3E5rInFWd%b=2SUOs0qe9ymVksLqjxMXD}<)4`icwqw5aKQ zqW&t|z1isWI)4$hQVvn>k&qs|=aMqz%X)7cD1zAcs!%iSfq)6l%O{Ozbw)J?q9MP|a4(VzVMPU;o60t0o1+p(|D*v7KwB&3*)gGqci=))#5 z9&eF;{n;<{>Wga=%tW1`PeNiRu2+wogsDqb)In_$XQmx=JEw>o09`{<^mDw%fgiFUa(3h(y&4to^7Zll$tZz5@J8w|%}X zW_d4;I$2xb>bhAJ8SSs;-~N%|6Kz9il^RV(gv;-%#*P&dj99yrOoKU434>v=Lul9# zE#Pk{*h?c8EXJgg(ae@F7zivRH(b3NxZx6pChOcvg(?SWtbKJfej!kb_g4y{--Xel zUMp9jaK);4Ekr$pD{0Qe;0&cp$_^)(N2u(CZM=t?KORnsqSCAHk%IzG}4emIo zms-8X)#}l!p{SnVC15$fu7L%$3O8{&Fl2%Mx7xV3*`n(WOh! z)MpOo-Gfv@F|Z|^)+R7pS32}Ps4z+tw*nELx@AptJ0e?kq1{T{yV0Du?Lm*c6V@&wh4CZ8@{!ryU>!oIV4Hk~ zkc{;W#dyu~2uk{`+Ic^n822m=7E?`f7x?N{v`t}qO8_RE)hu?0o~tM33st6U@Z2V9 zpsla(dSnG}N9-;(pXXYHUOv+Hs~ObS!tjCTAsD`In`QkmjC!;4C-gi3*|H9z_iH`cltQi=5Lo#O!K7%!7FmK~g%W(!nj!Ph=I~&@{TW@_g4; z+DymyB-QA~W&O~w!fn!zc0%s*BXjm0A6=#&l2e>^&G=pDG(&8a=llAB2-I&B?(ctR z7}{tRz4js{jTj`h+M&=E*F5f|NhWU3%@jAexRAoKMiw7fyT}D(GZI$ueZ&citb1w> zdIn7vf51y(KZ%K;^o{9g4Y++*>?u{l4_w^qH&uu40kL5LD@-GuMw>4mxKviP-LqPp zHvnunAFZg93_mH0bxN1;Wv(oBi=HmQ z`gKsAREO#eb-HG|r`o!_nt%ql>G9cx%tZ^%Ohi6u20Lig&#>o7iusM4BWH%FOm`eU zrB%){1U(@3g3!UFsNlUzcEM~wn$zr!2^RK{Beh)UsFUUuRnTfPZow51!J} zI$~f~(1Xjp$N3`ckyg8MH;FmM=>9u3*DCa5T35VoH+RW)fBTld_cHxOA}gp@#PoJY zbyo9JK0o%8VI)*2AbxR1W;nQ&s9!3jc*2IH#!a;^H8qN$AhSqfN=>QM@fh8UN8NG%VC-91iRfx}EX&7In#8GD$x^86_ zRVrIqHdAC`*!)8`F0t`|kARroURfX;^&Dl>!&QmoDYWeJ;B!+h)rMZ# z%y_QfO#>;2rL7_p6vDLxH1e0mYr5s)8KL5|?B+vn1S{NwCa$P`qW7y1mzzlevQKE- zBTU^9K9H+zu4I~9iEiG|+z<96N^I3ChFq_+dx9stM4w0(Td(bF3;k^gRVC975unmL zp=`oZrswBFf?QRdaJa-~{OXDAwE?ZRQ@h`}y>b9PaO0HsJCM7YaWw@{U+IF2DlK9L zc+!m&Si~^wKcKf()UZ!8%_d9Ip!!h^IFY;k-Ek6@5s}0CM~^j`RtF^8C0 z)oKx@f^lK>>L9-NxgBlTxG?lCrKYchS z{wTub;{DlswFg>|Alj;CSQy$(csvV-M_M9iD_LB#L$ADj)-pkK%X^MxGMQ<4}Y zd>}BTRwemi*ExQaIUi;{F&Q{;Am$@>LeT}6yiv463}0@$-1}$){l-?TpIm>cEWm66 z^p;6oTG})a14+v1$I=e8+S@-uwwus+@B%E1p-P35o;WE6uhJAPp+@NZBz>AbkD=EH z5rz0Ea~|#}rgU~??-J8htdq?6tc#dNmou3S#_w*Nxnhi#EIShuR?p&fFPMdX$iV3+ zb+bHr$a5@EH;j+LXX$?Has#f)lpW= z=*HjLe;TCrr*`Kb-eEb_`KBbR%o#Eg(DBZg|AxQ$CPIoY$k_8RZBlvyq*eO z=*h-6?bXkeAvL^yX+*=f?#1-I=kY6zj)V%Pu2bO8HU7q3lm1v^A+yMheH*Q;X6qT= z-V+iqJ4`hI$2c$Tf+DK?1WFGjEsF6#@i5l+=d8nyzidZrCr<>6oNHXJ_FZq7Nu%jb z`p2#ASLWVju0h9$Pc)t@%N~??W$O02w>h0R-3Wbegh(E^lMm)8dC)O%a)P8UITN@iEa&Gmq~G_z zVxh4@A)>>frD!*|&ibUrV++uqP|VrT20TDk@1n|-gy5qbsfm-WsgT_DPonkmhtu8$ zXxb{CvMH#II$`hzMI_Go=&ON<&Gy^F1Mq?-lw;5dP=!ATc(m3UU0w#1O|4vr{Cx?%O)hF2eJJOZuA*KRlRQ z2401jGFMF(QMbFlHTk#}FgFW@6duh%8xblX^{gGGda|^LP@Bt)sIoxQbcSC>*W7%F z<0fDFmI_9i(r7V!{*7UEy0TG7(RT0LyA*RwlQ@&y)TB+C4JrWzN#A>R&ELoMQ&~+< zO^Sl6aaWZ=td`gt)~%gTy6$r7wVAM;)Lv8O!TM(Lm}n?wdv63|!bXoG{u-TkSNUru zcWzzH%ll(fb=By!i#BPcZ((}zi8}y>uL~u)WNLz@Lg{1_^Dcef)P52*6Oi$)4HJMr z-0dMk)6?o$roJVg(5)w`f?I;-;x&?WByo)vl>*0$fz#ppV&{L|3h{(?A+;B=KO(P! zysL!@xSkX_s+CEl*(eC%!}3N!3V$G@59;pRX44kZ9y`YT+>$1DbWs?N3i(;X-isR*Nh3BJpIA#8)c>n-BHbxz?G2BjvY&=+9*ux3W2vEdI|P3$!`6G1I3KFh+0+gY2L%%xNueEG5+KDskX46 z*Qu*doQ2n*`JqH^d`=}i`8_PCV^6<5w%r-TZDmx{=fQLVgSHYtJqmyJ3iq-=2gr8Z z-2VGzUG9+?$sN6;3dqQ3LZ)U!IgZZ)@QNn2=7kr3it4yLt2n`JkxTwAc!vJsh9ny2 zrD|yeMA%9Azf)Fd^qBz^kvnJ3rO%(r)gYz;gA3IBSwInA)2s*1sHvg>wQ??MpZh-K zV%p2P_8%mP@W)pYRP{c&qgy;AZogK%;7|2}f$s1K8*6?$v)dLXKgwJltWd1Wn1d9W zzFSA{%<>%V>L zx;+HR{V)Os0QE#(X1MlKPnXtJbKNr!P!{&?i`28z!3$pObuh>JT*_JB)qQWd2St(g z4bs+}ORjDq*z+bk-|xp=uEe10UPh}`v%DT#PQ>84J`Jr*a3~03s>RIGT$^7yU6*}% z)x53I#k^hW0gR>O*r+nvw#VS8QXrRx{TJPwB1P9tw6*FGu%o2Eap=7?W;uRShx$X zeQAqKTe$?T+f>pfyI8VX>IfU?xzfbvGxpJEHOLV+D>YbWV27@cz`h)H#c6+gazrUI z`k?^_ObeyJQ^qB8YWQH6C0~HZaq?JL0aW13`kohG#PZvQo+1%GTV3|W(2$W<7Z;J- zf(Oq|=7#Kriq;=X&@5<@b2pVici)#h&vsn;%CgM2TH$IwlY#|L*LSA;%XH#WpOv z|J)2gI$Wf0#BV{=UJ2)qtL+PaMK|Bj=+u_M9RamCDXVDa(1H#!jkxb2Kv*h$j9$GK z8**9(jr+0RqEPII>fPo6RTEuGoBl2SkG8eUa=c0eZ3l6j7_)@#**8pGKV?4Q9}9MW z2M)#i!CN6Nio0mqhXwq_$e0TIx{l(52ws?hlLPPLL0h@^=a+yB%KW52r(WpeSa&;$ z#ID$c35<4u2)s@Cy_ag;rAgDK96PP*p1N7dbRSK+$4CIz{DK*n7nC#m4s=M%y|-ll z_HjuB8l;neekh`sq)@x%q3hm3@I(sFk-bC<(7)LnoB1*{yx>Qu^u+bQT>K9?N5rVe ztfPK-7ltf|;O)C}#9kbEC6fKHSg5{yy5KnrG+t&%oy~<}MObTFn3Z8O!@SAdSoG#x z=M(lm__O^ZSGmY^=oj_u`4OU~x!sfg8Z)9r?clY+Z@(a%JgHvBB{w{QuU2#l&Eo@p zo>K2Syua)Yls3m&Z1%maLiZJ3$^Hvi3T{p{;0sE7>+(|L_SlA#7Ji|PSvTGG6y6~s zHo2zOMf^c;knkbu6@(W)Xj|X^O;2Er(!ceUW|3EX?^ndd+?&3c_TPwis-u`ucs+7y z_|nJi{sV_AT{5s2#gEwI%Lh5t1S5?EBUnL#MA8;8Kns0MytoBppLy!ART7-)MRVO0 zbac@BBJM-mtmVso{z>fBAzXQ4`E%3q^Lp^O%Ow^pZ!*;P?8qCPq1?Oa@#7T(yPt!6 zJM_**H7)OqqQ{;imc6M5KLYfvqh0@fey# z?mkh-MQ!Yl`!0((^Id9^-a+_FeeGW49fx2@@r>b)hDo)C*sA(*&k14!OEfLBB_V(8 zVuvrgLTdQP=Un6c39mvoyD9|sXdnFy%U=0^;5Jsi3BX?Vxm_elE+z9sxHqTe48 zzO)^70hw~wM zb?`)=8;z)9=rhZ(c%ILTsQ4oYluT!OIM89@-r0cJb%of<%Oo{tZ0bSX1laPj1(>QN z)gu7uFBDzlkY#qlrX@W$;L- zS0JuFq44hd)wss);WlGUDW2a#vcgN1)85~nAQ(1NBe-ewH{|I zq3v2wbhHTA-l7%(akOs!IJO@T$K#!vjS$i!+cNOf17r#RRNbQx9pmgeOnXVnGHVWk zR#v&{{b%&2o9mvqPK8eMxzSB~z%pF&|0v^~FAs%90-+!E{vE1dcTEJ-Y zdHt$~GPRVNwi%6RqJb790-@&N=JHBs>otH_`M8kB$NIkIYHEJlfuGvSTo1-H<@au* zQdD3jXPx87mH74T3G(fu(*fWafH!ES-> z^&AKD$7PlF0k~|=mtj5Q0u0swpISW(Gt6F=LRbGB{i{Q@B#MBFJ*_%r@Et4$hYXYE z{V4LQ-_~#PR!~QzM{wql0JG5Eh_VC3h^r}y;>G|e=F#S0h=G!!t1j@R0^~m0y zK5grbm&&@GE7GjwwVj!yxP;9zCy;;lDB==ee*I4huJ|$qy%{K6EFM0z<;uS@UdN=` z`yi41H;mPl67+)eojKf6-M*wxxTnPHWY82~;yG33vV3Oj>f0iwZNLc)Ik;LC58 z+{WB7LQltfHf?_;{O*YNQ1GOsbq=xN;I1Cu_ribwJ}Vr6)O%YEnp^n|)8~Q1(xd7w zS46`eF{srJ4#DFHGh*--_S=!$SeSiUz!xJ#Pm1fiu5gsYTExB{CsI1@7QGEE{r@aL zwNiSX^3-sL4=}HC12wgj++5P9l(P7G*1D7DbUG~+08ZbVI7$Hoh=1j2c%pKvsfGdj z-@msRQKVP^)|NM^>Hy!E?pE#i%>LEC#h^uG56_~5ulyJid$JoSP#YJaYD96MQ)m7U zRqq|m_W#EHcPP53U2V*06-66WLWsRfTUu4CtzFcJy;7r9HDi`WsI68@QM)>FN zfB6e<=wtZteY5IsQ;3K?tJrV9? ziG&7{S=l4oAyO9wRkL1wjk3XgEKav|m(B5S;S^r#dj^f^+YW%R9~IUVV|-J7o1Y9l;z5v;5qf?yij4&YRS>?ClAy zoa9u~3(I>w6a;D|Ex8_ACEzy~dWSiC9m2Q|wyvoY?3j?!?);|$J;i8TOm7bjGC>}$ zk@cEjTeel2TZgD7?l7Z&8H z+wgW~PwjHtQ+K(~0%^I&PilHu4o{{cnm%)jjg&^U{0%W9rrYLe~*;1k7fHQ?|da?yxQ=gwK!fs zd~6A(^x)ll&Hb8z$XNu=1GR!N50n}2WNR%~l-OBiV5XQ@0QA8s@rEr=zg62KRhqAH zqX#yKinPzVIap4WYO?FR?B%-(^*?bWv5t<0)IM=lH?NLLOV)Qtz5J1}Bt=M@6DJT` zE!nT}8fj4)hfcJ5HMw^TAR-!wTY5)QZxGi8qi)HJwCC98wos#*#l~ij$BUgyhoRozW z|I898k-pDRenk@A!HM4ognPbBi7$PMHHmG+UVb10>FZu;8}arLOS=wsdgX9i%Oui) zi`|lC7nd>BvzswL&x&gGsW!%_X64EJP(+$_nKyB!QKhrHPc@O8;#c{=?P2iLtOBP* zk4P?kE3Cmxn%Jg7*Dt7859Pb=NQz)^)dmV}?4Q~1mX0bs*TnNX3(xUF%cRjM1lQW0 z9+27uk6SurKyr8?i4y>+xukztQa37LKs%G4&nPU#Z)HK7+G*SA!=?0C3XwCf`0!!8 zb`quqPwh6c+00A*$&x$WSN7%U%b>oA|3HG3LSN?4)_%(0Y5BhLq==oK7%oYN_-GVH zRXXtXoF=`lZ%x`M=J?khaX}zZ>!W|K_LqYSsJeEWg&Opyffyl&4)u$;e!0}}*U-$Y z57oqN-`WYIB$@^0Xwi$~zz1 z{2ogPx5Xi*1LMyM;fgEwv(678FpbKCkviSyhPS(&PA)9Ht}DRDsjqk}ZzZSP_NSj= zqY2~4Z9RxEd99C)DSUM3AU5aG-YI;r`j1HFQN+G9NiOq;zpTLxm$?@kmb%Z;!o8ao z9Dagk8XwJo%Dt#bACtVyuhpiNqXbOlC7Me|;wUXac}X&C|61p!+WoU)GUh>&G{rT~ z3E_qC7D=8RY0H1uJq|YG2hMbt2Mqx{>k`fC54^EX@MHjB+PE3MzjC`R{LU8^#(bh~ z4$u^f(b*EiDP1t5QuHcG~3Tf$6_#EiXrTH))IV zPvF^RzKh#Jq(Dmh6nb^}Lg(Q(yP7Yj*H`ax`0-X2`|Q1|=AJ+#uNedg52*6Uj!B#! zn?I!S`v4skkmZG;Yjoj#Gu49^O`q%9WYD|C1wX&R*P+ArCSFDnem*d(C1|iosz6~G zb#@HS`4mf2Cp!_}N=0yYIVj+Rv&#@ZB*zI4wc1Lg3`w_!EulBVk{X!d>&4zgQG zCcs>dNO6qvlO0{xyP>D1ZsK6XCf$6VVf3sjL+;-9yG|#8tjTsa!&0*8ZwPC6%LA5>ie3hue)&Kp;eo|;MNp9 z_PGQja|sjzq5!fFd2A$RW1@Bzm5k}ylBE=;bBp2E)Pm^0vHz5UIsDv@5>oFz=vW8i zy*Oh*Fv}!z`ev`lgOv(a{N*>4s9TLah%tdb^2{iWBRpt^c?Q47Z2TEHE8jTOoXAgn ze=SwBB=1XBs}+*TYUtj6j9_Wgl2kX*h+pySs`={e-sfBu|8|b|r_4jShN$bq}AP zO{G-J{6e+WL#R^QQcJe`dY?Cx4ecaLw7Zq3XW%zC+p=-eX%fXBO#r?E`bO43*OT((r6$@M{jFX>-7o9%=lXRsw24*2L+cCtj#X-yiU-_#$PV19dw)Db5*+{ znbTxj83+$=GJ{7nU-os}y!ddzQV*?ko9A;qhMGMQ--0EDhyugwcvs818`hJilgFR2Obzu}BW>K>UlS$aoXN*z+H2Q3LCDjA$3>({d83 z3TlwX9FzdUv8Ep{)3T;4m4}=LzMzS~aDyD;urUR+6qYHUdi-d`!fYy=j{U*7@geg6 z*afVxwx*DIcE4|tK4^8v)?8gh3uDbO!_~dBw^1|IxOb_FO0Jlypj0$AQg12u{w%jZ zFB&BEW>}o*7V9o*fLI2Ymnt|mM+Agq?6vKTMckq(oVxNxqLw0ZieL>PZA*Q~T|PYg zVs9tJgIz|4Nkckx2RVDEW&CvLgvnlFG-xqh7Ji{m_c(S=GQ3steV=ox#iQ!HG-V^z z+3t_ih{sWOW)FXuG?uEOzX%lPI4NGNZC6N%yLyJ4g+uy>n{3(Jx>Qr9tc_--#qq^Q zI(c#owG^(_tgXU`3XV5@B8v>LtQ8u^kzGw1vB~{7jXaN|%)V70=5*~$N+lJUDS@UQ zLq+!`YZKO}nJGl(`BBY)NwdQ_qx`V_tciL(BKTxTxt z=dqXfGYSl;hc;@#30s%(BC=dJtyfxz_Fr%9G$ppq(DKAX$9xM$rX=VFsMSk0wV*vU z8qcZoymLGEk)Cw(G#l)-7rZBEhX?P}!wYU~HFQ|hM*bY};LEDup|GwH@(Aw>SIk%~ zfGL=Niv(z=wNtfu>AoBHsg6-6XAo%fK~N8w4@V}Inupw=)JlL2O!xIwJ2J@Zs|Q36 zLW6NWPM_@aMSY%rLcC{QCNXbWi|=G`Jj`WMauZ%$(RnNmil?5N!Y#!|?>P!k`(9^~ zL5A$Jv!5ZULifavv+ubkBu~n}f;H0J+vYyoMt7h(PItaQ&uL?p(Cm?z?j5P(sgpn? z{iuy)FjQvAc{{ErNQlPvD;@|LOFv? z38inj(~==~`-q9IH&ec=EmNgagU)2nUOQTmbT*bk3uQ4|)h)TDuUz1cQeJd#>TZ)G z$C?|Ku5vmuEqXR&Q-N~JL(QUmu@np?Vuqpmq9P&FVa8XU=6C`_}4L*q`9&7x_oaLpC&C+-Aw7yO*B&GV8VDPzT6D|lZ%^YI2(X^S%F zyad~`&pk44+!Ic+#7`}qFp%mv_X4`~aBtjW^s=d~=n&Vrn&iIYuF#{05nFQo5lpjBtM9%Y=7V<4{~(JYS^6bFFhO?HWG&BE2+&b^0VyrsyB&AN$A1o1 zvSaQ!9n*dDV|H}u%pzz!QfRzcE~U7rw9M`y7=QL(%D{ALB{5mH4T$TH8YuMJtLqum z%{GtM{*XE?)Vpf%5LGlEWk9Lbmww#zN;w%@d$!1)Z*-CEPhCVKg$4~RTlta|AxFyH zh~*34jWb>$h*ANX;bG={)4zVh%1bx@4xq-}wcd@uh*XS>DQ|WXuTGkxm^mWybO#MtkL8s1O%XQ|{GPY#P{yUIwU)LwGq z2+kmdaqdjB{+7)Jl6_^@Z-yLI1ys!G0ZC7WKo9w0ar>nD_sVCghKE;w&HiXzU(=R} z5M;q_Y?pYW1$GOfVU|CGNh%uEBdD>f@h}18uJP%8!Tn(@bm;OE78>CwB>t(I?)jy$ z6KpEg@IH%rv)g@+Ioe4wE_ZPA9^T&#Z+!8#p+p5#)tb#x>j)ApVMwYB&dWLa&-}4* z`k~n{^;N?9Oy-=OG?vLH^3BEfMfAV+onu&yGGpi3u|^(;i(O4~KewrtVJ3`ny%+2m z(QH~X!cQL%_T;XZr}M_-*&1AW&cXYB7_L>&-6Vf)>YDz0^TC5j&b-axSevdaPihTy ze5u_^${6Is9qPn~UxB*>$B(l5Ue-I)TjhBA&a=p!izD`;hLJ?$jnVCCwFY?mouf*& zk&cyva->W(Occ1e&Duh~zQDSE==kJ??Yo*}kUmY}GNdA)Iyh~{qMvd)}${^g{O z{@w9;osMNy`2J(|*+rFq5KeZIS%IISuwr_{e zAp^rRn42>jueHa)PuH839?$8SN(ure$(+wWlU@7El_O8Ag?^gTpXhpZjp+2w(P>U( z*}&j5huqi)_40;00o1UZ)2+!Kd;7OOR*Z)47-VC5=cNUzQ*n2=Y5j-A!E~(U_}T{0 zJ7NC5bGvCpI`-f1#-0bvFem%^8c`B5o-wM@@hh_3o#j$U$8Tb);L{Y}vg<&4Y2!o4 zPhGGFy@h36hcK=Z3BC|j!z&p1(Bq%!VJK_d3%9^^ z#D)90(&@TL1bVHI@B723GX2dSe3{|qmAHP1ju}kN?*MwMMU2iK?8! z1L5Sp%(LM?;x?6Wp}=bl;_wnuVUqtWTg>+R+DO=?EQ8y#HbopyS|()9^3{xE$Tl*nL(Lj{b61#tuQ7r3xXebsr!1ZK1T*`-B!3+U z-H1^Z`NamOE1`O(k4G*JWG2Mc@)fpI}Y&QV0jSO~Tjis7JOGXOWYe0&2xlD^7%D^E5g|mKiB`O5fNhIU0@U3$D3c{PWFvRal~(G**1 z?71w!=|XJzUSE}QN?9QrYa%VKn(99rRCFDJ<}<_^Y#TUNOL$s3HZ6QoxmTi|mxV<> zB>W~4#JEdr_R+x&lF?sczx>NStUqTO;%NFY!FNHUU>vX^eclrt`J8tmj>Az)*4)|E zjuR5~7FuiVi}R3O;xK%2?<$<;b!sU5rs;;^@}KoBYQ(SCuZ%8)5_U3$j+<5uCH6Ta z0$!&8i|l7tl_Neow$=*ibe63TW|=HO>_3@hNvCKu_mFv2xHKDVjQHj5mB^!N%YJ=q zgd_?~nnH-KO~?%6`!@HmKg&5vpG>gLhbpcaQm^` z4hd1f6D8D<{3J96R%$iAsFA#u{4EkkC?#H4t1}=Imo$I@xNzJH0+-~R2R%WkKJR3k zY3dK@=h%!D@#bgxWz0iTW6f~Idzo^I!vc$PjyZi)f@ZpFakvZVT+wt=aoEaX_R)$L4o4YmG({wyq?#|N<;1?;SY^cZxV#JD;pMdG z2T(PLS4wj69E`~1=g55m{|>C>-!~_Y_!%DzQ1Z0(`F+KYae>AT)R+Ih+i3SBe0g|9 z(P~a3Pz*Hn3*#v|q^5N_LYsE@+1q{O^*SNp5mv}-kF%!xAuiyZn@cD=Xe!24GDhOT z*jH&A(w961w&qD~k0UMC@6*_S;Flw+wGJ-OukJ+=d3(~pkHZG&&TFn@e7;S)KE@i_ zF4%&854ZI>;ADi6AWzIo{{X*%tZ?;^h=7od2kYZYi} z^iGi3V24I&n!H1*wZ)NKehsXK&n<}oIH~4*(SSzkp~~X^+#+o2!Q>x_n)L9K_&BPm z@7Q}*&~AHfSG0bPcGtn*3A3G+UwNJ=;$o@nQu8ZV^13C3bMjU7M_B2g*_DXRhxb7Y zCS%0>1Ox=IVn9EPGtRWfH{GQJ3K<5CyFXz4Mvqv~sA0U8AI2#Su4v4$-XraR{9A~R zF7`Ry>pc@b;aA7=`OvLo`S!`rrH3}sJkG?5>zXXrP&tNg`?atAx=mh%ppk`46=K}v zTq1h0;4$-@@*qi7DZA}ogy^5ky#ZteP;hV-?x6vT_fXY)S0S*9_l4^awunm=EG8z9zM;Z)-m>CNJf5Z zkB82xw-bT0*(2a1FGtrFJPh|5`$nM-kSXm7WWQ{o{adtuOVdxBU_Z-3%<{$E)E~+u zw{BT#-#aG|$6U}D*RfEiD3+3Rh{Z1MFNH)Zv#og)gN z2Mr`-I=zSVFGEs~S-JT^x$Y%7xX-!69+7-SHid^p;4?t9t4Tm7X)dDu3L6as$=wQi zMFvj5;0k!L4Ujse?*!Yo_!+PLf6@kHit?Zuw@|qHiVjdxSSKOIFk{d`;7V+p7Ycew zqV4pp&tcr@#J#`oA{d()J_YWkrFmu_<;%=da6?Z}PsJ`0Or7H}Zf?hV-eRCUa`iipT}GuibSkmM>vh zpPxmADSVMtTnr2U>7(c?6dB&MqC+g&e&&^#m$^foQ1VWlZ)aITvE1Fmdnn}?dE4o| zIM$DV@3lohpEu%YW3WpPFkhD9QJsBO^6nwvKPvG$bFnZbhKusBRrrUu&tBe8&{v%z zPajXQ78R0EJj-5g@%qUi2fV6^H?nB%4Nq=|&sB+9)Nkt>ms>NdaUwX==0{TPzx#sJ z4VH*J%A`mgFQ0t#qi;xEvMwQ-rOC&hm$I^RRIGI7+SBBIbrG+v>NT@>b0S+JBi(rR z0vSnv;hRE$u-ctS`|z0Nw-u*nxH7LS$;hx1aG?4j2k2M{?p&hG70(-L9|+3H%J|c6 zFQ9{M=aLXGa0<~bNm}V!htqg;J=fj5nc?n-)x>cxtsL{FfOU~o`{}LgMCfKDirDR! zH$HL6YSZbrz{Tm2RKaar@5RBi%IhRww|&}$RsUrM&mXKPp8OR7VI-|TAT+1o3CjE7 zPUB125ugD{Eev3SxydGquSZ^t+jK(f8z9aUr1g`_U%|Zg$AKYe37b9c^xS{&0>UU( zMlX|I=uP?Q2b1c9gWK73S={>Wx!ikt_=MWs`q&>PCH3;e4~8s#QY6$G`-xz{ z5YxMc$|>A$8g7q`H%vL6-uocxWfW!FJHMMCX1#w}W(v5?W$*i|b==&sN`Iz#3Ea~= z_-UFWDFEz+-NpxD_gN6#;~SRz7ZKBEuUs^beNgPwYGbLI+$utwEuF3DU0h8xH_}Z~ zrd%(zlQD1XK3>G`E?R{Y?uLgSrbe&c2+=2Kx=cN=qBN{k0uEddFpe(^n|PDv>Lk>{ zG91Qw`kNt#M`cpV_{3+3%6$&h&&3^Zt!_e<(LT1EeAA??o7a7<#t^Jq!-mx_(B|5hpCbkT zKMR1$yex*dY*Ga~(ypve*>s-YtI%8&Tl<9vQ?OH0+ABs#@?Ys0JDHt;TlV3h0KZpX zBhX>~Gx9}luUbnt39cqlK5J<^;S{ekZuCk6v!xp_vcFDut#WVk7k|vwjNW}2bqDm` zfLx(nn@4A&NAdvp*q!860q5K9W0duBD0&vs$S-fRD-Ri88c0BH-nx-&$_?wtCD$}8SKd?->%XZ|CI&8Wf7 za0~S~86OSSZ8=A6%+8)7-WECS7S;!vmcaiJA$sRF?)hMy!u??!0AhHwP4dTAV`d~} zxz+SAh<^?B$i|da6|-=scL8_XGAzu<+?qRkDAbzF9!CnX%7M}zLPynTe7ZkWxEorv zz0iHn5kArP%NBlcV&TqNx1`;mF?$a@$tOM3A3#{afWv9r00E@4#$@wGV|KT$yi}iU zvB#~pM(%eo#$7_;?%#4AWxJpHb!Ey~ENx>#*l*!GAi`c`j!YNS#D$Twv((dS8y{g8 z^RP*tx$S3b)~TkRUGKU(Z6lelL4TI!{TX^d3Ep70e*f+vHKe2{^%rPC+xDA;y{L9h zXz|y^qGvBhTXbip$VvPY>yYCaJbpKohl9=s?aIcm*E1GM%_dx__@hR6&{j0%-pawB zwL^d4xazi(z!I-q+;r*Ea**pD!`8QMuX_DKCzvX+}g>O*nKCtm6sK3erDnZ%PDlLlliBK4}9Ygx+v_dXOu zAxA8YfVyuxQg64-s(X+7YdRLX8Yt4hveh4GkN#aLw#dz6Nu1HWZ7D&2R&bMXAB z;8wNKhGac}M_iotJvNSBo!afdz^9groQ39}EKyD=cX0Bv9 zw2c?No3)C#{s?bn55}Gboe1gJp1PQ)*|TnN{r~_L!dnYPLlSkoYIsUK=m#!86dpox z`f#V+Qz`-(F&@QYaG13X(V*eV&*1cBUa=t{%`*r;?Z$LW=>f94V<9fYrB&PhFZ6vy za_%P7;&gdJ-VmyKM5`c8NVVJFjxgzwvetBT$5-#HoBD7T40zfQDvyz`EfQr(swtE0 z!*$5OtUadP$L|VVRxz+Vf;t-@EX&mo;G0bx-?uxl>Voe(niL2k&mCRKqW|*!fG$3? zORr1sv%bb19(_yT$(@PAR*<-3L$*;)IUJWlF@Wp7AV0%`s(vk?5^p>dUrnB@>VIF* zKo;-qaXr+n#V70&fd~U7LMr+~e5o%;K|s%#)g{$e?p}vS#*!e%n|3bcp0AvdlS>gx zb2GjY(F)mfBFbgk%*(zj=Y|5R%v6@HG+h9i7$3q@8lrW^cU;@UC{2)#&TDJOff$GV zSBv_v%d32~JOJ%$Q%s>;8}+z6;hg%x1B5pd9pyV68^8pPfXYXC1%SHoK@N2b&n9X2 zQ19C-51KKQe5Nrz-PlEvdu7+asyVFX>$|h}fA;B1@1#W>jg(UU{aa00wJtnky7n9L z`uTN-TfaL!L@OH6PeauAW3zt$NmBj-Hudaf(G`SvPw~lZ8Y5B%Y&d&795MR7iSrMO zpl(~s>Bo1b+4wA#yRO%2MJM0OhUM1ei*<(8LlQ5~n)%N(5>D2e?60@~^T(4Ahnib% z;DLJ|v}9UtFrqTdUM;2UJ3x{S5(&>r(`s4sDD>8L@>YGHq8?*GX5vdKS5f6VDYKlD z`jM@R*Y~CaDta$e^~o*J-sY?Jl`Afn-A`05#Ih=;x-W~!e5*bB_}wP|euVi&Fd&Q?QeX=@!n^+ zVSP5Ccx%wAcTzAzr1P@!uEnNL0Wy@sZ&e8x?bY?f37W!b3_IWc2oB0)xE`>)V+n#+ z!I{&h#>dwf749Frj+aU%*D10{pa}}JnmKqC8dX+gPh{bqQBrep_G;HNK&*n_>4Tf% zDh*5h?y&o=jtgb)b;m|y@(2l_5xlk_F$3J!vv_FS`#PstpJDUzSK0NLkK-}uf}KK1 z&*bG&Z8>uzqDWGy-$zH>_U}Dtc9$VXZ4THrZ`NzYS-wM{w_mW25$S&%U7|(>!U}6M z8~(IkE!IOk4?1o*{t}hNs6>GU=3K0}M*H0cdhTnbO2<}s=L?uxV&m*;@cs8fbq($( z$m~dR5xp8@{=f^-lh*&E8Q5u$a4y+b*Ug#gz4y&#FAh>7YB63ZE4Sur;qjE{lQr=v z8|~$UDNpEL16=da_Sr+YJ>i0g^RWAL;;nR>shS*$jpWm3fIYL)+f^WR zaMCkVyTwI>z?^?|TlLlr6V6eA;z|`sdM)D&TN@v-WufW{C?i$6G4b|F$dM zAu8qnz`pSTUp`WzK(|ELzT0$JZ!65h(%qBy=CY0a+w%_9r|Rte89!9Yy6Z*5Y^Ao^ zy)i#Job!???tK{rgaq~2L&CyM#=%<+H+O#m*}JqW|3RSW*_p^@t2wH^9Ik zh7=;T^*cjoqHZVH>Zo!Z3W)zDn?+!3n2}_*b^TAF3tLx2!p4j*ZOdYPOgA12cdUHv zMmQi@ho`ZCreRUJal;d!6Rx>(;K-g6;Z^J9wBuv)c1LA4@Qe*0>x_Ly+sRY&ddam4 z9{a$|(Ep_$yOH}h)5E76@m=~XCT$FH(BIA}a%+DsUfH`fZ5;v;ECsTF8CG2iU6DA3aaoTjg&w=}Nxl)F=7)Z>f)E3v#=+lT zF8g`WCoe~h=tNX0-`nePRQ(=Tq<2cj91;=byUG9Wd7j4C(Y{!ejo@}_IoAHfGd)ai zedD9kaToHh%fB@d5gV_Fkn0c<9jFh4{!vf0KHUmAR6$4hna2EJCX1+lP9xTAn&tJ# z%p6{8SIczg@RZGxL$6M-m1>4wtcPHJtws5+t)sPHH(yF#b+|^9M(kuWtFFpa`pvx| z*Zg{Vt6;*0%E(64SBgQJGRU%8m{1AYIY^rbXdG~i9bB#-?=d)HJ!G|L#QR3|J-!=d zRIyWHB0Xl!Q}ldy#sK+`%+o1Wet0jc@tQ7p!|BBK-r31C?sEYK(gY7eu!^Mn(H^Se zD+cRnm1!MmT{sfX_(>9HKo5Ge^|Wrv?gbl0d5w zjGaz4U6|+_b=AD_vAKJaPt_0Mb8V(I$+0ZNo9&XmR@Y>*FUZHHzwrH(^!4V+Y|7tg zH+cwy)piev$>riMdBjGZUjBPmZq^+-S2cHyKC?KeGpqtnHokA4S;dpvEqep!$3TVG zHVV;2+iO5|9!F^KWs#DVms!X4I)Ty>yNZVx{)*64_3au;Vu~d>;>NI9JqA{i3gMUF z$LsZXA}N0i??zVE6AnqhKBJvo{}4J&x~+Lgn5=nsxTE(h@X+b|nr{A}`+{cCEVcqs zpZD&sR0@3oh&vhDZRLhv*yPYzZ;uM~{#@=fZv_|HtdUL5bkZ%@-((O>9;p^;GfPEr z{e?vUMvN||P*r1lIBV=ihXWnEpL|}6pw!s&d85TaWYLBmzb5a`q6cA{IR0#yd@lf` z8Fc2vh)p50D3C3bpDq&}U~-qGm+)(=G+%1NjHAE{wMIB+IIIsJCI3P^A7|g&rT$R* zNYV}rITt%sjH=}i#*rg8-Y2TX?6&;ZuY4M^C7jJcGku@_S=K&*IptfFylw?>Z;~xY z=XCd)m+9BV!)AW~7lLi98k-&V#;4Bxr!IHU8dKd@jt&^4AS?;B1Oplpd3`5`!%lQJ zNff5%H}z+UTQ5T?KHlhP9-+>ygadpS32-R*9_}jR-7bFyI2Dd6rE|^-DqT9o$E@gB z`sW?!7IJAzrUxNtmHzWQaU$O=M1g@}@v>T$P!DcBwbTCmtT4 zmcRN!E)dm=*rxJdMb2R34Hg1~0>R*(rMw zI#c?Fe;ET_5r_rCBKpJ8&P+#x(lM40p6t^)CD14m@b?B+ZSN5>3Lhw(Eai?bIm&MLG zIEEzJD4|CL<8XRE8fK?7FEF_*Son?&zQC4?YF7p(NV6^Dr3w#j1@cPRg27?wZpyzm zQ&yr3zHLEcqV%t?XCSl`C&H{29?F)U`O6Cqvq%awQ%(0v9{tisKch5!T>wlY+Z54O z>65sUq*;5Tj-v&K6^eMN5}M0fW$_w&?qY(6n5V>>`|0`bMig@9+J|3alvar06xRC1Q@x_O(yfkZdk{+fNARWs)v{}f zw-)3yBarMTG7kfgwFUJ+G_k?v#_pUGbZ~#)%h*fvMi@c4;^+@K1Qa1dn6aki=@(2r zfw}4YbzD5X3XOJHhSqe?*@}!DQ8zPK@LUqeBrv*?*RPZmZxgi@v&wp3Ri%2>Ff@fA zL-viKxQXM>a@%6$wF*>$KC`BtDc(wgc4^oqHwrNa*ruYd<9jGZ!ak8>8ycCRjv;4* zXKR<{k>99eA`2)YQ|)Bjtk(0BpFNZ3X6%Z$W@k#q$MrRRWeVPNO`h1^P)=$<&%A{Z zNxyp#%YAglgUyzA@zw`}`y2uFUw>}Hf^dAQ4X@V6BpS52W1ejzg8)9O zv^p1WGlh=K%T{kYz7-*|tMo4pe?S{uAV8X)>;$9rB z0aS^W_tNQ0uO6EGB8|+$TpE&PYe78-)6B`gNIW2hUIgitgWUx%xh$?r^JRD5l%;5!qM9P$(d)hUFODFjepDce_;nb4~1?p)w#MhTQrq(zFL5 zJ*s^w~AG_@6{!oWGozJzGQ2@B%Ydyu#9n+)fe3dV!y_S+-#g z+I+SK(W?F{gNHMC%tSBcl|Mg=PpChW<=!jb55)<7?l*JWMt+mUiv-n^6S_BvCzmT7 zGprj0>I&;j?hPlZ^)9Eh}RCjP@fP(>F~r_RQSlqmgmgp%A(3O-d&bZxjp5jJDS)i@ z?X+SvFcb6lcjyH49%TNMrmc_#u?%8n%$;7`6E+_5u#Uh zGEiE*r)+NcbBN+te?8tRA0B7>)+0zSe-*a5YZg3!IWcP0vD~-(Wx#f&jGU$oG_RoKf3XSM-Lwv62o{h|TebqA(X|b!ddXciW|T zU!GR+i-GmKJGH#R-!{VDl(5e#0jY7vFg^PRae-a}ML`}3#ALZo5xFUf&TPJ8$Gig1 z+W;Figx4LO`YNv*Lv_f_9EZ(>#vC- z^+yL(_3(pdB;kz^M%CY~7C8wYw)Ko^$f?Pjrl|B6<5J!j2j;P0j$E}xm`FI_C)Y}H z0C@y@&%`;&2kvh{hdd!z3>7@rbRj0t;`FmG>Om4JY}xheM*yzfE9f^mA3WFYx%NX? zhuDPsY#J&NqF0#}l%iWOC9z?9ayGpDLG})sbi$|FVUF|T?gvlDP%rv>>%@O}JU zY&_*DuN#4NB_b|`UpV+Cmg_59?=RB1vVB<{P56Rwq^EKxts&ZouC_G8 zrl@j~6L*^K`}d0qAb z6DImzF)bClgEG&rkr9>36|{eHszqo{4Ifg6!sL z_0*@W$f_m6i21Y9j7)nM$$JtNJ_Q*kf@aY&;|2*mJ@^;b*Y$NbJbi9Gi`WSodD56w zG2dty@t#2W0h{($kMb@~y^!@@mfY$cQdL<2;p{vmLl0PZotx^fwn92Sai7%kR_A*d zAzT;bV^@vkvzFu>Belxr?5b3stF5+AOLOP@&(RLvuBYoB_feT2g*a|FhcOI|@ zo0^yXiWJUJ!Ysi=z_PIJIblHq#2?@>)GFFq&;d{gFb732W(DYB7TG)_lfj(0cVLeePM&3t1b93QU9!7+lE{V3DpKBS6&^} zeW)4tv>zYlhC3di!NE9<0=4)kWYL zR7H9`JvMrE67D&XiO|1m*Cmq5qnbg#uKcoZl({qD8A1m3rM9=-4&kDJ{~!}S4vM-A z0B4!Mu$S{u;_{+JqVga>-KHG6to{YEp`RH)Lmc#~1-i3WQF3Q8c8fjo?_~q61cL^{ zZw;_eW^S#zBi&P6SHWE+8J4G7b2%Wz&w2^a6MlViVzj4{tDYcN$ZuFFpe!l0ZI)Ie555?pY`bm z3`qOk&4=r;_nBk84U6yVI~L6H10hD-!oYY^waWNY;97kbXm6cuEaKS_s%FqRI=11y z<=8eTw|JMWQzQXMHx-3Ck5{gHPbnp{!g@S>6LEUw)3SVt4Q zcJ9P2MO~ycWJO@I$|M9I+Y$@XDaB8;mHNfXj-AoEZvP%K!#k?;_F?i8EV=Ec&7XYh z5B?&MnLJ;EtbF$gq&|o!?8Y$x9?*wWEzQE6P{g6b=VAjsx%`VZX;R9V3u5>>`@z9- z9W?RU7XFp)6lmg|!@s-`mgWqpSQgS+PrDl!-(*&DyCxqC+b1k` zN^t`3ZT+8g^yRJYLw7O!@4QHcft%ddBa4zb$rp&-IUpVKh50$Wo3RVXpSVxLN#|SX zTSp%Wk_(S)b(nhDYF}^835#Wn#&Kl{Wc8ztUs2?yN}Mbg^{Ra~HNT#3$XDmMy{9^3 zCpL8I@$c*MFLKX*KW&aa`!Gp4{ezz)N9GPOH;5Um&rtlEckNn|39d5cM49dEzFq+1 zxFavk1?-aaj7c^PtnmAp)=9B%M4BKcMlI}#hRYcVUdlr+Er>0;P4*jbxqUhE)1RM( zymP!#)^7i?jhcq!p+P5%dmF%}(p!Fa3o{eLytl=J zgr$V)(2-U7L0@MFYV@ewevN*4N83NT>wwKcvfY}u`p$Ve-R3~?zi+X5ge1gGpd#l* zXf2s{sDxB0c|#L|u&Bse$zz?H{d`iO`+h=|_ulHr%Vdg<6jBv(%w%%;XFB>bYC9UE zRu9{6l?nGMpi5*W_eW{#wB(Mu#-j~drOaO|^q;7*H`U`?Rm69264}j3=QnY4g!rY_ z7~so0e$r0jjZwxaVKM@R(v4*M+aJ;WwA==KkD_lohx!&W6n``@L$keiQRhfTKAi)| zn;3V{gR&x;k^P;z%98(XRiKI6RJHK8NY7VfbksC|HqQ98Di3>hQb!mDmDiC)5rF+q z`%pc+q_J<{clh@mPa8h6Iz#y2ty=a4R@r4L!0#wntQzzs%=EaE_Ji9DJIVIbFOja1 z4lN0#2{-UpL=V(Oqj_e;2c6WRMbN0_x{ddeo8H%y48>3c1A!Bewx^uB86%I`K_e|! zdLM=CU!Q=JTp8~@y~KvLttNO%JG-2ap~_;@>II zq1?Te9S7p-lqU{Ym&fvmWv? z>o}za``1m}?Ow03!;#B@?>n%gix&U>2UQ~n+}kUTf5p>A36%g^_6J!_wRX8*;0nmY zvmmiwvGUWoPk#4}1u|&!8{h-`A$ZJ<7v(h%jy>_m825c0_cq%Nh0yk0CFhSZQ9%0a-BBHy z2rT`&Kpf?y2&|FnXiay9yVVR+kN&$pRU@gJQ^55pA;Hr}!C>XmBxm~Cio#^d&5s0o zW$i=)hG!?$AUk_54zjuzfyt1FW{Cxfr=9=q6cdA9U}4o_+2^FLcpL1On*SC0@P!J7 z{PfoO6efYcn|Yo-mErUIxt?`3PB6ymtkqQz@w?$iL8d?r=$NDK-AsPdlB@bEDXT8R z`b*b=G@Qx5B|e{Sg`L(b+HQ?b!y#xxzqT+T(d{-5>8IZeI(UPxrOJ7?WwzFGxE7zc zJKA&R);H*X+A$zn9NBuqw3rU;P>dCU|4x6><+@r`cvBypDMreYipOH9zSWn$RQqJ_ z?fqXCfatKyCH?9fd!>_&<-Vk&NsZIWTVMx*@tm-~8uGGmk5W4B?J{OTXK)LoXV zFUD0toE2zWcaI=T;O1F-b%;JKZ%gDgXpM`zt@{-dLC`1_g|*gde2nJF4SDo+u=4{6 z=%``=gQUe4X#nVsRoNhnC~bm_DX^?F3b0|5hiK1HYqB_U*-qqm3;WFOQTYDz({Aej z^@R0%$oI1GAJw!9%*3NYdx(6hQohF?NrVJInvJyV&0Zj+8_|eRtp1A*7iE~tGIg?5 zrF3T|!J&(FNHY*@fY3&!$w)u7krl^>l6qR+S5O+fi-~?aFVD6mw*uIt!VauN%&L6- zJMB&jWVQj4B|f0AGsOZ8wOQ1=SCKN)M%*L4&#*S=Mzu{W`U&7@Ls8C?3;M3Ymr2Jc z!6Ku4EmW~w)FaJ|>!9_Qo;M@}$+Po|4FYSY z47@fFW2&jM_alyUcDj*DaH)X@Se+wMhT-9$v=o3I0s>yTWEv&4A=ZjYPq*#+rYEwPj}?Ej(Z zEaRH`|2D4Dpp*)NbcnPLkqt?uQ$ku$DUlpKU_(kkx&_8SQlz9CehAWR^rXQJM%T!} z;NJhi{d|wkd7ZQG`FyVH{eERqJFxedr|H)20sOBo{CK;B+KImBoSJF=lY6hW7Tm6Z zIeZFju~h}#D>!bB1X7(gb61gWL;Cd_rxTzidD>BcX2l|c{1lXIJH5^S@`KUqET)-S z4qSsx5WGNGh7q^YF{_kSz}$s6nEGdZiuu$7ahoHh$7l7$J99|s$c}qx(CXl4%sh7& zgj6}bI^Vgx(Foc4CVD9?GP5dB^FNq0<0V{X|AhOh==^x`(UXh7GQBQAp?Bo>=z*V! z@~80Ve}~?g)t8V|;aMf5nA~g86vaVr4&k|moaZC!&x4Bhesr>M^?78mlo0J4&OW-- z6DpQ$azvj)7jIIvT(3}45w4a;rU#Jtslf{7{g0~ab z3jnVDFB14nZUGJ-qM<%w$r%guAaFp`E7cD*41^?#?*vJ`(Xi5h@Z5?HQh zzmT>6@0zbIF+&vC**rv4t=8pBCjJ+~(6nZwXt&hk^qp4Ss*YTXUtABkSnBA|>VGIf9ZK!m9;$$p@uicA$$wg{#Rk?$M(g3$J_Cf;qwBowf(Yy zw4@v@qF=mXmnYoF{Pg)@(2?<{>tF2}N7lYQp8}9N%q^d_9s`a4#~j%?F64vJu72zV zzDl%3Hx1FoA4sKA%nIGnE2veHREF7{3Vl=U2SMv*^DGjls`2Bo5F&pS(nKR#0^$^R4OY z!SacP`yjM>(a`>V#Woi-3G_}Fq)odn%qlA!b9!;@ecO!%;~6NI&51atI*1;g-*+&_*)&D zkUR7Hq)7(ChEFq1gz@uMkn#D3;Aa?;+W*{*kCdX_rCK#_4x-_m|9}MnC!oDtc6GK) zqn^^spUaarb>lVelE=?NDf9R$Xk{qCTs*dnnW}nf#p&|nM5AJH`!$m3^}PK_Bopw5 zx~F7+u`;^^e`u%I;0TkU3W4{jr$BP+p8G#ymF(PkkRy45-O6BC_3hn>tlHuTIh59q z6<|^MEm=v&X-F*xlGB|${og_`&0Redk zU9YIVhroq5YdmCWJN!a-Quj1S@r|{G^M3q?&vdT0EC;em zWADFPfRtzgU2(bY!4eP*hiY@M=Nh}-3m#!?P+cp3;))bJ*qgW>R8iPPR!GXL+27_t zIaynfj-4b?#k?&ORSVxo2PuqXz@nXf#!Q}G__Nb~e3I3}p-W0Ab0Gsk1SgoQn6Aui zh%C7(f{Aa18Pj^!pnkCun}UKx_&Ys*hdhiw$@yPS^M6@7q8;M~$(w25aE4x%>m#6t zvB9&R@IaC?k&1Mj$?q(9`9>4)--&Erv|HlOFLxo9nKV&H&3KYm^VEZs8$^)C4ND}K z=82f{qf`J=tpikebh>9I-k}aN5Os_*ipJL^HZ7z1~S>SPeWmGX|QK#tK3gQ%adxrxj(F2Db=rI|0_% zs?nwB4);rHvf$snOYgSb-S=GWY`NcCF9!s!K1!CDD-p~zLI@=~$)$lKu==ayYj&d= zT)fX5=a%L`X&P+$Zq}@%DwZ;qZOCxxQU`6%beq+}G zG=|?}iTAdtl%He$BE{Jc8Ld3W+^gw0({@OVvlSrt%JI;YrS;6bLX<&!y6V$)7F!@=5E}<(7$YMpVq%Q;Sa>^uh}2&(krV)g{L-w9JsG?ryRKI z`5G^%;H|$^`HsgVkBQvpi-(v9yB6dRLssC3cwaN$mU$KFXY!fTjeY!Sev+6W55xrS zS*HnbYqgoy5om|#+e~nIL?e?NB~Efsc=3$-a7_^%K}b+02{z8nOf`}a&A8t1d!fH` zpIIrGCN%e$@oZv0V9AMo_N$+1ydq0a;igA3piE4yt?r^9jfsk<$)aweZm9Ko?gwl` z^6SFjd5^i*9Q1^;W1U=WM(9x+duq=e)*=h8CUIv6VB@J>YwrHu24RlAV=Q1;?~!$e zEj@^w3JUr!>aKj{<!dxpfLk+2=$8S}Y%a!Wqh6c)TY z4?!w+EN-9A@jyAkaiSLo(2n^v|0BHRqLD#Vo^>4{LS3n#*{@@-+<@8U;Q$v2@d(@c zXz6|NhTeM@s+Vp_=eu=jiP7OoLhc48ppGk;O2pulXT;YM3F14`PG<0^Nkwy;M!i2J zB&0HF-PWjYGcNRV1icd8E$@$PYSy~Bqs1f&U$3z@N8%}k2wul;wpvJ8F>D*r8d# zsURN$cTywVv4>LQ)@%9_eHsHo*V*kd2~#dZyT4C3%Qo9h-M7(htwQ<>#jatka}J&l z=BsvqceI|+Br%h}{OzlePaVP-t+bN+nD(3>$ZMF-6Q%UB=hj`pp3v|CGRldXJI}ng z8+0*x3{4Bf;sEJ|pD)y$tB7;XJ3iA01`sSXUyFw zoad;NPZWJJW{&!2;Gtn|Wn5h~N*+21GnzB1*U~?Kp_=$(yXsQm?iEFxTvg}T5BZce z_j%BGKz8E#w4yoPZ!(n-{A~hL;5@;mKKAN#o$!PEuR}G*hS!N}bPv4D1$WG_hG`I4 zaNRsPJ`u96YEpd9@bu6s^i_u#57(Le<^ZAD=fh#B@yEv(F_({TOZ-RMgl&`DDe*Ku z1tK9#9Dc8vB4sx6{kY)akwT6JOAFYlFF=&2jU&-|TYc5wK#mlf}YsD*Vr92&$_*)Q>#(L=4h5Lsmm>u&tZqKKv zBqH}v{qs?FBgdTUa~`j*UKd40aIu8SXEn$?yi`_%$W@hg5XpIWpTq#pK5O5L?f| z#A;NOliHI+JY_#EN630Zu6hwQb!w`)Ns4Rd&_#&ROsW6qim`AqkfZXq>yhbNoqBMg z=f?TDrTsF~wub!@?x4^GFbS}#Jxl^10yA@@a2XoM_H4%{=MNq;u|y-1g3=CLad$#D z3ew28eMVwEyJ_Tpw|niK3A_d^GU@p#n|L?`J}Rxj8q+v+U;$~vfFpr$TsvM{A`p3-gfYf)F$eoz2XUYoj{Vkd=n{9!m-ykN z#rJz#ql<0>Ci~)H_!Z2`Z~RuP3c~So;4M$FAYNypLQso`>dsan7QC<|6FmwT%5(C4nkVG{Iv252uwNOGo3ouPXOdnPMCL^!;S zJI_udlYeyZs47kk;kfJ74RITqMS(BPByjXgPKu=!)AR>a8A2rL=w`y`Eloj4)maPS|D}QJN)@!$0 zio9GMSB&?wX)HKqFo#-*KoAk_oIm|T2OqT`4=XMmN|sk7Iws*>`5J7NFkQSa9`-I< zxHt_V4qj0|#MWYLax-}Bv%jD$uUk%HTiqr_ssCQg&?dA5TimyDAQ%8AGPYz8C2J*x z_+=Hv=qtxJhusE=G*1Kf)&=IFKa5^L8D!roYv#jmr->X2kc%<4|0+}8&UGcBA(r#B z1e44aHR&K7y^7_SXZtwiJ^0vAh+I|3=RDJb(}0u2zMB%n$7u(NLBF?RR7pVW>i681 zh0T$2RlL>GhjOz!!kIOW-1Up@=ZH%#X)K7ek@n;n-WjWnbg7xY)swMq+XZn;!Z|bI z(zn{Qw@L^pFm7c}0nr=aU0#&9Y5P=49)lI{C|XURs)NpDIom+x>nkQCJ#mV;RoV+ zXVVU1opsM$$~!aEbs|!R-DxGGUpgXrfe5h0UHJN$>V@x#rVF1_UfoXe331^3Za25{Pp3-uY)Vy+Z*?j*3(}$ez=rKTo+^wxI?;RLoB5VUtHE?w)l1o zU-NB|Dn+U&|C2CO`}D%)r5Q;%+LzAUjBrsymf`maW8kyjVJT*JB4f=j-#!u|gp$dp zyM*7Zad(-Gg<*Yc>gd(jio~TRA6|5<-606~jS!y@Ccm%3rJ@OlIdndDtiyNh3 z?fVTvRrSID-Ban;5Ht4F(EGrHDsrid^e+WV9O3}MT99n<|N0Hbavy+^{US8U$`T1) z9F4w;$D-OUmu_nf5TbT&pzkN&&C-^jlMOlZUPX_Hs|j~I#i`f*#Hg`eT}Y-3W1wE5 z2D|3kIa?bM$DZcb31dVwf&aTtF>b@uR(7y4r)+Vsi@{lbztmJBR zIa7fZ*mckt)zhU%n2&KbuM_UdsdprZxL2lhN&PcWg%pYfnrn{GHB>^?_2NTdRu~=b zJsTdQji|zzsMNU8UY7oToKi;KesUSho}A-S`u?;<(PzZl9((*yAx0Yds{;IWY5FP* zC}kwbH655vGErzJ*B%+^e6^tA+uxqEHzX6Xy`gTY9k4(BhA>PrP;tj1^i%(xZ!zd0 zKSYTBjFrX<`7c+yzY%>?NF~&1r81}{FPsKNMIADmyCtnv)20-QQ#^40r6^Bgg5}_U z1y(;?H*=W7Ur6BMRP!^^WHB{QWJ0ppH#gq3LCdB%3vafSkrOf{3Wuna*y~m z5F(l+7&FmlmW=79Inru{nY5e~Pr~i^E|^fzyLL9hs=uh9PDE-w)UvwR9oyAytmaNj zT`nFw2Dk>d(B`>6m+9Q@)TKT$(|hE^0G=@BKqeLp+Jk)GKuTPULt91D3MRBn*Wg;2 zA3=Bju4pZ5k_p7~44uPRoD@XSY3czs62W|Mc|Xt`ocUZo1<=T-Lxwh`Edkb5H~PRmU`Z>Z<)CC!}{l9 zQ={*;29O|OdS zWJXT(EC2BUW++>Dp1p_0ckX#y9m7BSCFpnO6hyL}58_LoX}zD?JWA#DyY`(vh3 z{5V!qGj!Rf@rxa0NrS?Y@2zsF=M)<|UJdd;@oeVt0uMakLKtx`1ZwbS&_(hEN9MUw zUW`;^*xov~wR>RAE_ZoC!H!I***e7t8c{_tx1dFhBn;Cb%5ef@=J79 zgIxOwPpm!yU(`eAH~P45_;;7%um zqN2sot{&DK=qHMQ6vt`azf2gKBcm9(2ckii@jt)t&pDKH6A9E(nS8MV*XT4&Q{^1E zigkg_?dZRmF6B?S#8%8~RqgCWlvM6SlpykyWRImph6b)gP8cs*dH5YZ*;{v-bDQxk z3@%4CM5+PDsujLM>&y4Uee}H$6GKiQq~y4|*ZI2@0P5(C)7xM8fr&=-(A9J@XcT@P zcy-o3^In6-&xI=Tmos+#G)7r$z2s+GP=hIn`p1NYRMfCv-X>g{ul-#!Bxlu%hrR5M z*1KZTTU+LNPHHdveQ*ss>)FrvPSj)}Xsj>o|B4dRctV|&r>EO{naPQ=W- zk~&$?SWKw*5~Grpwyp5|uO^ulzx3aA4^a@GNs#L3{7P%~I$ZbV{b12qo5UHZ9mJd~ zg=2f=Z4ci^SAW-Wx;3Urd8XhPWQ<})U#3vsnQ~U}_Fmc04=ZYc7NOklVa!6Z10{~Q z6=ZkH{xY_0J(v9uPKcZKDMvrebD4H86(9}Po+&=vW4#{$r@iUB&_l>L)}n$eYOkR+ znU{g23?=fMD7Fz9lcrmzq+3Ta=%{ZbzRla2_|0tD(BSUN_|E1N&i z;!SAk;f~>qn)45TNvB|#zMNv?HGqvt8SKoE1Ggdn_Z)47laI%nTp!}Wsx-<7DO~fm z;>*DIM7rtRccK;66r-Knua>i=|2ysv>6qb;y)*wOMbo|~w=XmQF}#-E8YB0gLxt3E z0Gx{0^OH+c`=V{_Ng2rA^Ww3ft?m$NF}U=o=n%Bg=Nin@lqJ)i3hLRBSUqpg^KWRE z!MZFyHd=Bu_EGnL@s+3ER+tn;N@3k@HaQj;=P`CjmhRSM@!F7t3aI&9H!_PtV`1QKQG!XeENj;P{GayZ@j$U zH;+jnq4JeF8;`~8bL;HRXZka2BHmO-@zvZ@K`%QugXUe2&^wVrE4yJBH`5c~Y5+VK zJbawU5>xUG`l^|0zzmAS1Ee~iFQseXlcmHmoOEQ&2DhL6xr%t#lrG$qgR`IwKn=2k z7k4K6V9M>CTG-|X>Rgdwt1HX-Z{ooohn61l}W)V4TA$oObx_=LqiM*LQR3FyC*T$)!UoRu|X;(4=aLymb- zbEY4Ea{is_6TK+Q7)T%rQLTJe6mTTtx<&jqfc0*Ldb7h;*WUv*p)R0*y@?w^r))?s zT2E)YfVPls2v=2hMETJp!t%KVq`U39u%^p|GSVuBY=LhKoS+~SK#HV_$nSGndd87K zqg67_o7kvYa&CrkCP}nbH$Gg1;RCLi;dM2O^*bfEqT>N$pRP!K>a#oKf6#+NGL>8U zf`=T`qRm{mt^+o|;d|aF`;0g_qw|8!+!K?!Ls#dt=ZEXR2^q#>_Vm5l7F{0mw(ZZq zo{y{jWOaWw7`)R}dr0;$AKffmJyoWD;pm`fv8_K=yl_X~reu8gVr5ogthIkh=elcg zJdMXYY$5%xM-|0kkZ-s|*mk`DN2cPxHi^M|C3LS9xCvHry9S1L zY@Wd+WVsyG=EIF8HKkJs(Ul0m;4 zYBau3b_w)V?-;CHV#E6OrujWl_yvQ&abN{DdT$SeGq#z>fvqP@@vlDDINY~#-LH?( z;?>|yB>aCCfa^q3rI>XTum)YE0X$}uNj#?8I(WXuuq!=rvRKdFhCSAIy-qwX$4)-N zf^F=PzFKrA)aZT4e+No)@3WzUNZ_N1Yi`$%3IED&1XTG| zA!RI=3451Uz^wM$lU6VW+XRq!mx2XncnjpJaH|iO zvKRCb8hqSxUrKby^Sg(tL#4ja(Oz5u#^d@-ML$Lr@=UUJE?p3FTHWuZY_bfkNLu<7 znR#emuX8rEU9#9zk1KI_joR`q4M2`B^ea!h zo4`}b#wMuYs;o8EqL$gIq!(A^Wnwc5;6<%Mq)(qBvcnvXxRmlU01BrGwV2?EEl0pP z$&N<0idF}1EkxAp|2)_5KIclr!J;}%K?1q%JeNU*6s8VL#1A@au`ncdkE@FfUMa*$ zn4)6nt|*xBP{F`%L@U%OYCa$~2Tgt2hj859WsQ59iD`m~u-pRBU*PkehXp1tA zHZ<3MZ?>(Nzyw*Og)Ou-a3f&YxRASL(|W%HbaD%rO^H|97VO**XVt=cq#i zG}iKm6&PU~O=8_|P3Ze0Mx_96!H30p#nULq?YVU5(}{!`dS{+oQVlC-ak%k%-Oqs$ z$2A_*WL<@cdRcS>8lG#&*hJgBd6aO{T?br4pE*Bcl}_xcy|NuLaL+A}?%2L+xr6jJ zdp60bvAKU#DzX*c#QN2xwm<{qZ+JWMo6651o&fp%ZSF18}W(nB0Ogc*j-)u@+< z{#e!G^}#mR3w^3{<&VNAfz>V&RkP4dNavFjy-!m|T>Gz9eu!4DCI(eLS$E&#`k#^m zlNRx8oP-~CeNlf&RezRK*~XD#Z5^;7m}3Shb(<{9zTR{Wapf6xt{9hYG2VaVaP<)h zEDB5T;GP2LKi_z&=wPt2?;YxEaefl|uiRM6fp_rUR?S1B{?dVr3h;Bx^M(bwA_1_u zf7hY^!l2I8fa%|DPxOmBvShHElHU+R-;3T|jB{}N1~w*n%naku+hCW1?Er~Rz17hZ zjSbCJbUi%Pf)-J5yLH$7$YxDp2N?N$D{8ROF?;L|pT<6l&-~mJZOr^2@E1EXG_E=U z*1swnqGOtNWBbf(PN*>IA2ufm^S+z> zFFY;fM_mb$F?65O$VPLe^p4qZsdkkX*dE{Pw}7OSvCJestMBh04hYOa|D7y+TBV=c zdOKcn?@oVz5a}Dzb_>kC@z<#$Gq#rawd3IEt`ReCCt=V(-feO&Y`3#59mH7K$;h}3C@}Hz>BR78rJ`O<~oz0ylFYSi} z;Mu{2dl5nmP7zin78C9*VCCfK@*hk>Ez?vRAQDYQA@EM=ZfwpW41e(?+3RpyFwiMO z)Xe3u1h@L=bnNQ(o`Tf5K($i}45>^Uxi&l9ARapl!Xs;cJv{j^UeRD=skv!=xRH#p z+Ro)di!J7t9|?CINneCjNj~oJ*j&z1>>{|^!?iq(tBx&kC4EkPFr|yF!X({f)^I84 zfD>v@nj|f7o_AKfo;^`ictO{=CnZVvG888l8t{t?N&$^dTCZ7r>Mq?hYGi(<9PhQ2 zJF4MLo8M}M%NZA9&*aEpuje^2j!uGQa$V}PVkc1`gwv#qeE##HD#)SdfRQybF8-w+ zCbbI31B%n`m#wA8+1gX4flXg|2j)5o$bv0Y3Ht7wZqt*^yXiHElRG2tp@pw zJmi;TD9~>~e9WK+!Rf%k57&%BE$K$D5o^3I5oXA*vzEMfU&jfaBm+be!H=o&hi$A| z4SG-M#Fsxgf0|F=8#8J(7mx*<;sd?`8lAf;gXDJ|D{X=iIDV*NrC;fA;P4Y4yKEX7 z!Q{#W4VBajeNF1B#b8D~JtVWKkO;-+)(I2($DkWy2@T_)fzg*+ftf9Av`Y_o3_HG3 zndll5`X<)7`me4eX zk_Mhe*P?g>Jy&Hn7i9e%EO77(+Ai)1>B&pCQqRH@VtJTQ*)79r(Qve~Z`Hh0LV-1j zkgi)8+??}1(3u!=ip~`HVlD)Bmwy13;FXf6TD{{4)#d(0=!z;orr3T3f%aWxA2Td6 z*1~kR+;p_;+6DBSMPKP_fncLH`HK-+65wF4-N?<1WNs-Tcv5S>XP8nW(YWmPyNj4J zHk9LXsaJDqQ*ifA01hxOkdyk8V0qCC_*o@!)H8#QJYtp!SQ zv}b_O+Btc57}ZE@Q>Z)iD6YqR_FmO;WC#5l&{lD+FwCleKNpo0t-R?$cVUX{F~~^~ z?qB4SASt_Ze+=SYBn_n?_qMIWV_vQ;m%_PI3go|?@@`8C4@9rsJPA=jyYlo~x3+(BKbuJldS~{|Nqr zP8`V;wWy$*?X(~~)DHZfPJZXwXqv3_1KB+bp0@@HxkvBTCn$HiPZ+_IHss&oj%>TT za>0gNVQHmAHm7)%NNhqZp49gDnihg`{(b0^N{sD$t2@2(d@i^CimfIg*@l_;G+r(v zuT9UP5}X%?ha>wur+(Hj*d@pSPWF&`d51gUO;Z46IkzQ6di6qYA0Wy$Il`g}(^A`* zjdo96$gOu&Cjl`7*9D$rfM!Xc`@SYMkqHFTs@loAG3L~mne|A09pj3HuvZOU-@!tT zaK$`6*l+q%{Z@Ij_e-+K5-hcux)+TtbO0Qh@!ssh^w$bj! zznCxLn-^Cc(@t%J#h}*N=;@9rbbTUjTH(;nLVw^|;D9fEK+C=xsTj5HL8jl0J*$oF} zqo1d_vfai)dh?zPMid_Mh-ZeC3R1n)w|@RX5r5amKCk@Pj+5k;WhT0LOFWK$n4~R~ zAZL4LZjT{Cu*AuHw>a`hC6*FB_2D@?gkCUhNfPW*La$qu&GxPw9##>?-?Uh>7-lXh+@e=zmDQQ6jOVPPJ+2n!8O*<5Q zHw8fYtA9(aKn_P7xFv`FW)@~q{ilC;@1t+<+pK+FuVC#^ST4`iRPNt$-n=0&^yfkSCi$lUH<#1iLCe97?XMwc7ht_2G=?Y$5gj*~jNp#ihZ~S;>(->qH#T zaVENHoBOKpPqZ6KQSJp@6?aa!qyq5yi@1e%+j^-mI=yCZNF4uLFF0$zSL9tH0GHA( z6J&MP_Q;Yn-6DBEW^i&0nYKwCVLT*;y1Y<89GQF><&>7y_;oh#Sl=|RJ11v9P2VOV z#BueNR+sCBH2J^*jomP}_=GgaB_-cLhV3tfnF^49F6;)<@yC|4-B;a}gbsazxY>7< z(TTmO2_+YaX`)ZdY~TT3aBYkz#aDoq=J4nRFM{8#3+AV^zOz{QBa2&SADzIl6r$@ zi#F1v7~I@_b^n-BPPRuWygUK$f=yCJWR3(BpTQF{tU(QphNo|v$^YKD2&O;v?H<_* zTq)h6disvN&r7RVIi_kNxaWHEC35w-<+|Swoo|<~yWD}yimaLQW z0yBGVUufmxgkFL?)x@+DO+{#m-l@#yK2r~Hp%a+;aomV=pTcDjyH9);8Q52sw(#l% z=Q)h?2~3{&P}xzh66X`PmLW-(6LKU;5DNJMh|)5_vIVl#eK_Kf>+Cx!nJx5T!nMy6 zdubWNHa-Q-Lp+#w*{zRCDFnbdxP$cMAiE9;(yAwz83%FU8xLMr#VZI%eoUFDk6jw& zSjWBKFjo9>lP2D){>g|Z;#F{i=Go;%a_ZiQko%=xeN{712vUS1H31e0Bbrh3`$w=* z?q?)#QGR3MhU~W(^(rqo{(c3%(At?nWMcrn-5VS#SH(Xf3?Ua;mcv0n!9EwKv#`S4 z?=~eXxoqJq_&(#7SJ#Zc;g?eu4e$+JyXLQ_f3}oZMTc?=7#@voyrDTwlIUnDp1!4& z7dAxA237h!*~AINf5iWrs`&e0w^QX8zge_SewLWBF0I9`AaXouSk6+-IPrb5W}PtL zDL><##&I#jw~k^n!$?Hia8s>@S2n0V^dWszsoKnG6ZH#?quBDVn)hhU?E!IsWR6@@ z5=1+Q?0u2c<~lysgHz{w%~I8%L}QR3|4t34o>QPD##pF`Jj#n?Fwr z(rnp}hdWuBKiP&@8srJ0o95?HA@6jkLrm6A#3HAP(Wk&)S@sN1B_}VxLknmnUrF30-+J)Hxg8qh&6RAFi~AWnk1AzSrC~iI(FQ zcPtLe_W(;K;Z%JZ^Fv2IHV4JHRAWBfIV@`A(n|wZl)JyOTBO#x0Mp1KfND{;IZKMZvP zqDZrxyKkTm9sYX^c$>%~{=)6c1w1)+oiI)ObiePD#?cIPqIHqv{=Ab8jAO1rdE7F( z?pW=8-vlA%k#G}4H~RPVcIVsGaVjM@6dBj*ZRx=DcFpp9)Oy4clIq4BkzyngNT%`SvmT6ecTbo0o=zWG&xl3vd6GsptA&rolt4y)rbXy_NR#6U&;o%sC zxr=-`nsy~#aE-@;#{Ag6XI$P4;4~rw8~n=~bozO(hXboeo4fjP>TvguUO)aLj;{`z z4jmQs+U6b0o?q9TsIL2BPk8=NDZdjfB8+VIvgr4+jQ8zPRJWRI;p5+V7;Ah&RA@N- z!lOlVvpqX(J}WS=7x4+~dwS#&^Nd>=5qLGhW>>Fg@j#fWe8>phG@b!Jwl@qv>(3w- z?qodhgnP3#T-w#{yhOKN*od$yV3yo?k&b<=m-fDGT7oYtZ^zKeJ_fFEN)t@Fe8x$Wj}F~1 z!~WN$emD&@m`^Wtj87+-cIn?b-Q2P}Wm&55`POV8J~7LODoO35f6~-=W}l zytS}kMP~2gFaE80%Kon-7M<5S)mH~O>>t`_lc$YGbQE-W>OIZf(Tnc&>V6cV&zmclbMx;k`oq_izI8_*{Q!;H z2MP&@3WfdUKQRqbNSI<%2Z2>N z+-Ysg*Y76&!Hjc0#)3xED{Q$$o9n81(0%?PeTy3-e-&9WK_`zkepcRG7ji6Jm7(mU zF?UM<1QYS~d#<56s6E7DnG!-&AoF2cB@Z&tYD8Y(E(Ir|qk|jK2F}xxNjPR6@zQmc zFGH!;Ia>VpT}T|(Oa(Q8(NtWQujDn*GebMA_k#-mNRWXSH?QHB$&Aj^34+SwlL?=e zSFbcyy9*jVia6G7S0$Z%{$gBtcBpIp5Ixsu7!43idi%O2h9}F_@TJWf^iKb)>Ag?- zOYR}#S1gtIBuIGc)<$*3fpiS8s=d@PLF0+x_V;ojHd#GqTzshMXAkwF8>N~&Bsz8am)`8-0YHxj5CMF0n8mT!H14>8@)P` zH7v(2N$W~*j8~i-TH}cNcY%+H;GdOtK%C&1MG;_&Ae$@7`AoQpd+10VZIpb&lzzQx zf&|NG_bL|8^#?gBI=v-@r|L2pfc|{n-%WU*|g{POOz_q0^TRTb4B`! z$bI&0z^}VA}Hdjs4d$AZ#?q+=EYAr>@y!Myp}V zdFi8!O4t1-^x4+uJcW+NlK$99uL{cQCQB!TN8z47_F$D{-lO_KO-p zqI-3X4Ppe{tIEP|L*_GUDjH(TTvSUh%_u)j*-g{ej-}N7LCB>sqX+pkT2<8w-*XAm z=Q?3=#r;PH*yip`E~&}8IFP&_Z^`gx7Jz~Ns7bSU*!&Z#sF4FdAbZSB9&-Djk7JwS z*1{20YKm&`9lPQ+*f7W51HS^ilZ4SCr!VA6px_5zYm_ckCfi(>v8VqI(g0YzZ4@Dp zao(f&(LPhZo$8*m1Yel}@&(^}c26BG16-!@H>2x_@V{xb)s>07)hP+S4m_&g|qPzzo#HmJ3B(NE-VYj7?+WN-d+&={9@`ncv8P&E|Q*z@*Vl9<{f zOlTzQy2aY+x}wpNV`jU_OjOUlKFK-3Uqy$7$FZH=H&48?eJ^E@S39%h6$MRo5voj+ zqZ0NrQC`+Rk~qAZtJNzzHNh~8vu{7GE%XoT*ZWcUM7>!FaiQV8GwhM_i}^5g&pl}k z1DF{7Jdw2Fpy7_h1Sw6YAzW64#MPl$>-P=qAFrcFQQUBNq~-qt9ePOG_@kkJDkT^H zS;T9fE|C>&qqaTP;PB(`lt*ee(s|Ohi;K4OjrFQpuysNK)fHek!t)-`AQ~bH= z30dO$FQLzJQ~(yhT0xq)I({6%KGli4U|sc)`mLL`5Vuz_*i?hCy>L|0fW_ygOsDaZXnX;_u$7nnux1+^qw}?OwCv#F z4dM8!3D20j3!Y{P9u}v`h3^@7oZbvo&%Zbdx*y(nlGxv1sFZWppB#(`lZLT4u6sJ8V|f;yq5gG@F7wS$0HT zvg3nFprJ`Psgp74K8QQlR3eV*z05~}7FIdZJg#}kV48Tz_b6cFU^I~H&N$h)T%VNj zstHf~Mu66A+?G9Q6ayU9mqd2+Ryfmqhw5#UnL9yV_RI5x3xe3>7f*C^_ZJtd;kIW~MI~vWLt?oX5 zaW#v#e$9oNv}GLE@O~+01~GRl^iv0+sA*SR-u8o^8sq4iZ~yd4ys7L9d!hfx))?Rg zq)|$JmUIAx5I)1%+%jUX(-$@uNJU4UO#>8lzyPi1}zQ2xnL+}3ofY{_#kI3bP0PN6;tCr_O3c>1L8 ztS#~Wp`31itcs+aJwq2;2?!-k)e@>HJwQQG5eDS(3rEP8pP$d^-RRfeXbJ>#h_!kN4NI6hB!_Z6FRmNU|8 z)}v16Lio*VSxvlw2xxz9+HUyzOb;IRr$A_=q`oMKR9|ZqEj0MA^uNy%_oRm)63PqD zxbH_c^Nen3cm-IGK&<&t=dM_}Dl!X}i!|07&M4-8ZH^>T`SHwg#I{A2u3 zx%2oaS1x$`>=q89LqCEqnd}pstv`|x_bfJ!kd&J+%*A|V@Vxp;*8XCzQewUFbBvN? zB2J-39gqOov;etVuw^z=6xydr6{OGP0#Ls94};RP?^9>mk$*%!@X+G%LV4;aEwa~u z_)9?rj~)C=mRr*gAX{dy+9aLH-`zegKf5x^ZhxuM8eraU^=MpJ-Rf1kYk^|T_%~lF z(+-Uy#M4}!5?iV6t8KpR-JNhevN~gBTHfYWvCLp6ngA{g%A!ZC4`2T9KixdHIXTyx z$+338wcs<3XPJ#HS~TEVJmJ8R`IpNNL=x=obp&0&p4|}kIt)#`chL0Eml`yd27Y@@ z9q-<;=cbmQV7wVMpiT1>k)}zd+)>%NnTek`ElZv79$x5$=z~gdYmX~evZmx*)mf8WhMsC4d7C;Hij-7IoX^J3KfG?2 zy?5{rf4{}s2QUu=!LWAsXq7;qMaL^ichCpx1yz7`?H%a4hhN(#Q_uKls?{BFJD4%g zhfVL{2ldL-FdX{e^PC*wqh-k6%q#!%-jI(BFt+}dXDZUubcx7*i&iFw@H7v;$%a6aVY4*xi0((l zdCo0dL(ND`$S3;9dFah3%%^ z&$h!B)cu5+cTx~VV8foeCyqnCx3O0<6MKIeAMKXr2pg4bCUa2H$r zC#H$A@gb2P&31VuTQM(}zr#?TSK$=|Zh_%2U|;piia(S& zjZCZ{_K@fj2Ro+Fj1C598!^+;B_`TlNwPK#G}$3|7id_#bnlyeFO5Goh@iOZz6{JMyPc%|pne(x_11_>2%o5%XG z4c~t#r8vjicfOMx7lyR8xc5JkTE+e5{6qhxGvmR`!2Zb`N(kYVPh&*lLq?cU$!sgp zh}JZUa|d+C3#lXR!}V zjTEp>oZ@ja{KZo13H}|>gjknmRcX5G0&pREC+~_ROi9-@g5hHG4P1jmPdI_fZB~}L|IY4 z+%b0_0EBOyZ4NK~Rmw3fLfYei@8goq)egP1Q>$7N@gm zo$$Um{#$Q)dRFwA09JZ|h*Ztmqa8ntxLGX4Malp0Gq?h_WFXTt@|4<1FxKLX4POEH zmGWb^m7H;E&9*gV$@oW`9X@J>cCmAnI5k9y0L3M7gYi+EtmyX+U)%9nx6|<#mx2qN zD=SJGsCrskJSgMVO${ee#v_P=d}0mS`iYY=@KcgoX)j2)cQdJ0ck=LU@`-fb)6_-L zc~zkweR7}P*U=RFrBz$x{$Y!J@>Wr2{-u-uk;m`1mxcOb_PSXRa_Cw_ic^n8m-b!Y z$EMK)z57{~@Oj(HL2~!A;HtTFMw9;CNfy*%9j$XM`bI7axcg45US5T^)#zCTw6n*6 zaA#}|i7gpAT*_Kt#>9Q&{|0S>84o1Wsm+GKFRxEpZDga&pE{TurxFAmvrjmWa??6) zL=ur(hep!0=6j!}i4|o@X1@~Cbz9|}c~b;9v2Ph&IWvAOT94HXn`1g=hWgXO?`l`j zda`@pOO;uB^(}$$@}<6C!)ndsbx3WuaKZ$B^{6H2RLn^(|15Lu?ro79+7D8S3U3xj zw#Ab^?lZ5bX3}OPCuU!_Y{>Yi(!|HsPE!Ea#uV*;eJOow!({rJF2hdzf%R{@$&)Yo z4^B>8AR-0Vv*Wd&WOk_sP>p=!Qxm@D53V~7@b}fX2B@a$m=MG#o}hb&HrUtOeBoBQ zUc0JOH!NWHmVTy<=cW1N_Mz4QD~F7LuXCt;S*&CeGI7-;ghdyYvVdHwYSi`N6->Gj zL#)-ix7=OIUug1#e-3B6I{-yqD(TMH@#1~|oLd&yB8PhfY)L-XCK!v;ecr0~wg}Tz zK`q}(r{}^D`^b6oeFOA*3^V*8Ay(q{;+q39D)_mU+Y9UC@t^b0&-YyYSI?pTD_h{S zjxHFLVA(!=QuQyW|9=w{D%216Xzo3Yh4;6wKfIkt9mb7EUFE^5QDdCjJ;r!=ywD%b z?lOWpfj8jDOReP?|BC4xec}YNlDQhycFoX-MrWn1BFX+fZNOD{NCvfjBec{DX=Ug` zUoZt6kVSaTpuH%(Of!)j_<{fr8=NYpRR`0#tOmC_kZM`)54iPnXX^mGwNtJ3ffwJ2?k1PA zcr^ui)T~HxNN)Y7B_vx6bYV)qs8n3=F8uuQ;@bpKkZ{UN=Ft4{n{nsisf0;N8fn#> zwh^xt&%tFLS7S%^iRxrgu2l7OqasRTwT(y$iy#MJW8)ea51Or9Zu=kEGKQSm8?rzR zLQm1V&u$S+LATMa!>)|obt-wX8nLihO(27Fu%+{Zwz0s&t$*l^r|dgPA%wv>wb9Cy zya)e8yS2(t>(^VW~Nk zgyhKABVaR$`;IfwJ9ElW9S2*UUp854Dj^q#H8oCK0{p|H6`B7#?jPD^>K;UZ)eIeH zj5FTjS@1-ndn9gMoxrwx zGBY5>sya`WauY%pqO{@i_S0nVE`+2de88~nfb8;IYG;1qVwC^qO~vL74>8eV&5)gp zF}l2`&W3r%qv{s9qeni0Mvek@1@-|Re3G6@7utLWNfnztTdhM400V4qDTK@W;;!MZ zC4(K?$jy)8mF&VqlTV}NqxALUMX4^bs}fse`h>!{`}liG=l1E_1bN^fWGIa?P7vFC zRz+1wS4ZxMFx=+qD0EDsQERJhZGUPLcwU2-?J}Kz z;C=j^?3ze$ybyEX01S*at%~;4e^{w$ZvZXMAiT2#1!SDhhhh?r>Ra~~PahP9!Y)K0 z4g%av2Q5D>4G)G&hRj^>AQ4)@&lo^_LNzapY;mSX9;znh>xCz^2xm;yA9@D1j<-J_ z?n9s$0R^_?=N}`Cf0=5u6lS?#Hh)lFf;PzvM=kOHrIV+XLP_humXm+-bE<_^KG{O8 zU%>Bxqo?IRTP2;Sqm=^Tn_+CO(3}sS%emw(;o8VdV zo&Vo>W+9~(5y}%8 zm+{|}Ui8BV12@0o&xuO|OcnJnO5ElGTu7qVnoz293`Q#OUoAZnpR(S`IEQXS-^`wm zQONC@ywnPabb5*EJ92Iy{@BzPbHrU z_tDt(WW?rtYe+wUd$#ADYZcP&p0!*QSK5&%3}eu&mybq5xIKX}f0@&W09Z5rcf)z~ zo${wM^Dy`^I5U~g-{5EqHQA;5LN;gbz1nc~&`M(8;5uBao9^UtSln*1L1-mUc0^#G z<>0C$HEWhY7_kcquE2&dU9dutPZPiq>xv~e& zo4l2*2A+>Q7kThS8;Ru~ReYjKnmV07$pMXQP;RB*(6BeWEqoSHFKq?Ko>Dtc*Wm_* zkRxM@*~$p{Vt%Em?0`bX43t#h=QYu5!)~Ez4u5P3!;Kka_fwrsnEa!Ivub|k6Q0VX ztLprFL06%11jG}hbNk{`nbx{j9Un7_e*Qc%vtqb)#m4y)e{LCdjeMmW_EJcWOE)1k zW6WWa*Uhn^yb+sF#5@ImHz-@W-;L&H#Vi;$y^j57RC?pq#nI=<-Vmf>>jB`&y#Nva zkpaZY%^BI-nT}q3(Cc-pH3OU~UAogyVdr`2m})!4oz&`d*>zZzTi0IX5f68K(g%|v zK4k+*?Q_9*A1a6ghvnk9El z{*c4&&nZGZB!`Q&Rm=?dtMGN=aO=&#?x@|=Ye^v+jv~`ck9_XLdOQ3a>ET%T!FQWZ zUlb|bUNp#JA^g)i(vM04SQZ@`aMq3KPLZgzY%=baUOZDI(AewSBn^2ML9caaEXu3>Z$~ z7aUIC6-7V%tq`Dc^&q&zx8jylnw$+zb9i-v1)`_n88lBVS6%eiPRZJxRQ24rs!-5G zYSIo`lRW^<{Do@^e_IsbncaL7s4}JN!;e**{!vdE(C{d+&uL~){bh-movJthHsaP- zj#Rm#n7W&^kvdjtFPy$E9TXh_H1}r)1ol-jWMHcZ1z8^SOKP`ri@X;HQfZpc|KmSu zsrqMF438xcs5eMnqs)Cq-*bK!$MHMH+E63GSctVl4;Wf!otAASI7~>0%c}o7bpCT% zhP;5ZL8TjVNRR(El+_sFS+%#=xfXdQ8#Wj_dqlWfGc7?Aathu#pRU8YY2*kL!>D?g zmqK_KZ>c13guH=+PQ{D4By|UDt_!#9F9N|}5c481UMKQ)@c5%YYozkzlHTB*|BZbN z@TgJ+ALIDZi$Mp&xTkuoLK?)QGn<8z3B%nVa24zPpQDl&TLJ%RTCPLxMr)y-y{^?I zrpDV&U!oFli!~)P8&fMSsy{(anx0l`2i8tw1{9$nb3+K5l@W+;o8M{B)o+X!<$l5yXgbLxrA3LxUy-MnXE8 zhE4?#_f=cjZT({QRf9u6)`z-}rP4er1UIg!r*EdGKL5vivf-Tg=kRd&X{QV&4&LK> z%+a9IRCr#49z_5PzHau93NdWNa*1Fh& z4(rtljsm4WIPbhoO6q~D6mFYu5RO^68q1JynB_ezB4 z(zyiOO5;pa63=hB*2V`CXYXX+$FtD6Lw;CT2sws{(dONeozcX|aacUnZklB=v@f;3 zF&6&e+URHfRjt=@j^A$PJ^F?kO>;vxCMBb<&zhxVL|--FJgs=^hsD>=M947_uL9%~ z2KNSZ)i8Jh`FV16suL577Z=JV!e-fY6HVCoxxD_8OF;9(xSnAp_^?Fe}MUny(z6X}mm)dX^aLCTm;U@q=z4 z-G{by|4Y-@m6)QG8((*sL6z-8{bHLB2LW0-O|TwNT7qedD!}>kv#V)rbL!IU)si-KUUmQDyB25LgEGF-~jDBCKwW zB9=|Nk08NAcxjr-4Kh}@v{v8}bV0cqi=?`J|9k%|okwPNW6N*~kftYJ>K!#OIde02 zor9ym@u$4{9YqqzpGw>k1Va_U-lTW<+N=7&+@HQHTal5~=o%K{E9B&p2q`$m_z zh43&9A4|>E#fGdbx%wZj1LumH*1QS=Gft0rXqfem5(srP0f2P{%#Vi{V!bYG=@Ndy zb5I>|^|EoY3gm>#@Sq;BF4YY}7*U^VsP;Av+aFLVg9@{**0mS$j3&+r;@oua+Dx@ZYNfOGI{p`Y1T!{1R!tX4ugDL1<;B}bUA}^> z4+`ns6Cy$mRCT3kSX)JOgq^rNIWugzLnS2y>uy;p6o58M4Gh&Cio|tPK5f_t_k*@q zynH!QW*ky&&^zr7&D_YJ&|AosHk8ABo>~=UW#e|9%wue_!x4#piGLea-J&D{xSJ93 zTkuXj;I#4s5POnLpJt`(EVT@{W!i?K$|Jy$6{QSG8+uWYfCtOXTabU5`U1>js7ZSX7o~ZxeEaZM|dsn4t-iLQw z{kt!iF5%AT^7zjCwg~)jTiMyS5_6iBS(g4Re``b>_<=QgeRHlR6u9u(S>9_-#MRzf z56DzB_ADZJLw+k}-p-yG8#u^d+PCOF5q#_5%FV-x*kCrocK)F)URu)3Oo;JI@GUPp z%f~6luTbkKqk+2u*p0LP=_kMfKm86WzeBZdRl|X((LSmy%0js7Ouez4-eDq}Z%9LH z^F81H_bG-jn0nVG@cCrlp!e3Gz7^F1&_K?fmy(LtsI?KWbw0NQ!i?>3>Wd{i4}jtl zun#yH@WUDVch6uYcAhy@;q=7`5xkXbC%FNWSJf@@!*6`@ot+Kkq1-tC+_~_J-M`06 zqL!4d>oYF}ZJj3toTExFoxEmmJ+Uvk))1z?%g*5BpnY#c)}>2hWvg4gC?&l*lAker zUBTkQRutWxeA8Iq{*~F}S2vvvFjJt50G0pZKC>7;A9E5GL)K-r4Ag*=^;Ej_^GGML}`&64g2V0w&){4h~ng zKxO7DK6O71g(DQXXxA!@#zNDCn(qny#;yHMgH%!@Q^O)B$%~46pVMR;MU_{D&D~c; zlFnoaAaRSWXvb?B>#0>JX`=Q`Er%pEPa+yaWf!I8JdKd!`6k-C0jb zN#lt5vURP0FNDjD7$5*O6%~-`a>PGd|JYQ1!8ZJ8f zaRy1OCtnQ`0f!=~2Bin0$V>g?0$^%>qKBif^7qBCm~qu`dfXK7d<*`UkN(!&&rm>{ zR}dG*P<_CF?ql|Ut6J2L>B<~6bMFis-SDHDMA2G(SQ2P-7O*Y{ASp2UaPj%@4PXBH za>DeE$&~ZpWuV;GwYAv)V*yaDJ3+Ydm387y(0Aad)rlcvl=P;ZH+>=Vqscy@JTR^; zH?R_~ZiKxmY9j^Q5f~$$wLlCHbilzf6v7*{q{Z$DfFNb)-exqc%4LxrcpkZbRu#M{ zFkUO8AYwiNd9hJ)=-0$3S}CK{x_6>@^sehR^_Fp4@hFlaf>beImB&7X*a+MQVYay& zPtq&v(Zse^%X`r1+p|XWYy0zKdG$Gvkja67Qf&N@Q48jnQ$-6BU)xqsr~BXK`o5OZ zJ~MwqIoS}?)AS6KxgFe*Xm~oZecHFw@j)(i;?duB)_)uVSaE+|md=8B$v7g_ z>BNS`@yj2UY9k2)mrD%%Uud5Rw*q^tz;Oq62u<2~3>21C&bq0p>Uo|g2tu}mK!$+T z>F4l$c{NJ_;i$zsT_*yR>P8^ZEC;cOJ~@CN}HRzkmwGwAb00ZRg_c(1hFjU{WJrhy*O(MBmaQ z`Qy-O4#Fs>Op@uKS})Kyb>RvvAK4bU#ak?Shn;Hu#6TMKId5VhoR2NHP5`oLFlVhb zd+?8>u#|^${pcZ{#qbObC5@br#ub@Fvfa$E1ERH%L4q7oqn; zGf&y~6YXC&7tuPguA8|mA}?OZn}@~lYJW0}c?t;^^fV|bNyE3f=w?03&zZcS>Aw-Eg_vHK7wMT5+VRYQ@jXBdM|FUgrvQ;}gaSozz zuX<#)Gf_hj4!9eI4J1xNPl9cVWMfWEFO!+yf2lU+yoByvAog=qKeTNF%t=09KlMM| zMj!7dVjF_Y+Ruv3>T6$mV7NqdRreBC?UbnHi2+qW&m^?BNI`*}3zNatf)w63d-H8w z5_VC^W(DG2u~4Jhm64ukUG$i$y%{J^2n7RjM82mo@IEn!v(+I|rZkszL+{3+)pbCm zC?U2x^t{@l`Hvf%q*MwJ=v<0*PsZrx*R_7%3HHD z(-T&WB(Ezq4sX_l%un_;KA3j`YDo3@Ka)=Q%jG&RX=}@m4J6L#6b&9V-mci)jS#Ki z`y^VqEtNoc_+!Z{n=}Qgln&DV#8okOhsp+35rN2D+Sn6;17E4&X01HZ);Cr-lS(7q z<&sYc&nL_kF1u(&~RvrudzQHkCQ&m1b{sPom25LTS3Q-HdBKMX$a2 zs7ZS(ca-o?QjxkY|8D4g=xTe)x%S1n{)2yn8?4P*{*7yqgvKM#X4C!^ibuIkAmNbY zbk=c1IyfCVy4uIw0_{ON3crdO$$ch(;Xd_zIL}6_^h-fKFWCUG{%#i~);>A50PcjU znrK|wX2Lf;L0o0AUin=yoX-+RWTCd>Ov&c?_rpC%Lb23!?e%>`8%PhZ&Sv=jqTQJ< zb=S-rS;<)`wX?&5Zz{jEIDH{^a`SAoT<8GGOvOQgxRvYuwdMKGyeD*t)_a04+SZ#c ze<3oeef;skt*~;C)lTlzewZ)lqq?1Yw{>u$rMl3F4)ODBE;BSr;A`AwAmX;UmQIS5 zxSOa&{6pnF2=Z-vdY^2)m4*)%{jpjiV_8WK7@3wlZI(=!_hZw$xB8)eY(uh8z3Ax! zYgrZo(t}v4BbU*-Sn)F4#<^BpZAJv-X5la$|Jr2R;JdRFgVMs!rPDS3CYnBDrW+dG z+&8Hwsr$U-%Db=2=1D&b#mQInt4xy??Rc}=<>tKV`QHPxkJAJ73vEck-&T|vwFe@f zi7VFj7xD<7_#1h8uevyfiHvnBUBl7-xfaEQCuc!b-Ny#f_x^Ati6~!oFtN+C>emZl zE#SKmUP-TtPp?NuZ#O)SA1|#xcPHsJz#21EUp0w6<=-RwE`F-FQfSz+SO+@|S_=3vNcz^+qn5a$ZI#mX#9uD^R!2MS`^!zE*pTA!s zXiTOsSg}QXE0>ESU~uDqOn+F4E01${V4+H#&8hSC;Q7CumWA1gaMk3XzvZaeF{~78 zYgP<0d2&$rFi}{YTezkpFL7}+Ciy4(*2a9_HHJ&VBWkbD8h{U-n|hts;(^WLH`Jzr z^uIo-f?HbDMjU|^Y6%a+dnrJ%{*~(v|Ds%F%FJxI0rP5&#*>FT?NvwROx_J2%KznC3J3HDSA59+C-lXpH20E0lX% zO}TB$(=yYX-qK2%#0tV5HE0*PN%awccHX(^Gltnj>+y)#%^AzPj;Rso`LsUGh31q-m)@37N9uc`erbqcCYE9f_J81ieS@A=?+f7EGVVN+=8hQ(S(;eA+2rRG zI&2~7_{5jf*mzz`@1t=oSa5~T(LM|u`4*dO!1;PnEPs>qx@oa{^g9G|R|=Gi`mV>o!7!pX-+P8IK_a()eV%Z5b^aYrRB8ywIm>Qf2?$l8@U2B1TyVZ1hBhum z6sR^LLXim2fJxz3<7vTH12-v_BA1~jaDcZ`@&eK>Q(WSCmd!mA=RX6#Z_#_snHQ1d z1zQ_5Acl``gy0Z#ynhlS(I1faQ#0>^Mw5*&n9l9)#Pk1Bdj>Pk2v6f+gYX?_&ef>6 zw(tf z^~U|+`J|HnHsHWPoDO;U{?^WCtDpB)i0(YK^Qj^2;*qVoqMhdgAt7cjPsC^!UOeDh z^HohJTrQGNZ&|P^!7QF?=ZhHX7w&Cuc78swc)MM*Gy#L}+>9O2@4@E;u zUMi`V=zJN^M3owNnC@g9H%nyqD>_E1SPs_ft+Vi>f$(vE5sDFy^MPlqJT-UP>AG$9*f`bo zcBJ2ZbSkckO-&d3agm&a{IY#1S_^v~{jGhOV%|QPDmZW$XmR6H;+g=$Ho`t}JfSuu zZL2iX0AqwE0<;%3IJn68Srp;NSGGiB2B6I_H^A- zI^S#%0_2zEEs4O)mLH6)nC>U4c4~C@Kg@(hB|G}7?o|;J%Dz^5sXAf4<6CNE5r^L0 z6e`@swGVKY(l(c!t9kBJ5`hUAO5zug9E8HC^;ee3NJ~Z4AFvx0}4k;-! zDxl=16oyWN#?liFK5TYaJlRB~13C%MLECKdGTHiL?Jz{YDr-?=w&p_a=A)${YsD{I z3tZ-vrEj^&h3=2?OwcO|E1M4&ylM0tPqBg%ie?gCUXxQYY_TS_em)Axj$={1b&_9_!M3M z_|_6@aOpA1ZUJ}m^YZ<2-(bU&XB?0M^CW81&5tRw4c6akqjAIib1jwBaTWg}i$K5L zwvV-}r>@V|3fOK?hws-8r8j05%kObs*EH%tsdy^Uqh*4&phZb?Ay8Fu^uvrNQaTj? z77I36>G&U_s&O(H}P$t<6CZW+oa&2@r&0}N!*t6hl(+6B9eCxZE7XPb^7a%VRXG8svcF*9D1DwZV(U+lQ(hCca5&0332VshRH3Ue>KNtNbd@`p__fN!E&Ok~KM`A@uEkEH%fCJ-a#EP=s2p zeGUD7^41P+!}k;EoiD}3$V8opX-)R>5$ye?#~%lKf0Of-A*EXLi$67o1XqLFt$_QB zl{r{)LxNa3m#7Ua{7UCwDwqPS^v*K_VxXSUS~%Hw(Kt0a6RU%kQNMBA#&%FZ`BBIN zPB2?UoZHj6Wc=eZUR9iIyIqu)C?0fea_?=3N;cORA{6J1bel#R)!yryP5>ix%pY&i zb%rp(JwPLeXP=`)G{V>1PGD?s>6LP8tlSv5L`3X!#2$5_=R4bCzk>3Oc2IzAMf;UA)qVs&?_y&+h#Pmt=#3oAkN2tl|yKI5h}}L?K;wHKL^RUx6+L9oie_ zPj)i)=ksxwS=M>N_|bFK5)L;q9DKB@S^`ZG3ai9v1H0&hO_Ez9*p?CWsRj<*O&P6~ zHkBe=n>!BJrZ$SL1w=>SPznXqE&B|i+jC!29kjl?QQM*17+;S|lq+Zvl>>kzvyk@BZBNSGpQOC7iB88|UkE(W z1>1>fD?s3wbE}DD9mgcgYa0Zx`G7`l&_Kx3OCdG-#j&JyYp;pixf{)l{cA< zI!l@3x;S4kGb#r7DBY8()JDo2D2bx)NZQwnDRHDW2H>c8B2@|;2?VQPFc*V(^<5|> z4nf5vd17d3m7u8h)&4FvEiqhe%v~KZV}TWVrQ!mP$y;k6PH=E&_E2h5f^fgCtTs}J zv&z=uzQAx&@K+L_(5x?3ki6dF@y_(^_f!@>5MS~y@k@~KZ8nvDy~X}$G{#9h^b7Gg z$YL}Cmp&6BtP9(!To0vz{R`&1Axd&b#2@{YMPoXAkGaumogs8(3@tLUve}pGZF>M^ zp$g4(XdjT8tfx=t+T(W657pc-r^+U~xL~34Bu?~N=X;F@woi-|eJ}Ya;tPYv@8jBQ zZzGG;Pi{xXguGy%@&TF2n%9+))GV3l1dx)mg*krA;`7Ve#ivWBtt+2-sk7Ho!aw=3 z>F1&zA-CDF#zv?)TiPdXT_vC7-&M0*<^GB6n^J>pkBt*=C5{{;@W|kA*v5oqsR*)| ztcuzGQ#viTg=u|LhGz7%5yiK{sSn*2wkt)5qIoyF8j0JLq%Z7hrWRVd zJT$RCxu~@}ZDd<>{4IE@^sAg~n|BZUzNR8@)OC(GSuNz9=zBL?J}MG`t^B;}CLC~` zXCx$3Vxgz-s%+{VU52X%9MFal^R1BHc?`$)PR%?$ntde z%{fYvCcrGC^=HoHl^FE}3~E@j;a&Nv_|qm*h}WHHvGBjV`RUpN9)#h#0qH4@QWJf{ zUYV3rmi$hu`yio&)LSpF1mTAtEet=@yVI`pI^up3pX>`I#P#r$dfh+n?b!SlyPE+* z$L?_t-au8=%$^Naf{!22Ds8#krb%6_jQ1%b2#G>5S}%9QhCd_93kon?*WznrEZbi& zf6?RoYT?l-Qj>vFPvUsv!*P4td|bhxhAyQmt-AiO%>`1Q@cL*VJHPy*;GL!|3esu~ zjJnO*(x8ePs1MZe*SPXPFo*D_n|PG?D!!m(zFWl$*lhp3dw@WMI zFs1^&?6w`z?{GsAkPTm8#7~ zTar^EAzlbnp@n34mJ|tY#7w^0|Bv~N3&+$mr6-}dGB?hQWK|i&zIs}*cU5i7;;}`v zR%7Lu@#C8|kZ}Lz=~4+dZEW$_ z`MnpafQ5f-eHuN5S|&1zBV4R1o4MDc3`w)S3x2mclH|T-eP8Z-zfwA4l`6xhYtP(L z-GAyGczD0Nw?&RgsSS0IzpAx63j50s9PsQ?wXCIzve1xVD?vw`FzN{DR%g^q+9-p8 zXvKGpw)f}D@f=on06tc124(D)V`!hv3Y?jm_nlo1=xyEQ z&5lsk5d|2`vm5$-FT2`=fip=Tu)^mhaPxnS#!AKYQcmO7pO|}W^rcZf($T>~pUi=u(mbkA9MA6F0GPtj`CA!}`zbktSAcr1$JD60>*2(GUb#LdUm;Gl15H0BZ z<*k0*U6XrOLuXWwH*bGc6_zqNBdFysPHM_+cDwAs2K+!yfEE zPI?@~=@?kD?fgNs8sW)B0O>06_ucFqO2j?1R5#0+x*G2=z|Aa|%J60(eJ>sOiIrq% zT9{9aN7)UUW(dMEY`uD2*Zy8s1g8*V5U;yc*UU`0csPlSg!&j#p>qKF$awjuEWn{e z<#g97t+*D~CtK1q$CG;h@z|Agn?~964oy&tP9U3e0B2Ai@xVG=!O^RZ&iNVR0J_R2 ztS^IcB`j8ofB01pbd_#6mk}?xmj6Uz0`DFZnGplcEgiMs6wH`I0z0ao)EfP5A&q`j5RiWD~nx^dj4QOL5#+Xer z-bs!7s(*Eka}ri5ik04Nype0G^P8+o6iI5)%45!^9h;+>9kr!Paw`B0hnmji!WWVi zSSg7lGy3Hy)vuk-ys|1fFK+GwxJa30rvhE30)x>7;?eS+=$6eQ?pPpg;55Vyn~pi+ zrlo43OSb;uS2mhjB!#Xtv0j6f+!j=M`Takl_+OYU$ZrS*X>_7kzOY1SAR2)f;!llh zq9#=(el%m?BN|4z9yliGhEwpfljpoIwK0f^89YBKcygzg3Nfr_gZEf`n}OEt9BN!t=Co2HcrZ01u)R@o|4^5$$9l^x64fn*~E; zE%`a8_G&lfDBjG%feqS*S0`9sd-+K88!b_$VJmWGyK%=`!n?gj~%0$CK)s*U$ee1Ktp$$V~Qh5JAwUqPg zxrem`>P_LY%?W#x{5}A%lXy>{?O)AuykYn^D3So7i=1tV1oKe`K1sdc#&h;~B7$0H z&H6_WTR-NT5xYN)bC?s3)qI|#;`E?0+Sd`=m$pbMuK>2U)>i7 zcv0|OLa0Rdg#oIIF2dLuZyo2vk9Pa;tAXgIE({ffHXlK-k1*xqqc(4=Xf@i`zeXgc zdpITj%@V`~YU~dJD?wXfi0=YZAoKDyP4Bf;@@xFenXjbsd*1S5s|MFuITIC+nj0m^ zzUV~0;r-?*_!8E6CL$Q~*4Q=>4a-n_ZQ7WU^gDiNJ#_%6KPcrB`c$tJk0#G2PttJY zXNP)Pt)O;3sL86^HWAgQ*t#}?G8_sbKWIF#p$1epUlvK+Zc!aQS*LB^%bvFPV}9qA zu}xh2(Kuu$Eh@b)7WpW_`v>wv7hrC!;9ki1k9H~+!<_1N>nv`rb0dIBX_e&_qC(E_ zw@BpN&Hcwy=50pL+J;o?i6zBqoySiu{4?f2zcYB}29gYVIF9>YjH$s=X$HOi=i{C|_x|Ma95?B<|wmK{B0Q%=1-x^snH-1T+MpIDMO{d5R=%9S)o!+;OZ$Ig5ZM1W1_48i ztNj0C5DcP9p|XQvZPxLM8mLMuDq!Oj{7PI$`H|VW38LzD%!KU4z^+W+8yhw0M1sWc zgf&IXI}mo`qb1#MFixrWiMwW5@IuR0m71WG9W{38k9xZNzh=UCg}(en@b0Vk`(Gv- z%ymd=%=Tthm75=t-e=9Fh$d0)qQ zPOYf()pPXlEs2V+4kSuMDOa4s{$lq7fW+L234r~Fm00Q7n%A>;EcU*lu2ky z?_SYbX(Blw*FplXMM`Ga@RgwQ!Js$i&r61saHyZH%NMkbyP3iCRbP&n-D|#jd};a9 z{DaPUfbY(SDAIC*Hd zJNWc8m0;ASBm!DLs(hh%c+!)lmUVzi_bJ;oTcM6jF0J08j>!-(7s) zh8{X1bHh#JE$AMCE^XGXKG^M_4|%EqJEJnQo5GP66CldkYZYBR*fb^UXwm`$Yr)=> zwVC-f^Smu|S>kC>r1X?Xu0 z;GYk155-~6KEW_bu`|_CoWehWR9?1Mqy~y_)t=!PnJps}Ttg2?efD6gaTbp11kwF zAu#D?O^C%lt7?6Dz3r10-?XCdg^kmNS50>}Cb{+R^{8|6o6on^y@4Z*J0$Mf&@+DD z;tJRgIwP9}W<_RF7w@$(Y}BTz$W!^7C4hrRXktbU*0yQs5svudya&A#ky8nvkoi+X z#B?(vaoUK|r;3`Ow@-!fpDAxXMBeE~vyVeUq&8giTYVv|S)*N+bA)=|Z@w2(#8<7{ zRtsApR-+5-I<@5~tRFsJr8m1Sa+jKIzzR~N%t+JIPkztN-tZ|q$;uD)IX~lSw+XU+ z-VbvELxOYnS{x{m`e9q`4i~%xug!Dg3 z(%=KGeieB-HSc+NH{8<+5;PkwrcN?o>So(ag zxcTBy#4EuU6nP#stX?RPF$B#3V(*`}TUCuF`5C82*D>jt=o)iNLEp%_07tC0)5Lk! zpH!y^c6vu9-7wI%WDw*-?2t8A9Pa%`SVr+#w%<8k;Lac9Up?yP`W~E_Q~5qc$}$T^ zdJd7x&o5Nw!OW2NuzMe#Rx`us-oMi`zH8ugLyu~wx5(=+Yd=Q#_-Z!_oCNoo910Ho zd%65`DUoI}-QmA}X5hNGkrn3;sPoR^MUn;&#m=M zNg^=7dqcr=@J6c)duQP9>5cDqpLn&+8#=i+6J9%8qDj-;(fX*3UJq=m{+BvA!itZP z<|2b7*r1mynxGz%zjp;ox@PhsrWZZhHUC#n>nViKuUskd(H;8L%B5hKXLI*-DnqSR zb(K4r*MJlE(H-&m`t2M-?cmg!%fSc=D-qCnbkX}!-0PX2j?`dF*ybv$BZC`eiog5O z<-!2kS0JEtEy`9J>v-mr=#w$!ZZ`mjJaSMV9rj|1jk_T-=F zx{`)>W#C|-s!)wQmJ8?KxGY|=bOt1(_;~q==al;2%nAV(W|iS@_V6a23%4Jxj(UOm zVcwVs|3*Vhpc;dL(>oD3!2<9tIP!1I_FC5W1|^@g$LXO%?8>7c+4V(6kM*Gxa<2XQ z?i4xWgaE=RV)uU|vO%*KKkPgU-)0jc8}3wZt!}5NRCtxBC4a1Ld+Ws?e|{t0B1LlV zZdKVU>3~fC)3)A2fNQ0R+AmSq#ee%tjMBRVWu{OA?fG{ht*igUn}sE+JvTI zB0jIFRXtP7=wV91o$JisGThZUI(CENBHZU^2LWBMF!YNy%b+pPS~ug6kJe%Cf3OVg z8DO-|`XlR6ll9?@9C#V1{%mjL`NP}*h(kTYUl%#Z@0FKtkh}O`2K}y#8a_Lwx%sYO z2X}LnH)mzhW2Ugb*^$0ubEbE;MkLmc*vBtUE2keb_YL-v&!dP(ow2H8Ci61`_8ZSi zNd7-MTZW%~9#$|+{i5*MD}p^K-TmZ}$7TA8{z1>`Qb!v?2#(8J5m-5GkB;W*?XLdo;=`z{6inAchTD6guPWNHp1sMN7BvE&@gV7Zk%w$cBbPh zEb=5Ne>GuP$z5}QmnjUI1s>`Cp;3sqwL;|%gZiu{wPWKf5&qJYi6OioEU7KX@J*!x z2}L{hW5+^f9sBl5GY(>esPk_lf(6w~WRCLBmC*;|Q9>D9Gzx&ob4u}}+yiI3RI-_6LeQkNo*AM#>fAaXSm+2f}LnXo#G3{DGt&`K%g2_M2B7S594tCw`&f z#9v5+AQ@eyEw{pg+qCb-r4>g|E9B zK1f_YF1-U4E`83__)f~OA=4_wfp75LJ+sID1wZw7R07(ha<9f|V)o8v3Vg}eSNisx z$+JwIDwursa)}Y!-#|#RlHK$L9)ABXPucu~SIUBFB|Kuoy5JHG?_7Q)Ca%E>Ycpay zK6So*HA&WaHM&PS?Z8@(?)(S6m()8I#?PiYbP4n43+;JIX^{Dc{i{u*E0B+9xtIT? z_&=B=x~J$5txDv({(b!ETVe$DC?YwaaqYP~%u#lzMxk37BXq2s%KLB1!9V5QtF~b* zuYUy7p}Y=BGl72g)%UK;PwF@sHdkF&x^U==_t&5ytS(I`^skM~3B9 z;tHA}FL^E(u|Be6k7zond>j2}U5VG|?ZoBit1U0uj%My;cEmot@zUv(@VGGvx%kJ) z0iM9pVSHm4SO5Fng3gz9VV_)p&r82ZiM5r7O>SEerWL0V{vxv(5n;icCxkUz?kD8> z!1trQp^gT1(K$f~l*3ALvv5UaDE4P5ZRy6EwRwe8NK?1ikxVl4fG5VjvyDC@)tLYv zV`-XA7b?OkrG9@p$dN=Ao=b60`j9{CcX?EdXoga3I+VV*mv?O~3YYLEd5EHS5|(r{ zfVt5TeNIWmkN*STY_KA;y6X6#w&88#x%NUc3-FY4rf{fk3U3O&r|^9M&(4*-Ssn#h z8Hq5<6MWD=9i#hF+m(hVJx%-(Q^xp@=f86Id_r57WC$Mdhuy)uOJfdfYOD7HicAkm z^$XDfp0929MY_o(`~R^f3)|hRl>QL*-UUP7GR%EtvdA^aMA;$+f~Tc@4sf1qx~TCV zS4#A)HOea&uF+LqQqsx|@-n`OYz?4<%aHNqkdfPXJvsv|V-p^OUq z=t_N{`j`)Y1Cb=lBS5SB5pt5?>Eg1xZwTqlYzBN29T&*?&2@Vmd^p;7VHU)CSgY1n z+z{=ScS7Ke&V|pS=T1~deSZzhr{MH!tPTO5Qf)DuEHrm%+-L0?!dJ^0g0Ufn}#2^4B-CZOm) zF+euRmJnETDVgQE#RbvQU1$WMJ&pkWb;XKy2%`rQeE_&Czd(HY^f48hfrnE0 zjM)2N6cj`=tp^*6J^eNtk0rfgyW3B;dy9cl{`sszPSc=q_w~ZdmCSS~*;rTutnY2}Qu@>vj|2`D^C6^;9j?3G1rH3Spl}gP>s)SE2@h zKsR~)=4|n%zG_CHX@Qf*Z%`R9_HyIqmEsP zP&oShVJG+`0C<&-gGR{kv^R+zLL=8^;~OFmI}gs&2}XT#z5W`MZxG_DPJ-`?GhSjl z^g{^%AMKANSo8vGCtax@=Ds=N|7Tk5XV^13ikyeyfm5}x3CN=cAcE_SkQNKJXbrj( zf7o1_F?j%>0008u)0ySF8O^(nD~Gy7J-Ns+0im`LFa@K{MI!-Dt!zXon z_fwkx0mb-=+U@zZ)BJo>+mrN!x8{CSpZgW8txxwv3l1faixouzrw<O0YCBa$D^#~nVM zx&eZi^IL1p2fS*DL4))wkKjA&IsSoddk*}YnuUznCD>ytrv>rGq4Yh{XOtN0b72Me zlTR`tUt|sTa*@vMdbN0mgv@H_#KdITY4GMQ1 z&K>dOAU}HZNaFD91jJM8{V&xYAd83o!mTFQ=B5pu_DDDCxKHTlu~w_r^(brk`G@uY zH5umi?@Zh;T-PT^E&a8_>{T*(M{Jd6^(=#4MbN8zZJCkBrYmG3(nyI^U>Uh#x7Q7Y z-{ja7oM^MNm_%Ct+;9}!$w^ob%FY+d2k@oSjuzahxXpv z^{oFR`O*KygOzANg}}dMXf%YDhPt^z{h@fsd)bzjC`4*}eV)3{4ws0)s6c#)i9n(m zk&liCzAC$O!K<(ve6I&14PzHN4FdAKaY1l{ce!9}0Q@8X7PE^Yp78vDPy~dohKF~r z3Q>P}{6JBNa&e1B{g)2AxmHegpRN)hWX4;<-xG+Q9fZfxoAi}-xJnN`87P1ai3sDS zX^m?YMVo0z+B3Q&PM@Y9X1wr|i=~qYloQVu`ZpA5>!8Zc?~q^?)E@$X zC{hj~7?od#bP3uvv_E_TN8k4g_ao*&j-?rw|JmPp)HiC;0Y~uA)(Di1gWZhTzDgkc z2JOg_accgt9NyR?`cfPav?old_Y1cqCIjgcJzm#I&YI7-9DQOyIwnz6XbQKJEu?aO^=CL8hqp5YNlSr>XkRAAqMc-3kxWhb60Kw~ zt|{%>Qg5^US7fd2)>XxIlHt%#->_w3sIR+7n8n@=V_b2%Mlw0N?>;=EuB5gjDBz{U zTVM3o&A0ALmlZOPy`-zB8$KU=lLVb-|Q+-9X}=4M#6_eWp#t7{Ns7o{4I%q38X*HG+T1y#(b+Q_>bL;M4)BN?(p7 zGL{`eg;@WR{{F1bB+v!%SFR$leqlnm-E9ER>$>=Wk8i>ZBjR!VyRHTF_UG^Za_%-i zvN4|HsHeKu)fmrThpX*KuVjupF>(@}g&ZVVuLt~Rz;Opus7N~suU8&jxAiGn6t(^y zdn*?baP#PZa@bS7aGoVV$curygEZ9B@1TrO79t~h3mCzd|FPaZ<;D0%zC@!pE;N6d z`f_T7vE)C}^egn0k-cVEk(GuyH3P}h@et0cMH847T~Sq?h z9C^grFC9xlppMQgx5j3)^n4Q~;d3M=WV!ms{RBhv!PLJQ-#=qtOK34#3I{ap&;=Rw(Dp%m z#v*1?z*6?!?Zd-zb>2;4%9Q8uQ;CTeTxuqbHT@cqmp0a+y!2+~B+T7e8@59rqBj@b7Q?362b zN7N1^|M1v4(h#)i&kx>o31pKPq>-{i0>V~N;2IH z;lT9|;&DKgr#Bc=^ar;{4I12EcV+DeXQOD1(i>ykK&aBC-o!X_ip1D6+Y2n};nY8w zvmI>fQ#r1D`C2zVv)UNW)U{lBV0{H3GX~ESZt0~P9}J=zl*d(gZYovhBk|?^&52@4 zx_d76Db~lq*vi5j*IBE~pBE#$dM-0cE#Vb@2RFd_{MC-NYYpwji6Y|y$y#f=A2W&S zp02;q*8=o$O^RT*8Ivc7>lzOkd~CDAMUPz(#xy?RnTJCtr>u*p{Q7Nc5&4LFuky;| z#Mjdz*!}c=rGT4|$q=1-k8(Nhx``pX8?sHC-Iaw(CUH6H^LfDj8^2Pxe1TGZmi;wnYu$L(cL5qbISQ6%G6&^aCPUbn%w)J_^MsX5m# z>Q!3%(dEF1A+JJHJ_Xq`&Q(N?HMR4O7KPRB1)!Zee!XuSKC34`4;Q}d*|-ZDYdutZ zZS6I)$X(qC53lm7aHF{13#7$-TB)X;UFdi@aD7M@$N#HY-ccgzA&(|n*P+2Y78ULPkkQg3gSxz%BI4>0q}N2ZbQKpcb0844A+EkM zsW}ox{rzYp054ZNIdABn?`SKEe2Q$D=EYPU-v6L)={0N0iqEExo!d3`0+UcoU7H5^ zngDzftY{^&qMVeqfNa?}mF>;{vK;C-bJ)-lBYsZ6_{vzV>Y@$!5vw!6>#vkn(cp(a zX2S5YIzYQa;*DGxThkc}n)=NUe2epDq=ZlvM>FhneMIWes&*D($n=CbiG?I79k%c(#V?H2p+V}FU zVFKj)mXRbA$?^>(frh-K=tXND+5&DYVMTzgc73Su9eL&nNoGsCemFTc=K_;D`xCR6 z`fHn4zKmst+>`N9x%{2@j;2i8B(@ z08h4kJy&+;tne7*9rm31D^mT(N0dJrLd9xOt*6H4j(YE(E8rZ5gfRSU0ImS_$PMj4 zw3y|%4MA2$WY#L@gFDM)(r|8Dvu+W9i1*Jlb7P`tB`L3~VC@|4|C#qGMTAqwl_EWo zb%0IYF^_txFW;Ni?s7fRs}w5#cwQE<_oD0g(hP0G{iY9U^N+E;4@mfD|Bjn@N6*hgp*vgc8nE#rr)kft5p|L zWPN)?&6(cWszDUy)jzh$4bvA2?~`vKtO;xa{d!=65y9nD!SvZscEDi;+7oHQwb`Ub znCz*voe=3ZFG1u)eg^l0!8QAKqH}ntpLSFQBXD79`+^P~5y}1=76tOjqiTi{V|4V! z>2~M+ZAvqy@axC(@B=`5O-O>Jr}S-&0nu^$FRN$|fyy~y?a1|eKQGw{F}7IPaPhs` zv^SoP_aZ;%?8Q8=9US{~buQhat<5*xw;sW_pk805>|hquW(;>U7x|P?yHzIjYnfOr z4H;?^1X$gA?b$s{{tHDc`E?c)Rc)mhd6gO`5M}>o}HI`Z1y-r(F?iYVBg_@LZ72f(@R`c3MH@A09dgJM#U6 z1&>|K{iTMBv{?riTt59U>b7}M_QA>csjT(XSVU2u1rhbm)#=i!4 z6K|SEFA6?>SUD$C!av{w9+kaRPHymv*+&|klLq$dU0gKC9_KY*_-$3K%V90{=KDZ& zk=n@+nIorO>}8R9s+k8LQ}d-@`?Waz!WdiG_ez#F+m$D?2E2~?*P_8iS)YU7 z2P@c0?kn0(jpO@>*-2*o*hTk-@#w3^4UZvx1QoWcUPl(HO_)gJf&m}daNRM**M!3q9>fR>OyCo_8T?wt((zgE2gg%)O@ znv(I20paHXPnJ`%4Bv~*&>gUV|9u`Q<@sL2!tge4iP#Erxw_ObTdd>7qdJf|o=IVO zQh%1Dt*$-2xLkGl!|#*8>QH74{on{iw$CkYyqn;IUYmpf4VRm~0g0OIVi1F#x1q5M z8leJSzenC*?8CW~LdOr1_3y0ctqqtWFtRyvzaQ@l$zm@n*Y z<`OzoynnIoRdXU&@v|Q-P=S82Hbni*Al~Rc3*?wb zD&|hBQ(nBTiW7YP%>e;Qoq6MLRuA83H&4d}5R{NM8gIjkde1o~YBK+ecyIVMZ{dcX ztP(OHb;Dn4O|kLO8fYBG;!_xK%<1D@5U$4J?v}s<`!_s>h46+nX33|NHAcY&yDmCz&Y9&E3Mn+Li>IkX?Z0fPNyk_M z!!8`}D&z#K;qcGdD3+Ns1)Q7LI@5i!r014OS*J}Fbm~EBjFVIOB{(9KyzYGgnJU1O03v1Y;6-TEISj4+`)Ai`GjX(`NZCnokxo!PIYP zd^a;s)gVo*Qm8Z)!$_5RdJhjGy-1@On?m)Z(nl%ejEl^Zvf!aX?}vnSAnG9yyyz2j zj*3ySPn3S#VJ9-yt-g@RwW+zua2^b}&KQGnfqa5PH8v)FPqhCm3z*gu5F7W^U9rwv zvpB&@lvdgJc5M``OYfutxYYb!FdVELNlEUXoGBLRBIas%j#S(WD{)VTo&+c9ApTa) z)(DG0%Sj8BeBPk=LP8`@!EUfIz_SR&7#1TT7X>SlMl}nAc>!O*_dNu)4u&7qBo874 zbc;;au&Badae!htc+}4T2mt1Vk+w7e4fk*7$rT4CSJ0dxEt=oB8I{A;B0G2+p zgS+-ysfP>L_T%W?YrNI99g0(?kDHD?92rw^nzUmNTWMQ%Wrb z@Jh*JQFQPV`+x$`7{WioWgLl*srk4R3N*iEZ-iCZL<|igL+buIv#V;Da4DEa|oDt|BOBxJoyDa#u%Tmm3bG`#S_8qPAULQ(*6`>DZF79@t z3jTbZ<=)T7b)_1e<@zvqtU}D5tNB#3?&}g1P_uFJO#i*w$VuZexiTYGcK(|WlfdVr z73_P~GJb9#%f)V2oyF*iXZ`bcFHgY+9#NW{r=~K;O1Cj6v-Aa*#;(;5nYmHbl#>0JWbe^L4;5*~t@%mwzhF$uFv*Y?0RPBTggVyHc z=D^kKa9%)ZN)?zXFsTzSw9a$k1;y9meB|d7e$=7@zSD^vGa7G!dy4Rz_<-PXFsh`) zOws&-pU8+HrLkp7jC-uMpP*t^o?i_HxyJH}a(a;G;M(-jtAvl4b?~ic+ron*p2?-9dD`{7zWZ2QA$p!SI!lHem5Dg$0Q}Jg{YvqlVB3 z%lMKYf+X}_Tx_85`NJ!AyG87yiAFz_#!st*#?R_-q*Q2Hi+?)h@9*Dr2x##X`ozwC z^Ojx?@odV+ek`PSCdhzo=H1tioGz_7VNKgtt;_@Ew(65CUUKGm0UcYcTLie$G9Z() zUmS#N8vJgjH=Z8r4I?sGr7?}>MxXJOHz-g~bTBLlNLQ^d-uo8jP_xi}Y$HFBpMmiNv{6IDUTe9NKiI`K z^s{R%eI;=C%sr^{T^@h|V^;mkJ4h~&L&dh$+YE+#@#V!TlZtOAbjZZ4lyDfJ$< z#TAdMVouI>!7akoM{xg$ik`9w8LN^bI4Rb^ivs7YCkJrsTBvH=)VPiv5=zIB>;_II zZjDpi?^-78$RG=!!zYcN8UCS9>&&v3NrB+R^r6jDK0llOWSDkx1q>pXtbzab92UC& z5jZj7Q%}w)4)S0Mv*r?ivgJ_b)BM!+g%zLfBby0n0)$4hM#JcS3S zPju|?RE;|d9$ViDl~ld9W&#AQ)sB7-4hFbM?lAAf6Gf*%5s4) zDkaN$Nn6|Du>TTj(l3(kjypoN-n(cpT64=i5?d++xu&DDoi{#f6<#EvsP1g6SJ|`3 z_BwrhNgQCLOk@|-siA1dn?L7S#p;i6d%pRscagO4zlw2Xn|>4n-`DwuwHL@kErkZT zmX&)lp-0zCW9swq?M`u9V&lq3)^aI93N4>hvsmy9>;})J496`f?xojfkV9y)Ap637 zLZrn5ABUGMrhn=I>{)36;FsF;|H1(05+>$)_-d|>_`>$yITer-y`pWMJ#LyLxw}M` zfvUd@g@n49yiD9R6{Y6R$guhxZM67({DNqro&zWFLmf-)d25Dcb(hU#Mjlw%q{?Kw z)*ry$0h|0Gj>CXBP}9Yuo_#WU&C=}c%A}|5_mJZG{L(1QhO`~i285lK=+6CQpfuKS z{X?Bz%ZvA%TYXh9ujddmE&*74yS#W<%AGJV+GB?AQ=F&89&BpTKqDE=;il%5nhX7d zwvavQ0jWWiuJwXO5c%(HM27;>HmZUT38fwPs!ilJ<93`v_SJO-c=W0r8J>w=((gT6 zQ3S8Q8TfyN02`f>*^F{8TbyROFX_poj-Ma4C@t+pb^8Ub+515)LE`;h?Q9Q>%|Gqv zyqTGcuD@m6m%Zm%@DQ8dUYCmi$>iLxNFx0XynFw>{Sr5{ zDRpU>;DYC=#lZ#MGkXt6bKl6k_q^|_J)0gD3Ce+4UmM2PjFHAYEQSOK)fA}uPPWuf zP%rMfayKsL8^3};?xwogd%~RW>Rn|8fY+K@wnz~F517i60We5Qhat;pQ{Mc3TB#QN zG^Z6Y34?m;~@m-NM;Jh7GRWCHJ^p2EW~C)`eB- zn`+9M&$AsTAJ|Z+&1hJgcW)MXNjD)tC~CjmahqB-p~|fHaJx%)0N3S!k)N-fIA$o| zlf7~!1YE6dT-U4S$pLK-8#RWa>7rxO>6p^I2a}~dkoXzxwU%mmLu}X|lNJIQS=!dv zTmB;a?WvRlrBB*(x_~f!a{^cx-&Sx4=UM-u#}ah4y2>58L>~z$G<54y-}+JWrX(n@ ztteG<2Ttnh-sHoo+L#{*bx|B#|Kx2W9>me8-*!?;DsAh^8z^t;c?BYvNdKmHHhuiG z;%t34E9I!9l;|(}z}^!Ub=L*!E}~ugc-M&IRtW?ER?{l4 zWGObbn-&jSYKO|X-ov4m>9G^9g%+0?n=(dnyIq?yxib~{^K$9oshOcXtOSepK@`-a zK=K|I0fPvofqkWx(q*TWjNG!qg5QY#z3VV3t4d1Q@SEOwMk4+!;61pIM<+&;#pw5F ze<85^?mmdlIT>uryUDKE`U!kslxz$}9x84Use~d&q3{o~2plK*s`iOT|Ah8ar8sg% z&CG?oM?OWCR@YBI=|E{9D{mE$S62v%&0M|k?(|W#!B`3E8m{HF zz!3Z95C%&K44GKTkQjq^o0Z(InVCSK6kxUusMl#5WV87w+J18XSaovVRx@Dsf(em~ z&$BFYzH>5e2L>@~bqAMHHDh(?-@J^*K512qLH%+p17H!_E1J)%@9)JPMv>Rrubzv1 z?m1UV2r?GZJi$^|wZr_^7p|FCT(wn~fL}gqCs$`xo+wDZ@m--T;;FTn1Mf3zV(T^g zLgnXS%*rJo8J=EV`&}BtRu_~hDP!xTXyIL=AyH#YFZ54w3*5P8|NDU${k<7fzIUpC z?wXmM+=5I>bpLX%20Qc+@LVN*st*0SH1bd8X%H$kR)X_||G>De-(IFtSX)WFNXAhW zp~8uQ_Kl4awE*_PdGl7G9UZ7`1MpVW)GgZK%S0z{yp>-J_Jua9*MqER?w2O3(H~0q zU%u;1ZnZ36-rIoskH2Z%5F!9zmo8ApPuMJJ(SVvsnA`VM+V>X*doFRt{n+z~f)kqT zr~w)2AP?&MV5!D5@vD{auWN#jKpq zN4L7ZPA}LBmS*F3|O{I>P} zUD~(!v+Ze?8e|JR%v{9&DNTxsN{7f~`|Fa!yVbp%ESZz#TlVwKLXKESS|@wDPGYOVbEi*gkv7+cgyqmR4J8)? zR0VHNobg-YOdr5F48H${tPqXswA)5t*Rg92en}X~p%-h&c;1Jy>nqh8ijba|*EfOe zI{bIN@mXZaJ3Ok{Y7UE?$gWT)pU(4-sHQH~V|77;qSQ!XWRgE;UBaVA`s0xnTk3VU z;j=+AHQ@c0Y6jIYN%83cQdWq!i-_r67`jGdHgXEf~pP&OUtXU8J&T5tOpKiw(l=-GW!z@U1d zNU@WslxM!7rh@m`DP$VG3yTjhtn%YlcEE~dyjXG`GealxN2EP*acO>AmDMU}LD`(YMh zyv=jJf6qdM@^#v`0(Qzj+OTm7^z4XZwcpq^O6KXn$ak0jJMfyOk@tGeN3I?BThV78 zmUALr>=a$riD2}$6S=a5Iw@g`k=93$4egc}I9nTG4zgp9>pkkM^OdPqq0X!<9mLkz z%w7J;WfOYnjEPcldpta3*%?2eP*>%wTNFNaZ{7M+$^^3|;3MNLn@Zl=S)crtY&Drk zSZ2{(wt3WDbd5PpwPxr$UbO;3H(;CF+qDOF)o;K=W+b% zOCdo)MkQO@zz&6roruL4$Z>2^D7QKV$!I2$3OJyhl}4lTL5q7Uc8gHU#_#m#UmkYh zf0MToZG609mHRuQ3%uSeBx;j4xV(;tjrdldjfqL08R^fI783^J-9yOIboOhdizGRDZxR_728 z3>=w7tYXiWb=>=N|KXoGuwju~#O#gIg%jm*hRMi0a`25XRriD=`78Rr0n2&GpMTrt zVAc1J31kxx5WO@4R3C`?vmcS{Yh<@8Md(x3(fQ&?vX4>9YAbg50i zW==&zI5jN9*aMpkF33r}uJhVYLADxY@+ag8wIq8bZnd>Iv24U=*JYUOhf?8NIFcD_ zL}Am1X5`vm&yds3*mRR8F(>7*W({$gM%ONUFMThdm+P48kCrRjEuj}lJiFx{3~p-& zjsR}8sSIuPDKp#+uoZLSjJjN7NJQMoz$IXxTx=Pm9PgTM* z+9TN`epHfxkgjSU;%qYU^NMWl#G)JJLUKBsK79jWv3-u8GTx>sK&ai$nwSUg&JScz1N0Zv7UOt+UqG;$wRi zcDngc3sN&v=_?=w8im=-=f4&boHl+Vz8J+~Ie(mno;D89sCUrs(#uuUT}H95bqZpS zj~9>A8gCyh)n~mIzHS_t55p{SH1X4%3#i)Hmg#V39zI@=wmnK8?&bTOtA}T<-^K^E zKSgD~`E{q?IDnXJ8vvTCZ5SqTfKAQBmh1KI1NENfP-UQANI{+#6Q-xw>VeX2%PAcP zR=Xr)BXaCH!E0N0`dFq10xrGI{MG;De1V@Hx3d~ZY8mas2^??Rvx;(JmuIV(Y0NZZ zI=c}q72A~?VrXbhZ|Y}-epTg$)PJ;jFWxYwAHs{{1+gXj3XkgzY#fm68lZ1AXDkyU z4%L$g8W1+Kkj=OC)YYQ+Z0KL32TgB$FTbn*C-1=awD)46z=VE-F2m)f%~z;d_Np-b zIP#Hs05GO-7S>VN^t*FPGd>w(=Y;aQe|`pY_3Dnd+r90h8PRU@e5wA8(-wxs+%usq zkj?EFE!IFjIcr?wP?j()iTXfLQ$cq}g?)URcGigf&2KM9{N2|y{)LU3A$qwODYiSm zx8_uH8Gcv`mSW@1WRjUO+u`e*4h&?OApPTc|IWMi-i6R=(ero-;ZYHC**ajjYbXh@ zwcs&w{f_czxxjhT`4S-KZiCz9e*~XyMni?4BT}Vb78>9J$3$BWz zsn2+djm2Jd6Kkc_L#V%7RG{s*Y%Jcf;y?b>eLruY(qmM>`JeBlTmSBVx#$vd)h@zL zR`koMwin$*Vk{?xT4WiS+7+DR^tRDI9Yf;@&IWPpk>R+n9;CwCcFE(LSKyT8Kl%|; z?~m+wG4dwfA8wLA=L- z-b@-h5tT}-F1;whk0n%EYKW<;&W>f4Sjpz6SVF{GI2If>Bv!Z?D$dgrfc9@;vxH1wNY^PMld;(aFaCMeO9&l_mHXd}{LlwE$T47lwVk5x#V8QoOX^JCtRDrb)8= z{`-PGfxxjTfvwHRkkV2@PW5QeUQE)a9YL!q{SbbULGy=CdNSpGd&8vm3yYLk36$AW z28mKvqYPR?%O4)#{(V`P`r*Nle+2&d)cZNWe?Fh=wK6HK9NFf-kT9y|56q2ZR4=HE z>IDx$yBK^RqlW??_d+Ly1Rb7)zG-G(P8wAso$2xzSD5xAVv&})4;vQzR7lf|zhH$N zo{WucP$k!7G}y9kGLeiR3h`}M+2((MRCvO3H}A|pSFXDDfZNm{^T*@PDA3Bq7jb-+ zHXmjlRtym?*sYrO1Q6CgLOww!-gJl=!Jip5f3l2vZj*WEE_b7GI#w2l)+P<*i=Ktxw zZ0Hbf!eE6DTY477bEh@BOGlpxjj55srBPBuCex?EC3ITm8=3TNR&HCS`q6xg2JIQ@l2q@6pZKDLJw{!Fu`93P-AeC=#eI9(I{w zfyNq-pH#}-gh+L`yBglD)=hU#7Wkz46fKgPa=iEKK;DBA4*C?bs_{afv~Vxx=cORZ zFQu{D*90=jHoTjv9u7DsWX3+xn>A2;wE$AWDKDZ?5hdHN#}i@dHNz|rw!O3acoTO7 z4A@zmB6HPQJ%H-T$i4orn?w5J=l5NhTPKDAge;iJb85^<-vv{R>$^=nMa(A;WG_Fs z^2UY72c-*nV}!or3zDlkt+FBS2s=7#qb_uHU-sr%sGN)1_9?M*T#wzto7OLD ztLutgK7CD!mt1(;CcUtZ^q*yyvn5aEK-?R@gi9<%)Sz-o1a3}wL#C!z4Bf)j@6~l5 zNv9Q^$eCRYT^CP~e4vb8e4A(T@0LbIPT`_MHsx9uO}+^p9bOS=9y`r^%h=k#00S<1{UI<dAM?6L2HRJgi<7{hq6=U!xuxX(H=T>iW_TI>fuC^!v49 z(}u(3ltw$9qcj^zL2T*)v)VGO)fsEAE^@cc@I$?d$isK*bPD=8Fdbc=e?Ryg&fgEN zyZ}<#1Q2sK?oLeS;z@G#AeR*=0hoeiNG-wpl8j37_+d1EKs!_8AHv;M)Q!HWoL@_g zRVRmO8}e%)M!746&f)PR;P4&%2moRYv?xRpCnUc1BF6=5szlF&1b6O)=d0zNXkzoP z)scszEHa(pz>d{8IH>!a+oRyFftd zqdP#tSOy+I(5lbJu_Lt?M8|k)pOxN$Az@@*gCy#pw4bOUCopv5ux04yVc=?J!1dhj zhW0%8zE_cS8F}Dtfe*)K0JluBG)DIEV2H*gUi}E;yu%X3^+;N0K4y5X$cD|DY-@eo=m91FfozhG3?EYpTRdd0(Z(GP`AxClweE~FTWEYNbnY#DcHY@$A(!^FmHLw}#fAlM>X&Uq z(CU7219Ijx;nCQn$9`SKeN`;e>N2&Ju#NR0hq&D#vHTdufsh|CWc-BT!r zYDZ4r!~ghw&&A*-=iMc2r2j1{`5t>!>sTHe%)(FAAJB#SKbp=vnhp2;-_?cIs8wpO zQo9I>*n3s&+KSqvwwOgxGe+&b_ujj$z4r{#3W5kVg9zWef4}qjFaPD7=wo{qC}=MO^tfH zxwtZv{!W$o$F+#IMe7-MCpJ4}4=baKaDaa-VqB=RS->j?27L z?LpRn>e%#;Ef$?hn|qgrPE`B_51OOB0{|bbOie!(B;E#ZdEVEYR{e&%O-TCnH3=on z#`TLL*Tzsii)YElEJM-qPJN!zX4rpLCUAppq2KDWQx1nD*gmhyx(ao-+uNqs=ScER zXzTj(cE?$hd-D{c#lsI%iCq$7XYKjXIZ`pQV!rA6>>(`u1WMZoz4ka9c1!9OY;=B% zZ6WOwiP9%?%@VLBJ(V;NlvtdmCGGNsx)|<7AH2orqP^brI?!-wbJUHu;+}RV+PBQa zr)CVjU0X7Q`=w$4rxF>vwswxgw-#RWZP{vjV3)EDW89 zu>2;P@Za&tE%i6pOz7?#Ld6D2?gAxcP^AYO*fp+P4w~=jj@`oKwfX_Gm(>3|Qy#+?7+?J)j z^VH;uwyv07e{A1j@2qN3G(oy=o7ltt@2Sv1lOQn!e0TUAvll5cSwul|v!866E05v< zcITkK-+t@g7@o{)8#=feDqwG)9vxBD*=AyMe*9BfL=mqcZO77}O;s!F*@uS?@ zdcceiH?sE=Dw6kHZ5iZZ>wB-3+qlkwFZMnblfT&Wp?Tct^SbrR^qH0%o@c=4+jN(k z2}Aa|m0aGNq2r_CHd>DlFzUUiF<9%TIThcq=C3tL$FU>Sv*?zZ7`ko!SsdKv2Xe^^ zfBoN=_DOzzIT>v81QRT>$?!SULSopp8$n)zxXP$<(W2h2Hop(iv8{M~Gq}87L7&zs zX|Uqz954j|=Z)f>)9pcbCyLN%)t=`fW;7ayh=LesP-Cjl)d?ZJMl%sx&_T7q>{0U2 zyg^+@@`_gbUNvn0GU<^asXhxAWuKTWdlW?^ z<^{bBt8B+Hj53D}QA+}pin#Sxq5r_b{}eC*i^+hERYubo^biYX8y}Oib*KuNX^S#dG4wNiwm(%&ab=F2L}F8waEPQ`%4`<)ky64ntbtx zd)PD4jmiw@aQo-|bLu5|KK)QQcBsYAm*&RnEd?~MXPsWFkvlL~M+48Xw$k#JjZNyk z_A*W$&#t4Yf++gSA7h$dv^6P_0=4XIRn5Ea_~{1{_L%;7oAS*|KnukeGims3IT)vT z^uC)CQxu#HVwB_IPRKpSggxap2SGk-McZ=xWRT0eiZJXHBAx5EeayHql6Jsd-~QGbqDEO5AC)@sq4EhjY4f# z4L2Bj!mVz@;?m;WS&Z6v=xJxcS9#oxKOs@}0Yu)I2JBGI^j&N{0^I?f}aZUqdd}y751- zjM1F}OF_9|K-VV+*>zeD*=1{t5uP@2XP?OOa8GGZjS4OtoPti1H{&^^&C9HbMm~}L zLo38Db%24W#JyWl#~i^^TKD)0+mxohU!TPM4nCr{?TXG+k`=yY+{qJRnZ3xeYH9(k&?sC@`Ft?VL~$DGi%|Pl0SHo&&MzudwRgu6wE-|T*R;H8 zX5#@2<&=V}*Xv}*D1>w?6J9M+%PW_H86a}z@8CiU^NSTpYhZ3;XA(&4g5rnPs;V$v zKNvo?j&s9i5*Ughxh9qIFjgddb7FLx=w|8oxNz8@x`kMGjwdJZD#&x_FM2k#glk`X z8R}?tO&T&aHTMJGYTpCiow+O37OGzht^R<3_Wh;zOVBzhl7|g>IzB^98t)}bb&cBD zBrQtYVk^2`-VYyGSshyxGi;vy*{*RFEW}FxoO~z)5h#zvzg$nQ)V>HUERQUBSy~nQRE*O<@v}dwil~5$XeIf`_s~%6?yH3EPcX^eyLh1)&Ablc zjjMm8H`hJSk?>mC75j(~4vVGDt{JqsKdZz)EbnzktLRd+r6q`)T@Q6R&rK#OD#5n7 zXJ+1NWMSLRXKg;DEHfY}@d6`v11T`^q~w}IKJMYKu_dNwqz(5yAx{%#EgI_^MBkb)Qaylln|F`t z#8M6E17vL$!`*~S>~%KzLR)g#B-)ZS3XL_KDFJU-K1t^hv8u03fokJ)V~q&8XWEPU z7Mg3w?0SzOocK;c+W^mBV?S1k1prJq8sUU*R6*mIJj{cMDt?G0rANR55#tPf9<*G}LuESz_&7DXJ!R{kx<<5W>9&KLBuvG4d zi7(338^;H0dTU?#OXC>N6y^IDmVt!!>8HR)j}x!U-1#u=L%xrAn( zpv&1Kiy}7CofCa764yIa(BxYtPx;)Fj`>+T!Rlb9YgU0#rA~{0ZEyIADzm9Yk@=Ny zozE3Gm=ckfP!lRkA6QY^wXEQ5q&ToD>CBqIf0tUZAwoznKgJVgHu;73)P#99#+!~1 zJLT!dz5t7;_e9Sg;GPXNp3e;MFU%H@q|gq0I}CU2I++g7*ty}=XN3#)kT2JLG#8s3 zxw;W9sc^h}{^~i0dyVhR>LLoV^GEr+k z-Z@~nye5+G@day>+E0CCm_-3fGEAQojWtjc81g3WVmr*TrhR;3gg?<$PLiZSG)LsE z@}=;%7YlNwSaP_az*w;mq4y0^7h`eZmV{qIB&eEmJ*vrx)udRdzexw*VmRM8uLooS zUI@>3f)U6<{v6~JdBD&wtSj3aD0HmVgs4sYOX6_+#prK+P2Y&o(a^p2r$+gt?vG(H z?aA+LIxq69-^W0(U0aO<;TrtSC7JAp`1V*9#~GczlZlISFOq`HYI`m&RJ*!+ ze+9a2H5V1dRkrdMf7$b3>~ag*=xeqSx!p)$6Vq={?(E;ah&F;#X*jRk1YqmPmLRzR zjkqig`=zE}6Kv=A{wbj+g=_Tf^@xWMePyxLD-e+snM2_uSyTEdv# zxVY&BIt0Mr$oMQsl?hz>^`-&>AP{e9i^ib16=3vl-C)@b_sXl!pk{=j=^G9yOMyn0M&ap z#3R7*KE>tf^=nJc3m*m_Ji4Cgqh{+JYHaCwtQ{tCXC~z#mgBV@!pX$lH$7ah>2)-V zJ5v#PSoE}{?*5X<==33A$7DA}H-Y`?MR0&%Wn40ewA471%Dx%VF(+*8}C&C)n8%$|%CO1Ji3 zC0Y)McyZ8r?58sJ+=f8`_vrtp7dy{OaijL3bj1dITbqHmzdUd6{AXCEYm1LJeoj0r z0(gKquone3kF?!^mS7!@lEi-2p?$cq0amPs9nb$49XWa%FNumVwjUI$QHblK8;&dB z>%9LK7%BudDAk!VhBVi))A)6nxBdH81V!L8R3d+4_cf2q&dUa9!jCE}XH zrptoBrt;&54GGCIH*E1$S&_LQJ&g$jNwltNYc)kPlP#L+k-s00usBH>KTJ3fJHa%D z`NNtxgH#}X>$79+1SEUex3sqmN84V zUdCuTK4kv*+uOv-n1Nl05}ON6T~H;kc#Yd4dj|9gaP+)&$(Lh|v^_J~_GC;9PM4Bv zZc9}e$z}}(ESW3QnR`JvCMOgVg1m;>IuSVwC(5<3TxY`9iIzA( z6@~C7?p?(-v-!0=6-(foGOef!A?h2YkQf|>SDyH_^}1xfi@;~Lf_XjSOGKqC_)?lq zQ%9;XQ-1PqiG1zzMv~^>xf+rW>NY51Nl7&)-9~7(1Wao_*7c6TKdLF0BhpDFMS2v+@}v}2Cr(WaH>P4|ikjx{xeg$=_wYcEH z*-)r~2K;E#Jg50fa0RO3AMha&DYP)hffJAPi~4M^hl;mHI1i`M5}nBus-#t8qU=rR zgZbCdiHY5d=02Hw3XoC1E9G-tRQ1|45?tK1FH`!BbKOw~mQ!cQ;F4GP)bC*955jSG z8dY`;bP_o$gRRD&+@>Fco_K00NmnB|5T)vH61c!V*Pd;}zJ%7WuVps}&1R6Y_JV&qiAnfwbL>H)v zs7TIV$+bcyvG7JK7_zDryp@h0bD5|9u!j?LBy#9saGR8B=3zRoix8gxekZ!#Vt*DG z(K2%kJid2{k-XZ<@woJl8_FuUe?nLpM&n^#{jtmW5gD;g z-Py%i+6*>?*9@hRDvj*Dj9;F+nS68}l{eXd-Dy+)XunwwRVoSwYDjgVXYJ7SWL2D( z1nw^P$iZHMd|$efTJQ$*zYo-P?HDp;Ors% z3C5Xwt^rrJ?m04Rd{`&omJH z1q1ZU|B}u7`gZS?(tNKDdqrO0zx|#60vZ3(ADQeNU@tfYSINr?~?4jXN?Ukoy1wD zN`e_0f9dWB8mP#7Ob{`ZXdC6(vC|rKNxj|;|H$~b05a5Ru)~TRzF17}jcHd^6Ma06yJzM8%$%a#Ri5b%@GvNYHs2GU1 z6y9B{JM5oyu1Nh>J{MD#fk@Jynm7cN9y(WG?G3|>vw_>7+6edYct`~GUJ4*zdZ=QD zd>86x9Frgb)2ftkJVrI!;@bb{d?+l5`%rC-$y%SFp~YF!wP>nUi;lI-d+YR^msefY zsbDr5CYxE4<7_leF|D_j>Nfb+)=<8%-dIBOQ_vP@hWTYrdu}Gfqs(CmI^@Fg#`{34 zE+O~Mo}T&|*)5e~zxck7@LshEGkVgTz|s$->tp-r#l9m%Obg?c@7=7k^SBdHR)L~A z3y5JhYi;QpaVD=yvFWO@;7TEI`ZY^9kT`AOU7S&rMLdewE}!K+`Letct*pZr$d!EP z=mdp<xgd6+kSqM^{wfvqo~b|F1GINZAJ{ZS#;`kMJRrE2|j$)xqHWM z2U`k}J%xyMVnY-EYLj(OLD)>No+WWGO{-Ih!nnbFFtn#G`cv`$SO9F|a8CK-JzsGM z(KgxudLyR5cRyI=T3Uh-Hnc6M!}gT#rgUnac0RjlZAmPZfu^|xc=BUzYs1YPbRFJA z3Z-0k66JQX^!y$98R)dB8lzubnzzxCpzpf2l~}X)VIBe&Ro0pm3`bu)&*iLr-OY%+ zW@k`T(tv8b#umb(Uc!`@sYL)kNjR8fEBlXRz}nQa5Xs{T_`W$D_~ELu&+Z-QUSf}q zec}W9Rmj~ybjwT8<6w?hX+Co;-=wFel7PW}BlsknLBO}0t6E;M&qDyeNtyZbw#YQp zk?Yyd7aN#u?VJAF!DgFz{jNvYckgt@{&cV>Bq024%`|^#yCCn!&gk0gu7uPYBp=Yl`)x1gK3hMhNr2b}%YxiQ=51_A zlz!xKu}&pc=-T+ICEr*^UGxgh;&r5m67dM;w^pAD6!z@_me&4ZCPh=$c`d&uLvcuu z#l;g*In!ho%?mGKB<{Q}Or6umhzZXj72J=Va$vj%~+4|V>-m&;i!77$WCCW21XfTx( zDzT&~L~737pwVu90rZiN2`H=7eDv55GJ$MDhM&5ahb-O7lTmYs4@$(w)2+u{1$k}D zj(cgwpNYYC8HBoC{fcM`rxjJ3 z(%siur90f>yaY_?fH`2c0jRgIf7?u%Aspd5m$`P$fu4Wf*Qssz(`))g#yqf60g2qd zt4}eX*gFPO;C!Q3tQ``Lc)@s(Oe~E4x|=`t`u?}Aa6M-7bxgFfC(iD_U4xWEqHc4q zG;E=`tne6iGJ07tSKTHkou4i*tW-%=l!y`4$USiFy-)Fwlq?ViU%(DiuU#66-3(4k1t?m(DS^F^==kK7y18!D(*Nd2D zcNm*qNaW}wlgf*4u>5RC1{(5JHavE_>V1o_Dq!sDjEP)H#*(rRb=CXiNrwhQLQ9SQ zIM$3hj=Gz^MZog#Dn{|S_-6>z%8zTX%mr`|C$YW@XaU{hL5h%oYJlrn6w1fPbFR2S zqWL+C!`k;H7wY_yDv?SbP5rl93cui=jg?&2gMK`HnYeot&ULJ`Q|`Ui{l}zoZgD<# z?pVP{E*5=PD;`^v!+t)ucE`hM-|I!ShB(4~?rDv~+OZI*Oov4)NiLQKd2*ln;A9YO zW1B89jFuZUivvO<7o|=!7v-w{rr(P0iU~U_9`=C6=~D)&MUMgX`8ZBODU7xj>3qI@ zK~l{T!cMgoTX*ndS3&B70@w!X8e>)C=u_CHzP?|ia~odb`QgqWe!^b`qjLd`&LbD5HP5)m&1w%2 zwjZw_%}*B-20up5RP#Wv{ys4G6ZhF=ld5N8gPg|vU=gqrx8q@94`vMWVuJ%v|L?ZS z>GAyQS6oA`hv1E4??Ced#_2>|y=Y&v@J`#|gk9><5;%4*7-#wZsO1&<+N0EXei(7G z%xvhC#8S`TiWg73qAZ)bryIf@7V&8!6|dRZ?$Iyqj4D}m{TbG@;}}owHjE`oOEr z8<9URKw)w7wOV0hsFP}#(rM|V^Kj>?T0KfeET|${vO?uTJ$1=k>QD+`v!CGdtPZU0|=Cuyz{rRTQV` z&o?0agWjiu&x7oGGFc6+`|iywa{%QDt87OzON#Xk^qhxf!ViDblF^3FQlTuyF{DvM z!Aub!G?7XI8-Y-!NzroTG4AQQQel;~%YzJ}V$owIEj*U-*Q6UzbHz-n>k`Ny&#(pJ zoO0?o)oMzL;|MHBSr7~Zr8%ADLNFvW(=@P$5V9dp?c?w!FAX%?%9K>=W)matzqQ{yW`c!e|TP=cBSfG-7Om3Ng0p3ed}ZD zI5t20zKUd=G$$v&}lXwye57OUig}j<$!h0 z$aZ;LW3IoWjDts~lErd=;WjULLzs8dY43s8y**WrRp@di3u48{F@ z<(X!eo#?n<&r)cJ-|Eb?(mZyr0yT&WjLD1R%$@X^ zpLCOos|SW(oV-kJ5N!Q5C?~k zFGH{uFw*ltr36N4?*2+57*?|i2N}|qzu2359%tTRz8_NbHtJVuW)KJDDIYhc>wPIY z<-(~SrIoUQV?5iWs~Z#v@RLR9m{uUOIShl4?iPLdG5x!%>nxGLgpwXFwqvW4|P6@Qh1pRCx6@B)H+A61l;v*}!ELFAc|$VMjt2Ok_SV`+05lCFSP~kK73!2ukI` z>^QJ;KFedc-AEeFZS8RoI(Wx=UY)2Kq`PT=66yM`+0$DC%*Hk$$r>d7X}-OJ9oLoMX`oU=JQ15Gay8=XBY57O@vA`hxnt4m+LVOi|A49O9c~~TmD~{im0yqPD#0m zRvGu?<`D6!H7Kjw;TwlgO_%dUm2^eqi$>Yay5gNSsZ{Y_3XoxsFIjEZFpkrdzW(DXVS-VJ&7H`m}gk~q|g&Eg)q&hSd%$ z4}a1B$i}u)*06Cir4YKQ*0c=GU)kUPKFoyo)@)JZJnlTBH0cIQoehiFqJrJ@H&=p=~70xyz9VBIC8 z_JTb8x=r;_4n!jaJn^K_)XCg5z=FYR&`*!fRxAk&B&Oiot~19F%}C!T^|u&;3;WhC zz>5RI)bKfBI&IBidJnv$_{+d#An=6xMIUBHGjQ@O8&h(!x_x`@6N4miWN`WSQ0Hs? z=i7!1{qm}e+~~B&Li1!eE^U&FCq+qYog7B}fwd5Ta+NS4Iba5f4&Ab=+f!vXylAtc zhI>2FEoSZ!F&#QB25{z2ED{E}MLE{#8Uw1_c&GV%vIq8y8oe^nR7Eo9mT%QYc$Y!zz}v zFP&-NEVq_H|FbMKl`nqcYtxp&A7u>+`|+`qgv;|m-QpI{!Fjbzg) zu}^W9%7+^2N~Tl}O^o%Z{7NQN2=y8NSQ_iC!kHFAbY0yMn{@(>S}6Ei!r~iXIB>co zCE6iw*KzIJrfb(8o;AXG?mOgVboxjL`gL<*I-KZsgmQvYmV*dwu%Y6)%eZ znS;LGsY}(R>`w6Et$UwM?!N>c>2{}no`gqNrYl~pvuGH?W*{-~q(U)%g{sh)TZ~az zn6xAQr3Fjo^5yNT=7I**6ERGUQ0B!a+&9==s8=?LP5hZgF@Q&noU!VycOI_^eW^OS z?Z14-9wS=!j4X3>0z!*ZqM2~*s@|z<1U9J;nDJp)mLnVXG*l!Ly}ug0;!`$~3D?206R#f7{nDz$qLmOch(1xdmz%R z_JGns?6D|Z?sQ{{J%Y^)Ox&HjG~zMyQ$+Tjez|q|B#O$}mCok3{%~Ywjybwh%r1a$ ze4L^s+6rMs0oJnk+U@*as+^!Un$>p^4Z*wja?73y;7gGjc4ML(4w3jBYv)Y&jR)N% zo$JWf&bdp8ox7k1&mwlRxErKZJ3Jo*@R?Y<7D7s}rGj@)B4!S2&b)1I!5xPT227LUkGFs&pxX2Vf>Yo?!u$xDa2sUDMFQuCEK4)IIC0dg zPByZz)(Ef@6)ac->E%J0rfFod;bJ47uw>>b(2DMd#hR}I+l9RcKbrhb8FYnk)R>XJjLXA@g#2vNAC}|fu8d=nLfX4?b?HN zc3k@o8{q-Jn(hUZ9gR_D0e(RAv*@u=sw9;;n%&qZslw0ozU(S}{v5P{P8d$(GB+uy zldnV^rzS(aDCPEHSv_2+z0J`yNw&CprnfIWu)Jm7s@M^rVd zdL)MAW#iD?>HTPYkW0#^s7Dgg_NJxvv&)y1-pox=iL#*tIR7_!o^AO!mje`yNDx)j zN#(N>U5}Jnrlt4q-fqSd;gj{|3(P;VrXVPaF!WqS%e@YmTDl_dNbwb-4_qqH>orW5 zTw^MzN|-W~GIM(Y{x!ZFnXtFRt|yYP9Ye z9Kmn>HmtT-)Eknd1iycd_R@|qn1Cp-Dm*jPLv2=q>*n9rV0M|E342$-X2O~>whPa>g%hg- z$<0&-22O2DDV0{5=rmd7bMl80;Q-ft4T^+4el6IS6zLq)>P=tb*5A~Pc8Z9+Yz zU)yb*k~MwNX;qOc5`dN<2b++?o`Szuq1|C(2*VC~cOKdy)t7nk3-5^Sb6NI#YLcMs zg=xKPewDaF^Dc?ut!{tPnY~S1*)Kf3?Lcp721MLrQ>RR&Ccn7Z+`&0HW_M1nb2`g`9LFg$>30Y?iJ*XzQpnsFwX2jrt4_8UZl#`<8f43)lpM) z)VPvxWOFO>dvZYovi6fP<22WnOXWQdYX~#9t=!NP3;Yz_TBouDOi)r2#aVK!Euhit zBIBXaxu1V59yYWRXP0eoJzQxwKGW7;_nxANfFOS6G|t%0cZGjgmdtc^l7{-ufmp#@ z&oH_3ySy#H#AAZ+#^;^uOtjR!pB!8*j+iuRO63bdSkNrZRE{wa*N}44aszypl76b* zt-?IDnrZ=LoZjgi?yVxZ2@qcbonZ8V_cqfca)ofaBJ|zE+9JbyCic6VXtn&|BzTo; zcic-8cYALd!OYvQ&!@`VBI&6xMDty3sJI#+JNq=;{EA|&{>nb{q=I;^-~7(yQmC7j z$og?-u@oW8C~Xpnj7?6lpixJz4GBvK4|7qm8|e%XpHY~E8;dUZ{Yz@S!yKr(C}rVJ zI?F*BLlHCIW<9Bi40j=tq|sa{?TztV+2_`V&3alPZP2zF#dMh?C825pOyW8pmx>3M zTFy|OO6ya=1Fw>T*@Pw|(4uf?Q~5{F);lx2D3`FAl0O|C#*8V>0_%2k)U9N8nPO3@ zhs$&iry{b>0ooEa270N6e%|v_sfIu2$X-&uuE5Ox`4VAM)pbXW=QR)hNsePHw>D!v z9P}CNuKh5^`coFX`Zza_k7YmB23reRi1}?;7@cWAG8M<{9{rU7OqEudcx7I2DB_$4 z`$%=>l$c6q8pp{trJo;?pVFd#sgukB-!t_c9QvrxOH92h#od_RSX-T~*ms*N2dN?dD;VTSq6!&b4FwwBQMQAGd!+4KU*XYDuxbiuBNxvZn}xJ+eA|LpiBBaco{O zxQtVUxRZUNFU}z!ZkKBn^u)O{=HL&-C8QTge=Jj|1I2>Re zqaNToOKwi)oRoXpT_4?3CFdj8)Xn(`9qG#l_SE$$*?3EI36vzlxJ-YQ80|Qa2{uiO zUxnaaJcFIq-|F~ks zU06dW!md!HGK5~X*K_6#vdN0U%Y$*vxNq@Z^?`4e6vypQuZHSx;wrj<~>gNzlfCFQh{@Yhk_`D8NPtVCTJBeArWGJ7TV81(x zeqG98Nkm|k-l(qfgrQ1?STuZ#Y=EyAIsYJxo&iw6(#l{PhO2{}f#o9; z$uOVAlRB)!sIyOWyTcV>8PxNB1i!S10rIEggr?Z}(VxVv!qcD)xngdOH!7r759?3x zV-~num16N561`tR=M@4a=={viu;L@esSx!#4BEm@E?a(urMhBc_B~5~(Zc4e{tDYG zRwvrI*CH1IX3aSc-~IDS*gA=PAK*_krN;Z)S=TpoKwoWlTpR=aoKkeZI=^((3zEx0 zv9p_{!=%Cr7MMddx|f5d5EOFIqv04U_3zp&;?|VQnnVrU8OzZKo=BjN06%rq5k!H| z^DX4lVSh$3p3PK9BAe!Wa9U@T6^%R&bH}nt7j0{eK zWyBU{;?0C{kQx7^M_-T0?RzPCe9qsYdf0GuE0?T>AYo)8oLc56J=E*A0UP6weJ=eC z9$Uv0=dpz4w&5HDAUyl2liBoLP!#CR5Ucg9djYffV{TREi>HJ7>kP}%#N-u96^{MN zXYUrBYuP%7?I=!^_|1C?N%yc@?wr;zrtlx9Q(npNJN)#ezB7-}+44Lkb5P)XmHJD5TK7r%g6taM(Pr@$e7d(P|kfr3aKl)cD?%4B(U z(DGyU;s}?Cr9Qf@EinpcYdEKnp`&9Vbtf;k>g$|0PF~P24(g=BH2hbME?&^klc$mm1UiDhwDV;79+jl!IQ|SaGu;E^z*&L}C%hGvk%Noh#DfP?J!nCw!byPo zxXCB%U0xbDca9unaQHkzQa-zjxpePK>v{-%ihxX9DdJ^JEi)8;0yE9K^?3kQkr z7^@MFIoEYc0A_kEA3nQIwh~*jchY2!+dulELMoUS0hsYR#XZ5Dl&4bNszC8K1SKK3 z?&75+Z@x>SLjB{kB1dsfn4^GclUhYJS^cA8*LaA&2IHD7d_QTc4Uf-R-pxqtUW~<{ zz^5tO0>Z)Dj@jeP{;}yv72|E!C~0D_W3{CjR#Y1>c{T)S9Y!O8nc^~QeU!OeLV7Pex>^{;tgSPJE zrkTJk9x4wsS!*Xg9KIl~xJW3Cf=k&WiUreWn5p*?F%MpyRG6={r!2YB>7V>&mhfxg z5t=2Lfupo9p2RqLYxWS4Ztw|L&AT*M6@=44_|RD<3{0CAkYV!ITiw_r1F{+YigM7R zI^#X3VNJ}-SZ+00SogE2sX?I)XC%NP+ABMvBP1u|vR=^Vw?1+&4(h@-_-fmCFTkaDwO{X1lw#8W2RZL0Di%~HS*P8Cw{ye)#{vkH zdcj$5h=%Dh4pm~`nR~zkn-7PKQ_MQ+V*aO^)X0VHc>dhm5B|h;{W)AC`f@?3P_1lS zPcg;5*z5E98!tbsKGfKu5@Fq4MZmqL@Yqo&Gvlesk%4=`Z-Nmndy&wQ-yUa)O&l5) z&BpHs?E;G#0FGbxqERjK1`>))kdQ6!bpb|c}L*S}=UsupUD@FeG&)uC4NJ^HeiZMvkt z6tfe+bCYf(!C8n^v0~fFDQJ$#U44hUMVWlKL;MY<<(*^~qa2ZQxx$1Y=z+nvekdGM z`;@V8)m~_IE@f34qQ>?&;HL7!{liHLz^v(u((m$halUx5T$8ahlXpS1uhJ?9>Z)GB z8NjGHe%w85Xe@3*>H=Ogl(1(}|0M;JiLbOKIj>NKd9qLZ?G{(puBcH$d4qIk)w>(g zsyu5gx4N6JPX#LEf{rUI67R2kEj?Do6_AP&fzl##r+2)0ZAZ`q5+xk>PV6fb2Iy<^*E?fXng zw^*aP(ltWm5|evgNj~x2gn(jD6Vg;ZQ>3xCX}TxErhVbvAo|<1TrA<6_Z3}OH5a1V z#Fk1!6%<%guaurq(EnEL3-I>}p>xTh!op?x>ksPs1r=N^HZ-4>${~^mS6};H$kh&| zBdK2vTcIE$@O~EOh1uG~fWv!&xK=G&h+RzEOz9w~C9b$vzJ5`rS+ACobBp<9fn5SJ zNvkIDM0|Vt!rN=6y}=}Yhn;EbK2S-y1xk8wS_cw=yAYDgnmS9JIj+%O}wcXsY z5YGC!$P*-5vY-BQJs~!76DG9HTQwA>SXWhUcpS|f zlX?EP{TmqII&hze{H=oI4J%KDC@xj#Wp0s%&^KXs`#3N9D>!2(%P+Cc?{~)f+)9XU zqEp}kU-U8YT3zRu=A3WaE94o`W@*TsC1#s{2c+&B*TPa4(~p3PVR|X3;gSM5LQ{qU zgU~UAibL*r_@^3t{!n=(LDzX_EOzAmL+mUi2A47;(ToJ|+&Ke?N?wgLxhjw)#e~zi zlF-J1T8B<$45ggqj+n$>n5V!rCcMWp<-EzWY7La&-Jq?XrzGZc!TGu=bDjQ& zJSQln2k&7-_Ns;U`Xd4Igx^tPBYr+J+p{4mKQ**TE6l8f^ydJYlfv!bLNaEwt9t)} zzPrKWV9%s=wP==W=g?JwiUZD;56kP@O)h^Bddh~-jCxH?Mw)YYM@w6ct9jHw9Vchw z_Xg=1jalLhRb>tFy}L@zE*jr$9*ioUN@U@yzP`UoH1pj!ro_2w1W{(ZGzl@=ipfX( zofou(xv7$0+!}w_=n|0z8k?CPtYfE}U5Um1bheNlbJ8fY?kyY4^DOS+c8VEMj`_nb z)w_i=$R=9t?(yCrSKGs=_+np6h`KvuvQ>d~`!dLk@A6ot6!+-aVg7AAM`q}fw?oYJ z1XH4sRNvT`KZ9Z7v$<8t4{CxQ=vJ!T>4Z{mPWxQWBna@Wyd!R;-PzB2*_l6eSgk*8 z&6Mt(crX2&frzs#aoq9#WoVRo)`xDbS2$w`Aqcgzc$MaHz9;dU+h3&6(}A zEgL86XxJc+`iaAC%?hnai+Kw%d(XRFc=BuC<4pN6cBM2$T5ICb@@eQZww47y{Uaa2 zT83%m>oPr&a+tz-{DSPoxhTXMqC{k|%fnM&dT%K#S=T}*l-ZH_)r5&Rynj72DQu8xWhgUn%M(dz%cJ`+N z;=%Z=oi`=}!O;r)nM^+^On=6^8o!ciTt?ahhKK%evNqkn%LE;55|C0!Ic6K4i){3n zG?sr=S8|Kx>HY4wgjSg{;iEA?PCqU1Rao380nGfO{b?*tm=T|JYHo#g1S0nef=-%) zKO6+HHs)e%s>3X$Qel+hAZn%Kcu*$nrK7NONebrHu>pq**e4c;y!jI~gK^@kIooSG zPk$b8E#|$TNKp97SW<}qM4#+<(lQk|>3M&}Sqv(}Z4KE4=}{OEMDZ@GxX`LGO&gzh z1A^jdYdrdLW^#U!&wTgKI{iNY073u08&b?&FZ%>~EP2lQCuB zsx^;`n%a5DdJ{aitL}vDA+)5%TvbJyMaG$Ad(5^P!Rr1ra@J{@a>b-`uKi>|tnwy~ zWW;&$kQZDj$4KXxHj`r(&=s_>;Vf#+9;3;FA_~JUWi^FhTO_yBlw++c4w9%OBY$7n z+AUPbZ)1;oh;H5=vhlgU-)g#>@8{aKQs2Mb_|&w z)A*8_U$#As23RZYFp~u;C;9zp*K|Xwl2Y56=8%y!&JHe$(ZB5Y?bw0zcka({P{`K-|NMMWOl%DFLxxmKR!#%bI`@>q9#|_t)Fwz z=J|vNUj07lanfgg(EFWcc2QGXYi2u5?XX?e)Ryy;)6mBJ=4<3J5?tCT#6m0g18EK> zo0x4s_mjH~YR;lPl;)bz7~}S-veh{19j`05^?V(YOGs(d`}>Q<2`;>X_tWmr)Szt@ z!pSC?d<49QJlFo6)4W2^5971c*bdoR6Hxniygy`X?Y!#!#R_;c{vs)6iwL027T)jf zH@4r*x5nSG$Z{pa;~~wZU4cY*#asDW=auanV+IH?1;qVRS1FEpUozFywWa@1&3pr7 zgp-%S`v$ohY3l?=SdPYx=XxA=woU^3L6T~ub3OmOT(swkg7`W%4i3}c)?r#TIB4fn zAAyc`uA_M_ks!Iq^D1P_38=wj`?wb3x@h#70uN4S&-M{p@iV^GRZ`co-Y#`0KExEmOY(9>Y z(DHarPUAlP{T#eV&b+PCL|5}CnC%Sm+-ZXA z^`>8RhV?1l-;m8Glt^@phc5Z9nQLsi(JgVp5N+l9KX7h{Un9_6y;dQ?5SH<|YZL^5R zG4=y_j&|~GUjv=}71*F>ud@B;kwOAnIU@t2v-IwsJ;DrdMjJg8zhAdykXCIND37ZF zW?aMz>mbefz3?^9xj3+^jjRSb-*0jK1i#0DzW6=sP|0ksV$f6>N{w?n-gz49J`!E~ zk71;_LyWhp_@-RHR@otcu^C1fAkUeeooU*AyNkd~6W=nzT*q&m#<@hEmo(1J4ccUW z$_{FxqZUXo2V_>Q#x>Br8lz-2Pinx*)jao@62Z6y8NXM$20ACMr=NcwjXU(fU{ZPc zHP_P9S6tn)#Pw0%{yg749e_?^pMGRf~&TnHo3 z%bLZyBHj*i#@UJ4NS0ft$RuOzA~>a3=M~l3uUnSUY}3>=053*KZe<2I-@Vo-jUW=gT6I%=qiuF<&M={#EQr z4L_lhd+|7ZA3OYhd+(>{-_`A7UplLaj$jzvtRnK<(~L9AdRqZ+PUVt3dS3Kx)l-_( z?BjE!DkbZ*Q=Rw8ju91_=kj^TYl%HCH~xe)w%z-vgX3`<#c>E`z{dNng3Mm<(GP0G zisg``($|>QJg?IHD{D~IX)QNx$ms(9fx5!&u1W9ip@b}#{$Nm3+r7WgJckHo!8ZO} zQWM=IWn;*5si9p*1HJ4Y6_cQ4WTnvzH;*XB3}eUp2m-%qf4v@5eRQt>6e_~tGy6ap zTO^mMQI9K&X^^=q56w_^1c|K5%}kJ~As2t2q~>-jpMLsW&9{$Bs_XV~cJBDbW9Zs} zA=+Sc(vd{R)u(J<^IXk|85-zryel(r>0q5cqNkl`+KzqH&5H;#URN`7m1Zch0!_Dx ze?;@`@Q?#_0a zxz7~ZV~4RcaeNPL+A>Hh)@`8&m#m`I8@JlWntDG{`>Waq2y@rAZNzJKX@`*L?)@po z0D$zy{#>Ma>UfDjm&f}^b9-$O&3e}!u86a%qn-N3bWl$h2Nd)flqNcZ0n8|@in|j` zYE}C~>#fT7C$U~FCe1|>-Zo-Bbz(w0Q0RMdX&%JzP3~}zp=ORl?RsZAfK=T~WOLtn= zUdr_R-;}M|$Eizu#L$q?k01a@`TotvLzrX+h(1m`V;`I6Y48`>iz&HFH zT7f$Ek;#p;qihc#&i($uj~~AS|F22|9mlKo^BnY8#yC2(hBkK)X_j^1bPU0o}-B#La5`a zVn}qk-`TGa4RoeTXH@sDr<_E4zyCaH8{1oIDMq6&x%6^ccB7+PZ?p>>`K`}U?>^J) z*Eh~zNDp506`KCeb7Tp_!a}- zxwHQ_a*LTvx`K+2}HcYu^FZOtM`R{*1;6^kcn18J#UcH4iw!bDN?V`~cR zS|M3sn2!hmgM>sr)J3v7IxKyEE7xyUi~Pplmpskwn8vn5N;@PCkZkp~5-H~+;dBYU zs|at^`%^xT6}Pu9HY&xHyoo~Sx%s1Ne%;pX(#-j@`~s;lTcJ5CnQ21)L5L|JgglqE zS}9w-U&e7QBhPhEfa#loG`EOT519=lA-`8i&DsjB#azE3d7Ov1k{X{S+cG8T;9n!x zpVNM6hc}!H)<`B(L?;WgbB57E5u-tTn)A5ena9+#JvHq!X!%`HQc zxw-poxGx}^5G&G(GdI+~Kk3i5+>RvK%X70%u&U2J<}G(UX=Gz)T!{UI?oQ@Ka%2D-}!Xtk{&(F_R_9sAEaSRak}l@K0O^YZcLX)18)2-_9q!p z4rF;^Th)&WjUFEMZLq#d<2;5ykAEJQn=BOb+N3x$!g10ItyA7YyLe=DnA+Pq6tdDH zNz2QvDC1+C2~s1`d4DLr0Do9M?}DFPlKpecPkxdzxNfpcF7fqlk$Fds?~++f=u3Lp zmGpe15ue2*uHS)5)kvNks6H+=zU641bDZYnLwBVwoquehE5Grg-_n{50}6@nG~uBQ z@3y>u>W;m1)n{kh??1h=pWgMw>vcTGGW@mCguYJt>o?7yL-(0PyYJMeV&;!Ly@vk! z+c#?luO`<6jO^7QkFfuXc%EF}`ZVt{?pl>(mjk}+f1&HZ`TTMBn$Mp>Q+IMXr#F4- z_q2TdmdfXmJ)e3G2FtesVUBoz2yq^Jk8nSmhlW+(*f=m`#|McxucHO-Ys2Gv(1=g@ z<^Fyk&qFlc+*SZtx+HP6{}y8wQvD2!Mm5&ARp(2^TX{ba=4c1lKJuLN6Pz^9MV?Ef zd9LQUM4o5&$1DwWk(9T?qFzuq?zz|b@@Nr z@+~3J zQ^@q#esQxg6rx=);Qav@zQ+3`E43tDH+(@KncmX22%N0+SWJ6`l12P=RWN9h@UY84 zGDGjr?~|ol=U_OT|1ceVm6lC8NULwgIm2b-a_t~z#0ROWEZ)}bW6z%mUIYswf`g%qxe|m_$wd!wi=)P@v9{b-J+B94-C`# z!6Di(;BY9p$eNJ$BZ?Q0+{w{IpV-w&d+fjg&JgmoMK{{uY2H7cKdk=8CimH8l z-I|-;NdigeJ)sE%0R=)07(nGy!JnceVgW=Hg$NcP6a`cel~0O_Lhw@{5FpZ9=nyHP z1xZ2(q?6pV+wc89Yi8EWn%OgZW}kCzDE`m$z{$F^_da{?>1(a`eQTg!&sssnO9;Or zNkF_g<8u=79Pgt@a7WKGsHrXFs?_;p<3bhty#iNwmnW2zWQejdO@jdzi!>W&^=Tu~ z3th+=lwCS{y?zll8rIY{t231h;~>vDgFrd+lSoFi`j3AsjqQuL#&(gQYxdoC&$?7I zA&T~82Zs*Ybu*Yc$qt|&Ipt1h+|Vxl53HU9bAVHCn-1=61<>DFwhq2#I2mxO1wKM~q(mJQ>xxsplJV&H6UpL_VLmKBa?1Z$?^ZrhLV!U2+ zF7iCSj>>ACd#IRQw33B9FZaz>_WTeMJw+QG@1&gNZERhk+l<3}^N|mr?|b{7#Is>= z9O=;!?LA=Z4zTs46D+EAUe%@2y6-ymEa*LU2dmW(g*yh<8-@*m_45`AL_7x02anqw zwwQbZR3l1$`AT@<^q*FYO1`p9xAdzK0$pclkOm~t(rQgeg;aEH$~;qxtSpi-rrDR5 ziDYZ)3QaMk$x6<2Ze#FPB1ffWv$oMGD`?+kIU=8E28?%uXmyqd%oRu2!zRXdg)iRmdLCnP#$sCsPCKEW^rw1c#1 z<1CT(VOt~BBibI>j4RUKG{J||3@)T!6Eti>V_Pyei2mc)_#EUds3oz7As&AbK^W zi7XfC^u8iUbjl2;3}mG#NBv1;)Qe4@(HKm%rBlM3kG9rKRC`sgO>}j1JoRs_iNrMa z0vb@X=%!5mX3i#BDn>-}E2a zOv--aLo(z2xSHESqh8A!*qQsWajg6Mk3ac{eL(D&ZM0a`PTdB1C&iq!Q zM!ig8l*o(_^4uig zoJ-sEYk-D&M4uN!mdB9iSxr+_drXdn=2sgT7aNb=^5RJ8P_jx2a+b!2Jmhu=X-?NK zwLHanZZn}MMhw>ET_;*7>BoJ(lq8^vA~;5$Q_E6sB`{?nR^`8V8hhD?>M&x8I2CCg|bXVw1PLR2!%bMbydw)%T#M;AzDJ@c&=)*kJ1R}(#J z%l#?^+X;!TAUT{B>atlxh9)J0_J_-Ac8J-y~DS)0A>ND-r_WyIldR~3S>(8xEcYSSc z8@m9y2Qhd_pAhmK|BgE;WbzOUZlVT_ja>}K-Mgk9ZU@lMnhDF-Hi`H_5hQnPe`GOA zs33U;iS7xW8)gdW$J5v8>V!4x+F%_8?@#~$AOJ~3K~(wrmO}T5h;tWd?mnk~{hqIR zjzQ86G0e$!XXw-Ac(3b=`Rnm-gbb&0Z3{neX&UDw7c2L_a=gZIf&A4)#zPlr&TWn~ zcai5IBsyxIhmhy)`mAKzt9j0|Q*z|eLJMxk0TI?fcas3($a0e#T`5g;<9E!)LDaaY z{Bs|h06NvryVIt_do%76f$EVH4}(!B9P6cZZ(F(o=3hSzRy;L3X&sFe?1K;9KXdG> z=l((<&G9o}%=RL1K4{z?FmRteMBto0FMsc6B_rRHZtw#-2odPosi*ECX1ljq)Mb>| zN4+$3^xKZ)h$}&o$#~_+bQft&w53|3MmZx(wQZ!Fp=t9W=V&p?HUC^q5^~17i-uI& zt*@x2X+-lrCDA>WnQAhIi?7(<-ZZ?&zb% zG`Cf`rYs^`#ilVBE@{-&!qQ`7(3~D0?c3|EkRxAALpL^_8YcwPAQPK$^Wrk&T||;iFOk%y9v72z zx!CIuP?|g+EPRl9gm5PkI_2FIiN`Y`S56(nqZMTALq}froR#`A001){YJLM^rzw) z!L9~+9x^>Py`-*xe8?=Uc0w|epUr2-h*ZjHU#US3(_fgTpUwK{3rganCu(n2J}>N8*Cn;5}+DB6VbA zTL-kaql3~cP)gB2&mz%vixkON!yD>hNS_`hBqg{#pu87e+ISb&aHjs`A}v$a2bEku z6j?8r^|pDw4_p69onK=b=;AsK65Wh3X}YPY$LF@t*n)yn8|WXjHCZzbl9DvfV+c*t zfAi+s)b+i){@HwJU%2($BcTqtsM+Vq*A~Nz^H#zuZ@&+thV+JAwi*iij~O8-#QA6H zP0zyLXZ=U~Db{~t<@~zcp@HtUhe~Ono95wXS`#uQN+yu@xg=-i+7!$)@@O(hil7Y% z`Y?9Co^{Zx9#b$4oiDW}Lj2Keg3X!x>q;3Pt@=?&bN%cJajuUkxSkW^g4%BKJ$k9L zjQn|-(vb9V7Arc)u1?lLbu})Sq)nB?tb(gFeN(ViYt}P=oUE_xdfMF&*|y!kcn>Ohlgl&otgD6Hwi~Q9>ziBJ;otvRp=~_xq02r4 zJ?c%^`R9Lm4jy^oJ&{{&l_ z<%l-l_Vme6H*~PRHy#|vfcDmtPk=$=_w(L6BG=#k`|Uai?jD5K-}0p6E!}fEhUnYT z_GzGtrn{jD7F=@^EPim7xR1B4z3D^u4$HZr_Cvm==!;|!LJwXUWMW9Wh9MoT^9^E@ zkfYuAO+gUK2z4_7rOma%37MVpEu4dz?m4TmXfll%JyfYQQ|de#WHs%fCzD$vfmLQJ z*(u*X9WI%=znEOmuMC!~70T0c6|kTwM>qfWn1ZWD5w zGLMyQklKXU_IxWOIw8{OTQeo7@~HL{qq~h!VHGXc$aH$nyl+brw;B*prWYv+v4)%X z6k5+x=-Wd5iT5u}6I?-!U;5pU##ktWKZTisko1Hs^~)znX9TAuLam;5M4qzmJdGgA z+!R3+#sq*!bd3NYBtV6}b*42T2^>wYQu}e^h8AdU?~H1g#gG*rRJj|p=g6y6f4l1vVxpP z4DGgT->x0k{@a-S!cLAT$gGl}`Io18PEKaZ@(kH#eCz~?IFO7SbUfK&{AG+ODeZ@k z_j#I&MoUw!k2MmU5aJd7rgmLU{gl#v4lTH}tWEk}}HKq(#pSA=Sg!BA*k- zBoUf^9!mN}L^^7vuW4;hM!=*Z)A6`o)m5Cq79vh!|y z8m2$JAj2%R?WXQfGcA^lBolenkeIkM5?zhMIs4EgDOeSQkTmFiWO^1k=kNy8idrMnjrO^# ziHcPWp{IIy#{S+et@O`@5z_YJ-Q7 z=005%gLIbXnIvktju0~~g&djO8-XOSeke&lFUgb30mk=B2ktTgE_4Fugg`G`kECVJ zm>UN7?*TKWPS9iKs zHs!9vxz;&poTnkrZMh88I`62i0wZ>i+``*;0>T-fPL;2*NSV7 zoOmbW_wHmREqeVm6rFWEU!YNN=UC+jW0e(aOh zHn+ltR&-g=rdYlyv&fQvPkkRgB)U8P6&>#?@p?Y$nx-xi-46B|=ck*b;@eyo3x;Rq zOe#?ynYBnx=6)>6p*!xU+-ruAn)&p)HWEE`Q&ddz+=UqF6>I@I?Skyr2?KO&{TwP! z9hdlVzPj}#S%iXmvGrVdyz4&AbC)jNthXuIBwzDS%*p>h^1NWTH|r^EKTRE7(A?Sv z@8f*x(dgt(!6N&iQGI(tzXqwFYmiLEoOA^rtnlHX{u9%5=FA}}NQ>0{n|qu)9{bDL z`dGYP%ZaKl4$tz!@jKk3k&tiS!~f!AP2zXq7N*OvP4 zFD_UKPrtqtb{stb4&G%H?6%Ed=-p5UNTdAv!c}ndqyK@njxYilWeE@2Z8O+$^FgrV zsDaS8S3SJ4V5LCbKRtITEL+{Ie#`XdJ+>JFdv3FdzK45eFNC+3t%q$k?F(N%XnWXU z)Bt#QmLy6^yb#QufFGuCD^<*|QdU*46}rcs$v=2oped zea(~IJUuH$sKCoLGo1zo7aV=EhgS;uX7=NJ{ANjTI4>(2W1WMcf>7M1q+}6ck@NgDSb$o})82d<=o8Mq6B^fJYBuw0 z1T^dW_N<4`f69zAYd5sQEwkps?%NE3UA7tw{d?8J@dt0CZ@qDSD@=P(vT)3Ow-KJ4 zv&2#g@7KE?4%&4DY(Hv%_zxNT=FD3KFD-Z!z^%=mFxt*0v6KS-h8(@XTw=0g?ai2mg|XC=UhC-M@20*8xt^h_d|-vK`Ctt#ov5^ z_M-KU!SmNIyi!oIJlzVQW8i%G1G5C`9PbI~-%&e#;kDCX(TsbG{@jQ9__l*j zWEqw!(^Am~OO0qViQ5^34)RmpG9qJ| zjF=&enZATX7a7BZ>{ThCnzlE`_8}%xkg<5*E>f0g-le9Gq|bDpPtdw3jbK8`8Cz~{ zjHZgxTvf-@B1vnos6~@O5;8hZf!HO@R{5>Zcm8f47t&NE+8lqmg`lO(HA2(|Y@D2> z2Di*~^Vx1jp2!qb$bXGAORxn!x}senB#c`>v`7;7f%T*^uXSd&Ydaa+v;fkZ9JR5C z*|CLFCCh8N7}8ukPmZlJOxiYWj!l5214Rc(kP^y*!U> z>R)7&Rz01MHZoeIX7I=8@RBmXEo8jWNS0c1VLPPxCrHd0-MF-ghF>Dr$rf~@icO8! z$*_Lp`G%&9#%J05v*ofM`Hv6wH>T+$uJ5sZn~}WCVG5#`5{xR6Ia(@{fcBNru7?t| zDanl4STUrjO_|=VjRP_{OHAgzM5J2K2g^xoH2&m(?zeHg7fEcYoRTt(?T+VRs=(eT(r{qLDI!Z*$-Poiq;1@ zi9xL&Ds6KOxmvc~!M~%OhkQZAHI?i24@1TfVvms7rP?;~Pa@6r`|%*paTpUxc}xR6 z*Ji*PsvjC}?fS_w2^3i`7a8At<7WtY?nBa+-hbjuP%$KWemV6gQ$MnQg>9@8mrgR9 z1R?u9ee#p)DzpE|?vLWgD1F}nI#stEgFnq}9q@ijyFime`2eR4ad{gG4HFRx^r?y}qj$^H9RH;C>g5t;QY?VAnK9P5jhXZNqN z_2BbKBwdy%#K#=K`?b5Dar<$l$}OZhW8$I(O9+WhFPQq1My6_cDk*EF=h-UPmhaG% ze-Jj_pQKxrb2n)KC)l)p#{Iq8P>c1nqSwayDQXk)4d*GUU%{+LeAJ{-9I^$%ksXh= zLY8W#hk&j7nZxAgGW&(>^G?_sj@@@FJ#MaA*9?c9J3}PzpkK;pKue@6*_Tb)4-VaZ zls<3SswOz>+}oj7LmfQwi({d#){wbQ{MnuG_Of+yoeWhlZo5t3n$r)m{C9^=nGVa> zG;0m?UAGzpfBC^7`k1-zu7=|-x(D{$W++^L#(4er8}5G{X8&ge{BqJKp}vk2$jU>I ze*TO<&VnWHZx9Q0?oZl!M1Poi;yBoO^Fdx;;@YNG_`x+#z|*fU)9W0pk8e%b8NNMn zj6UbI-#-SM^y>lVoUoVJQ{!jek~Q$z^Z%uh_943V)ctGf`3-edfWbfEuOQ|L(%M$? zabnyfkOJ*@96P3gj^*K`ZWrlB+U7>%TwdR3oV)v1zs{P0%!>D>Lmh~`?*svwP;~9s zPNlq>(Lm?6(Lk2-Ctn8}W+7reh<~?t0$|byA=k;~-+m@L=|7XtgZ>8cr^)p<`JMDS zoBUOTJZJt=;YZf{SL(0I@1T+D#=k5(r13B3Yi^t1pd26h{?^QwI3LrxLa)UihU(jya^17=;Ouwhd{|Wl zN9;8Ue)y$bp>I!Hwu4UC(9#Y!+%p%hoB6u+Uhi-;(2qQOrU*nMJv(ZovKt-aacxFAYGio2Te_&az$t&=gRiuXbOMd^Rc z+J235BkSjn7n%JJAz&(h(ujN#oqLx%Ro+uPF;8)Zg9m!nRivodxAN z{d>rsD zRY5=bmyD(j(=-=OAGJx;?^gxWjSW!4`U2ID*$DXc34OtFIwyn%NG(qt6FEZN)L*_P zydR0~YM#5#Y|7>2Y5H$@HaW!%c8G%MG;WbB1U(-)6{y?%l4M3Z|tk~NqS3|DYuN6N!)|~u%E>pj9(@ai#v$-YbBWY^OsS`m&+s_^+{dOa!65Zcq(2EC7+SFCuTuGx%}ZsSxuj( znV;l%YUU@u##m~32w5S|4?)FbX-xBvBQbQ9TF7&Ey6HGtAXIr+ef3BAlnU9?%o&>S`_Id9nSFTMg;^ zTVDmHu8n=`RDXN>Ffbo@kmv4xsFeK?*O8$OVCoAr4I*D)+^M7xvOM+Or=I_T?Vo%T zuscAzP@IDM*Z2b6hdkGBIOgH8%H8ogn`Bf4RU#om&CgH;H=KDe?6##rAl~%g8}Q3p z{w)q5eQ@9RzB>+wt4}?^YBBr%;1<}>+y+;D=K$D$=MlQ>qMM(Cn;&~ij#Ug@$*> znp+=#3(mXoIXUC0VBVhF4TayGasV`Vg6{nM_Kr@NdgHTj+fxhFpR3?o6Lzu!=-2)0 zH8|<;9jyee`AgQovFFdUyxwm8xc(uIJjWkHa0UifslI%+WPq{}>9w`h(7T~l1oK^_ za(sTW=QI8;XuqY`Co$rZJR~}4Y?rZ~^Z&egLRns#jptG@+^i2||DlgA#{o>|t{eI* z6ZF$Om|8=;*9|fH?9zZw#*-;@lnY@;C%+ zrXCrDm&a2wE7}L`lBR)9@_7VGz;zOyKVndC_~*|L({=sMvUTu3=idk4JZdNS`h@M> zA;z+Ae_{b#GVKMij{oYR+rf8^G2>Y1M3lie;}1{58w*!khm0816R!W^K`^jykKEtH z!o@2$z@*C`ft8KT@cI3>fFB)i0F%$pT@K&5VwQD{e!c2p<|PxLwnqBg)@*2n31`oQ zHq80}fYUxZ2EKBrjbsnq#P6oR0)M&Ju!y(_^a)dD!U}~z$7_7;(Cy&V&)Rc<@7nLL zX@>9q_6c}pk$f*9jdMCTPXpZq(W!kIc`}=MO;tizf%b^a&9SboXtRxBrRNb*z49;>bguyGZm@WIEkj2#M~N8(Z#g zKQ;k$d@w|tFPb(T7R|U1Q2Tu3#KU03@yA&8hk^FDuA3%k)#(_Q`rTLI7&w1##=RQp zzT=eB1ikzGE3OkrbNpZsz4w-*p#PX1px2h8E&BJl7ylMkJT*JkmOgUjh(Hh0vnBHJ z+L<#Y&=Wh-L2-7ARAh#Yv?!{{$dT#Yp=Gua$DUdkM#Iw4>R2X~l8tIqgM z(4ca)#mLr~uK^0I401h}Ie-wQ>EA|E4wETlW^gSc0}(-}zDc&h*jddit-+^}3=%mW zZ0AY?j*#PY9NGMvwCPijt32~FkHNzCJGqP(OtU`aKC@fK)JCRf$LkQn&F$c(e`zP0x)C>{n=;=+v{#01PHygXyLYsXE#`;nD%jA{25S*D zN8`qa^qcyxPG-__Cxk3Fnqq`BuOyp<9UREgIfjsbg~z?J+kZhV>G_&oD}eq`XA zE`=zs{5QQ*iC8yvsos{NzO{$$n#!zHM8t$5j$(#-_iQ`TgiG zJ`4SOo8ZjUo1TGxJTcEBvm}Fu^uC4<=mqyoJ=*fiedY4|;Kh0G!x#453eNrVUb^hT z7Z$#TUt4LQtRABpoeVIL=S(HraJ|T z5UEJWbD!V<9p@s^UBo#@Zfg2_#0lk2Z?pZ9>V!{MUIv}aq9gruy+p_(!T))_3r_{{`S7QeChj5@S{IICEh0n zqL-{{f-Q#kg}w}8zz>7&aZnEftHx&9gG*H8y{Upzsxa$vtX z^2amb{WUFm0sWbMM!`?Nx~D#O`eXCqqG>M(d)v+W!C$A0*NhtYx4%F17Ci9p_n=?z zIzWy2&wO%oeJ(CLzBKiInD^cqfke+kpl?3BFHAec<*>dmVV}`3 zj-ldTnzs^8y!7z6k%|BSAOJ~3K~#~TL!2Yg33=`!&O{~ZdfAFEB8t1(@qyPeK0>p>D{ZxGF2=0Wb#TTSVx02EuvIZNzuFeG@~e0RA-Da zx_7Zj#Z|nb?;_hD9L(4J<%`wW^ZN#KI>(hEzfI*W;Nw=W(R0R z=p=`RrxcAF)BY)w*ZvMYBL^a2prxZqBGL7?3VN5~xYLj4=;QEv!R9LHni)9HEf>vS zefXj$wu#e=AzU1g^NcxN!Zg!ruR}i?g-y>(?GHal{F+Y9=hkVEI#=JlKx56`ojYLlmo~8s@eVN@^W}fcN2}Sn&|N$XI2ya!&FT!&@@B??)!Us z{rJ}x>Fb9W6fZmfA|ua+)(%+T(heI?$5bKO+@Sctx*FJYKrbtJp3hA1!PZ_WQdMVwhf$lz1=n*n#%OcMjqJnWZ>ONcl zPWSD9;_D^<`pJxE26-;!GNg^vzz<$@to5c&{oSMR=&Or$uv?O1XG4=1FMjrlFIdR$ zpZ)b|xc#a5FtBd}JaEx5I{1PCrGtJnT?8HKYN}w?WuJqd^(b^_K8u#GgCl=_m-s{9 zUbXPpFFvQwe{aQlIO1n_iZYkN9shRTU!Q?no|> zoh}7CBFz8sIMN%N4TMCQkJUH$hZ%F=>Y1;I{i%yU$AcQzx4_T-`Yb&D>QZQJmnyvx zZ#I)dGe~o+AG1HQ_df=Sp4C7PX`}b8uYm?cqkEDA4Gu8N+=b8N&LgHTI!RDC_bBRm zah|e$-1Z)aW<(7+>1^&%4`HDg%8tHZzB~AvLlP-M(UY`HHIQ|dc+h5;1+W$M_ zRk&{E8`iyF_N{&3)9m~!Z+#hVxc^OY%$-65y_Y^75$G6v#?RHK?+^6M_+Gv|^#OQm z=~~?`(U0@T(?4ZV%TK=SQF#8X6+#{rM^{P~b#0%#ASTNQ+IG$OVAsD6o=3{*VOFhe zfyEnISwG6|e`4%AcrDVXPVUEn11);{5-#QlFsGj;Ep)%uIcc7| z-&G)k=UGj3{2dCO7fY&l17D0@T{8)(d0N;dyu6KYN(hObqK%HXSI+V_?2pK2Ui-)g z(DB7#V0-lO$HK6Qhg#K)LGpRmP1CgQZlE0xUjOpzu=K%M0+GIc{yXAW{=sVx9=E$d zl@Hu!4-q)WPuGSfnDgUH#Cdp*FMy5#_PJMFE40!_jNczNJ^C;maNh{+aijc%7lEFm znLv{|-CW2i%gY7*3~B2sGn_O&g|-~i9P!z>XeUj0 zLWH|^2w~2V7xezP#<|qk3n3sFk&@QzQOjG$_HK^cC>Qgp3MaYJSku~4sW#04biB4D zl3OokDN~rw86o6(R-#I>zN!GOcwmhyv)ZtyWpBiPnt<@E7#J~HL`nsE7< z`+j7(t-(rcp+-|y_TQLoYtG7nIu^_}?O7s=KPWqyIf9VcgxJ>epF(hxW~u5gH2+Zl zDPnUZdI*7z{ngZ$33evemtbsQ!OxJ*G|7Cr}W_?W`fHE zadavRdPTJ^(R6ircCH4x?B`}Zt+XO_|L1nvde|fvrXC;9=;!lY+W6*Y4)E0%t-pOq zsVT_hJPmF4eBXMUH0o0{&_nwnSNx7KiJP6=N zmb=I}-PavWR#&stOS>K1-w~puge>)xtoXbJ&5-A!e}wEDBzkdVdMeU9hD48*^FR+n zmMhJ3nG8&AfQ`3QF4n!Ca^>&HLmtuiQ0n~UbMhMhj@rMfAP()1ta6d`PjW{JncfXZ zbPN*BJl{rn#y{zwV6j@QG~< zy7DWR-Ulx)SP8prJrw@@{ewkUe0#}S7_~_s9VkEi+&f^&`%Q4@ZlmC`lMTA_#)sy@ zFaPmx5j1iG=;GiGf4z2ASjEJEM{`~!e#Bb3@CI&1K=gKurF#hZr!lU8_;PE%Ua_Rl>k_bM@`uZ?1ZxOwF&$?>p zSzitHH8mnAi^=+0BOPtE9~JvfViwc>B(+b=VID;PPN#BoV9-2kS3_q9`iG1|iZswk z)-PmB1iRYzlHW?%nx0+nUyZw;(mrU#9YUhZaR8YWsGX;M=YbefkdPMhn@0m(tasVI zF1+3*e}dFJH~y%sU1UFt&qrAo1i}c}M4hK&Qi`#Q+r-QzpM#jVNUn&1r9^`;2y|V4 z4l^RHmuw`u88>|z=!igHy{=XGJ6z3l*N?Z!z@Bj1&m9E%1^3G!Y*iHu8_)o^oqvQL zUluK24_`R{KHYzM)YZU)mrvBP4v)UH7|ue3x|3S7|1Klo(v$bm*SUZ8BKXPm&x-4O z@AJFB@#DAAWq-Ki75MW#bJg@>)<>wxzS$5HtiJlrR{;_6`;HwBzhNl(=iXQb-?`#( zQLjB}Yv8_1kJ2m~ZzDzh&t(Dt%0E2xtBLw|F(`k;S$At{cd_T~>VoY?_J=PWyp0rb z>;geQfAhm{1rg{g)-*$p`Wkrj*GKF3^2m#e;fMeGluWLws?x}AWDxk(w?C=x;lAe< z!P)A)go5Ng=2uE)$pp#CpP+)~#7IFwc5SQUgw2r4jmR>vuGP|J_aV(iJOeud(>$mC zA`#|s&2ywr$KS6*|D(Dd$ysvd4C#MWJ|uNr*CyE~pT;@$^HTOlMUdw{Bzh?t=PBc? z1$qo1&6C%AAtoU=7;j~XMJmLpps)ry(_hYPyV5kz&29OQ&mz%PklcezkNJN-@&WW+ zr=BH(+TD*GyjtKCkEB)HyHwT!;EGUKZb(m_?v_(=K*xoJ701C zESP`ubP?R&?z@wq|2})b;%T>wzkQrOl}4bayc=xPxCo{XEec%Qw8Z#HeFs5ob-pIL9UQlvKYElZQv&| z7wtxEezZmr*@`w%CXO0SbZ%pYsM++$jKPqt+czy%)E|7BFjC`4enRDLkX_dg1>MQX zPBs!8P_SFke$hF4^P&C_>pxMTcXDN959BBfk*m-FfI)The9Bg->2CdqHPFj> z?o`Rq50_@E>3^x3=OK-B=@j($FWDbWl1ZsHI#+bt#&yi?_7{PSxvb7VSoKXfjL`Z426iblPk zDIk44k*|TCu9<9-vDktDTDkz%qgHxr2efr`!l?c|pd;a+5Z&NKreIu6RE@^ z{2u=yJ2sV_M20%EAD)bj4s zJTHVqPZ{uI4v~`gLn-5OF=S?Je_@iCOfz}%^5dXa4}%83;6|iypAWUr1?^A;HC0{E z(N(2w`uni{4RGH@whZJ+zkU#2_|GzN-iZfo2R}H@Xz*Tr=N$O`%va!>hwlid9KDNZ zVSm2&bwDlhFj@dnZVIWzj+X5zqw2VIb99(w-z_T=Pvk{ zqL(+p&tH9GUpRR8QMx7n`1&W{uIJtniA0ZI{yAt+&)n474yae|`)oC=pFR%D$DRHU zXld_)ZysT5puaqS1$^bQ`&AG&n-r%pU>XT5=b3gPw`Tki+E(q7Y}y}TkO_}>ZDOuz z>jJ3LNtyuM#{2KnPzyclYAj7{-2T&g4u3YLnayoGb0ZIzy1uZUCq!LE2eBl6 zE?-6MOC%St_J(#jOfQu|uCoS0$a4W}U>fKGfu7YspD^W4ShJyBp@Y<_i3PtnbHJv9 zd&4b`2D(9@0}RIiyMsXg{CW2(P!GV)n-7F*&pbd^2Wp%zT_q9NRv)UWf*nQ;(0_XM z?NxBnr4I}H@^9}8`|WI`F8<#|4+`pbsvq&pIqM(v70sA>I1K48S%@)cdgPRufC%dG zdu#@mOx|1n?$tA1h3jX&A;zU0M-PNQpLL)v!yvb$r?=_ADM^U>C1;9sHPDZmG82}q zZh|pe4uU`Z$XpvW&gs2~aY$7!-n;u=PQ2tHFtq0K_P9;R^lEiOk_RNrG!Warx|->3 zQfPBaJG{5H1zNEmS&SW~hI##9aI~WupoUX_6dB5#W3j!K^FgF}m&0tz+~c~w2`L}b zJSW6CCTHQNjcJ&>$Z{Xj9M9pJ=N9r@J!mZ0?M0~5OVSNk{~@b+ZXwZQ>#uU&e*D}b z8t9@gsQyFs<+C|xpa?RZ?l$WW5BQJ9j~`!N>x{pjZare(+y5l4zjVgEuyES#0u7F6 z?=8M@f<^0&LGipmd+JTDoAU;|cF~pMceelTB&g}r8(zKWN*FM92dM4c3mRX3U8C5M zUVfYJP7OalSiAl%t`lsQKTV@Crd zr9Gr%a)szsMrC|@yt;K1+ z<>uY^-c*Kf1nENWv6A1KSs*!+T5c98h^!am1vQC%2vTCODDoXg$`Z|Z{&$F}fdAdi z;LaeY6113$YB%$sPK>69murR-2dNoD{<%SP@4Q&%xJ2VvX&OE@GMzsU_hsXzQ8Jkr zWGvZ)r1aVT=QWx4zRY~e)JFnFk}ZgRQ@hnN2d?J!MzlloN|E}>AnOSslk-jU5X}>4 zYiFOT*djEB+~H5{!tFn_4z*ccv&o=5oh7y=+<7t=iV$?Jp|JgJ>&CrP=8($w>FG<8#HV`J;&jakmu+ad{= zm;=N*$T*SZJY?JMykn3>ia{Wenae*<8>SaoPImq`CK=&4OvjU*@}1Q#HP;FKzK^M^ zy|WW~)z(0-`dVnl#byQ8QD&Wz&YTebUCIhnSwXtvxppOWdF1*siD!MX-7z6Gv7GEme9Pyfq^bhXRlu*1wqG>JDoTP(9o{m>B~uQEkmw)ed&nmJ@%0bQ zpE~K6=23S(Eik{*yqfa;w;v)JTL!T4^XL0sgDY--F^Zu6#J0oW+S3hnFrItRS+~N< zb!{TpK74R*xchvAVx0Zfa+v(92jHqx4upMo8ZLedQQ^C9JrpJ#v7@kWe{vrD^smpt zUFRJIBZo>|Ukp4QI^_-#Y{uu=&Cx)A?#*Q|`8N-XeJ?#PwzmsU+#8PCdkg(sQ?7pk zWFHuJHxj=Ge%$ImRWDX&u)4S1hP&A#Xn5ngzUs` z)N1eBvrcHD*K}1u2YnL~ofykf_jfttU!280i-aR2I)N|v_{j!t=^-%#x%Qa2$ny?B zW`Sy;ZxJN@01)T2|MM~v_}0NjPYCn;@9g-F8r>I8DyD(X=e1#jJP7oum?R^UAchUhN1#vK zXEaRt@*ai9nI-RUfY1K)9xS)O{# z82EpOZmX|x$&LSp+n!he=YMTaID9XeV1&hB=^VdQ zb6W?jT-yR`+B$+r^N#8&s8Q=OeAlkVc}Vjdk>@B+i_DScIgRaWT(lo@>DKcZGh$3z zrhnxj&FibG0m}(t9{T1Q=v>o$?1+AF$)r7D>{f%sqrE(D75wm;XW+GE>$;V}a^q;A zJ4{tnc|53J`S66WSJ^==e z-_PoQJkZ{-$q?A$_+vB2_&O{G&KKT1U1+A`wRf6w8uT8!1CYKso`ZiMFlKw`wdH6S zG;R;*xz%WWsks;bR%@vjo^3wFCrAW(S`gVjF8)xVycqwlg*T7!U)q>Qq$5>}IQQ~{ z;d&GcK%q9$^Lr}J8_dL@4IyudzTIhMbjP{CtW+pYEGm{)u5ZL1ob4dHM=ES1z49VI zlNW5y1kq`+g>>;8nO;;6}UGO;(}Cj~i6&TRh8Gsiid(?+~?@lzq>AHK(B>sksdh7A&3F6y$u zFnYG`WNvWZUrPN1gKnP6;F;U<{e^-^#TK_dT6a@FS!8;iTta1n;by+2`s|LjS?T)e zj(aR}%@8s@KPKiN(GzI?h5U|6?o81KIW~RvWV~Uxjd}~d2858_4ep2Sw za*#aonJYi9X7?-Vm!kCA`AC=#TOIk5V0h3jF9jsC50t>L+j8Q6w3#d)E_Y zekJBKSx<&JAY~t0UOzYUt=8wNL}e9$uDBIaiQljAHHwVaAz6TO`fq7|B7pB4!y~`^oIZYia~sTAAT@_$ zpNs$Rd04P?EqrUj7%PB&&E2oS@9siW;LN!;8M6blUp~!yeBOgE?Iq@(Ub;7Y3wD}uXUMKX)5gESqq!XaWmWJjC1MSNn zoCWXRai2H_1K+*38V!B67%l$YckB+(zJ3EV&08qSSIv1{eB)>M`2AqimyQ+m?nu@C z?Bp}W-+dbB)ZBQGy?dMB#=m;=_^$$LLsMf$`V@4!h>y^;kajS{?n)kn?2^WmEb@(z z=7fX`+4KM|GMzF6>49C_-6Wb#gnR?8O{>z7lff-_Z9;O;`6)IcM2O~4YW7IFT8?Zq z&!@D7nWj4)M}v$(9ELLS?aaaW@pkYpglwgZU0NK9>uSv?)ek7htGh*Pd7io(N<5Bb z^l6QAqIXu4q;}$Qn`xR-CMfkM%f?z%nbGu!E?rG22y~>oNe!kW;ubfkA;h{UuTmP- zHC2F%FzuAB2HR$Ixxgu*z z1Y$Tt+tz?1q&dDPa<)q(ru-O9bUD6qjdU{}gythfyIpaFSzN=uEKOiSViV%jV~3FD zayXF-BVr10ZCrohycj~Ji}e{RCnp)z56-U$)S&ta*;GHWed*aqwKojLp(dqie@1>H zj^s{3m=)6EBqU4<@|+M~9;BS8cedH(OaLOonP}umTPtGwlkO50$ZWkJbs)_8+p?YQ zfpB}OV3%C3hi#Fxq@Ke?qE{T5UPOb98m!U#kdPF|*6VI{e5GyMyNupuIS^!7Z2w6@D8@t?$Rs5c9i^D|sHOO>rBN7jrtGGSMbS3stwBHM91T$p1K$KU&7WGO< zb&^>iq`6uTXym!amP~SfO>K8So3Y*fm`+Yr*Q=OK>uT8^#LrTKRK`}%qZ6nM^4$0* zB-4Ov^YxXx-jd8gW_?wTjq@MZ)XuYoX11C~T@CG+?IK%?+T+KLgv-CVzcmA1H0@cq zdDef_`rI%r$@MzG=uP^-t>+#IwJHFMC*L~jKQMLLbE-edB%|+47@G++f8)rV#c#bd ze+7K)viqU7wgw)#^s~^jUed^4_peuB(h)o9`#Jp&kHKSe7K`g4a@ZF@|JD_csB*C} zgKDUT3jzpqEJy13p^Dac^*Yo*zn%3D*`V8zE?sW)GPWB)M|%3J?s`Shv8&@15}oRU z5a}D!M#MS!ukiP!ZTwMvdelRGJ-#gr@N_|SSJrWNS)@vaQ5sjx=O>~Yt zH|{Bt`BPzljQ`3Y%%hs;&?#u#eaKbLghc)g-#5wf75Q%O1gK@fc41TSmaVsm_TAD* zXXAsb(X1IP9RGvS2>1IRv0O6O7-YI@+nVXzUtu#H3O|RJ*@gTZa$Gf^I9RGE;@n+_ zgf!5TMEI`&03ZNKL_t(nt!=eH6d^yVPXql+Q}37Urn(A-^lyOMb2QL58`=y0@zcZf zBR}-QdvMNm&**j+YG0B@UhZEno;(i5@4lJ7#%Wj0f@fb}uFJ_kg#qs!M-NaFD8OyA z=E2)b*NOYY*N$}TNXw2N+}B?4*XQBqC+?}Qd)^Jt!yQj8gjzLUZZW(c{QV~f>+%=h zS_vmz{-}_5pbrL72lT81)L$2CLI7C2ay|UtBlCnELZFWt+8b^;&%Boh|NX8&855#B z^j!pbt`Ws~^z90HuC>v*&DKk9yW;aJtqqzm3(-wN-qYt`#%Kl0r4N1g;g`y|pt z$M!+UbGiN&Be#D4Zj!5;L_zJE{MFijAqI5x#~LQ4l>LoFo>zfHj7y|B*)gQKt9g!g zTPI$Ju2%)q&m9jF#+g_oUy#gv`W-m(f(LT^X?~EXi!9G1EvtRI_JbC+z58*)ENmrV zt4kY~% zYhNVA^LIYYM{Ln4&+c&Wi!SK}{iXM^nW z&TtWii$b}0Gr|h$gxofpVE4QlHnCajmOgy>JtZ))HAJ_{Q2wk@`t!V%8y1 zO*s~H*Ka7GfyKx5(0E?%_#Ofxncwq|XIQ>s9co8ml7-yl$zi}G72z>BzEXL}#$Y$~ zCkloav14>ayn-rOKSkR{`tez0c}UY-2OHD`60&`p$oycD>AyD8+|~4p+vOnV@{m}u z{*&^)U5P>WoR|cm44#{_(ri<|6nrOIc(P@17yz9dI=MrwAE@5Ud_x*m^17xx&rTbk zU1VIw&TJ}kG|}~h%0xTGBv8-G%&FwtkBlV~_HQ_eSLc}nxXUaqPe$ZEnVExKTNz6QG6Kl3!v zDHuroiq=B|d-s684RwBEGu2MOrI``*leWYUftVl+8_RT&IElNqP-D)j-TuAc@3_-<3;iB zKb(31d~(MT;@_xAPQmmIE$wjNk8Ts=6n)A?pkr|S>eD_A`>^NzpNswlZ@#-aGh!dL z=jO24kiKGpv35f%OndZA5lsKqgq^I!01TjCJ@eH7mYcbuDfvbHQfNLj^<(6s@DvJ$ z^YWt1TyA&lRaXN&d(^PxdwaZdyC*-NC-sQqicn+Hg<1EYTz>7(Qu{*Fp2Pb|@$-~C zr7j?m-R6$v?WNnDT~(5nStU^r{kyrJDv{J7GtNm<+p*bep&%gMhg_oPYohaV&+8I* zm8V%>bbX3J@H|azamS9o!EGPhwqoXa2L{W0+ySP+4ANF2zz~VJ4~2zH?*{xF%}cY zANlpsLhga?^O&F93rH`|KPMix9h`EkOo+nIU+;SpetX*-@$ZlZI)aKG{`Exby&UtC ze?c2&lrT+myock*Zv*w}{mp&15oW!#IHP$^h;zD!kj;_lbgT}ZtA40KLsUO1s7}X| z3~9zz%@l*)Yns|%2_|W%{w;&#=B*V$qVpsl>%}J;zV$UfHKwsm=hJaSw@%N4$aC~x zkd2z>u5Gl=ZB2C9u0RLT8~=U+^mEYXbg%C$TL+_0`lm2;uv=HS&2THqbp<5_z!;$g zJ6^W@2ogP3o>)(-fIr>Lpn&>IWa(6#Px13$xtE9b;x(52rQ%-}ouA8RO z=G&e=8R~`_t)sT3D`5Wh(=@F+mb-y=Uaxq3t3sRCZ!$y&%=s}GJjcK|QpICne$kA3 ztpGZfFMD7XESxs|W2brU_5nhm6OxHC*a>;=B7+Je(Mv*}>qHkFw9s@!YVm1jG0k z)Ah4<4I$0lZ^}SsNc7D3kc1%h_csdOSFC;mNOcUZ(<0RR#*A-;3|(Y3wC()*xU* zh}F!vR)Y4Yi&S{OsSR2>I+A{$-&f2zUZkArp)&R3I$Mj{+4_}8bmKfHJ2oGM=b<=q zJdB(#t|e;dkQG8c(B6W`YlQ^Y^-nhYrgnv!ZbFu4$8`V%Oku3ZCfsnxYcC;(OVFWh zTt6wvK+W`mHU-1&Z+}0FC2@SH%R@{71+?6KOac~PV3K%lXj$SS&kJs9RTe}DX^u`6 z9W=(xdy1x>U~2I*yA=9+f%Ua!gvt}cD*~zVTqica`pV7tCg;KM_~zHL=ksV%Gs)dI zF%4zL^kS}CZ2T*w-p((sah`m$85Oq;ki2Zi&yJyKRXIG-voou_UGGIJ`7L4u|xy`Pda2r z`0i&-fQOE}fA%|Y=5>#=Abxd516@+MKcbQ6L_B}diFl=D` z{z~}XHIKo{##VWq>Kgd$KAXc&zPz_S29fc&Y)?m?;Qp?tU8$?AX3eG017ec@}x@GU0_}$oSuF)dIu(qO;nqZXfqA z#{9*xa`N9EFm^axG}+cbfBN<1(2mJCIk$l*>R;dTGI$Z_7v3+KA*-uklL58{ItI}H z=luJ05FY)iryOnTk57MmK3x8fm&7%&-g@__gVR4Z29Dlu3;mW(yXtXx?)7CdNI#$f zZanu;=-nXMIdE+G>7Sm1`)4l_=lAVd4_`lGd-(DpM&lgm*iX6gah(*3`fv7( zPJmh!5a(5L*Hdr9`G2+P*|8m*@%dfgOXIiJht65>zMy$u+tMzQHW1N%*|+wAp#vK9 zF(?1}QTX@V6(Y##L!d8R(=3qYrye^7PCR@&ecr8)&4BD^u(+{V2YU%=PJR_1^4u2( zvHiCGMNnq_of9^Rud~hi*oQPv)i~#fbdEHytIi_N@ptgOtiJj9U;us5vh^_Pq<<7f zpr`t=HjW0mjzCC9g79twl@`2@Ul&Lx5>9x31( z=e#b;{#!nXKzH||r9OKs&n24pSwgVg%`7Q`R1a+;^bq3RWQ1wuCH^{41BQluCSnX#Y|{7yWCQAWS&ulIkPk zJP0K|#s_?w?@0}kUAkdo^%*Po*LN0)Zi3RWOpMj=EH%vKC~Gv#ZQBj%+4U11e_dp{ zzrTm(44-gD9G*`4{)5dk=s6JXsYazokUlOq&ZjfFFWoT zrkWxMrHZ`#gp0WAZ@PbXz3uzEi##tnPtongnQKa4A5;Bc0Ay&tUXp4v=BxI+H;GE` z6o}6@K^ghMeBAcMnE_;yMVJ|&`|79kcM)O=ND1!7D>4tc><+A@KZA8`kKb?5+4siOhyGlf6fzPZti{ZQf`>3FB z_BD$$j@=bbJk+2l@zRJk{M4DZKy#Z!J?=Pq5KKGE(E8HPpYx|D;jZW2w(h2U1iHN3 z<&*b=gLgNSv808L!H-XDyNRX6x~{1WCZ2}~`{n`&^!P}Wl?yOQWJJ%*nYlP~K>X@y zitN05_G+jV$k3wQn~>zT_m~(d2Y1M!^m@Y6mUlmw2RKnK_ohp$qV^O^gGT$o`?2lA^&&C&*`hr z^yXl%pAOt*Gq`Y)(eX~b&RdJuz*jDQ052=&!%CTJ*Eswi&EZ-gp2e@_gg+N3Cmo@qn%1jQ_Edi{>p^1MjWa0DEsg zR3o%$T>a*69)(xtugW~`CEpka2ko|L=I`IR;xTxBu9V^B@4ul(E&Sh4?0d(t@rAcm z!e&Ey!xqDgHanj8$cu~NM}K@uquzZ8^rekWVqaQcR}KIC*MbbUmkXOZVd`@B^k&jIk8M%}xAa&Rt% z`%zOLtbhhOqgT&mzD*r1HqLRe`pMHsr}=`%7mCd9v2_N$flR#cqmDqw0J?6_OIN^~ zzr9XSrX#KUcBfBVPOKRhgO@k9@CWUN+6jxFL_ zlhPUnk(g@xH3SLCNY|5^&N6eFG-rt>G-PYdIF_kzG=I}G^f~g9G-E@WW*D3|8jLc9 zD`b-vBYo@49Hq&awN>bl(G$CL#iiMHkia1QWN=JmVk$b5sEv!lj!vjXx^boXNw)02 zRBnQxMq^x_Q7)2OBgrXKSs~c8_8_-wRQnZ(uP&%!wwr-Sno*sY-6)<nsw%ckP;LWx5^2LPRk=^ z2a)Ky|40ox%?zPhBxN2Or-Nj;sI+Z@#_B$>y(rCiabGx|F%4IPjFy`3t_G_{I5Q-p zkPNeITT{%8cYe)tgOIT`vqPGWqW`LK*w)a_BAea%bTw{LH8YDKNLM$tK~qOZhAuL; zcq^yehdftId@|J|SED|^+{YXslfX=U$?@8@Q#7@yzf(KY^+oePA(%pT27y5Bx%jQiazFx>6%}HyUoNY`KT{_=La?H?g3CS?+rHPlzV3SMt+2yVNb_w#KUKk+y`p4<5RoAmDmJ!)$tz=7VE9?@y<5VcAk&;|PQI1rk zd5GF4?|i-h<540xp)*%fHra%d5omoBvN;WVrIF@&*9$QT`PSokn)UAZT_njhHs4@y z`ogd710x3aj=Jqy+dAON=`X_HH1gcY@yLE9?Xg=9fxn!2h;_Z$Z!L$De)WLvf4FaY z;F4otKp#mfj2|3(4nFHPSkv4l_k${I7}7weay%E0pPGX}$0LUHtA`6u+{dD>_dPTQ z&rkW?qww$fD-;t{C-^kb|8Vy!VxLGOMkVVdR&Swl?N6|nU5s27r+=sW?NMI~eR|Z0 z{VA@?g$xir727vhNO4*=do70k@~5Ikm%LI-$b@pFAM*O(JA!WS-Ac`yHYZw;LKn^~}QZL<|54{4%Pkem?WuC4pGLY`B7=^!}CDiD3U zdLg-p^uYe8xuXk~t!@&?dKr9{L4MKx^?)H64Y=mH^dFg|bF}fkYZzB7F>g?X+WvnT z$1(n3Q?D}Enq4oGra6Hre46LPtValQ*G@&A`^Li^hxLIcub7xYp|4rr3j3XYC(K#0 zrfdXy2x+cq;bR);Ud?lsz2(hXRyCA}0tsuN=lQ47G|$cLr6SQ)vX<6J&)@%uIFp*6 zKJo~3pY}NFn$Np#nxIb~vdV7GwC>9uoTc^AG1xwE%nl;x-ecGhKOG;L@KgE-$791GG9~94zBw&&uO!2kegX- zmqe(Wpc&UlH;X!d&Br9-630+)>?yT=LT@_{r$E;ZA>H!JnI@4y`jv0{g4r$-gKy&W z{iz^z&{m5h^E@(`9<)QqbBe7nWTSS*iD0>DA4C^Se{nOle70T`Dd%v=PT3HYe@vzN zuL%zsB)ayd$s`R$^PWYj`&(d41KkAO<@tDh8B`%Vt1(ATeR(|5XPe{Qa+xF~KdzHM z4Y^W&4V8C=O4YABezV<}>y*{iX%>ZRo7-SrdwVd5UZnq6zSj~m_CxQpsHPmRfBnb- z&H9u&Or1aM*K6umYh;r~ph}*jjgn4t>nnBqc!P+9sb}+z-!}bEmfLnMbDv^) zp3TSe{=FNZe~&u<@R=Wbv~w$+H;r*i45EvGdWBKxm8ze-`bt@E=dBlFxW#mh`g{#^ z(_eg==P`;7J|l1haVaxO4gxtg0H#m_#b0PzUspkO+6S6sCK-$i$uaT2SD|B@^j9$0 z=d(r9R;QuekJ(~>!Hy5wbX>|ejk9=NlQb-UhhdA914z$%Q60S|#>Vy7j3b7pGaqVB0+x zOtdu9ubKHO{Qj;vEJz0M%SoSvLm49c$=4Rcx3796bA3dIU-!N7`Zu4QyA-~8#Uo1o z!|d-aJaHUM*n4w*+>ft+67GKfZ4q48uLC;ai~DZ_Uq5^&E7&8(@{UfpclJB*r+Z(6 zx87SLPNDtj$sP^#KhAuW?O)|DnEkAp9i1dFlLRZvwXM3XWn;O}oHgqovc+8g}pE;ue_hW_+OP>J{Nv@p(Vn45t z`z3mt~K2YYM!J20fS~VeW%nPM;f~89i0TBJAh$6a+#9w z5FayAh$$&;(9S=K`h8v9ZzsM{Msex`J7*g*q4}t!L3nT&^>jO2=Z#zG%fv$SI zIKIBV22MG8Cpdi1QQiO{2EA{%e=cCKF!b4Vo5Aq?<92~X!n`qIvUw`)-@W;Dfwd7pgpld^q8u-r9JHwHCXYajneJlLso;TqC z9+@W+o_K%sA<&mJHcNIS^+A2}(~cbj6ZRhIeJ|5zEr1*De-j$lwdiv=@?7*W6_nOZ zI$+~*qCZm73j3yWDVQF#J(}nu`C5HAQy2XW1KrCTTLksJykDkCt&%KgtVnI6q2toV zLvyx^Y<9;Bq*sq=oclD-=@%r@yb9W&OCZwGHp$?$|26yFord>?%f7KUjNNjOxWvoz z--jPv^Q;J->vybz|AlDRb%lB~&e?n_W=_{;@qxG|dbu@dpI<}+U9=(mUxMbj?kj=# zf)Ali=VWJ7zdz|CA3(kX_4}%)X2a44 zXTj<@Zv9oW`#T|3NwF<#rU0n^XZ8X*mk`<3L8NR5&#qA0p1J&X|URNU1WhP!gvzq^1 zAk$^WF#qO3?i6PQA-rPWJ_MM^>}H5C-0*i*8Jbh`JoH>S-wKIN2=vf*>4@~O2D+`i zTN&DSyMKrKYZN)Gk=`*aExVlhFV$Pf_V<6&uQa2BLZZ92={K@}#I&$VD^H`ZHktcz zt(a6Kf?4A!q?q_a%)5{m6!AMjZ6WzoxcJ z-&GP3hi=AJP6%7*@?ICBQO`x1J4kQRX8Wjo$F$=NlH6#3OJq4A%st;;&ERYhmooP$ zh)ZXxTJNO3F45G)<*jCa*Y5`;~$Q9 zW`85czqT$Ah;bUn$?o27gH)HlLw5c*AaJJ0Es=h-&&v_5qyw2Z%(_@Ph0AImzV=1PM7lmlDk2kD5t}jjwi`7N2KMR!OIB}y zx0kMgbxrL$2u{Ip8rNL=!#Uoman9>sbp4JBX|C4SI2ZKmSt|k_aqV1NRzn=mw9B~$ zx=3!(+txU8&fDJ^@?2bxZM;Ir^Artqq+zEZdFppXx?@!p5Texg?e`DM`g0ip#MHlc514uJ1S|M{+|TcYh0E6G_HV(EtGX#B4QxHKzj$YFFIfjr*gTE^03ZNK zL_t(bS2saxN2e&4$4Mpufv{G|I_|gj6H+pdN-7%KzX7%#)nE9gm#mcUrMbN`NXs6h zYxilPdxPhZ0Eu^9q!HZycIMkJEnnRPjV&Dvd2ZHy?mmjLU|l3S_M#Zm79r0m_!^7< zNUifK@M)fNM0wu$)idW^gg&!*DDl^_o7b=_+dj?+_4UezfvK0c2jvqv$Bih{k%)jC~ zLFbOYiQoUNpXTu=COvu{4Q=QGF->hZgCsVH@^Tkx5z0J?J)CdR?Ir@**GR!mD}r%G z?;fLJ3(?%=Bi-E0eRHRIgLW*lhsxccPs$=r)9mYDxS_GKX{QW*EC-&1>MP}WVs)J< z_lj&}gGJt8dQ`kIZL*Tc1e;!6w?7xDu3{;=+>Nai(aRMD_vi5Q{tz)a_1|3oEqO;J4rn71FB7HJ*SYW8fngutDGJ%CD>MEv2Bok zF0#48FC_%LOWA}}_*N=$xx$Y_$#Fy*&umd&6r}fj3m#4Ocd|3zd30qO1C{plc}yKX z&2Z6Yb2J&#ezp6KqH!TlbJj&Rr^->7bpU04r>%!daZb{2Wi`;Vn&)nPlv6*c<8f$w zj_r3S=uXF>U8@k}mHwuCr0a%TUHblqGxYSRse$2r8=$5J`)xu}kgimR=&N9NXld^h zC{0ACry3aY28kX^_BJ%0DHZD*2izS^@u%>f;Y>&cmUm_E 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%0AY`!HCC6zS-T_IP+i8Rx`1@y-UnXb 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%0ACFpvP=iSPtl`+@Xv?)>l1h)yE%1AW}mth0p)?% zLJUZ|o8{Zq6>mc2zIKBZ*JseU%WJnJX53$BUDlHWRgm=&sbLHhEF=i~F9tu)W%mCQ=H35Z31IKgvvqHX?n_5Zv2|6|VYe~stA#`FK)cp@a!T`csouKW#Ae0G^m^uAO~MA6F3NBF_bM-&jd>Rp1{#*rkP>waQ(w?#X4dHrnH}tKYI`w$x(e+s7i&txa!1|9C zkp0n%7=9obcUgOPz~4NI>I$JtFWC=!LzXSg*cuO&A1y)Y?NOliH1O&C(ppW+AczZD z^FPDPdRq?a3j@AQI6mqOeJE!qgzta0IqOBTsaR>wy3(?X-Y$APKe?Ei_Yy=-)k+ot zqGa<;Yd?Vvy;|znK!tk!QBZI(|2J>)4JtWy@b5Am1)+F1)&6-|8r?dzM_9tg0^^nBY9 z1_A8pzeV?J5fa`AN_F_Q;2JE_%KpW5(V2&83zzy|g6w0xL2^`-ZgpnMwic*suO z-0s6%#JG3Hf(Oc3%c$=2Wo!X2m%zhZRND+(F&Ld1|CN~7VU+H62O-VpL-Dcjtvvb; zu&I_o!`VU>qU#96`Pbb75`q|>;d9J+oOLt&LW}s{6C!_l!`@g)L1Bc}qU+CZU5qtzTmV9n6aHy2H>tJkU>$mjt>%D-Rjh0#12YG6hmen=qS|vh4((q0E zLL45dE~@MPHn|D>3W;ZI^9WF`;;&MD_)wI3@?M15Ii>OU)TkKojp{CzLF%7?))=8@eV=p$}ApB?q$|Zy@C3g3+~E7I-8aa#VGq^Q={DlQ!fMXp}crpThpENIa+DXt)tGGug@zEeYL zO+ry^q@+dLH}Q+Xa~saHpbZB`&cwya<#kHSh$E*LG3q+@{71W1+4dUUeJjT_Pb?dx z2FH{2%H7P1>C+#frZBT&K?eodEznuB1Cd4iw~IV4M||tO{ESif@Rxt^SlfgtHxNd< z9I#3LCddEN5c#phXlZd_G@}kZ@D*l$G{9J$Ni*wOF*pRCIt#TQprzXleW`%2fVLB0 zhsOTLU!l@*N{LkL)i4N}b}2$hhHC~UdQ?X-MqA9AP4st&fhzB zX9@MA|I)M%vGVkAk1Zz8&uhiVIhk3xXy2G+c_R<-!84|P`CRAjJh0!NkAK(eH0(0W z6RDW0y+)nEfXw=gyof1`QurH|?jMfSa*B=M5d`{l`k>4{=nx!Rx*G1u=1Pb3s=qJi z{OL!R)sEZ(cOVTqDB>RkY{`B=01!u`q?x=8@#2)cATq7@9)d8e<}Hxyh^2PO1W$?K`)q( z`iu3yi6M2TfKf?9%Ef%NP}*sQM$dDxM=Uc1#@ zJX!csUv^aU)l@O~nlJkv&I6;a+ISq|KFgRaBk`rR4vjVAvAjcqjd;tZ} z2ASdWsF#aH?tm6`!tjW1gRXok$WALdL2oL)Dt_MR!*in`4dLNM7zZaHlHU#hW54gA z^=++i?>AfOgG3lu_nFb=bWm&3v;!s5z9w@QVcD^>yuK!i)8ETO)ux~wBDQq0F*glS z0zyc@+iQqriI9wbS5TYj({IrCAC5TT1}e>4RAz_5MQ8Jf{$qKF93TJe%%)(Wd$awy zvl$QRU=I54-MVQLuXz3U*q>J2l>3_4HR1{bFj5dfw7K?@R-(V>dk@Lt&sV+>M}`8p zls8@opLR=NMw&ZoK~uy@WW0zc?(H!7(qCi)|FJI*r(xx*I+Fb@K@=|$$NdoGhe*&x z_s|!F zx1BLQ0QY^pFJ&Zwfv5}t$(j#S=r=L!4jTOFh_qG(y$oSsgEp@9r*_tNUe+DU@z=mv zAInRe*^P)h3CyB+zKl!*t(vIUJc0;S5oSkoMfv*6powAEYnIUfLZ;t=IeG?8;;z|m z^w~jry`izi12O35;;HLEgc@Pf@J>pL=b-|;!~!70m2FKRShAyBR0QQ?AuQ}!#2BU! zeQMn51v|#yo)8Bfe0-l$$AsQcmv6_EB@WcoPF8zXF86uh5KZYu_-Sf(7iTsDO%!bd_F%6%>^b6{H50B32s~HD@!V&|Q=a$!@~n5Q`7&!hNcP_U zdX-%;L9fu`hzd6`;l*(}gLry*tzX3d!MSlc?i)91{{7utcPZ+wW$3rdXrd?cUF$K1YaGdaM)0w}MZw}$nx z^CR_lGN%0=`}e9aFfnHes6e2|r)&vPG%} zY|t-0oc|;ja6W4nWm0AGSEuBFIZ+ zr<$pV_e|J4MpgB zbqM75UcH^WCd#_J;Q-B>AIkVd(C*?Wk;&mWwf3u-GZ7teRIg|bXCr3o#4ILI6V)$; z6e{G=#LNYJ*pzf|+=p{LHEqz@dEQ?We~k^Ae>*HzB^d<(xf@mtk;%=s^S1@1z_GwZ zYM`f&CeRth@6QAD%*T{owkM!W41WyPArg*-^ii)R7A3Hmv_P1lB9`W>8384>4cGs5 zAhK;IeAKs@H=;(8+O$yn+XI_ZJ}H@UK5F+mA6=8&tDh!Li7rlrHUa4Ob3z|wag1`` zscSl-Sd-X+4)@RSUQ5*H5DsN6`&Q4WkG~VsoD9?7$tdIS<~YQxPvq&-(>uMP1er0% z=G-t>JLs)9f$)^h;VXS|nMU=o?5Nw|2!4VubXxf0#(>nZhtds1tWU!Xe~rN->m<8{ z0W`YMgQ1Rq7$Uy?oZY|U$5&Kv?uZ;~&2md_Uwzeh1|Y69@bb}tI* z!6vuoiAG2&!#7+5{G!d5H)gL_#q2?FI6=GAL8&EtrzDl}f^wr$pfY2irJbYdc){X* zl3x^+(Bl`&#RkDN7ZU(N){x`EHT1i2n)nB7IJ)$~Xh%4QQDcNVoajGQ{fRd1(Kk{} zZc%f6x0tS6{`$ETI;QvzahfAs>N~&Pq~j~q3r}qs&lY2G!j?+>*5nw!wU7RFz8m}= zM4Hwa;(bwtz_EUyis7lpgNKpDG+UL#mjC=rcR0(;fu#_ zWC_xI9?a{>l`Hg8fD25nAuA|k4P z7YlfHa)xMXs$)2tgfGP=Ad<(D^5)U+V*%lKWC+GP8`sp>4}y#!^t!=#_6rY?3%wJPb7f<`0n|C~%rdv<91jMZw=D~fbyYLvKtuqC zDJKdcc1Y#)!YAPSYB)pd;FDiB=OSL~VoQnBa1laN#1T`8Q;A-cvHvFWww!{TLEOb< zPY(11UYLE~4$=Ln<|>-j8aoDpU88-HyW4`0WRugq8zBZ3sXj%wuxELn$;-&cN4F01hSz! zvf+W@e-||VpH-YdJi4|Jkstr;_llUpF-vg#sDF3f>(pP0navikOIcfJQ@jAU9uFi# zPnH(yPT>9-Y9xlm8AimNb}AVt~?1X@~z1#2`At>8gp*PgXh_;J&d3M=RoO5FIn+2TrW z?5=VLgH8YQQ$L=Jf>I+x$U9PBPFpnN2*|+bgG$i>92V~O0?>;-)m>vR3*^cXS#1}J z-^-SOV|?)T?HTN-M_`i88Ae~p8{|ZdH$uvT;d|*+y#bKGJDg{hcWlO zWiyIjsymmLtZc|WN?VhA>MvPUun63ge#=#pp;YX3z4MP=n5vDsvg6k$&~esG&K@UP zuOYF%t956=gUU>MeBiL;W~h2MpUSthhINwfeHXy%Eui^ zWy}Sz-a#K9%Um@0QG_q10{frQP3yL!p%%-S8lhC057~4Db?nggAEa;W#xF;h4i-xT z=XWz{w0Ha1i%OZK(pw&f{}RuUyr7^!2^05#$mbrt4mx2nX76sq2$*8shh92gpZNsX zX%MX3heEU&Zb}&6w7ZYn>M!;Ld8;( z)SHSZoeE_B%%9M#~-Ap!#IrO~ccWf!NHswVYWx9-#XqxZ=e zyeeqRJH8+-A=8LUxp*K&dhEoBQ+5|5UhKJp%)7LApUeSur~67Wl6M!Es;D#ZZp6C8 zSam9)lUA4DgA!f0ZoE#F0#ZH1lF11z3a$8w`&hf8uc8Kq* zi;c4Gyq11O=NHS3^$uVRclp77qrl~ZOPOS_50nwuuJ8m%VQKGBc%(^NvG1DaK4N ze6j^PS=$t%#z8@eVJMb}$_W&d@kysZvmussbNLT{&fG04`ALjLT-$0ADxY*sQ-r+snpQOzT3^>E&(lu^!8=wV&R!7uubHb2YH9wsjwSOA;Tm>Oeku{(C#>Dn51H;Hn(;kj=pZ%rrS~+|{wv8Iu@MHK_im#W|CQskWUbu7M7bnwQ>-Av?cn?E zD<_ubL3!k$?5QWZF!5m*1*XZpuc1|wZPEz#^>6PJg!%}}Q143#8^y+evi6a07aqO4I!v}dN3W6?udELw)99Xq0wm14-uq9;$?{|nOtr@~ zwkho4_EmZxG6)#JGG%U9QxSixse8wP_PBB1<6m8=j)S_j{!9Dk_$~U-KP&YV6eu}X z_**{Fw9wvKhL%%{9XZq!Hy)AWmjZ zoz%U2&<3q@^4Jf{=Z!Gqx=&Sjf7wqPA;i&)cyndZL_;u{;#w;M4qBg{+<$NLi2UmO zvF)$`SqxeXBnP0<2Pa29N%0jqt=ps8%XWI~naCTlu4AYVcUHwdj*{kEpB$eJ5r;R} zm**43Qh%Hu>%+LXefOT;dHWaBr!a^Ul5|@R2FfI@CRN@gbNtLXyHsBVXf=%`Znmo6 z$=45&H-?i`rL4ZLi@8!B(gWLPv8zqNk|S(N!ri(%zCj=^nQudKybKio|5wj`hWWA1 zjv-EUd6`vCS0uCYYGtFK7XAe^46WYZT9GpYR$>zUHP7;+{mE&R#Clb|E=I{?Hb`z- zKhGVvCoR`_4qNa%_>lWmiT!@R>{Oe{KwV*8B}im!R$y7~{c_!nS}u{Pg|sz4+x0*$ zvQ@^JUYhq_>~nQDij_?qzut0uxEZ_aNKQhnHdnCja{4&?n37AIji^bA_n}jIQk$w@ z8*AB6L|N9PiJSEK@O6V?8CxY1`WICWX~CA6ylH#!mwo;P3uE6pR(2zu%Hu9`UlxTCAH%p>qD zwrQ1BpCz9ns(0x4`bIyFUuy3-?8AJ}T5?GeEw<_N+G+zt&pBV;5AO56O^nvvMrMZk z?cD(mbyd2vYgdsjuvdLs-0+Xv;>Q`Ts|BmSFVk2W^EHYa%QJ6tkFSGahR1_q_)CMd z(|K1ad3~U8m2U-FPS;)ot<15b=&XA}g(si}PXY3)pNbBQhVqV$-NWOEFqr7OoQW29 z3(^YcBP$-76K1OJ<%>N4v|7+PzBkAB!$^s11A` z!9;6ms#m%5tASJiRpKuL0xQf4kQ(|$_dn5nFC5lJP!rr7FWzPjjd;q2e(=S%t~jVK6Y=$=Nk_m zQUWP5sa5*VJVx+E5@0y1B^V(L*+}dronOKh?OwQS#Lvm}-rOf4lw54rbnqbNrIz%&`}7bG>Uyr9e>rqN+0B zJACJ;dm4D$%agJ@0t%yfwMOa`suR_{zU(-7Xc?PWsbfW^m8Mx$_qv|ux4lX5o0W;3 zS}+^wc5f{sBzY-OM`sM{T_R+KO+sX>6v(gTPkY$WR}0ph>N%QmS6Ez%oB85cU=2n+ zAnG>X(o=cDfjuA$A)tQF&^CE#o_b~8dfIUQd&O?me1BsJ)AXl(0Ho9lJUC7X{LOQ8 z!JMF#S=L8H%Uu_B?(8)C2=Ss-6~R2ufh;0%aqyx92n}zR^2PRjiKslQdr^Wf#|WqADeP8Q;3<*6fZn@7xrFHy6X|Lip!V zdx^S+>XdR@G{h=~4TyC_HL0_wH_L4~Zxk$LG-$sAJA6`M>`O$dtK0NMZT_ZY9kHEE zz`>5*Of&lRNaY+Qqxok;k}gPUbMz~KiT%mMl>=Ypg!)x4PukhpHKv?c)3CG~lTVtZ zwL^ygK~H=w{MkhKv6SV5VxcoJVHc=hN@+5J0*(d!ghV|;rpYOhGR8Tn3VLC66SXGY zCGg1@e*Eb&zP0UWhp)!T+T5?r^Fz#T+6fEE2gL1!P%U8Y5Q?55Yi;)8Xq*Q@j7{5+ z*riGBCy$kXo}CsC(cHVV=y!Dg*?6%LWygZYEfaZXh9VoYs%KrN1Gld@(PA8nM&Y_? zrM_E{R$V%lZsX^({P-NW`W=L9GW129?mo`No)gxodOp!9ZJbZn>o7$aQK#P|NI97( zMy&3yZ6m*wQ#?LAq;A&|H+$HcY1WoE+hyOU8eY76RVC<#>_qwp)g)tp!FBN#o{~$|JYd0H_NQt5Cm9kS733Tz7Zc9C+_pQj+`Z%;CH-_ zX)TJ0oX3_+!`M*BN*Gvl66?Hp_X2%xbs~H6Rz&m@%kxm{PSb zX)(>!q^kT2Hnn;EQe(vU&d$pw#qZjf)4PS1&Ad1kS_9Umc5G!E&@}5>kgN$_#+Nk~ zA`8ahLv8X{p@kgYwJOiKG`DLKPW(){e&(UU-f${b9n-w|`OIrBbK9g5{u!|8J!Jvj z8_x}2K%Qa%Nse);XEw*k-jK3<@X)?=`3>q54c~NPQe+IJ^J4vTKQ`sg$|aWg%uV!M z_7wI&hOJK~zp}Wb@X(Y#X?ujGW81S9Re(+~n(bR0Scjk=Cp~HKf)veMvbftjai)wG z@m5Rjj9<;_#dM9O$T~ld2-N5?21VvOI$k1l8C)jZvm-5$!RuxUETmnP60da4(47O& z7aXeLRdh42h#YhZaTrcnrT7vSs0AUZ@T7@D5Yh3ZR}7E zdB+>OxrN{GBChjGw~AcwEQzc7V{XhWpQ*;Ox~0U1*XC>Ny7Iz2gyiJB_0sEARHYD? zo3tm=j5m#9+<7PN9op3Ypb#07oxhz?mU-JO(CHZdyMhKVYfdSKF46B8YLUdw%eD{Ga_2Qy{MeAuLAIGm30_5bEmnxxhugpvY3t1SD zV!OlF3Q6ryMs1ymc9)p;^>C>EpuFf1i144dZBTXSn%WlB-~--cCm$D&i<^~>wJv>0 zG#|e=EVQaMaIatTh@O`3Bkb^zcj#0INX<70MqtXY8b*XD*tUnHh zO}*Dae+@^trBGqHOV?VIlnPR*FHX-&}YH?0Z;UuuIFN9i&pqT?x$)Jh8R z{d&#wz#S?6+o9eY5)zw|N0O*mMoAH<57*|H54|`l-RZH)E3xPMD4I)iOWsV+W=meU z8h3Btai>iC(87e$d`NAE>9QBz{_aumv`@pqBJ-_FLM%a|>V>2oh)xmP=C9Pg@^#T22!!g@ zAkAfFNbLr!dOWT!MLrS=7l=WOK}pJ)ZR%fX&|!J}Oi+q^XCJ9WC;_#Ccd&u}LQbZu z%`a&1jGyfqdf5nr!5AN4q}+|S-P`=gW=ryj<8)CX>z=d6H%HtU9}n`)fy-}$>XPVB zH_MuRp?N17Q{JHTM^4B%$!9!_aJAN}9hOu2Qu+82uluvRMmC6%;)O+hIFiR18di*q z4%;&*C6x883O_%;$lN*Jw%!%2>8y&Kunm4|6lY)=knDjVdbCDH*?%BwVjti2@ie zun{$El5P21?=ygdx5%yg6i&Qk##q-`*|N8Bg`E=*+ostzD#PY=NsC}weu<(OzEk~_ z*4#mqO@C9WXpH?*eC*JgUN8H5UuU&;yfCcao^s@k5+$iI_Ga#iAJ_>y;RIvnUJWp^yySeaBR_K zGb-sk@ryy#;rbYbcVA7mU`civ)o)rH`k#@zBhOM6ERo@EpYyOfy+SJATYSRXt6si# z>r<@C`W{{H9GR2oTs-o|FF9No(Si#(H)dKrR_`*E8B54(X)D5|A8{-`=k=w~2x(J4 zKyLed4IMkYm21RcGzu+rg{*mS=UJLm@%5lrL@UV8Oy378ILER#ED%aX=euZQGI6?8 zy3A;kmT}2R5mB|)#gfzgZdM<@?rtSwN7?tp(S>*if2U(34Bd{#a75G#u_~4T=EZ3I zn)Hs^3a`;_vhV97@mjW+a)nRruHUNAO0|jQB1Oa&&38HiLvnU@*2iOxEnOWmI&4Xb zqBFMZ%9$KAccl`XQ1odz(`@Zlp@or+Lu3n|*PG=mF1F?@nb_b9NW-;lAp*YI!>zc3 zHYjOdDoThkI!#}Xl?leZO(A|LrmzoS@SsdS>WB*Kou@X^YU|}Uz9Gb}7!1afThVtJ zp2bM3%Z&b$LhNQM{4-wXk|DJcDuEtwOwB0gm0@Az!yW8*v*oo zaJJLOrDi(cqKGxpm|IwY9sB$w+!^Q-Sbi2X4|d$VCnBwZ%(Ds`>8HrEP+rrT+}Is5 zkAJ;!k3&~R|BmEG+IE9I+H#lQCU<&&f8;tdcs>@WDCzl!@=ewXyl~%wU1S4X@@+K6 zslDJer;CsWejQn!@g(ZdQgd1?$JN{=@c_5)x4H`gt<<+pF6 z9k!qOYu*;*%2s9PtD~|#v)7Drbuo-BgD$<*=8jcyex>NwM0O7xJLg58?vN{UsOm`T zcM`vC?u6}QRlHASSA-%KgEk*{LRoa2uR>RUTe=&!eJ>&LP`AteS8krn79$JEb+hFi zTFUJs`~@V^^s}u=f{B+#9Xg7}o;>!V7Y4Snqp8H$1HM^Bx*9Fjs!@Jlud!b`Cq5X} z@`xRjkk^+zkID9LYotH4XB#hbH^16VRx5UqC@y~Yi8!0ny=;MAMC+bkYu7!42&fvA zE-^;B>et@7-Q{N3xgab3jjziM)v#o^mxM{EeZ^Ya zQl7g`RJBCTGbcf{f6>A`+q%=EmFbjCE4Xbha4$n&ZT{-}W-2n$Xt7u^n3rN=>cmW` zp1&kzEO)cB{Y^Y-+&ZQ?qDn+-zI3XgQNKU7T7FE*sVgO{({n`NibL}E;kkAm+oF-x z%dVZ|FUV;lM`JF_+zv&Iku&7A!%v82tItH5mjZx+-zN*xjETaLOG0YB+()fx#2h{? zR`dGTWk2Xih@Irj%+4EK&*)xQe2Lp@f0V=thBBj2YaM?iMmfpM9*LBWQ=b;X$K2+j$q7N8 zIAFP(`RaV?OQ-<_6u-=r)&zuLfIRWLaMH+%jme>``d;;4aw6U1klY;4x?kdOI*f}w zoQa7BS>zg!B|iZ5?pnhxlS2Db0Eg&@p2!rioFT`}^c?m$7bJokfbef5@&k6Ax8)kM zqiQ#bJUv$ozNa5;b?~$Lvdwtt>zX+P87afSb~4B%I=Qly*|j%WCf`P9#6vZux0-w7 z*eJ`Oak|uXc2aZpZe{!)e=pZZ)q8iAJfo>XnX^A*LqSv*sfE4L5q%&Hb} zH6lluMlBCX#a?7L+v+gONy$~8KFD;syvQk<=&fCpdpN{DhuunkI!wJ3Y2PAQ`#NJY zf7^+0KhX{5CED>JXqUQpoBI7U*2F<${FT(fNP1#>;ZtgQeeUCuOb1iD);?e3=}){v zw9D=4H|D1-mkqm)#1}h85w(zV`BdC+v2Cdve$JVp(O2x~`)z6-hf92c2^iofrH*}v zbfx-Hy;^(mi~K=k!XepXsAcGg^kOqPFE4eWwwQ8*{{rCOnvtlg#At7c^mL~E$yKIxYTxO>;Yc8aodz>m~pio|3 zT0XS&&M`RHtT;PP|2rh$=qbm+W&OX|dw2k>>w)a!EOzHh`3;_My(rg)Y&mdpxO5VfCNPQ_T^lWc+%o=xo z^GDwv%HN+8SgKlFme_0!YWxW_gN)o#OT3YIsM$D^zdlR(<`Y-xva5{jCcj-=7XIw zrw*?e^c8z?)SWGRzS6B+iD%|*_-^E{F&GbL5m=t*w}=F^8W6cofd;1hdRdbKT^y7y z#0s!v?0AXD*DZ1u(jfMw;3|;LyIWg%AIfznr|`^48?mpj54XpOxXydh{uM6O1wwAwl^znl!c}b|0i&yo%WcYM&&L~{O*_`nvA_x1 zyDV(K9VSFrc*S?bp9)o~&#DB<;cRRpDnrrAZ9G`mu?*6C%du0acDte4FSf7s7>4#1GWO@@~r#k0) z0*(#Wv8qBe`-{uo(YORUJwD^7eNo(4XX_h!4`e-&%*fAyNc6KS1H~fAaxVwhtj0l_ zaIHb-TlZvaO9i9c&C~NGQTH7Vz;jXQga{*KV3n3;v-~T*I-hxuSXI9y)acKga<~Zs z&(<@pPHKK;wh??vU2Xxb3G?)-+q|7poM_Xf1cfTGUVIR>V1wZ+Ew)-iniaWqcaY$x z_cE4>8v)MuOmX!0pB00DbendahhF5Sw2hM`YoW2F)>L-l!ImTYyvEx1VGGj2()H}3 z51ijK_!~G|<=cGnOM`As_TC@eoQMibwHvR!(U#v_YdvIfzqyA`>&CmeOjPvec_1e` z)H|=$A8ozi8cjGSXWobzxsH)P7}T^Lf3f;o;J6we?xpkDl9@=gR-K6DgE+Uq1-pFd z`ES?e`pyl*3(aAf$-l5%H zH&(edc?2zi{fG;h#ii$W%q~hn8_)@E-#i&g7@)+Zr!q%sxPR@|0<&*$ zmEroznD4K-*udwA02haly=FLnpCY-`9KURkpg{B~E&xhlhlZL)530iB>ERMC51 zPOJTFP|_i7T0?nxr|-0f&^Ml#Dct;LhcvRe@E+gf#C)>H!1#h{)F{_Q^$B!h5)P4@ zKV8AqHRhofbB`R*L1{SCUZka(uhBTLU)zgb;?%L$xb#YDmif}NEQ|czm033C=h~Im zXy$XVzci$}PCF%zje7)6tZ)<81OLXuou8%FY^iP*l50a#7SJafN5-RAS9P{O{`^74 z07<#YTKp)*D20f*&8N@Xg`>|^qDEu3&*XC&cT@U?#z=6j)Xgbpy2dWG zo3;|&Y#(p!+E^h}(cP7ucqU=$Ru^Ti;dWM9H)`zls;2(2r2xyNtSe4%{4CsR>qd#j zJfghB7<@PTpjp{H5I&n9J?5pv&PT`}jrfTL$bfcFO>}n0Sa_n|JDrXysMn<#kEoB~ zxCeFeLyNLm5YBbh#K($MEx4iJb;H{#=8Ca#sM4%A7px$Qj8XJt z@mWcf(>#QhJ-0l1vtngmV~FR&{hEwgwoP3|zD8!)yz9ut>9um1V>AyQ*KdY9{27;K zlTO64U-vTz!jLv)?Fx~ry1?xVEUPrL64#JbT>`}@mM0*4jXD#bR_Fj4K?Zz4p(#7_ zklVNaH1*3naZ$z^tCrVI=IrCQEs-PL{cG(4Mgm9Cv(Jx(o|8=-b;wBcyf3KsI9}!0 zmU4E|?9J3nxfnj0-a7h>Jai*|^IOlyJLrs&zd@Ur&b(9<9kDJU8*4wS)-cgPwkKmN zx_7AOL#7_8AE#8M1xO4+WNB&Ptb9WoU6?j1rSo`aAp$)&^V@6p@wQeX?0Vlb9RyTX z+XRkYf$}nWk()nM=a^_+evL|_S3yNLdItvI&Qxu@p|Hg{nEM^Agj7Btx=rPS#juu3 zlE&fDNxp@o^1#J;qwx{M*Cfpxa(DIx2fK#RlPp}f4?|2yJ>U)7?X|%^h-y5IJ>r%9 zQfB8vYqg&B=%0DJXl#3J3Hx1n1ieO3?UF^JdK*oZq&YB)Lpe3vqOvXKNVeuNc3!O{ zq2zVj7YqE$u6i)tew&mY@sfn%1l?9t+I+WIl7B14h5$7!6ekVQti@Rd^Gx+Vycy83 zV(=ScVeSE^=fP4VXqDa?e8U@|CAPH4!tB&aSd^yLJ-aZIwidZ&Yw{A#A-rIyxg#eK zV&v==arbB3woSI>C^9Rnh1cKdb6-OWqtC45Xw1Mm4RRYX-UTm?MPe~S52vj~18vxs z-;wO5YDUA3AdgR$KHs|z4vraoC6hkp(A7HFkeUX$XmIiK^@vT$;>U&F{eiRkrzLd* zAU)$ewYNikCAD41If;wh2wbkPzqiR7y(v{Aak z&2`lZywK#b_mR*JoC{8JZ4ne$a8@}uaaPLcq=L6=QH7-mzO<-8u<=dXBLl7Mtis~A zgfFuz&N5Lr|9LBVLB^=1F{0^7!O&RO0y6;Bt){kK^q9QOsd9GaF?WKB9n_OXf+r@Sb|3eQt zGl-8C!KwJHRrefy{!m1@#l>f$_Y>hs?1d^5#v7SNm}+P8LPjBF7N4v)6C+`bYR&aS zwiRizKRpZ`$D8Khh7IuFMR%wf8fKYY3*4e|!JCnUa`j^+2?eyty+)ey3X~C4SePtLEquCDr!iy%1u%`)hCW!`*E& zv3P9HK7%*M56xd?pEQ0u;nXnE)|SAzm9{C;Refl;`|0aBi5b6ta)zQFvV%UzUFjPA6#B1T)YTCwMGt->D&Mps=dyruYZ21L;d;})7{xwW@fCT z4kdO@*iNq|!!GvXf?EF3IK?#{70Wb_SLRs0FVN4{jX3K1tzx(OZ*)|5UfbEm!lto+ zcQ1Hmi1@FTG@a}h&v|JCV~Re4RaQ1jU>PE}cOpm`ex#I7y=saF%Ze$x@T>;o_m?sg zq!8?~Prk+#ZO$$Y$Ds^zC2(_Ch8xC7^Zc?A&@De*-TTREDfo8YP&{p{jmSh5zIkTV zIaoDzsMSCB2os@Jv#1IH8&^V`;LGEaDN|o7#g|zohIM4y2DX*$L(RLe&1}uk7BAmA zwlN(-0&QPsGMOfOdtTALUhn#_Vz9{;w?|Gj>6-8b#x`<{vV!GePe%PzeX%%0mTdUe zk~>zDZRha$ZT^t!V0`gQ;&w6(>wbM-b{xe~)U!j_tDR-e(i){OoJ$63CW6Ze_Bi@* zZQr*Sm4;974vZvz;^51hm3^J}ZQIZYrBMmv$sy_yv^6CZ5F?YO1d34d$RQ{}6Z3Id zxh`N@qc-D(aZSs&UJ5?es<(n*$X<{%Tsg*KKkO3S1|{JMX>R04TN1 z>_gxHzoT*4FYv$Tg1fYpM-s26`bcUUby~8LMWHiGAMcU^HeAudIuVTna5F~H@cI;* zLfnVJyvgke8EI+8UBJLyX8zjy0VEa)zyr<-V|UO3o+dFg z<9c{8xG4jlS1wHH!B7$5ecP|{DN&@qRai1>LIkXa@}3DDb)(E*k~De>kc$FaYnIkJ z!Q^#2W*=$>l(rV1Dpikbk8xd?qk!?5Vp&t{%l9T(Ic{{lHT`$DZoN~6pnSzPFR;t8 zHkTV!;lMi7!A=St6=L)xX`2uG_P)DfknVnpbr5Bo2`3~wnvX2E%$9C{d13BthBXVL zUa8f${iKqE>uq;hXFKiFUEL4oZL1pI!H)J&x&ZwBU=;S`{Y5uvZZN@9p3x7n&<{s;DgGmCYVhz@=#SL^sbx zF5i!$I8(QAIyAP12dKql=EVDTrxQ)KehnR>T`WKiDr#vh*v*e%u3bTS=-sK}>y*M8 z1Y=H2Jv_c6dE|1fmhrx8pU+lL)bUx|0PF9*Za?g0`T4}aMZp74kORcny-bvi(-4#{ zNfF=KYnu*Q#5@i!fXSB>?79h)KYvr{*U8@slkbwGE9NT;lMfke7=f3Z&JDOc2WxVU zd28b^;7lW-5@teSGe>b}R$Li&Lf9d_1OpuywR~nQ)ux8L13z84QZN~zHKEmp zUkW;tI2pN9%m1U6PK-Q$D8!+UAnSFHaDT1id!Cu0C>=d=smNQKGY*$kZJA95c~;CK zAyFBm9Z;8zaoEtC-;(-pH+h!LWLad;GipEUKi6nt`dK!`E|mMZM@q?IL}z-c>n`Xw zrghtv&%G&BD0HJ|VUCsSbOn}}kEFMr8L3DQ?tMz7n$#MxOe}+P&?BxB-^J^nG7t+Y zgDTit+W79SG^pnuez@V3%64x9L(Wm67Baq1E3ijhD9M^S$Lu{BsvZ|Meo8be+nn*N z5DoD~K)VY8J-+n~Zf@#m>>)oKs?O&U@!4c5--N0L4Uu zNv4l9^J~5ry0GzMsGgD4J0o_vbHnIl;Ry4)5Vw~<$ci`Da=wqy7H8E0B)PxJ~yAkTGjP<7ib8+Xg z*)DimbbWkrH9Zl3Dy;WYUqXJ3Y5x0J;!vH*0ez~^b~9%R?m|FEp(&kx^SAq(wa%X2 zA}0w=nykqWisd+f71lzk(mzKDG}Vh4(c^s|N04pp?+k3qt5>s#nL+>%X~g>OZ*qIB zJOf|g!dqoJ-!bdhc^;*+y+Pv}F!B#PhFAt^_a8WGT4IORtZt2DsRzasWn&qe08JSO93@l%f&2n>1JlmY9yj;;w~OQ5}4Dw z&c`jP(x(Tq^L(Z~=kZJGyKOJ&M&%Qv<(P+8$`nFAb0M?4Q|7Px+yXi1UD#_yCmZ z_lNR*q!-8XT>DSYLv1|IB6u$%3NVD+9CWfD`1sJnRtuid>2S#+>PL?}oJBPur&eXL zTvJEe3(2?}QvR4>JiZ7wLxM;$AXBGI%O!3wZ?XMqgU(d-%}*;|u34Wvt+4A)Fnx%6 zwDUOKaMMp${mLbFB(t`8sCt>Vn#XvN(}Uj<&H!rJg?9*WVC}3|7?Z-9)kKe?>ypZx zwIu#~UM{=a7Leoy@}huCa}#^4%O6}a-TjnmTkeQF1Hcihx_jJoX(lD0V_#}goHVE4 zj;dRsNQgQl#@mhn7}iJ9H_7#1;yCcrPL*Fl{JpUBMG&mx+f@6Pxg$3Kg+bcL?B-oX zmWCNn1!!6Q?fF<2-#wc(qsj0O_3G`@c?p z4-nrX>HcPcvJ}Pv-BPI7XCJ-=GxQQ4$Q2-la%|5^ia+ZiB#kTTwR{4Np!@e`9v9B$-E@@Bn=wZ!I2oo|#tx?^T3?*Yk|D2Ffhs zdqh~D!Y5);FgP@IeaXULtgJ@J7Z5+2R|Z=_Y@pv-bF=HOA?V8-7?t5x3t9qK*ZHM_ z0tGw3j(rus#npulTIAL1=NQ$liJz}* zJ9uRUot=wZWR2_O&3q^JG0gn{CYKrslnjXr*q1M#Nr?$I)|_tI|EPav&)s9)$E2CM zmv_nX2OorbjfTiyUuoA9Agv8n8|HqskmJTy%7d4EBPi`X`B3#(IBM0V{U3{XPId2q z;DiTSKnxoWJ>vfhl$~dWYg!6ZW?UE}vT~qjR5u`x)5Z?Vn2COR2;r#)C zSPMg@-oYJ(bFhE6HnG$6k^gRAf>}wLZbM#xxZS;OY`>GibjtSSL$PkIfAFSqRw$?- zOULyfTjs$}n5nnp8Ahs;G=yPLPChX`GG9JMXX?L$IJSVP0arzDc_$h6UL7q!>&*-4o$aasH2YS}z|g7Rsna z^U>RTRBMZ?9!5X@WdwG`!+i^UxKr4D+WL`4_YGTbgqRly99G=~<3U2~V9C@#6wiut z&&uXkpN4AfiM_T~!mgYDn7eoDRdxflFMKD$^Y~*C_Ju{w0O`Rxw`doyBQ-C685zrq z;7fJD>x00_prjl7PUWoG1M~$so|!M@x1n)CED%TA_LaNt{o}W-_J3RR8KqY+LP^Xg z7-Kc%kKlBEZmyr75$p|DMpY@#q%fe#aEqr9YH&7g+z1`#v4Yk7O^NSScl-9G?+p8K zoZ0XYjQa^(UGv0tK42O~_4)l03f|)^L5>_=qUV}9zcgg|R&vg0Yod46b{$uqubEq5Taq2X{=@yQN&UOK0{p{eIWjyXiW;-AL z>v#OIE8cC{rR{Zg;Poc(T)K2_S{bgERtQ6~l>Z=W{q?N>v4Dpml+3WGPxJ!%Z2N3D z6Rh4-_q(@%tDKbV+LQnC9sl@fGuS7k`=^_MX__RNF&_^dTnD%XTjT#A!u>)^;r!jM zSxzjD86be2nf@442L%b#`Ayhim>R*Ye81dB|NOl%`b&+u{{cl~Eg3-xdpDvCpi zrvCabr^5ey>Jwi$;$9oMQH3`pXLzzxaeffxtupt3sk#5)_Fos}pI(^^f09R z=WIno14n5hwWqpj@6_>b?f(i;h>6;2VJj0tQE zhfu!g&VP*u*B^u|$JwMa5G=&!nBr_sB})$~YX3P4;NotA;5r?YiM~sX=QePL{po+p zRJeH3Apto10J2S^&TFY0_|bv?mQ8UlKLbfh{1(XBFz>2PLbhP~+kegYRz8PBN?8UV z?8uwpk2u4S{C_(P2{3-WB0D%Ee&oM~?z=2G32A`}x3B*vO(jm1;TF_M{&RYvT~Pp0 zyB*l&%-#2Mbcb(QvG2d7KtVxvkXbbKf{uhB<11%^)|~!(g8rVMzjx5zJLvBt?(aM3 z?>p%4AYs?vK>{c5_z}$h9mV|}X8#>#^ZY-~gU-!1IOFDRszD2qHw46>YTsPSG)N3( z{nD`gM-5?@DW~szSF!h;o0&(;rKPQt4Lk2~t|E!0_f~KiQ8wr`oD}l4)^={+Hwf-d#J}q~YJ=q>>HCW$t^JVUv7-Vw z+1kFn98B?W>W1VD=B5hvzwLK@JO-(_$S|aAmlz~Y%J$$Cq-^RfIskp26%YE?gRo0+ z#o|0wv;jXwC5mnh0-;zvj)DUFgx*N7d%cJz}U;{jdsVSO$}_&*n# zeiom!hgV&{u{e~0249kvHqaqwUN9Lk zq{B(EIS`BPT#;<;V4g@Zowcg2eY#ntMNBDBI7kR!4!MG{$-PDA@vc%bGrTOT2w1IP zxu76nT9h>?pS`sEtqVnK1a0^8HU9Ey+8Qg|>BYQ*IM4AC>S+^`xCp)WGM{{oE&~1X z_T(yuEoBiqY@R%UnVLkYzyyq-XMQgh?B)P(eoO7IjnP*F5ZKHJSSJ_-%=d2{DNRsy zs{w-saSo;z%1fsJvz1K@7gpboSeUrY!2m`}8}9+7Oybm|mK<}_oOiveUth?0yjjXn z`WS*KXUq;Sho7zGU^+jBZQ5NWiNuvr0#~lxc2Il9Vp#_n87RXcKO(gJ=iX)^@miyr zPbDv%HYs+N0cpO+f(Z^m
B9PZ`FZtuhx=Z9!(*6Obi|Akij`$%Xj@ZgNU;j}=* zTyvy+BSxCR}9jQ?8m5k8=7{;8I8>`{6TZ3KfCnHf29 zo7ect?A@&v2f&-VdZzw(;v+3Tx??ON5SLl;4u-)Mysu7yo}}2xc~F$>4--#%0*X)) zgQ~)6?oU7#^<*cSrae~d#~43CY%&J;JH@lZDN2nB}ux#tczO%!*HqQQllSl>CM#?D^yV`RSusi2->v(1; zflKC}9}ADz+a>C2%^we0C+b{(j+kZcR+oj^J?mS03eWz_Efu=k!(O>SG;FjWByHb7KB1w^`{fOJHPfPjM3P%IRsN|z2Q zDi)9~9hKf&5=aQBC{?NyArM4LfY2m_03qaE(Y?>v`v^Y!yyN@+yyN-d7~+uJx!0O= zt~uwru4{r}SJ9H?3Ikc!$=iASzxL^f&@TZUa>z(kTTBE@0mz*$f;nAk=v~;YyuOIB z>-rY$q^M^8;;+;&hf$RVKDa{QfHrdI4&f?aA@ zUXWGo+Tzo2D3JH{%Q4wDso=Zx0!%i3Xx;IhvNForlq6kzKv17gBwmp?I{?L_DFXR5 z$&dcSzyAEOlC3cuY|Wq(n?CL?HF|*gRDVIkBoTH?nt?f}3&{WsZ2Hax;O;X4;~e;V zc!~5YQrIvUzQehEp%0%LwBeHsUQ!URzQNLV0O+~QD-V)qyXGrpT2Fz>ep z@35?p3ZjWV(08BeFV8+8boJzlZTTJu(>M?RY*HJ4{ys- z#YBLvel6I`Lv6uPZ}`Eh@zJh<0A=&-Ll{*~mBjcF5Q@r{#equ8wZBz1r0uo3!Td! z0RiGd^5A_az-c{sIQcHI=Ey04OHCgR0MbW`jl2n z`t^9B(%rmYgGIYe?=)*1e4a^2sqNys7H%6pc^Il+W6i-@)tw+(_4R- z$-x7U&r+k8$pO|~YT!)10hHnYb|$}42YgU*s~U5lih7_kbh>MbI@}7()+NrnFn${F z=*M#__%bLs17|*8H~;oN@WRXG@9)o66=Cfpm1~!}w0WgET$kGS?ply`9y|#q;3P~I z_-+MHc`-?s5DGjk%<|m_lp-~RJlrgVP{)QZF1Cnkc)XHrsRq&HJW#I+tOm2W4)=P? zCPC~x?TnKY0}!9UD6I=b(_J0-@fN$*C*pvP87JlgL}G{PI*V_bi5@&>S%%FKOVivMV#gFGuU?>Lnu+XN<^(e8Gt3W(uZxJaJutUn% z!ECtl8X!#{57qPWf?jTU3s$BN*G<{e9Zv(mwF%=bz2r8#)=2wwsOfHiw0i#c3n>wq7L{5Yny%p+~O?anIE6%pgtDNhmQe}ZIhu}jokLDgp2h} zGY5yB1}u&>aqfP4Lb}$Iu%HV$ zhHyUuz=QD!ZxTN+Z6|Ow^BDTINJ!y+ z(_m{1DY+JMDeyq%G&zUqKK zkeSZZh~PdS0W|+(!0-k>$h8|>>2l)wMD=2m(%0r5oof1b3Q4(tVgbNpuiPtd9*%*5 z2QvW=2J(TTXzH)ZpaoS9}z^PR1F_V5Qm$kMD{jrc2%8fPTG9l zsm0A~p&0~BeZHM*4g~wVIyyQgKHA#a0!8EMZ=TwCZLumXWi)PhX1*D?0Zi9qNDb& z-1058)T14f(gFm6zS=rtP>Y~{)FPNXC|i2IyN8h$92(%~<5QIkSp98__BJrzB3~61 zm3(b|G;Qn4(--pc^U)s?WIgk&ZESpw-~n5u8I1aXpn6kj$bhaDx1Ia$+nXuC?Ayw2 z<0e56_>^#_Vf4lNx_{L~qJzrl2|$eb3&ig4$!-Y{;~zR<(t4Y@L-N(Z2~+UXObP&U z_o5+^R129Tkm<5u*y4HYWxCLaz;^Cw> z<42)7)dOOf&sU6$PH>pt32AUgF;0R>d6Y5Z+O^n*)vFgNfRg0v?*wvqApH-o=>L$D za}rlamzo-}kw#h9;P#s-?Wkm~WZ4=f=m4vaINo}S!RO88G_P>L5engr4gc zm!Gvi9hsW{e(B}QgAtGtctNShls+|@$;YLF0s$mKUBdTRGC^`DZVw^G#2lFFD^AN1 z?L=`2IU1vD=Z9;DM_)(}`x}6KWBR)!besenwUCwN00##$bisSbGd|h1p3@SS_uamy zdJPi#y;;5Iitr4G0JDTTMtd~r-o1PO_X}TGNQ0`WvHbS!+kodQHa0f59z$bO;a&x< zA*6S_U8;|I_i)I$ITX>-6lf6k<#tOgf>?w%)e0RD8uU5>M!M`HRJ*&hn-gVTJ)*Uj zq);c>E+;q3Y`u;iCqe(P9^ftY%jw1_4YP{ zq0s`ML!gu7A|Wkpys^@tOs0UMYcGxKnldAPmMoLfF4;C^r)D6O&?0Vrbih%2rE-Z zl#Br_#&V-4V737Scdw@zPnxf_0*QF0q@ti;6AKK;!~56LPbVfG!kJE|`7egGn}NXA zn>Vi*uvQ_{YY<$d`|{NFd*)y_0bNQj4O+d+q{hEW9%Sa0#^Z3m8@j50ckjRW{ZUnb zRJe}@Qxv|gd9Q#jjxB@=iTLT~12yIfpCN@`6{%MIa1ab9rj8+Lp6M@FQ!p4D<`odo zaIPHLhU*`x*=^_mQZWf|z}CLM1--WprV+#F{9M{E5ZTl79lB(OKSROsp<)@hY6I5x zc`>{mxAi7I0OQYm@1TL;>95Wp*EZYv=27z9Z(+ScGcz-ex%v6!bTc3!Z35+3W?9){ z&TvfLE0~wk#LJrnO7`POmQO7$EjHkYeQo5LuViRwI9tTV#U%@*MyYWa_Q!@;>3na*82+@P}pAF>QGEV}0$H$1KbkXcZ6-_}V3gO=SFb1kVZ1=1XqQXT9|MUt z34kFNLFi+3hBJ5E#|@9rHp%kZAZM7?-% zEue72>j*zTzuUss^H+j64jeEEafTn(#|Eim?3HBUdvpO#WX4yY9b)xUy{pk^$XVgLS2McSi zMlFFxMl_i1e$mOv$uFBJ2@lvtuqY}fvS;gx0)(ocI7;5L%EtNa)W)}uj}Pr$2n5&ymBmccnKLH)y#T=2s9b60{yF25>t;E2c0F$%E zE^1l0;|EX8{x1*wcU$IR`|Fg(}ARoxI~6Nm;iaX@U4_<8Y>Z796`y1fqO5+p00~|^lH2c#@ zSe@XxG>$i0Q`1fX1}Fw5L5m1OcKAJi%-X@$y7GP0X0Xzg7WV<+iL(YdBW;p+i~yj* zqPhP0Vrc|#3<)i@h#@a^b#>A8?t-$Afv7Y1q^mzZiOLWAN6RjtOgyP*`{`hUypP*k zL@96(Q_y31JF%lDjB1Hg8stAR>LFYy9a)YQx@NAhL*eoxvw$L_SC2@bV20KGQv;f_ zjG!6%c)@8DgYqK=ds+jsvA(|kzLHfH*W=)IEC6NkpB>LcUxrCBZiB2#k)WNty?~e6 z`V@h{M6TgOzo~+6gH#C)T*BQK1$ua0Xh$(;!RB z)JsWHqSv^Z+S}uSTr#6$&1H}b4>=k$b)d1cdbj4pl~|}5Jcn*<+Y43z!OYCOh)<))r(@38we6hre=2+&e#nuVA7NKDuK_!h<+91GalxZ@5A5x zlM()lZ_?0d2zN+`c>C)-o`b~E48bE)fW8NFN5u5T4aT)A-&X^GcW@`bDC{MkT&ybGtL-pNm21n$vseT}LdB z?LGAZ?3xY`B>ir;!<*uw4q`xS_{2^+k6~ZYI`@V?Q@g|{pi#;`O<%e31wx* z-G!^!2ZB6SN*jdaz1Lm+xjJrKKg9`>&7_OLbKi!M-Y!)O?|0DmMgqHS2G`ScQdTE* zsag!e43kcN$hDlva3{2TThOI_YvE8`BT8furc8CZ+3TXa0jhtS{?@r|2-BX&Pr{>D zo+(CkyHvZoLS~m;G8Sgh3JsJ%qT5iuOc=`q0g~A=Xa-;ZphMTHUwQ&&N4*Q zIsd2A3{PccW;Q+JJVR$208$YjaGygjWtH<|Hvz{NgHm9e3@Bbfey|-YSsR>j`rYf8 zF`qMfB^|@oyv!kPbC@VKw-=PQ8#H^4e=|7@U{`~dtGOmh!ja7>}IKS01dZq8(H69n$ zXaom7pmv;;H*fyDS|&K1J;+eF*}C zV4BT#c->yEbXG3et691!he~#mYY1>H~30K>(?)<`~R9x!@1( zp(TPg{E=%1%J87A=d_Dz^vaBruDPaNp3S2B(1mIJ6Z)dZ84oQxMRqajT?|ljRjmoa zoZY`r@S(lpe7YAXW z!&}6oF$~@UeKDC^68-8(-?nbUrQobS9p5VjBQvl2*fX-tc6Jiq5Htk+cJkt}-RKk*i{8g;y$9F#t zG&U@XTmCSC#Qh=ZG;<8Vh8A28DxO?WfqV@c=XN55nlj}p34 zT56jFLV;>V)vNPftyKqi{Cx@j)pIyn0D6st0qx)-taV?`W9AOFbhFT+dmhl|egGV0 zm9?FfyTT|*90I%4T`NNkdPyiC5P|aBeuEJ)sx)Ye1P|H0<3P=wV+Z~`pZ??QRyF~@ zg@eY^ShP14UD?Z)jyw)-bhJS8FB4#YsIz==E^H-o;ozt;8@Y4+`m342Dg!Mot(ocb zk5c17!a<@w4>ZtF9J%awK^puvNrHEC+j;QAc0dgIVLPR?2#fScDWF=_AHF}G`T?Uk zwxH`flpzJ(+%k?Hr20B&xc*Ep;M!6u6QJ})-}=+TFH!k)-C69LKb`@g?kx0De!eKf zq*s%AV>L+b4(t3-cM5-#s0m?zN`X!&x42ktKB~V}g4Kp>j z$GBcSBM6E_{Uo!^*LlxQ@Zk!eYeaR;z3FKF!^eKO<5^m2!(A@i{sfi&W^eGT;M$M1 zxJUKuY~3GbaFWggY0Ya5tf~C@31v|4_%&Q<%>Ztx>14lo7O8v+U=<17Kb=-B*g4+u z!6&L9Q|Aw9s`+zy2?s!=%+(Ry+zOcb>y>X?ms{=x^mvs5AtaLE}i4auJq z-*ZF%!?gbR@g0!i>oX8g?sG45H~==iY_9}$)7Agq*z`Rtw7za`QJ2nrXD}_FgY+Ae z^^Kvkw=h94JRC&N=-+JwQz#8N1UdKO`>5^<1VXmTv7S&?yB@4bx7FUhr24Pq%T3Li z`>~u@mT87v;>EPK;{jc-`6SOsni4f zuG2RLe6IGYH-)S%rwzB2!BW^~XvmevE{v5v;_;}d_2a&KvBt8r3r1}Du(9KVs#=rJ z=eAN^^V;jt1w$q0{i1*ptw_q}t}!&>u+32Y^8svV^V=PPcZxg(pT_x54RRgJ_mfUI zd%c=Kh7VJe6B83v#@(uRZ)SPoRCkAO+r;ib0#fF>lCwvREH@7e?PW&1%lHxP>|p~_ zRae|LE=N8vnfH{Q-M`v^uoXN>RGcVcz9LZqAr+AmgQTn+d zndp*{5fbv-JGuK$EPxhwH8#GtL#DX;*eV2WMw#n_7n>`RkK=|}71wjlN=Z#$vh%;B zVxGK{NA^P=GH~=nZb6Y$;I0Fk+)t^fQIDhjo5ja@45%!IpH6+h;`Z@Yaz4p2C8dWaF^YZL+d)NixX>J7AhB0Gf3xI<-}@&oQu}S zb2U;7YENMeeaN%kvnOpx$#yAHYR=WmcKi14=bf*ni2H10R>Att8h*V+x5OE*7yoH) z$hz~J_&AuZ)c==&L5Hm69E)cR4` zCRnF4zfQd0!=w$uC5zChKdvCIl0 zy4VSn^47QnBpXXjU1!&5D<{Y&a$Uls{Pdh-ZXzm54`3Q*C~GiX3}&##;Z|QL+F$<^ z{SwlJ6nZJ)Y^U!dL&F{kvR$9&mmYM`$}Cx8y7GFjpNz?sV;q-io2%qPTSY4Z*1&;4 z@8ilaxp8|RX!m@)^^0XQxlrF>W9xUQvbT=8G>O|-d%`8TI9+zXEWhAQ?8 zjjGLM#4IEXZYJOFaj2zKo5Cu-w4rQ*H`D@S56l$yt%a=I(91ikuF;h9j79UQ16Ny` z%vm+xEH36=WA@(WycEg82~6NgBbXt-L(dG;{d;Wb#81sJ9Cix4Ldk{=N*Euj)S#-- zqJhA7r+PoY8au5X(-^h*QlZ4C90IJ>E{O4B0jk^-lW z6O;Gx7d>qmhL|3sm>3Wu2i?%mjjMp4(&}=UdnHrSQ*?mO*BtO5O%`E(|wZZui_xIH|-E11azKcpiV;j$O z;Ne<^p0WPx{n!EGC3S3@+xp8ZUD@8@8Qyb_L*DlA;CrGFo7HJax5*czavXhCDAL#b zJSDJ7-wa_DS7;_0;7f=)Pmkv-9zNYWUuS`QI))n;9vHM$5Idn>|Ll;U45|#kibQe? z3Sykl-dch0*!!#e;7N6q6wilz{3n`S>mHd6Q@qIP4)KrJ@{N$s6|(erWTqaR?t(fP zYijC71!R&kE3J$D39S->{lP)?z^=V7wOvPvo;Dg@HIlCyHW&Z^Bv>ll)Tbvfkm!IX_;1h z#^bvnmZpw3o)8M_6A#^n-S8)l78!iAxfsDqyXKdlHti5p)obNURP z;*>wCcPJ^zhP0egW`p)JT^iR1*W8~GAG%`>a7unV*VNP$he7#j#*1<4U#-yanh}X1 z9F}fb(@CnBUyFEaX2_a=YBqiNoqnDjy$T*2z9SvDK!CWI65%e-sR6WSK}xoEa!@Sk*rY0i~X@7}AGUF*Dobs%mmN?jpdX&FuN;c0A^ zbSQL53#h*>G529qp)Fg{{M7t?O5?QW@PLoQY3W}RiAbQ zTD7@a1#EQRlUU6 zcek$F;EQ7tKHu(!Jqe2g3icSpwpwv1wP zl=_q9nMg$$8425^k=XI+m*j8e{iP1^c-d~kum@Q(DkkP6sik=wTq@akyOw5TXEg;^ z2TE*Y>@O&_3Me;Md`Ypw0rC3f*lt}xw+&WS%8dWQJZq*$P{Pa*TyHnGtaZTT*f$%rrvTn9BJ94AYAd6`mE3Dq;h!>-;B7ku1L{n}GKu1?K1dbY|o z3Z2|OtIj2TL--&YV~b-RdrV^{o}*1HM4_=7+`inPQKdPR;Eb)<*`d_mee`g1xFcz< z@GSz>s{h%yvx+pxFsU9`$|rE5d6**A!jjVSif(#%<9b%#04oNs&FTH#1m4GLXrz@L zQ-}4F>u#S&vu%wF3gkG62sb!C{iYUW70xAp8K;on)8xIeCheTx+0#srp7;cNe>o@| zjv-~s6Tcma$R4vM#@N{^9v5tCYU}GEog6R_2@7N9zChrZs6Jj?OHNga|4RI#ynWIh z8;lRS6Mog$xaFoErGG$ch_Et3tQB~p&TZ#J+E~mlma}s64;syCU2INraj1!BQ;@c?p3NP`BYvWubG>dTWSgCRW`=Y^&5x;1-ORiuwlb5 zgpT%6X0&j1M?#Ta$RXb0G~cY`Q(hHp!4%Ksr~037c!#<+M8uZ2%MP(r^Z2cqVvUxZ z6zBs6C@G>h)t|p;U4>ZB;ap&4)#DEx)SOC-->-!}t?h={9{ttn_vBGC?381hlxBX! z6Ur`5?)tFCo(3M~4q^L4<5>JO--*+m*yre_p);La^lxqs!M&YMG zgtXKg*ZD@>pCtI>*1c zH$20wkdXy5f;kS)`4^%!G85#JFZ@VPlvt&f-khIES>kLja{oiPBT`ZJ>yT zTvdw_2~{ifHa{3RbFJ#@I*&=;EAHFrupHxjLeI2M&wbvBJTX}VcM)lRE5z6uK_zANJAyYT&7rF$%kSUi3J|B10RK8H^4-OaTKdP+XlK^4-q;Ea$>jPd2Uxf zb$sLXy0Ldw!-ATcnr$-1#ijyq${H=UZ`x;oI23@y?;be6mWmvhp8UmDqSt8kLx6uaH0JDTy$Xob$~oslA4i@|kV*&bWq_ zikM&ZCX%&u51wgW9T@D}7;*J18JJj~76#qvDtN7 zSXs&D{aqQSWup(#w1s}QwRRl)caQ~ojgbNKh*K9{qJ4+HW|N# zNV_l>q1Ymw-AxKAzN9dF zwTh61OAei@nTMA-_ShG`7o}gqTE66UX(id^y9fDWSjY0xEWfSS44fbh^5}Ux?++Zd zfVX^b6_B-}%<`VG>5SJ_u)NRmjdI!!MwoH*JPZOLvYAnVnP?JzM?vABu#iRI(e;G&ll9wVm5t+Hr@9ADkJZr@ zjh?%+kbdBRBlO;&P7*%zRp>CF69}bq%lXFa{DgB+pva3A5$5@k;21te3q=fmex+F9 zIxp^0uK4&>s_6#Ef`E~X+Ds>8o6`FFd^}%laY^e^#oT8Lhr?t} zRB6pA@P1sqHxNu7pf-4(eykkYKW*cti$XK-lK3vRSMZ)E4pE$5d;?Q$P1E9A?2?Ay znC0%m4{byIvH(64tuwNNonGI`2))MlAGIqSklQAyI9?Q9eDQ7( z%QOYwhU-1^hO6OzZO~PA%DnJYOtQ#)wbxxwXTRNSm6WmUGh@o33SgbH(9YGCZL$GR zddG9IW$pgcrlzH~g}p1wyUT=?y-}&4kk1Gju6eCka_VStT8|Q&o6^Qod0Xt{?5+;3 zc9K!Mxp6y_vG8Ea?jv{N=6m@sI3qR=;c(fhDg2qkPW&znXFC2&A4}Qn4OarZhpvaN zms=$Z%Yg|9f20W()6>&q-a-C@#q6MU9?pF8_3I1`qqwE{c;SZKhxkywgbK?wP(@NZ zI^?{TO;m-C9-!8U2$e0p;zU)h*~U_xHJpRn>Uf#ge574MKF49)bjI?vT=(RGYvhD9 zYt8r=UPvK{r6Ubu#;eT|!H|iOWh*pF)4=ca&{NE!Tgv7pqmIbk3HD^R@0n-o8yf3l z$BG)K`$3pfBO}FJs>ir5w^fd?JIGA~T)z+Hc~x5>xLZQ__Z&*Az08##WL#t^Oj%pt zjTnU#DJzkx)9(7WLECQ}m+ zrU_kwf~LEVb2&Rk2ri<=8`jWiY=}Q>WpYBpHqTPlV541byVpb z{B`sR(*r6T)za_hZOY%9`WP^j1A@-EwjNo2W6&sSzGzPsCEE73M^j1Cp+lLa6OH)f zi23~j(kV0C)nG^Lf(!+;pO`5%R4OPPa~#2NOQPJ>cODjsP+SUjUoZ#?Y;)K%>r@{{ zyY@zJLsQYLq@-t|y#1Vx^Xe+JZ9cze`mZi>8T{TWA-SU~{RC-2y^<%ID;uDK^WxHkdu3amJZ3+ddY_vW|Ci=NHJ1Uz&~Py}x~|33M|Mg+<2he}*@sFjGR5QV%{Zsgfh-ZYQIO9?LpZiLE|xf7ioE&<)| zPtF$O*uJ)swlvaoQkhRnoDrc-h9n{r_~|5$59?NQl}*lu5H%w|G7(NrKOr)bh}lJ zJ}Yt-4}=+xL3>)i)!ZhH97D;54Jrs~MM11bsA*V1l1a!0!1gqLf1_dMl2x!Cd@0Q} zrMt%mvA?=@IF8nLYD1!GcFr#)Ke{JDreDEkqOLaf*-~3uSX`mGC@57S*gk0sxeGNx z%L#48wd>P|eHKPEP(=@o(RV@mtIFy9jd^ickG=6pPpWZ&5`MBy;?}iPcZ}SekFrsr z1$Ox%z)o0qtwd+oMQ|_9M<~WcMWLLF)6NhsReeWr>RVWd)>adx%dWcz3cvXDX>Re+ z_Bl`I(!y<@0%mm*NNY-tNK7U>pan5j0|Qba_ktbXtg!LauXmP2G+gE%B38YBVa7R9HOw<-G-H zNEir%zCqLsI>@>&xRh6;v1&NUem3TNFLJ&Gv`J)(Z#OsXw`msKUx>F17!~b@xo6{{ zA3mtAc2>+oAjA1RQ+nia83&}dXO1%27(VQXiXd*Rx|r73L-EyVP0>&8Tc~x3Ye_c7yjU-UeEd$*Eo1;>8`T8g z`rN3Y@<)Wvzt8`h|G{*K-}eRGMzv{V96n!lTB8WB1jZ z1dGBwhn-(Q=4$$!#GpcVyB?A4Ybnon9`-H3lWIwIql>Fi zy~5FC^<}qv4#7odvT=9>0NZFXGrNs?8bcH=LmuQ~9p{CI#B*~~#$MJ0WN6rCLD$xm zcmhSN0?E(I$KGy`$GV>GcCjn+?|wt$k=jlUvP(H8z^zm->q6O(z;RA;PE8pFCxc!K zh2)!XMB4Fj4(mC`euR!uF}ar|X_l!&SXj7FgXu#V6}tmhRqXS>}oTNi497^D~YPy5j|xq&OTS>9_AToMQg}<>z3OqfX+of)Gk67&H3LS3kvA7 zJ-u3qM_y66l;IKd0W`)x|5?E0bFc23e&&SWQyJn9m0szCq^^be7P72|$Zm zH)n+PGE+;vDZ{?zS9!hdsAb7F*)&5~8S&aKp=VdIm(EQwR8i*S%u?cSlij)5j3`S3hclOuhMxyGzBarCEttFtUt73D%T(;pv{ttku3eF$66a5Vq8)_p z)_m)FnvBiaLk_dETlE*1P8c3mB8hOy+^9sG5Y|^BlvXbp6&lv*&`Z3As810zM)3I2E4eC5J( zY$KsK>Bfc~O2oUYN2EO-uP+Qz%DK0vhkH*192M>>fNm&wbR3l-6@2Cw6@?lqKKJJA6o@wWEYF0hAq%l@L7Q%R5;Q{{K6==ALYE=a7*x_ybMrpJ>BQO4P<_k5x3hx< zb3+*hS^|RoNMj)(VJNnT^X_y;n1oN4sso$>ng`(m9hXd(G(~-5hyW;8BFW?9irM<@ zs`LH4+6d2Cp&m&|{R+E?KEK6A6sI^R=TvXp$~dWIFx4(~4~GD%th}(#KrYh+{WhO_ zMnoj$Vb+PXzB-y;uSL?|P|+TqPqylZ?@D^8o-0#g{5r$5?QnvS9ji`c%!A(iPKU#Z zHm>KP)oTRWT*qf|R%wx97s^?;&jD-~h2WG@jjH;1q1QqT%pO{(H5Oaz^l|&R^t2$X zhrKJlweq}HOSn9-KkZ2oEn#nvO&zmn|WiS4KRUVqdc zuhUZ`tn6HIC`OpK$q^|9PGdd282c7y=<~|#3x$`0Mhl76iqS(nkop1fuY$_(S|PU0 zusBDkeG4KOo$?DJWC$ru>x(AdaKG@T+bCAsz#>KRl(4A!npaq~BB!gq!7!hnFu(=O znaNy5i(Dx^9rYzQ|ElrK{@e1^i>FV&L8>+!>F+{KfVx2}D2U}-l&q$?7OwCK7rr7{ zPE647oBooK0Lf4E)!CYb(7N^**l6WMb6WH2=NcCs@^UpRsQ#-5=OjR@19U1}h~}xf zSB3A8mZohAX9~}GTx@P>$;`?4U>1o^edD115N$L{($dasuIn8va?kJicvB-Hst^r> zw3p3+l8y`#R0V}rGtNSzBlAP>c7&K5Ky$T|#*<;79;&+V>%xS51pp-6>Sh=rYN3i7 zdP<0Wlul17>bHW|62LE@JyY-|Ty$72XW$87K zww6|z{6@CvYnY|W{B`eO3@3X~es5M;lFt1kqSb-TBs!iY=vZMt=+LkS&aXz3I9)(82*Vo!0{AbFMgszP; z37-XGMA%vBmNpCI*kwb*qgto8)4{-)A+&nShhMQz!Bor_d-PVd`%lzZ$mQJ~0(wWp zy)kZYKGbvf*VkqS`@&Z6;;m5FW32MgtBh{G%Q2Sy3V^Jt)$9CaPhNbJ=O$36>%vt0 zBVe=t0$li7L+V|blnOJd>RMm{MZ{O0E9B_`D@YMnK_ zSq2Z#V?V%COye{bPJRKTR;BnaFAo;;*)y)q#BYd!PFuF7)K<8i?bKY)0d$3a@u7dA zs$LyQ7k&ijBvYUB<5kssj08o5qVn?Wqpi2XsO>&MU4T=YF97V0w4b=X=mOm& zTxYgG>8XOzp9sr_-@Whug2jGqQYq8?KZ+1s-ZqI6^D}&X<7TT=tUc4?i|!Zh&m_8^ zX8+aMe|XT}0i}P#SvtD}V@3xx_+SvFa-GaWbjQ0&T%OMOP{c%jjio% z!C#zY2t%U~@TID2>Vfvp@74IKctdR5VYp!{);AM%1Q%*~Gu#d6xAn{vs7U+i89eX7 z4$^P_YI|gUwCn#>o<081(4cK^pT{R4pslYTMesB?Pgd2?fXo3NgT9rOIFPfTR>gon zuYcvr^#HD^?Nq2IK)7zuD2PdFBXp}m3kO><1A8GlPD7T6ugtl{C&NwXG3S20siV>s zRl}){S^U#6*-B}B!Cf)9lQ9IMDt!F>nHDvmSkeb-A(@$(RArVT8QC>W5TWFNI6+YG zTuwU7U2jI(@;F{hcZh2A9XvLzK6|TAG(b>viYMc06w%2De$w` z#O6wiFtbRFjpa{BNT8Jz6%>pFY88(mv0$b`2f7h!%`iDZ=aJTWZHs{V1HHb&Pi?fT z{b(uXJZ9c@@9+0AHN($gP>?52o;Vin)rtnN;8_3w^mZ{mO!&e`@WeRnDBRCt zRoUVA=C@>xLI!!p$tzc`^qy-NE(xP@LBt+Erm;{!SL>xI&SLV0hS_rqhrDOLTvrfQ z7-XeF`$2sT058tVmKnccGHg%}_^`b{I?+Ni;Cdn%KR9TPTpvjG25LmT_|CdjD(Aq0 z3L>YT4r;%lRDLZ6`{nbR977->cyICr5rTGe!P*eHVcFrdas{ z?D*+2T&8wLRW9a#WUS;&o}2Pq7491BILWA&A_P#2y|7u(;afX#j7rPV{jzQH)t*#2 zv%_u2s4!%nYjhrD8Vgeb>f8Ljq)1*r?2zaW;*Z*INH}}$u<&`ziVtNgi0rZnEhB%_ zP8pE_sAk_B^2-M{!Q79X(16LG34`@c8{fF``a^v^x8eMIK+>UGdV>&MS4^N8k~3{# zo1DfKoNb2{z)a35@J)=~Ha2O5B2@sTCNpp$B0cu8BEV3UGw>9fzuUPtfe35~3 z++>A_LxYJ?8mZo!MkSB^=3g&J^ zwo|I!pHQ9$NMk@Avu8dc>v1to6f(h{nqT4%26ijLgN#G`038B4i^MfA0g0T)h;1ns z6zl?kl#%R(3xR<0*3S+Cg%5mZXOHQ$-*m#{?F-pjH`-2yY0e4)C-&Vh!LnHz@yEYa zP=j-3>FbO3EXIxRJn@BgsmN^;53o)K`_dhT?O{820{WDcl#%+ggRdAfR4RaQo4SyY zQ1WQcna_rI=S*CS&P1Ap&8^A1Lwy5)(BlkMy0s$i0_J6dT&ZPU~xA6gM_Dc1zQFxWs{9yNmGd-oTVC=JJt17<0X!n#u+{l#{ z8Gz?kqf1yp_)4us@oOiCn5(Nle0E4u%b}>bSqsiKV(fW!%1%kgU+;V z(wq4sB{>SThOs}fylj)5T#CvO5fSktb&njXa_l0CEs(u3Mumzza$W_!RhVss=2iO3 z^TRHvg1{AlOD~U3Cwhbf+0e?+RaxwVfrHdz=9sce8e9ntC7po<7}uF@8Bv%XL?8C664~t-8|{u;K&C?54}Xy>70J(euS!7@afZ~LU+`zyxiQqga+4~ z*acTtS2Op#*$lY_%mLxHX<+VJXUB> zfM+~#Y~{7u(~O!L%%b+ii-4Ta0Libv@0r8)UCw)Mr_pL~H@`9~)0<^JhRK1eJ2%0m z|2x5x1ymKFRMa~{zZ62hT?^z-dLQ%hgiH}0x$friViwj^?`ki1S5{LCbsVT@YTE~E z2j{X}DFmc%|BR#VUEDW9?*ZL~G}D>G-CAA8198Hp^z--qQ*3cKC=}}4ZViXN)B)KA zngM46>c#)!W0$VHQP=eFsL=apf%Iwu0uL#pYs7hR5W)#QmIemVEBH^=Q2y#RLe6{p zIW}RVmFkC=xdAhXYU=+?7h%q_xNiF-5R2{HH&_#ZJaFK^xrW_I4grChyWj1-{b zwnI*)(=&C@H#b>tZJj{2sSyA$KK|)h^ElU2_v3J=wfUW}dl#Py+o!cFTT!Ez>vTto z@pD5+9o6-)&_|0jMj%Dp{m<1aa0|3+Z$s$$B_(^ZzX2hPvHap1w{YMl(WN&V*5vi< z-U2P+%+k`%L(_V}mRGKfz=SNbjdGrYl|_TuasQ2_09gVDg%)$vta#0e3b=(A2?00P z3Flm26NsHhK-e0X7;;_NpB^6*(+CviBC`BD+NpFly8rGeAd#@AKE(+diX3Pja-CG% zjw)mawLsGoHsRz8>&zW+Cp5Jvc!#17FO#KRyF$0-1G2reYdg0V+Xqos_9b;s4paSf zW#ulXqJL%FYZkwFa0VVZeE6{NXhQ@C!P_sQC*SxfB8=;i675=|q(idsH#9`)3zkZ+ z2HEXDl@tM+g7B5QznwJ>$nlA40utiGnyRX**G8}5*vrzzEFBiCLo}$eGJPq>FCD36 z$2`G?_X9x4KNfl^0iy%T%0Qu}p{>tY17sLEH1=?^vGL#EwkrxKq7~w~?jJgIXbfnl z#{px5<2~q?Kn@O{9U}{ItK6rO-N2FgPlYW)L0JR4#&i0{1K3z^Aw-Srs&JJ?>DpVG zDMyiS&HI+??j)~y|>VswXz5}SWjK}1Q9J@GaDJjHr!;vbp z)gqO#d-v#Yk|{I+t%;KQ#>UwJg|Fnn`#O4qME4)cby1e95iX4PM1m^^fG=Pz^a|C)ix zmQXD|iNlB%@%rj37z>;%)7`wtCFf-VLFC6yIC0rK6RMYhxxlfRLEk@e7%>eS1s6?V zO0M5mif3QE3Csirls*3O7Fq-jTZxG#);y#{psGl0BNMv>qi4j`Gvq(+tj zHGN_AbB}}EH9}wqO^|me{`V5f#u=ujroBeES9cDuvulBj zFJxWf|rw*IhXrn@^n zF?SKp{?T_?rbXP-*42#zLXsD?w4PXmJL8RvjGBR(cSc@b^F`D(c5qVU1F>7|?EjtA z$?@aL-ZVf(*PyJte0C}3k9w?7QsuTAI2eXNBL?r~=|=W8cjnNPS2X4;MxOQ5jLVrk ziDKs5f`R*EQwQi;bz1kKYPI-+io5+$I@9o3jy^Dq{$-JZ55rDAAmA6xE2M1P{r&s* z-tx{fXU@AEa955Fp9=vJ;Q2rSfjB!PA@A*<;`{E_ZAHO8BEz$-vuB!+ zU=~%;p%ZKr6X(|4_wEfm4Slqt?AxM&Kma^!FGspu<;|Nn3$btPtgS2j9K4~1egGd8 z6Bnm-;lhPGa-11ddCd{#4)n4Y;R-Jo8kTJ-cRq2uHJ9RQ5IW=f5ch4N+!qt|C(3vI zu4}XR=pMHHqMZr3`{XJfHHJOnfU7x)#XT{7`l~L=-oxq0ygb9HTtEOS?*b9Ez;GH^ z_C78yr(F*A_ECUG=HTh$=?Nt`;z59U3~`#9(&bZz6R_nyW7JxiDw|^NV`(Y6YrY_= z{x$vosG5>xXBVd6^5CLx)H$QqF4+?njiHXZV|ZDVT=P+JmK_Pe6HG z&Z0$r)3pi?HaI%6bRHZr1uDb<1EAajTns23r6Bg60zAL|6F}sO6O1{CJL|1|olw<} zj@i0l!BnyDPJv3qfUzJOYtW=WI|9sgkl#*bqDtii1%uYfU$i*`!I^qze(8(PJ~l3X z&j^3M*5^95N&iD*O7)|v_PT`~(9J17f*^A_?C|cJ1^ST89T&zMLTMDP%66VFrq;rs z+d`o8U`rLw?`~*^>*fSZUicpsO)geqMR0y>@EWI3Z1^6FfCw5g6NhleeNr8WtbY+< zMfo8IsJaZ|zv+?$Q(L>?QB0fkx&OEf+PYw)`*GK&xd}M)r&I~u&`f~lZ~Av0)K=-V ze4pJb+^79>H>uLL*Z*c4&SJ_DJl@Yf?3_BLGb9)GK{d(gY|nd0da34XB6n213-RJm zJfx0~zoLAkOYuZDEQ{oSswe2)>!G(Tu? zfukPeIyr2UwxDT&ZEpjY^O@WZS*56;basAT60pC^f;}=gszC;c;V>w&Ht$>AvRi_T zVGE1Ru~)JVD&R#2GqHtJe#5+i>yk=_7s2O-OmRq_e8ujQAUSg|#SL}mBh#dT2ZO}0 zWXb;$;K%M82b7~nP$!YeJ#*ss|F<_c@-i539N6%G|2uA-mWB5MC;DvXc=2{2YYF4t zzlGbTGBH)H%mt4)ZN@eK}u5Z<@bHd%^a0u?wtUz8$|A z#>Mes>9$x*O)MNS92_rmaZu~81<7jDa^M{6o9n0~7aIF5y4 z6UdkXMTG_DudsfZdHLFuhJC8PPwr-_s?K1Hb;z%ule@H`Auj7SaJM~@^B{H~Xl-b) z3l_hS?iU@*^lRE1_4i!Fd+zzcH`WXc3>!UN97BeZNBJ*CznUg}>thPg@eH1>elF{r G5}E*dJz2g0 literal 0 HcmV?d00001 diff --git a/plugins/api-docs/docs/openapi_definition.png b/plugins/api-docs/docs/openapi_definition.png new file mode 100644 index 0000000000000000000000000000000000000000..af04946b1987e4970b645bc0c5fbfead8ebc8fc8 GIT binary patch literal 298487 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

uF2#8>@#3*16@6}Oms^%4WudQ1vAGUG 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

jo{P2I~1UTS$%FY8`O zPj9n;s8Q_t>EW(#FdytBm{Wr$nfUqZ;Hi;?mr%4P%$5D^w@~%S!@uOtYoz6*i}#zO zxfa{PmRZYpz{Pg0%i`QLXxoPwD+*3|@l6$M{;aFUkgHvrGrdieSw+lWP^B5s^4CKL zpC$Z1vd(^Z37kAs&(=UfU|~(m3QEMHH~sAXAdU;3rws zMJpYRng^YWmLqBndKJpdZ<=|L`XIOq1#N?PELJ_P>b7C=co`N4){L0i=Uxvqv;9pLC2-gr>?h-v^k%$ zVK+sG6ic-<8r~Auz6)J?QmdwYas+-N$Hnf&`cs1~1s(@11JsK~N|MUc67Hn6y@Pkru@+a%oG@6D9B5o++8Y+TNEzg!3$`Hnr9^QBIPvjT30Mdjox zxF)!%8QN#7hv`&ff6^VlB7(qk{;{KBV&Eh1zr=diu<7ap)1| z-6_mTYnzTW8l`^K_i{&rMFe9BlytNp9LMl~hCj~2Z)j%Ng~A^6fzOWc8nvPOWT5Xq zd>6Y?50i4woG~H8=G|;xkBz~;E?MqY?3Ucr8+`sZhC9^y$} zQya;E{-Id40OptkrCfIH`#rp{LC4oWFyvQtrx?PI5`-cgwm-?r%u;x)EWagB7SYF_ z6ljDqHLQQpP?(tG=C7=n(;}^%V@(snA@Zg&2+ooXp_;tN4?uI&G}=6_4@yGWa-f>V zr$I@Z2$jr)8M!D8?D?35eI#Iki3++SiOD%b&Xytl*`U^xg)8vud_*g^lX`Z99%H9% z2Sa3oinZdRtOPsN^mi4046lnMOhja|dfnASPc9gVsc!<;FU~h+SxO+gj3WE z(auZR3{nzn$O27uhKP^okX2>&AtxnLD9yH9M+6exQdF(R=37# zvYTY$_E9;q5`H-3%d^7#qo#6gdYU-Hw2-vy(M9UUmhsjd(P|$~DW3|*E?v=_Yth8o zb>Bw?W<6s;DawbnrASIHiD#K%QkV*L^60IsYbP%`wHYToa>Vt;c=@W+Btzo`h_8;1&2SNFvM7K|LhQ zwU^4VqR`%g7c4YE*%pBkud$`QB$^|m-{Q+D6qs%Z!807d<0A{;!SqH8Ha;Dn-W5i< zM<%kIyAR$-4Mr#2CC%T1t9jR(^UJBFzD*nJ~% z$WpuXi?)*Y$Ql6H5|1R1Thes6CwtCbt~!BP zf=tUoRt90q1EmGGyoAXiOj$}E;*&Eo0vTjw_}fzk`Vc#z zx~^^u0GsQg4lMf*l2r8YXI?IlBIqo|3%_nXH@eX57#mkMkM=(iS<|sAYne~@sKpPP14@#t+?A#}?zK6Q&rz1zl`wd^y8PJVQ|oV72-k{RdJ6d5OG5jgZ~8%@$78Q>md z_cM;av>*`Cpm%+v$u?aL{A8wLqO^95dd74K6E2FUQV zK9e-x1QTdB=zVBNcu4ba=`8%$)!$hvB|IKv5hhsF+C?$^-dGR_j|*w>nBgv1!X2}P z{Rs8I{F=cWHXUEe64BmJIr&sB>&tN~lXNvj#bd3D9W4A2^^`L@Snm@KtqUC;FHW4$ zzi~u}%Xjq)x%uwY#_M^UvSUonsRi*ZU6LcXjZUNFEAr+-y= zX?p*1M2*F|j7+>?)@0~M)&om7;jE8a13o^@LZOsg!ybV`0$hF4*;a@E6@#r7eR;}&q+>h)2z^M}F1@Mclj z^YzZzW9SO<3qrSuyL>XlQs8gNy`D8FnDR3OGjY_(W;TuyC-@~Vc%U<>@H-cO5_C2n zZ;$|HYJ%!^a4ffz!WBSA-z+m9GvbU73F|WI>Z1B4G8x&O{#_^QUX>x{OYccI9+qSN z0Q{bE%|?1RiV`@K5pYE#s2Tv)x+TR>qPuz-uaCheL~V(xOFS-JjHB#524!Xmm#6q6 z*+>K=Sp3Wqiu2D!+)D!asrUTEhFN-m%Tn^noAdfKMc89(I$#6K3sHedbUcbBvhloR zn-v4|)K3g-Un2BH-E@s1Fl`iqy-Fd0;t~_)odz0D&QxtGk@=a>*$pnHhsRkk?iooO z8zB#eMlI&%_$hM>^&NAg$t=Yr;T!Vvi1a^Fu3(^jtkHY3AIk|HEJDBe3FB=Q@>4Q@ zFlkAk_7tJ;c!;E{O_=0JQnR@uvK%6UB-o~p)t8Au;IHZ2CHt!C%5GJ-)tA2T3QSn= zj+(y1mlTAIJa8RXr<(Q_i_LD-5iJ$*Ca2K4#1yp(ox8o2@P-~E9oW|-WW|n`Np)Mj zBqZBiqVG?2WTtuwkZ2~kBI58yV;3d$wBF7FUh-19IIZo?-7K=L<#&Gx9qiNZ1%c$n zx1F-+D@HWf!G`1`{Ok233E(iL-tbX1jgnZV1=_IWn^R6rdfQhk#_y<7vTj{6K0Eg(6#`+??ZZK>CLaio)tObIZZqV_S{@^AD5*#d$QO>oSsj%mF5Rio>1uc z*)(s6$+tNCXabFSAyy5<)&z~Zdyxc&Ga91c?7seTN)}x4sAq1y&e@o7{99dX@}Lk& zW{>E#7VCEJU>;Xf*cQ>GH{6J%XkdujLkdhUME50e<*072(bSOEnpN^km-Rajrt`a&}(UX#n zptxsU`RsvaA?e<(azX2Ga<7US>I2zUJ&=0)F$FFS<51+wP(Qc@x}cAH!~5k;Zva@o zexxv0r>np{E$m)m8$Y~_YnoF1j?2z(UmwUOs zml?s9uCf4YRk{!a8*oj>W+OMiEyoFk<|e};yZNPG>xKU8jhQ-8J%eYWJ_$NCwS-UNEeeOI)R~$GSC>o-T{4WwM59uT_09Q;<7uH-&+bc* z@Yw5udo97wjig#egzswS1;Ve*Ob7h<+*}is>3D`>Wo#<@EH=_1;@qowernCD6GjHt zFKssu7dvZO8BSO0}?fn(26a1 z1_%_6|8tM|1r%I(YnR7|W2@wgU`B|KK<8R{s>XFyJed5oAfuU z9_&oFVhbq8)x7=q(s#2eN{{$!b-8flGl4aN&%uLhkY!0sc*D04Brz_5a>^F#a%XHQ zExoq@ap8IG=V#p@O%LO^_vzuII`qRJ#mLU_?W44ary!NC<*<)}Fl1|4m`Z=Oz%w>q zaUo2w*ueE2AKOxwbrE+U)YEcNUld}iwJ1ien$ntQ_FD19iJv=zHabc&PRkR%3R#&Sth@r8C}v*`zpIlojUL5Ntb!HUtmg zM2)`e&tjx!10*2kE9>ogV&M`Lb;iXS`+oF?IHhoSXyRUlRG4#mv(Re=<{uxD?(tI3 zTCV!NRG8;jXqa&hbw7l0m(z9600-nY{_2>X`5QeSP?=I;OWfD?nJ?uNalUWuMvT*% za3$jEjazCn4sEHO85SK(>os<13CZmknilqYlPKXUDNA$QyA_GJXO9HfQ?RZ6_dvstjH3}3slEyLAFW+RBrdl21s-8wjBEb#<PWg9K z8?$FeN8cR3aCECTK6v*FKG}wZlt|v@21=xPXs(UosF{+49c(=lzFgMMN6K3moa_6Xv zbL;c%c)zNxuXTlWvqHLrKz@{C(>4?u!iI435fpyMM|3K)gx8UVZ8InwV4Jg542e7DO zP}Oz(`nb)OVu21k)-A>?SPjH;HmzcrqmF_OK`+wIG0^4i;34cFVj^n zfh4mIBto8!n7U=X9vf1#NxhvY2oVbP+~y}2r<@aXH-i+^m0g#sy9 zLdzWY=R(&!sjxi0B%d(j8=jVo&wNiYFC73-wj1ZmrQs`jx;02f*UV>OaXxj%8xG~q zivgnYJSVUpXTfuq*Vz`W5eBM=d~7YgZ(JB(sTZ;GgUhBx9s-T=(HFSntl{gjS3U)q!tzpU1>4jua(oJ!qIWy zKXnX;sE-1=Ha(qsXQ&1r{$7`c<14YLcdt*aIF+m2fDy7Aow7&eU|K zzg%meD4^vTb(PULc>6By{U@zPZ5@yIHlEjG7|*pJ5SM&Qf`ilPys^76jR4{~HAAv3 z=zI(=M3Wj2i5Fj~`vTqq}{U=UVU3nFIf0pA(l1b*>fMl_=99` zh1eYz`z&ga zt5oG{64lQ2%e%JR5cV94`&gl8)MDnl#i3E^6fY?c`P{QxbxPDIo35v$jBW4qXOq>cjK!pt;>7Nr z!WT;fhhn|FL{g)0*x*Sxq@H61t{9*)-AYU(O4}o%<}qAERpa59kI?MI9m1njqpl$# z?$@jDH<~8!ivtT&ntkuUO}P!{D}^ajd1X)yL0q2_qyGhpd|yF2>q$h{3QI>OK5}Q>J*@? zfcR2|d!;H##uqBiW}0SwU*sLia0B>_OAMd5mZlFpTuCE=W9_hUm1Zz8aTvn@iAj?# z)9^)k?BP&Dv+)0qJO9mMl!?!98DwYbXP!A&mL4S0rwd;DGF`zU<{8(#swI1$_ zs{^k31Q~M-gf&2Z(wh%`-j-^5LU#{O`H0ojkd=C<0o_2fl9sF3&!SHG$8ex+R4c|h zl%AX+s$Z=**g-$6DgL>|lo1`2onlP!&k6_?+JcIvJP~^R>21?iC}K91qfg1TV2f#8 zRscT%nsaLX91E^6EWsF9pCn80sY@!R`KVt&)>%PkzS5s!3t-Toibo*^I76}o+p_4L zO{r&*EA0-UZ~7cKOdJI-^Ihop@upLABlyXTjCvMhhbMYF_>=q6i|;#4Vze2d;q)(4 zKm#wzJa&*O(wbW8Yzx*HaT6A`Ujc#l%Z_v)86$}ogC3>mnHpv20uFOQSv2#hoasOP zzBAe}!o42#$BmvpEQTgND?Z93jEtO}yKYX{f0+1?(BIml3|Y2+%TDbwd!{f4Moa=< zWY-glScK68Foq5ub}BgP-1diN&vTsw>YaChn^yN7<&_``H6E1y$nGUHk@Zc0m6x_m z_+Eb?lzN0_f;|}#aLU3~uKK4cRkd${$k*9G{fp1M+$wm}fL<|QwU?aq!fk40aZ`4s z^3`VtUoDVElPo0ZCRo#+NXUg(&{n=b8fIB=Cx4r3@({-85P3)h#)KnyVq27?pj1Po zmI~hged_#*6s97a92_1)Qi~GOErLabZ_V`_TDgaR2ktW;IuRfC?UaEr7}&H>LT5DI z=pL|QbXid(7JW~d`c~K^4$b#WHKp4GY|;X!Z9^s=-*IKERZX(z5>;?bt||%f@K07k zbPO}$tW2>*-U_P73S@Df9=3T6+db5&*tc{e%&~JxvCjdZP$)ZE=#qw)H_Bn&1-!*& zhn7qRrQ=q4iooROLI8FRXd{I`00Nmkzd%yHONXY)fPE)EKtjV4pKjp7bT7HmSlr@5 z{^CM*e+$ky9CrYI#yafyPl=7;i0-NxF7F36VWmZpV%763wr1g8Lx>;8wDQ_Wl@Iaw z&WXeLd{&u`WtS0$J4b91X?jk;jZ91IC@K&pWw}+u@4_P~B1QB;G-g~`+bV0U?{4C{ z+l(YA{t})d|CVY-Yxcj)=(_??lRMJ@POX{eh-a}x*`RL4J35<}kRGKP{n`CELe4pJ zt@Mr;xy+(0q0i)8Gq)2wqRF?;QxD7U#o6G-n8T{X()SHa7OUS0J*p${Wbx>DQSr2LZ9g6HPtLG=-v# zrAV6L*~sd~XZHn_gS@ZAMNG*HA<{su`j5x^DIN)P%l%D4WDd+`e!azc%PK)=V%yzI zls3zrp~(-#fs#)A|`HcN;E*oZxs-#Pf})D_p{8hpLL;P1ga5!oBnTem{4jYRTJzfH^ZUI~Xbkm0bMs-s z6JF61i#OZA4BR*CTw|DaeWQ{Wq(@0vdAmbDZGtD$qugqJ0ew=?7u-6J1!}qHPGhPa zz%csR!H+J>b4EH4flzx%`0hIft4Trn(HUdi_Duy()$13GsFHxO;k3#2Kuh|wXZo^OJD6-^0gY*(+9^bUcHZ069 z(FTNl?Ftg+^={LsOpO9up3Gaqxy#T0qb!d1WMuZ3u!k`p1o0~B&IzJz}n?srt zSE7UUr}f`aZYW`H6|g(5?j*pwhqTKWh0-=ui?&dS-btLH%f=R72=B_niKp@T3-v9v z?;~UgS4VWQU+~-*A$~|TVwOcn&(txG-7+^-0>?ZiDgTJ$L>$A~dBnoWVhHs&QsHh# z5_#p9oczAmWWG3~VqdP9+b67pHDnKQ@!mxHD~47aCAi}yxUC&L7VhP0Loc1AXZeqz zmotvAyFuo&Ir}EqQyEb8;0*jy+FM`J1r(}#q5!PAafJRc$^FMk`*a)k(0SgyUBE7% z5I+(pW`LO&A>q2J8H9vuQV%3q{Pw)fqKsM}FdWiRFEop9_if$C&qTcDGsjIgOw)A=ulqNrb+ zu#+X@HBD#s{HsU)`n40}4J8}K5{xhRZEnvFdbTW{FkfdZ-uee$JtUrFV~VFN}rANssruP2t#dD=z{ptsjYX<|){!PjMQqE?i9m%z1#>Ka?LOad- zL($o!80KDT*Ys0I(Nw&s|2C2Iq3V#N~=Htsbe9^A+}wWeOTZkW)1_&4#NTyv2c9|op* zE}|pOWw#lp@fv;Yp(6lkS8DeG0zy5dHLN+}#pn0eh001_FbzDvj;waklDMWI-vZK} zsknUw(36(Q+Pj?nw6wGOYMSET$M8RWFk@_jT|eNm zj*Lt)HwiS7+c1&vV8Njn7InsNEb`T>SGA_5Yr3KvJDxpz7WsoYJL{wG^UW;BSAA3G z=5`mh*S1CUIA4W^}N?p^#-M)TPA{GsITvSWjeb#^dqWTu*WcLPocEbSO$8ALsBAr?!4E@Vpl@XoF~<8Hs8F*)Re0X5$$8sjTJC z+w(T8g0Ic(LSP6R$#$fC6P6uCsvTz*y2s45=+=4Sr786_#PDE9{%ci;-@*H;#WbPT z4#1}Pq@whhSL;F{vTH!;30^m>HbXmbMjLhhQTw`}|E#YNR^ z=gyteZ5IY^3aI+O5QlDF0KyRM?XbUYD}c82G+~&v&;-cNY#nASwg7}Q17hd;!+C4r z(JzmIm~180cc*6`0C7Cm`s#sQ0NQogQ4V~O#+@|`S!)b7KqS=u-Fe5>m*b&=G@~`d zzka^7yz&+pqYWmc0(EM7C z0GQCmO|JnwfPC=Ri~g0h0^{2_Sn?bR=-XMAg40+7UR+&;Ef2qx0AekSW;U&rg8>4U z-u3$`X4t%zEH}M2W5Qn&F}z;)M>w;*4MIK#6+pk!>wPyrxLkv>x(U5GK{Gp3P3H2y z8vEa5e^VVW9opw>0ant0R`e`9&#(1P5cDNy;{+|Z0p#(LCTRJ9*0{Z$KhxU>T0@f$ zuyVW1IAy!(%vj)6L4VNO*76;Ts}gdRCAO7m0&uhNC3`K6Qk4P8<3WjSZ#DxT_O;*r zb*-5`TAgY8g8;`Ez!3DtJhaxDX~-_Xoa>GlHd+9dD8FTm`K{k@&1~KOk5+Jhr$6J@ zLSPO08LwESuVJoc34lTG_?ZD%R=Fxx1G0v!fC+)k4gm71+_#pp04oJDtN$$h|L>Rn zf0X`zpuhi*(*L9Me;*dN0gm#1PfH4r1_K2E%TS_@=#q2)sBAw3|$&YbLFnhZLfGXQUt$K$Hb{oZ|wfX_0#x!d?Z25T&px?d#yw=$CH#x&(k2H<- zi&o;p4in}Fj8Q--CPc}1{K^`z>wpuGnb8Vky*JSgomGvP0LIS)QjxVL>GBf*u7CE{ z2r>?u8SnwxOFjZ4d;IT}$?;0u>K^%YoR^Qn2zdcqee!$1^@~u2ZKAc(sS_e#@N`qD z05qU6*ZKIQ$a6Ah-po{_*$@9^H-5W;txBBFd)?Qhp<#~z7#|nszUP!FaOYw6@nF?6 z@duV=!v%HESJImRQGi1H)0F_{S!=Rl(4G zJ=?ADr&2uR3>G&0oh52ZcWW5$WiBd^6nO&~O9_ME|QYBH$tZPo<9j zlS=$2mH7A3_kZhDqMf+GZ@g9ZX;R_Nr@-OK9s9JmEsO#8HH}dLcD;CcA+iB&tb6Z( z@_tnrG=D~>Qf*K*(2Kb*@GkoBbbnEw-`6pZgkzlh@j}D7FB7#ebZZu zVeB1lH-V!7zdVzU+_+`z(eU8Yy7Yn_bu-cOkzV}P9Vr~V63<(0lH}Ln^iN^*t>%G^ zWbGGwVejv+TeeVj8Ncus3OqsI1XP6NWK6;=?L#Ie-`$>jj}HvRrPB&koazqAdhe8F zQVvctO$Tt}Cg_^m_L$`vpRY%qYU6GAiymr*z%k#H*zK|d?~U$O`JVksLBFF{mYM$3 zyOX7WD165(=*!S<09K?GwafkE-wqqhOP6+ER8f<0#VEhoRVz~B?BoynU8H$rYV?jZ z8i%0m7b2aObt*f0{@!?0Ip?k8*)RR10bwk!&#kw z@P;1S@=eCx`1~l+*qD3JhlBE#R^m9C7MyN04Y;T;&e0pw^GWYfQ`#Ej92)v@q_duG zpeZJ$gw`fT>nv4~dr{t1*Yb>$?C9NdX z*2+L{WFWn?$2Iix1E2ZL{83mg4^|YPGl(J!et*ZVc4+lR{ByY^8MZ1X)pgNCDDZ*B z4f6kooJuyynB2A0cVpvy2)jOF2EoI_TTY)UIzN?HXn+aQXD>0D4M-RDPw(_PdGxsf^-JMEwUIbp-Brb!wbGgAgv_4`kd?Dl!H*{Z!IlU@}H zzsVb+FkzcIoXU!S`L7E<3#go6a_dz{*?ar)0Jy1oS_erz?YFw<8A9tiHH8QlA*j`_w4b%OH8EWLp9HisT|F4@c@cmo7%Xdf?zTm0nppHW>6s3+*kdREE)r zd`HQ_sB6;jm>c$|#^2_$17%U$(R^laSM@%c;UVSnMV4Fd%AvaWki5FoR}rG-m)iccH-DgpLVo%&a8L+ff3oR?&`W#u|PLj+W=4=~_XNSG0vTPL1}Z9=`gcZ$|2J56Q^n#p#~{ zO4m^_eB=G62PIcOE-}iY(+t(TkP;-sz(l!x`CV;wl8&pQYN*GRj~sDy?I7QK`xNJ6 zWdWu!hE%aAbd!jOvv^>@+XjzS>Y((6VNEL zp_^th_jI`EV$}x(v&=+5o*i^@ZEp|xWxYUy6yh4ZGHDmx8?k`!2Aw{wh!wTV){XMT zn6L8_nRua!vb~}zWirjJJ6zvz9@Y_wjaSKN?XVfeQz!!>F03=aLPnV`uu zRgT9|&8HNC|6w|SW!=0CSXTBQ{WYPMfB+d6ehdHmzvqAU`TU|WDg&Zlkda;KKX-Om z1r-{Q49?RB^K2MH%GDTOzXyHIGAe;znrEYRB;QKq&?;Sh1_#dm1%3v>0;O zjXs_l4h`+_hd+H0;b!1H z?XQNr;m|#{+PCkPMhw3g9M)t|^o^<(8s&JEw}wN8YpqT9+EPu`N0Qx#6Sq{WVBd-3 z>L$LHnhQ(Bjd8L;F6D0zZq)pzmGP+y$cG_mC5N~#0X{-j=5k!%osQS%4~m^W`nU~C z>VRWo<85hC;f8_JM^<>}{<69DHGwbC$54@+SW!Da@L1H!}W`G zG7h_;{AT$_OAAQ2W@E%*g$c=gJ?fEGf8eS1mic4yCgTdj+v1#@f>N&NPz+WC@w|r< zm4SDq^`PA1ipE^$;U-e0-f@Qj$e@>u@kH;i4LnS9rwldy-OS9emYe^ynf)pLb48)T z4%f;#**daQwIhFjV?nS>@bDdCe)$mJTNGZaB@1-Az&QJSx2wH#aYY;%P|6v+5q!6) z$_Cswv%|H57X+N6b-Lme5z(^af#BRelPqr{X>c)f7T52p#|rJ&Q`uW6n0^t!_x$HF zbFw4gU~{;EA5>TUc+q;+ie3$z{gYkazTMOp{gA6$*}PEuYKx9+oFV(_j^*Rw4GOQuBXCGT9UN4 zaY9>=m#5VBD{Qla2Auo)kyYc<_2Ob=G0`V<|Ni|)KEyqXeMAv`f!AiBd8ex+j+#)v zUfH^8GFq{(vFevY!*@`Ws+o$2jZbUyh&~Sb9&WuyBa3`SjU~#!qI0clGq#iG75U7t zhP%$Ws9xrXacRwj!<2;R6}ijK4-kdA`$0y?T1 zAL$V>HaQsoyN6e%+hn8q^}G8bBEM;69Ye^T|Ey;2K`m2hlaH+@`5heWo_gu?Ii zGY!TL4NqqbIXhx+j#~~_Sh~ubi}0)KtAp;c)xtX4m{$96Igg?PEvdIi&aC*jbUB_k zsoHz0*6E*jCsZ5*+`kRfkP`rC5UTbnhs}KN*-{H!1wT+rNziOj`@OX9sS}C}4jVUQ zZcB2$Xa2Pe<(gMnwCalue)efTnjINL5e@=DGE`%Wj4}YC*vDF%i|){~d=^^uqWiro zwWgUAie}>n>kXThoxXjm>xq=>N$>432l#4@Dv2>F)nBbZs(qYF*gM2;Gu`etPCYsu z&L|ul&LE2KeFdq0w#s@UL7{>@lR??Z0cjquBy3Zx_OqB6u)h@q-7HrNqM`5I8I)B0 zXr3)@X*oN@#PnF#^}>xyyToZ~&U>%{gO<{4Lu6(@!$nRNd-L2mp?v@ViTk1$T`v68 z49P*G(TTEzo-2soC5;tjj|^3pELy$d9C@9y59uZ@HW4e!fOJi(MJ4z~f-%x2cnXI) zYAI`KG=F>l)`-l}jv~>poL%Z}-cAy!JZ{8Jd@Z;pM{)yEiKW}s#-Sv2gsJqBF^M$9 zu+XSrWzdPVmHBbFsR&(*9~SNz7?q=631;mYa!s_`gb6I(#lmZrrS z;&NAZEkI-s%tq&`a3WRq9C(g?0BX}ew8CbJ*?$-ue!x}o{&>*YzvKMye2Y$yZ0dE) zmP76R8yZvn9reQk+_`Uy+uo$CU!+@^oUHn>d35KJCN=;g5QmGaay4}@HJgXKaF8R$ zyd~1g#g7X!4I8>R!6SLK&3i{#Q<7yhlfAqdt?=Rb=Ls!4)-MbEIFE$2*%SfFOL}rO zdk88(9p6gfJ=Ah*b(oq|<#<6t-sWmAX~{bORL!4~hg1xLAcDL4?%jEprw%I&tBIF# zPZ(5Wjs<3`@(O1S<8)RL@(Rk#^I%rK30gbTxfzNt~B!eY}M z7gYjoz=NFKQF?>^)`Hn+Q{|cRY^+vOVNk>Rt-HRYeFADKnlIFXzde|Z(g{1bGI7zg zIgKo*Zg%tar#?`d^p(UCy%C6Rl(0!d*{Nh!KhU6837+ z=#i9Et&k}kJAt(IMQ}E5xlrqhnUM2xx!hl7vZu$T|Lds*I62ha-goiG=_hd-ou`1cyrcKJdr#wBJ2e`q#F3F-he0=(AMTig=~ ziVa5I;cf|p%FpyV%9LtIk1LCYXaC4(nOa$lrN}VuuH>1^7A?)V*V?!`58l?xzxY=$ z{xbu#Ud{YAf05~^T*Zfmr>#4R{bjrVk>8)T?Lcpxs!vsvA4D2uBAf&c0odPGQtg#9 z!7e>^>-qNZztQ#Pfl#k~|9BEY=oBeJoeo0iWGfn^(;{2QZb-5Y#=gwND4|kRLiR1Y znX&IZMvCxcHZh|gdrfgJV)6(|jQ^yV^!O&g%W)bn=`8To&@v&M`O^cEQc}QSuC%IJ(57pAfIS)8Y z@}cf#%M2lbu_NY&k>nc?t5RL65JMJ8zk-$Er(6}$N~vg zL0%hCi<-Miv3W787`8-c>FH<>m_~&WS=<(+jpmf-M|&eHQStm?;9jLANZC1$kwEBB z8MED+F}o7!*@*S{<~IDK;AxxKTC_t?+VxiBjxGfQm&}J#tm#;MSDJaV?;ID6z{}dk z6Wr&6&HrIKJ}v@eKU2iz)`Bsp_2Odh6@uiFF-%7ZhNUHdwn=gCaEzXw9v!J2rz8W- zFEdpE-H*ACzV|tZ6Vx{Hjz6+gi)T{yv9Hos^%b`1CUExDzb=^nt1D!7C1B=uI!_jU zCO{F4h79yBierI=ui`;!z!ekP#H-btXbFnvA&CjP8Jaz9Y2F^eGcl-I>guK%OMQ2= z7IpR0)Fu|;aCz~YSza5=>62Pa@V3!jZnl9!FiTPA{xPVP9>#3p9&O(F0c&;ON+_6SEz7U))M`@KS`cwIn=X@9 z(z{M>skZ_r#5L(9)hcmXu=(!Q-nLM!(>~p9e4FsTSkaa|{Pz8!I?9AJlr@xqI%?;? zSRh>*p9ZdX!%Mx4r4*x@${%~Lv4Xsqo2CC0RsQAM@%P8+ zkiJekfh_!n0hV7bQBgjG$9)jnlyk&L7~=+W3MocCA{>`t6?Uz7B;oxm{lQ`)G-a@NTV|7p=Xn>$wf$u2*pI+-Jpee*j)`fv4c~&ezo~Gwk7L1#6p>6Pk^gj*}B`glV1M z#@r=~?>t%3qGPzt7ptA31OZ3Kc$al95ZP968~smrFiQ?RN~lA1U)a7*mGoxORx5Ll zS|GfbQM+F0Lda;TYWzTaC}n;RSrJKntBxia8n^yHVW_tm{I{|?VdGHb1sdla`OV0YRat6oao zlGfZnwK4@XZG%`=a{dS&dUbTO+|{{hyo{LFR4lp00vl>_or&ym)8cN!Y@vG_lE${x zCX4w{cGVQP*v1=gnlW4f5;)qb#Vw3xq!$O+`Fu5V82HteDBkGa>e4D1)Li5xF-y22 zbGmYAx6Ju_Jecb#E^4lDx!GA8l03rnv(S=T8bLxkLlxd5?^sq&yMdD;qP3?ZOzw2! zuOc%ta~C5JEw{2Augh@cp*OVtlgsJX1G)KKyvBXSeOtH}Oz2PqZ55Lp_ItjUsomE_ zHHW}W2d%Zuo9NZP%spk0`p=yW+{c|pVe9d&N*QY}S3gT@mM=6c!XHhEwu%Lf^>}BN zf->>g{18GVJZvsKC~8{sva0I#y-(=0jeGET`T<`O0ac8x4bvhe&t28{k&e%rD(ESa z8MEKZnR{w#sE+B!8-*>y9Qv37W}9kmMuRb07WP4Yb@N;-GkO}o#zUuIGTGkF8qO38 zidGC|Y8N~{ty|<}Em&kIGB6sZfVIzs4DS`e?IliJDAJsu zh6&j3HtsX(66$JfsK8TH^RI7FJMzhacWCo zsp-nq3No!YfZxU!F%TBGjMI9w-ad8xFhg|lmaPnDzeMfg-*3*$lhL}lBA`ZMWk=D1 zx_VegGkmF|cgV})q+^<4A=`RKs{<>LjI)!yaT)#Hd+5LZ31iLy7^Bh^+nWpa0z~~H zba7CoAkCyOl=O`NdQP@}a%r6m+uO)g6Y9V6>)E-M%-!#q$|^T@)tc8{t$sHOt9avO z6%Dq4Jg+jiw0u7i6x6Kr=lgigt?ur-mi4|)mzT;~d01WG9*Z(}vwAytZaTPxYeE!* zqmA6OSQ*}27uW7$Y}1z_hjYbjkYDQ^zE>oOtw0M7&J!Acx=lWJc}I3at+B#1#%QU? z;vMARlp!Ah)zzmL2VIXTX*E*7>_Gpk!@VB%E(aW5yELO^VOE&Da!C46yXdk|f}$RnhW;h3eJ@RIZWFGtEGM}WArW|US`sMZ#_v( zs1WYjwqL=uBej*-sD#jEzezp&9h1H=-77IJ5VF;z3O2;xY!+#rKy0Q}uNE1F7WWJw z1944UuQ$T>AV>$AYg_DrYpIY-HFj4#u&_FT59oEGz;x z>Is^PR~NVolEfKZ0t(#thUNT*f=kL5kCIr;YSC8LuSW*ZSG11q?W|~?x+&}Y%d+f# z*j8Uqb8{6I8n?`k+IU0gAE!T*8^f=4c@uYbn0mDGf73a|bjdJ6ja(}ci_Q3Y6&F93 zzMj7N{(8I0PrCTfDNS0;v`TK8%3kSlO$qVZ;sz4d&k(K z#x??KZ(}mXe)qxnrj(5XsVQVKb8jKD<;^Ws)mJkbq_x<6nWHv9f4{Bt{-wu7hqKzI zBp$7PI$J-dU|m(1ea#9V78=}PL+b5rz%`kW*uRBnvFw^vk>zkMi5jW2GTM*WAawG9 zow0hqmeNn3OeCVB>CsHk$TUM$CI^j$7;Uu>o1p^}wR=4sEe_G*w!s&^A7wS7c5R2s z9W5NLZ0q#w*8ANdOMhC!A?XQ;eWssLi@XzuMO7hp-LZZS>;6+^fszBq^%h%d!5l%%QCAA>$6Xy z{du|UeA9NCM(dN|jyrLb5&HchEpuAQ)t_mfwjCzZeqH`U3rU9yNZ@~cFbUkcatn2N zUs*{Ukw8$1llIuK2PZ{GZ8mm$H-}OFqxMmv%Z&S%!@iJPcn#$UA^{!j6Z{j5%@qrZ zBM`-+)iR-7A0)&>lpjscMeD2Q?HUNDpHdwk+VrM!xRr2=LtF3SJ#DyvUVJgLNvpw^jsx_Y#!NYoc zW*juW>8$6}0DJdqQ12HNm;EuzrIx=XDnPC0M`Oh_bbJX51L_3k;KX!&lgDty6ZkqD zG^{yn%yt4TIB0q4*SA1tqV9wMgxbA2pBop&Co010T!ox2I+7(F8ak_#d1|kXwI#t9 zpb=tsm9KQc@KC-$*Ze#zHn)lZ|9t&Z<>X9+Fj$YqN4Kn$MgLy%(~$6w^%a z^WNl}DJ8RLZ2-BQw#8iAOMpL8978bRJkdrHbIVB8D8i$9TY=s8=PV+LxW&jk%<@pZ z+%Ba})56*g*}FFBq_~sbyZ+Tc;3*+&VS<-!_llo$bZyhJlf#$wb^l4-Q7GNnK!fz2 z1dOXymdlFaPi)GDRxIk6bwZw*Y=@f6lyr; z+ZmhR?)eJuizOwn&Oc5-L7?}CVq~@NM-CP)cAfO z7;;%)8wdHDykGW}->MDku^!N>8Y}NR(d>A9PSepZG0YW=1FpGQ9aNhx;xDhZVJrP( zYwa9z@wj}_-ssW>rB=N&)^p?M4w<>$A=?P|5Va{+-+a5CIxv5KZpo?{LoiS$=I_$a zu84Hj%zH^MS%;Y=BtW$mjxM9Q!yz*x6<*_twAEWskI4$- z{Lo(HiVCUNi;92z8@|-WlVH^FF<;^IG?Q*#&0iK_L%QFoHUSGA$3v+Z5T(glr#;ih z%>i^$&962V`lj}^18j$mYXAGoGf?UgS9cy;3+jd+z};TGQRi9hKCm>CWY3S=0KHwf zqte3m`Q(@#aK(L>dw=0?h>3e0!Z3+RO3kPO)mAKPn9Os-_C@o>38y5ejzGe-cTP(} zCt#T&N$Y@#zb}Qx(5y%f(PAJW8(2feG>*h-EYC+?-|59aFb>BEs4ZP-OZWA!6D+N{LfyudL1T>xV`-pJ#}`#)(TFs$cMlk;bW!x*bG z9w7SZ$C!*>M|#~XDv33)4y`V3^=hOzBbUmfDWE{wZKYufu`XR{ZY#|U430?~rBP}> zA?q53>S+cIE;c2`Y2Gc|B$zeU6Lm3eG4SgtynGMYBuPI`#y=c`;1^N;mZAnO%FA*=8kG3{t%)`gBuXDjiUxT47YW$%>?itt$9GUyjLT z+$*J(h$A?uFUb%c)DzOV_CcG>Q&VkmYPdkH-PP;x*Vk%pU{`3ARu^-ljH|=5ovF2- zDAet2c^9e``qNRKM&^2()?Sb3(cki1rKpA)lxbX0d;X1>6K9jBFrXqERy=}OzvVPqbWep3H zH)kt;4(7?$B^ISyr=A0|%?otSEsqPeK&G)aOSk{CvYb$=-XM$xl+nAXu53Ts7 z$ylY_{w#(xsBJK4Utwe{9;^npT;kMURxGCWzw&1e;7iMHX)Zp9NyJ+$H{}K*NP!+( zqe~1o-dm%U$5}^%DH&o?maQWiXsy|jZR`lD`La6`73BVBx4JS!az;g2?@?cIvZze) ze`f($qp;=&rx@c*+H#OEmX#SddzoSAE2 zwIM30U=u76H8&h?RE~o1?kt#bUpcLubq)DBiSKC3vhmuSUXns}5Gkb14#f;$EL9TH zmMI7U4lz)KYa;m7zbVIzR=a**1O`ZFz5!!GUsWh1Gl&G&dzs%jIACEf=H`8UnEVI2 zS!CB2NW~$OerW3={20Fy@yN<==WY%u5w6Cs!ECY<%nJ_7K@ilkdOwuS6AN}d!z(j_ zwsVY}c@yarJ7@6WC?m^I&QGe-gB$xN?3a+|BP z2EVgdLi#As`K_zU^=L%R#lvy{UX|e1+vUgteJ&ZAT-4+wFGj?9wuT+uhz3x`W;*W^ zKFllG;B#G(sfC|#9n2b%Gjg=XNi^wtdfa!Xa15Q|7`GciY0xYA$cSTjKY0}#>R%tO zaY38Nk*eYbh9GN=6en@_$dOzZdS_@TBTe|miHCdoizySKN?5J9z2`u27 zwBelc@UA6!Y%#OO>6K@CtbK(q2Di64ph}7UG!r{fg;GPP!G{{krQzZFFnHiLi=#+6{oy}r%HRI21&{uf=aT05v5k7cmzW(mC$a5iY zKF+CLZI+%V6CGY_heP-jSuc^#%5|;>%G6u8KPsncH)j zY8-z#I8A?h6WC{<7AZE%-0js8II!!=$wYOk#(qm#?nO%AjjhJR{f0g z^^+gej`_ya9`fyfs~e6HIz=tz@)R>3X7}%u)!LqpPp`w)&x*hUIEf}d=B|I57KJxW zTAR&Haq^#@$4NgG!YM8?t>k>CD_mEjNpZ?U=L-cJnPKBqi*0~a#`|1O!@L?fro+sd z5H&|z3ngEUKLCyRyj(ZM-{&rL?Td;wkrBt)QSC8&$(L!Go^^%^eBp|o+*@t8T#2c3ejd^HLLlib_1U?kRT4E)Q3_7#42<=!(cT(`2XqF<_yz zr+nPL@{S)=*>!TQO+qcX@kiC>iUfFHFnx#jiR}Wi2@q|IZ=u6ZNml}LIYnK=4J@Cx zZW#YKVAWAI5j^!uruO;aN(o?(h z1g?2pfddl_%3Bnvf(GK6m8?BFmrY}rye)r;9okx@)NLxNX5d8X=#$784_aDC&C;AJ z!L9-MBl*feGZXQ^QpjYlDPT^bba)w0;a%~4^GbE3x2CYZ#M3M{!PCl5W3;gSYmMvn zJ;n+l-m_<&;L$n4SF7M%@1+pe)4Y&sG0~-p9UN0FA$2FBtzES+@4aFy^sB#gv?Yzk zLztmz1h%GPBIHgl+2SFgB0E+qgn1LHM*n0@AqyAPi!6kBq}q6@T%b#xqC z)-8s=5>e6D>tCrR+F>4@5~F`UZZrh$Vu#Q9LHVkmHYQ#ftQJ*vJ&Itqi)S@@QO*<1U2^OFV})sD z(^QvO$ktHf-Q$5sI(8x}6R}uC@}+HG7!iiDJ1U=%5ze#T6d4T5Z1we#!MwS7e;0`z zX&2IRnKs2OTWhR7DetQ6R%+0d$*97-zy%oHvRQN7HsibV=85V*0fCR;8SOYn?8Cd# zp}Keg5RvwSa%W1n@|e5Z8#qPkW^E#7U_#K3G>7Gr*$S2C+CaoVm-RrOrF%5GaZ4N!$}Fj9U2L4eRNTNtm1?o?=&y2d%mPl}sM z8K${{SKu?!I#T5}6?r}KfR9JXV0T?S|U!u=m(p9B}X;5poaBi&zGJ z5wf@pC88AX)Cz9{{ahNZ%g_--FXlqV{LE7JFbSTOE{2XIscwv7D=)c~ zvyQ=hK0YnQeEL4ak>7+XF*pU~I`N-eL;Jwv_dG|l+NvCFi}SK}>39~db}W}%YRzic z`9(>EHQ!H4$5kOT`)2H_U214E10G8RO~!@Z3stsbkbKy=JSki~SAu#LZ=xcYS-9P4OY6z_-%71ai zFJlQ@d=*^UG83vT%M+jN2(=0Ub;u8pCVk}n*_=mv+jFY!{pW3fa;u<_R0unoC0*QDf$;!B#C7)Bveff` zy}ue#A^d?Hml()r9eZ^Np`b;4Ny&{>m!;n2dsa{F)nkwAds{LRfBDWfpdt?N=56Pn zGCa!4$g8DkA+yPjf>bR@pImKLTeqt~B%FHY0`Y zTmc8n&+-WOgeo6BRRk@$R5QuEM76WKl(xUII%cM!%$)82toP&-~nmA2V09JSe=y> zk*r&x`0iJx9P`$_sE^@nhNCy{l{Ss!X(iWvyT@){)nKM@htjE9TZ26PK1R>yl|6?h zJ4vK|l41)nZ<}60J&-&w$o_QW!Q*-uUf*7&q7jCg8*| zvc%T9_Oz%2C1}^F3brAb0h9Tfm28h8-s$x@G_Sje9_!zH%q3nX7C3ZPO;~9oG0@^n z>8Vm4IVxR1Yxi{}nXEG+Y{tlq65{xNOCr?&r|(7zq(G6D`_3gZbg*hSv?1r?juva% zXrA%bc|8-bTsLekE-+}!=T<@SLI)y}W5kGQ}^muq3TFO0B{)qwQLAA)oFyP%i!2dNdzk zTb_not{=?49^I`9V}xVzByU}($nl~uwVpGX@rLR$)CNRGl};oH-YbO8^7$^Aba|zo zNkXoKjGEuO5b1$mM(2H3u^FwNw?Z%|wFVtn*w56kwgK%^IHUPcOS#Kp{@vHiE1eC9 zdLv+=z^#2GJyzhv1LNCYo%s7@4Nqj;AO+rf!Pnxqpy(%+coN_i&Pq+&$9$glfS@2$re zoFk<1U%_ZUcj^%8@i#X22$=O+n=?3W$5G0CdNhowbt#x_R>Ex?{ zOO}dT24-(pfqG)z{pceb*V7ssh8x+hrFtIshsSI+>9|k@IV4a9V*{UW0JL+9v!kw{ z;a2kq_SA;8tZk-{!VUKJs+{k2K2rw;h(GoKt@yLQX6c4k!-ACP72k(H1N^|J!0F&` z%`Kg)5>?_3SpStu~5>~4L5$wQx_-pURs&iSNx>$J~PwYyn>TsS0AH7Ato&L%~8 z*Zvpp+$vVhPLP{qZ)P~>bY^6vCa}p~+VjHZ4KBVmx?`!fk&j~Tc+n`A>GGnN@W)+# z|F^F2H}-xg2VfZbK3f-2*pY`IWFnL^&wDX)KCkS91{>mRM&Z`@xy1`L9@bgIUO)t* zw`g`IqA$aKY>x08fjaxj9x^|fR{R%tc6$bveo+3by^nw`>m*aZ<43d*hg{0{_rLV=yHuIS8&d$d}+n;hDUn(xa@Q7VC z2A)DAP|ng_NDMkZFDQEU#BKv7X6A{?88J_WB$E*Cy3Dt++ zjus4X`KNWbb7_9CBa6Jxo>^*b|DYScloO+H2WctA){qei;LnZS zquIp43l!trn~~y4aWrzk?mm<^xA7E0pgM~+H~UR-o?MKrsQ9T=30m($|ZNJG7z)8F7(#vuP!D30|Pqi23#HH|) zgpG1=RRMPr3do;ajjebmZbMfO&S@L@t~gl)br$yim)^+C;Q=v(^7DqD_ zT=Bc>9hC0t0tQx&kuQ0~dMO+wdEM2!$l@GkYpZkWB6AwZBL*dT7j+^cTkgb(Lk`ku z=-_6W4!Ff0KIDWu)p@PM6(;i&_}X$*b#-l}VU=9Sou0*m3yHNx0qJE2AiA3Ylyj5- ztkYnw*YlqZ>pGSP1OYD%KMo<*^S{fvY9SQ&>R6VGUuNN)djLPAujr0Rh5&wf`|xX( zx>-;NeIJ;;FD@Idc9mEyqr;(k5!$xS{&TrZ#L56NMX%>fHHi6qn(5|?T^K~Cs%?GG zo8P#b8MAPw{{Xb)?mRH6B=TH&U+$M7yY>3`Su(N?ZKWZ7t;v55Ok$ehcJ^7RbL3g64$~r z^g18f>Dm8)&H4arz(YEKo5j@q;_0iHcDV5vuS1uw9lNx8x3jtLLfO5uQ`ZF`4|hzo z%z7&DJgg%lqmG9B~F|5GV)o{0!b^jZBhodQ;C6X{<#X!~r zOC?944|Rto9M~ET@+9HfTWK)@i&rE6^c=0>Lkc!!Msv*T7Grh9I#c-MusB)@lWfo8 z(eQ}KBv)^=@G5=~J8eRHnswm(op1~>)79g}SE`qPC!Ud~**}n{v0e_(Yc7G^;^c3Wda1z>Q&j&?ND;36_|V~Q-a}%W zs@4b1DsL-6c?LGac#z5)Ffa?#&eGneD7Z7N&$rJf<=WhcYSPrl{+iOajzL`_gW6}*VP?7_neu1B-TDVTnv{_?TjY%b#uMmS ze4-`BQr&<4r=Yv6>)oGs3wx{FOyS=*0UNkHe(Ah6yua{GZ50-*Vvf$ijt_rvt3@2# zXR##`Rqg|_@AN0@b*TC;oav2CH7b4m*+>&M0p(|M25W zL`{0PgKmiCuGGvq?ZIl5EMxY>96?XfoQVx;NS2m;*mm9mQ!`Uif`SLY)T2!-=m@%o z^N8zRYt=kJBJvXqZC^N-!kk{-le`nI8MJIWhcs_WBL95iL5im~UIW2QQNV9x2Stb6_SX#2FCyj3EG4mqRvFGJt0C9vShN^NFYd$}ICKM`^ zy4KUB8sGs1>cW5}l{eu(fj(eo-@uS(h*E7+W&$B^R49t9r_g!V#2aG*=vh^VCfTx6 z6a6w0jD4lK2YR~qet1p+Y>AYa9ylW7?;H>q#F!Y~IcR4;!oarq6PNmn;-R6N1KG9u zLchQu_K{H=6|)|@HZVZwF~EO)OYq1gA(tAME+xw6gl*2Y6W7`9iER5!=@^`y`={=9Jt)am~H@<;91bkUwendZGrJ4T1aZo zEhThA5J?=l}=t3BwSNcLzd;${g~q9ZVJ^Cg@e13ZHIx+MJk8T;Yy9 zpXyOjGyos_v8duT4eRFsnFNMe&7IZ3swKRy8KN zXEMGds%})K)F8H_BFvPkr?396gYFmi(JWztCM7+hWyzzsn_5gQu_*BazbwzP;DdMa zZQ{sMw`AJA8+s+M=K=BpTK@ChRY}d$Z}mKYdp8rdTv0^^(B1_IwD5doQiyvcrKgw485gc)cAP1g_>l;`Q#Ax5D?zdkKnr`Zv@$VH-NR*qEfT=OA;S)wq57p z)S}jPhqAr`>$!jSL_Uf7?AFEdS)9$ zKF>Dj+-F*Wc<;MDQ}I+X?G|@VCHHgYSC2+YjhjVw;n2@4=4@`iMk=mV#r2~TZ;DP6 zs{IxVrNgemW2G#I>zdsx4IJ-8JEI%SaR`Ia;64Mi`@qAME4V<4h)tz?0@|{CEK!ls zlekwmlz3qe?%|x;NGo^FgAY8)^K9PaDX~J;4-7p>_O$kU?%A}~KHX_zZ}DZYw8*(6 zkyxH7JWw&i>pt>pc))X#KJeaic}Ls(^grm;>ob5}oeWHLPF~bowiV)-NHHtG{VC&#=mhaf;l@@;X5`RhI8(z9HI5-(C|%lK3N65;XTlQ zMk~-_7L7SQNkkDfC*iow#Gs}`33zwbwRYJfCokTQ2n|;8GyD{Gx94qxwY6G&j@bdh zI}+X>*$k1EF1`Zk#|5)s3y36~W96{pAeIgd8h2`3s?c*)dh+-FlH;8ABaGes#=~_8 zo%mBEOVP6Iqv7Srr-ii&-`0E%ccXR|q~RZ96W{U6=^`|DYo^t;Y1k5Gy~_J?pQ*17 z9;cYLnb(d>8&WlSZ@xVFX3b=!-V4uJ=ElpJ^wynmENP=%+!WAW1_&ih`KNHEZLUmc z&6ES>5Z#?a&(MFtIj|5EUnhv8FF;;D`3GA5o6P*N?~q183ULG>cNZHfN1}5oEYSF_ z5BHK#3pr-A-TZL3oK4(`8i=)txl%T$+-k6iW?bzAO)Aynt&gN_qR)Wuf921&RedBS<_b)NR8peMtY_E#GBOj>0@b2m|peWsDx6{1Y`BOAQ z8^(P*G^nkaJbQpoy41~7Y;fZ_PO33qM(?7;hpow0ZnyKi@U%9Quq+#YwN14VhQhT45> zvc$Z8r8137gK-=Sm3k`FnYGfJr)QWbfSS*aZj#q&xzjzD3Ih=f*hfn#y;7Lj!O)tv zqIo5c#r`6n;$s2-lT%TY=GFf1EWp33>m?BTCOnfzNmD>`&0x7>+e@#bl9%c5qcdUF zgQjf8PO^vQ6N=QP22Sur8Fy#n+FEHB6m2&4Qyj_+MX0fBPV!=^XN}eU2xe$!z}@Z( zT`w4U(VbiOK4Q9|GrJoEBMloOb_}RKo~_XWL5rt5xB5IDCjD%gc>)H5*Y3-WRqZz| zxp}&wE|IVjUW!wyf$`lBAJ3N_`Wta_rcf!PYNhoYjQWh^eJyo{3D)Mm{U7qx3&L2Iw=4{0McC4Xuv^K_QUaFkHQJZ_(sOai z(1=H;7Z9##x(9mcEa}VRo}iX>z_euU4$A(e zAW5W500yE+L#(tFt=nJGAoyw9@&N z%sb+-@}d_lp&VUKdO(ChgEj`4IMlD_()x@d7&b^=Otgx=xG!=7!s5H=6q#t8gfkyi z?(^*Zpi2^_S*x1cSiDQ$EN0Uk=A7qoGSu9j?hbUdpPP!+P@vXj0dGl@^Y0Z*tCP5R zU%N0_M+zeJ%G__enZAaB8kn_VKeShi48ue0Lha5D;!hfdLKp^scubi8j*vH3Z2z~ zKbYlfNLF%*?Z`eI@qa7PXKPT2oX3x=Xs?&p`_Mv$^M>1E#mJQBcIB=sep(NMoSyaR zUn8n>iQNj%;QjK@wl&~pva^{M$k|-+y!Y;aw*6O&(??9pF9Dy67jkoMOX(9QpU6XS zrPD-~!N`>PS>zWuNfsIt8Hl=%AH#mQyYgelYXAOHI}Vnb%k8=Jd^!`z)`Pr#n|6hG z*kEaLkL0FCv|U7r1(yG+7Lh`9mmV?y3l%Mde*3}fYK4qQ_+kS`gl3HLZ51<_d*RC! z2`?7gdKZVU3Z=#TpJ$hMeqVI5BmAL_nn|!&+8}7zPaI1+0O`y71@}cwk%5uQK&^06N z%BiG0S5z>^?c{fr1kKS=!cg9Rg(<Jv{zSpxG7{qC$57CP{j6IzGkm| znMnw&G`}K{MKXhbe5>;-ls-;OQFc4Fu#UhE)||SwPnSWM18tD1njJ7;F7CkI*rMPI zY70`X@~IG0GoStxyi1vx>`0#OO{=3+t0jvrC*=Dw)eXOYQl)(hGV9&nYi`t--Jb%- zNd6(0m?b$@-BbX(ZMxQQX#Pv+{lnc#bUaX?4V3(#?ZAr zB?lDnj}+izRRV5&WqW$+3^>>dqwJMr2+S|F8uA<>Q74fr2rd+g<5mRPg#MHt@^voKvbP$fc}k z$u0j@x@vnC(Qo2Yv{g9QwiZm=Pc2Lr7+U*Yg}%03i%nT5O%B`(kMw}~0|YpHjY~`r zaf+fF2GWAboL`>`$-9)iw$VGyl>qF+?ok0Xv!0CJ5gT>0`k6$VQegSWplGyF_$V9K z>7&8+Nm*a;;pAggC?J?o0OaG&m7)7lK4Bo9t#>R>{!;HSqHhB<*sJh36C=Jq=HY{6 zd+R=@A*vkk9gnz@;8S9b*0GmUhYyxo<=ekB5jsdMvoH<|%h*??Low{rTDy}1G|(a{ zFK9ua0D)NoVf%$$`65uNuNeXsFDED_de3(}Y`h~tj$f=~|5ulq0eX}g+JDkS`Let# z`Hc?8JUGAwD95XBvFx=8w;E1uT=N{f!=Yfqxe&Anw4koYILH4LlL7yHJj4sgUug{W zM!DY56zWv|@SG6)dX|)v62mt8*Xm@eqf{a^031FWdcDISWl$!a`KY(PJ^4qVVSrC0 z5hxRW?T~MB;#hCXv*obAEpafL#Ny|q$f4KnEI*XuhJVB%Pgd3h+{CT=;;>Lth};ak1P zo3A)k(tW<3s_D5Y8Y#XaarDG~b-}Q`9ti^(zvLRJXC|~EM}ZZUd6TL~8=s#aHx<7V zzWn=phU44yM_ckie6OKghi-7k8C{+{)OWwF@XJi)U&Kd0A9F1wyJT=TJp$`DbpdA# z#x$c5CN(DeN|M`0gLgS-b0ET$SIJ@TH6_-Jb+3F`xRZU*e|#b!H6qCl@!bpLWX@k8 zxoqr9x9i+;^*cD3CC%N_|A-^}jn&UT1(}4i@6L_oF7=Wf3SNn63<7=hc;L`ZrrgyP z(2;Vpk`V9)XuWa;9o8BaSL3*jWzGGj7L^p3zOZBgRchioa`LF#>lY}@lO8Z9__K{T zQS#$J$ViDTGO_UlF*&&iQy{rmeGj6s45HV3yZR9HX0 z&LF|TM>cGO4W>Cu{EU81d&fR=@(G&6-b2Lli&)J!*KdwrIwL;ma&pXtT&*TcpnFn_y-AWEc z6E1|tKK10vp>cRJ-VkWy5iqq{8Eu|}hrX!!tLKEcgVJoZ*>jQ+)Y&r0a|*eF6SjP% z11w{xHX*)4R*I)b<^5guLr(870PwYTUER>{(}pBnLee}6Sgc>Z^8c@g{|gMh7LT?o zyvr5pUu) z6Rytu2GF2``*|roC(lRd>0*7)ky;?phuF`8`Z3DL{W#_%6;O0kJkMpZ0%ZW$ zDhGH$(OcK~puh0<-P7^F`i0lqrE-Y}-#`D<{A%})b>P&DB?4Q7FURCSF+qsg=+W~7 z*7-3|1|in8J)25e@wnDePqyQUQz`s06U2?)0fJ>Iu!i>_Dj$_SvP{41xZQZCh~MpH zEDdG?CvjNx^R&Q2_rCmBrmIW#7Q|i`+Xjl!?i3Gj`7?~UUUeobwTZr71@cfxgd-De zRdwu}LgUh}D~(r$!;qVeW=^BCGD}u-bN`3#-mTwfyF>VN^#C5Ig0cNe*?x?r;0afO zO>=yZ&Os4Cl@NA{eHz5KiXm9dI8xh;^FOi{rcz5cjp zZwZ*M`~5ICi?OIO=V;j1K+ES9nSn#q72EZC;TZD%yII%P8*wqIlI;M(iD!p=Ej3Xr z)|#5U({F0Tk#RFz+)Smmt&O?8YE$y~Btqavm21aiP^v1%7ObspS&f{>>Q3SbXiKwcF?Fx~}(xTMVXpF;m22u);}?=srii%;(ij`$NIzwxGJU z#VY#RZH&#=cac5%{(L&U8?V1_gD%C#ObQ&;QKTY#{U2`a-!=AyJUDok#BckcI!^+L z-2X;pLRGETa1M~p1>IHOkY6^QH!u<&x>bMkbe!bh&;@UZxn{Wsdtmnr4N0%&3X+nH z$F+k-IwuH{b_AEMb0+evar?J7=P3E9UN3xK)MD#s!a-JHs=bltPB(c^>cEFXlX7ry zp`E#g^Q$SUo+)ZdmrCn6=Nk;)E|w5M%cc0K!QHeyTgEB+LZ7sMcQl#t6^y2uq2N!q zkugbcy|Nn@I=6O>vH^~ohx8BD-xdx$Zfmh zQT7~tB8QT6yG70EWtrsWk=`$P`%f#KUvule;Vt*Ub8{pwdy_z*DPPb2i?1NIroQ*jI0fyg3^3Bm||SDwm`FB2(vJNf55XRAR{XLZj|ZF)2hOYdvG3uJ1vwbbJ^nKYlVkFc+=H4)+a0;9TNE#3%C&@4*GnpX|X+R~+z>p+L7`Xkq>u+6`75A&URo}g} ze^@fgyzdEp`gA}2bhnEBEw0rhKG|96gTN;1wkj66al|{QsrLDEhB{l`yF`0}ZSVjk z^O6Cu3%hjM(hfup^J}hQbZDT;K6!@}bJk~^F2Xn}&;&Be(&mhF+`;S?O&6Y9qSY{d zW4k*znZ0b!U&%&@cv(U*LSH$B=Lz?w1yoY;yGMfKM3Dwi~4syovZTi(^Av@5gHe2;K4Z7L@2dT~`> z0Ncaf`%PV2yj!qdXt(S<#wgRmI7b7WHLrZOAALPvWEbH$f=_=+jU5D| zWsQaVB`G@18&n^ZRkaP;uRK@=iC0pAkkHc^)4D4ovuS7p9V{Vl9|||4_{5uRqJFg| zTx#HXKnkcw$K>qkwawLU!Nlc?pSeYe))8q=$%yflYG*Lfu7m^|3;GS(vV7AQS~5Sg zXxm(VfBVj{QqrR=&IeilcCw4npD`}NKL^Ey`fS6vyo#A_caT~t20J^>n zq5ci{uO|8B(_7sF#__t<^r;3LqN#c1WiB z9z?u49z#N*lUxwO^{E}U7QMu+c!M?$fuZ}x7#~?uv|2`K30T`I62~>pff?4+OzXN6 zYtGD>%Gzr)?yWO*PTdy6EU_G1Y_JU|tfWES~Bab;w?`TUq7&EiR0)>MuLSPjJ*Hgnm@=GReq7Y3Rr8R4cG8B|EP1Rb zbHqs}D4dG$k(#Ie)G@g{z-@BhY!G+QEzdJ;Yd|t{lb*5Gwad&`@t0069(rL%&=Z~f zbifV;Fl+H{7l6Ehi4*GRcC#gAfQ!W7!doh7(IsJVa2kH!bPn}Uu^#0vW;^(_{TUWp z?Z6@7@Pcb-EqAD82zgk@|B`Oo4dd%~4GKrF$!582hFpo0VomESe5K~f*%QVf)u#Oc zGxuw?S;yD3pXQuz1a4`*=#e>n7C&ms_9B*An62|!ciw{ZT;~_iuzRQObg>BCl8IEF zt8N&5c+CUbbqY%Jn87KTqLV^Wf#WWQZ5t>_TSF|Q7?7XgMgTM+%x3`-AM4^fhP!-@ z&l+gGS*J&nF9)00+a8*>WNV6@kzZ1Pyi7%v^TYUR2gbz-?aA(~{{U2NY3jJER$II^ z$c(?EZ#8KhntE$NlEIsI8aX!|pCz1RsAEy_x)Y2dK>6$>zDx z!xDJcU~ph+&kqZcogoAJK!(24nIkll;SwjcRzu>^?pr{yb((j+7dX%u-(egdvCU4c z%MFt~*T3@)`!W{L@2^p!hZn52kC|>ULt@7G*u|Z(HyqE_2=9`1Ey`2UOWZ~?d1ctK z-3N8d1N;sgM7)SL4M+eTj+B*Hi}X3U0VF%ycxeJM|2k~(+AI!~=glIUxBZy!``r*8 z%fL$|K5ZLsKyV#659;8o7fW)G@#(rF(+t~q#-^Raft_0O^yr%o>8IB*=lvg)D#S0g zjMua?g~H7;%R*{S4xS>_zZp22Ub={-03c}tgCT)akReSOP>?5f+I5%-Uw?c5r5<36 z@t)Qj|H4lA%LPsg)s^|F1oG~u!;yEM_YB>$k<)`R)7?EcJxta*5d2t^rLlSf3U4Cq zfDDzBl-3oO(BTf<&;`KaL&o`JiyLo5|89tXGpRgi5Dv@Q(2loAJ|Kp2GIitqFck2E zhZ5s4nXsPXsuw%-*Y6Z->fk%ID;Ls}r)pExv*LuzJ6orLgCgGh_*8h1*^GslVfFUH z{!o*X5WJfz8 z$HTyeu|`T7E=N(=_8Q zzE?Rnvk(j56*p9vkN>ng{`XMpC79a$Pk8> zBmN*V=~y!{p&*nxlo0bM6A2FpcRBQgD;YE=DGQsn9&uXuTxK>q-X~fR=jI0o zE8d5A{huFxd@Z0cyDiW40fL=g^+cZtDX=80Nzy*HICUkS_Y>Rb&_17e? z`3cx9wUX{I7^cbC41`qZUiuwu4O>5T9y?GAKpT5PS`onaMV8G=;1d^)8`_M%dVD z&B~B}p41%xitn*oo<0D^PWsyjxyFAM{I8OA9|<6B@_xe&{j<=0g9;kUL^A&}IboPw z8_ClA6P%VU-FJ_D6Ze03j|Vh$k0N^eGaR@KTj*7MHe$IT!gpUT_l1GDY8Bi(3GtaN z4VRU+{NtJU`X3%Nu#GHKA)0Sh;RPiwr)s`?*#98L@BZyjHoV~3y8_)5BmmUBQ;BYc z7eph@U0`Gwizcw~TP0soR+zzkWCqT2zlCmv;)%s;Nu8Tlc)=eTh6yUyU_=Z()!N^U zcDWgx`wd>O8SN$3e-Wl^k*&3Tg%`YqJ>X2MO1Q-bn`WI@@na(HkMBE&*mIflzU@X_ zaQ+VLj$ei-@Vy9L@`8bLUp8uZLIUZiuQ|SIg#lF_2H-{ADacL~MkapL@+TM0*Y_Mi z5aP{*3;P=3_a{uh7s%zT0e60sdu`UG1{ll%0_7OT3Zt=t-;>yQ00Dy<2nszbZ0~Lq zkrnll1^!ZBZgc+fZ@TWRBngIJeexmbx>&pF@-GgXn#Kl0z1kW1i}s%t{qI{lM*Gy` zzXkbD%>P@EzsTw8jsGpk|9=)l=RC*#ZM+(-qi#!12;l@D%_?Zv3W3YwQmz5G0UX7? zI|)Bb`}dECdP`r8I|-GLQ-Slvr5U}^1>C5>sK8lcny=UM;eU1!zH03ANWSp(^uWX{ zLySG}GhZ+RKkwQ>G}|7U$vdS~2~sP3UlhKN+hcf?&lYStO>lWuSx8#u%dzCO@9fKr^Xy=2iEMFGbequE#wxuVVWrcfT67Gd{ZekEt zC!=U4hZc^rukeLRq@cxE7r;qrK#R+o=rLVEF&_?q@x69}$rNrtKq%j=6(*E$0mgK6 zs0LsUH3-(FoVZOF=f)Dvqn`N|{Co=lWCbXN;HRP!Cyx!E{<&?oTMMj*&V(o#rDT8U(+X zXV7m{7R*k~r{onZm#>(?((xJH?u zu`iK%x2kk;&O{v2rUj%TxBOh#qG6^oB2{G8)g;G0!iP`DZ24LU2r4rLKz7uN`8K0S z+a!4aW6jDR@5zN~_36?jfQ$9fOhTG+AVd&~Xl(8dglwZFK`B1-xOnRyQow$&-B5He zan`85iLF3v8Z>t>gB3utkj#GA1pud^ZhA+UD#}s-io6sfrH`(UvCeiXt;wB&X(P9#&3jg{hk<#$8yK`q0qNM0oZ$T85U=ZQ8)| zVu%Fpiye?#(f5E@_olx#f?b1Y!?IfTf5)@D6x6_?Pgcn(06Y=w{mi-sN+k{u9SCxn z%oPd%6REN(Y@p-Q8WNH^v7y101ju0)MBe!~Lf%1M9`!0Zhcb!JZ@1V1wa#(rAd26I z=&ACPvx^!)e1hk=WaVVTvR!V@mrvPT<~qGg(D1^^rq{{m-8syaSRWl?k1B;SXm$g! z!J%^{P&YIe@TcsHO&q$EWjdxmJ>+kP%8MgA<=k~xG4$=r9DqMnhAB9kn5g)Z zg7wT_mnfmtHh3%PwYmGhIgE{H~M_p&5E0FxrNQ$45L8Qxc2Eg%MDrs8AAl+GjGytbEJapgp$Mk=@_s8CP zoQCtlnKBQdy_>um*@w`n^HXHiNwMB&7)HS*?6f1|+8&0}z&#GCp&-Jt+#{E5LPv+rE76Sy$K7UeLtwGc8yC48(E6Q3lJz<2)aw z3@W#>OF2922@RWZ0-YLhe49wZ_Ne45z!grS%;MZ~|2Uh#6c9z zVCkTk7wP=rzh<@nDGy(N>Q#mLl$MAVqY>c;Armb&JP06SCm1dIRyT)g_n>^WgL`97 zCIY)Oud5v?`w;5m3gtG#=sdp|e0b@ROR(#3%xYT0$kt22LAj&gw2#q0JM^eOJpTc1 zgr~?aVFCQT%O*&z2X>JE%jCyZVOyezR|HG&vdmG*xsZQ;FUPE-1&wc6pQW>1a5^&wPC!vCC)B# zh+UAVwC1P6dK-k5<5E_^ermKZx*lghhqlSukJ+>}D$fL88)lZ)*TJcPF@-BH%V&pZ z1JvD!v$_b;@as55qo2+s6rOu5y=Yg&MfVbrXbXO$K!CJ0;C>KH;}@(GjH@DhRikj; zB8O1vS7IMX0;#bD7;{q)o+s^cTd*t$+Z1JFh*STmB>E#5REs7M-|1^*eAo;G4XY2~ zLlKl8tUCevhIMs%(^nTXz!s>UJ8%evXNJs4rFlT`hqSfQqN=D||aJt$l?ChMol zX+H>GSxR0sBv8y_fbedC>sN|}=n-N|$ZV+p%X@fG7M=MSl8{yq*G7W+R{0QlxN)2P z*QaxN)g&;pOpij?!f3|~E9-F@=v)n@pJj5B`wJZNHP5JI= z068rc(qrVy_`q^TN<7+_HZaWrrFTp7YMRN@wk&~Xe$?-O5yEqbV^J-}BU>l=yV~$p zWIzHCWat&qm~r_x$9RVKUx1&z-F}1e3g%waOE@yLbWDX2LF%JzS@DfLlg_J2V24iz z-33z8l|$gH)Kz6~`pf(OZcm5+5F`@+8%ONMVmRb2Q73M{bg6>cGTcWZk#fasLP`3s zt!)oeqfhKIGxz+#^7`Q;Dh08~36e^D-7vP+C&x@Pqfj@fDWCLl&?!odN6< zx-$sbB>G*(N-r=+UO*_#=7ZK05i$@Y{Mm8(19!XY4=6kTz)1Y(6`uYC1d-@*$Qa(? zKjO;f`@?el_>o!+M@3UY1%J`3;3lvALQ@Sui-txzXkbW1%CMWpM?CkAU~|Y4 zHM&H;NBEA01M#I=%g`PhtvCw886 z*HN<=S;>71{~Ayc2f%)KBZ8q@i>%Z57bz>%R zN{5c!R9bglUtVC^twhtQW4_aRgg_p#PInq{O(za~#AKB?ISkuUTyYa^CcNimWyLaB z-nRWbda<$mB)FC#L)W01;n1pUbm;eJYvC1^K>!iGgHB=)g_uV{`gcoM)(X<|I0Tkj zu&oggnASBX-7y(m;VT7@suAj41x8+Dl}%%D#Xek5@T*A)S6`>-xlK`#ha7AFp5*@* z2|@LP%EIa6?odhU?Sk;o|9#V%^u{tyqi}}?NW@u)L#6Uh;`YfrI(OwtgIDqH+DFSP z;%{?AZ9}T$=rch`6s89-+pq7zd0rIM>v`B)5kS17H3iMi^r0j&XK&|#?G>8IN&mk5 zZ}0er5$wl&-F?GES`tWdAU*Tp@W;tIdFBy38rh^f;o`;evhEn2%pEI*jo<#hK|DEB z#V8M&h9u?W^^td7KfI(4k#x!>@l2*PK}5Nsu~%mWMYt9zC|b=w(hLJapJc2zX-+!u z?g4YwA_jAD)dbL+D}f}KspXJnzM3>3iasv9f^zging~^3f+MLU1GKG9>VnEUDJ{jf z5<4m%Zm6g{9Ot1EqRl+8F@jX%Dy{Q$&nbK*4qk0?c5P z8Gj1S5ECNX#iHyh%qIl72?Hb}Ai?PzM#53PRT)yXr|(3}pALUYMLC^dEx*!nkN>*i zeBXBaMe<&h^tH(n`31;L)u4P6TmN)1u@%&SJ8BS=O(MI&4PP2s`g35?$hY!9Y-YVn z=X=h5D3OCPKSdMa%0z&+l0<>D7*7(AdHt`yd*HPwxsRP1efDNp&2DvPHIhj4;a*wn z3WmeitM&M8tNgccrWI0%@0x!SkVFpUV+^dqKw?#fU@;6S&h50;?iGf_3TFg!tttGF zAk5zAef(>o6?W>@bufbzyv2=b_9NFr?}=NiE6FkqBFkeN^Y3f{Op&8{vDKalz`Scx9HOlCYCloXyEPU?B!cF0TMNqXswZhkTZ#=ad!Z@|- zZD?#JuDxDwV=Z`C3s$}V&8rP{P`vo?{PeJ(G!^p-OYwH&aj5mZ-)VY?)0EZTFiP;) zDX{&`7r(5ltEox&-rW4Vtvv=?HiF|);Wvz0Gr`~@M2($=1O^e27@EKT?srdm2@SQe z(wsDtSLKz;kT2|FgJB!4FyAkr_-BY)lUW4oZqME=38f-9gZUd4cKN6A&)pvsU|l1( zP@|7*AbU|v{iki$!xtu=op3idKTG@5bK))yzv(8Qfj+uQ@~JK<8AJ-Y zOaAJDY>HZA9WCYwUzn}?WvPl+D}L$$_xfZrvLLYaE2{S27X);#=;fWr7o2bWvQ#Oi z=v2dsu*}_r1pyNEuP(@H(yQ=R%V+ zzhm~tHT>Ug_QP%e`-1$R-)0o)5bz<+Lo(c%B_70*j4uQ}mh$va+rBv>RP@rPoZqqs zu5sF5zQ(sEt0q9Bu}WYj@E|?Qm_x&kF*dp_e3pTpo<7Ve_i{Exg-JX9@=g7qnfnPf z8XULh003Xfxc=@cdPzB5yHF*FM}05!`@UcGdGo+-7@oqfxIf>F26}CGoo6R$3m|jx z^r=Y)VMZJ@X=GG~=3Wv^VFSKrz;3+%FD|t7OSB}m@c3h7tv41Fgry{D1|C*^ ze%6Pr!dd7vl8XBxK7b0bKbXA!#gHq<1?ysXJJJN-u<)pT;Hl^EzH~a+0lFq!&TJzg z#g+{7jQY;P3fue(%RHTDXB1h0EH>XsfKpipCx|$OiIfSo$5?4Jl!JYKqdpqLC&r*{ z6l2tkJX-%>J(@j=JU$4V%ZX}wd1kFMd? zB@o?X|3-YP=t%WJ=8;eVcGRE)S`$$Fwn37G%XzZZ2vkR&oP@wcY7wxaO9r>3ZUGx{ z3m^f%=6QgPn5plcCiu#Bx}XrKa9UD}U-Y^)j2Y{uRs$8U04eWf%?G`YbOgIyx|PIi z_M=2(4*a{P>m;l2CTbOATH~-bg#!YECuk;bRF$QxXPt!uxOvFf;5A}1-UD~>myKwH z3My@*NHPyRZ+rmjjXlq>Ig0FfSS95U*1L#cGhN{MMLiYK5>U?l7wvh_5>>RM`sv-E zXv)qQJqyc@qQ=&qM1VfxlY>q#!nDXloCQ>pR!g4&_o;|J^Uyo+H#!pf zH5?k*yY$TA*8JL7C6#m?GiTnA0>tAT_&3(JIv>h+eQIN-bK&)O`@Rwbn^M#pGZajo z?i$(@ZvhTy0sk-i7w-lGflCi;(+7M#=6SRX+sdIqr%&LgO;N#zm1QA4xi{Pi$db`j z`9`tG;W+lM4hKt=3|)7|^iJO)7VpdYL#-JV8#b9qPv4;YhM7Oz0t$!x>q;j@M_mf# z%dBPug_231pH^`EpG@`)IEuK$Y4#?;Rg&@_j3vB1@$KJ0xGQYFPo@QECbK&(|D0R) zI1`|w7n}V1R@nsIViHDONj9WI-#l4S%K2}Ohn9O+k}@}!Ms|XADb!ea3^hL3xZmjw zOkIhUJr7wn;no%%xfh}A>;JKoq(iR_rG!hb3c4X{;S}V9^j}Z^-m^s-r3flgH`} zqsVdm3nLr{w^sE{ADE`s!Rzi_8G16t9l2&nBJ)6|u7sK#2TGR~oswJzewwhbd!rkG ze^=ww1yJeA$w4{Q*pWgwwpw&(qAuo`1eYRi2J*{K! zh4AC`1@#C{&z)Yhch1Of@0ng`AQ52IS1Ae@;;J)aS>Lz-l$nMiM{DctD_}k}fRV4+ zSM3iPPzq1gK?s5y9;n6{7OA_b(Y;bb=qrq4w%gDuCWtX|te$3)LlS)sYLBF_OWKeg zH>GOg>2bqBf=2T7W}A~#QU{&wC{y^V>EVtV%N206wSX0K+*d#@rTtiEEMLrs`9Y`0 z@j@uy+%--r5iV)D@XAtmuWeDdP$4Po2c#0>@E1A(NgUa~MQSKsZ6fQyYYLs_^W2L7VDIaA0j8;71f z=b>?9A5^$|F*s#3L(c?FFH)hJv2j-8Wza>y^`?5SC(?WOL4 zC1~WDav=lVo7f zC?zZpX)0} z&yqOIoW2JQ*$sVAR=8xCbpHp>^)DZvB5>u61EXOE&?Q(oVoy@l#lkQ?$zrhD^6!z@ zh6W03=&*$Y1udzXEJIudpT1fY0XL}8z@m?ZWK0aZq{CPghyrJe8)A=vFkhZ5i580J zOLa=iHnobwmfktGplWs&cd(LIgn0`ZLt|_s+ha5Y5-J$ z(@B>I%e1UFIRmpfXTw^cZpM4jmPN{ZYV5%9EuGRjYiK~FF)3~~LZ$s?4k>&MUHx=c zO+vTU^Bk^Ut`YOAf_S$uwhQ%^LOruH!B~78_cc-#)laqHZb?KNB^nM;X&XoL_N8UL zMr`A@GSRg$p8deO9`_uqb(^BV;y>UEs zPXPgn?{FiXex~%m;Y(E?w`(*Y+Qt>SB9+I~uH|};Kqrd8CCaFq%JwwDc5to^fu)mK zY11-~bZ?>%c1CrSH67@g>hplkcxqM6aCEhR^MBQa0)?_Fp%X_>_!6AJ92!S6u*2?k z!nx~Tb?>JUsh0?j%Jh6IR(}@y(rFucLZSKcI5|F(^3-cO8lj%IvBz>oe0Q|jv<<)o zxR3YV#RN83p|Zdm)Yz_PbhX$aN6^<1?xO7xyCl&~8cCq4bn{ADx{Hy5Idg?{Wc2!B zJrP38f)^*|g{u+^V^oeVsHbbT!F<~OsXLx!RSMn5$9*jDB(>Xk7D$R~yRi(9p&?Px z3d&HcyBu@gC2abXDBKA>yI$ZwXs3$^pxmH{paIy{7$;V7yA-75bIa$&#d!uHg?$g?%f0nLh-J`*+bDk4Inefrec;xY&Q)De@k`FNAY1B7%a zk7;69Ag+egsS+Y&&sZCKGGds;h?eo0oy5}N2b+Bbw zBf)7GgKt2|=DaDR#4EAUbf2d!U%xOd?C^$rljVrts>$*~$>HqA6qfVQnt-o(ritRW{l|+D327Zes6Ybu1uw ze3}Ax$j5;sr#KPQ);jd%dq1TMy@jeal231tXl(i##`$X@o5%I$h#CaNwQ6`lmbg`_W87F}Nxy%^lGZCT5!i#+&5euslYhO`}CS zjL#{pDzb29E517bjEnhbD;%o3)U8y@wpsZo8Qhlr;Mr%E;6wV^9H13qUkgs}y>~{C zSzZT}59NX?m3~t(UH7_tBl|bh3H9a$``F_L4>Q||gAF6}K0APE5T?u+eU`=+$@BM?b0OJ;@T=3?;7 zX182;P6Z&rP^Qhm6=<>$kjmbCMAJx@T+%fX#~*WJx7odNv4@Bqqw+YlD$}I#lKRZ4 z?ibf?D<);-l=-k5Q5F*)a%jG>51=Z(_3?GfAQL*ZeeyWgxp3s2D_AR40CI#+5MbO5 zSX&daQSpXij$*z-vgH+qx+!Ngg9?}lKPt=B9R`?`G02A}IVVdzMVu`%OO>KZ&Tu$h4qcCMS)%D(Y7ym?mjrAM=9S!vP`(|kD zcU`zWv|*>1S{5!R1i%0@w9m*iB$8`7Mau|lZ*YZr2DK@3H$-AJ1>ojBwShz8hD${I zdYfUzBqc7B^A0YoW#;#ob_MMawNexOG(3$oA%#Tsprivk|CGbO|KyPk_EY?sVF$+V zhr7ORiqCdiLG4+5TR&*3%W2f(K%uz0gem5_VOl8tAs zxk;2@`4SYLRXS>Oa2iYq^O}~f9Ft(>Ldft`A~z)8<`dVAyTA%ezRX;MIx1yLdQ3m4@-N8BkZS}{5%hw{3F-EHTxEg_Tq>N>puF^aZ}N-0t1TULMZ6Fe;w+5 zH;AAU{{?L~qL$%Cs2@e)oudC>-k^?nn6_ooic>W&%j>uga`WQa%kPK;UOS?;JPDJw z_`}0mdl>bC1H7`oV-LF#^2jTU$oGP`zHaz~gv=u?fAVw1{YGgL(QfhI#xb`Rj^nuv zyTo?iTWsT;vo~8kFrZg+`R}|Pj}(MyH{`YXPmajB=Tw9ZwNtpFS@}Q-&OX7?Yv268 z-H%^-xGnlq+=hYG^4laTeCskSD0LmUR9p8Q{4@0a_z*Q#TtYe)<=%OoC_w||{B|M%0Tuk)>u;NR~kUuoeQ^X*1JY0++2$WonN z%BiBS54p>ss4#@KpMV4u>5ukPWtygX9`g zt<5%cvA70y(6{nYD*FL2BzSr-hRXEIN!{0{&wl^(6slrxBAu?TME8Q{|0D!OBSL6t zRV>vbr>`b?oaQ?FKbFD&7)zN*!M+znxj$9Z?oBi{0Lv^fi>9U!=>U0)6!}9ru4cZ! zzAkSmql><7Se>6(V$2YoGXT zEP`v`N^O7YVZNyK$EMwbtLCL*=m=NRuuu`%p}VXLIBbKGE^-A{;9(tT$*5Rxlhr-h+o9JPOAl(|%O9 z_MWJ9{}V-dQPIbi(c5sEFVs|A=R#~}gSF9K$4qR(h$^1m;k!HRhccy1x}IZ{lC3PG zyAI=hP={!9ExNhLZUj=NQ%3apD@jUTHaV>s*1_vJj=mBti*hCOHl3txoC@C|u?UOx zS)}j&GU`AD2$D?GHtMgxYPArLuWYztLv|6fphB_9TT&@j6?X;Dt+)GMtkbdlGIq_l zH9BBI;MLfx;@-@p!0^I3O9H=@0^YR+S76oWPbA9wJI~6WA1mx1-?TRPrKUwGKa;dr zbHM;QPlsPyELUFj4pGNHIA=-?Q;TJKK@v9GR6}}% zxOSd;UELcgntZpv3;9cEwN9w!&iw951Lrwiy@+PgD*)pkTNNa}W|z=&-*6WdQC!7h z>s)+iV@~>ndhA2~$J8z(f^PQ*E`46S$8A6=*ULKnaI2^?CSvNTJ`O_=ZG2mirT;nE zLR}hPg!P;pb+HiBy4$u#@bv^Cc2~s~#Yj88lrsTyR!#)=8ono8YxOsKY}pi*H{2xG zvV^VJOlmLi=|nf$S~j=lngLqxR=PvNpG*E_XgxW~rxq$dME>@HW!bpBb8b zzW1&{SBe*=ZJ4bRquTs7q^0;u0mDUS=)dj%7{SyFlVO^mE=at>g$laVA+?joXkVvVy0<`h<~Rb zooYa@Hs5^nzB?t>1IME&Yt>)Px_?YlS2pK^bwJx4}(Y4P3@ z@vQ7{n=6=vvLlv)1@~92*-+l!ombhC>L%+!GrONF@&0~hQDyKX4XvK$&oqZkCrQNURX)rW^`$o!7P-?dow(yJpl?;?nHau<@$6^$iuu2DUPq`!AGFk?cKN@&7Dg@9?nLp_; zUo1_yjWRMw`!Z>bvv1}vev9=j@9&CHo7vDpRcT&f7_YEX@9v||Sb0fbOwVU7g{mYW zU9qmY0x^h#s5eBPm*i5MTTcv~jHN5Z*wt4mM^EpBap9akF%V#C%4f)OuASyY}|zkPT?3u|+pRWLeoVgg!_ywI6cTdZK4oxtr>i89GkWMF<0 zir3tHujj$jmzgG1wJ>4FWj$NqIi7+_e>@8nE-mto@Zu6 zsd3z*TX^XFNP%KnQM5*;p2ShJM@37otcVlnJi_i8Hi98#{_%b4xfj>o^g z?$vL!7hRdpEV;=;VRQsA4&u}Pt>%M>nB{3B5N>qSGE)5!u}G$?f6yFzS4}?TlTbM3 z?c~<>AR%9j!M@cUW3}j5HZ3wLKK3zTPmH$Kd^>mSA}?Mpcz&1c=W8{Xqh0iiagwts zJPse3<412Z+4y@Y8dj9t-&i$rDF)3v(47nkSv?UUDS{~$7VTZuwZSaa=W>_EW~3MP zM-=WV6lOfdQXSD7LXdL%$SpugG)f(v!f-wk6&9D&!Ozw|P;TMqK^JF)dg7SClvZ70 z$#$8cD3nM}Jr#`9*^T3K5N*~C5>911pY?t!#TCcvtZXP@YpUX!9p~{OOF??XIabhJ z=267{WW008C&#AzDoOiFAKRPgIb#Q@iGkT#qf@)kC^*Oa#HzZ?N2nxu%@b)B@F#SI zw;$0@Az8I?<=hNb*<36ip`N~!cI;+-1^VOe_NhUmDYm>V5g`_Nn&wz}tgU&^LeZC; zJcCcqq?D~o)|}29Sfu9qtF`!1=-<8b0TtOxizbN{BD%ZWUaxL z^v2*5k~y9?O&a(w7LVqrq~33t+kjS+njJlWiDM*J66}S8{PYf16v|22VDSYbHwT)F z^)kobr;0(SS3JPyz|MeOscORmrTtmyz0FI-PR?2cHO=2(G~v*QN(#9BfN zJ^e_xSD}XRlm3f?n%evFj^6TRVbs&inW}9~zf_WPA>{aLQ5?xqv3J;B`j)G!zP_{( zU4DssG>$-+G}sp5=ltb`2uXS-oPPXE{+{GQH^*;W08GiMdp-faLFux7C{?3dySN2V zOz8F6<|TS~*J#0E0&lwmesmY9y=x-+ZpC&l+Zad>6zeDg3+i;9*ewyKd5`ko!}8FE zt2*SU4*fQs4+H6f%1B1W-ZwnR%a_3`vRJE&*|b1ufkToUJzAq2))lKJQFddIC%eROsQuBXDn)l)UE>s3~%s?EHs4^ zB?Wg(t+h6kIxJ?=ykU!sPZ-Z=iM_L7UyL5z`FBf(hV3U7M%nh}7Iqi79}eW-%y=cI z%}G{U`9M4~m0i{ICm{U#-)s>|28cO9{i zeXuFp)i;}0JNKlgPbf*W*faAXORY_iM``jYCUPvDnOLokvt4LT-%D&{i(J|KoLCNa z%?#<8%X6i~&CylQ(sd>RC)pS7PZZNNr1OMxfissaH9s57sIr^9VbRuWQYn-Xo)T-f9YJVkzH=d z>Ce4SdS(m+&R&-!HqlI$cbkyAUytkzXJM6^w*pdwbaPe%ilCVu>?EE$9o|rEb>`hf zZO}SBI`wXosIGhiBZcBcjwk%~&MH$yv=93#;v=me;iuCK8+spUUf)1Cy|!*@DH+;a zmf7Fu;FWMAr{;MFyD1FM5PF?xY_{;uEpq_^?!Jb76^P@XsZ+&ETjW@qq~rDll_tK?L^lXo|F+s1k|B3vZ>Lgo z&KlU&4|vY$uP*+&MslJJH$`i%65`}7)E@(*R@U( zuRCjThK5pE?2RQT&%E!NnaOa;u-3=%F?Hf=HQs9*rFPe+#B5PAK}lGTXRt8DNzbNK zFIkw-FqTZU-E3sJ$aj3ylziaP+{JeB998Yh7wM)YrwcRn2g=4XqL9>_U+=CrM5M8^B-aq^vmzdNS4{GA$>l6HcNaoAhl!BruL}KRi?zt z!(ViWY4y9^2j2q^3aHZA(oa=+L4u=nj zK2JLtrPpOX=l`aYlk(p3>Kyk@%b^5)o*poxePixHi}y1KIUl$zm|RQ%Oh^l(P( z^whg($1IMCq8(cu-MltNk%b_NFXPL>i_m*J8=&pda|i@tLWrDV5_krvr8yw-aP;pu zBK7LMU+F>Xe(;COskDQ)wz$09r`fx?!7nSPksIh#ESWkTr%shsTH$qGigc@KV%bOL z$zaw8e{AW?AKnJq%I~8~pT8{2apV$=!?TK-Xui2l7?sSl9hFonnVZuj_Pk;u@T)4N z-=qw2qU`TkY6JiqsorHISqY2c!+y{bolmin-@R)%k1Gd8U{pFgEgtb<=6S$)`D>%N z`-`k?hBYoH`laT7o3Ol%7O9XN)=-m{@r=PLQ6@RhI_li0bNzfvZa|k&+w5ZqQD@wy zo^>o(TSJ{sV#zd7?emTb`^t)=O!Woxr=q!8ZZwWr*Z;=aVmi*@a<7W0o5HN!P;xQ( zy@0`ctz;ZLS{7bWnFQC-E__3mAGARhf5w+rvWWM|{M3jus4ZfVaLO&5d1&D_dK+WV zxGxx&=R3T?WlGTAonvzQ(t0q?HGhp$FdS6r3zw`dAhjtC+V~Ysp{q zL4s9!uGMk!%!7_FyIVo7={A;USOq^hsO=iQ4*fLoCcf+IrvwRG2pfReVbQ(Vn#9;{ z(>7hb5kt;_u-;_YJNv&o?Nl^Khoo2USO0Je>btvk6&QKda`>A1dD!;yOij|)?K84y z$H!JZQV10;E4aXzC)7LLv3KSWM$#obN2!Pa%$1nCE`HS50o$`WrF6;D{v9Jub?)uO z*||=lM$*)C6a2*o6^$ge1e}>s!Ltrvm*xY79??#W1OYvy(WAtvQusjq_*Mj~GyPus*`xR-Bo7`-V66X!J*7F%u;6R+pEsJOoSz^QiZLw@SnkFc+8|*4ss7C#z z5x2vs0EK&&yb0iga_hN>Lc1!>QRm$zrIgFAbB@KPgj_-vPhnw}II48&k#MHll5{N| zH|X6Tea8Q&w?pqbM~eZOS|S+gq@y<7)`%aL)jiQ$5i!IDjE}=u4G%(tz}YM45-wU2 zKd-AI=ILCvB8Qo=-MpOk-KzkHiMkLY&X-nKSvpYg@mI^3=MM zgV0{ZxTGo=tLc9l0P3^X??QKNLq^smMjL+hr+$l;Ti0AXUl6HfQ#`$0CFqOp~i8J9egyzP#5L zpd6{WE9Zt)VQ1U;2Hec=JIvQJG=tSVX13ct_r_J*nJrOd2fRzXkiPY($IfAA@LXHl z1H{}Gd#cLgp&$8SDly@qZ6*t(87xmu?ftwkK7+-kCwf&wpfk)gg!~PC$Oj6m9r9xh zQ&q%Hb?y|CNv=1ewC|E8zmymjjl;T7%|B&lxc3SsQ zog~2sx1E3Fv&u7P^$-EeJH#hq6Rsb|K4bdc4R2t}CwsfiOtn*E%?&Q)UDhP3&H2Ay z(s31QtF{=9;(tzJpts9fHR-TppVjD>CX5HA*vT%p`>20Ih9Z3(r$Qt*f6)R~k;7#D z&3gs7VxFvio?CNWR*kj|sn+b|*<+^l6`|+TE*klgdB)4*oNA>dXBu?BSY-2a=NL1SBVthi^|Ap=s=rK->U37|<8!}O|5Q!k9P5GI9dE;BnnQ5h;C2fy zn`~9wl)*qIvw&&S>Ew9?KPs-D>V90lZMM*<5ga^D)~GO@cqcChNpo;OpBrT9306^r1E>ft)j<8P3gvI9 z1j83#D;Gagl`K9^Gu%l9UeuD)l54^6qr!+ccHcV2VeaZO>?&?I;*Tp)13+)q$2ogJu`P?JR%e!X!lh7@Ux;LM>a6@@ zCMhjr7ws2UsS_3FZ#pi%Q%#K|)`T9y9&i_TA8slMybvnfA=>r!=1jnCiNmd$F#I?p!A`c_*9Uth^dv79sftT zJqzte{pf1M#LCiaF2l_x&{tf%FERkx$%%_xC|v-~9B+(eFmK9EtRM4`jNwQdjkMMUP{x{Aw!E(1`w5U=*E=gxVB3hwk`GnWOoob;fsnO#iNlY)S0t2u4_ z-BK#B|3b@*%LwxG4Nt|62jEV>kttM8waUm6vAYRqz=lW(y);E9m07`9#rYtPEfHpJ zs%0F&y_t`|aY~9^sFg|%pR$JEoHll}7cmhoBA^M~_4Gc3i$;cI9&!yB56+#bRRpUl zpPbZ4if7E{TMyU29JYMsR5LRu-Jm`wWe+q?=S%#!R&nPq_dC0d?h86;r5C$|88#&R zKkU7EIMi+X2OOn^iXtkZUzZFa$nrsb_ht+u8 z)C81h=A-DQm+E>$3o!1Z`>M}ry*;<3ct$fiyB#tluN5S}3f_U`2mcy#!uLkT;>iG0 zFGH6y=n4y*p+si9K_1oLUsj727Z?fn6&0X53HV@0UtR=8ko3;I;+BCNNA-_QbBb30 z-Yu$6?Dmd-dQnOr=mDJ9<^Krah`Zt`<1NaW*g+@U=Y#8ew5^`8Z9{blAAjCT8d>U* zXi9u9tc|&>YU6M{F4Sg|I@Jf-PjA!*PHDVJN8dV+@WRib%*#ryJ-GR6$Lk9D`kkHT zDszzmqB1?i$c{0WV)KU4<~R9u^4J?QzVB0b3sgU1nsN+$8nGd>iv>N44a{ca*c#_= zpALxD#vELjjx#epXN{6^##{=}sK*l1CqXW=_YfF|{L;WTcAai%=#BFMoVB;-jDxo} zNKCeV?d(3d-aHOV$f97iXMbbKum_~}Q!(~eUJ;u_qc7`Qs`FWOr%9GEAmq9-i;JR$ zs8*vpmk&Py?0(COhr^_M-MrrMVa=s;7c^=9A1gnr)aXg0mFqbOb3@y2bzszTd}A|T zU((%3DeIvct)Jy|cUOa!hiET77|^0(gtf=Ox1-^PY42uqQ25_n#2 zfxQYg_@qA9&mQi0G1KC~UD_r3zooBuXB_n=N&rT;y9-_^SPap{;knq&8mnWZO=P5J zekIgQJKK6z_OE{sI8{68-bvka$P_u70h<5XIT)&C14ZpsCYKu`wEZ%BLiUNP5{#!` z;LEzAk}S^C7L`r!G|W};b$)wsz5g5J_g$&O5zI1PU0A0IWiAwd|2ZDCI%@0`jpA@Q zA%gO#^x2N~i&vV@f7>(MXmotk3Up`o^KIi*bZ788uE6Nua0OmUdgy2ER~@ixmb!--6XUx-?067Qo6zGWrQo|w&Isec(`{tQ&-Y$3*H1fGSgIk(!VakP+mvMiuzNwpmg>=Tv-^Mzy zDy0i^o2=$?k)~56xfUOupQ@L>lCg67d*ve*8hZpxGXptL;pc zh$t-sJsLPluYZ_IEe(1OQsXeGS=~$b65M*??ZHAtHFfU!0Yb#frd63!n?H)*)~^yq$#o2PNP6J+TCTYIA3uLpAcrG zCp7TR#7d$q#V35My%@(lU0}Z`-o86d?s{RYZtumR8UK$}H7b0*dtHxq@(osp*W|{Q zK}(0isgM`_2BxjhKO5=HLoIfPc>YG)1h!R;X~M0SY3S;Kx66w}tH2H08eBOsna^$y zH%!U*&n{su_(>WIyhFZF_HB*Sw$wnDQwfki!cFiDP)AGBj-CBTQoIqEu3vPdT`wev z$97rvYx0ix#Y@bDhwJ1E52*Z!p!q9m|3Ghb8oR~*@7{cckP>ZT(Y0w{h2b;r`SGiI z)pzBCad(in-`#9vlg(+*^*eNzNRM-pNTQmY(VeqHD4kPK%pR|;&Q}cC70*hKE>^D8 zO+39)=in|f@b&!}s1xrc5HB{}6gFv-9%_%gF(=MqPC)zE8(XjVFLoR@Y?7AHj1%kZ zC2We@LlIc69M*0NJF+!$XEJ)w1s};{@6ho+SFRAbM><#UW8bNdeBtV4%cwrlqz9qf zM!J9DnXn)9bbPOQazx=aTfsAc18wWd8`{6H@(}I4+jhQ8hqFCSN+9<7cLK1|KI+dU><)Lq63HGF#guBV{WC-}(_ z`jACUY;U`b550Ji0eLa0|L%iX>E7DJ2X4yYJ_S)3FF`Rj9@cRzV8j*Yp zwJSBAN7&Y?m`tkj4}?xo^7AaGi)qU>F_d3CkrOu>Njf%akr_{~CmcawZtc#3l%?H< zVPw*sS-`Cfs!06Pi(r$a*Bmr~cJ&Wj+xMD-2?GXGkD|ORnQR(uz35yFVVO)WHCrI} z+h|^om&h+y{1jf(mUC>{?4wqibD= z!SB6NAGh#2*6r%0WS7sIYU0|7GBtXXW5HcvT@(BE#3#?n%z9vKm-=xG9N%Mh-IB+_I*O87%rCLNGL^G|K`*@r*+;8=v4&u~x#Sb_I|a zQfwRe%CCVsOe!fjI^yZVGW@#^+9<6xNg7!I_P^B>^hqgi^YsHbX?PXBBH2_!8fPzQZ++S~eINq&JD9Iq9 z^F~u(QR~hjw*VtS6UC4!v6ZgUk5_N?VUzd{7wau!?VG<|xz$~ADkoBTDKOLn!XHxY z+$>Hvg53WoZUz z-JM!M0Rw9AKBj+`6gCIYac}%_8PLN=+bFxCT&4Whm(^&EU3^W#eg!FKY5TGr(0J2-6I~Y56);AG&1v`gV`| zQ*&r$lOeP@%-8MJ9H@@??RXOI&5Hb|qv|xCMbG7pFoHU4X_0hEI`^W0bgu2K#>i7Q zd+9L1wwXcuRiJC}^hDN%f2$$K#8})=PQNB|DC<40Xy<^;au7bj^pMcb!_PIIjn;m$swz63{O*qmfk-9{?K$oSWjD@c=%BYC&!KX(%80pa~4O?_JLd5WZukEtV%8FOnw@;yG zF2o|EpUEWLdnTZ(ZJ*_SH}>l5YZpTx#l!KX>qZ2i4RB5&&$v(j6S>+%$Jgxs8@3q$ zR)11M{CB`*kc4?$|6e0nAC@yW zs0EyN8#-cYa#F=Qk%lc~YH^480Gug`D!96IB1O(EV?GX-g&I}`Kj4;*>Z zFK^5S1os?Y+L1i>srPP<&7vj062F`#yO8oK{(8iBXs5^D49zdven_X455G~qG1jYJ zd42m;AfU(%h6h99eg}F7GP%rohA6DR(Ty>U?O66Dg_cn!0QB0L_)iUF+f1L={>DoE zZ-8Y0PkV79=JrV^X@&lVifLxU8uZI1P9Nslkr<5>}5nfBC`$z{Q10q zcmC@aZ{UIz<`U9x&H>btzwOfjdZtw#V2yt@?{EMW2~pZyM<};BBC4J?o-S32j7AJvkha{x=dag(_C;eRz$Z-)_v{PQjL z$I^v^lKs1Iw!`!=;oQc$Du&B zs{fG%|9R?u;+UMSk$zPfeF;JL-+OyQOE zT6EO7#buH3#}=wrpGIFUJ6Q8BsCI*%kt357o5iIaHx?9!I(RIL+y}j^2Dgh-N=tDc z*VoFAj>aB9(;=$s7#KHfhTGKd_dlMh1Iu__ioO7UL+7C0Y#!5ak^=+a1TC%q_MtyN z{rev`*ddm2-Wgv|r#gO+k&)a~@L(O*MO@c)Y2%EKECn9Oq?nXbf2{a#pZ+%)sQM8k`SSucZ*EZQ*$Zo`YyL}0|Md z7^uECs1y<(kgWs(3sxn};B@lMq}9eqiE>TxB__Y0+q6P=Pp=kl!TqQhC5(#C<9uC(uG)#9=)(=d<; z1Vf{I{^!NInUlojLE?oumsD>cDk|#1hiRlFV~EWN%!oXeAKMV7@j^3BMnbRPDldpl zNcd-WQ&-&&#W*QuUdd6CBY%Go8sGzA4=kI;fRZ9`pY-vjMLf5nfD0NrFk0>n1J%Fb zt5XMldSk2^$sDL;_HVOjj^~;&k{K`T~!um=BelpP|9^8YJNp`m;)! z@`SYkFEHgoEm;ZsF!MQ#zd$|n(s;IcmE@L2ya3r{FZMS+SbUn$Pm9;vPr<&ca3e`x zvn`)aKVzrhN!WcN?yMp)F>J5V5Q^|n;Z{>(eufr*7X3~AfBsFkHvp#s%1gy_IXOwE zm*_J{#86zEd|+C4QL4aZP5#gLyfFbk(K!y8aRs1;crNR1-+3j4{kuIo`O{jcylJ?K z*UNS*w`98gg!5qSW1!R7wM%yF%}28yABx=-7nr~e+7tNFLi-x}&f*e?jpL=>$RSt@ z{pkIK(M-`#d9tkmuR1-|UnTXNQvR4d0JY!2yT!{nz0SDK#JbGRuyodxZW8x`UHv(e zxQjbpsgdUF$Z3`=foshT-BIlZ{3V2lsub#{qg z|8Orq!-zkHu8RkLS{GB{PGD*kW+Dks<>wnSAk=aO7Ub@?5mn2wOt3PNJ>E0ZF3lIy z7|GlD+YYRG^Tu1li`p4lGay*_+YF)ND0=JhYaJh$_Gi z%iINmzX_GO=)+GsG`iUgi2iHdm4SQ2fGqLI_T@!N2pooj3yyu|kF#BfO-Ec+g7@t? zbT07qA|g8;sN~#oF3`9B>`!m~mvuhC(jtZ+4`Vz<_22Aol9;%UYK=YZAi}{XWp9*d z(=~$wMmRIbEZ7;QX#C3q`M(@DE*S%pv2u?O0t3dw6$Bqthd^FWzHkrqyH(rv)0#xL z1ouK>25n)NCSOgbMQnttwrlrvzjcV4Y--Sx z?G4ttMD z9}c2*H7YQYgE>XB%T6bMz~7p7*@=}$JN8#rz~SF}qP^)BWp2#ZC-1P5L!9^WJ0lN* z%$d9&xZ``7o6B;1e2jWf=ME{67>jcnitBV9p)&OxMpel!({je0gp+a(L}Q|{pD><{ zX*lZn6V9Eef;vsRHC^v@{tp;Og-+r^PWus*-M&G&J0U+m|NTw8>jeIly3JhNaGknn zoINn!x!kqs)LF1D#K@BlDv=KMtb3sPgPo6G50-_;uZ!0>F|1GEEFWxP*x+Do6g%DB z;dpK3+2mD^Pno;^@qvUuDezKtdEq({Ir23pWzOtjKv?NBng76#-`^k&PmeR_IUaQI z{xIDM2@4xus0Lo#N5BsU5qGj}_^Jhpai9&GneyV zuTvv?zHRwI_`kVfoPp7k0k{~~UJJaIlF7R*E?zHEA^z6IE*;TabKU!u;{8EL4}MBW zZ1J7zH%x=rz5IW$opj-_56_*}W!c=2hFDOC`G;%nr_y>@%C<{CBP7_LO`E^Lg63dy z+7I@}lYzfs{C+AYTfE-vbd1~&KI^{`mcsq=XM_a%!^-vv7BtTEqu&PMXvBB2=t6oW zYh*ym^GBcE28twk_Gg3y`@_5cDHlkeMsCtxAD^Lcst1P2(k9sk8XZy4V7mJ30d;DN+X z3QIk=rZ5u`rprIxC3NL-Lwcv=E(XZZHv?_pnpdWlD&4WVS_k3Bu5Gv({KW&*MAb0C zo2_;+Pu5}Wkk&tPa$f%ep3wbt%hV&fC4XQ6FgZTJJsM>xZr5?5t%#-q?G(3aeg&$f zH80M1LAu-S5w!?8X_#429Ve*iD>6Wju$BfyeLw3;Q->4i;m5NPdI;WC3{Eo|wdkA# zLDU6fgP9+?jTmr&TynRkgfh+mf4V@ESDoPu3_Qpdnb)uj;!`Y@sQX5UM9#M8>DdAi zwnIz4*5kEb)K5v7d2@p-F^AV{EL+U>%bP196FD^^HTQdnw;<;~0({X@uQcL1;5`SQ zFp}#_WGc`7Xx--EeDI9M6%~lrpG;^;#_8}wj2l4CoFON=C$RF!oN(?5VtFOhg?~JE z!F$7Scwy?`59R0zTiIF^j%|h1i1D1l1>&_2_qHT)kd8wF(AY9%>$4v%tsP#*g5Ta4 zdX(T9SJnJXQlC$^{4z4_gCihIJk8P|Yk3`3 z*PkAlDKJ^3xFSXcTH70wz#9E13m#(ZtbI;>P1)Q$r{qUaEqJ&NYtDJjk04f$AV$O5 zGK=ij{?c2x)d`5=oK}wb$nb(pM+QXI$LzbW2T1!OdHY9HdEfpryzGOgxC1;89#!wWHk&0a9;mc zj;>zpSiUY^72d-^#hA&IZ$=Svfv<1 zC2*FcwOo&nT8EuUSH2tiOjaq24>cr9aPRR6K%M1^cMlGNh<)E^L&qiZc&C)LwRK;R z6yc^FdtK{jTb8M9&gUc9?>BOv#TZ|2e5qVS`*d?$r+%GJLXhN>jQkEk%E$dg-$y2% z1L0k07%s4iNcL-C8Hr?f<_17~%8s!?xoMp3DKsF;pkR^$rWE?$OEuoRf4b+YeVM-9 zQYzBx$)|fg&2CO`VAf%sZ8;baL;4RP=TcRrFqeJj?!u@kZLg;M?B$7Em^x8$Nrh(@ z$rI=GGCyBZveP!Vs|}yQ8lt%3(dAgh;|S#W6@3)}hVt3VbDg4u*-ZBehE4mlCePg= zhj>#%f(#w75)+U~(uXNFjivbn#OOxa0VjgzkaDz5{}9an2!w27v(Eys`G)`tc0s%J z);-66(U6-e|AJf`cYg25+%T#rFsyk1;iUS08R%w&wH#(MwL(`tV#a#=eVOGH?+O=m z9e0D@$k7-MRpEUM-6Ex#A+wHDY&v_h2i*|=Rw$Esy9iF;y`fvJkRvi&97ODdopL?j zOM=bOzkQ6$#N)b1I>9Cj+n0-8whd6+6RDA)8GS+kNh$6L=h#hpi`Q@*NlC7R#i90C zK$>m}OY#v#dGtNL zZpgjhdb`T1MUv9ywl;L`MI}2zE!6-!9lk3*5|{rhB8H^_zlFrXTQIkn* ze&dOn@VRAG{Gf>uSkEJWl>wm=U^SMNw9bc~>h_+W zq~}s|h4WQBP%?l9Fe*IG#U3BI=cM^e9n)}7jDEhYfyg{PS!IizZM~$UgSQnW`t;Ey z5mUk{-?CUCiVU?$Xb77-C-Z&<_{gj7FtM1`2p801ANtUiDWV;wRMvYOE<pV*6lj z+c&57xip*trg$rQ`iccKw;jtW-@j2eaMd;MI?{lmE5rv$l|8SZ`m^5J>qNVepMqV- z+vm`NM4srDtqkTdJaN_`Yf`RG#gD+7)-fjunJX#V5Y8L`<1do<6&F;y+&b;H-Rbk8 zbW2fIrjg6kT|5`4$i*2nt?TQ|jzj0lrAnuQ?zn27M=KOBP87#@BY_gWlB;aKVz{%w z;XTH5WjeColt$Hik6W3qQsmrcMP)$IuR!H0->?3g1_?tZ!wX-k6gUOWijougwik}1 zrZFQW!3jJ`Tbk)KUwFF)+QC>W-tiG?rHqQD5M*aEGKd@7y(WtIn`p@>UpE*t^u;Vd z7!&{CK%@@jpftKA-x?oP!aW>XcolGeczh2kxfGVFU+b1GsN|qhD|w;?>@m#4IXRl1 z+gHJ5dh|<8y)0>8&qBTX!91N|x;N%cPT;ef1gb4#j>WND&G*y9T(ZNN?4d8_A$38? z4bE-G?iDa5$#62a6=<)H*i8Dsb9ZcBah zDK!SFd)Z?5M!i@r>l63iTcJEH->+z&_a-;0wB4^D%J&M?ijeJRlTipkAlC2sR!yO9 zOCIgPf1Y@8=Ak6f0VdLfGR~cT?_#r_?9#XV=}^eglLcS}q>->}W#)1g`7;l;KCYAM zDfwy@qCmZw=$`Dg>aC{~k6^m6t?~X4*tDy%&I|~ffoh|yBB8DrmPY)WBbumvLRZpn z9{WHpB{wFh6d-_V=n6j1MwtOo?39nm9%LlDV5s-lHEv2aXz(NpbwTYzn`}J`4*CEg z4uyiNMxINC3(-Vb+@)vK*k{y~H&wB+?fj{gGpzE>i9sNHzJ*UJ2aQ`y##CtvN$${U z(L)Oc)f7d+3)mZ3=SoO`dBp40oQg5++>=yTW9oAU7GmHK{&1%_f@;?Xr_rVi1Lgrnve+1T^xlt>QPWH2b1dJ%RD&d{nN~B^5>?w!Xe5=$RI@zc zUM92~DJ2q1cwsVj+2e(KW->KnTLY`~x2LrmQ_$oyn*`oz(lWa}hvGstTGo)OpOQ19 z@crQr&Wp);bWgWByvRh20Wngl^@!l1Zzu1Ga?tcM8DzqJDOo3f=yFtm1XsLf>`5`? zVrP%#-cvFbNEqP6b=2$g;mC5JVRA+%;k$^J-HT9Y+R~6Cj5(6LRSK{ZM8;W}U8aVH zov8;DLC+n*j(y8~k3)ZO&^;r#sy7C40SgCgZXyZPpKdI>m)w6pfPx(#zjZ*?o}dss zPPh=UPTsY{=n=uB*K-66&V*W5>PDvF3^N&4N)KM1K2DL&eEk-0swkdhzPmjwzi9n> zmJ6ka-+r^Kh`FH?mt$-wD50bom(1n^umE})*NsQb8p_lYi5b>fegwgMx2$F(KO{`| zD-ZEq>c8lNoDM?=0&s=%XpF|ahugS0!4Y;J0|zb}kSJ%N4?a3hCEGnO(qeiqOsrVN zlKYDYJXJi_3L%k*H1e(q4NmQB*+wQ62&A6hH^{l6TIJHLf!*BDxg{s4?gUr7=+(Es z(p_x*JZs%tER31^HM3|i`lVhpeXoOIMvGWmrG4=@C((NTG!E2icccm87Pr;qLWB(? z`9|*NBQYGd$Cg<&vMJA#@xz<=yl+puU4DAt40EgKz(e+G#+R2?7atTY`XKy`b9u}( z%#(Wz9B;?WwV3ZsC%zlD8R}sKfwS_-ct13dnGMSPJWA}=;SYU!Jm*%Iky%(k} zqwr}w8(Ddc-qezOX^Z+$LJPxPWsm1W48NFa$wKB`Qv_6}a{a3!tF(;#C*Zzeu7yHT zvNBm=HswO62E9paRljYs%Rzehcr}m;W2)S1KR|F@S=5BMC7`4!#pK<~V)_U=V7Owb zy$|_NizQ#e2Lz5fc=s)J_N=(=yZw%Vsk0a^+rB$2B9E4~F$J+C+4SLEr|zR*rl5qv zq(3W1y5UhJT3gx5F1nk-k{@}R3Xw(rS1Xw0;_E%(jJ9!;ZEkMv z^KdByZuj%%)2l_V|I+B{!+>m!wB_yuD1^EBmp9k#Y?FLallMD}G^dQ?_4#d-{Rp2q z69cyLL&n5cP~aj70@hc2Pl{&hW&2BJ>V$EE{ zP84bkkQcDkY%439t`=enxEOW(Fg=#NgHGa0kAj&(6PuV!Ab8q%U@5YcoaBM?BIvyB zxvUTutyz|QOrbpy*|cTRXRbYYn3XHhhJ=PFPb5ceYuFmf#5Vi{j-Up{n)ntjn7C&G zw}pl{V3Jm-7oXz`%Av^Io?vT3KfxCAZ1(QGx-6KK}xbz5l%&dozuQpp$DHbdJtO8zd< zv}DEQTQ;ewYpOciCx8#(F1AcD(a{U0yeDpIHI7EsNThN+PY!zl(MQ&oNxAkd4K;ap z1&h1EFX@46Df{Dg*&EELQK2NhD+|?nr90`?E!U&dzSz#2T0J70N=~%r;_bg z18}O3M=}3i0Us+Y0`sMbl9NWx#PodActX$K;p5>_V-YFbPtP-499Wzik73EzJlT8i zxAi0R{18QCmL6qRl)`ZDFxgoMtqi3M^R@g?g8RHD-+vF{ISp+a%}gtpAq0{worxoH z$cOigJkW*K|21BWgI)^b{Jj+BF#8RHZ~W{4F^)joK!KEl!HI7sU|W}FvwVYK+G~!k zlso`6D+YEfcK?P<3L^;|GcECOJZe;UtVv*k zJWBT{Tur+%t^x4Z$&FigKV6i^nwinjN0}(i9+g`Pb@KG^7$!oBQ%uOzvfnJId@sq> zkKn!#pe*WW%D0$#WuP8CS=|o?>H1qjPC8%Z_iC!4`~rZxueiTFxQ05=E94KMnkyS? z^e|2p+`XtP38R5v8eChe&#zs6Pl9BrTBCM;AN<&^f<&I<2N)0!kB#12TcW)nQNZq9 zx7rC3ebq87V-D9sT;6f*wJtV4B?0(~_Sj`{?L)bz{1CE8GTE_u)$XadA)mSym_^!M>FfE#N+lj~R z2)vfn)u2pqP6kAqfzYAVJqfzppB)5KtgP1l1UeS-D%N}MfAvdWVZhf8E$4DNz>X2(k$K#C&AAo;m zC1lsK74a@$a%U_7w@i7qcNhID@f9a_t@UZTr(p;8cfk&=*-XG8kvc}L$ZOu4U?n>s z-$+13cZ@iJ1|;-jn;)ia1|DR5ZrTU&5y#R9J~W=y}(=(nH0Eg z!bAeEubz(i*U#y*!lP$_Lbm=8ytSN7`0Fp4rtB!aK}5{1wdC0V>0^Bqt(Xlv5O+|?q5b@0W;&>2 zuy640H1&li)wxIbp$e@xAwhGT(CCvO{PL9wrFz3Lp|xZeZ_U)2d6g&aB2jSZ4=g|= zmd&BQj6b42in9id)^QhwN5)QhYe(h_N5CuEuUC#DUgjLJlU(y;_#b4%N_8qoa?iF8 zxBA|mczRvt@dO8ArW3qG<NcbhGVwJv(&OKx=R*Uu=F*=xlS||kvUm{jn7*%zH-^)&+(E~ZmzRvN`cmi zcP5=B0s4M|G~4r-U~%N~pg(g%&DJj7I@W&`r{hvmI1+Ks#SQ@`?asZTIQh-@=br0dCvV(ax@@(wLqZ-?25w!qAzNf+Jb{9~0RcHpUp}`v z;UfDXn%Tvo;2_@*o;e+{@LB)F^24dtoJg7R-P_hMzk+ALE4SmJqt~lV ztbgxQYSR=rfM{Lkv$C`x25^rYT#}G0TtFAnT9))Xg_QWF38c+9AuB_d$5DxF%N2^= zDQbZ&`&Yjh;zt3$lA94n?=Nmwi-X!{Be3CaT)wfTQLX5Mym1dI(~*)+kB92*A$crs z+*#Voz?ZU*L!5Y=F{^vlrme_5s^z%Ws={(n|1K-`f62-$`4beV)VAPe*qOS1v%#%r~oCH8bL$$qxyfeDEx6H7rD1x+KQ#pZ*SI z*vUwK0CcRPi>(uHws#y->KRG2NqD6avYk6O7*NJ=Z|uSu`y6Cj^)=b{YkhA7hpM$? za!#b6%YCn94M-{T=33$EeNysz>7_N1gmu_4!{U!JbScmj_wh*H{}_$S++z)U z;{Uyky^*f<;n?QiTU^?a+Urn+Fv7es(O{F5@5<71IZvn7KHW<(p#ed zhweI1w|ajA4|p56K`6BjUY^rFq!JtmHR5M^=sn_=<>>~w)g3B&Hb#DgmMiJ=FlR74 zH=;#`odJ=TS>m~BeI(u-+>iFy-!%+cO2wdwHD^xTqWal$NDmq;4qFGYG!%C{+0r0n zRZ*Lm4cKnfs)5fsen)B>1V$buDg608U_cBCbR#a-byC1 z`S;E{i*dC_gr|CbCavSGFW{wQpBY+NKsqXtK{sr5%cJ#OUG~ryD3cDU+ypZ?qyjd+ zr^&7`Su)2yZ@V3c>P44~&|NU;TVF@7p7-*Xq3dxSUF^*-k~Cz9iF7!F!6L`YvO4Gw z9+ezzs02%0osoMSoXi@(RMpk>>@}PttIn--?d7?e3O8^l;i1S`QAMafFIDoi+=aHV z#918?__3lJ^ns+Sc~+47LD}(voTW1&wG&iAf&tqZnMbl#d@KTQGB@&nev{FR@A8FW z5WNR7U+l6o;1oqW^G7Bhz?w8NKe~a}Rv`X*aP>=#-i#sN`G8LGaFvv_aob)Ffs1_5 z(U&Mhm}x5(g@hV~m$Wc5G=$VlZp9BJDYWc;2{4szfw+Pa0FGq_g<8<1vSz={Rr(eV z9-)ig;zClq5A@%iCIP>ntm{1=TGjVnh4*vUr%;l@QOSuOMP9^w zzAhDo}7w=Fk?~FaoQ~()v$sSw0e#s5hTAvZ3WL|iZ6SS2=yCj#ha#pFO z6Z~&V7rLO+GUlXb*Fz`Y(#cM)ijkJI+!JlR76{7No?_M>i8j*55CzUGQBy*%dBZ9# z(f;2Rij{7oFfMShPYtlgyAw0IuT3(N2iu&KvZCj|DC{U^tuGz)MRPlj$9`a#<=P(n z1=^Iyf?9+OxZ=x%%wiZoCK6KP*?D3Ey;ruq(7AFI&EHVaT}bu*Qzpk5+u5BRpp^B(iTTMDKokDde@l zQw!SQ%A+#*mJ??chvId!Yrdi~I+W1VkI^1BcIvUd!y_J5uj=;QcX%;N^SWtaMDrM} zY)JKwENY@|ZNSMdii?fJJ^W@lU&&o#-o>vmo|9Zqwm8dTMv`}{se>^L7E}I?$!DpQ z7dug~@^NWj2E?ssNL!RV`zNCPS2Uf3C4=rLDL=Eed8BYldmy&2MigKy2lL(R!2{{D z@vJtHaGaFfrdT%AF4f;*pw?fcr&kf3x5LM)rCj5#S4EY|)<>tfU9*H@6&71FZ2CW+ zYb%o4-r#^pYpid1*R zPI2aHhzB(Y8ATmqzTc|nS6cD)lw-?4~TrMHsOU~ zN>IjgcXPPN2X{??rJ59dBlZvAW$JflGmh>G2)?>(c$y4#Dzq5j#GYiIhmpv7^-jzU zELj6?>krm@>8Up>8X^0!HGS^65y}X|+nBx5825m@Gy>9n@&VSS&!%c?pswU7^1bG|k0I>eTzaKYeEP-gu6Xo9ie|YO&GmBda7F>)NmwPCH^9UvPw45cec+u< zHU-IDqkVz0VBceYbTB{4ex5L`F1d$|v`_kA{%*OGl7vFvqXw805N_^fRUn_2n=5B` z-L~DUDnEO)UbZT~(;hp)Gwh6hA{9}#!x!ynGbo??xstnTWpRSXkToNSf!iUr)18>_ z$B*(BwCtfNmCRlJ=-yT^v}=Os%GBvlV0ZK?`9dv*wDJX!mSL96^RVL0I3aYAGFdca z`p6eon%r*F>g7h_U7Wz`HQVP|0O0qeiSP2P2Q|u5jPjV@oG^ovx;^i!g5{^q5!t=Q z6yzwg4|$O%+-p9{Q@VTN$7J&fGTUXY^?b3-tuwoe^ywc^&MH@9;jA=v$30;Z6|J^S z+rP^38>IVqbHMZsx*Kk-_6P}8NoYA260AJqXCkIX+<*v8k|Q-le?j71`4kFn=*BuP z-+4`JkwwfA`MMFMJkN%Z>#h$}>t}nbmW=XX`|+fGT6)BRwzf*H6~ddll?>GKsH`fx znH=M=?gZS%qRJ~}3zq4174zHBqS!ROF_|02e#m|whw^P9>9@2qUm0c%6KZx%*e!@? zoEl6N^4*C=V8@puW9)Dse4As!Hpxd=O4lK4n}Wa>hIYFEXrfv& z`5|CxtYl$oG9jeuV~Bi2N*thOz2?UDJS>}O_;M?m$L#B1OhqNP-Lv8jh5K0{a&sQ` zw*1Ji^TXZ6?%vKHLYz!Rhwu^X!^ytW&vwh*ymql{VD34xbKLb~m)%fY|2+y%n3t9J z3#-96_X<-76lzhb@9Ev`frmnNwyeFP4o5V{rAfzV^_$OZ`I+Qhc9y@p&Ah3?%e8djy`mO}jIm#3%Bc znp{@C?93}T)Y=3T;s4<=fA6cv6@E+Ck&19@yGIJYM*tNb(CTan)c8yhIeG<;(7gCb z@Ut30U_s57*fT+4%&qInar4_l&?O(YKn#4_*N>#C;IqkM^{L%&MDsdEyZ%~^f*s^GT-KtGtE;)eDQ^p(oJTq z@{|e|7S8f>+;+RY#xOSf+&+DJO(X~-X%A@uUK76in^=v03AwAXZ}-Q1UzOSzn$ePZ zr5)WZ@vvN3;^fac)l)iEB(7OE8>taPTjnb$f2n8km|?wS{c^)uYbmB?7E=?BNE3zZ zOsvy};aj!x2=XT;B831}XRMHy zN-!twQAjm8T9caCwS<-Ik8j4!zMb0it(xFU8JowyjdAiN*vHtJC2W&=#7>~hQR>kv zOKtk(>a^_1fk<PT4%u`ob9$;I^^!MBDL*}J*Uav#&7ClA+l9? zplG5}v2vH5vGJP=;}M4CN$jQU+~iR`if42ci)bkaPz;IePNji&)mPBgqhHN-L8Ozw zfWSz9z1JW7c%UY-iXyt8Iw3eq#r@$#eKKBLNwe`aq+D7V4N;i$FcKf2*3Nvn^<{3V zmle6+UFbapd0REzC@=L?w@c7Mm4=L%b?Z5AuMZ*6J=0U`V-mbhK5wxvK(qpviIHh~ zJOe~bQ+S1`sV-LMTHlFOfHchNVQ_s(z^=y<&Gx;uDCeh`0`|_!*)>+o z)xw2@Pp$|zoI$(49Aa@BZJb05RWcv~wyh+;Tad~M8hXMS8 zDW+tGisKZdc;jRXZYIF|DwWu|&mmO}9U0NjRQ-F?y+}BwU_*yIi?Lh^s;EJnmiUg` zjElv8TW&zhkLygCs_#cDd8LCf_ zl~=gg@NRy#9Q`bCs=&8vCzr9e!F$B4=3p`-kvf)z9QAVbAHH(tLAfd)FZV+p#O-c5 z-?xw|id}E)u+AF8buEZ!EXcpt($pDpEh=Ml_5fg_O$rhRU8Sh@QYY zUZ)tl1+&K9HnQJG4Btq6LUp;S7>Cldxjp`Ev@f(O2AP$Js|TmINNCxCx=1cuuJ;}2 zxGAEfNIYY1_GPYfpwu0?Qlna=x4+ppf8X(w8_7K2!lH)hxC(;y;&>x05d*Vj)k}!VxcJTx0I8&t5fw5t&CK8VwzL?Yg-)#H6%> zkEnog{}?tBWLQi_?+`6368Un=&Tpm6*OVPsM({ReBv1RAzQT8eWzIX==C{8ps-GyL zy`S$};IbTJogXv?Rek*pxIZjtXfJ8h=SG-J^V zfu7T=Uq)j9-!_sq^%$?forP^YR<7PlMhi>Xq)>G*;~1Z54)`DZZ0@ z7cVh{UYalLl9(GZnG8Cjxc}*vxA*85gM*GCcXI4fXxHW@R?(%!39s)FG*e}rJOI!G z@`~PXTsE6gmkhc@lKCYcoXsLL3)Y6V^dOe9#pR93xS9SmzHg>Jb>E&ZHtS^f&vjO* zD3JZTi1QBKw1=T9F|Qk(`!)rK#JP8f@%q@>gSo&Mg#tFsok#BYcD~tqqav5XE8V#h zkE;e1c0ibE@}XX96&%gKxGwqWG58bF@WW@((0x^FH|S!fcNUN|6}m!lmJA4;NY=5p zg24pO?&5Mj!#BrEXK=4b0zIxX(evoLF+D6p%RY7`lT^%cSQ)PPmTt+LlHOZ$mGUeN zH8dY->ZE(s5Dw-eCpec)&pvnUS&ovi-xqH>6_D1CN%6JSb|0Insu18?zTFL-bbClV zvY8XnlUd$G-@d0iHnsY!%#toX>Rj=(dM}o^f5lzTG|J1}4PkQi&9TZL#f)q1LLyOY zo%Xq|-Bt-bQj+dTZUUOjWBB6c8O^aZ^TjKy_#}UmqkALj7=3~r-qsu!a>v`72pWj{cpydNs6TQTw)$_KDwP(egd}M>sYsHLo%YDS8%vUX z%f1fUI1wr#WZ#W3S;jDosf4nPeQaZt7z`t3#$b&3U32dHbALLYQ|JEP|NZ_ta~_Y( zyx-UL+Lz}uAc-i;%s3eI4y>DgY6KIEU+uMG%I*?Xq25edEy?lIj5d@lq*(KBrd976N8e(=B=wXLf4;#Vs$l&4 z;H9@;m@j(Iz-D?2Tfpw9c&7%a6l;MQY;@9gUh92@hpQ;)-dw~c z(2=?jzpRq}{4%?_934W10#qpjw-M5r!}UuQq66v2 zb&nC8Gud~iu7gbNRM=d?;*tbHu2?N_d`fzz)vxfQ;e%dP=95w9G1~3am4t)J)AMZ1 ztxs`0>E2LKSBUYm z@pO-9=)Nv|y`-+uf23)cy>3Vwc17GkLyxlbKKS6UzqN=miM3&^B3WvyeZ7lqt^*i6 zX3-!|H0S223D5OLcGDbF^pEZv^-9-|_^MO*#hY|8@t!AG&s%Va1~EoHxUhiJR@CRElgz<9Y|GMcr4{La{4FOM_FJdEyG=gQ0_+V*P_An^*&R8_$5{11sLgb2=N3Gs%%&3*cq7I2PiwrX1 zmr9r6+th|jl+ z`l?&rrzrSAq0|tyXAsKkl-h;0&1)sbu&-F16}|W9GezvSJ=hM6j3V1|1s?M?E}XzG zyi67Z99Z+cweTQ=@s0QKaq%bHTKTdHrPHBP&R%`{axd(W!X!gKG^xdf90@#cxH=#p z4yy0r%A9=44cj62BJ7TBlLLK6$p3b0^D?O67AQHdt=a^*at9AML_p z+LWO+!JM4eSKq4E_x)PF=;6a@9&afn^dv5t1SM3)q0>h2mB5HOp=XBb0dN366@m@# z7^yXrxr&Lswa4-dv7$=!(wAkIJVUuKgSWnOY7q(HL+7&&hp&;m@%o?vpt5m3$bisK zIHQ*iC2o=2c=Sq*6|%tMZDzCRp4-~wRUd@W7DdmlWRL}vV*UWZibQk$0;U{n&dDk8 zkJfDT*tdN(bj%Qmv33tWq^4zK-dYt9kumllqwGw$*O!NZEP8?3rUc&D-obO&rINr6 zwS@#v00UbltHyqVBVC?ZM^49*>U-bLPc(|It5e!0Rl%Rq*;4_h4%92$`Skp~*YGLT zB;gj+srA!IQsFWIE@7ijJ=xFOt_j)*v?XCo?tcbL2?vCi=LNN_Ap&5bXc-G@;-Xor z1b^%r9<~H~GtlbK#;Y@A(O~vsEh{-JYcWlbb-qnbKk{#JWrVu^pM4fk_@2r$dIFkB z5{>}4OB;V-+XPXeB;--TH=I;V&G;0u9Bmzmap<2lV@;tM3JX|2+$C~XmG} zbHx|?`T;I|V`h{WvK}^@IqUKJX@RW51PYt^q%yZ41eGJU zIH8>|jOdjPmTT^p{CQ8oA(zHKe2C_JtV8x+IPo9C_v22Qr}cg7IV{e)_H#Wt z@YXZoaF&~--ljR6)bGk_o>7{<)WDg4qaI|kzL^Vbgts*n0oX*Hyc52psCFw-ODy>X4R z!z!eDL^G%&IG@jMfHIqvZX7uP*)6m`d}D-Y_x|CNJ*sLBv=?4e#S?a5ZF8}SiWP`g zRz>anl%=s{qRvJIONpL0y3^xX@G+0LQRbGG9~KdY15ZS#TyU>O&=$U~3tE3lRA40( zej8IzVSiur8P;CyY+;d^DA5KgOSGxg z80JlnQw%jato-#|;ADT3*JoYCC*MaJYsVfRXfAxa(%mxEENfWidVZNUwi+O!SV3`3 z-k?RB)l4Uj65G6{APYT0XR7Q+~@dhSU z$!jB!GB!f1^R#*4pvunicbq56-dP#fP@K=ZHJ~HpGX}MR4U|!zIj?uyUEFvrJpe^u zWp6;LJsF__M~;+L>Z&yjuZ@-JgwM^S4EQfhU3jpT=~?$VwIxI}v~*I!G>B67^=nKY zQp?eOu;%k{4q@wLBEqNhQiq~2v~9pWcq0*?Hc!a0`#b-}rp;{7h)0<^0thahD(@n| zdgsHV6+yuyJy8%syN8xW`t3pV997X>3&d2NEVK++-gf$o=Ak#gix9PV#;`thqzp6{ zZBJcWRb3WEa#TA?A|T1tx#_YALQtYBjl`%hji&_9c5hcnS7R@^22;}+v#hsUw)pmH zglRlbwW_&!rdX*D=~JQe`jW=JFHE8WACEP3!aak(ed2k^DJ5?#u(y14{9xD3H-C?yqerh@v2*a1NsZs$>-(EDTWX`t_=IaWE zW!r=ivcU3>vpTj>cKmz81xR$7>pa@Vmzo|9>q$1}SN5mr58x^)eJ)O@={nCW@%Lvi zzGK<>8?3$5^>sES+{^}Q3bpsfyl}0__Kxr<#I=(ALUwhX`0&BEQP$K#_B`Zqnoo6r zqr(|RMNJj7pK;X3tFH9bQ<>-bUW$g%lq(p=RQ$SE`A1TOMSTuLq*H5kRc&*wAC_)M zOG!wKC~i?vJ=e+e{KWAObQW*h#kcG)7i{hiRt3eFz|9?>bad>?B9Tat8#^9zN154N zxJgXOj=Oa$L+a{l##eZ)akyIhELB1(y*-naf4^e(+x8F`^5UJ z-?;~C5+NmfrQc`hkO4LaRjk8Cs$-*e%KeX>UF2M6?0hC=7Jl5ODi z4`)f%`2JkfCQN6DbuirGpfg1X+V^6OnT|58Ba}wtIzN}2ysdjgX^j;KXQgkjo-?Rf zx}fG*RyVtZj{LSdx)o_kH1gY>XgXUboO%?$6q-XxtEnJ z9W(qZ{0>LdPIWT%)Zo^3ER0R2s^a3~i35CmR`Wp)QBmBcGb{6BszAU_XPO$v+>sLjB89}2y4ve{4Dvg+I4G&P8ifrAC9{Q>* zAyL>WHWaRW`AqK=T z1n-wmx!DVq*~qn#HzDM(GO&c=6Op`dvOkVAg;isy(uxGasp<0}q3~?;orG%l`mcBG zN+nx6mgmkmE0y|;yQ14?r$7C%!?npb%r<-e%*o%YOuY?Ww&R_u3-V5%a@0)>N!ULu zA$~zqsLub4yc*FT>wie+pwjh;=D2cyt@AK+NB=oh9Rk|l*h|0MKd(?i;#6U0S$oQ~ zh|=%H&^mwdQ53KVGqMc{Ok#&#Q%j3EtIDo@4U-~#_+W0RY1W3Kv<^$rcXshPN}KPNs$JuDy+-MJzooy{@RTdWtrAHu(1ujq z?@q4H;1d>sI|CpUyLg3R3j%c9zPd@yQ9pc@9*~OtzN^-<%p%II`Tmzzm43}MSO*H)ds=PDdji9`)mjJTbk%wLe`C8koXV;w8-ElJfKQsa{9 zo*RWrTYqXrLcv%p!CC~Ij6!#7HlTv)JOg+$=8+eV1?y|XwMNIlBX3D-%nrz1wVJq6 zg~+>Iw`65emwPkl+9c18y#|3sO8irlBujn?(Z&hB0|%?ZwHVM485L+hLz3s|9|kw? z(c#eq*5Sc`n^&tYAD@Tolr5Nr7DHR9{EnLPEq?v>g5=U(-Ewr8<5*Pi@@n#-_19ar z(29Ez?)PoRJT6MyuM;~3kqGgjF1<=f$gO&|+x42ql`{XuMdRv2#PpP6E-8qQDP^Se z+!0mZKjb`zT+;1D`U_%%{TIq=Y7V;ESDAa&yD~gnEjw!ML#|AzP}pO5aijaXI!1V0 zo{7P!nZ9`8PW#S>`{afh>wbFM3w`F}Hlx-!=2x5<$_7ab$Ux}=R8q?DC!6Y6}sZP9}yU-xHHvLtILhcz9C3>eC*mR|3W|d0|PB6aV_zA0DL&puGBqTsy9g zB3+e;0)%8rg>Qir6z5|*KPGRXdD&f`iI*p4jgPZNRz%HC`Bbm?NHyGb--mk=f#C6_ z4C(_N6j#HlyN0bcnMQrC`8PG#51*U>`nPXL>0eckpn#;|Q&zkqHd@j=y1XV@2Fz29 zUGX#3YHUoW|IbY-$ILnfalUNo7hmR4jcJ%KAoCwSU}P86&O>82tdvZ(GvC>0eX9Qn zC*+?>kqIaYQKm=0xBeJ`y|Gv$-wst!mzUkSYnLJZ+r4dD0}*n@mqYu;k&5+MLPM{KjXNNH(60$I-3} zKy{bj?EH%wqkUXv5HiQq8TeKi&!1}lZ|Yh09IL4CA3{&+>#=dX96>=OI*$DyEC1G& zqY>(DJ2;_-*iYo<@g{j?Brmg4SXVk#rz$Ds?OHw3DBA1zPpl2+8sQL*%VGWKa@-8J zO&{yNHa&Lez@u%Wjlh+k!_glj{@Tk zLR5td?LQ;r{U1Gk4&Dg^Dh&S)Fa`jX+=cL@#6(zNRW#_LhoO69$ zn>KrH4pvu>=ucqcxP8erkR4qjrUqh0qJTAV&1uyi!sSaW0&y?aOt)}^iwcY;ZeRJL|c*kR;($$@XL|D(<0e9$^939-Wk%9`a6(zV^@bqe|z_T%hdALQ5a5}EaGWh_(8-KE;-s^93&hNf>FTo zZ$?vH+jqMHOBgUf)*lh4RbZ47Yp3;r^qYK6+4B$5(RcjL2de*sr@@`uFOhaqFdR9| zYDX7YF6YT3P7Y{13i5%Jl#pw|q{<@(W~eU%_d3`L2RznvnubPx>`G;X((m%z6k`$vNTfJw(Gj+Vq!ZCOGLGkj#ggIL zwhG74KCYeZ|9-8%eabq1o+0oOPxEOn0ihK2`U(;}1+`804rTq2%#~mGV2&CWnMaJ* zhj{{yT2{T&{CVI#qWG&KXN&*_RH_$rc%WY}^H*;1Pl4+=qnGJENbapxXqh8J`LdY7 zPY&8tf@hGIKwnt%J$wVUhl6#WKBPq9J)m%#W0L8IxO_}~87UrqW& z1F(PaB4Tt54MYzTz&fb%59iA<7}{sRve>IsTK_C?Mi8sd2haa6f6xIYTF2a~d`AI) zR2Sq*;=vRD%O7xJgs}^q%1t-GBSEXq@80zfLc}p9kAT4l`>hM|^~KYtPiIGKE9phg zp6$-h%d7fm2O)s=*#F@%w--*leS2Oz_2MmnvQcs&0(AXd0UVaNxVYk_E!6J9{aH*W z+k*oC%PVXLz=o`&S@NV4E%BlVuyz&<{Roh7Wx>|XRA?xSoVE$mpZIL^KZ*lzB5pux zJFbr`iKO+D0Cos8mRAmj;~?QAiN5Ald$EZS71P-DHv#^uOL4LV9!G%Nv$Mr-rsoS zgBb-v_)Y`VNY!>scPxI&PziAXJ29G?nk7gkm;|2%cyN6HL^;jwAiPW$pplqf;C}Yc z-}c}6kb9f&XqlB#>|q51Fc4LK#EHwca=*&aqglh7ZU=g(%9y&ilmOOC8DRC1?dnk4 zng7$HYA=4u$~x-Wv(yOb9`S_xZv^hkV%qhm$owxNGse-sFKN@&R$^C$x-oq)^l)&+?!o3K@TSHHE_(smc`kE@dxo;-Q7HkIaC z6-;-LFk%$OY$9ZqbXfi}1pF_tDY61)qGjwkka<_FWdO5iG_@cs@6iXKh8&*|t?K-d zs$`&0va{|Z)#iZGb+E%;Rpvc<6?9e`%mdO%WrZ4^--i798JWQUM zHblq7AYJk2bi3Ry+weU^Kv12%XXWHf0Q%Sy`T~G%8{xrA*ogfGXe6VN#&zaTJh*}w z{U}eHSP>e8{rk-}> z9^nFjR@twZ(<<>vLf&`#fd-q+c~m!SdyV62D%0DRbT*ynbv-FXRoW(Y+=)WCIAZ%3CfsfF;r9P}kX zYek4EQGl-braZ4JfEDzUNa+C?NKD<(0HLaQ{(@s(T4j&Sg$uM+351dB>_&aHDxeAc z@_&9YT{V_3m?wrc?+b#+ssf?aesf7*K|uj5@R+1mO2cp+;=X)+Y4EX*q=iH&hWU)F z-@Q(~aG-6op*pV4z$;jY_xnzqm6GyAcTVs8C$I3`_CZ9%Ceb75o_k}#%gq`<0x>{# zI5cd=*M$!sE(IpXQeR(x4Pa(fc@PvKmD0yBJIUGyJ*w^G!%Z4)zsq?3d>kp|nOz5u zT5~$VB{q1|ugVy&7$ASry z$JG%dMNN>`^ZnZI+&3)IzQqk2Yh)KYCwy5tz@*+!CVAE`MgmRIM|g>eiMaqQxB(Rh ze)P^637e@QKo9tQ=(wtkOmA@WgUw->Bh$HnA`bXy?enFn4}G}kV(;>I{nK-pKS<^B zdFUH*@&u?K^nHboN_@nmhj?)N09o$o2SXS_W;bXku1lRHSMj_4c6I_u{g+0kFe{3W9M}#{}91G7&v+Vju~Y`9vp+; z@8B4wv#J1dtJ=5cS9}5Ra#3F1RWKrK5Ed5psM)F7B~ulOZqFQh7|ccEE|()~Q#K8* z&v@7Nfu^kk)Y^5vzQS-48|CW>`+fqgh1qX3P#w#~wZ(#bK5}#&`Md`{>jgbAAJzPcGstjw84c^ zzK^oh7+8^u{bDJ=J|&!&gPxMzHVv@s`@ufDJrAQtOG@_hBcPK$Q>y@P9_co8K{s>j zwDyOQy!79)@SWyEEmgjrBS)Zgr$o_IBQGigVuY5nvKOiq4@i`ChEDJPK}Y^36qg3M zHfucKx&6%KK6Y=+OPr!uF5D?#+@;m8BO%g zpLgy_?GpOOqk(a0h}iKf2R%O^c#NUxYm$w(mgHPW8fM$H!(^@bgAIV-I0F!=U3*^C zWuih?y(KNGKFxwq?$*<^JQ?ttLIjCUZCFLcg%lZFqsKu=tJuu5O&Et}3)9SS?6qsV!rfmU>iXv@#qib-ab!Dp zQl~f#Epa2l8r7}g>~$w1Y%0aE#1WSq^lRiylIjtzl53a|EE_Za8Zn>H`h@ULlz1%5=j&)PGLJV91H?NX;z5CSt#e; z>i~o?nrGK8S=WKHIH5^x6yj}&6{aY(DTI=O6rLm`Nv0CDN`S`(Rs_A9MYy_5=hzG-GSTD#lXk% zPphu%O{0FoDUc2~H8p*9D;xtsRDNM08Hu-cebKFxCa1k~=g#4ByC_A!*}SG_{;pP zYCq>4pK$sEeaGRQDhx|MKu2*cqrWREFE5X?Bj_?cuNok_8I4QKd%wk{WRuG2hS>UUSDk5#IM!;b{`k=G9hbYDGx zt~XKH1A^<(2cEvZRUqPaJ=|DkRYzNDlS2J*LrXcYRwXTXZz68hzt+-)*Z?(D%jsXn z8*L8$IC)|x4l)nvQrzxwnfAe4%Yrm6B>St&REKfO{HEf6N=lE*e~G?jEKXcfvLCpm zEI{Jkx{fJE007Oai`FGo>P5JuA=$8Ta~b<3|lN;|GDKT^H@_B7#}UG9~w zv-?l8@2ZT{;-7pZ{qmw?!ICJdUrd?(FfwLn%iE(kmZs;xxT%gdIUth?dt%M7l3sLPA2dq6?w(srZWS#r=9pgJxW?5?h zc(7xmqodv8eLnuN&m<7|lA>3y4oF-AQcyR~Oz(NViEt+I6}@g;^+ZEyY5Q6TtIZ6>)ojBA+0%qvD4AgqQ1%9U@?f0FSTuxOGCBDkMBT=eYw^?10W88`cnQXC`hH@k}`goBmWK# z+LJ@}b}G{oupfzv__Rw8%us>*gy5Z65~>Y)=sX>77}ss>-{ zF5SK3SJ6+_15TrFoYOo(Mw>W5mN~R21Ld8srE`tj^Ygg@g}6aa2m3HM0r{z&0OuoO ztiFL3_X~HnQU|O#MxImkH-tI$16QG)av^`996(wD6i`ooL^WIkv{vrsyx;}ZTIPMP zgNJ@0UgLkxx?KC6W7NbgKsjM%jf_Bem0r7cEtpgBXtK0$c@E&NP7>B};G4tjGP>$H z1uC-E!Y|Y~0t8S&w%K*S2BR(#&@OE+9tpu@RQ-rl~^P871a~NYGx(@t`cupuy zst1(de>TDYpPQM*{YcH*w_hpn5iEs-goYcSA+WS7TDxEW-<~jnf7+i29-z*k$|nz8 zj!&y5=x1;`(f@11(d7R>?N}RtU0>y#+kN7?Gkv&U6E`@6$iMTePIANvjy@(P{;gL9 z`nuqY*j_C*vQtI+;^OB9`e5huO?2Y0Nx8?QI~ zL&)B}iTW=+>xgm>-XG#88j3XDO*|lwTQh#zKIxk{#wlKI%5gdhGlE&}KUWib_feyp z8tGl+HT!%`$xiq0EXkmW_j|jxFOv~b?1jy^R}1TSt2NuEc*$GuDre99wr^jy{*7mP z-Yxh1ZqH^-PdmY)*4IPlJ6rpf64jiWS|`O}j@XMg{#uy*R|4P&D*Pibi61+5^p;Jm z7mWo)0ry%IW6Y+-O=cU;LZ6pk-X(*_53B0+6hCG8*)BO<<9>o49N60H)6;;5%(P94 zBNQ@r8Aa&mT(TtjD{C%h>&q^qq}8kt3uZYB3^!QM)Nt7i^0$xKex2n7+`>z}zP-3g z;m~lcvB0-mXdw$|$c^1X4%!Mzr*4pRGYde3k@UM$h2xVakHs%uyjr`ujQ!SqkJmFh zPBB1pU^Suew47Y^z^Q_~0vAfug18-nB5=rj;z;kg26(V9`B-vWK0hqn#nLe>kP*?y zJahJ<<%l85l~lG{?ZBPZpWQVQ)W1eT)Hv4SUxQ4gHr&%toc=LZ0E=tcrO3;q)qOL0h-t z$>M#RgRN6N)<6(g#&x&{6O{q|c1yRCWCOj0z*0@DP^;farw)hId(xgnX;Wq zo6};`KYPhJ=rwZlb~`8N=}+{_%}19EkEa zZw{--l7;x^M)0p&sy|^KZQtEDRH$vDum6G)Ha#W~RFH7Qn~V(C3k|JTH9v1dJjcpR zC}_6)Ss6c79hmha$Nxh#pv~Ei#hz}YU_q}hl>Xp*ZG!z2=E$*AvqdXo{bAN7)&=R? zhFnDV6+VBL<&ueL)9x0*HW<36O;3z4x<%2tB?GG1dzlwveEMs(L$+~mHCnB&s=v*) zR5NY!F@$H@5WHULXshOo`S=pQlQWD66}CE$7Cb)-^G@;5)QH|uVuzv6WC;%+a#;mV zHo^Vr%a7P-(<|J&E2b)dQ+Koq&1er7edFEK(mYe(>hbmiwY2msW|cBB{32t@FBr-@ z58s7TAo6sFZ_ouXawP3c$D`_=mQR0GtBmO7*cM|@I{R^EL@TqftZS*gBO~Yf_8U%4 z%#1@_)ltVEUV$B8PWd66q3<^&)8pOoS}5A3TFtb+dP4A5Qan;o$(Y%y$$#izUPHNv zFTwWI?DN+pkQUr<^-Uic6XV)&6Lw7hG38Eb1>eb$3Sk59M!LL!Zt! zuAkm60a!s^C!|4CVbHkM~uliK8 z%-}^kZC?cY(`2J}#(oc7rX_7#yU$Q06CKFQrWSup$I=5qq=jLyn6Nx)k4y&ca{9;qdp|yS24! ziU-btNrh~$7x1sw)XX-o#hO|d_Ue?bEM2{I>*+c4tbx6QBa%nP^O3JNKyZ}4g}3sG zZExPwW(t2>U4$UJ2n!;}1vYl9a}A6|rUlYpyJ^8{K~<6Vd~End^%b>^s@s@gT3`2x zmQQaqHfS-pGuWQh#bX*8hve?nfazs}!aSYUHe7F#JEY31*K;_@f+}eA;mQ?R->%>2 z^8{0`a<75pi_23KV;75(Fw64#Rw2S-dAVY6pV`SO*TN$NG_b|J6^Rn1<>xG`vRap^ zdqi~IO*A%do*gMfMD9LVTD|DbX%vmtTiSz8$v~Q%XGwM2b$6B!DCY-@%gAW8nVd64 zbz1c?yHpjcNXG`^Hl0!OpN^W;LY`2;G<(d-;Bq75_3mEI;iijbz3tL-2ZOT~%{uN{ zLnWCerYvtmtA*V^?KWRB1t!JX{YP(lb~E~-Potx;$phhpio40JnwoUf=0aD?!p#{E zaav3b8AEL42GqajsMWB2_(3ZZ>oQnFm}Xjx_ksQVWm)5Q64@D#latX#FHyQrHTDI6 zc@5?(56;a{)2s4>RsEjQ7dF2T@g>@lf>j~qOnE}NL)^p0EB7wDlP^q2coknn>BS#W zFkZ~YA};gp=)$C__7p(P2S}6o{ieJ&qpLU5iFT!hY}p}*-$*J7hV6P_pl5ay7TC>u zJ;I}UOSs=ujLEn|S-fCqNmOQVJIvJVX3?5RSWU3+OxaR|H)vAMk{23`mjO3fmCSp) z%qz^I`uf|DYWMyE$uwHWOHU-C=Bw60KdbH+FH8o9Pu9kueJO5FUOUe?4_828VXJ|7}>?SeY*&Yj)mcBjm2eJ(SXqo2l=f3V{#*{J^_NFH6>)v0Rp#nyI>(a7kp zJv2J7)y4VVo znQA6_x33~)TD5Z{yo*nx^yKNOSqXKN1uC<2&l4YU_Mj_*i>633#&)+8b2~RlNanY2*LJ-E-uI(q(v2!0{{N4}o+xVWx zUP-nJ&#zu6x)i?gj@%j}g?}Z}S+X?YXtRd+YBvF6jS@bUdSop2*;&*&_{AcnVP3k* zlt8Pn?vv56PvPYRyjDZMj8r@A&>`MSrP#>5he|(vx+xOSzO~7S$DPQUW{GDPu0jW^ z++&hLu~$Q=;+OAw;=jLdq_qfpRzD0?!k^G(-w=h$5p{aGQ3|Uow+;n;)E@}l2qF^1 z-9HY{D4SGN>xvd-rLT!&_0rSJz=PpqvU%5TIZvBom?kgoeQUyEp=-St>~FRyY{ z^OY32bwD2*=3RJ?u26-#z8ki(FbeS@IniK7t=5l-`rK;h7n( zO^Z8t;dVOc0efVGI44yXxG{W(eq+Sl5;-tb5ZkHhUXhcNQ{}tLYr$y44X35So)Px2 zbFNuYzxn(`(m>0GGfZp!<2W8?-hUIpX!U`$W0B41hEKN5(0cw@`}*hL%@j4-ZF>Ct zY>?0qb5@3`#9-;WtZ12XjFs5q!~8w^;UX2`iL2EQt=pSXE44-8vo1Cb;t*$p+2U&padT_FS{! zs`qtcMcCv{tZUzk6D6S;$(e|vPs6BB^4K(X%4(JBYql-2p+kVkyG~XW87oAT#z9-jMYR9a(B#<_f_`Ou<{v7)T9jF+J#-e9D`jgvGAcz?yZEc z2WVmOExS~UVM=5lFsQW*oq9t0=54&r=(L>D+KIObL*BKsOMIDHk|L!_8amz}P5rjp z7c!Z>@9$NJaTKR8qNxkYZa<6_W42H4JoZ8{n`Nu07UY|Fmssaf)^MiCY;k4wT^qwQ z^W2QC8m6Q_KgF-%aMbDRY@x8?LMt!x;!cZ=SFJ|pD)+3X=tKP`Z4+GP3iI0YW4Fz$ zDM%S>Rm!`%hoR?XBEb&TS>5zKovN&}R?yFr8UA=eSY;St#Wj|(NBE)@?)*c0 zFnDp*5H8t8poXqJNeL#grU=`q0nJy0@C1Dkrey(YZEmG7W8;{yX3zdx-QsxYqZG3pwK4Fnu{S((ePl|VcxRx2h z!fZ_JL7f&8yS@OWJ@DhMW0ssz_iPWGeW)0=UJeH2yIZQZqtTVBpl6fzUAd{PbFTyGvCpYYcVzg==ayHA3Gn95giQpKAg9NFuUDslU%2E$!GO$(N^Wr#`*j5a)6AOX4 z5t4_RSp!(YmsQ5=-0L%<0qgzLh0?jRR{kvGR*52XI(BE#Lj8=t#B*O8sv7$?ugPJ@ z#DC2Ks4Nzdh=S=p4cCt-T$a}F)^y6$<7mFD^{RJbG8xs8Mq3;4oJL8eVLDfd;mqW? z!-}KSAqh`RS@KvY(qiNRYmHo@RrXv#Ya=dv134_X)$PGRZg<}qK{H5nVZnS?FAi7Q zlHQ+&-a-R4aSK=rZ~Yog(Z~>o(VLv?VRzJ+I?%Bw@`p-XuPtNMVGALH4x zyJz$m-q>6+v_INh(`%mhtLtp7yZUQuA%FFi2A3p%0n<^k_*s4Du&762M)l7;*t{kq)!B1c z3g+F>Iy_@2MWs1cBUC5XKMxG`OkMa=yR)0Xc|%l#^;ZlQVq-r?48wj@Yz$^K?-?+m)UFyo z+E}9zyQ&l7(u<^T#F}W>W^b^*v-Zq4qj3PTNB7nXg|>}%uCy07WLTP zw6Cs`_mh?=?a(B*nx=ifzenhj*%sy=qmgQN{(VQR;i7c_Bj;J6+}rVY>LLTA`x2wN zw{L>B_bYMtoI8Z!=bKcNlpr!0!R_SSj^rzpwF#S2_#82lot<=!sUMpT`n9=Xk~Kdm zs@|{X=;Z#t>Ld;AT3cA7zTmcY9pP?O@^NIW?xvas<%J=5&8;A$N zwRs`oAvQ#Z5E~J zI3a`@!8as!LK*#l4Sd~sY1N3lTqjx*WE?oT z(IH1RwF-U0Z;dcxB?z#>nggshqgP)x0Rzz5?q{hSo9A>GWo|_f1DP4Ky zcW_}Jd7?V(*UsB|gG3BYd~03!<~|5^a@-JqTGb_0@9BN1_i54tf$hc?vj)oHR7-GyjRRYvO{q{!ODAu0{!yCGJ;R?76U) zoWezrP{vrjx~M}Lj5_)HH=-8mh<8OHAyTDytr1bl|Jy;c$+3!;28jX!#r1>6lcX=8 zjyhZo6BFYdc)d5u)O;ITdkTjRpgPLNJpfC`OMQdy9_O%YCOk863t`i$(A9aQ@k<)Ww9FAy(nUMVUgU6-~}WKz|6jj6uY14J+o~%Aq@hL z2VFbuLX=H-rOqY)9Jq9<&yZ;7`aX#)k4{)favA!rMN`QJLv8h@Rx(?UG_jXVxFML~ z)6h@p2pAhkwHdGoM*wnyppQG!L)V{PAmNFuaV$AhXOi3QM%=(6pZMHujA@y9K8;2b zzacZ~H30{S)IeG7j5PMy8V}#rJ(w+n7MWZfnpGL074Gqix*9-N zzI9@l!aF87Z&n=Tf3|vU22{A0kG;rH4Guj$J{|(1*XSzvG{lg>Ur)MU^2bBlwp|d22X) z1a;>0>6@Yr(x%6b9UHjRUQKB;?H5r^Bl`FVpmvt1t<(4rJHW`wsW;FPJhgCs#}Vm! zMV$&0ZgjHG>-JRw(kjHqN0!BlKP^+Y<`SxetLSYGB>48zqhn)@J3$eIR@`D_(XvdN z3SDWyFh9L%g0gdYPh;P91#__c7p??54+jaFyDzYDyC;KJD;}!>>tJ5?c(I9i@CPzr&`6X6@zp8oOnJRztp^T5G_cS5!W+cg`e!9yUSJ_74kbX8~R z0q<2ZBTLogTegp~-l-Ua+0j5nF~2T9Q=`L=yl{;S*xR>y97BpuC;mSCLwo*TjrtAH zr}IE8|20*y3Z6<{O-(?DpDZl)cy7Kfd@%1_)~0QdPl|@K8(zl6%w?zX!qCwx2yA6Fie;5JQqb+ou#FZi31fu`Md_Qyr$xRJ`dxyG}5T*JNNstCRWS z65=Mr@5{k%-+XbTnI}W&(D^o5)yz#8TWsB2^utDQb>{QWG_L{pSpLXJ+VkY5EM3z3U(+V@7hJ%JDw&%EdTGN?Ts$mw>U{EtP+o_6hB7o}hnIG(pOI7s7Z#zF5F!Pf)6 zhrY6Y1rL!6Ez)L|APThi#tzu*RWT+U->*C$AaIXdBARJ>D=nHD7j@mQhX9q}y5N(T zlspq{jB_=;)qqc?)Gt4hMKYx`a1FO?U?GMj+dV1VTc`Ih2^dCMo!`gjwgVkQ3JU1y zRxKkV1F!2C0{Pu06&VRFdG@N@{9p=YCP%CAo=Pb0QFMF^b=_^Kl^;DJ8os#BEPx^K zATj*5%HSkzYG6mE`TXG4*Eix1!$F&GwihR8LAn-Fmk~IwPgkizk#Zqy|0t8P;^2nh zt5+X4$0=HT7Ezqd#i@38S_v7W75#e7tTh_rEhHX#vYF{?_Kj;U@tPpRfwF6EIFwPy zlkzsbZJz!0J`b%X(8K9LtwM+7oZj}kwN=9h4*SoyelNWq9~(FD{aEA0jcG5FwD!{5 zDyyTt;^zqAIw8R4*5cmmQnj561UneIh|Vx8faOBnEvc+*NqQqUw07ZvdHTjDnRr-D z%~vb*-P!!vF=W~jl`1>&^hSv?elF~e2|a3~f%&dpSG9|`EjegS)~4ijFy+a>5P&~r z1t#*dIAz%k5XF(ag4b3Z6H}9>oHM%0FtSP2i;Dv|fbpD*8cQ=Y4JySEAT?=NVXUL| z>tcdAlO5vHS*bSv(XdoXzCFw{&IE2XF@ut(`XZ9#>n^^QlD+@aaUMN$5D||tIb$V1 zr@ph z8^4R=!q!N-G}|zGR}V`MEFrQfsr-F7<$CtnDRV@9k^EF=S-=fovI`!qKMaMgt#Y|* zX&a-?S>3B{irW$Yo#tNcgk72G>(pg&G?l+e`07l$&%5H^!#Pi39hPLY+$3&u3rlPkbAc5XpPw?zS(m0r)@;LI5&R zJny}II%suuK!4k@_s2A~wTy$Wqk$hXA`!8HU)B+}PCPPyMf~UUu)5}{P@sCgT_M4~qF-wMcqInQr2e(esi}kLJaGHY1 zoI%TN+qR+atTlnWSY<11`2bjewaN{mB$DU@qq7nLEr(?dI00e5ht#<dvw?XvfLYkL)S@H$G`#!pDu>8;M|`}O>(qJb%uUj@UNNTgpK zvu#J>$RKb6A$(J*ddo#$ZWt?U{t$|_B}kF0?ktjq(~Y5>xi_Bmcuk0%{=Md|DUZ** zgm_Q9L|C6=j4J*ZA!It|jG*}G({Eb^rV0q3TQc)r+&DZ_`~R``o>5J1TiY<8h~gGh zM7JOyN)ZrH5Ri_5BE3kjB27R*YUo8oZ1mniIw6SyNvMgS(mM$VAt2Igq=ZNd?;X$C z=cvcM_j#Wm-*~?!Qr?{%=-+tni_je?&@D*%-nAsfRj=^itZ20pe|#7t05g>oj> z$LVJn>sc1E6JvALg{nV_4%!K%EaDl#>^XgNDKQMc$`PCX1629GlpE*~19SzNE);Sk z$XN``8fT3XZ_^&qm&4c3kfzo#IU8Sla>_1=7>9B0gjZCoc~Fp(`0RWyYuGAcN4*ON zF-t)eEcJ@eMjDkL-}C{rYX~5ujb6N^zfIE8D8-bT4Y_)6 zro)Fy<{B>nh%1Q#Z>3$cm4UlI2JmvTS)u1K&R~l=(Q;w6M8lCa zxeJ#&)6rY6l>PnF&C!HdojW;62fRqb3(KD;A*71x5@qTBJK$ydPY~FXPSNXEdi{Aj zQy)vfs&d0BxnZGIY|dxQwjhwp+aWqxQ6*9z5G& zZtXxqS$1{3#k4ly#iJ%g=5rQ7a9){_9BC z#>yr$KO=+w?FU3=coN~F0&JYH65)_jtS+2skGDnKLC=+`gEIv!a>f9jGfzpD&oc8M z{j_!X6aJbz6>tk8kQxKr`7J^7jR?qWs$ipV&E529Ht8{XGsgN(@rjw2b05ZoO92%o zo=T}|M8`|(g~X#?&8o%U#BGe!QG>-t&-lt7AdhrFF;jPXUN?^4gdvk@tkw`Kr2YWV7}2=ZZrfI@^T3{au}t{R`?z{cmyKofzM5OinqEF3a| zxU<~9t5`#?US0%bv=>;gS{Aq}qk9>~cBf~Y0vcUi0E6BL@-t**%BH&&fvs*DHP9*V zfAoC$*`(q{j93Lk>ehQcz6)9(pn8SOwgT`gX1KLVee)TB7tGAUS{nLx#OQ6xsZ-!3 zQZS@j=@GM`%ABhMnXXc^Pc}y!HwmlRP|NZjIcvC2sNc`d4z{)r&+!H*^b-at;?=@# z5{Rf5$nH&Xfh<7(CMheSa3f0^E+LG((c^e#+>nwe3Ftz6ndx+?d{m3*DBqU7H}`O{ zoG6Gx@Rw;8_;1cxL%u{me>sQ>q8))t-u$y64DX%kV$db?Py6}S3FgZRNNNp1iM{#6tB0nTy&r$57A+2m@Z>lh`R zX_ChN`&s*dUBJWd;KlMbxX)++DT&*%8&mlrW-y5jrxmJ(yvfgU2Lma^V<}~g#=r7S zqZB-UjFv)I{X-USF^1aT(+CFCz)TCJXiy0m)c_q5-{vaNrtZ@o8r)eel21xnCJ5(_ zE_9SjG5$th1`5%t%ab(9m54C#^{uW2&6m}=?pK~?ze7{TBIqt@<2wiV^DN~;m_Tw%79}*{4485AZ z!K2kjyp!#*BVx7Fu#oafwqw7Vx^I6o{U+uh`6IOR57848MV6{$-*-}wo}ny=cDpmh zsyEY*@YVUqp9;);8u&JNr9T;b5s$UC^+Nin2{kpfrFtUZnSt}1Y%2Gs$|_&~0UiE$ z@_2pIo%y^7$iNIn{HY9#);D6g>i32L=q3Jl97*7zA4FM_0Wvj3h3J3Pb^hN_*THd7 zZ|Cr+-3a@pY@_nlpy<`k>8k8i5xrkHs&9KV%n)dK=L)m^-djql$9&J{D-d1 zVU2MxrC{NIBDFKu%1)o!i~FZ$Pskg~59;E`^i>g^KYgRYZ*OG((;Io^H}V6#VkU?k zPr00%VA8$JU(pzWzbPz!lcSRV-oSA{{e?~-YlIg2d&8A(Ke0f69v&It>^eQ@5={;} zZ}^{b?eFhV_N~+H@Aqv6zXIq*>hfqf10lEK@g=@Xy^=beQ=k4_!twwY`~}>2_|IGm z`r8I{`r-XB09DyG^)Cy?&I6l00O+Xu9YOO*Z|0v~dZM8$IBrG$XAbdS$QvDn z$dvsP?EQaH`t-+vWG1Nqa+_o)_5#{qhf2PpXo2EINr#HR6xlgm68Tg47|nqL5EtBV zQ-jn6YJXYF%jr@8j~y>5CVNEz*{y(HKbVA!(Vt)6PY`g4`7gwA4tl>d_+qERcNc{6 zAnak7vYB#$TF*(bSEcfRtdVqaJ5YP)`J`;OWThV{x~%$Q^j}Eh9F~U0TzgeVLq^`L zaTDfMfPIK&o+J9cxxXL-#G?*a%;UM0^9|+Y8k~3>|I!opK`xVsm2y+jUrU$%!?0fS zezFX5H9aGXGUhg`DF1VLoJIbPOvR*bi#EXY`6VlVd2;^aGzCJJ@-KmF=lO&lVQ0n1 zPtkZ~=v?zG0uPHS3j-6e^6HZx>p&j3(a+p*%@KLiN+Snf3d1*MfQeR3jK>iI-} z0oMQf=+C`HO{$qSjAcLmNlZD?4G^=Eatr?tWt<R$8-Gh-2<$~ z_xagQ>AwDgY%tVUP*y&1Dvl>N*H~BW68&Ml0@Wk3RXQ|B1UaWeRzA5R>>U#DT`NnV zZa>EO2G7~C9#PhAzYtHtuU9zKlNu$Qj=}S?lH12iXz+i^WCJ9hQ*=taI*#icgk>xb8qx(qfUd83#{z}TI{=CBd z6*+$D+8z5$Yf8P|0p^6#^KpjiZGUh9{zw!2r(IHfT&y-w?-WSm;eQv1UFm%OUWF$c zP!1*)@C4CjQc?TA{d*~yPh!AJ!TS2$&jbF0PVw(Wcu>FrL5dPJTD=22C@=WiyT7Qc zr_5|F6%h6wrOHy@jsdpnKIT!}uNUfH9$lvwm|j{7YN%B%<%jm355EGizS|{V1b{a| z^V5Z|QUsY`A8OeDlR@;uEK@QvD`>d2tsI~{L!uT*`J>|EPfq>w3cwH!6zKdmAPv0H zn0ukopZwz=W<#S3w4*u>Zcdd2B#u_Ds!9FL9G(9JB=`=X9&4PJ2fkpdZ_@m4zThQ= z{#NcU!YTngh(DMw`8Ojz1VkMY58cz!oq?$ux>fae12zT*9A4PpIgkf9Er~;a^XZ3E zfq$<#^T-q!bxB9h)ZeVvYoLO2_Q_!uxxX0VeT=MKDjyzijG<<^N-+g(gu3r>sNSS>9V|GJiA5gL9(?zKt}TVA>k9cdo&FUS^LevUr{pIoT zR-I<$;M7VLvH#(LS7ty|bcrc^BN?!8r0rg@Rfj_6!_kn1rrY0r<BPUE%mB$s03 zmRm0GJO{>YTv>&

-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 Date: Thu, 20 Aug 2020 14:03:40 +0200 Subject: [PATCH 44/72] fix(core): check id_tokens according to base64url instead of base64 --- packages/core/src/layout/SignInPage/customProvider.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/layout/SignInPage/customProvider.tsx b/packages/core/src/layout/SignInPage/customProvider.tsx index d3a292ce87..6c47b4e623 100644 --- a/packages/core/src/layout/SignInPage/customProvider.tsx +++ b/packages/core/src/layout/SignInPage/customProvider.tsx @@ -29,7 +29,8 @@ import { InfoCard } from '../InfoCard/InfoCard'; import { ProviderComponent, ProviderLoader, SignInProvider } from './types'; import { GridItem } from './styles'; -const ID_TOKEN_REGEX = /^[a-z0-9+/]+\.[a-z0-9+/]+\.[a-z0-9+/]+$/i; +// accept base64url format according to RFC7515 (https://tools.ietf.org/html/rfc7515#section-3) +const ID_TOKEN_REGEX = /^[a-z0-9_\-]+\.[a-z0-9_\-]+\.[a-z0-9_\-]+$/i; const useFormStyles = makeStyles(theme => ({ form: { From 13908d69c2ddc24b852319c3ff8e09d06cb5ff8f Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Thu, 20 Aug 2020 14:06:09 +0200 Subject: [PATCH 45/72] TechDocs: Access entity techdocs from service catalog (#1835) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * attempt to add back react as a dep * Fixed failing test * fix(techdocs): Hopefully fixed tests * Fixed another failing test * Initial apiRef for techdocs storage * Cleaned up some code in reader * test(headertabs): add tests to HeaderTabs component * fix(headertabs): change tab mock id * fix(techdocs-generator): fix problem with macOS symlink to tmp folder * fix(lint): remove unused configApiRef * wip * Ongoing cleanups * Cleanups and fix tests * WIP cleanups * Clean up some things * Clean up some things * Added missing notice header * ts issue fixed * Add show contition to api tab Co-authored-by: Fredrik Adelöw Co-authored-by: Emma Indal --- packages/app/src/App.test.tsx | 3 + packages/app/src/apis.ts | 19 ++- .../core-api/src/apis/definitions/auth.ts | 4 +- .../implementations/auth/auth0/Auth0Auth.ts | 6 +- .../src/layout/HeaderTabs/HeaderTabs.test.tsx | 50 ++++++ packages/core/src/layout/HeaderTabs/index.tsx | 17 +- .../core/src/layout/ItemCard/ItemCard.tsx | 2 +- .../src/layout/SignInPage/auth0Provider.tsx | 3 +- .../src/providers/auth0/strategy.ts | 33 ++-- .../auth-backend/src/providers/factories.ts | 2 +- plugins/catalog/package.json | 1 + .../components/CatalogTable/CatalogTable.tsx | 1 + .../src/components/EntityPage/EntityPage.tsx | 42 +++-- .../EntityPageDocs/EntityDocsPage.tsx | 34 ++++ plugins/catalog/src/plugin.ts | 3 +- plugins/catalog/src/routes.ts | 7 +- .../RegisterComponentResultDialog.tsx | 1 + plugins/techdocs-backend/.eslintrc.js | 1 + .../documented-component/docs/sub-page.md | 1 + .../examples/documented-component/mkdocs.yml | 1 + .../techdocs-backend/src/service/router.ts | 45 ++++-- .../src/techdocs/stages/generate/helpers.ts | 10 ++ .../src/techdocs/stages/generate/techdocs.ts | 10 +- .../src/techdocs/stages/publish/local.test.ts | 9 +- .../src/techdocs/stages/publish/local.ts | 7 +- plugins/techdocs/package.json | 5 + plugins/techdocs/src/api.test.ts | 42 +++++ plugins/techdocs/src/api.ts | 70 +++++++++ plugins/techdocs/src/index.ts | 2 + plugins/techdocs/src/plugin.ts | 6 +- .../techdocs/src/reader/components/Reader.tsx | 103 +++++------- .../reader/components/TechDocsHome.test.tsx | 26 +++- .../src/reader/components/TechDocsHome.tsx | 96 +++++++----- .../src/reader/components/TechDocsPage.tsx | 39 +++++ .../components/TechDocsPageWrapper.test.tsx | 3 +- .../techdocs/src/reader/components/index.ts | 17 ++ plugins/techdocs/src/reader/index.tsx | 1 + .../reader/transformers/addBaseUrl.test.ts | 147 ++++++------------ .../src/reader/transformers/addBaseUrl.ts | 21 ++- .../reader/transformers/onCssReady.test.ts | 27 ++-- .../transformers/rewriteDocLinks.test.ts | 6 +- .../reader/transformers/rewriteDocLinks.ts | 17 +- .../techdocs/src/reader/urlFormatter.test.ts | 84 ---------- plugins/techdocs/src/reader/urlFormatter.ts | 39 ----- plugins/techdocs/src/types.ts | 21 +++ yarn.lock | 35 +++++ 46 files changed, 672 insertions(+), 447 deletions(-) create mode 100644 packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx create mode 100644 plugins/catalog/src/components/EntityPageDocs/EntityDocsPage.tsx create mode 100644 plugins/techdocs-backend/examples/documented-component/docs/sub-page.md create mode 100644 plugins/techdocs/src/api.test.ts create mode 100644 plugins/techdocs/src/api.ts create mode 100644 plugins/techdocs/src/reader/components/TechDocsPage.tsx create mode 100644 plugins/techdocs/src/reader/components/index.ts delete mode 100644 plugins/techdocs/src/reader/urlFormatter.test.ts delete mode 100644 plugins/techdocs/src/reader/urlFormatter.ts create mode 100644 plugins/techdocs/src/types.ts diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx index 26c3466ba1..ec291a752b 100644 --- a/packages/app/src/App.test.tsx +++ b/packages/app/src/App.test.tsx @@ -27,6 +27,9 @@ describe('App', () => { data: { app: { title: 'Test' }, backend: { baseUrl: 'http://localhost:7000' }, + techdocs: { + storageUrl: 'http://localhost:7000/techdocs/static/docs', + }, }, context: 'test', }, diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 3bc0c82b31..a8e5485727 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -58,6 +58,10 @@ import { GraphQLEndpoints, } from '@backstage/plugin-graphiql'; import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; +import { + techdocsStorageApiRef, + TechDocsStorageApi, +} from '@backstage/plugin-techdocs'; import { rollbarApiRef, RollbarClient } from '@backstage/plugin-rollbar'; import { @@ -66,13 +70,17 @@ import { } from '@backstage/plugin-github-actions'; import { jenkinsApiRef, JenkinsApi } from '@backstage/plugin-jenkins'; -import { TravisCIApi, travisCIApiRef } from '@roadiehq/backstage-plugin-travis-ci'; +import { + TravisCIApi, + travisCIApiRef, +} from '@roadiehq/backstage-plugin-travis-ci'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console console.log(`Creating APIs for ${config.getString('app.title')}`); const backendUrl = config.getString('backend.baseUrl'); + const techdocsUrl = config.getString('techdocs.storageUrl'); const builder = ApiRegistry.builder(); @@ -138,7 +146,7 @@ export const apis = (config: ConfigApi) => { oauthRequestApi, }), ); - + builder.add( auth0AuthApiRef, Auth0Auth.create({ @@ -208,5 +216,12 @@ export const apis = (config: ConfigApi) => { }), ); + builder.add( + techdocsStorageApiRef, + new TechDocsStorageApi({ + apiOrigin: techdocsUrl, + }), + ); + return builder.build(); }; diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index 05c4ed48af..a1a408fece 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -270,7 +270,9 @@ export const gitlabAuthApiRef = createApiRef< * See https://auth0.com/docs/scopes/current/oidc-scopes * for a full list of supported scopes. */ -export const auth0AuthApiRef = createApiRef({ +export const auth0AuthApiRef = createApiRef< + OpenIdConnectApi & ProfileInfoApi & BackstageIdentityApi & SessionStateApi +>({ id: 'core.auth.auth0', description: 'Provides authentication towards Auth0 APIs', }); diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts index 3d8a42a4cc..99529b8d2a 100644 --- a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts @@ -96,11 +96,7 @@ class Auth0Auth const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - `email`, - `profile`, - ]), + defaultScopes: new Set(['openid', `email`, `profile`]), sessionScopes: (session: Auth0Session) => session.providerInfo.scopes, sessionShouldRefresh: (session: Auth0Session) => { const expiresInSec = diff --git a/packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx b/packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx new file mode 100644 index 0000000000..a007bf9113 --- /dev/null +++ b/packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { wrapInTestApp } from '@backstage/test-utils'; +import { HeaderTabs } from './'; + +const mockTabs = [ + { id: 'overview', label: 'Overview' }, + { id: 'docs', label: 'Docs' }, +]; + +describe('', () => { + it('should render tabs', () => { + const rendered = render(wrapInTestApp()); + + expect(rendered.getByText('Overview')).toBeInTheDocument(); + expect(rendered.getByText('Docs')).toBeInTheDocument(); + }); + + it('should render correct selected tab', () => { + const rendered = render(wrapInTestApp()); + + expect(rendered.getByText('Docs').parentElement).toHaveAttribute( + 'aria-selected', + 'false', + ); + + rendered.getByText('Docs').click(); + + expect(rendered.getByText('Docs').parentElement).toHaveAttribute( + 'aria-selected', + 'true', + ); + }); +}); diff --git a/packages/core/src/layout/HeaderTabs/index.tsx b/packages/core/src/layout/HeaderTabs/index.tsx index 838b126569..b509cae14f 100644 --- a/packages/core/src/layout/HeaderTabs/index.tsx +++ b/packages/core/src/layout/HeaderTabs/index.tsx @@ -17,7 +17,7 @@ // TODO(blam): Remove this implementation when the Tabs are ready // This is just a temporary solution to implementing tabs for now -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { makeStyles, Tabs, Tab } from '@material-ui/core'; const useStyles = makeStyles(theme => ({ @@ -46,15 +46,24 @@ export type Tab = { export const HeaderTabs: React.FC<{ tabs: Tab[]; onChange?: (index: number) => void; -}> = ({ tabs, onChange }) => { - const [selectedTab, setSelectedTab] = useState(0); + selectedIndex?: number; +}> = ({ tabs, onChange, selectedIndex }) => { + const [selectedTab, setSelectedTab] = useState(selectedIndex ?? 0); const styles = useStyles(); const handleChange = (_: React.ChangeEvent<{}>, index: number) => { - setSelectedTab(index); + if (selectedIndex === undefined) { + setSelectedTab(index); + } if (onChange) onChange(index); }; + useEffect(() => { + if (selectedIndex !== undefined) { + setSelectedTab(selectedIndex); + } + }, [selectedIndex]); + return (

({ })); type ItemCardProps = { - description: string; + description?: string; tags?: string[]; title: string; type?: string; diff --git a/packages/core/src/layout/SignInPage/auth0Provider.tsx b/packages/core/src/layout/SignInPage/auth0Provider.tsx index cfc44ef7d3..ae4e5f8b82 100644 --- a/packages/core/src/layout/SignInPage/auth0Provider.tsx +++ b/packages/core/src/layout/SignInPage/auth0Provider.tsx @@ -78,8 +78,7 @@ const loader: ProviderLoader = async apis => { return { userId: identity.id, profile: profile!, - getIdToken: () => - auth0AuthApi.getBackstageIdentity().then(i => i!.idToken), + getIdToken: () => auth0AuthApi.getBackstageIdentity().then(i => i!.idToken), logout: async () => { await auth0AuthApi.logout(); }, diff --git a/plugins/auth-backend/src/providers/auth0/strategy.ts b/plugins/auth-backend/src/providers/auth0/strategy.ts index 4dd7440448..6ac06ec4e9 100644 --- a/plugins/auth-backend/src/providers/auth0/strategy.ts +++ b/plugins/auth-backend/src/providers/auth0/strategy.ts @@ -16,22 +16,25 @@ import OAuth2Strategy from 'passport-oauth2'; export interface Auth0StrategyOptionsWithRequest { - clientID: string; - clientSecret: string; - callbackURL: string; - domain: string; - passReqToCallback: true; + clientID: string; + clientSecret: string; + callbackURL: string; + domain: string; + passReqToCallback: true; } export default class Auth0Strategy extends OAuth2Strategy { - constructor(options: Auth0StrategyOptionsWithRequest, verify: OAuth2Strategy.VerifyFunctionWithRequest) { - const optionsWithURLs = { - ...options, - authorizationURL: `https://${options.domain}/authorize`, - tokenURL: `https://${options.domain}/oauth/token`, - userInfoURL: `https://${options.domain}/userinfo`, - apiUrl: `https://${options.domain}/api`, - } - super(optionsWithURLs, verify) - } + constructor( + options: Auth0StrategyOptionsWithRequest, + verify: OAuth2Strategy.VerifyFunctionWithRequest, + ) { + const optionsWithURLs = { + ...options, + authorizationURL: `https://${options.domain}/authorize`, + tokenURL: `https://${options.domain}/oauth/token`, + userInfoURL: `https://${options.domain}/userinfo`, + apiUrl: `https://${options.domain}/api`, + }; + super(optionsWithURLs, verify); + } } diff --git a/plugins/auth-backend/src/providers/factories.ts b/plugins/auth-backend/src/providers/factories.ts index 8443a7928d..bae5bd5d43 100644 --- a/plugins/auth-backend/src/providers/factories.ts +++ b/plugins/auth-backend/src/providers/factories.ts @@ -23,7 +23,7 @@ import { createGoogleProvider } from './google'; import { createOAuth2Provider } from './oauth2'; import { createOktaProvider } from './okta'; import { createSamlProvider } from './saml'; -import { createAuth0Provider } from './auth0' +import { createAuth0Provider } from './auth0'; import { AuthProviderConfig, AuthProviderFactory, diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 22085d5184..44b3a7b7ee 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -28,6 +28,7 @@ "@backstage/plugin-jenkins": "^0.1.1-alpha.18", "@backstage/plugin-scaffolder": "^0.1.1-alpha.18", "@backstage/plugin-sentry": "^0.1.1-alpha.18", + "@backstage/plugin-techdocs": "^0.1.1-alpha.18", "@backstage/theme": "^0.1.1-alpha.18", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx index 00dacdc0fe..eed8998fb7 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx @@ -45,6 +45,7 @@ const columns: TableColumn[] = [ .filter(Boolean) .join(':'), kind: entity.kind, + selectedTabId: 'overview', })} > {entity.metadata.name} diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx index 8a375b8d6e..a36ac32a07 100644 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ b/plugins/catalog/src/components/EntityPage/EntityPage.tsx @@ -20,12 +20,12 @@ import { errorApiRef, Header, HeaderLabel, - HeaderTabs, Page, pageTheme, PageTheme, Progress, useApi, + HeaderTabs, } from '@backstage/core'; import { Box } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; @@ -34,6 +34,7 @@ import { useNavigate, useParams } from 'react-router-dom'; import { useAsync } from 'react-use'; import { catalogApiRef } from '../..'; import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu'; +import { EntityPageDocs } from '../EntityPageDocs/EntityDocsPage'; import { EntityPageApi } from '../EntityPageApi/EntityPageApi'; import { EntityPageOverview } from '../EntityPageOverview/EntityPageOverview'; import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; @@ -75,11 +76,17 @@ const EntityPageTitle: FC<{ title: string; entity: Entity | undefined }> = ({ ); export const EntityPage: FC<{}> = () => { - const { optionalNamespaceAndName, kind } = useParams() as { + const { + optionalNamespaceAndName, + kind, + selectedTabId = 'overview', + } = useParams() as { optionalNamespaceAndName: string; kind: string; + selectedTabId: string; }; const navigate = useNavigate(); + const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); const errorApi = useApi(errorApiRef); @@ -100,8 +107,6 @@ export const EntityPage: FC<{}> = () => { } }, [errorApi, navigate, error, loading, entity]); - const [selectedTabId, setSelectedTabId] = useState(''); - if (!name) { navigate('/catalog'); return null; @@ -132,6 +137,7 @@ export const EntityPage: FC<{}> = () => { { id: 'api', label: 'API', + show: (e: Entity) => !!e?.spec?.implementsApis, content: (e: Entity) => , }, { @@ -142,6 +148,13 @@ export const EntityPage: FC<{}> = () => { id: 'quality', label: 'Quality', }, + { + id: 'docs', + label: 'Docs', + show: (e: Entity) => + !!e.metadata.annotations?.['backstage.io/techdocs-ref'], + content: (e: Entity) => , + }, ]; const { headerTitle, headerType } = headerProps( @@ -151,7 +164,11 @@ export const EntityPage: FC<{}> = () => { entity, ); - const selectedTab = tabs.find(tab => tab.id === selectedTabId) || tabs[0]; + const selectedTab = tabs.find(tab => tab.id === selectedTabId); + + const filteredHeaderTabs = entity + ? tabs.filter(tab => (tab.show ? tab.show(entity) : true)) + : []; return ( @@ -186,17 +203,18 @@ export const EntityPage: FC<{}> = () => { {entity && ( <> { - setSelectedTabId(tabs[idx].id); + navigate( + `/catalog/${kind}/${optionalNamespaceAndName}/${tabs[idx].id}`, + ); }} + selectedIndex={tabs.findIndex(tab => tab.id === selectedTabId)} /> - - {selectedTab && selectedTab.content - ? selectedTab.content(entity) - : null} - + {selectedTab && selectedTab.content + ? selectedTab.content(entity) + : null} { + return ( + + + + ); +}; diff --git a/plugins/catalog/src/plugin.ts b/plugins/catalog/src/plugin.ts index 8f4ac80f48..483e1f8464 100644 --- a/plugins/catalog/src/plugin.ts +++ b/plugins/catalog/src/plugin.ts @@ -17,12 +17,13 @@ import { createPlugin } from '@backstage/core'; import { CatalogPage } from './components/CatalogPage/CatalogPage'; import { EntityPage } from './components/EntityPage/EntityPage'; -import { entityRoute, rootRoute } from './routes'; +import { entityRoute, rootRoute, entityRouteDefault } from './routes'; export const plugin = createPlugin({ id: 'catalog', register({ router }) { router.addRoute(rootRoute, CatalogPage); router.addRoute(entityRoute, EntityPage); + router.addRoute(entityRouteDefault, EntityPage); }, }); diff --git a/plugins/catalog/src/routes.ts b/plugins/catalog/src/routes.ts index 69c4e651b4..a8ff8df685 100644 --- a/plugins/catalog/src/routes.ts +++ b/plugins/catalog/src/routes.ts @@ -25,6 +25,11 @@ export const rootRoute = createRouteRef({ }); export const entityRoute = createRouteRef({ icon: NoIcon, - path: '/catalog/:kind/:optionalNamespaceAndName/', + path: '/catalog/:kind/:optionalNamespaceAndName/:selectedTabId/*', + title: 'Entity', +}); +export const entityRouteDefault = createRouteRef({ + icon: NoIcon, + path: '/catalog/:kind/:optionalNamespaceAndName', title: 'Entity', }); diff --git a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx index 68b06d1751..15d0b9ced6 100644 --- a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx +++ b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx @@ -63,6 +63,7 @@ export const RegisterComponentResultDialog: FC = ({ .filter(Boolean) .join(':'), kind: entity.kind, + selectedTabId: 'overview', }); return ( diff --git a/plugins/techdocs-backend/.eslintrc.js b/plugins/techdocs-backend/.eslintrc.js index 16a033dbc6..595853b48b 100644 --- a/plugins/techdocs-backend/.eslintrc.js +++ b/plugins/techdocs-backend/.eslintrc.js @@ -1,3 +1,4 @@ module.exports = { extends: [require.resolve('@backstage/cli/config/eslint.backend')], + ignorePatterns: ['static/**'], }; diff --git a/plugins/techdocs-backend/examples/documented-component/docs/sub-page.md b/plugins/techdocs-backend/examples/documented-component/docs/sub-page.md new file mode 100644 index 0000000000..bbd98558e0 --- /dev/null +++ b/plugins/techdocs-backend/examples/documented-component/docs/sub-page.md @@ -0,0 +1 @@ +# Another page in our documentation diff --git a/plugins/techdocs-backend/examples/documented-component/mkdocs.yml b/plugins/techdocs-backend/examples/documented-component/mkdocs.yml index 6a3f85d020..3b48e8edff 100644 --- a/plugins/techdocs-backend/examples/documented-component/mkdocs.yml +++ b/plugins/techdocs-backend/examples/documented-component/mkdocs.yml @@ -2,6 +2,7 @@ site_name: 'example-docs' nav: - Home: index.md + - SubPage: sub-page.md plugins: - techdocs-core diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index 874ab7c89c..e11e3bb57f 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -48,6 +48,21 @@ export async function createRouter({ }: RouterOptions): Promise { const router = Router(); + const buildDocsForEntity = async (entity: Entity) => { + const preparer = preparers.get(entity); + const generator = generators.get(entity); + + const { resultDir } = await generator.run({ + directory: await preparer.prepare(entity), + dockerClient, + }); + + await publisher.publish({ + entity, + directory: resultDir, + }); + }; + router.get('/', async (_, res) => { res.status(200).send('Hello TechDocs Backend'); }); @@ -64,18 +79,7 @@ export async function createRouter({ ); entitiesWithDocs.forEach(async entity => { - const preparer = preparers.get(entity); - const generator = generators.get(entity); - - const { resultDir } = await generator.run({ - directory: await preparer.prepare(entity), - dockerClient, - }); - - publisher.publish({ - entity, - directory: resultDir, - }); + await buildDocsForEntity(entity); }); res.send('Successfully generated documentation'); @@ -86,6 +90,23 @@ export async function createRouter({ '/static/docs/', express.static(path.resolve(__dirname, `../../static/docs`)), ); + router.use( + '/static/docs/:kind/:namespace/:name', + async (req, res, next) => { + const baseUrl = config.getString('backend.baseUrl'); + const { kind, namespace, name } = req.params; + + const entityResponse = await fetch( + `${baseUrl}/catalog/entities/by-name/${kind}/${namespace}/${name}`, + ); + if (!entityResponse.ok) next(); + const entity = (await entityResponse.json()) as Entity; + + await buildDocsForEntity(entity); + + res.redirect(req.originalUrl); + }, + ); } return router; diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts index 7dc4403977..88667f9903 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts @@ -47,6 +47,16 @@ export async function runDockerContainer({ dockerClient, createOptions, }: RunDockerContainerOptions) { + await new Promise((resolve, reject) => { + dockerClient.pull(imageName, {}, (err, stream) => { + if (err) return reject(err); + stream.pipe(logStream, { end: false }); + stream.on('end', () => resolve()); + stream.on('error', (error: Error) => reject(error)); + return undefined; + }); + }); + const [{ Error: error, StatusCode: statusCode }] = await dockerClient.run( imageName, args, diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts index d6650fb744..32b811af78 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts @@ -19,7 +19,7 @@ import { GeneratorRunResult, } from './types'; import { runDockerContainer } from './helpers'; -import fs from 'fs'; +import fs from 'fs-extra'; import path from 'path'; import os from 'os'; @@ -29,7 +29,12 @@ export class TechdocsGenerator implements GeneratorBase { logStream, dockerClient, }: GeneratorRunOptions): Promise { - const resultDir = fs.mkdtempSync(path.join(os.tmpdir(), `techdocs-tmp-`)); + const tmpdirPath = os.tmpdir(); + // Fixes a problem with macOS returning a path that is a symlink + const tmpdirResolvedPath = fs.realpathSync(tmpdirPath); + const resultDir = fs.mkdtempSync( + path.join(tmpdirResolvedPath, 'techdocs-tmp-'), + ); await runDockerContainer({ imageName: 'spotify/techdocs', @@ -43,6 +48,7 @@ export class TechdocsGenerator implements GeneratorBase { console.log( `[TechDocs]: Successfully generated docs from ${directory} into ${resultDir}`, ); + return { resultDir }; } } diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts index b5a96e4feb..1ed8be3898 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts @@ -48,8 +48,13 @@ describe('local publisher', () => { `../../../../static/docs/${mockEntity.metadata.name}`, ); - expect(fs.existsSync(publishDir)).toBeTruthy(); - expect(fs.existsSync(path.join(publishDir, '/mock-file'))).toBeTruthy(); + const resultDir = path.resolve( + __dirname, + `../../../../static/docs/${mockEntity.kind}/default/${mockEntity.metadata.name}`, + ); + + expect(fs.existsSync(resultDir)).toBeTruthy(); + expect(fs.existsSync(path.join(resultDir, '/mock-file'))).toBeTruthy(); fs.removeSync(publishDir); fs.removeSync(tempDir); diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts index 227ba445ae..73a7d5a758 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts @@ -30,9 +30,14 @@ export class LocalPublish implements PublisherBase { remoteUrl: string; }> | { remoteUrl: string } { + const entityNamespace = entity.metadata.namespace ?? 'default'; + const publishDir = path.resolve( __dirname, - `../../../../static/docs/${entity.metadata.name}`, + '../../../../static/docs/', + entity.kind, + entityNamespace, + entity.metadata.name ); if (!fs.existsSync(publishDir)) { diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index a1b7ddb589..03f1d6053b 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -22,12 +22,16 @@ "clean": "backstage-cli clean" }, "dependencies": { + "@backstage/catalog-model": "^0.1.1-alpha.18", "@backstage/core": "^0.1.1-alpha.18", + "@backstage/core-api": "^0.1.1-alpha.18", + "@backstage/plugin-catalog": "^0.1.1-alpha.18", "@backstage/test-utils": "^0.1.1-alpha.18", "@backstage/theme": "^0.1.1-alpha.18", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", + "@types/react": "^16.9", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router": "6.0.0-beta.0", @@ -43,6 +47,7 @@ "@testing-library/user-event": "^12.0.7", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", + "canvas": "^2.6.1", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/techdocs/src/api.test.ts b/plugins/techdocs/src/api.test.ts new file mode 100644 index 0000000000..0ab05d5ecd --- /dev/null +++ b/plugins/techdocs/src/api.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TechDocsStorageApi } from './api'; + +const DOC_STORAGE_URL = 'https://example-storage.com'; + +const mockEntity = { + kind: 'Component', + namespace: 'default', + name: 'test-component', +}; + +describe('TechDocsStorageApi', () => { + it('should return correct base url based on defined storage', () => { + const storageApi = new TechDocsStorageApi({ apiOrigin: DOC_STORAGE_URL }); + + expect(storageApi.getBaseUrl('test.js', mockEntity, '')).toEqual( + `${DOC_STORAGE_URL}/${mockEntity.kind}/${mockEntity.namespace}/${mockEntity.name}/test.js`, + ); + }); + + it('should return base url with correct entity structure', () => { + const storageApi = new TechDocsStorageApi({ apiOrigin: DOC_STORAGE_URL }); + + expect(storageApi.getBaseUrl('test/', mockEntity, '')).toEqual( + `${DOC_STORAGE_URL}/${mockEntity.kind}/${mockEntity.namespace}/${mockEntity.name}/test/`, + ); + }); +}); diff --git a/plugins/techdocs/src/api.ts b/plugins/techdocs/src/api.ts new file mode 100644 index 0000000000..951ad5e16c --- /dev/null +++ b/plugins/techdocs/src/api.ts @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createApiRef } from '@backstage/core'; + +import { ParsedEntityId } from './types'; + +export const techdocsStorageApiRef = createApiRef({ + id: 'plugin.techdocs.storageservice', + description: 'Used to make requests towards the techdocs storage', +}); + +export interface TechDocsStorage { + getEntityDocs(entityId: ParsedEntityId, path: string): Promise; + getBaseUrl( + oldBaseUrl: string, + entityId: ParsedEntityId, + path: string, + ): string; +} + +export class TechDocsStorageApi implements TechDocsStorage { + public apiOrigin: string; + + constructor({ apiOrigin }: { apiOrigin: string }) { + this.apiOrigin = apiOrigin; + } + + async getEntityDocs(entityId: ParsedEntityId, path: string) { + const { kind, namespace, name } = entityId; + + const url = `${this.apiOrigin}/${kind}/${namespace ? namespace : 'default'}/${name}/${path}`; + + const request = await fetch( + `${url.endsWith('/') ? url : `${url}/`}index.html`, + ); + + if (request.status === 404) { + throw new Error('Page not found'); + } + + return request.text(); + } + + getBaseUrl( + oldBaseUrl: string, + entityId: ParsedEntityId, + path: string, + ): string { + const { kind, namespace, name } = entityId; + + return new URL( + oldBaseUrl, + `${this.apiOrigin}/${kind}/${namespace ? namespace : 'default'}/${name}/${path}`, + ).toString(); + } +} diff --git a/plugins/techdocs/src/index.ts b/plugins/techdocs/src/index.ts index 3a0a0fe2d3..2a412d1b20 100644 --- a/plugins/techdocs/src/index.ts +++ b/plugins/techdocs/src/index.ts @@ -15,3 +15,5 @@ */ export { plugin } from './plugin'; +export * from './reader'; +export * from './api'; diff --git a/plugins/techdocs/src/plugin.ts b/plugins/techdocs/src/plugin.ts index a96f7e5502..9b09544427 100644 --- a/plugins/techdocs/src/plugin.ts +++ b/plugins/techdocs/src/plugin.ts @@ -31,7 +31,7 @@ import { createPlugin, createRouteRef } from '@backstage/core'; import { TechDocsHome } from './reader/components/TechDocsHome'; -import { Reader } from './reader/components/Reader'; +import { TechDocsPage } from './reader/components/TechDocsPage'; export const rootRouteRef = createRouteRef({ path: '/docs', @@ -39,7 +39,7 @@ export const rootRouteRef = createRouteRef({ }); export const rootDocsRouteRef = createRouteRef({ - path: '/docs/:componentId/*', + path: '/docs/:entityId/*', title: 'Docs', }); @@ -47,6 +47,6 @@ export const plugin = createPlugin({ id: 'techdocs', register({ router }) { router.addRoute(rootRouteRef, TechDocsHome); - router.addRoute(rootDocsRouteRef, Reader); + router.addRoute(rootDocsRouteRef, TechDocsPage); }, }); diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 8e11df428e..8e1e36595a 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -15,12 +15,12 @@ */ import React from 'react'; -import { useApi, configApiRef } from '@backstage/core'; +import { useApi } from '@backstage/core'; import { useShadowDom } from '..'; import { useAsync } from 'react-use'; -import { AsyncState } from 'react-use/lib/useAsync'; - -import { useLocation, useParams, useNavigate } from 'react-router-dom'; +import { techdocsStorageApiRef } from '../../api'; +import { useParams, useNavigate } from 'react-router-dom'; +import { ParsedEntityId } from '../../types'; import transformer, { addBaseUrl, @@ -31,76 +31,35 @@ import transformer, { onCssReady, sanitizeDOM, } from '../transformers'; -import URLFormatter from '../urlFormatter'; import { TechDocsNotFound } from './TechDocsNotFound'; -import { TechDocsPageWrapper } from './TechDocsPageWrapper'; -const useFetch = (url: string): AsyncState => { - const state = useAsync(async () => { - const request = await fetch(url); - if (request.status === 404) { - return [request.url, new Error('Page not found')]; - } - const response = await request.text(); - return [request.url, response]; - }, [url]); - - const [fetchedUrl, fetchedValue] = state.value ?? []; - - if (url !== fetchedUrl) { - // Fixes a race condition between two pages - return { loading: true }; - } - - return Object.assign(state, fetchedValue ? { value: fetchedValue } : {}); +type Props = { + entityId: ParsedEntityId; }; -const useEnforcedTrailingSlash = (): void => { - React.useEffect(() => { - const actualUrl = window.location.href; - const expectedUrl = new URLFormatter(window.location.href).formatBaseURL(); +export const Reader = ({ entityId }: Props) => { + const { kind, namespace, name } = entityId; + const { '*': path } = useParams(); - if (actualUrl !== expectedUrl) { - window.history.replaceState({}, document.title, expectedUrl); - } - }, []); -}; - -export const Reader = () => { - useEnforcedTrailingSlash(); - - const docStorageUrl = - useApi(configApiRef).getOptionalString('techdocs.storageUrl') ?? - 'https://techdocs-mock-sites.storage.googleapis.com'; - - const location = useLocation(); - const { componentId, '*': path } = useParams(); + const techdocsStorageApi = useApi(techdocsStorageApiRef); const [shadowDomRef, shadowRoot] = useShadowDom(); const navigate = useNavigate(); - const normalizedUrl = new URLFormatter( - `${docStorageUrl}${location.pathname.replace('/docs', '')}`, - ).formatBaseURL(); - const state = useFetch(`${normalizedUrl}index.html`); + + const { value, loading, error } = useAsync(async () => { + return techdocsStorageApi.getEntityDocs({ kind, namespace, name }, path); + }, [techdocsStorageApi, kind, namespace, name, path]); React.useEffect(() => { - if (!shadowRoot) { - return; // Shadow DOM isn't ready - } - - if (state.loading) { - return; // Page isn't ready - } - - if (state.value instanceof Error) { - return; // Docs not found + if (!shadowRoot || loading || error) { + return; // Shadow DOM isn't ready / It's not ready / Docs was not found } // Pre-render - const transformedElement = transformer(state.value as string, [ + const transformedElement = transformer(value as string, [ sanitizeDOM(), addBaseUrl({ - docStorageUrl, - componentId, + techdocsStorageApi, + entityId: entityId, path, }), rewriteDocLinks(), @@ -145,7 +104,7 @@ export const Reader = () => { }, }), onCssReady({ - docStorageUrl, + docStorageUrl: techdocsStorageApi.apiOrigin, onLoading: (dom: Element) => { (dom as HTMLElement).style.setProperty('opacity', '0'); }, @@ -154,15 +113,23 @@ export const Reader = () => { }, }), ]); - }, [componentId, path, shadowRoot, state]); // eslint-disable-line react-hooks/exhaustive-deps + }, [ + name, + path, + shadowRoot, + value, + error, + loading, + namespace, + kind, + entityId, + navigate, + techdocsStorageApi, + ]); - if (state.value instanceof Error) { + if (error) { return ; } - return ( - -
- - ); + return
; }; diff --git a/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx b/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx index dd31e6a318..7754f227fc 100644 --- a/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx @@ -17,20 +17,34 @@ import { TechDocsHome } from './TechDocsHome'; import React from 'react'; import { render } from '@testing-library/react'; import { wrapInTestApp } from '@backstage/test-utils'; +import { ApiRegistry, ApiProvider } from '@backstage/core-api'; + +import { catalogApiRef, CatalogApi } from '@backstage/plugin-catalog'; +import { Entity } from '@backstage/catalog-model'; describe('TechDocs Home', () => { - it('should render a TechDocs home page', () => { - const { getByTestId, queryByText } = render( - wrapInTestApp(), + const catalogApi: Partial = { + getEntities: () => Promise.resolve([] as Entity[]), + }; + + const apiRegistry = ApiRegistry.from([[catalogApiRef, catalogApi]]); + + it('should render a TechDocs home page', async () => { + const { findByTestId, findByText } = render( + wrapInTestApp( + + + , + ), ); // Header - expect(queryByText('Documentation')).toBeInTheDocument(); + expect(await findByText('Documentation')).toBeInTheDocument(); expect( - queryByText(/Documentation available in Backstage/i), + await findByText(/Documentation available in Backstage/i), ).toBeInTheDocument(); // Explore Content - expect(getByTestId('docs-explore')).toBeDefined(); + expect(await findByTestId('docs-explore')).toBeDefined(); }); }); diff --git a/plugins/techdocs/src/reader/components/TechDocsHome.tsx b/plugins/techdocs/src/reader/components/TechDocsHome.tsx index f8f1e89b62..17b9fd36f7 100644 --- a/plugins/techdocs/src/reader/components/TechDocsHome.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsHome.tsx @@ -15,59 +15,71 @@ */ import React from 'react'; +import { useAsync } from 'react-use'; import { useNavigate } from 'react-router-dom'; import { Grid } from '@material-ui/core'; -import { ItemCard } from '@backstage/core'; +import { ItemCard, Progress, useApi } from '@backstage/core'; import { TechDocsPageWrapper } from './TechDocsPageWrapper'; +import { catalogApiRef } from '@backstage/plugin-catalog'; -type DocumentationSite = { - title: string; - description: string; - tags: Array; - path: string; - btnLabel: string; -}; - -const documentationSites: Array = [ - { - title: 'MkDocs', - description: - "MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation. ", - tags: ['Developer Tool'], - path: '/docs/mkdocs', - btnLabel: 'Read Docs', - }, - { - title: 'Backstage Docs', - description: 'Main documentation for Backstage features and platform APIs.', - tags: ['Service'], - path: '/docs/backstage', - btnLabel: 'Read Docs', - }, -]; export const TechDocsHome = () => { + const catalogApi = useApi(catalogApiRef); const navigate = useNavigate(); - return ( - <> + const { value, loading, error } = useAsync(async () => { + const entities = await catalogApi.getEntities(); + return entities.filter(entity => { + return !!entity.metadata.annotations?.['backstage.io/techdocs-ref']; + }); + }); + + if (loading) { + return ( - - {documentationSites.map((site: DocumentationSite, index: number) => ( - - navigate(site.path)} - tags={site.tags} - title={site.title} - label={site.btnLabel} - description={site.description} - /> - - ))} - + - + ); + } + + if (error) { + return ( + +

{error.message}

+
+ ); + } + + return ( + + + {value?.length + ? value.map((entity, index: number) => ( + + + navigate( + `/docs/${entity.kind}:${ + entity.metadata.namespace ?? '' + }:${entity.metadata.name}`, + ) + } + title={entity.metadata.name} + label="Read Docs" + description={entity.metadata.description} + /> + + )) + : null} + + ); }; diff --git a/plugins/techdocs/src/reader/components/TechDocsPage.tsx b/plugins/techdocs/src/reader/components/TechDocsPage.tsx new file mode 100644 index 0000000000..1328d13ee9 --- /dev/null +++ b/plugins/techdocs/src/reader/components/TechDocsPage.tsx @@ -0,0 +1,39 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { useParams } from 'react-router-dom'; + +import { TechDocsPageWrapper } from './TechDocsPageWrapper'; +import { Reader } from './Reader'; + +export const TechDocsPage = () => { + const { entityId } = useParams(); + + const [kind, namespace, name] = entityId.split(':'); + + return ( + + + + ); +}; diff --git a/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx b/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx index d4cc49c919..5265492fb3 100644 --- a/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ import { TechDocsPageWrapper } from './TechDocsPageWrapper'; -import { TechDocsHome } from './TechDocsHome'; import React from 'react'; import { render } from '@testing-library/react'; import { wrapInTestApp } from '@backstage/test-utils'; @@ -24,7 +23,7 @@ describe('TechDocs Page Wrapper', () => { const { queryByText } = render( wrapInTestApp( - + Test , ), ); diff --git a/plugins/techdocs/src/reader/components/index.ts b/plugins/techdocs/src/reader/components/index.ts new file mode 100644 index 0000000000..b14a6c5b84 --- /dev/null +++ b/plugins/techdocs/src/reader/components/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './Reader'; diff --git a/plugins/techdocs/src/reader/index.tsx b/plugins/techdocs/src/reader/index.tsx index 72b51bd0dc..a3ca8f394b 100644 --- a/plugins/techdocs/src/reader/index.tsx +++ b/plugins/techdocs/src/reader/index.tsx @@ -15,3 +15,4 @@ */ export * from './hooks'; +export * from './components'; diff --git a/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts b/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts index ce903c5d2f..728c39826d 100644 --- a/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts +++ b/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts @@ -14,124 +14,65 @@ * limitations under the License. */ -import { createTestShadowDom, FIXTURES, getSample } from '../../test-utils'; +import { createTestShadowDom } from '../../test-utils'; import { addBaseUrl } from '../transformers'; +import { TechDocsStorage } from '../../api'; const DOC_STORAGE_URL = 'https://example-host.storage.googleapis.com'; +const techdocsStorageApi: TechDocsStorage = { + getBaseUrl: jest.fn(() => DOC_STORAGE_URL), + getEntityDocs: () => new Promise(resolve => resolve('yes!')), +}; + +const fixture = ` + + + + + + + + + +`; + +const mockEntityId = { + kind: '', + namespace: '', + name: '', +}; + describe('addBaseUrl', () => { it('contains relative paths', () => { - const shadowDom = createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE); - - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'img/win-py-install.png', - 'img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'assets/javascripts/vendor.d710d30a.min.js', - ]); - }); - - it('contains transformed absolute paths', () => { - const shadowDom = createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + createTestShadowDom(fixture, { preTransformers: [ addBaseUrl({ - docStorageUrl: DOC_STORAGE_URL, - componentId: 'example-docs', + techdocsStorageApi, + entityId: mockEntityId, path: '', }), ], postTransformers: [], }); - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'https://example-host.storage.googleapis.com/example-docs/img/win-py-install.png', - 'https://example-host.storage.googleapis.com/example-docs/img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'https://example-host.storage.googleapis.com/example-docs/assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'https://example-host.storage.googleapis.com/example-docs/assets/javascripts/vendor.d710d30a.min.js', - ]); - }); - - it('includes path option without slash', () => { - const shadowDom = createTestShadowDom( - ` - - - - - - - `, - { - preTransformers: [ - addBaseUrl({ - docStorageUrl: DOC_STORAGE_URL, - componentId: 'example-docs', - path: 'examplepath', - }), - ], - postTransformers: [], - }, + expect(techdocsStorageApi.getBaseUrl).toHaveBeenNthCalledWith( + 1, + 'test.jpg', + mockEntityId, + '', ); - - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'https://example-host.storage.googleapis.com/example-docs/img/win-py-install.png', - 'https://example-host.storage.googleapis.com/example-docs/img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'https://example-host.storage.googleapis.com/example-docs/assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'https://example-host.storage.googleapis.com/example-docs/assets/javascripts/vendor.d710d30a.min.js', - ]); - }); - - it('includes path option with slash', () => { - const shadowDom = createTestShadowDom( - ` - - - - - - - `, - { - preTransformers: [ - addBaseUrl({ - docStorageUrl: DOC_STORAGE_URL, - componentId: 'example-docs', - path: 'examplepath/', - }), - ], - postTransformers: [], - }, + expect(techdocsStorageApi.getBaseUrl).toHaveBeenNthCalledWith( + 2, + 'script.js', + mockEntityId, + '', + ); + expect(techdocsStorageApi.getBaseUrl).toHaveBeenNthCalledWith( + 3, + 'astyle.css', + mockEntityId, + '', ); - - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'https://example-host.storage.googleapis.com/example-docs/img/win-py-install.png', - 'https://example-host.storage.googleapis.com/example-docs/img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'https://example-host.storage.googleapis.com/example-docs/assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'https://example-host.storage.googleapis.com/example-docs/assets/javascripts/vendor.d710d30a.min.js', - ]); }); }); diff --git a/plugins/techdocs/src/reader/transformers/addBaseUrl.ts b/plugins/techdocs/src/reader/transformers/addBaseUrl.ts index 42ed531aea..7346ca7ce2 100644 --- a/plugins/techdocs/src/reader/transformers/addBaseUrl.ts +++ b/plugins/techdocs/src/reader/transformers/addBaseUrl.ts @@ -14,18 +14,19 @@ * limitations under the License. */ -import URLFormatter from '../urlFormatter'; import type { Transformer } from './index'; +import { TechDocsStorage } from '../../api'; +import { ParsedEntityId } from '../../types'; type AddBaseUrlOptions = { - docStorageUrl: string; - componentId: string; + techdocsStorageApi: TechDocsStorage; + entityId: ParsedEntityId; path: string; }; export const addBaseUrl = ({ - docStorageUrl, - componentId, + techdocsStorageApi, + entityId, path, }: AddBaseUrlOptions): Transformer => { return dom => { @@ -36,15 +37,11 @@ export const addBaseUrl = ({ Array.from(list) .filter(elem => !!elem.getAttribute(attributeName)) .forEach((elem: T) => { - const urlFormatter = new URLFormatter( - path.length < 1 || path.endsWith('/') - ? `${docStorageUrl}/${componentId}/${path}` - : `${docStorageUrl}/${componentId}/${path}/`, - ); - + const elemAttribute = elem.getAttribute(attributeName); + if (!elemAttribute) return; elem.setAttribute( attributeName, - urlFormatter.formatURL(elem.getAttribute(attributeName)!), + techdocsStorageApi.getBaseUrl(elemAttribute, entityId, path), ); }); }; diff --git a/plugins/techdocs/src/reader/transformers/onCssReady.test.ts b/plugins/techdocs/src/reader/transformers/onCssReady.test.ts index 13965bcf4b..c83a94f35d 100644 --- a/plugins/techdocs/src/reader/transformers/onCssReady.test.ts +++ b/plugins/techdocs/src/reader/transformers/onCssReady.test.ts @@ -15,19 +15,23 @@ */ import { - FIXTURES, createTestShadowDom, mockStylesheetEventListener, executeStylesheetEventListeners, clearStylesheetEventListeners, } from '../../test-utils'; -import { addBaseUrl, onCssReady } from '../transformers'; +import { onCssReady } from '../transformers'; const docStorageUrl: string = 'https://techdocs-mock-sites.storage.googleapis.com'; jest.useFakeTimers(); +const fixture = ` + + +`; + describe('onCssReady', () => { beforeEach(() => { mockStylesheetEventListener(100); @@ -37,19 +41,13 @@ describe('onCssReady', () => { clearStylesheetEventListeners(); }); - it('does not call onLoading and onLoaded without the addBaseUrl transformer', () => { + it('does not call onLoading and onLoaded without the onCssReady transformer', () => { const onLoading = jest.fn(); const onLoaded = jest.fn(); - createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + createTestShadowDom(fixture, { preTransformers: [], - postTransformers: [ - onCssReady({ - docStorageUrl, - onLoading, - onLoaded, - }), - ], + postTransformers: [], }); expect(onLoading).not.toHaveBeenCalled(); @@ -61,14 +59,9 @@ describe('onCssReady', () => { const onLoading = jest.fn(); const onLoaded = jest.fn(); - createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + createTestShadowDom(fixture, { preTransformers: [], postTransformers: [ - addBaseUrl({ - docStorageUrl, - componentId: 'mkdocs', - path: '', - }), onCssReady({ docStorageUrl, onLoading, diff --git a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts index 20ec3ccb64..06da8a447c 100644 --- a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts +++ b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts @@ -50,9 +50,9 @@ describe('rewriteDocLinks', () => { expect(getSample(shadowDom, 'a', 'href', 6)).toEqual([ 'http://example.org/', - 'http://localhost/example/', - 'http://localhost/example-docs/', - 'http://localhost/example-docs/example-page/', + 'http://localhost/example', + 'http://localhost/example-docs', + 'http://localhost/example-docs/example-page', ]); }); }); diff --git a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts index 4bf4ab3898..856bb40f0f 100644 --- a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts +++ b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import URLFormatter from '../urlFormatter'; import type { Transformer } from './index'; export const rewriteDocLinks = (): Transformer => { @@ -26,11 +25,17 @@ export const rewriteDocLinks = (): Transformer => { Array.from(list) .filter(elem => elem.hasAttribute(attributeName)) .forEach((elem: T) => { - const urlFormatter = new URLFormatter(window.location.href); - elem.setAttribute( - attributeName, - urlFormatter.formatURL(elem.getAttribute(attributeName)!), - ); + const elemAttribute = elem.getAttribute(attributeName); + if (elemAttribute) { + const normalizedWindowLocation = window.location.href.endsWith('/') + ? window.location.href + : `${window.location.href}/`; + + elem.setAttribute( + attributeName, + new URL(elemAttribute, normalizedWindowLocation).toString(), + ); + } }); }; diff --git a/plugins/techdocs/src/reader/urlFormatter.test.ts b/plugins/techdocs/src/reader/urlFormatter.test.ts deleted file mode 100644 index 2659f9f4dc..0000000000 --- a/plugins/techdocs/src/reader/urlFormatter.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import URLFormatter from './urlFormatter'; - -describe('URLFormatter', () => { - describe('formatURL', () => { - it('should not change an absolute url', () => { - const formatter = new URLFormatter('https://www.google.com/'); - expect(formatter.formatURL('https://www.mkdocs.org/')).toEqual( - 'https://www.mkdocs.org/', - ); - }); - - it('should convert a relative url to an absolute url', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - expect(formatter.formatURL('../../support/installing/')).toEqual( - 'https://www.mkdocs.org/support/installing/', - ); - }); - - it('should add a trailing slash', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started', - ); - expect(formatter.formatURL('./getting-started')).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - }); - - it('should not add a trailing slash', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - expect(formatter.formatURL('.')).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - }); - - it('should not add multiple hashes', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/#hash1', - ); - expect(formatter.formatURL('./#hash2')).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/#hash2', - ); - }); - }); - - describe('formatBaseURL', () => { - it('should keep query params in URL', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/?query=hello+world', - ); - expect(formatter.formatBaseURL()).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/?query=hello+world', - ); - }); - - it('should keep hash in URL', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/#hash', - ); - expect(formatter.formatBaseURL()).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/#hash', - ); - }); - }); -}); diff --git a/plugins/techdocs/src/reader/urlFormatter.ts b/plugins/techdocs/src/reader/urlFormatter.ts deleted file mode 100644 index 166f0d9963..0000000000 --- a/plugins/techdocs/src/reader/urlFormatter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export default class URLFormatter { - constructor(public baseURL: string) {} - - formatBaseURL(): string { - return this.normalizeURL(this.baseURL); - } - - formatURL(pathname: string): string { - return this.normalizeURL(new URL(pathname, this.baseURL).toString()); - } - - private normalizeURL(urlString: string): string { - const url = new URL(urlString); - const filename: string = url.pathname.split('/').pop() ?? url.pathname; - const isDir: boolean = filename.includes('.') === false; - - if (isDir) { - url.pathname = url.pathname.replace(/([^/])$/, '$1/'); - } - - return url.toString(); - } -} diff --git a/plugins/techdocs/src/types.ts b/plugins/techdocs/src/types.ts new file mode 100644 index 0000000000..ec907cc6fa --- /dev/null +++ b/plugins/techdocs/src/types.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export type ParsedEntityId = { + kind: string; + namespace?: string; + name: string; +}; diff --git a/yarn.lock b/yarn.lock index e119146c68..63a429b79d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7515,6 +7515,15 @@ caniuse-lite@^1.0.30001109: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== +canvas@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz#0d087dd4d60f5a5a9efa202757270abea8bef89e" + integrity sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA== + dependencies: + nan "^2.14.0" + node-pre-gyp "^0.11.0" + simple-get "^3.0.3" + canvg@1.5.3: version "1.5.3" resolved "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz#aad17915f33368bf8eb80b25d129e3ae922ddc5f" @@ -9061,6 +9070,13 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -15694,6 +15710,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -20346,6 +20367,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" From 17233abfcbc37915b0d9158c3284811ef49c243a Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Thu, 20 Aug 2020 14:55:42 +0200 Subject: [PATCH 46/72] =Partial commit, have to go home --- .../src/service/lib/ServiceBuilderImpl.ts | 6 ++- .../src/service/lib/hostFactory.ts | 41 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 packages/backend-common/src/service/lib/hostFactory.ts diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 0e0feb6a37..e75ae8069f 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -38,6 +38,10 @@ import { readHttpsSettings, HttpsSettings, } from './config'; +import { + createHttpServer, + createHttpsServer, +} from './hostFactory'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -215,7 +219,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { } else { logger.info('Initializing http server'); - server = http.createServer(app); + server = createHttpServer(app); } const stoppableServer = stoppable( diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts new file mode 100644 index 0000000000..9b850431fb --- /dev/null +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -0,0 +1,41 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import express from 'express'; +import * as http from 'http'; +import * as https from 'https'; + +/** + * Reads some base options out of a config object. + * + * @param config The root of a backend config object + * @returns A base options object + * + * @example + * ```json + * { + * baseUrl: "http://localhost:7000", + * listen: "0.0.0.0:7000" + * } + * ``` + */ +export function createHttpServer(app: express.Express): http.Server { + return http.createServer(app); +} + + +export function createHttpsServer(app: express.Express): http.Server { + return https.createServer(app); +} \ No newline at end of file From b545e516156a9f80006a4a38108a9eebe0f121ed Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Thu, 20 Aug 2020 15:02:53 +0200 Subject: [PATCH 47/72] fix(header tabs): use filteredheadertabs instead of tabs --- plugins/catalog/src/components/EntityPage/EntityPage.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx index a36ac32a07..adbc758067 100644 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ b/plugins/catalog/src/components/EntityPage/EntityPage.tsx @@ -206,10 +206,12 @@ export const EntityPage: FC<{}> = () => { tabs={filteredHeaderTabs} onChange={idx => { navigate( - `/catalog/${kind}/${optionalNamespaceAndName}/${tabs[idx].id}`, + `/catalog/${kind}/${optionalNamespaceAndName}/${filteredHeaderTabs[idx].id}`, ); }} - selectedIndex={tabs.findIndex(tab => tab.id === selectedTabId)} + selectedIndex={filteredHeaderTabs.findIndex( + tab => tab.id === selectedTabId, + )} /> {selectedTab && selectedTab.content From bbd75a0981a5b7418ecf1afa2124738d7b18f494 Mon Sep 17 00:00:00 2001 From: David Tuite Date: Thu, 20 Aug 2020 14:54:14 +0100 Subject: [PATCH 48/72] Add GitHub pull requests plugin (#1987) See pull requests against your entities, and see statistics for your last N pull requests. --- packages/app/package.json | 1 + packages/app/src/apis.ts | 2 ++ packages/app/src/plugins.ts | 1 + yarn.lock | 23 +++++++++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/packages/app/package.json b/packages/app/package.json index 0e2cb677a4..126913b32a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -27,6 +27,7 @@ "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", + "@roadiehq/backstage-plugin-github-pull-requests": "0.3.0", "@roadiehq/backstage-plugin-travis-ci": "^0.1.3", "history": "^5.0.0", "prop-types": "^15.7.2", diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index c906b062ed..df023b80cb 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -74,6 +74,7 @@ import { TravisCIApi, travisCIApiRef, } from '@roadiehq/backstage-plugin-travis-ci'; +import { GithubPullRequestsClient, githubPullRequestsApiRef } from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -105,6 +106,7 @@ export const apis = (config: ConfigApi) => { builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); builder.add(travisCIApiRef, new TravisCIApi()); + builder.add(githubPullRequestsApiRef, new GithubPullRequestsClient()); const oauthRequestApi = builder.add( oauthRequestApiRef, diff --git a/packages/app/src/plugins.ts b/packages/app/src/plugins.ts index 4ec19c74f3..f338c169b7 100644 --- a/packages/app/src/plugins.ts +++ b/packages/app/src/plugins.ts @@ -31,3 +31,4 @@ export { plugin as Newrelic } from '@backstage/plugin-newrelic'; export { plugin as TravisCI } from '@roadiehq/backstage-plugin-travis-ci'; export { plugin as Jenkins } from '@backstage/plugin-jenkins'; export { plugin as ApiDocs } from '@backstage/plugin-api-docs'; +export { plugin as GithubPullRequests } from '@roadiehq/backstage-plugin-github-pull-requests'; diff --git a/yarn.lock b/yarn.lock index 63a429b79d..1a56d05251 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3308,6 +3308,29 @@ resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-2.3.0.tgz#a051eb4db2ad778e39933a31ba806f415dd3ba90" integrity sha512-v/xZ4Xk18ZgBARcCe99IDqdO97GU0UC784gG8PhGGFDdy5Rbdy7ixTjHkGYttkr43PB7SX6ttohNhkKSW4nATQ== +"@roadiehq/backstage-plugin-github-pull-requests@0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-0.3.0.tgz#465cb74b1dab6f34a5a5bf4fa57b6c1d312bc5b7" + integrity sha512-nSyMh8p3SAYj1yj5/+Po82g7aZwF5pWb+fh7bLPdf+ywl5pa+aKQxAVNCvlvgfN2WZ9gDTMbCPyWDgCfeJ/V9g== + dependencies: + "@backstage/catalog-model" "^0.1.1-alpha.16" + "@backstage/core" "^0.1.1-alpha.16" + "@backstage/core-api" "^0.1.1-alpha.16" + "@backstage/plugin-catalog" "^0.1.1-alpha.16" + "@backstage/theme" "^0.1.1-alpha.16" + "@material-ui/core" "^4.9.1" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + "@octokit/rest" "^18.0.0" + "@octokit/types" "^5.0.1" + "@types/react-dom" "^16.9.8" + history "^5.0.0" + moment "^2.27.0" + react "^16.13.1" + react-dom "^16.13.1" + react-router-dom "6.0.0-beta.0" + react-use "^15.3.3" + "@roadiehq/backstage-plugin-travis-ci@^0.1.3": version "0.1.3" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.3.tgz#597882bb6db119b9c8970f15cc506c5d70ba2c41" From 34e72a7cf4af464ac0d027bdf0f246fd1f0f7684 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 20 Aug 2020 18:10:08 +0200 Subject: [PATCH 49/72] cli: grab the needed e2e test package dependencies from the create-app template --- packages/cli/e2e-test/cli-e2e-test.js | 34 +++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index 8a3285c544..c4004f7c46 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -17,6 +17,7 @@ const os = require('os'); const fs = require('fs-extra'); const fetch = require('node-fetch'); +const handlebars = require('handlebars'); const killTree = require('tree-kill'); const { resolve: resolvePath, join: joinPath } = require('path'); const Browser = require('zombie'); @@ -62,6 +63,35 @@ async function buildDistWorkspace(workspaceName, rootDir) { const workspaceDir = resolvePath(rootDir, workspaceName); await fs.ensureDir(workspaceDir); + // We grab the needed dependencies from the template packages + const appPkgTemplate = await fs.readFile( + resolvePath( + __dirname, + '../../create-app/templates/default-app/packages/app/package.json.hbs', + ), + 'utf8', + ); + const appPkg = JSON.parse( + handlebars.compile(appPkgTemplate)({ version: '0.0.0' }), + ); + const appDeps = Object.keys(appPkg.dependencies).filter(name => + name.startsWith('@backstage/'), + ); + + const backendPkgTemplate = await fs.readFile( + resolvePath( + __dirname, + '../../create-app/templates/default-app/packages/backend/package.json.hbs', + ), + 'utf8', + ); + const backendPkg = JSON.parse( + handlebars.compile(backendPkgTemplate)({ version: '0.0.0' }), + ); + const backendDeps = Object.keys(backendPkg.dependencies).filter(name => + name.startsWith('@backstage/'), + ); + print(`Preparing workspace`); await runPlain([ 'yarn', @@ -73,8 +103,8 @@ async function buildDistWorkspace(workspaceName, rootDir) { '@backstage/core', '@backstage/dev-utils', '@backstage/test-utils', - // We don't use the backend itself, but want all of its dependencies - 'example-backend', + ...appDeps, + ...backendDeps, ]); print('Pinning yarn version in workspace'); From 95596b812983f892411c32fa67a5ca7de4b22cd3 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 20 Aug 2020 21:01:13 +0200 Subject: [PATCH 50/72] chore(api-docs): the api docs plugin should be published (#2051) * chore(api-docs): the api docs plugin should be published * chore: add missing @types/react dependency * chore: move to dependency --- plugins/api-docs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 65f83a936d..c8a6b5732d 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -4,7 +4,6 @@ "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", - "private": true, "publishConfig": { "access": "public", "main": "dist/index.esm.js", @@ -34,6 +33,7 @@ "react-dom": "^16.13.1", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3", + "@types/react": "^16.9", "swagger-ui-react": "^3.31.1" }, "devDependencies": { From 89a0a2fc7b54ed82ccdf3dae43883963fa0d7d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 19 Aug 2020 15:52:18 +0200 Subject: [PATCH 51/72] docs: write call-existing-api.md --- docs/plugins/call-existing-api.md | 175 +++++++++++++++++++++++++++++- plugins/jenkins/README.md | 2 +- 2 files changed, 174 insertions(+), 3 deletions(-) diff --git a/docs/plugins/call-existing-api.md b/docs/plugins/call-existing-api.md index 075d4bdeb6..f6c9990b90 100644 --- a/docs/plugins/call-existing-api.md +++ b/docs/plugins/call-existing-api.md @@ -1,6 +1,177 @@ --- id: call-existing-api -title: Call existing API +title: Call Existing API --- -## TODO +This article describes the various options that Backstage frontend plugins have, +in communicating with service APIs that already exist. Each section below +describes a possible choice, and the circumstances under which it fits. + +In these examples, we will be ultimately requesting data from the fictional +FrobsCo API. + +## Issuing Requests Directly + +The most basic choice available is to issue requests directly from the plugin +frontend code to the FrobsCo API, using for example `fetch` or a support library +such as `axios`. + +Example: + +```ts +// Inside your component +fetch('https://api.frobsco.com/v1/list') + .then(response => response.json()) + .then(payload => setFrobs(payload as Frob[])); +``` + +Internally at Spotify, this has not been a very common choice. Third party APIs +are sometimes accessed like this. Just a handful of internal APIs also went +through the trouble of exposing themselves in a way that is useful directly from +a browser, but even then, often not from the public internet but only supporting +users that are already on the company VPN. + +This can be used when: + +- The API already does/exposes exactly what you need. +- The request/response patterns of the API match real world usage needs in + Backstage frontend plugins. For example, if the end use case is to show a + small summary in Backstage, but the only available API endpoint gives a 30 + megabyte blob with large amounts of redundant information, it would hurt the + end user experience. Particularly on mobile. The same goes for cases where you + want to show many individual pieces of information: if a common use case is to + show large tables where one API request per cell is necessary, the browser + will quickly become swamped and you may want to consider performing + aggregation elsewhere instead. +- The API can maintain interactive request/response times at your required peak + request rates. The end user experience will be degraded if they spend a lot of + time waiting for the data to arrive. +- The API endpoint is highly available. The browser does not have builtin + facilities for load balancing, service discovery, retries, health checks, + circuit breaking and similar. If the endpoint is occasionally down even for + short periods of time (e.g. during deploys), end users will quickly notice. +- The API is exposed over HTTPS (not just HTTP), and properly handles + [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). These are + requirements that the user's browser will impose for security reasons, and the + requests will be rejected otherwise. +- The API endpoint is easily reachable, in terms of network conditions, by end + users. This may be particularly relevant if your end users are outside of your + perimeter. +- The requests do not require secrets to be passed. This limitation does not + apply to OAuth tokens, which the frontend can negotiate and make proper use + of. + +## Using The Backstage Proxy + +Backstage has an optional proxy plugin for the backend, that can be used to +easily add proxy routes to downstream APIs. + +Example: + +```yaml +# In app-config.yaml +proxy: + '/frobs': + target: 'http://api.frobsco.com/v1' + changeOrigin: true + pathRewrite: + '^/proxy/frobs/': '/' +``` + +```ts +// Inside your component +const backendUrl = config.getString('backend.baseUrl'); +fetch(`${backendUrl}/proxy/frobs/list`) + .then(response => response.json()) + .then(payload => setFrobs(payload as Frob[])); +``` + +The proxy is powered by the `http-proxy-middleware` package, and supports all of +its +[configuration options](https://github.com/chimurai/http-proxy-middleware#options). + +Internally at Spotify, the proxy option has been the overwhelmingly most popular +choice for plugin makers. Since we have DNS based service discovery in place and +a microservices framework that made it trivial to expose plain HTTP, it has been +a matter of just adding a few lines of Backstage config to get the benefit of +being easily and robustly reachable from users' web browsers as well. + +This may be used instead of direct requests, when: + +- You need to perform HTTPS termination and/or CORS handling, because the API + itself is not supplying those. +- You need to inject a simple static secret into the requests, e.g. an + Authorization header that gets added to the request headers. +- You want to make use of other proxy facilities, such as retries, failover, + health checks, routing, request logging, rewrites, etc. +- You already have the Backstage backend itself exposed through your perimeter + and find it practical to have only one entry point to deal with, governing + ingress with just the Backstage config. + +## Creating a Backstage Backend Plugin + +Much like the Backstage frontend, the Backstage backend also has a plugin +system. The above mentioned proxy is actually one such plugin. If you were in +need of a more involved integration than just direct access to the FrobsCo API, +or if you needed to hold state, you may want to make such a plugin. + +Example: + +```ts +// Inside your component +const backendUrl = config.getString('backend.baseUrl'); +fetch(`${backendUrl}/frobs-aggregator/summary`) + .then(response => response.json()) + .then(payload => setSummary(payload as FrobSummary)); +``` + +```ts +// Inside a new frobs-aggregator backend plugin +router.use('/summary', async (req, res) => { + const agg = await Promise.all([ + fetch('https://api.frobsco.com/v1/list'), + fetch('http://flerps.partnercompany.com:8080/flerp-batch'), + database.currentThunk(), + ]).then(async ([frobs, flerps, thunk]) => { + return computeAggregate(await frobs.json(), await flerps.json(), thunk); + }); + res.status(200).send(agg); +}); +``` + +For a more detailed example, see +[the lighthouse plugin](https://github.com/spotify/backstage/tree/master/plugins/lighthouse) +that stores some state in a database and adds new capabilities to the underlying +API. + +Internally at Spotify, this has been a fairly popular choice for different +reasons. Commonly, the backend has been used as a caching and data massaging +layer for slow APIs or APIs whose request/response shapes or speeds were not +acceptable for direct use by frontends. For example, this has made it possible +to issue efficient batch queries from the frontend, e.g. in big lists or tables +that want to resolve a lot of sparse data from the larger list that an +underlying service supplies. + +This may be used instead of the above, when: + +- You need to perform complex model conversion, or protocol translation beyond + what the proxy handles. +- You want to perform aggregations or summaries on the backend instead of on the + frontend. +- You want to enable batching or caching of slower or more unreliable APIs. +- You need to maintain state for your plugin, perhaps using the builtin database + support in the backend. +- You need to inject secrets or in other ways negotiate with other parts of the + API or other services in order to perform your work. +- You want to enforce end user authentication / authorization for operations on + behalf of the API, have session handling, or similar. + +There is a balance to strike regarding when to make an entirely separate backend +for a purpose, and when to make a Backstage backend plugin that adapts something +that already exists. General advice is not easy to give, but contact us on +Discord if you have any questions, and we may be able to offer guidance. + +## Extending the GraphQL Model + +The extensible GraphQL backend layer is not built yet. This section will be +expanded when that happens. Stay tuned! diff --git a/plugins/jenkins/README.md b/plugins/jenkins/README.md index b8a844f5d8..a911704dc4 100644 --- a/plugins/jenkins/README.md +++ b/plugins/jenkins/README.md @@ -4,7 +4,7 @@ Website: [https://jenkins.io/](https://jenkins.io/) Last master build Folder results -Build detials +Build details ## Setup From 19db25eac700058c48ee28bc60f0e0adacfa9cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 20 Aug 2020 22:16:19 +0200 Subject: [PATCH 52/72] fix(core): chunk up tabs better --- packages/core/src/components/Tabs/Tabs.tsx | 8 ++++---- packages/core/src/components/Tabs/utils.ts | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/packages/core/src/components/Tabs/Tabs.tsx b/packages/core/src/components/Tabs/Tabs.tsx index 54369de473..336ed2b93b 100644 --- a/packages/core/src/components/Tabs/Tabs.tsx +++ b/packages/core/src/components/Tabs/Tabs.tsx @@ -48,7 +48,7 @@ export interface TabsProps { tabs: TabProps[]; } -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ root: { flexGrow: 1, width: '100%', @@ -66,7 +66,7 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({ export const Tabs: FC = ({ tabs }) => { const classes = useStyles(); - const [value, setValue] = useState([0, 0]); // [selectedChunckedNavIndex, selectedIndex] + const [value, setValue] = useState([0, 0]); // [selectedChunkedNavIndex, selectedIndex] const [navIndex, setNavIndex] = useState(0); const [numberOfChunkedElement, setNumberOfChunkedElement] = useState(0); const [chunkedTabs, setChunkedTabs] = useState([[]]); @@ -89,7 +89,7 @@ export const Tabs: FC = ({ tabs }) => { const hasNextNavIndex = () => navIndex + 1 < chunkedTabs.length; useEffect(() => { - // Each time the window is resized we calculate how many tabs wwe can render given the window width + // Each time the window is resized we calculate how many tabs we can render given the window width const padding = 20; // The AppBar padding const numberOfTabIcons = navIndex === 0 ? 1 : 2; @@ -99,7 +99,7 @@ export const Tabs: FC = ({ tabs }) => { const newChunkedElementSize = Math.floor(wrapperWidth / 170); setNumberOfChunkedElement(newChunkedElementSize); - setChunkedTabs(chunkArray([...tabs], newChunkedElementSize)); + setChunkedTabs(chunkArray(tabs, newChunkedElementSize)); setValue([ Math.floor(flattenIndex / newChunkedElementSize), flattenIndex % newChunkedElementSize, diff --git a/packages/core/src/components/Tabs/utils.ts b/packages/core/src/components/Tabs/utils.ts index 3e0ab6f2c3..8d6a3be5f3 100644 --- a/packages/core/src/components/Tabs/utils.ts +++ b/packages/core/src/components/Tabs/utils.ts @@ -13,15 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { TabProps } from './Tabs'; -export const chunkArray = ( - myArray: TabProps[], - chunkSize: number, -): TabProps[][] => { - const results = []; - while (myArray.length) { - results.push(myArray.splice(0, chunkSize)); +export function chunkArray(array: T[], chunkSize: number): T[][] { + if (chunkSize <= 0) { + return [array]; } - return results; -}; + + const result: T[][] = []; + for (let i = 0; i < array.length; i += chunkSize) { + result.push(array.slice(i, i + chunkSize)); + } + + return result; +} From d63f777ee0d2f460e716873d7a3f9dabd5071658 Mon Sep 17 00:00:00 2001 From: Kat Zhou <61153904+katz95@users.noreply.github.com> Date: Fri, 21 Aug 2020 09:46:02 +0200 Subject: [PATCH 53/72] new design header for design documentation --- docs/assets/dls/designheader-updated.png | Bin 0 -> 155351 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/dls/designheader-updated.png diff --git a/docs/assets/dls/designheader-updated.png b/docs/assets/dls/designheader-updated.png new file mode 100644 index 0000000000000000000000000000000000000000..56c5a56abbd65b857d61dbed59146ab428318196 GIT binary patch literal 155351 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

l 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%0DfCYtS)BFsPATpVa8`B_2Q; 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 uP#ZM`-f7k|3!GjcZ~cr4yW1Ai4dzQGd+R0~nx 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

%Qd|*XYssfv5ScpVB2`hNKtfBKx|x`vGZX( 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 p&(wb#lK Date: Fri, 21 Aug 2020 09:47:50 +0200 Subject: [PATCH 54/72] Update design.md --- docs/dls/design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dls/design.md b/docs/dls/design.md index c8a94fad4d..23ba84024a 100644 --- a/docs/dls/design.md +++ b/docs/dls/design.md @@ -3,7 +3,7 @@ id: design title: Design --- -![header](../assets/dls/designheader.png) +![header](../assets/dls/designheader-updated.png) Much like Backstage Open Source, this is a _living_ document! We'll keep this updated as we evolve our practices! @@ -116,7 +116,7 @@ components. If you’d like to help build up our design system, you can also add components we’ve designed to the Storybook as well. **[Figma](https://www.figma.com/@backstage)** - we're stoked to be using Figma -Community to share our design assets. You can duplicate our component library +Community to share our design assets. You can duplicate our UI Kit and design your own plugin for Backstage. **[Discord](https://discord.gg/EBHEGzX)** - all design questions should be From 5bf548ac808428dcc530cc51625dd6d072d12b38 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Fri, 21 Aug 2020 10:31:30 +0200 Subject: [PATCH 55/72] Show progress bar when loading on techdocs (#2065) --- plugins/techdocs/src/reader/components/Reader.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 8e1e36595a..8ae3273e12 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { useApi } from '@backstage/core'; +import { useApi, Progress } from '@backstage/core'; import { useShadowDom } from '..'; import { useAsync } from 'react-use'; import { techdocsStorageApiRef } from '../../api'; @@ -131,5 +131,10 @@ export const Reader = ({ entityId }: Props) => { return ; } - return

; + return ( + <> + {loading ? : null} +
+ + ); }; From 6e3cb6c874b66f30c22b019fef6b0cb8f1ded953 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Fri, 21 Aug 2020 10:51:37 +0200 Subject: [PATCH 56/72] =removing support for loading certs via file paths, adding host factory module, removing config section --- app-config.yaml | 7 -- .../src/service/lib/ServiceBuilderImpl.ts | 87 ++----------------- .../src/service/lib/hostFactory.ts | 56 +++++++++++- 3 files changed, 60 insertions(+), 90 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 0e94367aa1..a0233991f8 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -13,13 +13,6 @@ backend: database: client: sqlite3 connection: ':memory:' - # https: - # certificate: - # size: 2048 - # algorithm: sha256 - # days: 30 - # attributes: - # commonName: 'dfds.com' proxy: '/circleci/api': diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index e75ae8069f..899db248d6 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -21,7 +21,6 @@ import express, { Router } from 'express'; import helmet from 'helmet'; import * as http from 'http'; import * as https from 'https'; -import * as fs from 'fs'; import stoppable from 'stoppable'; import { Logger } from 'winston'; import { useHotCleanup } from '../../hot'; @@ -38,10 +37,7 @@ import { readHttpsSettings, HttpsSettings, } from './config'; -import { - createHttpServer, - createHttpsServer, -} from './hostFactory'; +import { createHttpServer, createHttpsServer } from './hostFactory'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -149,83 +145,16 @@ export class ServiceBuilderImpl implements ServiceBuilder { reject(e); }); - let server: http.Server; - - if (httpsSettings) { - logger.info('Initializing https server'); - - const credentials: { key: string; cert: string } = { - key: '', - cert: '', - }; - const signingOptions: any = httpsSettings?.certificate; - - if (signingOptions?.algorithm !== undefined) { - logger.info('Generating self-signed certificate with attributes'); - - const certificateAttributes: Array = Object.entries( - signingOptions.attributes, - ).map(([name, value]) => ({ name, value })); - - // TODO: Create a type def for selfsigned. - const signatures = require('selfsigned').generate( - certificateAttributes, - { - algorithm: signingOptions?.algorithm, - keySize: signingOptions?.size || 2048, - days: signingOptions?.days || 30, - }, - ); - - logger.info( - 'Bootstrapping key and cert from self-signed certificate', - ); - - credentials.key = signatures.private; - credentials.cert = signatures.cert; - } else { - if (fs.existsSync(signingOptions?.key)) { - if (fs.lstatSync(signingOptions?.key).isFile()) { - logger.info('Bootstrapping key from file'); - - credentials.key = fs.readFileSync(signingOptions?.key).toString(); - } - } else { - logger.info('Bootstrapping key from config'); - - credentials.key = signingOptions?.key; - } - - if (fs.existsSync(signingOptions?.cert)) { - if (fs.lstatSync(signingOptions?.cert).isFile()) { - logger.info('Bootstrapping cert from file'); - - credentials.cert = fs - .readFileSync(signingOptions?.cert) - .toString(); - } - } else { - logger.info('Bootstrapping cert from config'); - - credentials.cert = signingOptions?.cert; - } - } - - if (credentials.key === '' || credentials.cert === '') { - throw new Error('Invalid credentials'); - } - - server = https.createServer(credentials, app) as http.Server; - } else { - logger.info('Initializing http server'); - - server = createHttpServer(app); - } + const server: http.Server = httpsSettings + ? createHttpsServer(app, httpsSettings, logger) + : createHttpServer(app, logger); const stoppableServer = stoppable( server.listen(port, host, () => { - logger.info(`Listening on ${host}:${port}`); - }), 0); + logger.info(`Listening on ${host}:${port}`); + }), + 0, + ); useHotCleanup(this.module, () => stoppableServer.stop((e: any) => { diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts index 9b850431fb..778601e3c4 100644 --- a/packages/backend-common/src/service/lib/hostFactory.ts +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -16,6 +16,8 @@ import express from 'express'; import * as http from 'http'; import * as https from 'https'; +import { Logger } from 'winston'; +import { HttpsSettings } from './config'; /** * Reads some base options out of a config object. @@ -31,11 +33,57 @@ import * as https from 'https'; * } * ``` */ -export function createHttpServer(app: express.Express): http.Server { +export function createHttpServer( + app: express.Express, + logger: Logger, +): http.Server { + logger.info('Initializing http server'); + return http.createServer(app); } +export function createHttpsServer( + app: express.Express, + httpsSettings: HttpsSettings, + logger: Logger, +): http.Server { + logger.info('Initializing https server'); -export function createHttpsServer(app: express.Express): http.Server { - return https.createServer(app); -} \ No newline at end of file + const credentials: { key: string; cert: string } = { + key: '', + cert: '', + }; + + const signingOptions: any = httpsSettings?.certificate; + + if (signingOptions?.algorithm !== undefined) { + logger.info('Generating self-signed certificate with attributes'); + + const certificateAttributes: Array = Object.entries( + signingOptions.attributes, + ).map(([name, value]) => ({ name, value })); + + // TODO: Create a type def for selfsigned. + const signatures = require('selfsigned').generate(certificateAttributes, { + algorithm: signingOptions?.algorithm, + keySize: signingOptions?.size || 2048, + days: signingOptions?.days || 30, + }); + + logger.info('Bootstrapping self-signed certificate'); + + credentials.key = signatures.private; + credentials.cert = signatures.cert; + } else { + logger.info('Bootstrapping cert from config'); + + credentials.key = signingOptions?.key; + credentials.cert = signingOptions?.cert; + } + + if (credentials.key === '' || credentials.cert === '') { + throw new Error('Invalid credentials'); + } + + return https.createServer(credentials, app) as http.Server; +} From f66eb57c10bf63bee4eeebd70f89565142c8ece0 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Fri, 21 Aug 2020 10:58:17 +0200 Subject: [PATCH 57/72] =add inline documentation --- .../src/service/lib/hostFactory.ts | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts index 778601e3c4..8fab2fd4ab 100644 --- a/packages/backend-common/src/service/lib/hostFactory.ts +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -20,34 +20,37 @@ import { Logger } from 'winston'; import { HttpsSettings } from './config'; /** - * Reads some base options out of a config object. + * Creates a Http server instance based on an Express application. * - * @param config The root of a backend config object - * @returns A base options object + * @param app The Express application object + * @param logger Optional Winston logger object + * @returns A Http server instance * - * @example - * ```json - * { - * baseUrl: "http://localhost:7000", - * listen: "0.0.0.0:7000" - * } - * ``` */ export function createHttpServer( app: express.Express, - logger: Logger, + logger?: Logger, ): http.Server { - logger.info('Initializing http server'); + logger?.info('Initializing http server'); return http.createServer(app); } +/** + * Creates a Https server instance based on an Express application. + * + * @param app The Express application object + * @param httpsSettings HttpsSettings for self-signed certificate generation + * @param logger Optional Winston logger object + * @returns A Https server instance + * + */ export function createHttpsServer( app: express.Express, httpsSettings: HttpsSettings, - logger: Logger, + logger?: Logger, ): http.Server { - logger.info('Initializing https server'); + logger?.info('Initializing https server'); const credentials: { key: string; cert: string } = { key: '', @@ -57,7 +60,7 @@ export function createHttpsServer( const signingOptions: any = httpsSettings?.certificate; if (signingOptions?.algorithm !== undefined) { - logger.info('Generating self-signed certificate with attributes'); + logger?.info('Generating self-signed certificate with attributes'); const certificateAttributes: Array = Object.entries( signingOptions.attributes, @@ -70,12 +73,12 @@ export function createHttpsServer( days: signingOptions?.days || 30, }); - logger.info('Bootstrapping self-signed certificate'); + logger?.info('Bootstrapping self-signed certificate'); credentials.key = signatures.private; credentials.cert = signatures.cert; } else { - logger.info('Bootstrapping cert from config'); + logger?.info('Bootstrapping cert from config'); credentials.key = signingOptions?.key; credentials.cert = signingOptions?.cert; From d8947239ad187725d002876c3375d3c48cc13607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 21 Aug 2020 11:01:46 +0200 Subject: [PATCH 58/72] fix(core): bump react-syntax-highlighter to unbreak build --- packages/core/package.json | 2 +- yarn.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 7333e0ce2a..3e33fec7a1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -50,7 +50,7 @@ "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-sparklines": "^1.7.0", - "react-syntax-highlighter": "^13.2.1", + "react-syntax-highlighter": "^13.5.1", "react-use": "^15.3.3" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 1a56d05251..c3527d6df6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18209,14 +18209,14 @@ pretty-hrtime@^1.0.3: resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prismjs@^1.17.1: +prismjs@^1.17.1, prismjs@^1.21.0, prismjs@~1.21.0: version "1.21.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== optionalDependencies: clipboard "^2.0.0" -prismjs@^1.20.0, prismjs@^1.8.4, prismjs@~1.20.0: +prismjs@^1.8.4: version "1.20.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz#9b685fc480a3514ee7198eac6a3bf5024319ff03" integrity sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ== @@ -19070,16 +19070,16 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^13.2.1: - version "13.2.1" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.2.1.tgz#3d5a3b655cd85ce06b9508e0365d01ef9b8560bb" - integrity sha512-O/AF/ll4I3Dp+2WuKbnF5yKG4b1BUncqcpTW6MIBDJPr2eGKqlNGS3Nv+lyCFtAIHx8N+/ktti8qH14Q5VjjcA== +react-syntax-highlighter@^13.5.1: + version "13.5.1" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" + integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== dependencies: "@babel/runtime" "^7.3.1" highlight.js "^10.1.1" lowlight "^1.14.0" - prismjs "^1.20.0" - refractor "^3.0.0" + prismjs "^1.21.0" + refractor "^3.1.0" react-test-renderer@^16.13.1: version "16.13.1" @@ -19411,14 +19411,14 @@ refractor@^2.4.1: parse-entities "^1.1.2" prismjs "~1.17.0" -refractor@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/refractor/-/refractor-3.0.0.tgz#7c8072eaf49dbc1b333e7acc64fb52a1c9b17c75" - integrity sha512-eCGK/oP4VuyW/ERqjMZRZHxl2QsztbkedkYy/SxqE/+Gh1gLaAF17tWIOcVJDiyGhar1NZy/0B9dFef7J0+FDw== +refractor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/refractor/-/refractor-3.1.0.tgz#b05a43c8a1b4fccb30001ffcbd5cd781f7f06f78" + integrity sha512-bN8GvY6hpeXfC4SzWmYNQGLLF2ZakRDNBkgCL0vvl5hnpMrnyURk8Mv61v6pzn4/RBHzSWLp44SzMmVHqMGNww== dependencies: hastscript "^5.0.0" parse-entities "^2.0.0" - prismjs "~1.20.0" + prismjs "~1.21.0" regenerate-unicode-properties@^8.2.0: version "8.2.0" From 5bffcb108d36939fe43e54f9330ab560702b4e5f Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Fri, 21 Aug 2020 11:03:07 +0200 Subject: [PATCH 59/72] =removing unused imports --- packages/backend-common/src/service/lib/ServiceBuilderImpl.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 899db248d6..4669c00e68 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -20,7 +20,6 @@ import cors from 'cors'; import express, { Router } from 'express'; import helmet from 'helmet'; import * as http from 'http'; -import * as https from 'https'; import stoppable from 'stoppable'; import { Logger } from 'winston'; import { useHotCleanup } from '../../hot'; From 15e334a584013ee22e9f5b4335427edaf723473f Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Thu, 20 Aug 2020 16:40:25 +0200 Subject: [PATCH 60/72] Release v0.1.1-alpha.19 --- CHANGELOG.md | 2 ++ microsite/package.json | 2 +- packages/app/package.json | 44 ++++++++++++------------- packages/backend-common/package.json | 10 +++--- packages/backend/package.json | 28 ++++++++-------- packages/catalog-model/package.json | 6 ++-- packages/cli-common/package.json | 4 +-- packages/cli/package.json | 8 ++--- packages/config-loader/package.json | 4 +-- packages/config/package.json | 2 +- packages/core-api/package.json | 10 +++--- packages/core/package.json | 12 +++---- packages/create-app/package.json | 4 +-- packages/dev-utils/package.json | 10 +++--- packages/docgen/package.json | 2 +- packages/storybook/package.json | 4 +-- packages/techdocs-cli/package.json | 4 +-- packages/test-utils-core/package.json | 2 +- packages/test-utils/package.json | 10 +++--- packages/theme/package.json | 4 +-- plugins/api-docs/package.json | 16 ++++----- plugins/auth-backend/package.json | 8 ++--- plugins/catalog-backend/package.json | 10 +++--- plugins/catalog/package.json | 26 +++++++-------- plugins/circleci/package.json | 10 +++--- plugins/explore/package.json | 12 +++---- plugins/github-actions/package.json | 16 ++++----- plugins/gitops-profiles/package.json | 10 +++--- plugins/graphiql/package.json | 12 +++---- plugins/graphql/package.json | 6 ++-- plugins/identity-backend/package.json | 6 ++-- plugins/jenkins/package.json | 12 +++---- plugins/lighthouse/package.json | 12 +++---- plugins/newrelic/package.json | 10 +++--- plugins/proxy-backend/package.json | 8 ++--- plugins/register-component/package.json | 14 ++++---- plugins/rollbar-backend/package.json | 8 ++--- plugins/rollbar/package.json | 12 +++---- plugins/scaffolder-backend/package.json | 10 +++--- plugins/scaffolder/package.json | 16 ++++----- plugins/sentry-backend/package.json | 6 ++-- plugins/sentry/package.json | 10 +++--- plugins/tech-radar/package.json | 12 +++---- plugins/techdocs-backend/package.json | 10 +++--- plugins/techdocs/package.json | 18 +++++----- plugins/welcome/package.json | 10 +++--- 46 files changed, 237 insertions(+), 235 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99f03e3fa5..d295dc38e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re > Collect changes for the next release below +## v0.1.1-alpha.19 + ### @backstage/create-app - Many plugins have been added to the catalog and will for now be required to be added to separate apps as well. This will be solved as [#1536](https://github.com/spotify/backstage/issues/1536) gets sorted out, but for now you may need to install some plugins just to get pages to work. diff --git a/microsite/package.json b/microsite/package.json index dd8957245a..bcf28d7fe5 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", + "version": "0.1.1-alpha.19", "name": "backstage-microsite", "license": "Apache-2.0", "private": true, diff --git a/packages/app/package.json b/packages/app/package.json index 126913b32a..ad4aa3524c 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,29 +1,29 @@ { "name": "example-app", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": true, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-api-docs": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/plugin-circleci": "^0.1.1-alpha.18", - "@backstage/plugin-explore": "^0.1.1-alpha.18", - "@backstage/plugin-github-actions": "^0.1.1-alpha.18", - "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.18", - "@backstage/plugin-graphiql": "^0.1.1-alpha.18", - "@backstage/plugin-jenkins": "^0.1.1-alpha.18", - "@backstage/plugin-lighthouse": "^0.1.1-alpha.18", - "@backstage/plugin-newrelic": "^0.1.1-alpha.18", - "@backstage/plugin-register-component": "^0.1.1-alpha.18", - "@backstage/plugin-rollbar": "^0.1.1-alpha.18", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.18", - "@backstage/plugin-sentry": "^0.1.1-alpha.18", - "@backstage/plugin-tech-radar": "^0.1.1-alpha.18", - "@backstage/plugin-techdocs": "^0.1.1-alpha.18", - "@backstage/plugin-welcome": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-api-docs": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/plugin-circleci": "^0.1.1-alpha.19", + "@backstage/plugin-explore": "^0.1.1-alpha.19", + "@backstage/plugin-github-actions": "^0.1.1-alpha.19", + "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.19", + "@backstage/plugin-graphiql": "^0.1.1-alpha.19", + "@backstage/plugin-jenkins": "^0.1.1-alpha.19", + "@backstage/plugin-lighthouse": "^0.1.1-alpha.19", + "@backstage/plugin-newrelic": "^0.1.1-alpha.19", + "@backstage/plugin-register-component": "^0.1.1-alpha.19", + "@backstage/plugin-rollbar": "^0.1.1-alpha.19", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.19", + "@backstage/plugin-sentry": "^0.1.1-alpha.19", + "@backstage/plugin-tech-radar": "^0.1.1-alpha.19", + "@backstage/plugin-techdocs": "^0.1.1-alpha.19", + "@backstage/plugin-welcome": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 5cf2ee95e5..018c7616f4 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/config-loader": "^0.1.1-alpha.18", + "@backstage/cli-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/config-loader": "^0.1.1-alpha.19", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", "compression": "^1.7.4", @@ -54,7 +54,7 @@ } }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/compression": "^1.7.0", "@types/http-errors": "^1.6.3", "@types/morgan": "^1.9.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index c80fbc7c38..99f0cf3ece 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "dist/index.cjs.js", "types": "src/index.ts", "private": true, @@ -18,18 +18,18 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/plugin-auth-backend": "^0.1.1-alpha.18", - "@backstage/plugin-catalog-backend": "^0.1.1-alpha.18", - "@backstage/plugin-graphql-backend": "^0.1.1-alpha.18", - "@backstage/plugin-identity-backend": "^0.1.1-alpha.18", - "@backstage/plugin-proxy-backend": "^0.1.1-alpha.18", - "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.18", - "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.18", - "@backstage/plugin-sentry-backend": "^0.1.1-alpha.18", - "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/plugin-auth-backend": "^0.1.1-alpha.19", + "@backstage/plugin-catalog-backend": "^0.1.1-alpha.19", + "@backstage/plugin-graphql-backend": "^0.1.1-alpha.19", + "@backstage/plugin-identity-backend": "^0.1.1-alpha.19", + "@backstage/plugin-proxy-backend": "^0.1.1-alpha.19", + "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.19", + "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.19", + "@backstage/plugin-sentry-backend": "^0.1.1-alpha.19", + "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.19", "@octokit/rest": "^18.0.0", "dockerode": "^3.2.0", "express": "^4.17.1", @@ -40,7 +40,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 248f2765e4..54b3d3a621 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", "@types/json-schema": "^7.0.5", "@types/yup": "^0.28.2", "json-schema": "^0.2.5", @@ -29,7 +29,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "@types/jest": "^26.0.7", "@types/lodash": "^4.14.151", diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index 092a2a5167..80cc665426 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli-common", "description": "Common functionality used by cli, backend, and create-app", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "main": "src/index.ts", "types": "src/index.ts", @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/jest": "^26.0.7", "@types/node": "^12.0.0" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 3c9f85ac30..e5a8eafc81 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public" @@ -29,9 +29,9 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/config-loader": "^0.1.1-alpha.18", + "@backstage/cli-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/config-loader": "^0.1.1-alpha.19", "@hot-loader/react-dom": "^16.13.0", "@lerna/package-graph": "^3.18.5", "@lerna/project": "^3.18.0", diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index a2d7bbbc59..f5873c3c9d 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", "fs-extra": "^9.0.0", "yaml": "^1.9.2", "yup": "^0.29.1" diff --git a/packages/config/package.json b/packages/config/package.json index 9c8c81d31b..acbc690625 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", diff --git a/packages/core-api/package.json b/packages/core-api/package.json index 9ce1290a73..7b2087630e 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-api", "description": "Internal Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,8 +29,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", @@ -41,8 +41,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/test-utils-core": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/test-utils-core": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/core/package.json b/packages/core/package.json index 3e33fec7a1..5b59ee3dff 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core", "description": "Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -54,8 +54,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 6a1a3b60b5..ae62bc518a 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "Create app package for Backstage", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public" @@ -27,7 +27,7 @@ "start": "nodemon --" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.18", + "@backstage/cli-common": "^0.1.1-alpha.19", "chalk": "^4.0.0", "commander": "^4.1.1", "fs-extra": "^9.0.0", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 7eab350990..ba82447ea4 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 4b832afdfd..446f57f3dc 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,7 +1,7 @@ { "name": "docgen", "description": "Tool for generating API Documentation for itself", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": true, "homepage": "https://backstage.io", "repository": { diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 3a928b044e..8660c0e8d8 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "description": "Storybook build for core package", "private": true, "scripts": { @@ -14,7 +14,7 @@ ] }, "dependencies": { - "@backstage/theme": "^0.1.1-alpha.18" + "@backstage/theme": "^0.1.1-alpha.19" }, "devDependencies": { "@storybook/addon-actions": "^5.3.17", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 2e5d1e3958..a5951fd770 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "CLI for running TechDocs locally.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public" @@ -44,7 +44,7 @@ "ext": "ts" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "commander": "^5.1.0", "fs-extra": "^9.0.1", "http-proxy": "^1.18.1", diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index 638513af5c..821a94b1aa 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils-core", "description": "Utilities to test Backstage core", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 35bbb7d0b0..e336835592 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/test-utils-core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/test-utils-core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", diff --git a/packages/theme/package.json b/packages/theme/package.json index f4eafa58ff..f98a2cb762 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ "@material-ui/core": "^4.9.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18" + "@backstage/cli": "^0.1.1-alpha.19" }, "files": [ "dist" diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index c8a6b5732d..342d0aa8ca 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-api-docs", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,10 +20,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@kyma-project/asyncapi-react": "^0.11.0", "@material-icons/font": "^1.0.2", "@material-ui/core": "^4.9.1", @@ -37,9 +37,9 @@ "swagger-ui-react": "^3.31.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 65111e599c..7771434750 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "body-parser": "^1.19.0", "compression": "^1.7.4", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/jwt-decode": "2.2.1", diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 7dedbe62cd..5692ff992e 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ "mock-data:local": "./scripts/mock-data-local.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -41,7 +41,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/lodash": "^4.14.151", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 44b3a7b7ee..1e10e91478 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,15 +21,15 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-api-docs": "^0.1.1-alpha.18", - "@backstage/plugin-github-actions": "^0.1.1-alpha.18", - "@backstage/plugin-jenkins": "^0.1.1-alpha.18", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.18", - "@backstage/plugin-sentry": "^0.1.1-alpha.18", - "@backstage/plugin-techdocs": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-api-docs": "^0.1.1-alpha.19", + "@backstage/plugin-github-actions": "^0.1.1-alpha.19", + "@backstage/plugin-jenkins": "^0.1.1-alpha.19", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.19", + "@backstage/plugin-sentry": "^0.1.1-alpha.19", + "@backstage/plugin-techdocs": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -42,9 +42,9 @@ "swr": "^0.3.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 4fb7a28124..b70230364f 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-circleci", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "postpack": "backstage-cli postpack" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index e7783675ae..9b729d7a82 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,9 +32,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 8fcc4591d2..db35022fae 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-actions", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,11 +22,11 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -39,8 +39,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 5815386014..a2a7900d52 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gitops-profiles", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 27437d0318..94a755bb17 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -31,8 +31,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -43,9 +43,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphql/package.json b/plugins/graphql/package.json index 02dc9d3608..f41a4540ec 100644 --- a/plugins/graphql/package.json +++ b/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-graphql-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "apollo-server": "^2.16.0", "apollo-server-express": "^2.16.0", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", "msw": "^0.20.5", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index c5c3bffc9b..8b16d85827 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-identity-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "compression": "^1.7.4", "cors": "^2.8.5", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index dce577801e..2e8b89bea3 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index cbf4a77f7e..bcd34d32de 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-lighthouse", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,9 +33,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 5b1b5d54ce..b6e066bbc0 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -31,8 +31,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 023fc81cf2..4a37ab8a45 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -19,8 +19,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -34,7 +34,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index 02fd3fe0ed..c13121de66 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-register-component", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 4b4a45b9dd..a52abf91b9 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "axios": "^0.19.2", "camelcase-keys": "^6.2.2", @@ -37,7 +37,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/supertest": "^2.0.8", "jest-fetch-mock": "^3.0.3", "supertest": "^4.0.2" diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 1ca02cb528..5eeeacc505 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,9 +35,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index fc956c9832..7112d0f49d 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@octokit/rest": "^18.0.0", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", @@ -43,7 +43,7 @@ "yaml": "^1.10.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@octokit/types": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index c0376a3594..8dec795c3d 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -41,9 +41,9 @@ "swr": "^0.3.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index e199dd2f1d..8850886493 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "axios": "^0.19.2", "compression": "^1.7.4", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 3a6cf54199..365a394331 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,8 +34,8 @@ "timeago.js": "^4.0.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index b2a7be7341..2e788e31e8 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-radar", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/test-utils-core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/test-utils-core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 8a5a9fd10a..6a24ce3e8f 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/dockerode": "^2.5.34", "@types/express": "^4.17.6", "dockerode": "^3.2.1", @@ -35,7 +35,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/node-fetch": "^2.5.7", "supertest": "^4.0.2" }, diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 03f1d6053b..d5416c7329 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,12 +22,12 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -40,8 +40,8 @@ "sanitize-html": "^1.27.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index 2c0c838de8..b832c5d37a 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-welcome", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", From 613c06bdd6101b45ce3feb3329cde22796f631d9 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Fri, 21 Aug 2020 12:11:03 +0200 Subject: [PATCH 61/72] Techdocs: Updates preparers to make it work in actual usecases (#1957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * attempt to add back react as a dep * Fixed failing test * fix(techdocs): Hopefully fixed tests * Fixed another failing test * Initial apiRef for techdocs storage * Cleaned up some code in reader * test(headertabs): add tests to HeaderTabs component * fix(headertabs): change tab mock id * fix(techdocs-generator): fix problem with macOS symlink to tmp folder * fix(lint): remove unused configApiRef * wip * Ongoing cleanups * Cleanups and fix tests * Initial github preparer. Doesn't work properly yet * Updated dir preparer to handle github managed-by-location and added github preparer * Removed old file * Fixed feedback and added better logging to techdocs build process * Updated create-app template Co-authored-by: Fredrik Adelöw Co-authored-by: Emma Indal --- packages/backend/src/plugins/techdocs.ts | 17 +- .../packages/backend/src/plugins/techdocs.ts | 6 +- .../documented-component.yaml | 2 +- plugins/techdocs-backend/package.json | 2 + .../src/service/router.test.ts | 3 +- .../techdocs-backend/src/service/router.ts | 18 +- .../src/service/standaloneServer.ts | 6 +- .../src/techdocs/stages/generate/techdocs.ts | 44 +++-- .../src/techdocs/stages/prepare/dir.test.ts | 7 +- .../src/techdocs/stages/prepare/dir.ts | 79 ++++++++- .../src/techdocs/stages/prepare/github.ts | 71 ++++++++ .../src/techdocs/stages/prepare/helpers.ts | 12 +- .../src/techdocs/stages/prepare/index.ts | 1 + .../src/techdocs/stages/prepare/preparers.ts | 11 +- .../src/techdocs/stages/publish/local.test.ts | 7 +- .../src/techdocs/stages/publish/local.ts | 21 ++- yarn.lock | 160 +++++++++++++++++- 17 files changed, 413 insertions(+), 54 deletions(-) create mode 100644 plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts index 812a56cd9f..7364cc4d83 100644 --- a/packages/backend/src/plugins/techdocs.ts +++ b/packages/backend/src/plugins/techdocs.ts @@ -20,22 +20,27 @@ import { Preparers, Generators, LocalPublish, - TechdocsGenerator + TechdocsGenerator, + GithubPreparer, } from '@backstage/plugin-techdocs-backend'; import { PluginEnvironment } from '../types'; import Docker from 'dockerode'; -export default async function createPlugin({ logger, config }: PluginEnvironment) { +export default async function createPlugin({ + logger, + config, +}: PluginEnvironment) { const generators = new Generators(); - const techdocsGenerator = new TechdocsGenerator(); + const techdocsGenerator = new TechdocsGenerator(logger); generators.register('techdocs', techdocsGenerator); - const directoryPreparer = new DirectoryPreparer(); const preparers = new Preparers(); - + const githubPreparer = new GithubPreparer(logger); + const directoryPreparer = new DirectoryPreparer(logger); preparers.register('dir', directoryPreparer); + preparers.register('github', githubPreparer); - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const dockerClient = new Docker(); diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts index 8c5144f50c..a7b713fcb6 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts @@ -14,15 +14,15 @@ export default async function createPlugin({ config, }: PluginEnvironment) { const generators = new Generators(); - const techdocsGenerator = new TechdocsGenerator(); + const techdocsGenerator = new TechdocsGenerator(logger); generators.register('techdocs', techdocsGenerator); - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); const preparers = new Preparers(); preparers.register('dir', directoryPreparer); - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const dockerClient = new Docker(); diff --git a/plugins/techdocs-backend/examples/documented-component/documented-component.yaml b/plugins/techdocs-backend/examples/documented-component/documented-component.yaml index d5a1214b15..045ff89013 100644 --- a/plugins/techdocs-backend/examples/documented-component/documented-component.yaml +++ b/plugins/techdocs-backend/examples/documented-component/documented-component.yaml @@ -4,7 +4,7 @@ metadata: name: documented-component description: A Service with TechDocs documentation annotations: - backstage.io/techdocs-ref: 'dir:./' + backstage.io/techdocs-ref: 'github:https://github.com/spotify/backstage/blob/master/plugins/techdocs-backend/examples/documented-component' spec: type: service lifecycle: experimental diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 8a5a9fd10a..0ce09ba473 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -30,8 +30,10 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.1", + "git-url-parse": "^11.1.3", "knex": "^0.21.1", "node-fetch": "^2.6.0", + "nodegit": "^0.27.0", "winston": "^3.2.1" }, "devDependencies": { diff --git a/plugins/techdocs-backend/src/service/router.test.ts b/plugins/techdocs-backend/src/service/router.test.ts index b28010e059..c266f98677 100644 --- a/plugins/techdocs-backend/src/service/router.test.ts +++ b/plugins/techdocs-backend/src/service/router.test.ts @@ -24,12 +24,13 @@ import { createRouter } from './router'; describe('createRouter', () => { let app: express.Express; + const logger = getVoidLogger(); beforeAll(async () => { const router = await createRouter({ preparers: new Preparers(), generators: new Generators(), - publisher: new LocalPublish(), + publisher: new LocalPublish(logger), logger: getVoidLogger(), dockerClient: new Docker(), config: ConfigReader.fromConfigs([]), diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index e11e3bb57f..f93d182edc 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -45,18 +45,34 @@ export async function createRouter({ publisher, config, dockerClient, + logger, }: RouterOptions): Promise { const router = Router(); + const getEntityId = (entity: Entity) => { + return `${entity.kind}:${entity.metadata.namespace ?? ''}:${ + entity.metadata.name + }`; + }; + const buildDocsForEntity = async (entity: Entity) => { const preparer = preparers.get(entity); const generator = generators.get(entity); + logger.info(`[TechDocs] Running preparer on entity ${getEntityId(entity)}`); + const preparedDir = await preparer.prepare(entity); + + logger.info( + `[TechDocs] Running generator on entity ${getEntityId(entity)}`, + ); const { resultDir } = await generator.run({ - directory: await preparer.prepare(entity), + directory: preparedDir, dockerClient, }); + logger.info( + `[TechDocs] Running publisher on entity ${getEntityId(entity)}`, + ); await publisher.publish({ entity, directory: resultDir, diff --git a/plugins/techdocs-backend/src/service/standaloneServer.ts b/plugins/techdocs-backend/src/service/standaloneServer.ts index 76de973875..93233af4c0 100644 --- a/plugins/techdocs-backend/src/service/standaloneServer.ts +++ b/plugins/techdocs-backend/src/service/standaloneServer.ts @@ -41,14 +41,14 @@ export async function startStandaloneServer( logger.debug('Creating application...'); const preparers = new Preparers(); - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); preparers.register('dir', directoryPreparer); const generators = new Generators(); - const techdocsGenerator = new TechdocsGenerator(); + const techdocsGenerator = new TechdocsGenerator(logger); generators.register('techdocs', techdocsGenerator); - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const dockerClient = new Docker(); diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts index 32b811af78..96449a0bd6 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts @@ -13,17 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import fs from 'fs-extra'; +import path from 'path'; +import os from 'os'; +import { Logger } from 'winston'; + import { GeneratorBase, GeneratorRunOptions, GeneratorRunResult, } from './types'; import { runDockerContainer } from './helpers'; -import fs from 'fs-extra'; -import path from 'path'; -import os from 'os'; export class TechdocsGenerator implements GeneratorBase { + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + public async run({ directory, logStream, @@ -36,18 +45,23 @@ export class TechdocsGenerator implements GeneratorBase { path.join(tmpdirResolvedPath, 'techdocs-tmp-'), ); - await runDockerContainer({ - imageName: 'spotify/techdocs', - args: ['build', '-d', '/result'], - logStream, - docsDir: directory, - resultDir, - dockerClient, - }); - - console.log( - `[TechDocs]: Successfully generated docs from ${directory} into ${resultDir}`, - ); + try { + await runDockerContainer({ + imageName: 'spotify/techdocs', + args: ['build', '-d', '/result'], + logStream, + docsDir: directory, + resultDir, + dockerClient, + }); + this.logger.info( + `[TechDocs]: Successfully generated docs from ${directory} into ${resultDir}`, + ); + } catch (error) { + this.logger.debug( + `[TechDocs]: Failed to generate docs from ${directory} into ${resultDir}`, + ); + } return { resultDir }; } diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts index 8a99a8b59a..fed7a0e107 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts @@ -14,6 +14,9 @@ * limitations under the License. */ import { DirectoryPreparer } from './dir'; +import { getVoidLogger } from '@backstage/backend-common'; + +const logger = getVoidLogger(); const createMockEntity = (annotations: {}) => { return { @@ -30,7 +33,7 @@ const createMockEntity = (annotations: {}) => { describe('directory preparer', () => { it('should merge managed-by-location and techdocs-ref when techdocs-ref is relative', async () => { - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); const mockEntity = createMockEntity({ 'backstage.io/managed-by-location': @@ -44,7 +47,7 @@ describe('directory preparer', () => { }); it('should merge managed-by-location and techdocs-ref when techdocs-ref is absolute', async () => { - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); const mockEntity = createMockEntity({ 'backstage.io/managed-by-location': diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts index e61a3e48ac..1560c2ea8e 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts @@ -13,26 +13,95 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import fs from 'fs-extra'; +import os from 'os'; import { PreparerBase } from './types'; import { Entity } from '@backstage/catalog-model'; import path from 'path'; import { parseReferenceAnnotation } from './helpers'; +import { InputError } from '@backstage/backend-common'; +import { Clone } from 'nodegit'; +import parseGitUrl from 'git-url-parse'; +import { Logger } from 'winston'; export class DirectoryPreparer implements PreparerBase { - prepare(entity: Entity): Promise { - const { location: managedByLocation } = parseReferenceAnnotation( + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + + private async cloneGithubRepo(entity: Entity) { + const { type, target } = parseReferenceAnnotation( 'backstage.io/managed-by-location', entity, ); - const { location: techdocsLocation } = parseReferenceAnnotation( + + if (type !== 'github') { + throw new InputError(`Wrong target type: ${type}, should be 'github'`); + } + + const parsedGitLocation = parseGitUrl(target); + const repositoryTmpPath = path.join( + os.tmpdir(), + 'backstage-repo', + parsedGitLocation.source, + parsedGitLocation.owner, + parsedGitLocation.name, + parsedGitLocation.ref, + ); + if (fs.existsSync(repositoryTmpPath)) { + return repositoryTmpPath; + } + const repositoryCheckoutUrl = parsedGitLocation.toString('https'); + + this.logger.debug( + `[TechDocs] Checking out repository ${repositoryCheckoutUrl} to ${repositoryTmpPath}`, + ); + + fs.mkdirSync(repositoryTmpPath, { recursive: true }); + await Clone.clone(repositoryCheckoutUrl, repositoryTmpPath, {}); + + return repositoryTmpPath; + } + + private async resolveManagedByLocationToDir(entity: Entity) { + const { type, target } = parseReferenceAnnotation( + 'backstage.io/managed-by-location', + entity, + ); + + this.logger.debug( + `[TechDocs] Building docs for entity with type 'dir' and managed-by-location '${type}'`, + ); + switch (type) { + case 'github': { + const parsedGitLocation = parseGitUrl(target); + const repoLocation = await this.cloneGithubRepo(entity); + + return path.dirname( + path.join(repoLocation, parsedGitLocation.filepath), + ); + } + case 'file': + return path.dirname(target); + default: + throw new InputError(`Unable to resolve location type ${type}`); + } + } + + async prepare(entity: Entity): Promise { + const { target } = parseReferenceAnnotation( 'backstage.io/techdocs-ref', entity, ); - const managedByLocationDirectory = path.dirname(managedByLocation); + const managedByLocationDirectory = await this.resolveManagedByLocationToDir( + entity, + ); return new Promise(resolve => { - resolve(path.resolve(managedByLocationDirectory, techdocsLocation)); + resolve(path.resolve(managedByLocationDirectory, target)); }); } } diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts new file mode 100644 index 0000000000..27ee277f02 --- /dev/null +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from 'fs-extra'; +import path from 'path'; +import os from 'os'; +import { Entity } from '@backstage/catalog-model'; +import { InputError } from '@backstage/backend-common'; +import { PreparerBase } from './types'; +import parseGitUrl from 'git-url-parse'; +import { Clone } from 'nodegit'; +import { parseReferenceAnnotation } from './helpers'; +import { Logger } from 'winston'; + +export class GithubPreparer implements PreparerBase { + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + + async prepare(entity: Entity): Promise { + const { type, target } = parseReferenceAnnotation( + 'backstage.io/techdocs-ref', + entity, + ); + + if (type !== 'github') { + throw new InputError(`Wrong target type: ${type}, should be 'github'`); + } + + const parsedGitLocation = parseGitUrl(target); + const repositoryTmpPath = path.join( + os.tmpdir(), + 'backstage-repo', + parsedGitLocation.source, + parsedGitLocation.owner, + parsedGitLocation.name, + parsedGitLocation.ref, + ); + + if (fs.existsSync(repositoryTmpPath)) { + this.logger.debug( + `[TechDocs] Found repository already checked out at ${repositoryTmpPath}`, + ); + return path.join(repositoryTmpPath, parsedGitLocation.filepath); + } + const repositoryCheckoutUrl = parsedGitLocation.toString('https'); + + this.logger.debug( + `[TechDocs] Checking out repository ${repositoryCheckoutUrl} to ${repositoryTmpPath}`, + ); + + fs.mkdirSync(repositoryTmpPath, { recursive: true }); + await Clone.clone(repositoryCheckoutUrl, repositoryTmpPath, {}); + + return path.join(repositoryTmpPath, parsedGitLocation.filepath); + } +} diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts index 1fd86805ca..3b3388d58d 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts @@ -18,8 +18,8 @@ import { InputError } from '@backstage/backend-common'; import { RemoteProtocol } from './types'; export type ParsedLocationAnnotation = { - protocol: RemoteProtocol; - location: string; + type: RemoteProtocol; + target: string; }; export const parseReferenceAnnotation = ( @@ -36,19 +36,19 @@ export const parseReferenceAnnotation = ( // split on the first colon for the protocol and the rest after the first split // is the location. - const [protocol, location] = annotation.split(/:(.+)/) as [ + const [type, target] = annotation.split(/:(.+)/) as [ RemoteProtocol?, string?, ]; - if (!protocol || !location) { + if (!type || !target) { throw new InputError( `Failure to parse either protocol or location for entity: ${entity.metadata.name}`, ); } return { - protocol, - location, + type, + target, }; }; diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts index 9f928e7413..535b56f327 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts @@ -14,5 +14,6 @@ * limitations under the License. */ export { DirectoryPreparer } from './dir'; +export { GithubPreparer } from './github'; export { Preparers } from './preparers'; export type { PreparerBuilder } from './types'; diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts index 1d5b689d8b..1c8fadd145 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts @@ -26,13 +26,16 @@ export class Preparers implements PreparerBuilder { } get(entity: Entity): PreparerBase { - const { protocol } = parseReferenceAnnotation('backstage.io/techdocs-ref', entity); - const preparer = this.preparerMap.get(protocol); + const { type } = parseReferenceAnnotation( + 'backstage.io/techdocs-ref', + entity, + ); + const preparer = this.preparerMap.get(type); if (!preparer) { - throw new Error(`No preparer registered for type: "${protocol}"`); + throw new Error(`No preparer registered for type: "${type}"`); } return preparer; } -} \ No newline at end of file +} diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts index 1ed8be3898..55e0a547e9 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { LocalPublish } from './local'; import fs from 'fs-extra'; import path from 'path'; +import { getVoidLogger } from '@backstage/backend-common'; +import { LocalPublish } from './local'; const createMockEntity = (annotations = {}) => { return { @@ -30,9 +31,11 @@ const createMockEntity = (annotations = {}) => { }; }; +const logger = getVoidLogger(); + describe('local publisher', () => { it('should publish generated documentation dir', async () => { - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const mockEntity = createMockEntity(); diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts index 73a7d5a758..be9e1876d8 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts @@ -13,12 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { PublisherBase } from './types'; -import { Entity } from '@backstage/catalog-model'; -import path from 'path'; import fs from 'fs-extra'; +import path from 'path'; +import { Logger } from 'winston'; +import { Entity } from '@backstage/catalog-model'; +import { PublisherBase } from './types'; export class LocalPublish implements PublisherBase { + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + publish({ entity, directory, @@ -37,16 +44,22 @@ export class LocalPublish implements PublisherBase { '../../../../static/docs/', entity.kind, entityNamespace, - entity.metadata.name + entity.metadata.name, ); if (!fs.existsSync(publishDir)) { + this.logger.info( + `[TechDocs]: Could not find ${publishDir}, creates the directory.`, + ); fs.mkdirSync(publishDir, { recursive: true }); } return new Promise((resolve, reject) => { fs.copy(directory, publishDir, err => { if (err) { + this.logger.debug( + `[TechDocs]: Failed to copy docs from ${directory} to ${publishDir}`, + ); reject(err); } diff --git a/yarn.lock b/yarn.lock index c3527d6df6..f9e0a21696 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3419,6 +3419,11 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== +"@sindresorhus/is@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" + integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== + "@sinonjs/commons@^1.7.0": version "1.7.1" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" @@ -4302,6 +4307,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.0": + version "4.0.5" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + "@testing-library/cypress@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.0.tgz#935f7716e0e495f02fd753a42621e4d350097dce" @@ -4467,6 +4479,16 @@ "@types/connect" "*" "@types/node" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/cheerio@^0.22.8": version "0.22.21" resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" @@ -4739,6 +4761,11 @@ resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + "@types/http-errors@^1.6.3": version "1.8.0" resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" @@ -4833,6 +4860,13 @@ resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== +"@types/keyv@*", "@types/keyv@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + "@types/koa-compose@*": version "3.2.5" resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" @@ -5150,6 +5184,13 @@ dependencies: "@types/node" "*" +"@types/responselike@*": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + "@types/rollup-plugin-peer-deps-external@^2.2.0": version "2.2.0" resolved "https://registry.npmjs.org/@types/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.0.tgz#eae7d8b9d27fa037f5bcaded24e389f85b81973c" @@ -7389,6 +7430,14 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" + integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== + dependencies: + "@types/keyv" "^3.1.1" + keyv "^4.0.0" + cacheable-request@^2.1.1: version "2.1.4" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" @@ -7415,6 +7464,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + cachedir@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -9100,6 +9162,13 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" +decompress-response@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" + integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== + dependencies: + mimic-response "^2.0.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -9215,6 +9284,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -11630,6 +11704,13 @@ git-url-parse@^11.1.2: dependencies: git-up "^4.0.0" +git-url-parse@^11.1.3: + version "11.1.3" + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" + integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== + dependencies: + git-up "^4.0.0" + gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -11853,6 +11934,27 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" +got@^10.7.0: + version "10.7.0" + resolved "https://registry.npmjs.org/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" + integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== + dependencies: + "@sindresorhus/is" "^2.0.0" + "@szmarczak/http-timer" "^4.0.0" + "@types/cacheable-request" "^6.0.1" + cacheable-lookup "^2.0.0" + cacheable-request "^7.0.1" + decompress-response "^5.0.0" + duplexer3 "^0.1.4" + get-stream "^5.0.0" + lowercase-keys "^2.0.0" + mimic-response "^2.1.0" + p-cancelable "^2.0.0" + p-event "^4.0.0" + responselike "^2.0.0" + to-readable-stream "^2.0.0" + type-fest "^0.10.0" + got@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -14292,6 +14394,11 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -14547,6 +14654,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz#9fe703cb4a94d6d11729d320af033307efd02ee6" + integrity sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw== + dependencies: + json-buffer "3.0.1" + killable@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -15733,7 +15847,7 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimic-response@^2.0.0: +mimic-response@^2.0.0, mimic-response@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== @@ -16323,6 +16437,21 @@ nodegit@0.26.5: request-promise-native "^1.0.5" tar-fs "^1.16.3" +nodegit@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.27.0.tgz#4e8cc236f60e1c97324a5acff99056fe116a6ebe" + integrity sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA== + dependencies: + fs-extra "^7.0.0" + got "^10.7.0" + json5 "^2.1.0" + lodash "^4.17.14" + nan "^2.14.0" + node-gyp "^4.0.0" + node-pre-gyp "^0.13.0" + ramda "^0.25.0" + tar-fs "^1.16.3" + nodemon@^2.0.2: version "2.0.4" resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416" @@ -16870,6 +16999,11 @@ p-cancelable@^1.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" @@ -16889,6 +17023,13 @@ p-event@^2.1.0: dependencies: p-timeout "^2.0.1" +p-event@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -19745,6 +19886,13 @@ responselike@1.0.2, responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -21906,6 +22054,11 @@ to-readable-stream@^1.0.0: resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== +to-readable-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" + integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -22204,6 +22357,11 @@ type-detect@4.0.8: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" + integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== + type-fest@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" From b9683dc2369b5fde8a2d8bf54703d748be081f62 Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Fri, 21 Aug 2020 12:27:03 +0200 Subject: [PATCH 62/72] Commit lock file --- yarn.lock | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index c3527d6df6..140bd5dcdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1544,6 +1544,42 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@backstage/core@0.1.1-alpha.18": + version "0.1.1-alpha.18" + resolved "https://registry.npmjs.org/@backstage/core/-/core-0.1.1-alpha.18.tgz#a8384b6fa65af17ee76166f2e0e4922356856ec1" + integrity sha512-7I0eaTfF30xyX4CD/bFUnXXy22zQzQbqSFFYIGLm5j/XFi3IRb6WANoFMs1hvB/BPI/rojX9oN51PfuHBS6xHg== + dependencies: + "@backstage/config" "^0.1.1-alpha.18" + "@backstage/core-api" "^0.1.1-alpha.18" + "@backstage/theme" "^0.1.1-alpha.18" + "@material-ui/core" "^4.9.1" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + "@types/react" "^16.9" + "@types/react-sparklines" "^1.7.0" + classnames "^2.2.6" + clsx "^1.1.0" + lodash "^4.17.15" + material-table "1.62.x" + prop-types "^15.7.2" + rc-progress "^3.0.0" + react "^16.12.0" + react-dom "^16.12.0" + react-helmet "6.1.0" + react-hook-form "^5.7.2" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^13.2.1" + react-use "^15.3.3" + +"@backstage/theme@0.1.1-alpha.18": + version "0.1.1-alpha.18" + resolved "https://registry.npmjs.org/@backstage/theme/-/theme-0.1.1-alpha.18.tgz#40adb3e798054d75ccf57c81e5fe3cb6e32cfac5" + integrity sha512-dDTUGH/fxRGtwnR6NCK44ojlfNyFQJKVlax2CNIB/JA43+2c5G2ipDvJ8MhxDeTwwNeO+HJj1AF0AqoJcc1QdQ== + dependencies: + "@material-ui/core" "^4.9.1" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -15446,6 +15482,22 @@ markdown-toc@^1.2.0: repeat-string "^1.6.1" strip-color "^0.1.0" +material-table@1.62.x: + version "1.62.0" + resolved "https://registry.npmjs.org/material-table/-/material-table-1.62.0.tgz#117793ebf16ab0fccbb6f8a670d849a7be0b5995" + integrity sha512-+3tnk32lXtkXeKM7k/hZ82jpSzlXU5CsWXqJHq4Tl0Un7ycjK2Kef6EMPqeE3i58vKNqbIvbrFf/ESH0D/Qwig== + dependencies: + "@date-io/date-fns" "^1.1.0" + "@material-ui/pickers" "^3.2.2" + classnames "^2.2.6" + date-fns "^2.0.0-alpha.27" + debounce "^1.2.0" + fast-deep-equal "2.0.1" + filefy "0.1.10" + prop-types "^15.6.2" + react-beautiful-dnd "^13.0.0" + react-double-scrollbar "0.0.15" + material-table@1.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" @@ -19070,7 +19122,7 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^13.5.1: +react-syntax-highlighter@^13.2.1, react-syntax-highlighter@^13.5.1: version "13.5.1" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== From 4d17c1fd94666c8114899d357c044755107d6b60 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 21 Aug 2020 13:24:43 +0200 Subject: [PATCH 63/72] cli: fix jest transform pattern termination --- packages/cli/config/jest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 77d3a84e82..d95dd21489 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -37,8 +37,8 @@ async function getConfig() { // TODO: jest is working on module support, it's possible that we can remove this in the future transform: { '\\.esm\\.js$': require.resolve('jest-esm-transformer'), - '\\.(js|jsx|ts|tsx)': require.resolve('ts-jest'), - '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)': require.resolve( + '\\.(js|jsx|ts|tsx)$': require.resolve('ts-jest'), + '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)$': require.resolve( './jestFileTransform.js', ), }, From f43063d463f30bf66c021b3c95e76fe8f50f4d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 21 Aug 2020 13:28:54 +0200 Subject: [PATCH 64/72] fix dependency and lockfile --- packages/app/package.json | 2 +- yarn.lock | 66 +++++---------------------------------- 2 files changed, 8 insertions(+), 60 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index ad4aa3524c..d6598b9954 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -28,7 +28,7 @@ "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", "@roadiehq/backstage-plugin-github-pull-requests": "0.3.0", - "@roadiehq/backstage-plugin-travis-ci": "^0.1.3", + "@roadiehq/backstage-plugin-travis-ci": "^0.1.4", "history": "^5.0.0", "prop-types": "^15.7.2", "react": "^16.12.0", diff --git a/yarn.lock b/yarn.lock index 140bd5dcdc..ec6343107a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1544,42 +1544,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@backstage/core@0.1.1-alpha.18": - version "0.1.1-alpha.18" - resolved "https://registry.npmjs.org/@backstage/core/-/core-0.1.1-alpha.18.tgz#a8384b6fa65af17ee76166f2e0e4922356856ec1" - integrity sha512-7I0eaTfF30xyX4CD/bFUnXXy22zQzQbqSFFYIGLm5j/XFi3IRb6WANoFMs1hvB/BPI/rojX9oN51PfuHBS6xHg== - dependencies: - "@backstage/config" "^0.1.1-alpha.18" - "@backstage/core-api" "^0.1.1-alpha.18" - "@backstage/theme" "^0.1.1-alpha.18" - "@material-ui/core" "^4.9.1" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.45" - "@types/react" "^16.9" - "@types/react-sparklines" "^1.7.0" - classnames "^2.2.6" - clsx "^1.1.0" - lodash "^4.17.15" - material-table "1.62.x" - prop-types "^15.7.2" - rc-progress "^3.0.0" - react "^16.12.0" - react-dom "^16.12.0" - react-helmet "6.1.0" - react-hook-form "^5.7.2" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-sparklines "^1.7.0" - react-syntax-highlighter "^13.2.1" - react-use "^15.3.3" - -"@backstage/theme@0.1.1-alpha.18": - version "0.1.1-alpha.18" - resolved "https://registry.npmjs.org/@backstage/theme/-/theme-0.1.1-alpha.18.tgz#40adb3e798054d75ccf57c81e5fe3cb6e32cfac5" - integrity sha512-dDTUGH/fxRGtwnR6NCK44ojlfNyFQJKVlax2CNIB/JA43+2c5G2ipDvJ8MhxDeTwwNeO+HJj1AF0AqoJcc1QdQ== - dependencies: - "@material-ui/core" "^4.9.1" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -3367,13 +3331,13 @@ react-router-dom "6.0.0-beta.0" react-use "^15.3.3" -"@roadiehq/backstage-plugin-travis-ci@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.3.tgz#597882bb6db119b9c8970f15cc506c5d70ba2c41" - integrity sha512-xTnc71VtQSp7qfiE/p92U2/FEAvsG32BHIELebYZGCIt+ZqY/fSiXZSGsOXFDlg9adTu0e8ro6HWnknXCdo2pw== +"@roadiehq/backstage-plugin-travis-ci@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.4.tgz#ddbb2ba5b9d47f474462ecbc8c769759578e8526" + integrity sha512-T1eJ0huhwZcRHjrDKWoAzlKBv8UbhXgrvE7wuHD7dCcmfQdln0jbn7cskOpTnVmrzGXWKQ6mDyKX3LfdEPYbAw== dependencies: - "@backstage/core" "0.1.1-alpha.18" - "@backstage/theme" "0.1.1-alpha.18" + "@backstage/core" "^0.1.1-alpha.18" + "@backstage/theme" "^0.1.1-alpha.18" "@material-ui/core" "^4.9.1" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.45" @@ -15482,22 +15446,6 @@ markdown-toc@^1.2.0: repeat-string "^1.6.1" strip-color "^0.1.0" -material-table@1.62.x: - version "1.62.0" - resolved "https://registry.npmjs.org/material-table/-/material-table-1.62.0.tgz#117793ebf16ab0fccbb6f8a670d849a7be0b5995" - integrity sha512-+3tnk32lXtkXeKM7k/hZ82jpSzlXU5CsWXqJHq4Tl0Un7ycjK2Kef6EMPqeE3i58vKNqbIvbrFf/ESH0D/Qwig== - dependencies: - "@date-io/date-fns" "^1.1.0" - "@material-ui/pickers" "^3.2.2" - classnames "^2.2.6" - date-fns "^2.0.0-alpha.27" - debounce "^1.2.0" - fast-deep-equal "2.0.1" - filefy "0.1.10" - prop-types "^15.6.2" - react-beautiful-dnd "^13.0.0" - react-double-scrollbar "0.0.15" - material-table@1.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" @@ -19122,7 +19070,7 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^13.2.1, react-syntax-highlighter@^13.5.1: +react-syntax-highlighter@^13.5.1: version "13.5.1" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== From 9b655c8f713c031092ee744922347b1112527205 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 14:47:17 +0200 Subject: [PATCH 65/72] chore(deps): bump @material-icons/font from 1.0.3 to 1.0.4 (#2063) Bumps [@material-icons/font](https://github.com/material-icons/material-icons) from 1.0.3 to 1.0.4. - [Release notes](https://github.com/material-icons/material-icons/releases) - [Commits](https://github.com/material-icons/material-icons/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4329ae46ca..38855bb50d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2874,9 +2874,9 @@ write-file-atomic "^2.3.0" "@material-icons/font@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.3.tgz#f722e5a69a03f20ef47d015cb69420bebeeaabe5" - integrity sha512-aIRd0Z9b/HJ/O24KOaP7dNsXypMnXhpWrpLVYvQB/JesVqXYSbioYND200sR+C14a0LSCp+qWnWCnSXmN1hWGw== + version "1.0.4" + resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.4.tgz#4bfc59dcaba90f6d71e4aeffd1ebb2ea6119c844" + integrity sha512-tt80HS8dDtx/jj6fXWi6CycCZWC1AY3YOXjHwxShwe/jrW/fRVdw0C9JOGo0ij5/7y+uG0Rp0c4plu7J4Cq7EA== "@material-ui/core@^4.9.1": version "4.9.7" From 307106588491ffcd1008f07359d672168793a091 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 14:47:45 +0200 Subject: [PATCH 66/72] chore(deps): bump swagger-ui-react from 3.31.1 to 3.32.4 (#2059) Bumps [swagger-ui-react](https://github.com/swagger-api/swagger-ui) from 3.31.1 to 3.32.4. - [Release notes](https://github.com/swagger-api/swagger-ui/releases) - [Commits](https://github.com/swagger-api/swagger-ui/compare/v3.31.1...v3.32.4) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 168 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 104 insertions(+), 64 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38855bb50d..06324a67a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1415,7 +1415,7 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime-corejs2@^7.10.4": +"@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7": version "7.11.2" resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" integrity sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q== @@ -1423,14 +1423,6 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/runtime-corejs2@^7.8.7": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.10.3.tgz#81bc99a96bfcb6db3f0dcf73fdc577cc554d341b" - integrity sha512-enKvnR/kKFbZFgXYo165wtSA5OeiTlgsnU4jV3vpKRhfWUJjLS6dfVcjIPeRcgJbgEgdgu0I+UyBWqu6c0GumQ== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - "@babel/runtime-corejs3@^7.10.2": version "7.10.3" resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz#931ed6941d3954924a7aa967ee440e60c507b91a" @@ -8484,6 +8476,11 @@ core-js-pure@^3.0.0, core-js-pure@^3.0.1: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= + core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5: version "2.6.11" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" @@ -8567,6 +8564,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-react-class@^15.5.1: + version "15.6.3" + resolved "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + create-react-context@0.3.0, create-react-context@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" @@ -10919,6 +10925,19 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fbjs@^0.8.9: + version "0.8.17" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -12377,11 +12396,6 @@ highlight.js@~9.13.0: resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== -highlight.js@~9.15.0, highlight.js@~9.15.1: - version "9.15.10" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" - integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== - history@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" @@ -13085,7 +13099,7 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.0.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -13579,7 +13593,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -13720,6 +13734,14 @@ isobject@^4.0.0: resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + isomorphic-form-data@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" @@ -14271,15 +14293,7 @@ js-tokens@^3.0.2: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.13.1, js-yaml@^3.8.3: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.14.0, js-yaml@^3.8.1: +js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.8.1, js-yaml@^3.8.3: version "3.14.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== @@ -15058,7 +15072,7 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash-es@^4.17.11: +lodash-es@^4.17.11, lodash-es@^4.2.1: version "4.17.15" resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== @@ -15302,7 +15316,7 @@ longest@^1.0.0: resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -15339,14 +15353,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lowlight@1.12.1: - version "1.12.1" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz#014acf8dd73a370e02ff1cc61debcde3bb1681eb" - integrity sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w== - dependencies: - fault "^1.0.2" - highlight.js "~9.15.0" - lowlight@^1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.14.0.tgz#83ebc143fec0f9e6c0d3deffe01be129ce56b108" @@ -16261,6 +16267,14 @@ node-fetch@2.6.0, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node- resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-forge@0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -18439,6 +18453,13 @@ promise.series@^0.2.0: resolved "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + promise@^8.0.3: version "8.1.0" resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" @@ -19052,7 +19073,7 @@ react-inspector@^4.0.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: +react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -19072,7 +19093,7 @@ react-lazylog@^4.5.2: text-encoding-utf-8 "^1.0.1" whatwg-fetch "^2.0.4" -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== @@ -19121,18 +19142,17 @@ react-popper@^1.3.6: typed-styles "^0.0.7" warning "^4.0.2" -react-redux@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz#b19cf9e21d694422727bf798e934a916c4080f57" - integrity sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q== +react-redux@=4.4.10: + version "4.4.10" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz#ad57bd1db00c2d0aa7db992b360ce63dd0b80ec5" + integrity sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg== dependencies: - "@babel/runtime" "^7.1.2" + create-react-class "^15.5.1" hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" - loose-envify "^1.1.0" - prop-types "^15.6.1" - react-is "^16.6.0" - react-lifecycles-compat "^3.0.0" + invariant "^2.0.0" + lodash "^4.17.11" + loose-envify "^1.4.0" + prop-types "^15.7.2" react-redux@^7.1.1: version "7.2.0" @@ -19189,16 +19209,16 @@ react-string-replace@^0.4.1: dependencies: lodash "^4.17.4" -react-syntax-highlighter@=12.2.1: - version "12.2.1" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz#14d78352da1c1c3f93c6698b70ec7c706b83493e" - integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA== +react-syntax-highlighter@=13.5.0: + version "13.5.0" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.0.tgz#c0f3fd826a52b2a6ce5786d4ce60c3e0665b65c0" + integrity sha512-2nKo8spFxe9shcjbdUiqxkrf/IMDqKUZLx7JVIxEJ17P+fYFGL4CRsZZC66UPeQ2o/f29eKu31CrkKGCK1RHuA== dependencies: "@babel/runtime" "^7.3.1" - highlight.js "~9.15.1" - lowlight "1.12.1" - prismjs "^1.8.4" - refractor "^2.4.1" + highlight.js "^10.1.1" + lowlight "^1.14.0" + prismjs "^1.21.0" + refractor "^3.1.0" react-syntax-highlighter@^11.0.2: version "11.0.2" @@ -19535,7 +19555,17 @@ redux-immutable@3.1.0: dependencies: immutable "^3.8.1" -redux@^4.0.4, redux@^4.0.5: +redux@=3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + +redux@^4.0.4: version "4.0.5" resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== @@ -20411,7 +20441,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: +setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -21568,9 +21598,9 @@ swagger-client@=3.10.12: url "~0.11.0" swagger-ui-react@^3.31.1: - version "3.31.1" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.31.1.tgz#1770cfa1dc390f79887d641ea35ee654f4bf7d80" - integrity sha512-bGpNzizMT/7N4LTdw6yx+t3rpsEoalrn0VIfhUzv9zXVrUTl+3AKPLHpLBr0r4NvzvaZLrYuSjkatnLfngJ4vg== + version "3.32.4" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.32.4.tgz#cc2cef0e2b9faff7c0dab111e9b4b9c87d0a01a2" + integrity sha512-AbdeBVIV6oM4pXKEsGY2Ijs1ySmdVYP4cHdZYu0kWghxKVqskocsfB+SsvRTh6mOxdZ2YNAEhc7RMdSqaWnGgw== dependencies: "@babel/runtime-corejs2" "^7.10.4" "@braintree/sanitize-url" "^4.0.0" @@ -21596,9 +21626,9 @@ swagger-ui-react@^3.31.1: react-immutable-pure-component "^1.1.1" react-inspector "^2.3.0" react-motion "^0.5.2" - react-redux "^5.1.2" - react-syntax-highlighter "=12.2.1" - redux "^4.0.5" + react-redux "=4.4.10" + react-syntax-highlighter "=13.5.0" + redux "=3.7.2" redux-immutable "3.1.0" remarkable "^2.0.1" reselect "^4.0.0" @@ -21616,7 +21646,7 @@ swr@^0.3.0: dependencies: fast-deep-equal "2.0.1" -symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: +symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -22422,6 +22452,11 @@ typescript@^3.9.3: resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +ua-parser-js@^0.7.18: + version "0.7.21" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -23202,6 +23237,11 @@ whatwg-fetch@3.0.0, whatwg-fetch@^3.0.0: resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== +whatwg-fetch@>=0.10.0: + version "3.4.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" + integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== + whatwg-fetch@^2.0.0, whatwg-fetch@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" From c6c3c94c18f73d72de35d3f1e5ac258b5a2bb5c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Fri, 21 Aug 2020 14:48:16 +0200 Subject: [PATCH 67/72] Camelcase GitHub and GitLab (#2034) * Camelcase GitHub and GitLab * GitLab * Code GitLab * GitHub in code * Fix auth naming * Update docs/features/software-templates/adding-templates.md Co-authored-by: Raghunandan Balachandran * Update docs/features/software-templates/extending/create-your-own-preparer.md Co-authored-by: Raghunandan Balachandran Co-authored-by: Raghunandan Balachandran --- docs/features/software-templates/adding-templates.md | 2 +- .../extending/create-your-own-preparer.md | 2 +- docs/features/software-templates/index.md | 2 +- docs/features/software-templates/installation.md | 2 +- docs/reference/utility-apis/README.md | 4 ++-- microsite/blog/2020-03-18-what-is-backstage.md | 2 +- packages/app/src/identityProviders.ts | 8 ++++---- packages/core-api/src/apis/definitions/auth.ts | 8 ++++---- packages/core/src/layout/Sidebar/UserSettings.tsx | 4 ++-- plugins/auth-backend/src/providers/github/provider.ts | 2 +- .../ingestion/processors/GitlabApiReaderProcessor.test.ts | 2 +- .../src/ingestion/processors/GitlabApiReaderProcessor.ts | 4 ++-- .../src/ingestion/processors/GitlabReaderProcessor.ts | 2 +- plugins/github-actions/src/api/GithubActionsApi.ts | 2 +- plugins/graphiql/src/lib/api/GraphQLEndpoints.ts | 2 +- .../src/scaffolder/stages/publish/github.test.ts | 2 +- 16 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index 2ec4bdd6f3..b0405cab79 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -54,7 +54,7 @@ contains more information about the required fields. Once we have a `template.yaml` ready, we can then add it to the service catalog for use by the scaffolder. -Currently the catalog supports loading definitions from Github + Local Files. To +Currently the catalog supports loading definitions from GitHub + Local Files. To load from other places, not only will there need to be another preparer, but the support to load the location will also need to be added to the Catalog. diff --git a/docs/features/software-templates/extending/create-your-own-preparer.md b/docs/features/software-templates/extending/create-your-own-preparer.md index 739c516658..0b3fb31323 100644 --- a/docs/features/software-templates/extending/create-your-own-preparer.md +++ b/docs/features/software-templates/extending/create-your-own-preparer.md @@ -54,7 +54,7 @@ The `protocol` is set on the when added to the service catalog. You can see more about this `PreparerKey` here in [Register your own template](../adding-templates.md) -**note:** Currently the catalog supports loading definitions from Github + Local +**note:** Currently the catalog supports loading definitions from GitHub + Local Files, which translate into the two `PreparerKeys` `file` and `github`. To load from other places, not only will there need to be another preparer, but the support to load the location will also need to be added to the Catalog. diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index d9a86ee7aa..503fbb7a3d 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -34,7 +34,7 @@ internally. After filling in these variables, you'll get some more fields to fill out which are required for backstage usage. The owner, which is a `user` in the backstage -system, and the `storePath` which right now must be a Github Organisation and a +system, and the `storePath` which right now must be a GitHub Organisation and a non-existing github repository name in the format `organisation/reponame`. ![Enter backstage vars](../../assets/software-templates/template-picked-2.png) diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index 0508d1f3f7..73b4f20359 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -109,7 +109,7 @@ export default async function createPlugin({ logger }: PluginEnvironment) { preparers.register('file', filePreparer); preparers.register('github', githubPreparer); - // Create Github client with your access token from environment variables + // Create GitHub client with your access token from environment variables const githubClient = new Octokit({ auth: process.env.GITHUB_ACCESS_TOKEN }); const publisher = new GithubPublisher({ client: githubClient }); diff --git a/docs/reference/utility-apis/README.md b/docs/reference/utility-apis/README.md index fbfbbc475e..521628fd33 100644 --- a/docs/reference/utility-apis/README.md +++ b/docs/reference/utility-apis/README.md @@ -55,7 +55,7 @@ ApiRef: ## githubAuth -Provides authentication towards Github APIs +Provides authentication towards GitHub APIs Implemented types: [OAuthApi](./OAuthApi.md), [ProfileInfoApi](./ProfileInfoApi.md), @@ -67,7 +67,7 @@ ApiRef: ## gitlabAuth -Provides authentication towards Gitlab APIs +Provides authentication towards GitLab APIs Implemented types: [OAuthApi](./OAuthApi.md), [ProfileInfoApi](./ProfileInfoApi.md), diff --git a/microsite/blog/2020-03-18-what-is-backstage.md b/microsite/blog/2020-03-18-what-is-backstage.md index 942adc607f..8b0a0fcbe6 100644 --- a/microsite/blog/2020-03-18-what-is-backstage.md +++ b/microsite/blog/2020-03-18-what-is-backstage.md @@ -13,7 +13,7 @@ Two days ago, we released the open source version of [Backstage](https://backsta ## What’s the big infrastructure problem? -As companies grow, their infrastructure systems get messier. Consider a team that wants to deploy something to the cloud. While Spotify has many awesome engineers, not every engineer is well-versed in our chosen cloud-provider tooling. Yet everyone is required to know and understand Terraform, GCP/AWS/Azure CLIs, Gitlab CI, Prometheus, Kubernetes, Docker, various monitoring and alerting tools, and much, much more. Once other resources come into play (databases, queueing, etc.), each engineer requires even more tools and domain-specific knowledge (or “disciplines”), from backend to machine learning, to mobile and data. +As companies grow, their infrastructure systems get messier. Consider a team that wants to deploy something to the cloud. While Spotify has many awesome engineers, not every engineer is well-versed in our chosen cloud-provider tooling. Yet everyone is required to know and understand Terraform, GCP/AWS/Azure CLIs, GitLab CI, Prometheus, Kubernetes, Docker, various monitoring and alerting tools, and much, much more. Once other resources come into play (databases, queueing, etc.), each engineer requires even more tools and domain-specific knowledge (or “disciplines”), from backend to machine learning, to mobile and data. ## What’s the fix? diff --git a/packages/app/src/identityProviders.ts b/packages/app/src/identityProviders.ts index e80b1d6fea..ea5af8b505 100644 --- a/packages/app/src/identityProviders.ts +++ b/packages/app/src/identityProviders.ts @@ -30,14 +30,14 @@ export const providers = [ }, { id: 'gitlab-auth-provider', - title: 'Gitlab', - message: 'Sign In using Gitlab', + title: 'GitLab', + message: 'Sign In using GitLab', apiRef: gitlabAuthApiRef, }, { id: 'github-auth-provider', - title: 'Github', - message: 'Sign In using Github', + title: 'GitHub', + message: 'Sign In using GitHub', apiRef: githubAuthApiRef, }, { diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index a1a408fece..ffe44afb8a 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -222,7 +222,7 @@ export const googleAuthApiRef = createApiRef< }); /** - * Provides authentication towards Github APIs. + * Provides authentication towards GitHub APIs. * * See https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/ * for a full list of supported scopes. @@ -231,7 +231,7 @@ export const githubAuthApiRef = createApiRef< OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionStateApi >({ id: 'core.auth.github', - description: 'Provides authentication towards Github APIs', + description: 'Provides authentication towards GitHub APIs', }); /** @@ -252,7 +252,7 @@ export const oktaAuthApiRef = createApiRef< }); /** - * Provides authentication towards Gitlab APIs. + * Provides authentication towards GitLab APIs. * * See https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#limiting-scopes-of-a-personal-access-token * for a full list of supported scopes. @@ -261,7 +261,7 @@ export const gitlabAuthApiRef = createApiRef< OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionStateApi >({ id: 'core.auth.gitlab', - description: 'Provides authentication towards Gitlab APIs', + description: 'Provides authentication towards GitLab APIs', }); /** diff --git a/packages/core/src/layout/Sidebar/UserSettings.tsx b/packages/core/src/layout/Sidebar/UserSettings.tsx index e69d63186d..74fa5e173a 100644 --- a/packages/core/src/layout/Sidebar/UserSettings.tsx +++ b/packages/core/src/layout/Sidebar/UserSettings.tsx @@ -62,14 +62,14 @@ export function SidebarUserSettings() { )} {providers.includes('github') && ( )} {providers.includes('gitlab') && ( diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index e6ba56d2c3..b63acdfb20 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -74,7 +74,7 @@ export class GithubAuthProvider implements OAuthProviderHandlers { idToken: params.id_token, }; - // Github provides an id numeric value (123) + // GitHub provides an id numeric value (123) // as a fallback const id = passportProfile!.id; diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts index cd46d97d13..c43c68591e 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts @@ -50,7 +50,7 @@ describe('GitlabApiReaderProcessor', () => { 'https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/', url: null, err: - 'Incorrect url: https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/, Error: Gitlab url does not end in .ya?ml', + 'Incorrect url: https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/, Error: GitLab url does not end in .ya?ml', }, ]; diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts index 6964640eb4..3e585bf2b3 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts @@ -77,7 +77,7 @@ export class GitlabApiReaderProcessor implements LocationProcessor { const branchAndfilePath = url.pathname.split('/-/blob/')[1]; if (!branchAndfilePath.match(/\.ya?ml$/)) { - throw new Error('Gitlab url does not end in .ya?ml'); + throw new Error('GitLab url does not end in .ya?ml'); } const [branch, ...filePath] = branchAndfilePath.split('/'); @@ -127,7 +127,7 @@ export class GitlabApiReaderProcessor implements LocationProcessor { return projectID; } catch (e) { - throw new Error(`Could not get Gitlab ProjectID for: ${target}, ${e}`); + throw new Error(`Could not get GitLab ProjectID for: ${target}, ${e}`); } } } diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts index 211f325afe..9f308ee184 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts @@ -77,7 +77,7 @@ export class GitlabReaderProcessor implements LocationProcessor { blobKeyword !== 'blob' || !restOfPath.join('/').match(/\.yaml$/) ) { - throw new Error('Wrong Gitlab URL'); + throw new Error('Wrong GitLab URL'); } // Replace 'blob' with 'raw' diff --git a/plugins/github-actions/src/api/GithubActionsApi.ts b/plugins/github-actions/src/api/GithubActionsApi.ts index acdfb90cf3..9a95f21860 100644 --- a/plugins/github-actions/src/api/GithubActionsApi.ts +++ b/plugins/github-actions/src/api/GithubActionsApi.ts @@ -23,7 +23,7 @@ import { export const githubActionsApiRef = createApiRef({ id: 'plugin.githubactions.service', - description: 'Used by the Github Actions plugin to make requests', + description: 'Used by the GitHub Actions plugin to make requests', }); export type GithubActionsApi = { diff --git a/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts b/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts index ee0b4bfd4e..23a9e9e697 100644 --- a/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts +++ b/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts @@ -33,7 +33,7 @@ export type GithubEndpointConfig = { id: string; title: string; /** - * Github GraphQL API url, defaults to https://api.github.com/graphql + * GitHub GraphQL API url, defaults to https://api.github.com/graphql */ url?: string; /** diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts index 164ec316df..93493ab2cc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts @@ -45,7 +45,7 @@ const { mockRemote: jest.Mocked; }; -describe('Github Publisher', () => { +describe('GitHub Publisher', () => { const publisher = new GithubPublisher({ client: new Octokit() }); beforeEach(() => { From f6f56aa7484b50f9c2293eddd91fc3d6ccaa73f7 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 21 Aug 2020 14:56:46 +0200 Subject: [PATCH 68/72] TechDocs: documentation template (#1954) * feat(docs-template): Add docs template to create a standalone docs project * fix(docs-template): add docs template to mock data * fix(docs-template): owner of template * add techdocs-ref to cookiecutter docs project * delete unused cookiecutter json file * update docs in default index.md file * rename from .yaml to .yml to be consistent to docs * update techdocs-ref to use github protocol --- .../docs-template/template.yaml | 29 +++++++++++++++++++ .../component-info.yaml | 12 ++++++++ .../docs/index.md | 28 ++++++++++++++++++ .../{{cookiecutter.component_id}}/mkdocs.yml | 8 +++++ .../scaffolder-backend/scripts/mock-data.sh | 1 + .../src/techdocs/stages/prepare/dir.ts | 3 +- .../src/techdocs/stages/prepare/github.ts | 3 +- 7 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/template.yaml create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml b/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml new file mode 100644 index 0000000000..01ebdadbce --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml @@ -0,0 +1,29 @@ +apiVersion: backstage.io/v1alpha1 +kind: Template +metadata: + name: docs-template + title: Documentation Template + description: Create a new standalone documentation project + tags: + - Experimental + - TechDocs + - MkDocs +spec: + owner: spotify/techdocs-core + templater: cookiecutter + type: documentation + path: '.' + + schema: + required: + - component_id + properties: + component_id: + title: Name + type: string + description: Unique name of the component + description: + title: Description + type: string + description: Description of the component + \ No newline at end of file diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml new file mode 100644 index 0000000000..854b692fcf --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml @@ -0,0 +1,12 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: {{cookiecutter.component_id}} + description: {{cookiecutter.description}} + annotations: + github.com/project-slug: {{cookiecutter.storePath}} + backstage.io/techdocs-ref: github:https://github.com/{{cookiecutter.storePath}} +spec: + type: documentation + lifecycle: experimental + owner: {{cookiecutter.owner}} diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md new file mode 100644 index 0000000000..5352ef7801 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md @@ -0,0 +1,28 @@ +## {{ cookiecutter.component_id }} + +{{ cookiecutter.description }} + +## Getting started + +Start write your documentation by adding more markdown (.md) files to this folder (/docs) or replace the content in this file. + +## Table of Contents + +The Table of Contents on the right is generated automatically based on the hierarchy +of headings. Only use one H1 (`#` in Markdown) per file. + +## Site navigation + +For new pages to appear in the left hand navigation you need edit the `mkdocs.yml` +file in root of your repo. The navigation can also link out to other sites. + +Alternatively, if there is no `nav` section in `mkdocs.yml`, a navigation section +will be created for you. However, you will not be able to use alternate titles for +pages, or include links to other sites. + +Note that MkDocs uses `mkdocs.yml`, not `mkdocs.yaml`, although both appear to work. +See also . + +## Support + +That's it. If you need support, reach out in [#docs-like-code](https://discord.com/channels/687207715902193673/714754240933003266) on Discord. diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml new file mode 100644 index 0000000000..2126971502 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml @@ -0,0 +1,8 @@ +site_name: {{cookiecutter.component_id}} +site_description: {{cookiecutter.description}} + +nav: + - Introduction: index.md + +plugins: + - techdocs-core diff --git a/plugins/scaffolder-backend/scripts/mock-data.sh b/plugins/scaffolder-backend/scripts/mock-data.sh index f18d4b4838..9a9b0b186b 100755 --- a/plugins/scaffolder-backend/scripts/mock-data.sh +++ b/plugins/scaffolder-backend/scripts/mock-data.sh @@ -4,6 +4,7 @@ for URL in \ 'react-ssr-template' \ 'springboot-grpc-template' \ 'create-react-app' \ + 'docs-template' \ ; do \ curl \ --location \ diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts index 1560c2ea8e..e108ac4ab9 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts @@ -43,7 +43,8 @@ export class DirectoryPreparer implements PreparerBase { const parsedGitLocation = parseGitUrl(target); const repositoryTmpPath = path.join( - os.tmpdir(), + // fs.realpathSync fixes a problem with macOS returning a path that is a symlink + fs.realpathSync(os.tmpdir()), 'backstage-repo', parsedGitLocation.source, parsedGitLocation.owner, diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts index 27ee277f02..aa8a4bb228 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts @@ -43,7 +43,8 @@ export class GithubPreparer implements PreparerBase { const parsedGitLocation = parseGitUrl(target); const repositoryTmpPath = path.join( - os.tmpdir(), + // fs.realpathSync fixes a problem with macOS returning a path that is a symlink + fs.realpathSync(os.tmpdir()), 'backstage-repo', parsedGitLocation.source, parsedGitLocation.owner, From 2e50876160e54a2a622e56affec09c270f1dd133 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Fri, 21 Aug 2020 15:30:50 +0200 Subject: [PATCH 69/72] Throw error when failing to generate docs to prevent request loop (#2073) --- .../techdocs-backend/src/techdocs/stages/generate/techdocs.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts index 96449a0bd6..40cd7590b6 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts @@ -61,6 +61,9 @@ export class TechdocsGenerator implements GeneratorBase { this.logger.debug( `[TechDocs]: Failed to generate docs from ${directory} into ${resultDir}`, ); + throw new Error( + `Failed to generate docs from ${directory} into ${resultDir} with error ${error.message}`, + ); } return { resultDir }; From e9c937dd9f7c2ac4957ad0c31822b02d35f8a257 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 21 Aug 2020 15:46:10 +0200 Subject: [PATCH 70/72] Add docs template to default app templates (#2072) --- packages/create-app/templates/default-app/app-config.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index 49c3dc3691..0c3ec3ed80 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -54,3 +54,5 @@ catalog: target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml - type: github target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml From 0afdba6ac175205d1040348bd0a4a5d930471483 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 15:47:45 +0200 Subject: [PATCH 71/72] chore(deps): bump @rjsf/core from 2.2.2 to 2.3.0 (#2062) Bumps [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) from 2.2.2 to 2.3.0. - [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases) - [Commits](https://github.com/rjsf-team/react-jsonschema-form/compare/v2.2.2...v2.3.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 06324a67a3..5a42953413 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3279,9 +3279,9 @@ react-lifecycles-compat "^3.0.4" "@rjsf/core@^2.1.0": - version "2.2.2" - resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.2.2.tgz#1ebb6fe47448998f3b54e2dea8d58de8a46014dc" - integrity sha512-4d6DHIiTJEkUq5vyl4LIxLGIYYKKnHcprf94oVchUtGQvRFjNUDFxeFQoyr90oaxcBMs2WDDcCgjcFaKVyfErg== + version "2.3.0" + resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.3.0.tgz#334c73d2262ef1a8cda477e238067af7336c5599" + integrity sha512-OZKYHt9tjKhzOH4CvsPiCwepuIacqI++cNmnL2fsxh1IF+uEWGlo3NLDWhhSaBbOv9jps6a5YQcLbLtjNuSwug== dependencies: "@babel/runtime-corejs2" "^7.8.7" "@types/json-schema" "^7.0.4" @@ -5845,17 +5845,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: - version "6.12.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.1: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: version "6.12.3" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== From 3e10e5e3d8665edd3529615b1e4af4949dcb1f8f Mon Sep 17 00:00:00 2001 From: Nikita Dudnik Date: Fri, 21 Aug 2020 15:48:08 +0200 Subject: [PATCH 72/72] fix(microsite): animation for techdocs (#2070) --- microsite/pages/en/index.js | 18 ++++++++++++++---- microsite/static/img/techdocs2.gif | Bin 0 -> 89705 bytes 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 microsite/static/img/techdocs2.gif diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index d140a2036b..986db4b732 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -353,10 +353,20 @@ class Index extends React.Component { + + + + } /> diff --git a/microsite/static/img/techdocs2.gif b/microsite/static/img/techdocs2.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba937581b3f71e6516d401b25f4260223a570a17 GIT binary patch literal 89705 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 m5vSPW?qKP{i8$?5eY^t&TNc

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