From ff176942c83b57bcac879214646175737794785a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 28 Feb 2024 10:57:31 +0100 Subject: [PATCH 01/62] docs/frontend-system: starting point for app config docs Signed-off-by: Patrik Oldsberg --- .../02-configuring-extensions.md | 90 ++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/docs/frontend-system/building-apps/02-configuring-extensions.md b/docs/frontend-system/building-apps/02-configuring-extensions.md index 2fd4ce69fc..57a2110da6 100644 --- a/docs/frontend-system/building-apps/02-configuring-extensions.md +++ b/docs/frontend-system/building-apps/02-configuring-extensions.md @@ -6,4 +6,92 @@ sidebar_label: Configuring Extensions description: Documentation for how to configure extensions in a Backstage app --- -TODO +All extensions in a Backstage app can be configured through static configuration. This configuration is all done under a the `app.extensions` configuration key. For more general information on how to write configuration for Backstage, see the section on [writing configuration](../../conf/writing.md). + +## Extension Configuration Schema + +This section focuses on the format of the `app.extensions` configuration and the various shorthands that are available. + +The most complete and verbose format for configuring an individual extensions is as follows: + +```yaml +app: + extensions: + - : + attachTo: + id: + input: + disabled: + config: +``` + +All of the top-level fields are optional: `attachTo`, `disabled`, and `config`. Every extension implementation must provide defaults for all of these fields that will be used if they are not provided in the configuration. + +Note that `app.extensions` is always an array rather than an object. For example, the following is invalid: + +```yaml title="INVALID" +app: + extensions: + : # Invalid, this should be an array item, `app.extensions` is now an object + config: ... +``` + +In addition to this schema, there are a number of shorthands available: + +Rather than a full object, you can specify just the ID of the extension as a string. This is equivalent to setting `disabled` to `false`: + +```yaml +app: + extensions: + - ‘’ +``` + +You can enable/disable individual extension by ID, in this case the value is a boolean: + +```yaml +extensions: + - : +``` + +You can override the implementation of an extension by ID, in this case the value is a string: + +```yaml +extensions: + - : ‘’ +``` + +You can **create a new extension instance with a generated ID** by including an input name in the key: + +```yaml +extensions: + - /: + extension: + config: +``` + +This syntax is only for use in the app configuration itself, every extension provided by default from a plugin must have an explicit ID. For example, the following two configurations are equivalent, except that the former does not have an explicit instance ID: + +```yaml +extensions: + # Generated ID + - core.router/routes: + extension: '@backstage/plugin-tech-radar#TechRadarPage' + # Explicit ID + - tech-radar.page: + at: core.router/routes + extension: '@backstage/plugin-tech-radar#TechRadarPage' +``` + +Lastly, if you do not need to provide additional configuration, you can combine the key input format with the implementation value format as a shorthand for creating a new extension instance with a generated ID and no configuration: + +```yaml +extensions: + - /: ‘’ +``` + +For example: + +```yaml +extensions: + - core.router/routes: '@backstage/plugin-tech-radar#TechRadarPage' +``` From faf3fdf3ada5f922976baa0bcc82be7d2f69b00e Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Wed, 28 Feb 2024 15:54:41 +0100 Subject: [PATCH 02/62] docs: add more examples to the frontend app migration guide Signed-off-by: Camila Belo --- .../building-apps/08-migrating.md | 116 +++++++++++++++++- 1 file changed, 113 insertions(+), 3 deletions(-) diff --git a/docs/frontend-system/building-apps/08-migrating.md b/docs/frontend-system/building-apps/08-migrating.md index 98d8b3bab8..8bcc1f973f 100644 --- a/docs/frontend-system/building-apps/08-migrating.md +++ b/docs/frontend-system/building-apps/08-migrating.md @@ -117,7 +117,7 @@ You can then also add any additional extensions that you may need to create as p [Utility API](../utility-apis/01-index.md) factories are now installed as extensions instead. Pass the existing factory to `createApiExtension` and install it in the app. For more information, see the section on [configuring Utility APIs](../utility-apis/04-configuring.md). -For example, the following API configuration: +For example, the following apis configuration: ```ts const app = createApp({ @@ -151,15 +151,75 @@ Icons are currently installed through the usual options to `createApp`, but will Plugins are now passed through the `features` options instead. +For example, the following plugins configuration: + +```tsx +import { homePlugin } from '@backstage/plugin-home'; + +createApp({ + // ... + plugins: [homePlugin], + // ... +}); +``` + +Can be converted to the following features configuration: + +```tsx +// plugins are now default exported via alpha subpath +import homePlugin from '@backstage/plugin-home/alpha'; + +createApp({ + // ... + features: [homePlugin], + // ... +}); +``` + +Plugins don't even have to be imported manually after installing their package if [features discovery](../architecture/02-app.md#feature-discovery) is enabled. + +```yaml title="in app-config.yaml" +app: + # Enabling plugin and override features discovery + experimental: 'all' +``` + ### `featureFlags` Declaring features flags in the app is no longer supported, move these declarations to the appropriate plugins instead. +For example, the following app feature flags configuration: + +```tsx +createApp({ + // ... + featureFlags: [ + { + pluginId: '', + name: 'tech-radar', + description: 'Enables the tech radar plugin', + }, + ], + // ... +}); +``` + +Can be converted to the following plugin configuration: + +```tsx +createPlugin({ + id: 'tech-radar', + // ... + featureFlags: [{ name: 'tech-radar' }], + // ... +}); +``` + ### `components` Many app components are now installed as extensions instead using `createComponentExtension`. See the section on [configuring app components](./01-index.md#configure-your-app) for more information. -The `Router` component is now a built-in extension that you can override using `createRouterExtension`. +The `Router` component is now a built-in extension that you can [override](../architecture/05-extension-overrides.md) using `createRouterExtension`. The Sign-in page is now installed as an extension using the `createSignInPageExtension` instead. @@ -277,6 +337,35 @@ const app = createApp({ Translations are now installed as extensions, using `createTranslationExtension`. +For example, the following translations configuration: + +```tsx +import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha'; +createApp({ + // ... + __experimentalTranslations: { + resources: [ + createTranslationMessages({ + ref: catalogTranslationRef, + catalog_page_create_button_title: 'Create Software', + }), + ], + }, + // ... +}); +``` + +Can be converted to the following extension: + +```tsx +createTranslationExtension({ + resource: createTranslationMessages({ + ref: catalogTranslationRef, + catalog_page_create_button_title: 'Create Software', + }), +}); +``` + ## Gradual Migration After updating all `createApp` options as well as using `convertLegacyApp` to use your existing app structure, you should be able to start up the app and see that it still works. If that is not the case, make sure you read any error messages that you may see in the app as they can provide hints on what you need to fix. If you are still stuck, you can check if anyone else ran into the same issue in our [GitHub issues](https://github.com/backstage/backstage/issues), or ask for help in our [community Discord](https://discord.gg/backstage-687207715902193673). @@ -368,7 +457,7 @@ The entity pages are typically defined in `packages/app/src/components/catalog` New apps feature a built-in sidebar extension (`app/nav`) that will render all nav item extensions provided by plugins. This is a placeholder implementation and not intended as a long-term solution. In the future we will aim to provide a more flexible sidebar extension that allows for more customization out of the box. -Because the built-in sidebar is quite limited you may want to override the sidebar with your own custom implementation. To do so, use `createExtension` directly and refer to the [original sidebar implementation](https://github.com/backstage/backstage/blob/master/packages/frontend-app-api/src/extensions/AppNav.tsx). The following is an example of how to take your existing sidebar from the `Root` component that you typically find in `packages/app/src/components/Root.tsx`, and use it in an extension override: +Because the built-in sidebar is quite limited you may want to override the sidebar with your own custom implementation. To do so, use `createExtension` directly and refer to the [original sidebar implementation](https://github.com/backstage/backstage/blob/master/packages/frontend-app-api/src/extensions/AppNav.tsx). The following is an example of how to take your existing sidebar from the `Root` component that you typically find in `packages/app/src/components/Root.tsx`, and use it in an [extension override](../architecture/05-extension-overrides.md): ```tsx const nav = createExtension({ @@ -435,3 +524,24 @@ export default app.createRoot( ``` Any app root wrapper needs to be migrated to be an extension, using `createAppRootWrapperExtension`. Note that if you have multiple wrappers they must be completely independent of each other, i.e. the order in which they the appear in the React tree should not matter. If that is not the case then you should group them into a single wrapper. + +Here is an example converting the `CustomAppBarrier` into extension: + +```tsx +createApp({ + // ... + features: [ + createExtensionOverrides({ + extensions: [ + createAppRootWrapperExtension({ + name: 'CustomAppBarrier', + // Whenever your component uses legacy core packages, wrap it with "compatWrapper" + // e.g. props => compatWrapper() + Component: CustomAppBarrier, + }), + ], + }), + ], + // ... +}); +``` From e2e39faa710b09ed0fa6cfebd32987d1e1b39129 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 1 Mar 2024 11:37:05 +0100 Subject: [PATCH 03/62] docs/frontend-system: removed outdated content from app config section Signed-off-by: Patrik Oldsberg --- .../02-configuring-extensions.md | 48 ++----------------- 1 file changed, 3 insertions(+), 45 deletions(-) diff --git a/docs/frontend-system/building-apps/02-configuring-extensions.md b/docs/frontend-system/building-apps/02-configuring-extensions.md index 57a2110da6..5f090e23cd 100644 --- a/docs/frontend-system/building-apps/02-configuring-extensions.md +++ b/docs/frontend-system/building-apps/02-configuring-extensions.md @@ -49,49 +49,7 @@ app: You can enable/disable individual extension by ID, in this case the value is a boolean: ```yaml -extensions: - - : -``` - -You can override the implementation of an extension by ID, in this case the value is a string: - -```yaml -extensions: - - : ‘’ -``` - -You can **create a new extension instance with a generated ID** by including an input name in the key: - -```yaml -extensions: - - /: - extension: - config: -``` - -This syntax is only for use in the app configuration itself, every extension provided by default from a plugin must have an explicit ID. For example, the following two configurations are equivalent, except that the former does not have an explicit instance ID: - -```yaml -extensions: - # Generated ID - - core.router/routes: - extension: '@backstage/plugin-tech-radar#TechRadarPage' - # Explicit ID - - tech-radar.page: - at: core.router/routes - extension: '@backstage/plugin-tech-radar#TechRadarPage' -``` - -Lastly, if you do not need to provide additional configuration, you can combine the key input format with the implementation value format as a shorthand for creating a new extension instance with a generated ID and no configuration: - -```yaml -extensions: - - /: ‘’ -``` - -For example: - -```yaml -extensions: - - core.router/routes: '@backstage/plugin-tech-radar#TechRadarPage' +app: + extensions: + - : ``` From 0501243a575569e894c8e29949f91b6779fd8259 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan Date: Tue, 9 Apr 2024 21:49:45 +0530 Subject: [PATCH 04/62] Enhance Accessibility: Add ARIA Attributes to SearchModal Component Signed-off-by: JeevaRamanathan --- .changeset/thirty-mangos-travel.md | 5 +++++ plugins/search/src/components/SearchModal/SearchModal.tsx | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/thirty-mangos-travel.md diff --git a/.changeset/thirty-mangos-travel.md b/.changeset/thirty-mangos-travel.md new file mode 100644 index 0000000000..2281cc06b6 --- /dev/null +++ b/.changeset/thirty-mangos-travel.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search': patch +--- + +Added `aria-label` attribute to DialogTitle element and set `aria-modal` attribute to `true` for improved accessibility in the search modal. diff --git a/plugins/search/src/components/SearchModal/SearchModal.tsx b/plugins/search/src/components/SearchModal/SearchModal.tsx index 814779fb45..07eec4438e 100644 --- a/plugins/search/src/components/SearchModal/SearchModal.tsx +++ b/plugins/search/src/components/SearchModal/SearchModal.tsx @@ -190,7 +190,8 @@ export const SearchModal = (props: SearchModalProps) => { paperFullWidth: classes.paperFullWidth, }} onClose={toggleModal} - aria-labelledby="search-modal-title" + aria-label="Search Modal" + aria-modal="true" fullWidth maxWidth="lg" open={open} From 32da2b1954e360ffb083cbff3d6669878a2aaba9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Apr 2024 02:26:13 +0000 Subject: [PATCH 05/62] chore(deps): update dependency @types/tar to v6.1.13 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad5d48bd8f..4b093fd7f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19770,12 +19770,12 @@ __metadata: linkType: hard "@types/tar@npm:^6.1.1": - version: 6.1.12 - resolution: "@types/tar@npm:6.1.12" + version: 6.1.13 + resolution: "@types/tar@npm:6.1.13" dependencies: "@types/node": "*" minipass: ^4.0.0 - checksum: b1cbae1894cc943e3a86f88613853986f97f552c6bec34ee990a47fe5905871d1552397ff440108233d75d05653be2fbc356e62beb0b93a45b927fb88060b438 + checksum: bb3910936a6b37f093e38b73a52b0544fd73079685f5ea72e5c049fddc3770e58d80cf6d714425853f0746290221852c1a7ca89ffdb9614f3b2a858a3bf5436a languageName: node linkType: hard From a2ee4df20a6884d00328556948c81448d1487dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Fri, 22 Mar 2024 08:46:49 +0100 Subject: [PATCH 06/62] feat: Allow GaugeCard to handle multi-line titles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By adding a fullHeightFixedContent variant. Also, add support for a small version. Signed-off-by: Gustaf Räntilä --- .changeset/selfish-walls-visit.md | 5 ++ packages/core-components/api-report.md | 7 +- .../src/components/ProgressBars/Gauge.tsx | 14 +++- .../ProgressBars/GaugeCard.stories.tsx | 76 +++++++++++++++++++ .../src/components/ProgressBars/GaugeCard.tsx | 17 ++++- .../src/layout/InfoCard/InfoCard.tsx | 25 +++++- 6 files changed, 137 insertions(+), 7 deletions(-) create mode 100644 .changeset/selfish-walls-visit.md diff --git a/.changeset/selfish-walls-visit.md b/.changeset/selfish-walls-visit.md new file mode 100644 index 0000000000..8748b3717e --- /dev/null +++ b/.changeset/selfish-walls-visit.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Add a fullHeightFixedContent variant of the GaugeCard, and a small size version. Fixed content will vertically align the gauge in the cards, even when the card titles span across multiple lines. diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 7fd706db43..1e5c1b892f 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -448,6 +448,7 @@ export type GaugeProps = { inverse?: boolean; unit?: string; max?: number; + size?: 'normal' | 'small'; description?: ReactNode; getColor?: GaugePropsGetColor; }; @@ -609,7 +610,11 @@ export type InfoCardClassKey = | 'headerContent'; // @public (undocumented) -export type InfoCardVariants = 'flex' | 'fullHeight' | 'gridItem'; +export type InfoCardVariants = + | 'flex' + | 'fullHeight' + | 'fullHeightFixedContent' + | 'gridItem'; // Warning: (ae-forgotten-export) The symbol "ItemCardProps" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "ItemCard" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/packages/core-components/src/components/ProgressBars/Gauge.tsx b/packages/core-components/src/components/ProgressBars/Gauge.tsx index 088e369e62..87d2bf4f58 100644 --- a/packages/core-components/src/components/ProgressBars/Gauge.tsx +++ b/packages/core-components/src/components/ProgressBars/Gauge.tsx @@ -19,6 +19,7 @@ import { makeStyles, useTheme } from '@material-ui/core/styles'; import { Circle } from 'rc-progress'; import React, { ReactNode, useEffect, useState } from 'react'; import Box from '@material-ui/core/Box'; +import classNames from 'classnames'; /** @public */ export type GaugeClassKey = @@ -43,6 +44,9 @@ const useStyles = makeStyles( fontWeight: theme.typography.fontWeightBold, color: theme.palette.textContrast, }, + overlaySmall: { + fontSize: theme.typography.pxToRem(25), + }, description: { fontSize: '100%', top: '50%', @@ -68,6 +72,7 @@ export type GaugeProps = { inverse?: boolean; unit?: string; max?: number; + size?: 'normal' | 'small'; description?: ReactNode; getColor?: GaugePropsGetColor; }; @@ -121,7 +126,7 @@ export const getProgressColor: GaugePropsGetColor = ({ export function Gauge(props: GaugeProps) { const [hoverRef, setHoverRef] = useState(null); - const { getColor = getProgressColor } = props; + const { getColor = getProgressColor, size = 'normal' } = props; const classes = useStyles(props); const { palette } = useTheme(); const { value, fractional, inverse, unit, max, description } = { @@ -165,7 +170,12 @@ export function Gauge(props: GaugeProps) { {description && isHovering ? ( {description} ) : ( - + {isNaN(value) ? 'N/A' : `${asActual}${unit}`} )} diff --git a/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx b/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx index a0b6faea60..21d023999e 100644 --- a/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx +++ b/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx @@ -175,6 +175,82 @@ export const InfoMessage = () => ( ); +export const AlignedBottom = () => ( + + + + + + + + + + + + + + +); + +export const Small = () => ( + + + + + + + + + + + + + + +); + export const HoverMessage = () => ( diff --git a/packages/core-components/src/components/ProgressBars/GaugeCard.tsx b/packages/core-components/src/components/ProgressBars/GaugeCard.tsx index 3442395380..bbb870141b 100644 --- a/packages/core-components/src/components/ProgressBars/GaugeCard.tsx +++ b/packages/core-components/src/components/ProgressBars/GaugeCard.tsx @@ -27,6 +27,7 @@ type Props = { variant?: InfoCardVariants; /** Progress in % specified as decimal, e.g. "0.23" */ progress: number; + size?: 'normal' | 'small'; description?: ReactNode; icon?: ReactNode; inverse?: boolean; @@ -43,6 +44,10 @@ const useStyles = makeStyles( height: '100%', width: 250, }, + rootSmall: { + height: '100%', + width: 160, + }, }, { name: 'BackstageGaugeCard' }, ); @@ -64,6 +69,7 @@ export function GaugeCard(props: Props) { description, icon, variant, + size = 'normal', getColor, } = props; @@ -75,15 +81,22 @@ export function GaugeCard(props: Props) { }; return ( - + - + ); diff --git a/packages/core-components/src/layout/InfoCard/InfoCard.tsx b/packages/core-components/src/layout/InfoCard/InfoCard.tsx index c80e71b609..9fd72e50b6 100644 --- a/packages/core-components/src/layout/InfoCard/InfoCard.tsx +++ b/packages/core-components/src/layout/InfoCard/InfoCard.tsx @@ -46,6 +46,10 @@ const useStyles = makeStyles( header: { padding: theme.spacing(2, 2, 2, 2.5), }, + headerFixedContent: { + flexGrow: 1, + alignItems: 'flex-start', + }, headerTitle: { fontWeight: theme.typography.fontWeightBold, }, @@ -87,6 +91,11 @@ const VARIANT_STYLES = { flexDirection: 'column', height: '100%', }, + fullHeightFixedContent: { + display: 'flex', + flexDirection: 'column', + height: '100%', + }, gridItem: { display: 'flex', flexDirection: 'column', @@ -102,6 +111,9 @@ const VARIANT_STYLES = { fullHeight: { flex: 1, }, + fullHeightFixedContent: { + flex: '0 1 0%', + }, gridItem: { flex: 1, }, @@ -109,7 +121,11 @@ const VARIANT_STYLES = { }; /** @public */ -export type InfoCardVariants = 'flex' | 'fullHeight' | 'gridItem'; +export type InfoCardVariants = + | 'flex' + | 'fullHeight' + | 'fullHeightFixedContent' + | 'gridItem'; /** * InfoCard is used to display a paper-styled block on the screen, similar to a panel. @@ -228,7 +244,12 @@ export function InfoCard(props: Props): JSX.Element { {title && ( Date: Fri, 22 Mar 2024 16:09:05 +0100 Subject: [PATCH 07/62] Changed to not having a fixed/full sized header, but allow the content to grow, with an option to align the content to the bottom MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .changeset/selfish-walls-visit.md | 3 +- packages/core-components/api-report.md | 6 +--- .../ProgressBars/GaugeCard.stories.tsx | 24 +++++++++----- .../src/components/ProgressBars/GaugeCard.tsx | 3 ++ .../src/layout/InfoCard/InfoCard.tsx | 32 ++++++------------- 5 files changed, 31 insertions(+), 37 deletions(-) diff --git a/.changeset/selfish-walls-visit.md b/.changeset/selfish-walls-visit.md index 8748b3717e..64c87a64f5 100644 --- a/.changeset/selfish-walls-visit.md +++ b/.changeset/selfish-walls-visit.md @@ -2,4 +2,5 @@ '@backstage/core-components': patch --- -Add a fullHeightFixedContent variant of the GaugeCard, and a small size version. Fixed content will vertically align the gauge in the cards, even when the card titles span across multiple lines. +Add `alignGauge` prop to the `GaugeCard`, and a small size version. When `alignGauge` is `'bottom'` the gauge will vertically align the gauge in the cards, even when the card titles span across multiple lines. +Add `alignContent` prop to the `InfoCard`, defaulting to `'normal'` with the option of `'bottom'` which vertically aligns the content to the bottom of the card. diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 1e5c1b892f..293695db0c 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -610,11 +610,7 @@ export type InfoCardClassKey = | 'headerContent'; // @public (undocumented) -export type InfoCardVariants = - | 'flex' - | 'fullHeight' - | 'fullHeightFixedContent' - | 'gridItem'; +export type InfoCardVariants = 'flex' | 'fullHeight' | 'gridItem'; // Warning: (ae-forgotten-export) The symbol "ItemCardProps" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "ItemCard" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx b/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx index 21d023999e..12cdef52cb 100644 --- a/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx +++ b/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx @@ -179,7 +179,8 @@ export const AlignedBottom = () => ( ( ( ( ( ( ( ( From 0b9d63a02519628a5a3546376451b6dc3ff33966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Sat, 6 Apr 2024 08:55:14 +0200 Subject: [PATCH 08/62] fix: Minor refactoring of styling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .../core-components/src/components/ProgressBars/Gauge.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/core-components/src/components/ProgressBars/Gauge.tsx b/packages/core-components/src/components/ProgressBars/Gauge.tsx index 87d2bf4f58..e72172fd59 100644 --- a/packages/core-components/src/components/ProgressBars/Gauge.tsx +++ b/packages/core-components/src/components/ProgressBars/Gauge.tsx @@ -171,10 +171,9 @@ export function Gauge(props: GaugeProps) { {description} ) : ( {isNaN(value) ? 'N/A' : `${asActual}${unit}`} From a7648561962ac8d80c1145aa3b4e488e3063d427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Sat, 6 Apr 2024 09:28:13 +0200 Subject: [PATCH 09/62] feat: Added subheaderTypographyProps prop to InfoCard, allowing it to be used from GaugeCard. Also made GaugeCard 'small' variant to have smaller text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .../components/ProgressBars/GaugeCard.stories.tsx | 1 + .../src/components/ProgressBars/GaugeCard.tsx | 13 ++++++------- .../src/layout/InfoCard/InfoCard.tsx | 3 +++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx b/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx index 12cdef52cb..f7e2eb69c6 100644 --- a/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx +++ b/packages/core-components/src/components/ProgressBars/GaugeCard.stories.tsx @@ -234,6 +234,7 @@ export const Small = () => ( alignGauge="bottom" size="small" title="Progress" + subheader="With a subheader" progress={0.57} /> diff --git a/packages/core-components/src/components/ProgressBars/GaugeCard.tsx b/packages/core-components/src/components/ProgressBars/GaugeCard.tsx index 4e73487983..9f6de8eafe 100644 --- a/packages/core-components/src/components/ProgressBars/GaugeCard.tsx +++ b/packages/core-components/src/components/ProgressBars/GaugeCard.tsx @@ -91,13 +91,12 @@ export function GaugeCard(props: Props) { variant={variant} alignContent={alignGauge} icon={icon} - titleTypographyProps={ - size === 'small' - ? { - variant: 'h6', - } - : undefined - } + titleTypographyProps={{ + ...(size === 'small' ? { variant: 'subtitle2' } : undefined), + }} + subheaderTypographyProps={{ + ...(size === 'small' ? { variant: 'body2' } : undefined), + }} > diff --git a/packages/core-components/src/layout/InfoCard/InfoCard.tsx b/packages/core-components/src/layout/InfoCard/InfoCard.tsx index 1f41a315b8..e80c0d3384 100644 --- a/packages/core-components/src/layout/InfoCard/InfoCard.tsx +++ b/packages/core-components/src/layout/InfoCard/InfoCard.tsx @@ -155,6 +155,7 @@ export type Props = { className?: string; noPadding?: boolean; titleTypographyProps?: object; + subheaderTypographyProps?: object; }; /** @@ -185,6 +186,7 @@ export function InfoCard(props: Props): JSX.Element { className, noPadding, titleTypographyProps, + subheaderTypographyProps, } = props; const classes = useStyles(); /** @@ -246,6 +248,7 @@ export function InfoCard(props: Props): JSX.Element { action={action} style={{ ...headerStyle }} titleTypographyProps={titleTypographyProps} + subheaderTypographyProps={subheaderTypographyProps} {...headerProps} /> )} From f72f3a076dd911a2f836b5a8b534e6e0fbe0c885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Sat, 6 Apr 2024 09:32:23 +0200 Subject: [PATCH 10/62] fix: Made the subhead in InfoCard not duplicate top padding props twice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- packages/core-components/src/layout/InfoCard/InfoCard.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/core-components/src/layout/InfoCard/InfoCard.tsx b/packages/core-components/src/layout/InfoCard/InfoCard.tsx index e80c0d3384..a08a816c2e 100644 --- a/packages/core-components/src/layout/InfoCard/InfoCard.tsx +++ b/packages/core-components/src/layout/InfoCard/InfoCard.tsx @@ -217,10 +217,7 @@ export function InfoCard(props: Props): JSX.Element { } return ( -
+
{subheader &&
{subheader}
} {icon}
From 18f736ffc5efbd2e2dcdf08c12fa8c14ca883791 Mon Sep 17 00:00:00 2001 From: JeevaRamanathan Date: Sat, 27 Apr 2024 22:22:06 +0530 Subject: [PATCH 11/62] Add examples for scaffolder action & improve related tests Signed-off-by: JeevaRamanathan --- .changeset/tame-jars-double.md | 5 + ...tlabProjectVariableAction.examples.test.ts | 236 ++++++++++++++++++ ...ateGitlabProjectVariableAction.examples.ts | 160 ++++++++++++ .../createGitlabProjectVariableAction.ts | 3 +- 4 files changed, 403 insertions(+), 1 deletion(-) create mode 100644 .changeset/tame-jars-double.md create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.test.ts create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.ts diff --git a/.changeset/tame-jars-double.md b/.changeset/tame-jars-double.md new file mode 100644 index 0000000000..8af92a2d72 --- /dev/null +++ b/.changeset/tame-jars-double.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitlab': minor +--- + +Add examples for `gitlab:projectVariable:create` scaffolder action & improve related tests diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.test.ts new file mode 100644 index 0000000000..d1c37ccd9d --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.test.ts @@ -0,0 +1,236 @@ +/* + * Copyright 2021 The Backstage Authors + * + * 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 { createGitlabProjectVariableAction } from './createGitlabProjectVariableAction'; +import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-utils'; +import { ScmIntegrations } from '@backstage/integration'; +import { ConfigReader } from '@backstage/config'; +import yaml from 'yaml'; +import { examples } from './createGitlabProjectVariableAction.examples'; + +const mockGitlabClient = { + ProjectVariables: { + create: jest.fn(), + }, +}; +jest.mock('@gitbeaker/node', () => ({ + Gitlab: class { + constructor() { + return mockGitlabClient; + } + }, +})); + +describe('gitlab:projectVariableAction: create examples', () => { + const config = new ConfigReader({ + integrations: { + gitlab: [ + { + host: 'gitlab.com', + token: 'tokenlols', + apiBaseUrl: 'https://api.gitlab.com', + }, + { + host: 'hosted.gitlab.com', + apiBaseUrl: 'https://api.hosted.gitlab.com', + }, + ], + }, + }); + + const integrations = ScmIntegrations.fromConfig(config); + const action = createGitlabProjectVariableAction({ integrations }); + const mockContext = createMockActionContext({ + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '123', + key: 'MY_VARIABLE', + value: 'my_value', + variableType: 'env_var', + }, + }); + + beforeEach(() => { + jest.resetAllMocks(); + }); + + it(`Should ${examples[0].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[0].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '123', + { + key: 'MY_VARIABLE', + value: 'my_value', + variable_type: 'env_var', + environment_scope: '*', + masked: false, + protected: false, + raw: false, + }, + ); + }); + it(`Should ${examples[1].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[1].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '123', + { + key: 'MY_VARIABLE', + value: 'my-file-content', + protected: false, + masked: false, + raw: false, + environment_scope: '*', + variable_type: 'file', + }, + ); + }); + + it(`Should ${examples[2].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[2].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '456', + { + key: 'MY_VARIABLE', + value: 'my_value', + masked: false, + raw: false, + environment_scope: '*', + variable_type: 'env_var', + protected: true, + }, + ); + }); + + it(`Should ${examples[3].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[3].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '789', + { + key: 'DB_PASSWORD', + value: 'password123', + protected: false, + raw: false, + environment_scope: '*', + variable_type: 'env_var', + masked: true, + }, + ); + }); + + it(`Should ${examples[4].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[4].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '123', + { + key: 'MY_VARIABLE', + value: 'my_value', + protected: false, + environment_scope: '*', + variable_type: 'env_var', + masked: false, + raw: true, + }, + ); + }); + + it(`Should ${examples[5].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[5].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '123', + { + key: 'MY_VARIABLE', + value: 'my_value', + protected: false, + variable_type: 'env_var', + masked: false, + raw: false, + environment_scope: 'production', + }, + ); + }); + + it(`Should ${examples[6].description}`, async () => { + mockGitlabClient.ProjectVariables.create.mockResolvedValue({ + token: 'TOKEN', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[6].example).steps[0].input, + }); + + expect(mockGitlabClient.ProjectVariables.create).toHaveBeenCalledWith( + '123', + { + key: 'MY_VARIABLE', + value: 'my_value', + protected: false, + variable_type: 'env_var', + masked: false, + raw: false, + environment_scope: '*', + }, + ); + }); +}); diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.ts new file mode 100644 index 0000000000..81d526f7c8 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.examples.ts @@ -0,0 +1,160 @@ +/* + * Copyright 2023 The Backstage Authors + * + * 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: 'Creating a GitLab project variable of type env_var', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:createGitlabProjectVariableAction', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '123', + key: 'MY_VARIABLE', + value: 'my_value', + variableType: 'env_var', + }, + }, + ], + }), + }, + { + description: 'Creating a GitLab project variable of type file', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:createGitlabProjectVariableAction', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '123', + key: 'MY_VARIABLE', + value: 'my-file-content', + variableType: 'file', + }, + }, + ], + }), + }, + { + description: 'Create a GitLab project variable that is protected.', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:createGitlabProjectVariableAction', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '456', + key: 'MY_VARIABLE', + value: 'my_value', + variableType: 'env_var', + variableProtected: true, + }, + }, + ], + }), + }, + { + description: 'Create a GitLab project variable with masked flag as true', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:createGitlabProjectVariableAction', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '789', + key: 'DB_PASSWORD', + value: 'password123', + variableType: 'env_var', + masked: true, + }, + }, + ], + }), + }, + { + description: 'Create a GitLab project variable that is expandable.', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:projectVariable:create', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '123', + key: 'MY_VARIABLE', + value: 'my_value', + variableType: 'env_var', + raw: true, + }, + }, + ], + }), + }, + { + description: + 'Create a GitLab project variable with a specific environment scope.', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:projectVariable:create', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '123', + key: 'MY_VARIABLE', + value: 'my_value', + variableType: 'env_var', + environmentScope: 'production', + }, + }, + ], + }), + }, + { + description: + 'Create a GitLab project variable with a wildcard environment scope.', + example: yaml.stringify({ + steps: [ + { + id: 'createVariable', + action: 'gitlab:projectVariable:create', + name: 'Create GitLab Project Variable', + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: '123', + key: 'MY_VARIABLE', + value: 'my_value', + variableType: 'env_var', + environmentScope: '*', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.ts index a154c16662..e09a074701 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabProjectVariableAction.ts @@ -20,6 +20,7 @@ import { Gitlab } from '@gitbeaker/node'; import { getToken } from '../util'; import commonGitlabConfig from '../commonGitlabConfig'; import { z } from 'zod'; +import { examples } from './createGitlabProjectVariableAction.examples'; /** * Creates a `gitlab:projectVariable:create` Scaffolder action. @@ -33,6 +34,7 @@ export const createGitlabProjectVariableAction = (options: { const { integrations } = options; return createTemplateAction({ id: 'gitlab:projectVariable:create', + examples, schema: { input: commonGitlabConfig.merge( z.object({ @@ -85,7 +87,6 @@ export const createGitlabProjectVariableAction = (options: { host: integrationConfig.config.baseUrl, token: token, }); - await api.ProjectVariables.create(projectId, { key: key, value: value, From 2cc750d36766a43c277760af681a28e373867243 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Fri, 19 Apr 2024 00:55:19 -0600 Subject: [PATCH 12/62] feat: integration support for harness Signed-off-by: Calvin Lee --- .changeset/empty-beers-relax.md | 5 + .changeset/tasty-rats-explain.md | 5 + .../config/vocabularies/Backstage/accept.txt | 2 + docs/integrations/harness/locations.md | 33 +++ microsite/sidebars.json | 5 + packages/backend-common/api-report.md | 26 +++ .../src/reading/HarnessCodeUrlReader.test.ts | 204 ++++++++++++++++++ .../src/reading/HarnessUrlReader.ts | 124 +++++++++++ .../backend-common/src/reading/UrlReaders.ts | 3 +- packages/backend-common/src/reading/index.ts | 1 + packages/integration/api-report.md | 55 ++++- packages/integration/config.d.ts | 24 +++ .../integration/src/ScmIntegrations.test.ts | 9 + packages/integration/src/ScmIntegrations.ts | 7 + .../src/harness/HarnessIntegration.test.ts | 128 +++++++++++ .../src/harness/HarnessIntegration.ts | 58 +++++ .../integration/src/harness/config.test.ts | 108 ++++++++++ packages/integration/src/harness/config.ts | 78 +++++++ packages/integration/src/harness/core.test.ts | 95 ++++++++ packages/integration/src/harness/core.ts | 135 ++++++++++++ packages/integration/src/harness/index.ts | 19 ++ packages/integration/src/index.ts | 1 + packages/integration/src/registry.ts | 2 + 23 files changed, 1125 insertions(+), 2 deletions(-) create mode 100644 .changeset/empty-beers-relax.md create mode 100644 .changeset/tasty-rats-explain.md create mode 100644 docs/integrations/harness/locations.md create mode 100644 packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts create mode 100644 packages/backend-common/src/reading/HarnessUrlReader.ts create mode 100644 packages/integration/src/harness/HarnessIntegration.test.ts create mode 100644 packages/integration/src/harness/HarnessIntegration.ts create mode 100644 packages/integration/src/harness/config.test.ts create mode 100644 packages/integration/src/harness/config.ts create mode 100644 packages/integration/src/harness/core.test.ts create mode 100644 packages/integration/src/harness/core.ts create mode 100644 packages/integration/src/harness/index.ts diff --git a/.changeset/empty-beers-relax.md b/.changeset/empty-beers-relax.md new file mode 100644 index 0000000000..526f88c1c7 --- /dev/null +++ b/.changeset/empty-beers-relax.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +This patch adds HarnessURLReader to the available classes. It currently only reads single files via Harness codes public repo api. diff --git a/.changeset/tasty-rats-explain.md b/.changeset/tasty-rats-explain.md new file mode 100644 index 0000000000..aee8057915 --- /dev/null +++ b/.changeset/tasty-rats-explain.md @@ -0,0 +1,5 @@ +--- +'@backstage/integration': minor +--- + +This patch brings Harness Code as a valid integration via the ScmIntgration interface. It adds harness code to the relevant static properties ( get integration by name, get integration by type) for plugs to be able to reference the same harness code server diff --git a/.github/vale/config/vocabularies/Backstage/accept.txt b/.github/vale/config/vocabularies/Backstage/accept.txt index 026e5a9b18..2e42ff7998 100644 --- a/.github/vale/config/vocabularies/Backstage/accept.txt +++ b/.github/vale/config/vocabularies/Backstage/accept.txt @@ -152,6 +152,8 @@ graphviz Hackathons haproxy hardcoded +Harness +harness Helidon Henneke Heroku diff --git a/docs/integrations/harness/locations.md b/docs/integrations/harness/locations.md new file mode 100644 index 0000000000..8911d7918c --- /dev/null +++ b/docs/integrations/harness/locations.md @@ -0,0 +1,33 @@ +--- +id: locations +title: Harness Locations +sidebar_label: Locations +description: Integrating source code stored in Harness Code into the Backstage catalog +--- + +The Harness Code integration supports loading catalog entities from a hosted repository. Entities can be added to +[static catalog configuration](../../features/software-catalog/configuration.md), +registered with the +[catalog-import](https://github.com/backstage/backstage/tree/master/plugins/catalog-import) +plugin. + +## Configuration + +To use this integration, add configuration to your root `app-config.yaml`: + +```yaml +integrations: + harness: + - host: app.harness.io + token: ${HARNESS_CODE_BEARER_TOKEN} +``` + +Directly under the `harnessCode` key is a list of provider configurations, where you +can list the Gitea instances you want to be able to fetch +data from. Each entry is a structure with up to four elements: + +- `host`: The host of the Harness Code instance that you want to match on. +- `baseUrl` (optional): Needed if the Harness Code instance is not reachable at + the base of the `host` option (e.g. `https://app.harness.io`). This is the address that you would open in a browser. +- `username` (optional): The gitea username to use in API requests. +- `token` (optional): The password or api token to authenticate with. diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 32863c61db..8291549153 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -238,6 +238,11 @@ "label": "Gitea", "items": ["integrations/gitea/locations"] }, + { + "type": "subcategory", + "label": "Harness", + "ids": ["integrations/harness/locations"] + }, { "type": "category", "label": "Google GCS", diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index f9e0d76aab..37bfda9861 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -30,6 +30,7 @@ import { GiteaIntegration } from '@backstage/integration'; import { GithubCredentialsProvider } from '@backstage/integration'; import { GithubIntegration } from '@backstage/integration'; import { GitLabIntegration } from '@backstage/integration'; +import { HarnessIntegration } from '@backstage/integration'; import { HostDiscovery as HostDiscovery_2 } from '@backstage/backend-app-api'; import { HttpAuthService } from '@backstage/backend-plugin-api'; import { IdentityService } from '@backstage/backend-plugin-api'; @@ -530,6 +531,31 @@ export class GitlabUrlReader implements UrlReader { toString(): string; } +// @public +export class HarnessUrlReader implements UrlReader { + constructor(integration: HarnessIntegration); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree(): Promise; + // (undocumented) + readUrl(url: string, options?: ReadUrlOptions): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + +// @public +export type HarnessIntegrationConfig = { + host: string; + baseUrl?: string; + username?: string; + token?: string; +}; + // @public export const HostDiscovery: typeof HostDiscovery_2; diff --git a/packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts b/packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts new file mode 100644 index 0000000000..3e8b70a6aa --- /dev/null +++ b/packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts @@ -0,0 +1,204 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { ConfigReader } from '@backstage/config'; +import { HarnessIntegration, readHarnessConfig } from '@backstage/integration'; +import { JsonObject } from '@backstage/types'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { getVoidLogger } from '../logging'; +import { UrlReaderPredicateTuple } from './types'; +import { DefaultReadTreeResponseFactory } from './tree'; +import getRawBody from 'raw-body'; +import { HarnessUrlReader } from './HarnessUrlReader'; +import { NotFoundError } from '@backstage/errors'; + +const treeResponseFactory = DefaultReadTreeResponseFactory.create({ + config: new ConfigReader({}), +}); + +jest.mock('../scm', () => ({ + Git: { + fromAuth: () => ({ + clone: jest.fn(() => Promise.resolve({})), + }), + }, +})); + +const harnessProcessor = new HarnessUrlReader( + new HarnessIntegration( + readHarnessConfig( + new ConfigReader({ + host: 'app.harness.io', + }), + ), + ), +); + +const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { + return HarnessUrlReader.factory({ + config: new ConfigReader(config), + logger: getVoidLogger(), + treeResponseFactory, + }); +}; + +describe('HarnessUrlReader', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + + afterAll(() => { + jest.clearAllMocks(); + }); + + describe('reader factory', () => { + it('creates a reader.', () => { + const readers = createReader({ + integrations: { + harness: [{ host: 'app.harness.io' }], + }, + }); + expect(readers).toHaveLength(1); + }); + + it('should not create a default entry.', () => { + const readers = createReader({ + integrations: {}, + }); + expect(readers).toHaveLength(0); + }); + }); + + describe('predicates', () => { + it('returns true for the configured host', () => { + const readers = createReader({ + integrations: { + harness: [{ host: 'app.harness.io' }], + }, + }); + const predicate = readers[0].predicate; + + expect(predicate(new URL('https://app.harness.io/path'))).toBe(true); + }); + + it('returns false for a different host.', () => { + const readers = createReader({ + integrations: { + harness: [{ host: 'app.harness.io' }], + }, + }); + const predicate = readers[0].predicate; + + expect(predicate(new URL('https://github.com/path'))).toBe(false); + }); + }); + + describe('readUrl', () => { + const responseBuffer = Buffer.from('Apache License'); + const harnessApiResponse = (content: any) => { + return JSON.stringify({ + encoding: 'base64', + content: Buffer.from(content).toString('base64'), + }); + }; + + it.skip('should be able to read file contents as buffer', async () => { + worker.use( + rest.get( + 'https://app.harness.io/api/v1/repos/owner/project/contents/LICENSE', + (req, res, ctx) => { + // Test utils prefers matching URL directly but it is part of Gitea's API + if (req.url.searchParams.get('ref') === 'branch2') { + return res( + ctx.status(200), + ctx.body(harnessApiResponse(responseBuffer.toString())), + ); + } + + return res(ctx.status(500)); + }, + ), + ); + + const result = await harnessProcessor.readUrl( + 'https://app.harness.io/owner/project/src/branch/branch2/LICENSE', + ); + const buffer = await result.buffer(); + expect(buffer.toString()).toBe(responseBuffer.toString()); + }); + + it.skip('should be able to read file contents as stream', async () => { + worker.use( + rest.get( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/LICENSE.txt', + (req, res, ctx) => { + if (req.url.searchParams.get('ref') === 'refMain') { + return res( + ctx.status(200), + ctx.body(harnessApiResponse(responseBuffer.toString())), + ); + } + + return res(ctx.status(500)); + }, + ), + ); + + const result = await harnessProcessor.readUrl( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/LICENSE.TXT', + ); + const fromStream = await getRawBody(result.stream!()); + expect(fromStream.toString()).toBe(responseBuffer.toString()); + }); + + it.skip('should raise NotFoundError on 404.', async () => { + worker.use( + rest.get( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', + (_, res, ctx) => { + return res(ctx.status(404, 'File not found.')); + }, + ), + ); + + await expect( + harnessProcessor.readUrl( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', + ), + ).rejects.toThrow(NotFoundError); + }); + + it.skip('should throw an error on non 404 errors.', async () => { + worker.use( + rest.get( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', + (_, res, ctx) => { + return res(ctx.status(500, 'Error!!!')); + }, + ), + ); + + await expect( + harnessProcessor.readUrl( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', + ), + ).rejects.toThrow( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain, 500 Error!!!', + ); + }); + }); +}); diff --git a/packages/backend-common/src/reading/HarnessUrlReader.ts b/packages/backend-common/src/reading/HarnessUrlReader.ts new file mode 100644 index 0000000000..fd01e4f8a2 --- /dev/null +++ b/packages/backend-common/src/reading/HarnessUrlReader.ts @@ -0,0 +1,124 @@ +/* + * Copyright 2025 The Backstage Authors + * + * 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 { + getHarnessRequestOptions, + getHarnessFileContentsUrl, + HarnessIntegration, + ScmIntegrations, +} from '@backstage/integration'; +import { ReadUrlOptions, ReadUrlResponse } from './types'; +import { + ReaderFactory, + ReadTreeResponse, + SearchResponse, + UrlReader, +} from './types'; +import fetch, { Response } from 'node-fetch'; +import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; +import { + AuthenticationError, + NotFoundError, + NotModifiedError, +} from '@backstage/errors'; +import { Readable } from 'stream'; + +/** + * Implements a {@link UrlReader} for the Harness code v1 api. + * + * @public + */ +export class HarnessUrlReader implements UrlReader { + static factory: ReaderFactory = ({ config }) => { + return ScmIntegrations.fromConfig(config) + .harness.list() + .map(integration => { + const reader = new HarnessUrlReader(integration); + const predicate = (url: URL) => { + return url.host === integration.config.host; + }; + return { reader, predicate }; + }); + }; + + constructor(private readonly integration: HarnessIntegration) {} + + async read(url: string): Promise { + const response = await this.readUrl(url); + return response.buffer(); + } + + async readUrl( + url: string, + options?: ReadUrlOptions, + ): Promise { + let response: Response; + const blobUrl = getHarnessFileContentsUrl(this.integration.config, url); + + try { + response = await fetch(blobUrl, { + method: 'GET', + ...getHarnessRequestOptions(this.integration.config), + signal: options?.signal as any, + }); + } catch (e) { + throw new Error(`Unable to read ${blobUrl}, ${e}`); + } + + if (response.ok) { + // Harness Code returns an object with the file contents encoded, not the file itself + const jsonResponse = await response.json(); + if (jsonResponse?.content?.encoding === 'base64') { + return ReadUrlResponseFactory.fromReadable( + Readable.from(Buffer.from(jsonResponse?.content?.data, 'base64')), + { + etag: response.headers.get('ETag') ?? undefined, + }, + ); + } + + throw new Error(`Unknown encoding: ${jsonResponse?.content?.encoding}`); + } + + const message = `${url} x ${blobUrl}, ${response.status} ${response.statusText}`; + if (response.status === 404) { + throw new NotFoundError(message); + } + + if (response.status === 304) { + throw new NotModifiedError(); + } + + if (response.status === 403) { + throw new AuthenticationError(); + } + + throw new Error(message); + } + + readTree(): Promise { + throw new Error('HarnessUrlReader readTree not implemented.'); + } + search(): Promise { + throw new Error('HarnessUrlReader search not implemented.'); + } + + toString() { + const { host } = this.integration.config; + return `harness{host=${host},authed=${Boolean( + this.integration.config.token, + )}}`; + } +} diff --git a/packages/backend-common/src/reading/UrlReaders.ts b/packages/backend-common/src/reading/UrlReaders.ts index e987eb9186..7aaaf120b4 100644 --- a/packages/backend-common/src/reading/UrlReaders.ts +++ b/packages/backend-common/src/reading/UrlReaders.ts @@ -31,6 +31,7 @@ import { GoogleGcsUrlReader } from './GoogleGcsUrlReader'; import { AwsS3UrlReader } from './AwsS3UrlReader'; import { GiteaUrlReader } from './GiteaUrlReader'; import { AwsCodeCommitUrlReader } from './AwsCodeCommitUrlReader'; +import { HarnessUrlReader } from './HarnessUrlReader'; /** * Creation options for {@link @backstage/backend-plugin-api#UrlReaderService}. @@ -61,7 +62,6 @@ export class UrlReaders { const treeResponseFactory = DefaultReadTreeResponseFactory.create({ config, }); - for (const factory of factories ?? []) { const tuples = factory({ config, logger: logger, treeResponseFactory }); @@ -94,6 +94,7 @@ export class UrlReaders { GiteaUrlReader.factory, GitlabUrlReader.factory, GoogleGcsUrlReader.factory, + HarnessUrlReader.factory, AwsS3UrlReader.factory, AwsCodeCommitUrlReader.factory, FetchUrlReader.factory, diff --git a/packages/backend-common/src/reading/index.ts b/packages/backend-common/src/reading/index.ts index 21e82da9b5..a99bb6dda1 100644 --- a/packages/backend-common/src/reading/index.ts +++ b/packages/backend-common/src/reading/index.ts @@ -22,6 +22,7 @@ export { GerritUrlReader } from './GerritUrlReader'; export { GithubUrlReader } from './GithubUrlReader'; export { GitlabUrlReader } from './GitlabUrlReader'; export { GiteaUrlReader } from './GiteaUrlReader'; +export { HarnessUrlReader } from './HarnessUrlReader'; export { AwsS3UrlReader } from './AwsS3UrlReader'; export { FetchUrlReader } from './FetchUrlReader'; export { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; diff --git a/packages/integration/api-report.md b/packages/integration/api-report.md index 6b691dff80..a693c1314c 100644 --- a/packages/integration/api-report.md +++ b/packages/integration/api-report.md @@ -513,6 +513,19 @@ export function getGitLabRequestOptions(config: GitLabIntegrationConfig): { headers: Record; }; +// @public +export function getHarnessFileContentsUrl( + config: HarnessIntegrationConfig, + url: string, +): string; + +// @public +export function getHarnessRequestOptions( + config: HarnessIntegrationConfig, +): { + headers?: Record; +}; + // @public export class GiteaIntegration implements ScmIntegration { constructor(config: GiteaIntegrationConfig); @@ -539,7 +552,7 @@ export type GiteaIntegrationConfig = { host: string; baseUrl?: string; username?: string; - password?: string; + token?: string; }; // @public @@ -674,6 +687,35 @@ export type GoogleGcsIntegrationConfig = { privateKey?: string; }; +// @public +export class HarnessIntegration implements ScmIntegration { + constructor(config: HarnessIntegrationConfig); + // (undocumented) + readonly config: HarnessIntegrationConfig; + // (undocumented) + static factory: ScmIntegrationsFactory; + // (undocumented) + resolveEditUrl(url: string): string; + // (undocumented) + resolveUrl(options: { + url: string; + base: string; + lineNumber?: number | undefined; + }): string; + // (undocumented) + get title(): string; + // (undocumented) + get type(): string; +} + +// @public +export type HarnessIntegrationConfig = { + host: string; + baseUrl?: string; + username?: string; + token?: string; +}; + // @public export interface IntegrationsByType { // (undocumented) @@ -696,6 +738,8 @@ export interface IntegrationsByType { github: ScmIntegrationsGroup; // (undocumented) gitlab: ScmIntegrationsGroup; + // (undocumented) + harness: ScmIntegrationsGroup; } // @public @@ -839,6 +883,11 @@ export function readGoogleGcsIntegrationConfig( config: Config, ): GoogleGcsIntegrationConfig; +// @public +export function readHarnessConfig( + config: Config, +): HarnessIntegrationConfig; + // @public @deprecated (undocumented) export const replaceGitHubUrlType: typeof replaceGithubUrlType; @@ -889,6 +938,8 @@ export interface ScmIntegrationRegistry github: ScmIntegrationsGroup; // (undocumented) gitlab: ScmIntegrationsGroup; + // (undocumented) + harness: ScmIntegrationsGroup; resolveEditUrl(url: string): string; resolveUrl(options: { url: string; @@ -927,6 +978,8 @@ export class ScmIntegrations implements ScmIntegrationRegistry { // (undocumented) get gitlab(): ScmIntegrationsGroup; // (undocumented) + get harness(): ScmIntegrationsGroup; + // (undocumented) list(): ScmIntegration[]; // (undocumented) resolveEditUrl(url: string): string; diff --git a/packages/integration/config.d.ts b/packages/integration/config.d.ts index 44303bf25c..01f1f44d73 100644 --- a/packages/integration/config.d.ts +++ b/packages/integration/config.d.ts @@ -345,5 +345,29 @@ export interface Config { */ password?: string; }>; + /** Integration configuration for Harness Code */ + harness?: Array<{ + /** + * The hostname of the given Harness Code instance + * @visibility frontend + */ + host: string; + /** + * The base url for the Gitea instance. + * @visibility frontend + */ + baseUrl?: string; + + /** + * The username to use for authenticated requests. + * @visibility secret + */ + username?: string; + /** + * Harness Code token used to authenticate requests. This can be either a generated access token. + * @visibility secret + */ + token?: string; + }>; }; } diff --git a/packages/integration/src/ScmIntegrations.test.ts b/packages/integration/src/ScmIntegrations.test.ts index acf602e38d..c758816c03 100644 --- a/packages/integration/src/ScmIntegrations.test.ts +++ b/packages/integration/src/ScmIntegrations.test.ts @@ -38,6 +38,7 @@ import { ScmIntegrations } from './ScmIntegrations'; import { GiteaIntegration, GiteaIntegrationConfig } from './gitea'; import { AwsCodeCommitIntegration } from './awsCodeCommit/AwsCodeCommitIntegration'; import { AwsCodeCommitIntegrationConfig } from './awsCodeCommit'; +import { HarnessIntegration, HarnessIntegrationConfig } from './harness'; describe('ScmIntegrations', () => { const awsS3 = new AwsS3Integration({ @@ -80,6 +81,10 @@ describe('ScmIntegrations', () => { host: 'gitea.local', } as GiteaIntegrationConfig); + const harness = new HarnessIntegration({ + host: 'harness.local', + } as HarnessIntegrationConfig); + const i = new ScmIntegrations({ awsS3: basicIntegrations([awsS3], item => item.config.host), awsCodeCommit: basicIntegrations([awsCodeCommit], item => item.config.host), @@ -94,6 +99,7 @@ describe('ScmIntegrations', () => { github: basicIntegrations([github], item => item.config.host), gitlab: basicIntegrations([gitlab], item => item.config.host), gitea: basicIntegrations([gitea], item => item.config.host), + harness: basicIntegrations([harness], item => item.config.host), }); it('can get the specifics', () => { @@ -113,6 +119,7 @@ describe('ScmIntegrations', () => { expect(i.github.byUrl('https://github.local')).toBe(github); expect(i.gitlab.byUrl('https://gitlab.local')).toBe(gitlab); expect(i.gitea.byUrl('https://gitea.local')).toBe(gitea); + expect(i.harness.byUrl('https://harness.local')).toBe(harness); }); it('can list', () => { @@ -128,6 +135,7 @@ describe('ScmIntegrations', () => { github, gitlab, gitea, + harness, ]), ); }); @@ -143,6 +151,7 @@ describe('ScmIntegrations', () => { expect(i.byUrl('https://github.local')).toBe(github); expect(i.byUrl('https://gitlab.local')).toBe(gitlab); expect(i.byUrl('https://gitea.local')).toBe(gitea); + expect(i.byUrl('https://harness.local')).toBe(harness); expect(i.byHost('awss3.local')).toBe(awsS3); expect(i.byHost('awscodecommit.local')).toBe(awsCodeCommit); diff --git a/packages/integration/src/ScmIntegrations.ts b/packages/integration/src/ScmIntegrations.ts index 6a1faaa75b..e0d430d834 100644 --- a/packages/integration/src/ScmIntegrations.ts +++ b/packages/integration/src/ScmIntegrations.ts @@ -28,6 +28,7 @@ import { defaultScmResolveUrl } from './helpers'; import { ScmIntegration, ScmIntegrationsGroup } from './types'; import { ScmIntegrationRegistry } from './registry'; import { GiteaIntegration } from './gitea'; +import { HarnessIntegration } from './harness/HarnessIntegration'; /** * The set of supported integrations. @@ -48,6 +49,7 @@ export interface IntegrationsByType { github: ScmIntegrationsGroup; gitlab: ScmIntegrationsGroup; gitea: ScmIntegrationsGroup; + harness: ScmIntegrationsGroup; } /** @@ -70,6 +72,7 @@ export class ScmIntegrations implements ScmIntegrationRegistry { github: GithubIntegration.factory({ config }), gitlab: GitLabIntegration.factory({ config }), gitea: GiteaIntegration.factory({ config }), + harness: HarnessIntegration.factory({ config }), }); } @@ -120,6 +123,10 @@ export class ScmIntegrations implements ScmIntegrationRegistry { return this.byType.gitea; } + get harness(): ScmIntegrationsGroup { + return this.byType.harness; + } + list(): ScmIntegration[] { return Object.values(this.byType).flatMap( i => i.list() as ScmIntegration[], diff --git a/packages/integration/src/harness/HarnessIntegration.test.ts b/packages/integration/src/harness/HarnessIntegration.test.ts new file mode 100644 index 0000000000..9014c0bb79 --- /dev/null +++ b/packages/integration/src/harness/HarnessIntegration.test.ts @@ -0,0 +1,128 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { ConfigReader } from '@backstage/config'; +import { HarnessIntegration } from './HarnessIntegration'; + +describe('HarnessIntegration', () => { + it('has a working factory', () => { + const integrations = HarnessIntegration.factory({ + config: new ConfigReader({ + integrations: { + harness: [ + { + host: 'app.harness.io', + username: 'git', + baseUrl: 'https://app.harness.io/route', + token: '1234', + }, + ], + }, + }), + }); + expect(integrations.list().length).toBe(1); + expect(integrations.list()[0].config.host).toBe('app.harness.io'); + expect(integrations.list()[0].config.baseUrl).toBe( + 'https://app.harness.io/route', + ); + }); + + it('returns the basics', () => { + const integration = new HarnessIntegration({ + host: 'app.harness.io', + }); + expect(integration.type).toBe('harness'); + expect(integration.title).toBe('app.harness.io'); + }); + + describe('resolveUrl', () => { + it('works for valid urls, ignoring line number', () => { + const integration = new HarnessIntegration({ + host: 'app.harness.io', + }); + + expect( + integration.resolveUrl({ + url: 'https://app.harness.io/catalog-info.yaml', + base: 'https://app.harness.io/catalog-info.yaml', + lineNumber: 9, + }), + ).toBe('https://app.harness.io/catalog-info.yaml'); + }); + + it('handles line numbers', () => { + const integration = new HarnessIntegration({ + host: 'app.harness.io', + }); + + expect( + integration.resolveUrl({ + url: '', + base: 'https://app.harness.io/catalog-info.yaml#4', + lineNumber: 9, + }), + ).toBe('https://app.harness.io/catalog-info.yaml#L9'); + }); + }); + + describe('resolves with a relative url', () => { + it('works for valid urls', () => { + const integration = new HarnessIntegration({ + host: 'app.harness.io', + }); + + expect( + integration.resolveUrl({ + url: './skeleton', + base: 'https://app.harness.io/git/plugins/repo/+/refs/heads/master/template.yaml', + }), + ).toBe( + 'https://app.harness.io/git/plugins/repo/+/refs/heads/master/skeleton', + ); + }); + }); + + describe('resolves with an absolute url', () => { + it('works for valid urls', () => { + const integration = new HarnessIntegration({ + host: 'app.harness.io', + }); + + expect( + integration.resolveUrl({ + url: '/catalog-info.yaml', + base: 'https://app.harness.io/git/repo/+/refs/heads/master/', + }), + ).toBe( + 'https://app.harness.io/git/repo/+/refs/heads/master/catalog-info.yaml', + ); + }); + }); + + it('resolve edit URL', () => { + const integration = new HarnessIntegration({ + host: 'app.harness.io', + }); + + expect( + integration.resolveEditUrl( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/edit/refMain/~/all-apis.yaml', + ), + ).toBe( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/edit/all-apis.yaml', + ); + }); +}); diff --git a/packages/integration/src/harness/HarnessIntegration.ts b/packages/integration/src/harness/HarnessIntegration.ts new file mode 100644 index 0000000000..5d1b274149 --- /dev/null +++ b/packages/integration/src/harness/HarnessIntegration.ts @@ -0,0 +1,58 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { basicIntegrations, defaultScmResolveUrl } from '../helpers'; +import { ScmIntegration, ScmIntegrationsFactory } from '../types'; +import { HarnessIntegrationConfig, readHarnessConfig } from './config'; +import { getHarnessEditContentsUrl } from './core'; + +/** + * A Harness Code based integration. + * + * @public + */ +export class HarnessIntegration implements ScmIntegration { + static factory: ScmIntegrationsFactory = ({ config }) => { + const configs = config.getOptionalConfigArray('integrations.harness') ?? []; + const harnessConfigs = configs.map(c => readHarnessConfig(c)); + + return basicIntegrations( + harnessConfigs.map(c => new HarnessIntegration(c)), + (harness: HarnessIntegration) => harness.config.host, + ); + }; + + constructor(readonly config: HarnessIntegrationConfig) {} + + get type(): string { + return 'harness'; + } + + get title(): string { + return this.config.host; + } + + resolveUrl(options: { + url: string; + base: string; + lineNumber?: number | undefined; + }): string { + return defaultScmResolveUrl(options); + } + + resolveEditUrl(url: string): string { + return getHarnessEditContentsUrl(this.config, url); + } +} diff --git a/packages/integration/src/harness/config.test.ts b/packages/integration/src/harness/config.test.ts new file mode 100644 index 0000000000..6482e89de8 --- /dev/null +++ b/packages/integration/src/harness/config.test.ts @@ -0,0 +1,108 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { Config, ConfigReader } from '@backstage/config'; +import { loadConfigSchema } from '@backstage/config-loader'; +import { HarnessIntegrationConfig, readHarnessConfig } from './config'; + +describe('readHarnessConfig', () => { + function buildConfig(data: Partial): Config { + return new ConfigReader(data); + } + + async function buildFrontendConfig( + data: Partial, + ): Promise { + const fullSchema = await loadConfigSchema({ + dependencies: ['@backstage/integration'], + }); + const serializedSchema = fullSchema.serialize() as { + schemas: { value: { properties?: { integrations?: object } } }[]; + }; + const schema = await loadConfigSchema({ + serialized: { + ...serializedSchema, // only include schemas that apply to integrations + schemas: serializedSchema.schemas.filter( + s => s.value?.properties?.integrations, + ), + }, + }); + const processed = schema.process( + [{ data: { integrations: { harness: [data] } }, context: 'app' }], + { visibility: ['frontend'] }, + ); + return new ConfigReader((processed[0].data as any).integrations.harness[0]); + } + + it('reads all values', () => { + const output = readHarnessConfig( + buildConfig({ + host: 'a.com', + baseUrl: 'https://a.com/route/api', + username: 'u', + token: 'p', + }), + ); + expect(output).toEqual({ + host: 'a.com', + baseUrl: 'https://a.com/route/api', + username: 'u', + token: 'p', + }); + }); + + it('can create a default value if the API base URL is missing', () => { + const output = readHarnessConfig( + buildConfig({ + host: 'a.com', + }), + ); + expect(output).toEqual({ + host: 'a.com', + baseUrl: 'https://a.com', + username: undefined, + token: undefined, + }); + }); + + it('rejects funky configs', () => { + const valid: any = { + host: 'a.com', + }; + expect(() => readHarnessConfig(buildConfig({ ...valid, host: 2 }))).toThrow( + /host/, + ); + expect(() => + readHarnessConfig(buildConfig({ ...valid, baseUrl: 2 })), + ).toThrow(/baseUrl/); + }); + + it('works on the frontend', async () => { + expect( + readHarnessConfig( + await buildFrontendConfig({ + host: 'a.com', + baseUrl: 'https://a.com/route', + username: 'u', + token: 'p', + }), + ), + ).toEqual({ + host: 'a.com', + baseUrl: 'https://a.com/route', + }); + }); +}); diff --git a/packages/integration/src/harness/config.ts b/packages/integration/src/harness/config.ts new file mode 100644 index 0000000000..75482a9b39 --- /dev/null +++ b/packages/integration/src/harness/config.ts @@ -0,0 +1,78 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { Config } from '@backstage/config'; +import { trimEnd } from 'lodash'; +import { isValidHost } from '../helpers'; + +/** + * The configuration for a single Gitea integration. + * + * @public + */ +export type HarnessIntegrationConfig = { + /** + * The host of the target that this matches on, e.g. "app.harness.io" + */ + host: string; + /** + * The optional base URL of the Harness code instance. It is assumed that https + * is used and that the base path is "/" on the host. If that is not the + * case set the complete base url to the Harness code instance, e.g. + * "https://harnesscode.website.com/". This is the url that you would open + * in a browser. + */ + baseUrl?: string; + /** + * The username to use for requests to harness code. + */ + username?: string; + + /** + * The password or http token to use for authentication. + */ + token?: string; +}; + +/** + * Parses a location config block for use in HarnessIntegration + * + * @public + */ +export function readHarnessConfig(config: Config): HarnessIntegrationConfig { + const host = config.getString('host'); + let baseUrl = config.getOptionalString('baseUrl'); + const username = config.getOptionalString('username'); + const token = config.getOptionalString('token'); + if (!isValidHost(host)) { + throw new Error( + `Invalid Harness Code integration config, '${host}' is not a valid host`, + ); + } + + if (baseUrl) { + baseUrl = trimEnd(baseUrl, '/'); + } else { + baseUrl = `https://${host}`; + } + + return { + host, + baseUrl, + username, + token, + }; +} diff --git a/packages/integration/src/harness/core.test.ts b/packages/integration/src/harness/core.test.ts new file mode 100644 index 0000000000..6502fd3e48 --- /dev/null +++ b/packages/integration/src/harness/core.test.ts @@ -0,0 +1,95 @@ +/* + * Copyright 2020 The Backstage Authors + * + * 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 { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '@backstage/test-utils'; +import { HarnessIntegrationConfig } from './config'; +import { + getHarnessEditContentsUrl, + getHarnessFileContentsUrl, + getHarnessRequestOptions, +} from './core'; + +describe('Harness code core', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + + describe('getHarnessFileContentsUrl', () => { + it('can create an url from arguments', () => { + const config: HarnessIntegrationConfig = { + host: 'app.harness.io', + }; + expect( + getHarnessFileContentsUrl( + config, + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', + ), + ).toEqual( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain', + ); + }); + }); + + describe('getHarnessEditContentsUrl', () => { + it('can create an url from arguments', () => { + const config: HarnessIntegrationConfig = { + host: 'app.harness.io', + }; + expect( + getHarnessEditContentsUrl( + config, + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/edit/refMain/~/all-apis.yaml', + ), + ).toEqual( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/edit/all-apis.yaml', + ); + }); + }); + + describe('getGerritRequestOptions', () => { + it('adds token header when only a token is specified', () => { + const authRequest: HarnessIntegrationConfig = { + host: 'gerrit.com', + token: 'P', + }; + const anonymousRequest: HarnessIntegrationConfig = { + host: 'gerrit.com', + }; + expect( + (getHarnessRequestOptions(authRequest).headers as any).Authorization, + ).toEqual('Bearer P'); + expect( + getHarnessRequestOptions(anonymousRequest).headers, + ).toBeUndefined(); + }); + + it('adds basic auth when username and token are specified', () => { + const authRequest: HarnessIntegrationConfig = { + host: 'gerrit.com', + username: 'username', + token: 'P', + }; + + const basicAuthentication = `basic ${Buffer.from( + `${authRequest.username}:${authRequest.token}`, + ).toString('base64')}`; + + expect( + (getHarnessRequestOptions(authRequest).headers as any).Authorization, + ).toEqual(basicAuthentication); + }); + }); +}); diff --git a/packages/integration/src/harness/core.ts b/packages/integration/src/harness/core.ts new file mode 100644 index 0000000000..0c4fb01970 --- /dev/null +++ b/packages/integration/src/harness/core.ts @@ -0,0 +1,135 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { HarnessIntegrationConfig } from './config'; + +/** + * Given a URL pointing to a file, returns a URL + * for editing the contents of the data. + * + * @remarks + * + * Converts + * from: https://app.harness.io/a/b/src/branchname/path/to/c.yaml + * or: https://app.harness.io/a/b/_edit/branchname/path/to/c.yaml + * + * @param url - A URL pointing to a file + * @param config - The relevant provider config + * @public + */ +export function getHarnessEditContentsUrl( + config: HarnessIntegrationConfig, + url: string, +) { + try { + const baseUrl = config.baseUrl ?? `https://${config.host}`; + const [ + _blank, + _ng, + _account, + accountId, + _module, + _moduleName, + _org, + orgName, + _projects, + projectName, + _repos, + repoName, + _files, + _ref, + _branch, + ...path + ] = url.replace(baseUrl, '').split('/'); + const pathWithoutSlash = path.join('/').replace(/^\//, ''); + return `${baseUrl}/gateway/code/api/v1/repos/${accountId}/${orgName}/${projectName}/${repoName}/+/edit/${pathWithoutSlash}`; + } catch (e) { + throw new Error(`Incorrect URL: ${url}, ${e}`); + } +} + +/** + * Given a URL pointing to a file, returns an api URL + * for fetching the contents of the data. + * + * @remarks + * + * Converts + * from: https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml + * to: https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain + * + * @param url - A URL pointing to a file + * @param config - The relevant provider config + * @public + */ +export function getHarnessFileContentsUrl( + config: HarnessIntegrationConfig, + url: string, +) { + try { + const baseUrl = config.baseUrl ?? `https://${config.host}`; + const [ + _blank, + _ng, + _account, + accountId, + _module, + _moduleName, + _org, + orgName, + _projects, + projectName, + _repos, + repoName, + _files, + ref, + _branch, + ...path + ] = url.replace(baseUrl, '').split('/'); + const pathWithoutSlash = path.join('/').replace(/^\//, ''); + return `${baseUrl}/gateway/code/api/v1/repos/${accountId}/${orgName}/${projectName}/${repoName}/+/content/${pathWithoutSlash}?routingId=${accountId}&include_commit=false&ref=${ref}`; + } catch (e) { + throw new Error(`Incorrect URL: ${url}, ${e}`); + } +} + +/** + * Return request headers for a Harness Code provider. + * + * @param config - A Harness Code provider config + * @public + */ +export function getHarnessRequestOptions(config: HarnessIntegrationConfig): { + headers?: Record; +} { + const headers: Record = {}; + const { username, token } = config; + + if (!token) { + return headers; + } + + if (username) { + headers.Authorization = `basic ${Buffer.from( + `${username}:${token}`, + ).toString('base64')}`; + } else { + headers.Authorization = `Bearer ${token}`; + } + + return { + headers, + }; +} diff --git a/packages/integration/src/harness/index.ts b/packages/integration/src/harness/index.ts new file mode 100644 index 0000000000..264df657f0 --- /dev/null +++ b/packages/integration/src/harness/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { HarnessIntegration } from './HarnessIntegration'; +export { getHarnessRequestOptions, getHarnessFileContentsUrl } from './core'; +export { readHarnessConfig } from './config'; +export type { HarnessIntegrationConfig } from './config'; diff --git a/packages/integration/src/index.ts b/packages/integration/src/index.ts index b20477ee6a..32c573abef 100644 --- a/packages/integration/src/index.ts +++ b/packages/integration/src/index.ts @@ -31,6 +31,7 @@ export * from './gitea'; export * from './github'; export * from './gitlab'; export * from './googleGcs'; +export * from './harness'; export { defaultScmResolveUrl } from './helpers'; export { ScmIntegrations } from './ScmIntegrations'; export type { IntegrationsByType } from './ScmIntegrations'; diff --git a/packages/integration/src/registry.ts b/packages/integration/src/registry.ts index 00706acc1c..7e4b34cc34 100644 --- a/packages/integration/src/registry.ts +++ b/packages/integration/src/registry.ts @@ -25,6 +25,7 @@ import { GerritIntegration } from './gerrit/GerritIntegration'; import { GithubIntegration } from './github/GithubIntegration'; import { GitLabIntegration } from './gitlab/GitLabIntegration'; import { GiteaIntegration } from './gitea/GiteaIntegration'; +import { HarnessIntegration } from './harness/HarnessIntegration'; /** * Holds all registered SCM integrations, of all types. @@ -46,6 +47,7 @@ export interface ScmIntegrationRegistry github: ScmIntegrationsGroup; gitlab: ScmIntegrationsGroup; gitea: ScmIntegrationsGroup; + harness: ScmIntegrationsGroup; /** * Resolves an absolute or relative URL in relation to a base URL. * From 4750bf66223a0befc33ab8226c7036a5f0d2e898 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Sun, 21 Apr 2024 19:39:59 -0600 Subject: [PATCH 13/62] Update .changeset/empty-beers-relax.md Co-authored-by: Himanshu Mishra Signed-off-by: Calvin Lee --- .changeset/empty-beers-relax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/empty-beers-relax.md b/.changeset/empty-beers-relax.md index 526f88c1c7..a285b9e7b4 100644 --- a/.changeset/empty-beers-relax.md +++ b/.changeset/empty-beers-relax.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -This patch adds HarnessURLReader to the available classes. It currently only reads single files via Harness codes public repo api. +This patch adds HarnessURLReader. It only supports readUrl for now. readTree and search will be implemented next. From d422716946e6bd1ca2072f21b510add272eb0b59 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Sun, 21 Apr 2024 20:31:45 -0600 Subject: [PATCH 14/62] integration support for harness p2-comments Signed-off-by: Calvin Lee --- docs/integrations/harness/locations.md | 12 +++---- .../src/reading/HarnessUrlReader.ts | 2 +- packages/integration/api-report.md | 5 ++- .../src/harness/HarnessIntegration.test.ts | 5 --- .../integration/src/harness/config.test.ts | 11 ++----- packages/integration/src/harness/config.ts | 32 ++++++------------- packages/integration/src/harness/core.test.ts | 12 +++---- packages/integration/src/harness/core.ts | 17 ++++------ 8 files changed, 31 insertions(+), 65 deletions(-) diff --git a/docs/integrations/harness/locations.md b/docs/integrations/harness/locations.md index 8911d7918c..a3d0e2cfd4 100644 --- a/docs/integrations/harness/locations.md +++ b/docs/integrations/harness/locations.md @@ -20,14 +20,14 @@ integrations: harness: - host: app.harness.io token: ${HARNESS_CODE_BEARER_TOKEN} + apiKey: ${HARNESS_CODE_APIKEY} ``` -Directly under the `harnessCode` key is a list of provider configurations, where you -can list the Gitea instances you want to be able to fetch -data from. Each entry is a structure with up to four elements: +Directly under the `harness` key is a list of provider configurations, where you +can list the Harness instances you want to be able to fetch + +check out https://developer.harness.io/docs/platform/automation/api/add-and-manage-api-keys/ for more information - `host`: The host of the Harness Code instance that you want to match on. -- `baseUrl` (optional): Needed if the Harness Code instance is not reachable at - the base of the `host` option (e.g. `https://app.harness.io`). This is the address that you would open in a browser. -- `username` (optional): The gitea username to use in API requests. - `token` (optional): The password or api token to authenticate with. +- `apiKey` (optional): The apiKey to authenticate with. diff --git a/packages/backend-common/src/reading/HarnessUrlReader.ts b/packages/backend-common/src/reading/HarnessUrlReader.ts index fd01e4f8a2..95114ae9d6 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.ts @@ -118,7 +118,7 @@ export class HarnessUrlReader implements UrlReader { toString() { const { host } = this.integration.config; return `harness{host=${host},authed=${Boolean( - this.integration.config.token, + this.integration.config.token || this.integration.config.apiKey, )}}`; } } diff --git a/packages/integration/api-report.md b/packages/integration/api-report.md index a693c1314c..b40b66b0b6 100644 --- a/packages/integration/api-report.md +++ b/packages/integration/api-report.md @@ -552,7 +552,7 @@ export type GiteaIntegrationConfig = { host: string; baseUrl?: string; username?: string; - token?: string; + password?: string; }; // @public @@ -711,8 +711,7 @@ export class HarnessIntegration implements ScmIntegration { // @public export type HarnessIntegrationConfig = { host: string; - baseUrl?: string; - username?: string; + apiKey?: string; token?: string; }; diff --git a/packages/integration/src/harness/HarnessIntegration.test.ts b/packages/integration/src/harness/HarnessIntegration.test.ts index 9014c0bb79..2d85204f16 100644 --- a/packages/integration/src/harness/HarnessIntegration.test.ts +++ b/packages/integration/src/harness/HarnessIntegration.test.ts @@ -25,8 +25,6 @@ describe('HarnessIntegration', () => { harness: [ { host: 'app.harness.io', - username: 'git', - baseUrl: 'https://app.harness.io/route', token: '1234', }, ], @@ -35,9 +33,6 @@ describe('HarnessIntegration', () => { }); expect(integrations.list().length).toBe(1); expect(integrations.list()[0].config.host).toBe('app.harness.io'); - expect(integrations.list()[0].config.baseUrl).toBe( - 'https://app.harness.io/route', - ); }); it('returns the basics', () => { diff --git a/packages/integration/src/harness/config.test.ts b/packages/integration/src/harness/config.test.ts index 6482e89de8..4f6d8496e3 100644 --- a/packages/integration/src/harness/config.test.ts +++ b/packages/integration/src/harness/config.test.ts @@ -51,16 +51,14 @@ describe('readHarnessConfig', () => { const output = readHarnessConfig( buildConfig({ host: 'a.com', - baseUrl: 'https://a.com/route/api', - username: 'u', token: 'p', + apiKey: 'a', }), ); expect(output).toEqual({ host: 'a.com', - baseUrl: 'https://a.com/route/api', - username: 'u', token: 'p', + apiKey: 'a', }); }); @@ -72,8 +70,6 @@ describe('readHarnessConfig', () => { ); expect(output).toEqual({ host: 'a.com', - baseUrl: 'https://a.com', - username: undefined, token: undefined, }); }); @@ -95,14 +91,11 @@ describe('readHarnessConfig', () => { readHarnessConfig( await buildFrontendConfig({ host: 'a.com', - baseUrl: 'https://a.com/route', - username: 'u', token: 'p', }), ), ).toEqual({ host: 'a.com', - baseUrl: 'https://a.com/route', }); }); }); diff --git a/packages/integration/src/harness/config.ts b/packages/integration/src/harness/config.ts index 75482a9b39..748cd141c5 100644 --- a/packages/integration/src/harness/config.ts +++ b/packages/integration/src/harness/config.ts @@ -15,11 +15,10 @@ */ import { Config } from '@backstage/config'; -import { trimEnd } from 'lodash'; import { isValidHost } from '../helpers'; /** - * The configuration for a single Gitea integration. + * The configuration for a single Harness integration. * * @public */ @@ -28,23 +27,14 @@ export type HarnessIntegrationConfig = { * The host of the target that this matches on, e.g. "app.harness.io" */ host: string; - /** - * The optional base URL of the Harness code instance. It is assumed that https - * is used and that the base path is "/" on the host. If that is not the - * case set the complete base url to the Harness code instance, e.g. - * "https://harnesscode.website.com/". This is the url that you would open - * in a browser. - */ - baseUrl?: string; - /** - * The username to use for requests to harness code. - */ - username?: string; - /** * The password or http token to use for authentication. */ token?: string; + /** + * The API key to use for authentication. + */ + apiKey?: string; }; /** @@ -55,24 +45,20 @@ export type HarnessIntegrationConfig = { export function readHarnessConfig(config: Config): HarnessIntegrationConfig { const host = config.getString('host'); let baseUrl = config.getOptionalString('baseUrl'); - const username = config.getOptionalString('username'); const token = config.getOptionalString('token'); + const apiKey = config.getOptionalString('apiKey'); + if (!isValidHost(host)) { throw new Error( `Invalid Harness Code integration config, '${host}' is not a valid host`, ); } - if (baseUrl) { - baseUrl = trimEnd(baseUrl, '/'); - } else { - baseUrl = `https://${host}`; - } + baseUrl = `https://${host}`; return { host, - baseUrl, - username, + apiKey, token, }; } diff --git a/packages/integration/src/harness/core.test.ts b/packages/integration/src/harness/core.test.ts index 6502fd3e48..2a214cc06f 100644 --- a/packages/integration/src/harness/core.test.ts +++ b/packages/integration/src/harness/core.test.ts @@ -76,20 +76,16 @@ describe('Harness code core', () => { ).toBeUndefined(); }); - it('adds basic auth when username and token are specified', () => { + it('adds basic auth when apikey and token are specified', () => { const authRequest: HarnessIntegrationConfig = { host: 'gerrit.com', - username: 'username', token: 'P', + apiKey: 'a', }; - const basicAuthentication = `basic ${Buffer.from( - `${authRequest.username}:${authRequest.token}`, - ).toString('base64')}`; - expect( - (getHarnessRequestOptions(authRequest).headers as any).Authorization, - ).toEqual(basicAuthentication); + (getHarnessRequestOptions(authRequest).headers as any)['x-api-key'], + ).toEqual('a'); }); }); }); diff --git a/packages/integration/src/harness/core.ts b/packages/integration/src/harness/core.ts index 0c4fb01970..324a57071c 100644 --- a/packages/integration/src/harness/core.ts +++ b/packages/integration/src/harness/core.ts @@ -34,7 +34,7 @@ export function getHarnessEditContentsUrl( url: string, ) { try { - const baseUrl = config.baseUrl ?? `https://${config.host}`; + const baseUrl = `https://${config.host}`; const [ _blank, _ng, @@ -61,9 +61,8 @@ export function getHarnessEditContentsUrl( } /** - * Given a URL pointing to a file, returns an api URL - * for fetching the contents of the data. - * + * Given a file path URL, + * it returns an API URL which returns the contents of the file. * @remarks * * Converts @@ -79,7 +78,7 @@ export function getHarnessFileContentsUrl( url: string, ) { try { - const baseUrl = config.baseUrl ?? `https://${config.host}`; + const baseUrl = `https://${config.host}`; const [ _blank, _ng, @@ -115,16 +114,14 @@ export function getHarnessRequestOptions(config: HarnessIntegrationConfig): { headers?: Record; } { const headers: Record = {}; - const { username, token } = config; + const { token, apiKey } = config; if (!token) { return headers; } - if (username) { - headers.Authorization = `basic ${Buffer.from( - `${username}:${token}`, - ).toString('base64')}`; + if (apiKey) { + headers['x-api-key'] = apiKey; } else { headers.Authorization = `Bearer ${token}`; } From 6a0e918dc69d6e46d350485c4fea14c54cea3847 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 00:23:33 -0600 Subject: [PATCH 15/62] integration support for harness p3-comments Signed-off-by: Calvin Lee --- .../{HarnessCodeUrlReader.test.ts => HarnessUrlReader.test.ts} | 2 +- packages/integration/src/harness/core.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename packages/backend-common/src/reading/{HarnessCodeUrlReader.test.ts => HarnessUrlReader.test.ts} (98%) diff --git a/packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts b/packages/backend-common/src/reading/HarnessUrlReader.test.ts similarity index 98% rename from packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts rename to packages/backend-common/src/reading/HarnessUrlReader.test.ts index 3e8b70a6aa..18c523b959 100644 --- a/packages/backend-common/src/reading/HarnessCodeUrlReader.test.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.test.ts @@ -60,7 +60,7 @@ const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { describe('HarnessUrlReader', () => { const worker = setupServer(); setupRequestMockHandlers(worker); - + beforeAll(() => worker.listen({ onUnhandledRequest: 'bypass' })); afterAll(() => { jest.clearAllMocks(); }); diff --git a/packages/integration/src/harness/core.ts b/packages/integration/src/harness/core.ts index 324a57071c..6de8039dd5 100644 --- a/packages/integration/src/harness/core.ts +++ b/packages/integration/src/harness/core.ts @@ -122,7 +122,7 @@ export function getHarnessRequestOptions(config: HarnessIntegrationConfig): { if (apiKey) { headers['x-api-key'] = apiKey; - } else { + } else if (token) { headers.Authorization = `Bearer ${token}`; } From ed8b5324dad91129efa850a42f2d27b77b340806 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 16:41:40 -0600 Subject: [PATCH 16/62] integration support for harness p4-fixed test Signed-off-by: Calvin Lee --- .../src/reading/HarnessUrlReader.test.ts | 136 +++++++++--------- packages/integration/src/harness/core.ts | 8 +- 2 files changed, 71 insertions(+), 73 deletions(-) diff --git a/packages/backend-common/src/reading/HarnessUrlReader.test.ts b/packages/backend-common/src/reading/HarnessUrlReader.test.ts index 18c523b959..4d43cebaec 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.test.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.test.ts @@ -25,7 +25,6 @@ import { UrlReaderPredicateTuple } from './types'; import { DefaultReadTreeResponseFactory } from './tree'; import getRawBody from 'raw-body'; import { HarnessUrlReader } from './HarnessUrlReader'; -import { NotFoundError } from '@backstage/errors'; const treeResponseFactory = DefaultReadTreeResponseFactory.create({ config: new ConfigReader({}), @@ -44,6 +43,7 @@ const harnessProcessor = new HarnessUrlReader( readHarnessConfig( new ConfigReader({ host: 'app.harness.io', + token: 'p', }), ), ), @@ -56,9 +56,60 @@ const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { treeResponseFactory, }); }; +const responseBuffer = Buffer.from('Apache License'); +const harnessApiResponse = (content: any) => { + return JSON.stringify({ + content: { + data: Buffer.from(content).toString('base64'), + encoding: 'base64', + }, + }); +}; + +const handlers = [ + rest.get( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/all-apis.yaml', + (req, res, ctx) => { + return res(ctx.status(500), ctx.json({ message: 'Error!!!' })); + }, + ), + rest.get( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/404error.yaml', + (req, res, ctx) => { + return res(ctx.status(404), ctx.json({ message: 'File not found.' })); + }, + ), + rest.get( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/stream.TXT', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.body(harnessApiResponse(responseBuffer.toString())), + ); + }, + ), + + rest.get( + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/buffer.TXT', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.body(harnessApiResponse(responseBuffer.toString())), + ); + }, + ), + rest.post('/api/login', (req, res, ctx) => { + const { username } = req.body; + + if (username === 'admin') { + return res(ctx.status(200), ctx.json({ token: 'fake-token' })); + } + return res(ctx.status(403), ctx.json({ message: 'Access Denied' })); + }), +]; describe('HarnessUrlReader', () => { - const worker = setupServer(); + const worker = setupServer(...handlers); setupRequestMockHandlers(worker); beforeAll(() => worker.listen({ onUnhandledRequest: 'bypass' })); afterAll(() => { @@ -107,97 +158,40 @@ describe('HarnessUrlReader', () => { }); }); - describe('readUrl', () => { - const responseBuffer = Buffer.from('Apache License'); - const harnessApiResponse = (content: any) => { - return JSON.stringify({ - encoding: 'base64', - content: Buffer.from(content).toString('base64'), - }); - }; - - it.skip('should be able to read file contents as buffer', async () => { - worker.use( - rest.get( - 'https://app.harness.io/api/v1/repos/owner/project/contents/LICENSE', - (req, res, ctx) => { - // Test utils prefers matching URL directly but it is part of Gitea's API - if (req.url.searchParams.get('ref') === 'branch2') { - return res( - ctx.status(200), - ctx.body(harnessApiResponse(responseBuffer.toString())), - ); - } - - return res(ctx.status(500)); - }, - ), - ); - + describe('readUrl part 1', () => { + it('should be able to read file contents as buffer', async () => { const result = await harnessProcessor.readUrl( - 'https://app.harness.io/owner/project/src/branch/branch2/LICENSE', + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/buffer.TXT', ); const buffer = await result.buffer(); expect(buffer.toString()).toBe(responseBuffer.toString()); }); - it.skip('should be able to read file contents as stream', async () => { - worker.use( - rest.get( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/LICENSE.txt', - (req, res, ctx) => { - if (req.url.searchParams.get('ref') === 'refMain') { - return res( - ctx.status(200), - ctx.body(harnessApiResponse(responseBuffer.toString())), - ); - } - - return res(ctx.status(500)); - }, - ), - ); - + it('should be able to read file contents as stream', async () => { const result = await harnessProcessor.readUrl( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/LICENSE.TXT', + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/stream.TXT', ); const fromStream = await getRawBody(result.stream!()); expect(fromStream.toString()).toBe(responseBuffer.toString()); }); - it.skip('should raise NotFoundError on 404.', async () => { - worker.use( - rest.get( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', - (_, res, ctx) => { - return res(ctx.status(404, 'File not found.')); - }, - ), - ); - + it('should raise NotFoundError on 404.', async () => { await expect( harnessProcessor.readUrl( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/404error.yaml', ), - ).rejects.toThrow(NotFoundError); + ).rejects.toThrow( + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/404error.yaml x https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/404error.yaml?routingId=accountId&include_commit=false&ref=refMain, 404 Not Found', + ); }); - it.skip('should throw an error on non 404 errors.', async () => { - worker.use( - rest.get( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', - (_, res, ctx) => { - return res(ctx.status(500, 'Error!!!')); - }, - ), - ); - + it('should throw an error on non 404 errors.', async () => { await expect( harnessProcessor.readUrl( 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', ), ).rejects.toThrow( - 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain, 500 Error!!!', + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml x https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain, 500 Internal Server Error', ); }); }); diff --git a/packages/integration/src/harness/core.ts b/packages/integration/src/harness/core.ts index 6de8039dd5..f762cebb56 100644 --- a/packages/integration/src/harness/core.ts +++ b/packages/integration/src/harness/core.ts @@ -93,12 +93,16 @@ export function getHarnessFileContentsUrl( _repos, repoName, _files, - ref, + _ref, _branch, ...path ] = url.replace(baseUrl, '').split('/'); + const urlParts = url.replace(baseUrl, '').split('/'); + const refAndPath = urlParts.slice(13); + const refIndex = refAndPath.findIndex(item => item === '~'); + const refString = refAndPath.slice(0, refIndex); const pathWithoutSlash = path.join('/').replace(/^\//, ''); - return `${baseUrl}/gateway/code/api/v1/repos/${accountId}/${orgName}/${projectName}/${repoName}/+/content/${pathWithoutSlash}?routingId=${accountId}&include_commit=false&ref=${ref}`; + return `${baseUrl}/gateway/code/api/v1/repos/${accountId}/${orgName}/${projectName}/${repoName}/+/content/${pathWithoutSlash}?routingId=${accountId}&include_commit=false&ref=${refString}`; } catch (e) { throw new Error(`Incorrect URL: ${url}, ${e}`); } From 0cf356671a830937d09872a933edcbc80e676841 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 16:43:47 -0600 Subject: [PATCH 17/62] integration support for harness p4-fixed test Signed-off-by: Calvin Lee --- .../backend-common/src/reading/HarnessUrlReader.test.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/backend-common/src/reading/HarnessUrlReader.test.ts b/packages/backend-common/src/reading/HarnessUrlReader.test.ts index 4d43cebaec..5e1d2d9b2e 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.test.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.test.ts @@ -98,14 +98,6 @@ const handlers = [ ); }, ), - rest.post('/api/login', (req, res, ctx) => { - const { username } = req.body; - - if (username === 'admin') { - return res(ctx.status(200), ctx.json({ token: 'fake-token' })); - } - return res(ctx.status(403), ctx.json({ message: 'Access Denied' })); - }), ]; describe('HarnessUrlReader', () => { From 1cfa4aa35ea08f16dc7635e87a608c6e8c41851c Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 21:13:04 -0600 Subject: [PATCH 18/62] integration support for harness p5-fixed lint Signed-off-by: Calvin Lee --- packages/backend-common/api-report.md | 3 +-- .../src/reading/HarnessUrlReader.test.ts | 8 ++++---- packages/integration/config.d.ts | 10 ++-------- packages/integration/src/harness/config.test.ts | 3 --- packages/integration/src/harness/config.ts | 3 --- 5 files changed, 7 insertions(+), 20 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 37bfda9861..33145fc47f 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -551,8 +551,7 @@ export class HarnessUrlReader implements UrlReader { // @public export type HarnessIntegrationConfig = { host: string; - baseUrl?: string; - username?: string; + apiKey?: string; token?: string; }; diff --git a/packages/backend-common/src/reading/HarnessUrlReader.test.ts b/packages/backend-common/src/reading/HarnessUrlReader.test.ts index 5e1d2d9b2e..d6cf9ab018 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.test.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.test.ts @@ -69,19 +69,19 @@ const harnessApiResponse = (content: any) => { const handlers = [ rest.get( 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/all-apis.yaml', - (req, res, ctx) => { + (_req, res, ctx) => { return res(ctx.status(500), ctx.json({ message: 'Error!!!' })); }, ), rest.get( 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/404error.yaml', - (req, res, ctx) => { + (_req, res, ctx) => { return res(ctx.status(404), ctx.json({ message: 'File not found.' })); }, ), rest.get( 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/stream.TXT', - (req, res, ctx) => { + (_req, res, ctx) => { return res( ctx.status(200), ctx.body(harnessApiResponse(responseBuffer.toString())), @@ -91,7 +91,7 @@ const handlers = [ rest.get( 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/buffer.TXT', - (req, res, ctx) => { + (_req, res, ctx) => { return res( ctx.status(200), ctx.body(harnessApiResponse(responseBuffer.toString())), diff --git a/packages/integration/config.d.ts b/packages/integration/config.d.ts index 01f1f44d73..58dd9153c4 100644 --- a/packages/integration/config.d.ts +++ b/packages/integration/config.d.ts @@ -353,16 +353,10 @@ export interface Config { */ host: string; /** - * The base url for the Gitea instance. - * @visibility frontend - */ - baseUrl?: string; - - /** - * The username to use for authenticated requests. + * The apikey to use for authenticated requests. * @visibility secret */ - username?: string; + apiKey?: string; /** * Harness Code token used to authenticate requests. This can be either a generated access token. * @visibility secret diff --git a/packages/integration/src/harness/config.test.ts b/packages/integration/src/harness/config.test.ts index 4f6d8496e3..93be1fcc32 100644 --- a/packages/integration/src/harness/config.test.ts +++ b/packages/integration/src/harness/config.test.ts @@ -81,9 +81,6 @@ describe('readHarnessConfig', () => { expect(() => readHarnessConfig(buildConfig({ ...valid, host: 2 }))).toThrow( /host/, ); - expect(() => - readHarnessConfig(buildConfig({ ...valid, baseUrl: 2 })), - ).toThrow(/baseUrl/); }); it('works on the frontend', async () => { diff --git a/packages/integration/src/harness/config.ts b/packages/integration/src/harness/config.ts index 748cd141c5..2f75915567 100644 --- a/packages/integration/src/harness/config.ts +++ b/packages/integration/src/harness/config.ts @@ -44,7 +44,6 @@ export type HarnessIntegrationConfig = { */ export function readHarnessConfig(config: Config): HarnessIntegrationConfig { const host = config.getString('host'); - let baseUrl = config.getOptionalString('baseUrl'); const token = config.getOptionalString('token'); const apiKey = config.getOptionalString('apiKey'); @@ -54,8 +53,6 @@ export function readHarnessConfig(config: Config): HarnessIntegrationConfig { ); } - baseUrl = `https://${host}`; - return { host, apiKey, From 2bf97f0aa15b1940fb2a485584ae14c773cf7591 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 21:31:44 -0600 Subject: [PATCH 19/62] integration support for harness p5-fixed check Signed-off-by: Calvin Lee --- packages/integration/package.json | 1 + yarn.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/integration/package.json b/packages/integration/package.json index bbd0eecbe7..b57b94f982 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -50,6 +50,7 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/config-loader": "workspace:^", + "@backstage/test-utils": "workspace:^", "@types/luxon": "^3.0.0", "msw": "^1.0.0" }, diff --git a/yarn.lock b/yarn.lock index 3cf5a79175..60b03d4399 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4368,6 +4368,7 @@ __metadata: "@backstage/config": "workspace:^" "@backstage/config-loader": "workspace:^" "@backstage/errors": "workspace:^" + "@backstage/test-utils": "workspace:^" "@octokit/auth-app": ^4.0.0 "@octokit/rest": ^19.0.3 "@types/luxon": ^3.0.0 From 049a69f223e9c986312750e55c4fab028398fc25 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 21:46:58 -0600 Subject: [PATCH 20/62] integration support for harness p5-fixed api report Signed-off-by: Calvin Lee --- packages/integration/api-report.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/integration/api-report.md b/packages/integration/api-report.md index b40b66b0b6..2029dac600 100644 --- a/packages/integration/api-report.md +++ b/packages/integration/api-report.md @@ -520,9 +520,7 @@ export function getHarnessFileContentsUrl( ): string; // @public -export function getHarnessRequestOptions( - config: HarnessIntegrationConfig, -): { +export function getHarnessRequestOptions(config: HarnessIntegrationConfig): { headers?: Record; }; @@ -711,8 +709,8 @@ export class HarnessIntegration implements ScmIntegration { // @public export type HarnessIntegrationConfig = { host: string; - apiKey?: string; token?: string; + apiKey?: string; }; // @public @@ -883,9 +881,7 @@ export function readGoogleGcsIntegrationConfig( ): GoogleGcsIntegrationConfig; // @public -export function readHarnessConfig( - config: Config, -): HarnessIntegrationConfig; +export function readHarnessConfig(config: Config): HarnessIntegrationConfig; // @public @deprecated (undocumented) export const replaceGitHubUrlType: typeof replaceGithubUrlType; From 7362e25a24086d47c28c98029cb4ff982af102f5 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 21:59:08 -0600 Subject: [PATCH 21/62] integration support for harness p5-fixed api report Signed-off-by: Calvin Lee --- packages/backend-common/api-report.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 33145fc47f..1ae7a9dceb 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -531,6 +531,8 @@ export class GitlabUrlReader implements UrlReader { toString(): string; } +// Warning: (ae-unresolved-link) The @link reference could not be resolved: This type of declaration is not supported yet by the resolver +// // @public export class HarnessUrlReader implements UrlReader { constructor(integration: HarnessIntegration); @@ -548,13 +550,6 @@ export class HarnessUrlReader implements UrlReader { toString(): string; } -// @public -export type HarnessIntegrationConfig = { - host: string; - apiKey?: string; - token?: string; -}; - // @public export const HostDiscovery: typeof HostDiscovery_2; From a102a02c27a380513f04f8807c7eea2f5718998b Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 22:42:20 -0600 Subject: [PATCH 22/62] integration support for harness p5-fixed api report Signed-off-by: Calvin Lee --- packages/backend-common/api-report.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 1ae7a9dceb..e815973fb1 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -531,8 +531,6 @@ export class GitlabUrlReader implements UrlReader { toString(): string; } -// Warning: (ae-unresolved-link) The @link reference could not be resolved: This type of declaration is not supported yet by the resolver -// // @public export class HarnessUrlReader implements UrlReader { constructor(integration: HarnessIntegration); From a25b566c6453d2ad5f04e3b4a31b896a3864c797 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 22:57:03 -0600 Subject: [PATCH 23/62] integration support for harness p5-fixed api report Signed-off-by: Calvin Lee --- packages/backend-common/src/reading/HarnessUrlReader.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/reading/HarnessUrlReader.ts b/packages/backend-common/src/reading/HarnessUrlReader.ts index 95114ae9d6..55854d102f 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.ts @@ -36,7 +36,7 @@ import { import { Readable } from 'stream'; /** - * Implements a {@link UrlReader} for the Harness code v1 api. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for the Harness code v1 api. * * @public */ From 645580361b68f525c227c9c2f5fcedc3cb89c3f2 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 23 Apr 2024 23:06:29 -0600 Subject: [PATCH 24/62] integration support for harness p5-fixed api microsite Signed-off-by: Calvin Lee --- microsite/sidebars.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 8291549153..eadcbbf806 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -239,9 +239,9 @@ "items": ["integrations/gitea/locations"] }, { - "type": "subcategory", + "type": "category", "label": "Harness", - "ids": ["integrations/harness/locations"] + "items": ["integrations/harness/locations"] }, { "type": "category", From d01f3ab8901274470ff160e3bca38d3b22372f96 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Thu, 25 Apr 2024 11:41:13 -0600 Subject: [PATCH 25/62] integration support for harness p5-fixed api microsite-fake Signed-off-by: Calvin Lee --- packages/backend-common/src/reading/HarnessUrlReader.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/backend-common/src/reading/HarnessUrlReader.ts b/packages/backend-common/src/reading/HarnessUrlReader.ts index 55854d102f..7d65e674b8 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.ts @@ -38,6 +38,7 @@ import { Readable } from 'stream'; /** * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for the Harness code v1 api. * + * * @public */ export class HarnessUrlReader implements UrlReader { From 9093f35e8aa1a99c1d7620a2ca3da6d19deeeefb Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Mon, 29 Apr 2024 12:41:19 -0600 Subject: [PATCH 26/62] integration support for harness p5-fixed api microsite-fix content api Signed-off-by: Calvin Lee --- .../src/reading/HarnessUrlReader.test.ts | 19 +++++++------------ .../src/reading/HarnessUrlReader.ts | 10 +++++----- packages/integration/src/harness/core.test.ts | 2 +- packages/integration/src/harness/core.ts | 2 +- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/packages/backend-common/src/reading/HarnessUrlReader.test.ts b/packages/backend-common/src/reading/HarnessUrlReader.test.ts index d6cf9ab018..bb09baa140 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.test.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.test.ts @@ -58,29 +58,24 @@ const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { }; const responseBuffer = Buffer.from('Apache License'); const harnessApiResponse = (content: any) => { - return JSON.stringify({ - content: { - data: Buffer.from(content).toString('base64'), - encoding: 'base64', - }, - }); + return content; }; const handlers = [ rest.get( - 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/all-apis.yaml', + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/raw/all-apis.yaml', (_req, res, ctx) => { return res(ctx.status(500), ctx.json({ message: 'Error!!!' })); }, ), rest.get( - 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/404error.yaml', + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/raw/404error.yaml', (_req, res, ctx) => { return res(ctx.status(404), ctx.json({ message: 'File not found.' })); }, ), rest.get( - 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/stream.TXT', + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/raw/stream.TXT', (_req, res, ctx) => { return res( ctx.status(200), @@ -90,7 +85,7 @@ const handlers = [ ), rest.get( - 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/content/buffer.TXT', + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/:path+/raw/buffer.TXT', (_req, res, ctx) => { return res( ctx.status(200), @@ -173,7 +168,7 @@ describe('HarnessUrlReader', () => { 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/404error.yaml', ), ).rejects.toThrow( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/404error.yaml x https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/404error.yaml?routingId=accountId&include_commit=false&ref=refMain, 404 Not Found', + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/404error.yaml x https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/raw/404error.yaml?routingId=accountId&git_ref=refMain, 404 Not Found', ); }); @@ -183,7 +178,7 @@ describe('HarnessUrlReader', () => { 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', ), ).rejects.toThrow( - 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml x https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain, 500 Internal Server Error', + 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml x https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/raw/all-apis.yaml?routingId=accountId&git_ref=refMain, 500 Internal Server Error', ); }); }); diff --git a/packages/backend-common/src/reading/HarnessUrlReader.ts b/packages/backend-common/src/reading/HarnessUrlReader.ts index 7d65e674b8..09291c5176 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.ts @@ -79,18 +79,18 @@ export class HarnessUrlReader implements UrlReader { } if (response.ok) { - // Harness Code returns an object with the file contents encoded, not the file itself - const jsonResponse = await response.json(); - if (jsonResponse?.content?.encoding === 'base64') { + // Harness Code returns the raw content object + const jsonResponse = { data: response.body }; + if (jsonResponse) { return ReadUrlResponseFactory.fromReadable( - Readable.from(Buffer.from(jsonResponse?.content?.data, 'base64')), + Readable.from(jsonResponse.data), { etag: response.headers.get('ETag') ?? undefined, }, ); } - throw new Error(`Unknown encoding: ${jsonResponse?.content?.encoding}`); + throw new Error(`Unknown json: ${jsonResponse}`); } const message = `${url} x ${blobUrl}, ${response.status} ${response.statusText}`; diff --git a/packages/integration/src/harness/core.test.ts b/packages/integration/src/harness/core.test.ts index 2a214cc06f..abfbb5d4c2 100644 --- a/packages/integration/src/harness/core.test.ts +++ b/packages/integration/src/harness/core.test.ts @@ -38,7 +38,7 @@ describe('Harness code core', () => { 'https://app.harness.io/ng/account/accountId/module/code/orgs/orgName/projects/projName/repos/repoName/files/refMain/~/all-apis.yaml', ), ).toEqual( - 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/content/all-apis.yaml?routingId=accountId&include_commit=false&ref=refMain', + 'https://app.harness.io/gateway/code/api/v1/repos/accountId/orgName/projName/repoName/+/raw/all-apis.yaml?routingId=accountId&git_ref=refMain', ); }); }); diff --git a/packages/integration/src/harness/core.ts b/packages/integration/src/harness/core.ts index f762cebb56..8eba850ec2 100644 --- a/packages/integration/src/harness/core.ts +++ b/packages/integration/src/harness/core.ts @@ -102,7 +102,7 @@ export function getHarnessFileContentsUrl( const refIndex = refAndPath.findIndex(item => item === '~'); const refString = refAndPath.slice(0, refIndex); const pathWithoutSlash = path.join('/').replace(/^\//, ''); - return `${baseUrl}/gateway/code/api/v1/repos/${accountId}/${orgName}/${projectName}/${repoName}/+/content/${pathWithoutSlash}?routingId=${accountId}&include_commit=false&ref=${refString}`; + return `${baseUrl}/gateway/code/api/v1/repos/${accountId}/${orgName}/${projectName}/${repoName}/+/raw/${pathWithoutSlash}?routingId=${accountId}&git_ref=${refString}`; } catch (e) { throw new Error(`Incorrect URL: ${url}, ${e}`); } From 84bb2ed37df5312b0a0ed5b9195e2cd329487ec5 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 30 Apr 2024 02:57:29 -0600 Subject: [PATCH 27/62] integration support for harness - fixed comments Signed-off-by: Calvin Lee --- .changeset/empty-beers-relax.md | 2 +- .changeset/tasty-rats-explain.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/empty-beers-relax.md b/.changeset/empty-beers-relax.md index a285b9e7b4..bbfcef0933 100644 --- a/.changeset/empty-beers-relax.md +++ b/.changeset/empty-beers-relax.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -This patch adds HarnessURLReader. It only supports readUrl for now. readTree and search will be implemented next. +Added `HarnessURLReader` with `readUrl` support. diff --git a/.changeset/tasty-rats-explain.md b/.changeset/tasty-rats-explain.md index aee8057915..b97ee28fef 100644 --- a/.changeset/tasty-rats-explain.md +++ b/.changeset/tasty-rats-explain.md @@ -2,4 +2,4 @@ '@backstage/integration': minor --- -This patch brings Harness Code as a valid integration via the ScmIntgration interface. It adds harness code to the relevant static properties ( get integration by name, get integration by type) for plugs to be able to reference the same harness code server +Added `HarnessIntegration` via the `ScmIntegrations` interface. From 0a63f600a999b6aab2a3425a325c22e2578d6e3f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 30 Apr 2024 11:52:23 +0200 Subject: [PATCH 28/62] remove GOVERNANCE.md Signed-off-by: Patrik Oldsberg --- GOVERNANCE.md | 233 ------------------ OWNERS.md | 2 +- docs/faq/technical.md | 2 +- ...021-06-22-spotify-backstage-is-growing.mdx | 4 +- microsite/blog/2023-04-26-kubecon-eu-2023.mdx | 2 +- .../blog/2024-04-19-community-plugins.mdx | 2 +- 6 files changed, 6 insertions(+), 239 deletions(-) delete mode 100644 GOVERNANCE.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md deleted file mode 100644 index 2367dab99c..0000000000 --- a/GOVERNANCE.md +++ /dev/null @@ -1,233 +0,0 @@ -# Project Areas - -The Backstage project is divided into several project areas, each covering particular parts of the project. The main driver for each area is ownership of code in the main Backstage repository, as well as other repositories in the Backstage GitHub organization. Each area has a set of maintainers and repository content that they own. There may be no overlap in ownership between areas, which means that any given line in the GitHub code owners file should have only one owner specified. Each area is represented by a team in the Backstage GitHub organization. Apart from certain project-wide concerns, such as the release process, each area is self-governing and chooses their own ways of working. Project areas may also have special interest groups (SIGs) related to their area, but this is not required. - -The project areas as well as their maintainers are listed in the [OWNERS.md](./OWNERS.md) file. - -Each project area must have at least one maintainer. Project area maintainers may have shared ownership with the core maintainers, which in that case is considered an incubating area. The project area maintainers help drive work forward in the area, but they might not yet feel ready to take on ownership. The goal should generally be that these project area maintainers eventually become sole maintainers of the project area. This is to allow for a more smooth onboarding and transition of ownership, where members of the community might for example be new to open source maintainership. - -## Adding new project areas - -Project areas are added by nominating new maintainers for that area. See the sections for becoming a [Project Area Maintainer](#project-area-maintainer). - -Project areas may also by added by splitting existing areas. Every area that is created through this process must have at least one maintainer. - -## Removing project areas - -Project areas are removed by removing all maintainers for that area and removing the corresponding team from the Backstage GitHub organization. The project area can be re-added later if there is a need for it. Reasons for removal may include lack of activity, lack of maintainers, or lack of relevance to the project. - -# Project Roles - -## Contributor - -A Contributor contributes directly to the project and adds value to it. Contributions need not be code. People at the Contributor level may be new contributors, or they may only contribute occasionally. - -### Responsibilities - -- Follow the [CNCF CoC](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) -- Follow the project [contributing guide](CONTRIBUTING.md) - -### How to get involved - -- Participate in community discussions -- Help other users -- Submit bug reports -- Comment on issues -- Try out new releases -- Attend community events - -### How to contribute - -- Report and sometimes resolve issues -- Occasionally submit PRs -- Contribute to the documentation -- Show up at meetings, take notes -- Answer questions from other community members -- Submit feedback on issues and PRs -- Test releases and patches and submit reviews -- Run or help run events -- Promote the project in public - -## Organization Member - -An org member is a frequent contributor that has become a member of the Backstage GitHub organization. In addition to the responsibilities of contributors, an org member is also expected to be reasonably active in the community through continuous contributions of any type. - -An Organization Member must meet the responsibilities and has the requirements of a Contributor. - -### Responsibilities - -- Continues to contribute regularly, as demonstrated by having at least 10 GitHub contributions per year in [Devstats](https://backstage.devstats.cncf.io/d/48/users-statistics-by-repository-group?orgId=1&var-period=y&var-metric=contributions&var-repogroup_name=All&from=now-1y&to=now&var-users=All), or contributions of a similar effort that might not be captured in Devstats. - -### Requirements - -- Must have at least 10 contributions to the projects in the form of: - - Accepted PRs - - Helpful PR reviews - - Resolving GitHub issues - - Or some equivalent contributions to the project -- Must have been contributing for at least 3 months -- Or is the member of a team that owns a project area, in which case the above requirements do not apply and the member is instead vetted by the project area maintainers - -### Becoming an Organization Member - -Open an issue towards [the community repository](https://github.com/backstage/community) using the [org membership request template](https://github.com/backstage/community/issues/new?template=org_member.yaml&title=Org+Member%3A+%3Cyour-github-login%3E). - -### Privileges - -- Membership in the Backstage GitHub organization - -## Plugin Maintainer - -A Plugin Maintainer is responsible for maintaining an individual Backstage plugin or module. This includes reviewing contributions and responding to issues towards an individual plugin, as well as keeping the plugin up to date. - -Plugin Maintainer is a lightweight form of ownership that is primarily reflected though code owners of the plugin packages in the [CODEOWNERS](./.github/CODEOWNERS) file. Each plugin can have one or more maintainers. If a plugin becomes a significant part of the Backstage ecosystem, it may be promoted to be a distinct project area instead. - -A Plugin Maintainer has all the rights and responsibilities of an Organization Member. - -### Responsibilities - -- Review the majority of PRs towards the plugin -- Respond to GitHub issues related to the plugin -- Keep the plugin up-to-date with Backstage libraries and other dependencies -- Follow the [reviewing guide](REVIEWING.md) - -### Requirements - -- Is an Organization Member -- Display knowledge of Backstage's review process and best practices for plugin design -- Is supportive of new and occasional contributors and helps get useful PRs in shape to merge - -### Privileges - -- GitHub code owner of the plugin directory, with rights to approve and merge PRs towards the plugin - -### Becoming a Plugin Maintainer - -To become a Plugin Maintainer, you first need to be an Organization Member. You can then file a pull request towards [CODEOWNERS.md](./.github/CODEOWNERS) requesting to be added as a code owner of the plugin directory. Existing code owners of that plugin alongside the core maintainers will then review the request. - -## Project Area Maintainer - -Project Area Maintainers are owners of a particular project area. They are expected to review and merge pull requests towards their area, and also drive development and manage tech health. A Project Area Maintainer also need to commit a certain number of hours per month towards the project, and exercise judgment for the good of the project, independent of their employer. Project Area Maintainers should also mentor new maintainers and participate in and lead community meetings related to their area. New Project Area Maintainers need to be approved by the existing project area maintainers, or the core maintainers if it is a new area. - -The maintainers of a project area may be represented by a team in external organization. In this case, the state as a project area maintainer is tied to the membership in that team. New members of the team may automatically be added as maintainers, as well as removed when they leave. This process is governed autonomously by the team of project area maintainers. - -A Project Area Maintainer has all the rights and responsibilities of an Organization Member. - -### Responsibilities - -- Review PRs towards their project area. Project area maintainers are expected to review at least 20 PRs per year, or the majority of all PRs towards the area, if it is less than 20 -- Follow the [reviewing guide](REVIEWING.md) -- Triage and respond to issues related to their project area -- Mentor new project area maintainers -- Write refactoring PRs -- Determine strategy and policy for the project area -- Participate in or leading community meetings related to their project area - -### Requirements - -- Is an Organization Member -- Have made at least 5 meaningful contributions towards the project area -- Demonstrates knowledge of their project area, and how it fits into the larger Backstage project -- Is able to exercise judgment for the good of the project, independent of their employer, friends, or team -- Mentors other contributors and project area maintainers -- Can commit to spending at least 16 hours per month working on the project, preferably distributed evenly across the month - -### Privileges - -- Approve and merge PRs towards their project area -- Drive the direction and roadmap of their project area - -### Becoming a Project Area Maintainer - -If you are interested in becoming a project area maintainer, reach out to the existing maintainers for that area. If you wish to become a maintainer for a new area, reach out to the core maintainers. - -Any current project area maintainer or core maintainer may nominate a new project area maintainer by opening a PR towards the [OWNERS.md](OWNERS.md) file. A majority of the project area maintainers for that area must approve the PR. If there are no existing maintainers for that area, the PR must be approved by a majority of the core maintainers. - -## Core Maintainer - -Core Maintainers are responsible for the Backstage project as a whole. They help review and merge project-level pull requests as well as coordinate work affecting multiple project areas. A core maintainer needs to commit the majority of their working time towards the project, and exercise judgment for the good of the project, independent of their employer. Core maintainers should also mentor and seek out new maintainers, lead community meetings, and communicate with the CNCF on behalf of the project. To become a core maintainer one needs to have been the maintainer of a number of different project areas, demonstrate a deep knowledge of large parts of the Backstage project, and be backed by the existing core maintainers. - -A Core Maintainer have all the rights and responsibilities of a Project Area Maintainer. - -### Responsibilities - -- Take part in the incoming issue and PR triage and review process. PRs are shared equally among all maintainers -- Mentor new Project Area Maintainers and Plugin Maintainers -- Drive refactoring and manage tech health across the entire project -- Participate in CNCF maintainer activities -- Respond to security incidents in accordance to our [security policy](./SECURITY.md) -- Determine strategy and policy for the project -- Participate in or leading community meetings - -### Requirements - -- Experience as a Project Area Maintainer for at least 6 months -- Demonstrates a broad knowledge of the project across multiple areas -- Is able to exercise judgment for the good of the project, independent of their employer, friends, or team -- Mentors other contributors -- Can commit to spending at least 10 days per month working on the project - -### Privileges - -- Approve PRs that fall outside any specific project area -- Merge PRs to any area of the project -- Represent the project in public as a Maintainer -- Communicate with the CNCF on behalf of the project -- Have a vote in Maintainer decision-making meetings - -### Becoming a Core Maintainer - -Any core maintainer or end user sponsor may nominate a new core maintainer by opening a PR towards the [OWNERS.md](OWNERS.md) file. Core maintainers must be approved by a majority of the existing core maintainers and end user sponsors. - -## End User Sponsors - -### Role of a Backstage End User Sponsor - -- Provide support for Backstage by removing blockers, securing funding, providing advocacy, feedback, and ensuring project continuity and long term success -- Assist Backstage maintainers in prioritizing upcoming roadmap items and planned work -- Provide neutral mediation for any disputes that arise as part of the project - -### Backstage End User Sponsor Membership - -The End User Sponsors group comprises at most 5 people. To be eligible for membership in the group, you or the company where you work you must: - -- Be responsible for and end user of a production Backstage deployment of non-trivial size -- Be active contributors to the open source project -- Be willing and able to attend regularly-scheduled End User Sponsor meetings -- Abide by [CNCF CoC](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) - -Candidates for membership will be nominated by current Sponsor members or by Backstage maintainers. If there are more nominations than Sponsor seats remaining, existing sponsors shall vote on the candidates, and the candidates with the most votes will become Sponsors. Any ties will be broken by current Backstage sponsors. - -# Conflict resolution and voting - -In general, we prefer that technical issues and membership are amicably worked out between the persons involved. If a dispute cannot be decided independently, the sponsors and core maintainers can be called in to decide an issue. If the sponsors and maintainers themselves cannot decide an issue, the issue will be resolved by voting. - -In all cases in this document where voting is mentioned, the voting process is a simple majority in which each sponsor receives two votes and each core maintainer receives one vote. If such a majority is reached, the vote is said to have _passed_. - -## Inactivity - -It is important for contributors to be and stay active to set an example and show commitment to the project. Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a loss of trust in the project. - -Inactivity is measured by periods of no contributions without explanation, for longer than: - -- Core Maintainer: 2 months -- Project Area Maintainer: 4 months -- Plugin Maintainer: 6 months -- Organization Member: 12 months - -Consequences of being inactive include: - -- Involuntary removal or demotion -- Being asked to move to Emeritus status - -## Involuntary Removal or Demotion - -Involuntary removal/demotion of a contributor happens when responsibilities and requirements aren't being met. This may include repeated patterns of inactivity, extended period of inactivity, a period of failing to meet the requirements of your role, and/or a violation of the Code of Conduct. This process is important because it protects the community and its deliverables while also opens up opportunities for new contributors to step in. - -Involuntary removal or demotion is handled through a vote by a majority of the current Core Maintainers. Some aspects of this process may be automated, such as removal after periods of inactivity. - -## Stepping Down/Emeritus Process - -If and when contributors' commitment levels change, contributors can consider stepping down (moving down the contributor ladder) vs moving to emeritus status (completely stepping away from the project). - -Contact the Maintainers about changing to Emeritus status, or reducing your contributor level. diff --git a/OWNERS.md b/OWNERS.md index ab35b5b1e5..d8967ca873 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -1,5 +1,5 @@ - See [CONTRIBUTING.md](CONTRIBUTING.md) for general contribution guidelines. -- See [GOVERNANCE.md](GOVERNANCE.md) for governance guidelines and responsibilities. +- See [GOVERNANCE.md](https://github.com/backstage/community/blob/main/GOVERNANCE.md) for governance guidelines and responsibilities. ## Core Maintainers diff --git a/docs/faq/technical.md b/docs/faq/technical.md index ffd99dadcd..d64d81d499 100644 --- a/docs/faq/technical.md +++ b/docs/faq/technical.md @@ -154,7 +154,7 @@ maintains Backstage in your own environment. For more information, see our [Owners](https://github.com/backstage/backstage/blob/master/OWNERS.md) and -[Governance](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md). +[Governance](https://github.com/backstage/community/blob/main/GOVERNANCE.md). ### Does Spotify provide a managed version of Backstage? diff --git a/microsite/blog/2021-06-22-spotify-backstage-is-growing.mdx b/microsite/blog/2021-06-22-spotify-backstage-is-growing.mdx index 6cae5c907e..308effaeab 100644 --- a/microsite/blog/2021-06-22-spotify-backstage-is-growing.mdx +++ b/microsite/blog/2021-06-22-spotify-backstage-is-growing.mdx @@ -66,9 +66,9 @@ Speaking of reviewers and maintainers… ## Adding reviewers and maintainers -[![GitHub logo](assets/21-06-22/gh-reviewers.png)](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#reviewers) +[![GitHub logo](assets/21-06-22/gh-reviewers.png)](https://github.com/backstage/community/blob/main/GOVERNANCE.md#reviewers) -We have introduced [reviewers](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#reviewers) to the project! By adding this new role, we’ve expanded the number of people who are permitted to approve and merge pull requests. This will offload some of the review work from the maintainers, simplifying and speeding up the review process for contributors. +We have introduced [reviewers](https://github.com/backstage/community/blob/main/GOVERNANCE.md#reviewers) to the project! By adding this new role, we’ve expanded the number of people who are permitted to approve and merge pull requests. This will offload some of the review work from the maintainers, simplifying and speeding up the review process for contributors. Of course, with these new efforts, we expect even more companies to adopt Backstage, which means the platform will continue to grow, and the number of PRs will continue to grow with it. As that happens, we hope to add to both the maintainer and reviewer teams in the future. diff --git a/microsite/blog/2023-04-26-kubecon-eu-2023.mdx b/microsite/blog/2023-04-26-kubecon-eu-2023.mdx index 7ee549c088..8f369c2d14 100644 --- a/microsite/blog/2023-04-26-kubecon-eu-2023.mdx +++ b/microsite/blog/2023-04-26-kubecon-eu-2023.mdx @@ -21,7 +21,7 @@ On Tuesday the Backstage maintainers hosted a jam-packed project meeting. The co ![Patrik and Ben onstage for the State of Backstage talk](assets/2023-04-26/IMG_0120.png) -Core maintainers [Ben Lambert](https://github.com/benjdlambert) and [Patrik Oldsberg](https://github.com/Rugvip) took center stage on Wednesday for the Backstage Maintainer Track: State of Backstage in 2023 talk. Backstage has officially hit over 1,000 adopters and 1,000 contributors – so it’s apt timing to modernize the governance model for the project. Taking pointers from the [CNCF Contributor Ladder Governance Template](https://contribute.cncf.io/maintainers/templates/), a new [Backstage Governance Model](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md) is now in effect! Patrik walked us through the new ladder model which introduces a number of changes, one being the addition of [project area maintainers](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area-maintainer). This role lets members of the community take increased ownership over a specific area of interest, like Catalog, Discoverability, TechDocs, Helm Charts, and Kubernetes. New project areas that will be added include Permissions and Software Templates. New project areas can be proposed by nominating a project area maintainer for the area. The new model also adds an organization member role for contributors who want to take a more active role in the Backstage community. You can open an issue to become an organization member [here](https://github.com/backstage/community/issues/new/choose). +Core maintainers [Ben Lambert](https://github.com/benjdlambert) and [Patrik Oldsberg](https://github.com/Rugvip) took center stage on Wednesday for the Backstage Maintainer Track: State of Backstage in 2023 talk. Backstage has officially hit over 1,000 adopters and 1,000 contributors – so it’s apt timing to modernize the governance model for the project. Taking pointers from the [CNCF Contributor Ladder Governance Template](https://contribute.cncf.io/maintainers/templates/), a new [Backstage Governance Model](https://github.com/backstage/community/blob/main/GOVERNANCE.md) is now in effect! Patrik walked us through the new ladder model which introduces a number of changes, one being the addition of [project area maintainers](https://github.com/backstage/community/blob/main/GOVERNANCE.md#project-area-maintainer). This role lets members of the community take increased ownership over a specific area of interest, like Catalog, Discoverability, TechDocs, Helm Charts, and Kubernetes. New project areas that will be added include Permissions and Software Templates. New project areas can be proposed by nominating a project area maintainer for the area. The new model also adds an organization member role for contributors who want to take a more active role in the Backstage community. You can open an issue to become an organization member [here](https://github.com/backstage/community/issues/new/choose). ![Contributor ladder](assets/2023-04-26/contributor_ladder.png) diff --git a/microsite/blog/2024-04-19-community-plugins.mdx b/microsite/blog/2024-04-19-community-plugins.mdx index bb8b9c2313..49d1765bce 100644 --- a/microsite/blog/2024-04-19-community-plugins.mdx +++ b/microsite/blog/2024-04-19-community-plugins.mdx @@ -14,7 +14,7 @@ For those who depended on these plugins, migrating is as simple as `yarn backsta ## The community plugins repo -Some of you who have been around a while, or have seen our [Maintainer Track talks](https://www.youtube.com/watch?v=ONMBYnhxnNU) at KubeCon, might have seen [this RFC](https://github.com/backstage/backstage/issues/20266) which outlines some issues with the scale of the `backstage/backstage` monorepo, and us as maintainers being the de facto owners of all plugins without a [project area](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area) or [plugin maintainer](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area-maintainer). +Some of you who have been around a while, or have seen our [Maintainer Track talks](https://www.youtube.com/watch?v=ONMBYnhxnNU) at KubeCon, might have seen [this RFC](https://github.com/backstage/backstage/issues/20266) which outlines some issues with the scale of the `backstage/backstage` monorepo, and us as maintainers being the de facto owners of all plugins without a [project area](https://github.com/backstage/community/blob/main/GOVERNANCE.md#project-area) or [plugin maintainer](https://github.com/backstage/community/blob/main/GOVERNANCE.md#project-area-maintainer). There was some great discussion in this issue, and some great ideas. One of the ideas was to create a dedicated home for community plugins, with all the burden of release tooling and workspace tooling already set up, which is a pretty big barrier for people wanting to create plugins for Backstage in their own organization or personal account. These plugins would then have the ability to release independently of the main monorepo, and have their own release cadence, which is something that we've been looking at exploring for a while. From 84cdb92346785ceffda429fa64e35d7a6bce94cf Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 30 Apr 2024 13:20:34 -0600 Subject: [PATCH 29/62] integration support for harness - fixed comments p2 Signed-off-by: Calvin Lee --- packages/integration/package.json | 1 - packages/integration/src/harness/core.test.ts | 16 ++++++++-------- packages/integration/src/harness/core.ts | 4 ---- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/packages/integration/package.json b/packages/integration/package.json index b57b94f982..bbd0eecbe7 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -50,7 +50,6 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/config-loader": "workspace:^", - "@backstage/test-utils": "workspace:^", "@types/luxon": "^3.0.0", "msw": "^1.0.0" }, diff --git a/packages/integration/src/harness/core.test.ts b/packages/integration/src/harness/core.test.ts index abfbb5d4c2..d3d402806a 100644 --- a/packages/integration/src/harness/core.test.ts +++ b/packages/integration/src/harness/core.test.ts @@ -15,7 +15,7 @@ */ import { setupServer } from 'msw/node'; -import { setupRequestMockHandlers } from '@backstage/test-utils'; +import { setupRequestMockHandlers } from '../helpers'; import { HarnessIntegrationConfig } from './config'; import { getHarnessEditContentsUrl, @@ -59,26 +59,26 @@ describe('Harness code core', () => { }); }); - describe('getGerritRequestOptions', () => { + describe('getHarnessRequestOptions', () => { it('adds token header when only a token is specified', () => { const authRequest: HarnessIntegrationConfig = { - host: 'gerrit.com', + host: 'app.harness.io', token: 'P', }; const anonymousRequest: HarnessIntegrationConfig = { - host: 'gerrit.com', + host: 'app.harness.io', }; expect( (getHarnessRequestOptions(authRequest).headers as any).Authorization, ).toEqual('Bearer P'); - expect( - getHarnessRequestOptions(anonymousRequest).headers, - ).toBeUndefined(); + expect(getHarnessRequestOptions(anonymousRequest).headers).toStrictEqual( + {}, + ); }); it('adds basic auth when apikey and token are specified', () => { const authRequest: HarnessIntegrationConfig = { - host: 'gerrit.com', + host: 'app.harness.io', token: 'P', apiKey: 'a', }; diff --git a/packages/integration/src/harness/core.ts b/packages/integration/src/harness/core.ts index 8eba850ec2..3a61905e27 100644 --- a/packages/integration/src/harness/core.ts +++ b/packages/integration/src/harness/core.ts @@ -120,10 +120,6 @@ export function getHarnessRequestOptions(config: HarnessIntegrationConfig): { const headers: Record = {}; const { token, apiKey } = config; - if (!token) { - return headers; - } - if (apiKey) { headers['x-api-key'] = apiKey; } else if (token) { From 677b10650b806d743e0f6ad1b2718fb11d8cf3c5 Mon Sep 17 00:00:00 2001 From: Calvin Lee Date: Tue, 30 Apr 2024 13:23:30 -0600 Subject: [PATCH 30/62] integration support for harness - fixed comments p2 Signed-off-by: Calvin Lee --- yarn.lock | 1 - 1 file changed, 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 60b03d4399..3cf5a79175 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4368,7 +4368,6 @@ __metadata: "@backstage/config": "workspace:^" "@backstage/config-loader": "workspace:^" "@backstage/errors": "workspace:^" - "@backstage/test-utils": "workspace:^" "@octokit/auth-app": ^4.0.0 "@octokit/rest": ^19.0.3 "@types/luxon": ^3.0.0 From f1ee6899c91d0561ae750d5b0a82826c6458b2bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 15:23:27 +0000 Subject: [PATCH 31/62] chore(deps): bump ejs from 3.1.9 to 3.1.10 Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10. - [Release notes](https://github.com/mde/ejs/releases) - [Commits](https://github.com/mde/ejs/compare/v3.1.9...v3.1.10) --- updated-dependencies: - dependency-name: ejs dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3cf5a79175..f50de49dfc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22872,13 +22872,13 @@ __metadata: linkType: hard "ejs@npm:^3.1.6": - version: 3.1.9 - resolution: "ejs@npm:3.1.9" + version: 3.1.10 + resolution: "ejs@npm:3.1.10" dependencies: jake: ^10.8.5 bin: ejs: bin/cli.js - checksum: af6f10eb815885ff8a8cfacc42c6b6cf87daf97a4884f87a30e0c3271fedd85d76a3a297d9c33a70e735b97ee632887f85e32854b9cdd3a2d97edf931519a35f + checksum: ce90637e9c7538663ae023b8a7a380b2ef7cc4096de70be85abf5a3b9641912dde65353211d05e24d56b1f242d71185c6d00e02cb8860701d571786d92c71f05 languageName: node linkType: hard From 483a4f9425336091f53f79a6d6037a12dfba3f01 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 2 May 2024 13:59:48 +0200 Subject: [PATCH 32/62] microsite/data: update plugin link Signed-off-by: Patrik Oldsberg --- microsite/data/plugins/betterscan.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/data/plugins/betterscan.yaml b/microsite/data/plugins/betterscan.yaml index 92d1eaa7b2..852ae0081c 100644 --- a/microsite/data/plugins/betterscan.yaml +++ b/microsite/data/plugins/betterscan.yaml @@ -4,7 +4,7 @@ author: Marcin Kozlowski authorUrl: https://betterscan.io category: Security description: View security scanned vulnerabilities in Code and Cloud scanned using Open Source and proprietary scanners directly in Backstage. -documentation: https://github.com/marcinguy/betterscan-ce +documentation: https://www.npmjs.com/package/@marcinguy/backstage-plugin-betterscan iconUrl: https://uploads-ssl.webflow.com/6339e3b81867539b5fe2498d/633a1643dcb06d3029867161_g4.svg npmPackageName: '@marcinguy/backstage-plugin-betterscan' addedDate: '2022-12-08' From f2a2a83b8df7378752c0ae09bc4c23d5f4578075 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 2 May 2024 17:55:54 +0200 Subject: [PATCH 33/62] catalog-node: update catalogAnalysisExtensionPoint Signed-off-by: Patrik Oldsberg --- .changeset/brave-carrots-glow.md | 5 +++ .changeset/early-starfishes-hammer.md | 5 +++ .changeset/happy-radios-kiss.md | 5 +++ .changeset/rich-adults-float.md | 5 +++ .changeset/tough-eggs-wink.md | 5 +++ .../src/module/githubCatalogModule.test.ts | 5 ++- .../src/module/githubCatalogModule.ts | 2 +- plugins/catalog-backend/api-report.md | 11 ++--- plugins/catalog-backend/src/deprecated.ts | 6 +++ plugins/catalog-backend/src/index.ts | 1 - .../src/ingestion/LocationAnalyzer.ts | 6 ++- .../catalog-backend/src/ingestion/index.ts | 17 -------- .../catalog-backend/src/ingestion/types.ts | 33 --------------- .../src/service/CatalogBuilder.ts | 2 +- .../src/service/CatalogPlugin.ts | 40 +++++++++---------- .../src/service/createRouter.test.ts | 2 +- .../src/service/createRouter.ts | 2 +- plugins/catalog-node/api-report-alpha.md | 5 ++- plugins/catalog-node/api-report.md | 9 +++++ plugins/catalog-node/src/extensions.ts | 12 +++++- plugins/catalog-node/src/processing/index.ts | 1 + plugins/catalog-node/src/processing/types.ts | 19 ++++++++- 22 files changed, 107 insertions(+), 91 deletions(-) create mode 100644 .changeset/brave-carrots-glow.md create mode 100644 .changeset/early-starfishes-hammer.md create mode 100644 .changeset/happy-radios-kiss.md create mode 100644 .changeset/rich-adults-float.md create mode 100644 .changeset/tough-eggs-wink.md delete mode 100644 plugins/catalog-backend/src/ingestion/index.ts delete mode 100644 plugins/catalog-backend/src/ingestion/types.ts diff --git a/.changeset/brave-carrots-glow.md b/.changeset/brave-carrots-glow.md new file mode 100644 index 0000000000..b4493bf4f6 --- /dev/null +++ b/.changeset/brave-carrots-glow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-node': minor +--- + +Added `LocationAnalyzer` type, moved from `@backstage/plugin-catalog-backend`. diff --git a/.changeset/early-starfishes-hammer.md b/.changeset/early-starfishes-hammer.md new file mode 100644 index 0000000000..abe17e85a2 --- /dev/null +++ b/.changeset/early-starfishes-hammer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +Deprecated the `LocationAnalyzer` type, which has been moved to `@backstage/plugin-catalog-node`. diff --git a/.changeset/happy-radios-kiss.md b/.changeset/happy-radios-kiss.md new file mode 100644 index 0000000000..1097c832d8 --- /dev/null +++ b/.changeset/happy-radios-kiss.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +The `/alpha` plugin export has had its implementation of the `catalogAnalysisExtensionPoint` updated to reflect the new API. diff --git a/.changeset/rich-adults-float.md b/.changeset/rich-adults-float.md new file mode 100644 index 0000000000..5a9746b8f5 --- /dev/null +++ b/.changeset/rich-adults-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Updated to use the new `catalogAnalysisExtensionPoint` API. diff --git a/.changeset/tough-eggs-wink.md b/.changeset/tough-eggs-wink.md new file mode 100644 index 0000000000..52644e3620 --- /dev/null +++ b/.changeset/tough-eggs-wink.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-node': minor +--- + +Breaking change to `/alpha` API where the `catalogAnalysisExtensionPoint` has been reworked. The `addLocationAnalyzer` method has been renamed to `addScmLocationAnalyzer`, and a new `setLocationAnalyzer` method has been added which allows the full `LocationAnalyzer` implementation to be overridden. diff --git a/plugins/catalog-backend-module-github/src/module/githubCatalogModule.test.ts b/plugins/catalog-backend-module-github/src/module/githubCatalogModule.test.ts index 0f466fefb7..24ee7f7108 100644 --- a/plugins/catalog-backend-module-github/src/module/githubCatalogModule.test.ts +++ b/plugins/catalog-backend-module-github/src/module/githubCatalogModule.test.ts @@ -37,7 +37,8 @@ describe('githubCatalogModule', () => { }; const analysisExtensionPoint = { - addLocationAnalyzer: jest.fn(), + setLocationAnalyzer: jest.fn(), + addScmLocationAnalyzer: jest.fn(), }; const runner = jest.fn(); @@ -81,7 +82,7 @@ describe('githubCatalogModule', () => { 'github-provider:default', ); expect(runner).not.toHaveBeenCalled(); - expect(analysisExtensionPoint.addLocationAnalyzer).toHaveBeenCalledWith( + expect(analysisExtensionPoint.addScmLocationAnalyzer).toHaveBeenCalledWith( expect.any(GithubLocationAnalyzer), ); }); diff --git a/plugins/catalog-backend-module-github/src/module/githubCatalogModule.ts b/plugins/catalog-backend-module-github/src/module/githubCatalogModule.ts index 0b46e1a023..809a1a5094 100644 --- a/plugins/catalog-backend-module-github/src/module/githubCatalogModule.ts +++ b/plugins/catalog-backend-module-github/src/module/githubCatalogModule.ts @@ -56,7 +56,7 @@ export const githubCatalogModule = createBackendModule({ discovery, auth, }) { - analyzers.addLocationAnalyzer( + analyzers.addScmLocationAnalyzer( new GithubLocationAnalyzer({ discovery, config, diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 27c00257a5..1c65abf83e 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -41,6 +41,7 @@ import { EntityRelationSpec as EntityRelationSpec_2 } from '@backstage/plugin-ca import { EventBroker } from '@backstage/plugin-events-node'; import { GetEntitiesRequest } from '@backstage/catalog-client'; import { HttpAuthService } from '@backstage/backend-plugin-api'; +import { LocationAnalyzer as LocationAnalyzer_2 } from '@backstage/plugin-catalog-node'; import { LocationSpec as LocationSpec_2 } from '@backstage/plugin-catalog-common'; import { locationSpecToLocationEntity as locationSpecToLocationEntity_2 } from '@backstage/plugin-catalog-node'; import { locationSpecToMetadataName as locationSpecToMetadataName_2 } from '@backstage/plugin-catalog-node'; @@ -167,7 +168,7 @@ export class CatalogBuilder { setEntityDataParser(parser: CatalogProcessorParser_2): CatalogBuilder; setEventBroker(broker: EventBroker): CatalogBuilder; setFieldFormatValidators(validators: Partial): CatalogBuilder; - setLocationAnalyzer(locationAnalyzer: LocationAnalyzer): CatalogBuilder; + setLocationAnalyzer(locationAnalyzer: LocationAnalyzer_2): CatalogBuilder; setPlaceholderResolver( key: string, resolver: PlaceholderResolver_2, @@ -359,12 +360,8 @@ export class FileReaderProcessor implements CatalogProcessor_2 { ): Promise; } -// @public (undocumented) -export type LocationAnalyzer = { - analyzeLocation( - location: AnalyzeLocationRequest_2, - ): Promise; -}; +// @public @deprecated (undocumented) +export type LocationAnalyzer = LocationAnalyzer_2; // @public @deprecated export class LocationEntityProcessor implements CatalogProcessor_2 { diff --git a/plugins/catalog-backend/src/deprecated.ts b/plugins/catalog-backend/src/deprecated.ts index 72c3cad225..2d08d2ce0c 100644 --- a/plugins/catalog-backend/src/deprecated.ts +++ b/plugins/catalog-backend/src/deprecated.ts @@ -48,6 +48,7 @@ import { type PlaceholderResolverParams as _PlaceholderResolverParams, type PlaceholderResolverRead as _PlaceholderResolverRead, type PlaceholderResolverResolveUrl as _PlaceholderResolverResolveUrl, + type LocationAnalyzer as _LocationAnalyzer, type ScmLocationAnalyzer as _ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; import { @@ -177,6 +178,11 @@ export type LocationSpec = _LocationSpec; * @deprecated import from `@backstage/plugin-catalog-node` instead */ export type AnalyzeOptions = _AnalyzeOptions; +/** + * @public + * @deprecated import from `@backstage/plugin-catalog-node` instead + */ +export type LocationAnalyzer = _LocationAnalyzer; /** * @public * @deprecated import from `@backstage/plugin-catalog-node` instead diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts index 6a479babdc..d3ffa9a974 100644 --- a/plugins/catalog-backend/src/index.ts +++ b/plugins/catalog-backend/src/index.ts @@ -20,7 +20,6 @@ * @packageDocumentation */ -export * from './ingestion'; export * from './modules'; export * from './processing'; export * from './search'; diff --git a/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts b/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts index 61d319bf37..d574f3b299 100644 --- a/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts +++ b/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts @@ -17,12 +17,14 @@ import parseGitUrl from 'git-url-parse'; import { Entity } from '@backstage/catalog-model'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { LocationAnalyzer } from './types'; import { AnalyzeLocationRequest, AnalyzeLocationResponse, } from '@backstage/plugin-catalog-common'; -import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; +import { + LocationAnalyzer, + ScmLocationAnalyzer, +} from '@backstage/plugin-catalog-node'; import { LoggerService } from '@backstage/backend-plugin-api'; export class RepoLocationAnalyzer implements LocationAnalyzer { diff --git a/plugins/catalog-backend/src/ingestion/index.ts b/plugins/catalog-backend/src/ingestion/index.ts deleted file mode 100644 index a6555dd98d..0000000000 --- a/plugins/catalog-backend/src/ingestion/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * 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 { LocationAnalyzer } from './types'; diff --git a/plugins/catalog-backend/src/ingestion/types.ts b/plugins/catalog-backend/src/ingestion/types.ts deleted file mode 100644 index 6ca0ab259b..0000000000 --- a/plugins/catalog-backend/src/ingestion/types.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * 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 { - AnalyzeLocationRequest, - AnalyzeLocationResponse, -} from '@backstage/plugin-catalog-common'; - -/** @public */ -export type LocationAnalyzer = { - /** - * Generates an entity configuration for given git repository. It's used for - * importing new component to the backstage app. - * - * @param location - Git repository to analyze and generate config for. - */ - analyzeLocation( - location: AnalyzeLocationRequest, - ): Promise; -}; diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index 2438dc9009..f305bf2d8b 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -45,6 +45,7 @@ import { EntitiesSearchFilter, EntityProvider, PlaceholderResolver, + LocationAnalyzer, ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; import { @@ -64,7 +65,6 @@ import { yamlPlaceholderResolver, } from '../modules/core/PlaceholderProcessor'; import { defaultEntityDataParser } from '../modules/util/parse'; -import { LocationAnalyzer } from '../ingestion'; import { CatalogProcessingEngine, createRandomProcessingInterval, diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index dd44e20add..6171ebbc1c 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -20,7 +20,6 @@ import { import { Entity, Validators } from '@backstage/catalog-model'; import { CatalogBuilder, CatalogPermissionRuleInput } from './CatalogBuilder'; import { - CatalogAnalysisExtensionPoint, catalogAnalysisExtensionPoint, CatalogModelExtensionPoint, catalogModelExtensionPoint, @@ -33,6 +32,7 @@ import { CatalogProcessor, CatalogProcessorParser, EntityProvider, + LocationAnalyzer, PlaceholderResolver, ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; @@ -96,20 +96,6 @@ class CatalogProcessingExtensionPointImpl } } -class CatalogAnalysisExtensionPointImpl - implements CatalogAnalysisExtensionPoint -{ - #locationAnalyzers = new Array(); - - addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void { - this.#locationAnalyzers.push(analyzer); - } - - get locationAnalyzers() { - return this.#locationAnalyzers; - } -} - class CatalogPermissionExtensionPointImpl implements CatalogPermissionExtensionPoint { @@ -178,11 +164,19 @@ export const catalogPlugin = createBackendPlugin({ processingExtensions, ); - const analysisExtensions = new CatalogAnalysisExtensionPointImpl(); - env.registerExtensionPoint( - catalogAnalysisExtensionPoint, - analysisExtensions, - ); + let locationAnalyzer: LocationAnalyzer | undefined = undefined; + const scmLocationAnalyzers = new Array(); + env.registerExtensionPoint(catalogAnalysisExtensionPoint, { + setLocationAnalyzer(analyzer: LocationAnalyzer) { + if (locationAnalyzer) { + throw new Error('LocationAnalyzer has already been set'); + } + locationAnalyzer = analyzer; + }, + addScmLocationAnalyzer(analyzer: ScmLocationAnalyzer) { + scmLocationAnalyzers.push(analyzer); + }, + }); const permissionExtensions = new CatalogPermissionExtensionPointImpl(); env.registerExtensionPoint( @@ -246,7 +240,11 @@ export const catalogPlugin = createBackendPlugin({ Object.entries(processingExtensions.placeholderResolvers).forEach( ([key, resolver]) => builder.setPlaceholderResolver(key, resolver), ); - builder.addLocationAnalyzers(...analysisExtensions.locationAnalyzers); + if (locationAnalyzer) { + builder.setLocationAnalyzer(locationAnalyzer); + } else { + builder.addLocationAnalyzers(...scmLocationAnalyzers); + } builder.addPermissions(...permissionExtensions.permissions); builder.addPermissionRules(...permissionExtensions.permissionRules); builder.setFieldFormatValidators(modelExtensions.fieldValidators); diff --git a/plugins/catalog-backend/src/service/createRouter.test.ts b/plugins/catalog-backend/src/service/createRouter.test.ts index 292c4c1b7a..a2fae0e8bd 100644 --- a/plugins/catalog-backend/src/service/createRouter.test.ts +++ b/plugins/catalog-backend/src/service/createRouter.test.ts @@ -42,7 +42,7 @@ import { decodeCursor, encodeCursor } from './util'; import { wrapInOpenApiTestServer } from '@backstage/backend-openapi-utils'; import { Server } from 'http'; import { mockCredentials, mockServices } from '@backstage/backend-test-utils'; -import { LocationAnalyzer } from '../ingestion'; +import { LocationAnalyzer } from '@backstage/plugin-catalog-node'; describe('createRouter readonly disabled', () => { let entitiesCatalog: jest.Mocked; diff --git a/plugins/catalog-backend/src/service/createRouter.ts b/plugins/catalog-backend/src/service/createRouter.ts index 508f0bb3d6..774ee61a6d 100644 --- a/plugins/catalog-backend/src/service/createRouter.ts +++ b/plugins/catalog-backend/src/service/createRouter.ts @@ -28,7 +28,6 @@ import express from 'express'; import yn from 'yn'; import { z } from 'zod'; import { EntitiesCatalog } from '../catalog/types'; -import { LocationAnalyzer } from '../ingestion'; import { CatalogProcessingOrchestrator } from '../processing/types'; import { validateEntityEnvelope } from '../processing/util'; import { @@ -55,6 +54,7 @@ import { HttpAuthService, LoggerService, } from '@backstage/backend-plugin-api'; +import { LocationAnalyzer } from '@backstage/plugin-catalog-node'; /** * Options used by {@link createRouter}. diff --git a/plugins/catalog-node/api-report-alpha.md b/plugins/catalog-node/api-report-alpha.md index fb41d6f03e..cc3f7e5fb5 100644 --- a/plugins/catalog-node/api-report-alpha.md +++ b/plugins/catalog-node/api-report-alpha.md @@ -10,6 +10,7 @@ import { EntitiesSearchFilter } from '@backstage/plugin-catalog-node'; import { Entity } from '@backstage/catalog-model'; import { EntityProvider } from '@backstage/plugin-catalog-node'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; +import { LocationAnalyzer } from '@backstage/plugin-catalog-node'; import { Permission } from '@backstage/plugin-permission-common'; import { PermissionRule } from '@backstage/plugin-permission-node'; import { PermissionRuleParams } from '@backstage/plugin-permission-common'; @@ -20,8 +21,8 @@ import { Validators } from '@backstage/catalog-model'; // @alpha (undocumented) export interface CatalogAnalysisExtensionPoint { - // (undocumented) - addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; + addScmLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; + setLocationAnalyzer(analyzer: LocationAnalyzer): void; } // @alpha (undocumented) diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index a4ba95073f..7c1c8b5911 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -6,6 +6,8 @@ /// import { AnalyzeLocationExistingEntity } from '@backstage/plugin-catalog-common'; +import { AnalyzeLocationRequest } from '@backstage/plugin-catalog-common'; +import { AnalyzeLocationResponse } from '@backstage/plugin-catalog-common'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; import { JsonValue } from '@backstage/types'; @@ -166,6 +168,13 @@ export type EntityRelationSpec = { target: CompoundEntityRef; }; +// @public (undocumented) +export type LocationAnalyzer = { + analyzeLocation( + location: AnalyzeLocationRequest, + ): Promise; +}; + // @public @deprecated export type LocationSpec = LocationSpec_2; diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 648b8c5974..56478ec1db 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -22,6 +22,7 @@ import { EntitiesSearchFilter, EntityProvider, PlaceholderResolver, + LocationAnalyzer, ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; import { @@ -79,7 +80,16 @@ export const catalogProcessingExtensionPoint = * @alpha */ export interface CatalogAnalysisExtensionPoint { - addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; + /** + * Replaces the entire location analyzer with a new one. This will cause any + * SCM analyzers added through `addScmLocationAnalyzer` to be ignored. + */ + setLocationAnalyzer(analyzer: LocationAnalyzer): void; + + /** + * Adds an analyzer for a specific SCM type to the default location analyzer. + */ + addScmLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; } /** diff --git a/plugins/catalog-node/src/processing/index.ts b/plugins/catalog-node/src/processing/index.ts index 8cffac6961..4e83e6077d 100644 --- a/plugins/catalog-node/src/processing/index.ts +++ b/plugins/catalog-node/src/processing/index.ts @@ -21,5 +21,6 @@ export type { PlaceholderResolverParams, PlaceholderResolverRead, PlaceholderResolverResolveUrl, + LocationAnalyzer, ScmLocationAnalyzer, } from './types'; diff --git a/plugins/catalog-node/src/processing/types.ts b/plugins/catalog-node/src/processing/types.ts index b6785c1b91..e3d3c305fc 100644 --- a/plugins/catalog-node/src/processing/types.ts +++ b/plugins/catalog-node/src/processing/types.ts @@ -15,7 +15,11 @@ */ import { Entity } from '@backstage/catalog-model'; -import { AnalyzeLocationExistingEntity } from '@backstage/plugin-catalog-common'; +import { + AnalyzeLocationExistingEntity, + AnalyzeLocationRequest, + AnalyzeLocationResponse, +} from '@backstage/plugin-catalog-common'; import { JsonValue } from '@backstage/types'; import { CatalogProcessorEmit } from '../api'; @@ -52,6 +56,19 @@ export type PlaceholderResolver = ( params: PlaceholderResolverParams, ) => Promise; +/** @public */ +export type LocationAnalyzer = { + /** + * Generates an entity configuration for given git repository. It's used for + * importing new component to the backstage app. + * + * @param location - Git repository to analyze and generate config for. + */ + analyzeLocation( + location: AnalyzeLocationRequest, + ): Promise; +}; + /** @public */ export type AnalyzeOptions = { url: string; From 79a6358f50854b626d06598cbae0384e44c0b68f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 3 May 2024 10:40:49 +0200 Subject: [PATCH 34/62] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Patrik Oldsberg --- .../building-apps/02-configuring-extensions.md | 2 +- docs/frontend-system/building-apps/08-migrating.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/frontend-system/building-apps/02-configuring-extensions.md b/docs/frontend-system/building-apps/02-configuring-extensions.md index 5f090e23cd..4052ef47f0 100644 --- a/docs/frontend-system/building-apps/02-configuring-extensions.md +++ b/docs/frontend-system/building-apps/02-configuring-extensions.md @@ -6,7 +6,7 @@ sidebar_label: Configuring Extensions description: Documentation for how to configure extensions in a Backstage app --- -All extensions in a Backstage app can be configured through static configuration. This configuration is all done under a the `app.extensions` configuration key. For more general information on how to write configuration for Backstage, see the section on [writing configuration](../../conf/writing.md). +All extensions in a Backstage app can be configured through static configuration. This configuration is all done under the `app.extensions` configuration key. For more general information on how to write configuration for Backstage, see the section on [writing configuration](../../conf/writing.md). ## Extension Configuration Schema diff --git a/docs/frontend-system/building-apps/08-migrating.md b/docs/frontend-system/building-apps/08-migrating.md index 8bcc1f973f..dcc58325cf 100644 --- a/docs/frontend-system/building-apps/08-migrating.md +++ b/docs/frontend-system/building-apps/08-migrating.md @@ -117,7 +117,7 @@ You can then also add any additional extensions that you may need to create as p [Utility API](../utility-apis/01-index.md) factories are now installed as extensions instead. Pass the existing factory to `createApiExtension` and install it in the app. For more information, see the section on [configuring Utility APIs](../utility-apis/04-configuring.md). -For example, the following apis configuration: +For example, the following `apis` configuration: ```ts const app = createApp({ @@ -151,7 +151,7 @@ Icons are currently installed through the usual options to `createApp`, but will Plugins are now passed through the `features` options instead. -For example, the following plugins configuration: +For example, the following `plugins` configuration: ```tsx import { homePlugin } from '@backstage/plugin-home'; @@ -163,7 +163,7 @@ createApp({ }); ``` -Can be converted to the following features configuration: +Can be converted to the following `features` configuration: ```tsx // plugins are now default exported via alpha subpath From ae500129a9146c600453de465103f917b5fbbcb4 Mon Sep 17 00:00:00 2001 From: Nitin Ramnani Date: Fri, 3 May 2024 14:49:01 +0530 Subject: [PATCH 35/62] Added stories for multiple components Signed-off-by: Nitin Ramnani --- .../HeaderIconLinkRow.stories.tsx | 51 ++++++++++++++++ .../ResponseErrorPanel.stories.tsx | 38 ++++++++++++ .../layout/BottomLink/BottomLink.stories.tsx | 33 +++++++++++ .../ContentHeader/ContentHeader.stories.tsx | 58 +++++++++++++++++++ 4 files changed, 180 insertions(+) create mode 100644 packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx create mode 100644 packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx create mode 100644 packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx create mode 100644 packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx diff --git a/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx b/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx new file mode 100644 index 0000000000..e6891081e3 --- /dev/null +++ b/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { HeaderIconLinkRow } from '../HeaderIconLinkRow'; +import { IconLinkVerticalProps } from './IconLinkVertical'; + + +type Props = { + links: IconLinkVerticalProps[]; + }; + +export default { + title: 'Data Display/HeaderIconLinkRow', + component: HeaderIconLinkRow, +}; + + + +export const Default = (args:Props) => +Default.args = { + links: [ + { + color: 'primary', + disabled: false, + href: "https://google.com", + label: "primary", + title: "title" + }, + { + color: 'secondary', + disabled: false, + href: "https://google.com", + label: "secondary", + title: "title-2" + }, + ] +}; \ No newline at end of file diff --git a/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx b/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx new file mode 100644 index 0000000000..62eb523a02 --- /dev/null +++ b/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx @@ -0,0 +1,38 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { ResponseErrorPanel } from '../ResponseErrorPanel'; +import { ErrorPanelProps } from '../ErrorPanel'; + +export default { + title: 'Data Display/ResponseErrorPanel', + component: ResponseErrorPanel, +}; + +export const Default = (args:ErrorPanelProps) => +Default.args = { + error: new Error('Error message from error object'), + defaultExpanded: false +}; + + +export const WithTitle = (args:ErrorPanelProps) => +WithTitle.args = { + error: new Error('test'), + defaultExpanded: false, + title:"Title prop is passed" +}; diff --git a/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx b/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx new file mode 100644 index 0000000000..84f268681d --- /dev/null +++ b/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 { BottomLink } from '../BottomLink'; + +export default { + title: 'Layout/BottomLink', + component: BottomLink, +}; + +export const Default = (args:{ + link:string + title:string +}) => +Default.args = { + link: 'https://google.com', + title: 'This is bottom link' +}; diff --git a/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx b/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx new file mode 100644 index 0000000000..ce6365c28e --- /dev/null +++ b/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx @@ -0,0 +1,58 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 , {ReactNode} from 'react'; +import { ContentHeader } from '../ContentHeader'; + +export default { + title: 'Layout/ContentHeader', + component: ContentHeader, +}; + +type ContentHeaderProps = { + title?: string + titleComponent?: ReactNode; + description?: string; + textAlign?: 'left' | 'right' | 'center'; + }; + +export const Default = (args:ContentHeaderProps) =>
Child of Content Header
+Default.args = { + title: 'This is Content Header default aligned', + description:'This is description' +}; + + +export const Left = (args:ContentHeaderProps) =>
Child of Content Header
+Left.args = { + title: 'This is Content Header left aligned', + description:'This is description', + textAlign: 'left' +}; + +export const Right = (args:ContentHeaderProps) =>
Child of Content Header
+Right.args = { + title: 'This is Content Header right aligned', + description:'This is description', + textAlign: 'right' +}; + +export const Center = (args:ContentHeaderProps) =>
Child of Content Header
+Center.args = { + title: 'This is Content Header center aligned', + description:'This is description', + textAlign: 'center' +}; From baf298f57ec2a6fe1b43dd584cf78f2e0c959467 Mon Sep 17 00:00:00 2001 From: Nitin Ramnani Date: Fri, 3 May 2024 14:52:20 +0530 Subject: [PATCH 36/62] Added stories for multiple components Signed-off-by: Nitin Ramnani --- .../HeaderIconLinkRow.stories.tsx | 49 +++++++-------- .../ResponseErrorPanel.stories.tsx | 23 ++++--- .../layout/BottomLink/BottomLink.stories.tsx | 16 +++-- .../ContentHeader/ContentHeader.stories.tsx | 63 ++++++++++++------- 4 files changed, 82 insertions(+), 69 deletions(-) diff --git a/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx b/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx index e6891081e3..e472ab5599 100644 --- a/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx +++ b/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.stories.tsx @@ -18,34 +18,31 @@ import React from 'react'; import { HeaderIconLinkRow } from '../HeaderIconLinkRow'; import { IconLinkVerticalProps } from './IconLinkVertical'; - type Props = { - links: IconLinkVerticalProps[]; - }; - -export default { - title: 'Data Display/HeaderIconLinkRow', - component: HeaderIconLinkRow, + links: IconLinkVerticalProps[]; }; +export default { + title: 'Data Display/HeaderIconLinkRow', + component: HeaderIconLinkRow, +}; - -export const Default = (args:Props) => +export const Default = (args: Props) => ; Default.args = { - links: [ - { - color: 'primary', - disabled: false, - href: "https://google.com", - label: "primary", - title: "title" - }, - { - color: 'secondary', - disabled: false, - href: "https://google.com", - label: "secondary", - title: "title-2" - }, - ] -}; \ No newline at end of file + links: [ + { + color: 'primary', + disabled: false, + href: 'https://google.com', + label: 'primary', + title: 'title', + }, + { + color: 'secondary', + disabled: false, + href: 'https://google.com', + label: 'secondary', + title: 'title-2', + }, + ], +}; diff --git a/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx b/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx index 62eb523a02..8d03e7359f 100644 --- a/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx +++ b/packages/core-components/src/components/ResponseErrorPanel/ResponseErrorPanel.stories.tsx @@ -19,20 +19,23 @@ import { ResponseErrorPanel } from '../ResponseErrorPanel'; import { ErrorPanelProps } from '../ErrorPanel'; export default { - title: 'Data Display/ResponseErrorPanel', - component: ResponseErrorPanel, + title: 'Data Display/ResponseErrorPanel', + component: ResponseErrorPanel, }; -export const Default = (args:ErrorPanelProps) => +export const Default = (args: ErrorPanelProps) => ( + +); Default.args = { - error: new Error('Error message from error object'), - defaultExpanded: false + error: new Error('Error message from error object'), + defaultExpanded: false, }; - -export const WithTitle = (args:ErrorPanelProps) => +export const WithTitle = (args: ErrorPanelProps) => ( + +); WithTitle.args = { - error: new Error('test'), - defaultExpanded: false, - title:"Title prop is passed" + error: new Error('test'), + defaultExpanded: false, + title: 'Title prop is passed', }; diff --git a/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx b/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx index 84f268681d..e05af86993 100644 --- a/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx +++ b/packages/core-components/src/layout/BottomLink/BottomLink.stories.tsx @@ -14,20 +14,18 @@ * limitations under the License. */ - import React from 'react'; import { BottomLink } from '../BottomLink'; export default { - title: 'Layout/BottomLink', - component: BottomLink, + title: 'Layout/BottomLink', + component: BottomLink, }; -export const Default = (args:{ - link:string - title:string -}) => +export const Default = (args: { link: string; title: string }) => ( + +); Default.args = { - link: 'https://google.com', - title: 'This is bottom link' + link: 'https://google.com', + title: 'This is bottom link', }; diff --git a/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx b/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx index ce6365c28e..27df00e72c 100644 --- a/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx +++ b/packages/core-components/src/layout/ContentHeader/ContentHeader.stories.tsx @@ -14,45 +14,60 @@ * limitations under the License. */ -import React , {ReactNode} from 'react'; +import React, { ReactNode } from 'react'; import { ContentHeader } from '../ContentHeader'; export default { - title: 'Layout/ContentHeader', - component: ContentHeader, + title: 'Layout/ContentHeader', + component: ContentHeader, }; type ContentHeaderProps = { - title?: string - titleComponent?: ReactNode; - description?: string; - textAlign?: 'left' | 'right' | 'center'; - }; + title?: string; + titleComponent?: ReactNode; + description?: string; + textAlign?: 'left' | 'right' | 'center'; +}; -export const Default = (args:ContentHeaderProps) =>
Child of Content Header
+export const Default = (args: ContentHeaderProps) => ( + +
Child of Content Header
+
+); Default.args = { - title: 'This is Content Header default aligned', - description:'This is description' + title: 'This is Content Header default aligned', + description: 'This is description', }; - -export const Left = (args:ContentHeaderProps) =>
Child of Content Header
+export const Left = (args: ContentHeaderProps) => ( + +
Child of Content Header
+
+); Left.args = { - title: 'This is Content Header left aligned', - description:'This is description', - textAlign: 'left' + title: 'This is Content Header left aligned', + description: 'This is description', + textAlign: 'left', }; -export const Right = (args:ContentHeaderProps) =>
Child of Content Header
+export const Right = (args: ContentHeaderProps) => ( + +
Child of Content Header
+
+); Right.args = { - title: 'This is Content Header right aligned', - description:'This is description', - textAlign: 'right' + title: 'This is Content Header right aligned', + description: 'This is description', + textAlign: 'right', }; -export const Center = (args:ContentHeaderProps) =>
Child of Content Header
+export const Center = (args: ContentHeaderProps) => ( + +
Child of Content Header
+
+); Center.args = { - title: 'This is Content Header center aligned', - description:'This is description', - textAlign: 'center' + title: 'This is Content Header center aligned', + description: 'This is description', + textAlign: 'center', }; From 2e20518cd2d16940fff1f8069e43593e0702e86a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 3 May 2024 11:43:07 +0200 Subject: [PATCH 37/62] catalog-node: allow location analyzer to be configured as a factory as well Signed-off-by: Patrik Oldsberg --- .../src/service/CatalogPlugin.ts | 26 +++++++++++++++---- plugins/catalog-node/api-report-alpha.md | 8 +++++- plugins/catalog-node/src/extensions.ts | 17 +++++++++--- 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index 6171ebbc1c..ac869cdc2b 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -38,6 +38,7 @@ import { } from '@backstage/plugin-catalog-node'; import { merge } from 'lodash'; import { Permission } from '@backstage/plugin-permission-common'; +import { ForwardedError } from '@backstage/errors'; class CatalogProcessingExtensionPointImpl implements CatalogProcessingExtensionPoint @@ -164,14 +165,24 @@ export const catalogPlugin = createBackendPlugin({ processingExtensions, ); - let locationAnalyzer: LocationAnalyzer | undefined = undefined; + let locationAnalyzerFactory: + | ((options: { + scmLocationAnalyzers: ScmLocationAnalyzer[]; + }) => Promise<{ locationAnalyzer: LocationAnalyzer }>) + | undefined = undefined; const scmLocationAnalyzers = new Array(); env.registerExtensionPoint(catalogAnalysisExtensionPoint, { - setLocationAnalyzer(analyzer: LocationAnalyzer) { - if (locationAnalyzer) { + setLocationAnalyzer(analyzerOrFactory) { + if (locationAnalyzerFactory) { throw new Error('LocationAnalyzer has already been set'); } - locationAnalyzer = analyzer; + if (typeof analyzerOrFactory === 'function') { + locationAnalyzerFactory = analyzerOrFactory; + } else { + locationAnalyzerFactory = async () => ({ + locationAnalyzer: analyzerOrFactory, + }); + } }, addScmLocationAnalyzer(analyzer: ScmLocationAnalyzer) { scmLocationAnalyzers.push(analyzer); @@ -240,7 +251,12 @@ export const catalogPlugin = createBackendPlugin({ Object.entries(processingExtensions.placeholderResolvers).forEach( ([key, resolver]) => builder.setPlaceholderResolver(key, resolver), ); - if (locationAnalyzer) { + if (locationAnalyzerFactory) { + const { locationAnalyzer } = await locationAnalyzerFactory({ + scmLocationAnalyzers, + }).catch(e => { + throw new ForwardedError('Failed to create LocationAnalyzer', e); + }); builder.setLocationAnalyzer(locationAnalyzer); } else { builder.addLocationAnalyzers(...scmLocationAnalyzers); diff --git a/plugins/catalog-node/api-report-alpha.md b/plugins/catalog-node/api-report-alpha.md index cc3f7e5fb5..b61d1b1d27 100644 --- a/plugins/catalog-node/api-report-alpha.md +++ b/plugins/catalog-node/api-report-alpha.md @@ -22,7 +22,13 @@ import { Validators } from '@backstage/catalog-model'; // @alpha (undocumented) export interface CatalogAnalysisExtensionPoint { addScmLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; - setLocationAnalyzer(analyzer: LocationAnalyzer): void; + setLocationAnalyzer( + analyzerOrFactory: + | LocationAnalyzer + | ((options: { scmLocationAnalyzers: ScmLocationAnalyzer[] }) => Promise<{ + locationAnalyzer: LocationAnalyzer; + }>), + ): void; } // @alpha (undocumented) diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 56478ec1db..7c1fe6c30d 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -81,10 +81,21 @@ export const catalogProcessingExtensionPoint = */ export interface CatalogAnalysisExtensionPoint { /** - * Replaces the entire location analyzer with a new one. This will cause any - * SCM analyzers added through `addScmLocationAnalyzer` to be ignored. + * Replaces the entire location analyzer with a new one. + * + * @remarks + * + * By providing a factory function you can access all the SCM analyzers that + * have been added through `addScmLocationAnalyzer`. If you provide a + * `LocationAnalyzer` directly, the SCM analyzers will be ignored. */ - setLocationAnalyzer(analyzer: LocationAnalyzer): void; + setLocationAnalyzer( + analyzerOrFactory: + | LocationAnalyzer + | ((options: { + scmLocationAnalyzers: ScmLocationAnalyzer[]; + }) => Promise<{ locationAnalyzer: LocationAnalyzer }>), + ): void; /** * Adds an analyzer for a specific SCM type to the default location analyzer. From 42eaf63a7525f7bce09838f78d29abfc196680ca Mon Sep 17 00:00:00 2001 From: Heikki Hellgren Date: Fri, 3 May 2024 12:27:52 +0300 Subject: [PATCH 38/62] feat: increase default and allow changing snackbar auto hide duration Signed-off-by: Heikki Hellgren --- .changeset/perfect-beers-explode.md | 5 +++++ plugins/notifications/api-report.md | 1 + .../NotificationsSideBarItem/NotificationsSideBarItem.tsx | 5 +++++ 3 files changed, 11 insertions(+) create mode 100644 .changeset/perfect-beers-explode.md diff --git a/.changeset/perfect-beers-explode.md b/.changeset/perfect-beers-explode.md new file mode 100644 index 0000000000..3045ca7f12 --- /dev/null +++ b/.changeset/perfect-beers-explode.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Increase default and allow modifying notification snackbar auto hide duration diff --git a/plugins/notifications/api-report.md b/plugins/notifications/api-report.md index 3699aa1bb0..9240bdb1c2 100644 --- a/plugins/notifications/api-report.md +++ b/plugins/notifications/api-report.md @@ -102,6 +102,7 @@ export const NotificationsSidebarItem: (props?: { webNotificationsEnabled?: boolean; titleCounterEnabled?: boolean; snackbarEnabled?: boolean; + snackbarAutoHideDuration?: number | null; className?: string; icon?: IconComponent; text?: string; diff --git a/plugins/notifications/src/components/NotificationsSideBarItem/NotificationsSideBarItem.tsx b/plugins/notifications/src/components/NotificationsSideBarItem/NotificationsSideBarItem.tsx index 000eabcae6..7b55c63747 100644 --- a/plugins/notifications/src/components/NotificationsSideBarItem/NotificationsSideBarItem.tsx +++ b/plugins/notifications/src/components/NotificationsSideBarItem/NotificationsSideBarItem.tsx @@ -83,6 +83,7 @@ export const NotificationsSidebarItem = (props?: { webNotificationsEnabled?: boolean; titleCounterEnabled?: boolean; snackbarEnabled?: boolean; + snackbarAutoHideDuration?: number | null; className?: string; icon?: IconComponent; text?: string; @@ -93,6 +94,7 @@ export const NotificationsSidebarItem = (props?: { webNotificationsEnabled = false, titleCounterEnabled = true, snackbarEnabled = true, + snackbarAutoHideDuration = 10000, icon = NotificationsIcon, text = 'Notifications', ...restProps @@ -100,6 +102,7 @@ export const NotificationsSidebarItem = (props?: { webNotificationsEnabled: false, titleCounterEnabled: true, snackbarEnabled: true, + snackbarAutoHideDuration: 10000, }; const { loading, error, value, retry } = useNotificationsApi(api => @@ -196,6 +199,7 @@ export const NotificationsSidebarItem = (props?: { variant: notification.payload.severity, anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, action, + autoHideDuration: snackbarAutoHideDuration, } as OptionsWithExtraProps); } }) @@ -216,6 +220,7 @@ export const NotificationsSidebarItem = (props?: { sendWebNotification, webNotificationsEnabled, snackbarEnabled, + snackbarAutoHideDuration, notificationsApi, alertApi, getSnackbarProperties, From 598e8e51dd3430702f05c0f89c33215a0c49ebf3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 3 May 2024 14:09:58 +0200 Subject: [PATCH 39/62] root: patch changesets to handle workspace ranges differently Signed-off-by: Patrik Oldsberg --- ...le-release-plan-npm-6.0.0-f7b3005037.patch | 32 +++++++++++++++++++ package.json | 1 + yarn.lock | 16 +++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch diff --git a/.yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch b/.yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch new file mode 100644 index 0000000000..045e983dbe --- /dev/null +++ b/.yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch @@ -0,0 +1,32 @@ +diff --git a/dist/changesets-assemble-release-plan.cjs.js b/dist/changesets-assemble-release-plan.cjs.js +index ee5c0f67fabadeb112e9f238d8b144a4d125830f..9b0e1a156dd88cee35f82faf718d82a8a8f80325 100644 +--- a/dist/changesets-assemble-release-plan.cjs.js ++++ b/dist/changesets-assemble-release-plan.cjs.js +@@ -179,12 +179,23 @@ function getDependencyVersionRanges(dependentPkgJSON, dependencyRelease) { + if (!versionRange) continue; + + if (versionRange.startsWith("workspace:")) { ++ // intentionally keep other workspace ranges untouched ++ // this has to be fixed but this should only be done when adding appropriate tests ++ let workspaceRange = versionRange.replace(/^workspace:/, ""); ++ switch (workspaceRange) { ++ case "*": ++ // workspace:* actually means the current exact version, and not a wildcard similar to a reguler * range ++ workspaceRange = dependencyRelease.oldVersion; ++ break; ++ case "~": ++ case "^": ++ // Use ^oldVersion for workspace:^ or ~oldVersion for workspace:~. ++ // The version range might have changed in dependent package, but that should have its own changeset bumping that package. ++ workspaceRange += dependencyRelease.oldVersion; ++ } + dependencyVersionRanges.push({ + depType: type, +- versionRange: // intentionally keep other workspace ranges untouched +- // this has to be fixed but this should only be done when adding appropriate tests +- versionRange === "workspace:*" ? // workspace:* actually means the current exact version, and not a wildcard similar to a reguler * range +- dependencyRelease.oldVersion : versionRange.replace(/^workspace:/, "") ++ versionRange: workspaceRange, + }); + } else { + dependencyVersionRanges.push({ diff --git a/package.json b/package.json index 5d9fbef716..768448402f 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ }, "prettier": "@spotify/prettier-config", "resolutions": { + "@changesets/assemble-release-plan@^6.0.0": "patch:@changesets/assemble-release-plan@npm%3A6.0.0#./.yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch", "@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch", "@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch", "@types/react": "^18", diff --git a/yarn.lock b/yarn.lock index c07c71c8b3..dbc233dd64 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7817,7 +7817,7 @@ __metadata: languageName: node linkType: hard -"@changesets/assemble-release-plan@npm:^6.0.0": +"@changesets/assemble-release-plan@npm:6.0.0": version: 6.0.0 resolution: "@changesets/assemble-release-plan@npm:6.0.0" dependencies: @@ -7831,6 +7831,20 @@ __metadata: languageName: node linkType: hard +"@changesets/assemble-release-plan@patch:@changesets/assemble-release-plan@npm%3A6.0.0#./.yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch::locator=root%40workspace%3A.": + version: 6.0.0 + resolution: "@changesets/assemble-release-plan@patch:@changesets/assemble-release-plan@npm%3A6.0.0#./.yarn/patches/@changesets-assemble-release-plan-npm-6.0.0-f7b3005037.patch::version=6.0.0&hash=43c5e4&locator=root%40workspace%3A." + dependencies: + "@babel/runtime": ^7.20.1 + "@changesets/errors": ^0.2.0 + "@changesets/get-dependents-graph": ^2.0.0 + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + semver: ^7.5.3 + checksum: b7a68e28d03379bdc2a1d7171963990e1b88d0e5efca5f5ed490c0f583d66d0ccbd4c04ebf4e5cd1c38e1346ff0e5c4c16e1b4973cdd97fabdbad0c6996fe016 + languageName: node + linkType: hard + "@changesets/changelog-git@npm:^0.2.0": version: 0.2.0 resolution: "@changesets/changelog-git@npm:0.2.0" From ece858b60957a8372aa89eab2abe12e46f541bb1 Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 14:20:46 +0100 Subject: [PATCH 40/62] fix: Add config.d.ts for auth-backend-module-github-provider Signed-off-by: Jack Palmer --- .../config.d.ts | 34 +++++++++++++++++++ .../package.json | 30 ++++++++-------- 2 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 plugins/auth-backend-module-github-provider/config.d.ts diff --git a/plugins/auth-backend-module-github-provider/config.d.ts b/plugins/auth-backend-module-github-provider/config.d.ts new file mode 100644 index 0000000000..c8af7eb5db --- /dev/null +++ b/plugins/auth-backend-module-github-provider/config.d.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2020 The Backstage Authors + * + * 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 interface Config { + auth?: { + providers?: { + /** @visibility frontend */ + github?: { + [authEnv: string]: { + clientId: string; + /** + * @visibility secret + */ + clientSecret: string; + callbackUrl?: string; + enterpriseInstanceUrl?: string; + }; + }; + }; + }; +} diff --git a/plugins/auth-backend-module-github-provider/package.json b/plugins/auth-backend-module-github-provider/package.json index 65217f0eeb..0e8db4d1a5 100644 --- a/plugins/auth-backend-module-github-provider/package.json +++ b/plugins/auth-backend-module-github-provider/package.json @@ -1,10 +1,10 @@ { "name": "@backstage/plugin-auth-backend-module-github-provider", - "description": "The github-provider backend module for the auth plugin.", "version": "0.1.15-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "description": "The github-provider backend module for the auth plugin.", + "backstage": { + "role": "backend-plugin-module" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +15,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-github-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -39,7 +43,5 @@ "@backstage/plugin-auth-backend": "workspace:^", "supertest": "^6.3.3" }, - "files": [ - "dist" - ] + "configSchema": "config.d.ts" } From e4fb486a3edc86617eaccd95f601323e0b983d0a Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 14:23:11 +0100 Subject: [PATCH 41/62] chore: add changeset Signed-off-by: Jack Palmer --- .changeset/blue-balloons-draw.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/blue-balloons-draw.md diff --git a/.changeset/blue-balloons-draw.md b/.changeset/blue-balloons-draw.md new file mode 100644 index 0000000000..8208af5105 --- /dev/null +++ b/.changeset/blue-balloons-draw.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-github-provider': patch +--- + +fix: Add missing config.d.ts for auth-backend-module-github-provider From 8f6a945b0ee0b33bc32dbce0bccd5e53c68ef0d6 Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 14:24:23 +0100 Subject: [PATCH 42/62] fix: Typo in copyright Signed-off-by: Jack Palmer --- plugins/auth-backend-module-github-provider/config.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/auth-backend-module-github-provider/config.d.ts b/plugins/auth-backend-module-github-provider/config.d.ts index c8af7eb5db..e79711310d 100644 --- a/plugins/auth-backend-module-github-provider/config.d.ts +++ b/plugins/auth-backend-module-github-provider/config.d.ts @@ -1,5 +1,5 @@ /* - * Copyright 2020 The Backstage Authors + * Copyright 2024 The Backstage Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 4d15444275f26bedf4037bad5c93f73c7aa48cd5 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 3 May 2024 16:47:25 +0200 Subject: [PATCH 43/62] cli: fix repo fix workspace path on windows Signed-off-by: Vincenzo Scamporlino --- packages/cli/src/commands/repo/fix.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/cli/src/commands/repo/fix.ts b/packages/cli/src/commands/repo/fix.ts index b975203a73..049f5a8416 100644 --- a/packages/cli/src/commands/repo/fix.ts +++ b/packages/cli/src/commands/repo/fix.ts @@ -22,11 +22,7 @@ import { } from '@backstage/cli-node'; import { OptionValues } from 'commander'; import fs from 'fs-extra'; -import { - resolve as resolvePath, - join as joinPath, - relative as relativePath, -} from 'path'; +import { resolve as resolvePath, posix, relative as relativePath } from 'path'; import { paths } from '../../lib/paths'; /** @@ -205,7 +201,7 @@ export function createRepositoryFieldFixer() { const rootDir = rootRepoField.directory || ''; return (pkg: FixablePackage) => { - const expectedPath = joinPath( + const expectedPath = posix.join( rootDir, relativePath(paths.targetRoot, pkg.dir), ); From c52052bdceda72743e2d0305d1f6aff3c2d6728c Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 15:49:28 +0100 Subject: [PATCH 44/62] fox: Add config.d.ts for aws-alb and rename iss to issuer Signed-off-by: Jack Palmer --- .../config.d.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 plugins/auth-backend-module-aws-alb-provider/config.d.ts diff --git a/plugins/auth-backend-module-aws-alb-provider/config.d.ts b/plugins/auth-backend-module-aws-alb-provider/config.d.ts new file mode 100644 index 0000000000..1978e5a4df --- /dev/null +++ b/plugins/auth-backend-module-aws-alb-provider/config.d.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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 interface Config { + auth?: { + providers?: { + /** @visibility frontend */ + awsalb?: { + issuer?: string; + region: string; + }; + }; + }; +} From 9f974a05da653abd5a24ea43f7f496e43291066b Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 15:49:53 +0100 Subject: [PATCH 45/62] fix: Tidy auth-backend config.d.ts Signed-off-by: Jack Palmer --- plugins/auth-backend/config.d.ts | 42 -------------------------------- 1 file changed, 42 deletions(-) diff --git a/plugins/auth-backend/config.d.ts b/plugins/auth-backend/config.d.ts index f0ceaa4224..a7ea18ed1d 100644 --- a/plugins/auth-backend/config.d.ts +++ b/plugins/auth-backend/config.d.ts @@ -89,29 +89,6 @@ export interface Config { * @additionalProperties true */ providers?: { - /** @visibility frontend */ - google?: { - [authEnv: string]: { - clientId: string; - /** - * @visibility secret - */ - clientSecret: string; - callbackUrl?: string; - }; - }; - /** @visibility frontend */ - github?: { - [authEnv: string]: { - clientId: string; - /** - * @visibility secret - */ - clientSecret: string; - callbackUrl?: string; - enterpriseInstanceUrl?: string; - }; - }; /** @visibility frontend */ saml?: { entryPoint: string; @@ -137,20 +114,6 @@ export interface Config { acceptedClockSkewMs?: number; }; /** @visibility frontend */ - oauth2?: { - [authEnv: string]: { - clientId: string; - /** - * @visibility secret - */ - clientSecret: string; - authorizationUrl: string; - tokenUrl: string; - scope?: string; - disableRefresh?: boolean; - }; - }; - /** @visibility frontend */ auth0?: { [authEnv: string]: { clientId: string; @@ -177,11 +140,6 @@ export interface Config { callbackUrl?: string; }; }; - /** @visibility frontend */ - awsalb?: { - iss?: string; - region: string; - }; /** * The backstage token expiration. */ From ed4cd84b10ae123882b0cf549ea9f541ae7d843d Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 15:51:05 +0100 Subject: [PATCH 46/62] chore: Update changelog Signed-off-by: Jack Palmer --- .changeset/blue-balloons-draw.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.changeset/blue-balloons-draw.md b/.changeset/blue-balloons-draw.md index 8208af5105..d17760a92b 100644 --- a/.changeset/blue-balloons-draw.md +++ b/.changeset/blue-balloons-draw.md @@ -3,3 +3,5 @@ --- fix: Add missing config.d.ts for auth-backend-module-github-provider +fix: Add missing config.d.ts for auth-backend-module-aws-alb-provider +fix: Remove duplicate provider config from auth-backend From cc3c51833bf48731751d435b21a341964deb2ad4 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 3 May 2024 16:54:18 +0200 Subject: [PATCH 47/62] cli: repo fix changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/slimy-kids-behave.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/slimy-kids-behave.md diff --git a/.changeset/slimy-kids-behave.md b/.changeset/slimy-kids-behave.md new file mode 100644 index 0000000000..5e635878ff --- /dev/null +++ b/.changeset/slimy-kids-behave.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue causing the `repo fix` command to set an incorrect `workspace` property using Windows From 4a0577e0ea14c7b490e7ef0d0a459a8b375e292b Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Fri, 3 May 2024 15:54:41 +0100 Subject: [PATCH 48/62] chore: Fix changelog Signed-off-by: Jack Palmer --- .changeset/blue-balloons-draw.md | 7 ------- .changeset/little-rockets-live.md | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 .changeset/blue-balloons-draw.md create mode 100644 .changeset/little-rockets-live.md diff --git a/.changeset/blue-balloons-draw.md b/.changeset/blue-balloons-draw.md deleted file mode 100644 index d17760a92b..0000000000 --- a/.changeset/blue-balloons-draw.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-github-provider': patch ---- - -fix: Add missing config.d.ts for auth-backend-module-github-provider -fix: Add missing config.d.ts for auth-backend-module-aws-alb-provider -fix: Remove duplicate provider config from auth-backend diff --git a/.changeset/little-rockets-live.md b/.changeset/little-rockets-live.md new file mode 100644 index 0000000000..767fda917e --- /dev/null +++ b/.changeset/little-rockets-live.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-auth-backend-module-aws-alb-provider': patch +'@backstage/plugin-auth-backend-module-github-provider': patch +'@backstage/plugin-auth-backend': patch +--- + +fix: Move config declarations to appropriate auth backend modules From a8ea3c5918f8b7c5e54cad5f11aaadf11c856079 Mon Sep 17 00:00:00 2001 From: Jeeva Ramanathan Date: Fri, 3 May 2024 20:34:59 +0530 Subject: [PATCH 49/62] Check pipeline Signed-off-by: Jeeva Ramanathan From 073b2ebf638851d28dc8f1434d0b36f94eebfaf6 Mon Sep 17 00:00:00 2001 From: Beth Griggs Date: Fri, 3 May 2024 15:21:32 +0100 Subject: [PATCH 50/62] chore(test): increase test coverage of WinstonLogger Signed-off-by: Beth Griggs --- .../src/logging/WinstonLogger.test.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/backend-app-api/src/logging/WinstonLogger.test.ts b/packages/backend-app-api/src/logging/WinstonLogger.test.ts index c7173b1cbe..bec6a9fc0f 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.test.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.test.ts @@ -22,6 +22,17 @@ function msg(info: TransformableInfo): TransformableInfo { } describe('WinstonLogger', () => { + it('creates a winston logger instance with default options', () => { + const logger = WinstonLogger.create({}); + expect(logger).toBeInstanceOf(WinstonLogger); + }); + + it('creates a child logger', () => { + const logger = WinstonLogger.create({}); + const childLogger = logger.child({ plugin: 'test-plugin' }); + expect(childLogger).toBeInstanceOf(WinstonLogger); + }); + it('redacter should redact and escape regex', () => { const redacter = WinstonLogger.redacter(); const log = { @@ -47,4 +58,24 @@ describe('WinstonLogger', () => { }), ); }); + + it('redacter should redact nested object', () => { + const redacter = WinstonLogger.redacter(); + const log = { + level: 'error', + message: { + nested: 'hello (world) from nested object', + }, + }; + + redacter.add(['hello']); + expect(redacter.format.transform(msg(log))).toEqual( + msg({ + ...log, + message: { + nested: '[REDACTED] (world) from nested', + }, + }), + ); + }); }); From 0cda20fa31a4a92ad69a3a3e87d93d4ee64bb0df Mon Sep 17 00:00:00 2001 From: Bethany Griggs Date: Fri, 3 May 2024 18:08:37 +0100 Subject: [PATCH 51/62] fixup! typo Signed-off-by: Bethany Griggs --- packages/backend-app-api/src/logging/WinstonLogger.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-app-api/src/logging/WinstonLogger.test.ts b/packages/backend-app-api/src/logging/WinstonLogger.test.ts index bec6a9fc0f..d025719d9a 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.test.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.test.ts @@ -73,7 +73,7 @@ describe('WinstonLogger', () => { msg({ ...log, message: { - nested: '[REDACTED] (world) from nested', + nested: '[REDACTED] (world) from nested object', }, }), ); From a1f3cf28646d84e1ba24f31292d55e6ac11e7384 Mon Sep 17 00:00:00 2001 From: Stephon Parker Date: Sat, 4 May 2024 10:12:37 -0400 Subject: [PATCH 52/62] updating the devtools plugin backend readme to add an unlisted property that will cause the build to fail Signed-off-by: Stephon Parker --- plugins/devtools-backend/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/devtools-backend/README.md b/plugins/devtools-backend/README.md index 4439c8cd9f..bf0eb64a98 100644 --- a/plugins/devtools-backend/README.md +++ b/plugins/devtools-backend/README.md @@ -28,6 +28,7 @@ Here's how to get the DevTools Backend up and running: logger: env.logger, config: env.config, permissions: env.permissions, + discovery: env.discovery, }); } ``` From b741e21fa704ff78675641ebc506da6717164fb1 Mon Sep 17 00:00:00 2001 From: Tharun Paul <55498156+paul-tharun@users.noreply.github.com> Date: Sat, 4 May 2024 23:08:10 +0530 Subject: [PATCH 53/62] Fix hyperlink to what-is-a-plugin link Signed-off-by: Tharun Paul <55498156+paul-tharun@users.noreply.github.com> --- docs/faq/product.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq/product.md b/docs/faq/product.md index 79465cf53d..edbb1ffb4d 100644 --- a/docs/faq/product.md +++ b/docs/faq/product.md @@ -37,7 +37,7 @@ more, read our blog post, Yes, we've already started releasing open source versions of some of the plugins we use here, and we'll continue to do so. -[Plugins](#what-is-a-plugin-in-backstage) are the building blocks of +[Plugins](technical.md#what-is-a-plugin-in-backstage) are the building blocks of functionality in Backstage. We have over 120 plugins inside Spotify — many of those are specialized for our use, so will remain internal and proprietary to us. But we estimate that about a third of our existing plugins make good open From 036feca470fa144919d6c1ebfc9751d18e9425ce Mon Sep 17 00:00:00 2001 From: Stephon Parker Date: Sat, 4 May 2024 19:01:06 -0400 Subject: [PATCH 54/62] adding changeset to final pr state Signed-off-by: Stephon Parker --- .changeset/grumpy-toes-tap.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/grumpy-toes-tap.md diff --git a/.changeset/grumpy-toes-tap.md b/.changeset/grumpy-toes-tap.md new file mode 100644 index 0000000000..ff3fbbf2df --- /dev/null +++ b/.changeset/grumpy-toes-tap.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-devtools-backend': patch +--- + +Added discovery property to the readme documentation to ensure that it will build when setting it up as new to a Backstage instance From 2866e60532ba78fe0cd2051134c157d2201e898f Mon Sep 17 00:00:00 2001 From: Juan Pablo Garcia Ripa Date: Sun, 5 May 2024 14:29:52 +0200 Subject: [PATCH 55/62] add template editor docs Signed-off-by: Juan Pablo Garcia Ripa --- .../software-templates/context-menu.png | Bin 0 -> 91429 bytes .../template-editor-dry-run.png | Bin 0 -> 105995 bytes .../template-editor-load-dir.png | Bin 0 -> 597409 bytes .../software-templates/writing-templates.md | 36 ++++++++++++++++++ 4 files changed, 36 insertions(+) create mode 100644 docs/assets/software-templates/context-menu.png create mode 100644 docs/assets/software-templates/template-editor-dry-run.png create mode 100644 docs/assets/software-templates/template-editor-load-dir.png diff --git a/docs/assets/software-templates/context-menu.png b/docs/assets/software-templates/context-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4f52cc48c29cbcacb372ef20bace4412930262 GIT binary patch literal 91429 zcmXt~z7oNJ@4EKN@wl{_jSAaLUDotriS z0)n#w0{aFJAKDx7+J%t>1dfBeO-!urnwXrof??fTZ%nhWGd_JjSwiqed%T8fV{rA06KmUKf>w~lD=RsjM@T1wk1y8-$Z;>Z> zTyGL3qNS>O{JNC>?i6|I1-ZX++`OJYwhOU%MI3dH#`?`C8`>wamAJ)J{JSm z8`>qoxzO(Jl;iDHuPqeKrKJ_JwaO%*%y@`5O0(pqsybw*UNu; z#)QIS<;9$HFFe&0FSYtw@?mhn^W`;#D$il3JT5RZ9*T5}YJNXV7-v(Bro$0R1StK?5AM}nSp zkxqPId_HBcAl{+cF?-}-z>Tg=`f=+Uc3D6$PC4_;X+@F{^QS@4u&>y!guR z{J(#`|6VyTa;|^h_vrnRo$u~Hj>p|e-aI^`DRwpjbYb=tcLs*8aW_(a%^i7YkFFCs zS3@=)dn>(ub{2T*D14^=<~1{2Y4v@;h}ge!1A0}khxn$dyPRD^P#fAa{rwT!%O5_y zeO`Y7{77IRSK{9B|Hl8a8+F#Aqka?s{48|^L*zaZLoh#Wjg@9ZX7oSB1Ry`;IdW}N zXY!6M390%d@;%f8%)czYD;L29IMhe+Y+| z%$NrMS1>2?7*exIQn>Gb-|fx)!g_wS5yN#TYPnZ(jiqO_9JR#!tGD3^_7e#{We}6y z*5_ebeds#Tx$1VgjKRhB*0SYjzn~MhViKuIf3JJKYzk2n` z6d!m&U0@~TRRU%xr0?TCkW80AmhY@tTO|Bsn(X0q^-qU#uNpo$(DOn&E8$GQ!JO~n z2VR^yb!7JXmGr~4q?gOC$3MT!cp$61@5uu_N5N|^dLKxQ9^85*pwf?X0V1x4 zMt-<8hJE{StY4TMK|1{M{V7#rlZ{gzZTqWDvQ8bEjXQAu;hp0jVhb;1ygik8UMrDx z=UmO{u@`=~N)vf^&cILWB|MjJNQ}AzU`VoFKl*aCG*U7@^`BRA#FYW7t0%KxJk7W5 zmw&$R+gZ0L`%lRJu#Nx1L|Wp5KLPsp9e>c3e)8$dF^}W1k+&YHI3Bv#@zkTpQO`c| z&!gUTBS`zVDx(zz%QkOanT9AeU5Nx@)6QAcHT;3;7qp+t^lMyI{wW%fAoAsa;7gew zufAXWPvpuG+arpv;XhCQeE8FQ=TguavPkqznS9ZK6GkzeZGN-IXHU=Gek4ObP@S}s zu6tcRapO+#e*l~RqD@rKr@S9d+IsJN$KlRYp|Dw(S%;aWS%jI2nQ_shB6!i188M|& z+0d4K&tA#pz2UFK$Fc~0#5sgPQwAz}(t>|)AkWbnrwmK>>jHM^o2gT;Qe~-eH8nLQ zHO=t4n(K&4hCVgCYav-q6=OGGSAG9sNnz<7yVTMZJH1bE7wU-=v-(1|jqR6%zl(nR zEU7FBE(zWLSo%uUC8b#3wBEShee>OtxpvLRNJ(4&eCI^xrtur~=04#|kAuvEQuR&4 zzlKGIC9y3w_nr9IArW^c4j88>*{t2?yW#cWs=Bt|Rm8_*R~x)@22uA~y`Ekbi!;vz zPgojQEDy{3IC)ps*VK2_ZTSRwZTkB982BoAfrl#ljXqBmy;^i!stSS!r7lYMH+^Dy zzn(cff0+NaUBSoH^&H(jq_7gJ0co&nu-yK(reyfd{e^ox`Dn|b77n`+UxBXU+wm;e z#haYlK5-k;oia}PjPJh;4tHu}vYRtbp%Bgv)mHxl$@H*DNwYxiY-ofp*OiSTkix^P`7x$JqpLS>|}> zaP+d>%ya)sL4JQn^*p4Ac=*@Ac>^dMPc;ra65{l4aEbBfPw)K|=jHL`r)#P6_KU$u zpW5F(y7VwBP^ppAM1p~q_yetf3cgcb5Ft5RIeIzGhR6=5I7-5V(OPv{i8#@>%ppx@ z%Agk+6Oxt?Ele!#T1doZ07xNGG_B7kv@)BbSc9Yi@Jh%i&9M8Gc1+MuIi@fJut_`I zfBdcR=&AMd{Z}t*Rb8wC{ZjP0-5>qHIKXTD-QP?iy=%g-V;Q1@Vx^}grM_L* zuuk_+*DcqRJ|TPrB8mq5lsA?bICVsREU`?UX6kgyB3l2nMQr@L%C~4qt&2~e_KZ0? zuN00>RnumCC{Q^J8az^)miDOdHq?FZW*^B&)TdmL3!yzs=d z>-)|Nx^G8F@wdX%LUQ^8?T6#9nP)bY<}HEO?)snh9Q<+B*!j`;S{)$kj-{yQ`Rr`> z3^M5nYy=KjM@FvC5g>=Ji94 z6&zhZC*Ij=O#Aunr?Bmr&$3ycH7#^2!oRIj@nLDLV^y_=6Hx>A5e(j@aMw%9F`w?+Ar5(DU)CYBc(D-2OC6RD|XJec1EU(ej z)E_uAe``nnM}B;}hd36(tw?qV`_xlij$7$Iz4qZ4A)Xa9g?(kNl^T30(Cw?Y9;_*V z6(?$>7F_Y$(W#C>FI~UCS+-ba?m%$U^6q897Z|<1D!z)o&BKuuzOGO_n#Bf4)m(GM zu9tl&yZXh|m4#M-Qc^7NnLavF&om~u-Z2llD=KcdESFs>>uL~b5PgRHX84dZHZ4K8 zPwSty{z_T4oaw7{(`+6uohmI0ky>%Le>Hr^Cv3ZLtqC`RfqGPguMX>Hf2#?9ko$O= z$@Atwr4JkShrNeYZM|>*)YV$oTC{nGx54JWDSuPhG1t-e`TghNr=pbxxm zHhru52~mY8E-mM$;&V>-g8o3r73Lge_-;iASTXzCu-McvOn+meNh`wBGW$u6zurR7 z+CM}B(?VQATvFqkdpR`38^mqyrbQXJ8Y}^t+JnP_T&OsU|QthGtxYh=;(A6gpda;Vj2RIgl+TcsOOmJRa5 zoaOvm^H`&ZgBiJ~Mfde&b{#i^Ub`e)oKw&e(UO*%fFbjYH)aDNow<@2dwd-l@eeRf z80RFhn<3GV6L@#VZCY<%Lm$*dDF2Wwt{b_{3SSgz5pFiRVwA&6-dP-5D1qF842RdV z#<}Vn6D>b*KW>Pa_9XI-KB)S1?wkOQd_+L|oPgwHu60NEHs*@S9Mb;W{@o+p+i$M~ z9?TQt6HK>%5Hd3bRwhn1K&&9@qA!$H1z>9eG6unoCszMF=9ra;%osf||2?vSd%h06 zhhN}cpyiUTmo6Pg8|@yWzem|gRC>eq6ou{+$GcB0ECf{d`iBMfMR^Mx*z4`vYm$3S zKwy8~{{KHBIGZQ<|NHv}|MwA_8u(8@;JU!wn>Xx2_pP*;*J|{_#kSV!hw&(J8JV%4 zvZEK~0uG3r>JXc`u5|p+F{F=h>}}=pW23SXcPF2A$j=@>yDm6~$vgE?LgMn1w&S05 z@1<+zyih1)hA&K{)kEi!oWKsjL7Oe#0#{qeWMs?O*!`3=rP@;VYFIO;b9V>BjY~*- zhLlIfx7h6@$Z4c0!MO#$k#L2&pSH5yQVcl|Uc4;lZHiobtczwVJxxlFeIZTfFX$~s zXO<>J-@eT)q030uFs+wlIx#!vw>gHr$_vg;)+7~PG)mcFF1=1~yPR@Errc00z{P)CovDF3N&_L<%4|tl@ga~DE z4mB9JQulyBn4wqpIBdLY9GWl;1+iiXn>sul+ND6EdtijG-;Zt_xq`5b%h z0sy{d$-GAVN49n>BVQ+aa2y^?pFAG=FI4iQ?~OdUe_HtWghT*k8#-;D9n&44_s5{0 zR$9CE;LBPb>)4u*v1}+GiL#zL? zY-Aq%_!sX~6loCZq-l-F8};D|S$`q^dHK7O8m$9)_LOmg9%f^K2;0) zq4|G4(WgC1UzuTp5AKRM&VrQN>_Q`N#+QxTRmNVc+Hzq@;(dgZf69Jpo2b$>_~TXf zDc6PNo|R;Dc!O915fwpN`5CZOaQAVoE)FNN@%}ifPUUlF4vft0rmF94GqUfOeENRDiw+1!T_|dpNL=6%H9h z$d`omSbG;e)V9O8}-qtC*TuOKx} zXcadKDc11!0`o4taxQJ@qU`&L{^=t2_N>d-5xTYOVqDTeXnO7#p-pxb5^Wr$fV)-o z>m`tFOW7w7ujCUk4EBw6JN)Bo{8qs2Eg??s-8wWtcfFe+&zBS8O>@V;X@~=uaA(%s!=E5$$GWxJAdHi&BD=tj z6_p9vyq^1Ky4}KwKDqvGMk30s3f0rfG)o!Q#JHw5j? zk*?fQtmXMJ!D|OD_CQzRnvDgdNS1m!m}-*jX1dhA9#+Uz0q)zfV|@ySJvjDnVqL!r zI=Mekx$@;gI_f%4nRim!L4JW$4b)}p&iixic)h&LZUa4-fpcz}+&ICQc`3m4NRBCr zOOl>`w2(-L@$Ud1k@lvnO5hSni3l;aq4IN}zZA`Y_ZeVli#px8m_vzgposasp7<6p zuYGJ|u6OXEiQe}%n=G4VPyZ6s&>F~s02-Vo8v3N~Ah6DNS7n)KDbglYcr|OAke~xo z(&k3Ndk@JL-*xNfEG-<(s1m;S~zhM&jT#H4?6#gwlwbL_sgY zEa>3DH*MTG`opZ~SAV{wWP)NH?)Jt%Y}Q09Cveb_J2F#*2M@Q1>!w@@2P;VYcm{x% zNo?>-*vRO^Kp`chP;~sneP|S08y9Who!U$WdFA*CqXt09W}u;zL`~%Ovghswy_Y_} z^N7ua&6})YNVGML9c1>J9I?w(*0f_4QUIddMl7%)OCvWe&I!hJF>di`>7cY?h&QO-4D^{v zv^BV!x=nv%V3P>x1jKuUK0V$g{3myQ*JzDL_qc~i;vf8eY_b-QMltEJ)6)1S2n_!+ zN{jq9ik1+>`z-TenL5^I*0f`g4*JHrxl{mD8T}73Zdp$wvR?C3$~&)V2Inb~@qP+; zdHH2y*$I~aG?aDw+q^97=vAgA|F_8ETWPp#FIg|+JlMC>&(`@43% zU<$EM!S}k4gU;|mqqX|w-a=0zD-J-lc3BAx!;O5CcdwMDcMV>!!yX<@;c$O%zTCT3 z;O&HdgGd9;a^l%D z8>4{m_{|VKa;(s*_YZKKr!{55QTn5_Ct8av>b`J4TUV7A%cPOvT_po4%ikYA8)IoW@2lJK8+bRIIDrfoo6fgrg|hg&W$3cR_;E|ca8C}I z!}Zh-GZuA9(r62-&Q06RK?pr)Ln;`dcz^d5TYP=)lFj%nGO<{jA9`C@XGv{Qgla^J ze@}y{Qlqv2nk&aqzI?4A;|idPr+FM&EC8cM{Rt zKTmvKRD=_XxZc}I`t%?MA6^e{e(6WpB&mH4H!`mk9Zdz=zZg;%n?e$aq3$pbM5oF7 z%227SSq+CuQF6TL=+%&-EE<(}Ug0Z5&s>=tiDra#uBdnVOXDC2!p2DHD}^JKPajK;J~bqMcq% zgj(6UFmNKt6Ujh!`2)33(8s{sS*9piUiOHRkx2wa8Zmo^oHo)?n<*6=h(^_hR%L$~ z+IesKkri4ETy}G?L`D1F-A*2v?bdzjBk99Z$+2o#al*`sFv_pv9q=CfH{tHPVzN9= z3GhB|jdjfJ0!C474m#a3got5jdhc59@^*~F4N#HUBKXerF!`cZbz{4U@bB9;0!@d2X)=Ake(w^xJ|@UJKx; zr4gn_rkv#>L}Ev0ep?LHy|c17ZNX0a+p@_S5!-F$q&kVFZtvThSzC@h3Opk~gPDbO`hsobU_OQQ{jBgRgs5OpdEpv4 zA{;6Gq18N}eN8%MP)6K4h`pX}vyW`ZKMHolkQ^jB5VE4a4@3+qFH7#b8gLpJn@(g) zk2MIw4N79$xOBAe(by2p&r=WD_em+GPt_$m%sdp_@Jch$3-)qUGg@3F`z|23_$Ztt zWrH>cyLEuCe7_og>nMJW0jAJGC3nAJ5~te z`=(O(Em>=(&df=!D8-)LgHAbuvE}}6-kDsdN~5w}uVntUb#2rI+9g~WQ;|D^Ix>C= z3M)?o)Q5svTAEQ{@(q4b`G@I$q;oF-v1VtRrC1-0+6`D`;J}ek7ktXr8Z{_u{{aco z?-QR6CXCjiu=pB7ri02x88-T7e4DR$vs zE>@1xy?oV7NRzm>VeI&SUm!a)kU6}I?TD)9P%}3M*SxCbJJ$T zDIP!PhZYPPp(E>FrwF-B@$(+pFW2LtKId0Wkow)XHj*#=)|B0H5G%GdTh|nsrM{&= zb{Vg)(s||@-P(NcStjLv&xCHo&ojf2nIp?W3pc!SBIDI0MqV;39!aJ^6JUHl7`{f^ z{S(jpG^%V0IdNf_kor9rkMj>skOAGOyisWB@zr695IzXuDSpbh-jTOYL= zcy8VCZ>~>`{dz${pv7(q? z%cdDDtdvXbtk{X$jx9!R>UZg`>mmv^kf90iO!#aJ@Mda?RDxe8!Fjijac@WhY|zo= zORSJPqOoL}Jv@G6?;t48c6zrZ28}s(x)FqTL@jJ&)=5XZ<|6KdD;61f$K1AQ0apOK z)h1{QzKx#Y%&pdCS3+I!pu6Dg=X7v{iQBHZVRxh09NiIO+9l|y?1$~-ZQ>aN&`UY~ zjw~y1D|?FYLX5jeu|zweJ%N9x^tmn@(4nQx@x)2UuQWSG@fJ@hTRE6CXLj@rdW}S= z<%qiugqDGOmW_hPNId=xc&d{0=?VjINiJrd9mG?SmTz#6-zp<3SVovD$GO-vAY@jH zdW$qp|4Mp!D@DqoOXauYx}dnY=o(RSSsAB&LNLX23p?r>BPAfui)ZK$E`a^X9pM!A zNjS>}?-|n$Jh}OO=B#HE()eqc|B55Nd!skbBm87+P?pbj{j5d3SXP4 z!-%=QO7&5lAa{|he5+)Kyg||L8y1+-DQ82saJNr&YOKab@oL6`VR>lRecfs^!R^&^ z!gLpGw*=k<7qZa(<%KgUimeXmqRd4Lu|8O)EZb%b0fcvw=Rc(GG|Yj1y<0h9|I~KU z7gyQyoL;@X{|W@wUUf^4`cL$i0<(EAmpI$rSYNc0SX+@CJ4B_Np;RS@Wi{oKhe25f zA9K<+u>)&O%>qguTt$+^=9We~%)3RB+?KuJ$ZKVl^=zjCJ8I!vRaUj`RlS^!0*$pj zj2pU|6U6lOb>9ePeq9zeXFe?_Pxbavm&GAnXNH+a^_X6!?pX3kp2qyPW`O z5@p&^x~f0ly1Le z`a%76E_MIl4E5IFl85Sm>s`lqZ}Y;80q+dg+A_A@0~X0}cPDk~hiNrTsbOwOg#K@b z!ICZhtk+mPs-lIUQ)jHj8eZDeD_ySTYEvc}t@k}I7#hSUMIiyOs-rkn(PT*Ys5 zz8BA$@o5C8bL=1VZbB8H6oYKpU>@E@feKMpm_79<)H{Ltsqc=sjWLrPBdoXjKPz&Z zOHhqkD(B774~nB~@iNrubS_aBGalKH&X*Y{xW3eqGYhlhYm(wWfI+1U1y0((Ln}#J zGIsIZ=-=kf?ZiL6_v4wiv~5}5H~GHFcB>M|`px`*r-b9Ssl)ZXDR3_tiqb@PN;X6G z+Q0is2(XLsvwKDny%%N@HND_XZg#n&8yc(6y7z8-CI~MfaZSdzQS);mVCU;OtDPM9bZ)dx&(_Yu*4MO&+Cp^Jreh4Q z_*(p@>A(LZiclR9r=2j!CVqZVw^lbaUdZ*xMN()i-SNgP?v?m(L_K4CrvpU_yCka! zHY^9@V{-uw^kaxaje0qoEMSfklmUES*^UKT=Fm4$=R7M5nW3o=8pwlM&+Qw2BpmIQ zL3o(u7r6Q`H?83{c5^|RnAtrvG0|;{_{m;wfbZ^PA`#RK+$-0L&aMA~hw&eISqbHs zyGBb#FLO>HhOB&PyeS*}Gt{{)S_|91JrnK^ghoTXr$6vP#e~?9PH=rf4v5r;Roub; z5N3Q{SMT1Q)8P!sa<(>TaBjY#FSkJy8e8^q;wKGMHWxA=z*r%^kq8Ch;pprn$gCT~ zb~QuBp4eesd(Uzabx}K>u2H zmbj6tQu3Ws1ay=lpnSy5dA`+199^=*Do*gS~IRHZXWiq``i~ zJW?0RJ#B@}%R|qm=%c-xhHW+b1z|^o$}eBX7TBE7j$0`-pY>*I;##W;$IBKpKi0p* z^wS3JHA?l9AL@V0VK@5tihDBLaH7zGve1jXU$ru*J=}|QSZ&~5lQj|rX0_QA=w}9y zzi+RnZY2Th?$7>c^!o&y$<2SO(^Vg}IJ#d~z$X7F35IJK8Ju%@cB8sf=N&H&7Y`V; zS84OgHTzAsd2lpjAw&|?Oh^98BzU|2fw`UVE|lx*+Kt``w+sb*ght%@2x?~Uqu+i( zKy9rsk|5}CmhqQoNahL3!P!+}+{=cng`GFX1Cu?Nqy?sh#p#|u+E!nl6@nv6cpF5n zj$*%{>@_`~>&wMwSMm+BK3Qfj+s^tgsJ#KJ?TUH^k+@a(;~|_-E!j7bl0Im)Ys;*h z+y5uwXD!DyX!DaZYmhb`*KG_2hJ~ErhDQJH<+ILlx zu${7C+jl7;n3;2fp{Pz1!KMjQYh>3eT0AEMNVE%b-KJ$}M7^>!77HGm7W#Sr?2BNz z$62kR-ckukX_Kd`y5Vidq-I|*dWN1QZ*^C=Yj_%1z5O11V09ZXfOTeHU4D|q-jWdF zEKzM&eR;=T%!WQQ4PT}fJW18^qrqfH%y}H|6Oee1!ZETlbp~? z_|A!C*={WGy8Dd&qi^(JS1G56t3sv zNxtfd-iN=%aYj?=u65Dtdnf+ErHTW(?waGe-qdzPq-b_0M2lzjw#J7mO$fCvIa_{6wVMWHb0=GO$VxXhz=XNx0GXw6q zZ9J+I?oJ;!5wUVFku5;Z9ee(0_jOBHJE;;FL{qnLU>KlFd0E^HxQj@G8WeSuQ`n-# znCH5^X%I$C@Sd>M-Fu=mfnSr6xaQ(3#cJJc1Vt*cy;#}dX?)&Sd0&T0U&gAq28H*E zF4n!&-6(ZAe=2?E_k?rlnaZpCWheJ=3{=eEn#^bMJ$IsFViYUq z5{45TJqqw2WJ^H1RjVl8owX|NN!-Wd*clxP>M_b3<-0APTO=2Tn_i!WwiOhX+sY~t z3UR-eS&FOHQEW5)KeC~LY7>c|Qfa2cFus>xvC12nDd0-A(qa)(u=X^%16;UCj!-ZU zXm@-W87d+^XuB>B{DLhsUG_{(3+t3Ckqfbd|8E7>Ys{6yETaT7mbAk^Pp3UCr{3+m zJ>HN^<7un{7FKJrPhVEOe#3Qazf^5R2?7YffTxyLbx`Fl3UY&a9sjATHId5WMS3;=il24zM z7zO;wH0vs_%LRaWF4R1uokA-`SZ>&_f`Dk$*RqiYwXSssh8>4=n&&fmk(avN@45BG zeQXoAX0E3)Q>FjACC+&`FZa7Zfvb}uxNSIox*RktOC87jnJxsy(cW}_h4=11=s8M8 zYrc%?cSiZ*&Z`f_I{E*m%a6f;v`>gl=J`XayA`eYS=#T&^ zp3VA2ew(jLsd@C@_0ibg>F-v%H{lHl9?`V3l_OZ5Q@g}7ZCU*bti@GZw+liSSv<;- z(E5ilXkX!mbbx9*-T5MrXv>^fk~&=KI)Pmv$$)t~-V0Ls5b0r{M#s?W*v1$`jw>zq zuIB4`PA(1H)*M9`uaSXb&|m14S(x;MG02+#5;(HOh@d__r)DIb3}Oy#A%Rm<{e=71 z@{1pSp+Li|P0vKENkK-TkypL&1a&=v7ApG6aq2XV>xBFo>v<@3wAvk`j=$bLE5I!x z+`x0st>uNwZu(E;L8`hdZbIJ4ovKGQ7zUJgD$H3wbxEyDo~G=I;bv};hbNlrcu63p z1BObeEe=T&C*?qLx=rpqgFdSzXCujx+4)8l^W%b#?#+Lf_>`T^@SBPVm^dHuwe>FK zEZIsf8d1*3dmzXp7Y0$?RGNlHKqudIDf~ zH-W#-5Sr%xW0>VAv-iull!p+!ABFE=3VdWa4Xa2T9wp zYN8SM-R;3Ex+;^R238QPl}xvw@4xDF$E=$LOVj4QuxsJzmU%k68La{OycvP*7CqoK zYqCq?2X>Cbod~^zG9c>LXQ4Aw-vQBSEYw-D2K0B_1u!oFiX}Wjwr4aNp_(x#Ch3cr>}Ia^Zd?>dUAlr1<;uqAfj4YRU*%>gcU7 z>8}I~~6RYdd$Izx2G6lFy!@l+0C(w{k1!HaCc4H+w~RbseLTr~H=x zeW0J#dmA?1nn{#0>cq^QEf-P`4KhqgW7VWN?0zEk%8?)5e7n*r>(DeJ{BRz^Q#J;hu(kUV12*tqSVW=*blcn-SKhSfhJ8<9;IhDhs*`DB;0rpN$@mdvph`K4OT> zg#6=*>Q}b?je`{!H2vTUPFLyko!8_rO2^J3nP-xI4N&I4pgQaSXC4Y;O;-frv3q5^WRR)=^#^0hv4 z#UQL!sSqqY{VtoSQ$$HV!n$ATsgu`0D!%Gw)Na{Yc%G8*`qh!}_Y;_k%G zJskZl^ldRx3Rb+pU*R@QV_1tX(#`c0)rqEIx4YPL=K2u#R*-oH6yvw6e;otme&F6& zz~HB4mO*_Zx|JJDtz{}1y}O+)cdZ|?M-n@lQ$?Y2145}wM)Dd7+T^g?;Ro`LJ??lUJ4EoPbG~fM zahS{ddR{!C^z=E}a5!g*v%U2?2qDCp6q8)LPPO)M&g%}VhH1#ft0u?{#WQ@|pV{S< zJc;NOlcce#r0o?3X{}kOe>8xY#k)+od9{5w`OB8m-QZd>F1+lF2+gHU6|pPXwTH#B zFVwLwlDU!`Ggd8*+^w(`_OABO^O_IA4);2imWyP%*DXth z&zC|1vhu}^+-moc_dMb^4Q@wz=$9L+`4OUTE<7<}99<1XI-P3=T)G)w?1gnO8iFwj zQ+Hi6rcC`0URz8$=Bb^-e|bei#{FL|0}9xKMYlcE#ilrlJ#1SkVPU;_R<4GHPUX2` z#o<@_SY2C}(WPIj-N%<bkH#jGntZ5)*2`vLxt6ZO0+;u_k9^2@;7I!O3$WpoIONjH76i9Jp^X?4rLU zO_+V%1&86XrnJt1ry=BStgHTHH$4umQ&0~(;g%LXx5x+PN)mO!H#ji%kgm-+;w9mB zNS|C@Z@{7W4+~RA{kxF7TR#)|@f(27z%7FyYv%E_pP2F5X-qD$t)b8m_lfXixAboX zdkPksnPvH$FzrUZbPoI%u0Rl?e2HPI&{O9$QAF?VonT$xLHl`;h22Di`?yH&UUXvm z(L>4{s@6+QPYwX+t*H=TU^mD(zTA|RSO2V!Q6s~;NF5(gUUYr;DN#4~( zy!|)5u2hOaw3t#{x|GO3%P>1s3(DZr8fC5fp&;wST780^eU~D^f&ZBE0w2D+#b;#i zsUCYV<$nf#g#^Xyy4*(kH=)gcB?>@G+*7dc+4+-Q zjqgFFS%~0d?p=-o$Khjx(&`zjc;$sBplMRyPY|5{I-#w$&~zu)zRi4KIn-4IpLX{j z)fbT-joT8GnYUlt?&y85@AXzm9~8X(Z3D5jN-uewZCGAmwIr&Mo@{djxU~t8!O~S< zU&w1ikSp`vg|gDHbDM~OEup4Kq4wMFc!=;P;fDLv*5613g4zZ1pA=lQG5AIsvJ@!s zd~N(m)gKbS%`m>Ux(=+In?3qpw}E?a#0{HD2X|{l=JhtFn5bGq%CkDDg@K&Yc9>3+ zyk}1#c#6VUbKWG|=@|`C+iUa(QU7N}+h`fmT_)>Y$vVjWhK}?|4RyY_^s9_LM{^Dj zPWVr92z^geIWX^7g_cSqD1{z}|75`+v*1>I{;Chst2YC|) z$~A8t`YQ;Rv46Esr|1f^DneUbyK9rD4?^{XTI?$yd|^fdmar-dhCF@?W&Jow;|6!t z;bBLNq+uVtmbku7w@%&&Fht`~y~vJF1^erLqwTG^K3?Hra&uI`0h4`SBer{D+X(w4 z|FaI}%eeZ^)@nN{L483l^mix!56`r0mEB8Qq<3<~R!0*-jDEj~Fy3BdYW_rto5X?N zJEO38D|?gu!h_s4eQ?2H`03kSSzPa-og{XeepcwpGGu>#N7;*2J}0y+xloP=JvChj zDf=fR;)(?o96tAbI$^Lw%NT#4-W+|5uaCc;$_y#lb=ml_gsUK`mGYL5ZM8{5$n>oB z7dp61>FpGfzbwA#TW>eAlkCcVb=FHpq2ubwlOp2^CgJVC^Rp5A5_*^dh4-KM#hW5} z&%{aa5<~+H5%CegY{!!+6ySUc@F7ppeIN4oXkhZ>CxcfC|96D5sZRvj?g|-mg8$w{ z*yVUT3MQ#vB`Z;%TUZoMYa{!N-eh*I$O|N4MRwiy7>BW`77k#^p_p-N6f;c$2hqG) zb%fzz+V+yTjH<+0mpCHL7o}I}XN*-3azc{QsAq6)`^+5lheV&YoQ_n3&Fw>cyHZ?t z0qa1?#z{i&0#Y7#%jBtpo5Ub(()4RS5e}P2d?jk)AWT{F*LIY9M^khgUqMcTTF+BG zNY>f{ay35=`z?C`68iPs9^O~2`Bj#yiY_MnGuX*R7udJTmBdkw`j<|d5!?q3-7MMt zjnKAQ^12nOF11y?TA+=)U%E_+ZKwpkJE3_0j4IIyS}NU`pHut=3wsfAgl3P@L0_-* z)0X|V0Y<%~Jtf#fJIY)|?y_K$P+&N&rSE{McTh5qLWf)4~MAIukzk# zcZ&vY%Eb*%AHu)E&O0!KsYf-xbftm+6lbl_=6spjH#scH^!L+cSTBMO8GMtRMsjyW zFD>UbqF7wke&A(Cd3SGg|Bu?a2$dzpqmw6iQ_p)tKZ^j?$EBe2SewuSkGuIxm0kz0 z_Q&`aqc_FjXUN)QxGP(mA4K;m1W_C2&rO!Bzln$gAbIK&BkQ+S|ExnJwy$G;4pAVp z{vK9RI0K$E;52z^XI~EG2t0;b!BFo!789}rcvliEcR-2--I3hNpsnloV{)gzx5Ecl zyeoEX6SwCG{7uLzI^bs{S79-*DM1?Sin*vpHC?*l=*!UjJQAPq2a0e_GB#~U0u|cU zZ+M(Qr}qv2hI$vD)V)EkoZ^Iwos{r)nQiQN*5mEFWI8tH3Q(#{YW`Xh6Rp!xJFly; zf*qiQrcb{_*zFou-eUEhG40+4FEA@6OQS>?4%^!kvwK95&X4;qrmJ?8nIeJH%(>Y& zk+`5H;qbF#XqkI%m{ib_rrENG20wx(2bR$x=Z zl6~$s_aP;>t7SUKfJl`JS7taRL!9HPm*AD3V1<%Sx3C!X?5B8Bv3t&BkTmf;C2Q9U}?YQnVf?q$3lnMeT?ADBJOJ71I*`p&Sc zX%*0bzK84Hj-3c~n9bcIT=iw9?qU^g7Y{>{8Zo<#Q<**d+j@If+UKl)IX5^w^OZCV z#pN8WW*&tAk=tT^&)S;xa&f5WJC#PG1vyuq%~hcK%V#1a$yvp4f|PCJ^zIUOqQv(+ z;X46@InI&mYD%G~aacKU_xIuI!q1Vsc|Lr1&An{^JZSl9QD_@qq^lGqIb9E z{`~(+3AX0DE##O@g@G(X0On-wGS@JR5O{o>;xaoe2QI|i@5_zN6pHR?*?kC^Aut%)=ENGh_v{t!CArJ_c z7Tz>~TTNtsF&H=P;QYh$PM1*_uY+(gsH%e<2G3m2RSZRbywh7)!OqZK# z5bFCT_=z4IoYf+=xIKnn8wk+}_NVqxuvAYMEN$9#?OBx>-_E`>7qYfi#onv$?Uz09 z6?fXUjL2>-smx=VO&qQmZF0f7kNp(YDDP*Od1T8jVq|EBDmqhNKht_bu|G0l7x?O- z;YX2dYG-ef3#&677lnGgKu_GL`T|tMV$3@{Ige*cYeWEkgMs8umO3 zKe*h>mK8-OHkH#yf1RcJUkudiJ{kd{xdFk$HM5&M;Dj`K~2olIcMo z4a#EmHYSB^yiB>I;xI{V+_U$)M;JvwlAInUMmE{2X#@H$YzXN&Sm~VH!X}@gvp6rg^g2D<2${uR~uHm9}C4__q%7M<&Nfp6B_0? zlc6XtTnv51Z#QE*S8A^^QA45rnMW)29Mw@#t~m|&c^V9;XI$-FuA2G=TrtaZOxWDTy1_eoLLGB(KP`*@6XvYK;^b=U}~Em_MA+_{O{Z)0wH8gdADQz)sPVh{70_Q z>`9AX`odnuon+t_YkD`~cLFTSr6i5J;MkXY*>nRMuO_m?MsWOi51C*8yUZR%BL0kp zFrIJfFe14<^tjr?bd5!8UJPZ&nz3kVfnMSM0fEcLLhQJ{+vwaPkPqKxw-BSbmvYzb zCIs>4fbgsM+yd@IE{nB08}G!I$lE_v1SS6XMjwZ*RUueTS4+rSrr9bfKd`6ZX&W zqe{RTxveVFY1_x9^>;)86z$tSn5Fvh^1VkU4apau<5ZHsCSN_o>0BS7NG}M*`ZlPM zhVXI4P7}NBm0h`Zeim{G6(ec97Xhu}NZH+3z)_owf-i(1lgb^`*GUlrJC%~V03wv( zv>mo93Ke-kk>ECjZil}3^unQ?!UGJ_%1LL7DI%*ed2MCNR< z+SB<)cGmS@RDt}7vt#itj}k~ay~u3H;mWs5&nfAYC)>CCJlDfUibFy^D$(eu%ya*b zsdo=&`j7wrI}0I6<+xNrNKzqVm82+gTq3I^Ni2ko**a3fa#mrLlp#b*1sww3m(2xP$lZp=xkPaw>SnVwuR92$bLi zsKsgN2~y2!2j>jF+uc_OaSfEHO8&M#Y!|e%qM0Z9fzTnZXNaJTjGXsf!)wG=(Cet?(5ZO(QPQ#P&>t?m!wo zRQ^p1(bS*8T%dSsw$M&fPs$Bi9jY`U&bbu6`KX^Fy&#$i%jIj*WWY^;{M}#M~ z{9-feV8v!lD#R{m?l)KEDeJ1QC~dds2XgtB9^`}X^;)rdRWl!Q>YiaIW%mO`&7N*c z&EVyj!tA0ENJ;8JDh|=_A zu&`9Jdu6<2lrVIC%zyk#-S>s3#yAGv=3GDf`GQZ7Op565(_8qiD~Aqs?f*0bU7+~m z1M?uk+g|$Pix}T1t$p%~(<_qt2zKVonK2wC(o5Xm-i8Zkog(ubb$6et zMQjUL(nV%BtKq1VLMjBs$P+C{&-=G$`Ue8LolWc2W|E=%b}Du66yHR?7sp^}s(*rB zM7%f3!T{wZ+e=&z;S4#iE{dB63$V0*S;ZJ=SDE}XtDsGu@SF@3x~nsUDuvVBa#Swf zss0twv+SkC0BYB$74)%Z4KMnKcp!gG;A;+#7Y&Fc`Q9AKs)|$TLOGnc%8=S=sOwH7 zu4q&AAy-?}d;7@R%v11Bz}wbD%G=R_jdM}bR-QD+%BCSJH{{n_uh~h=d_m*&c-jm@cBGYT|4{m8%lr|^kZ+7u>Nvl4sKnI}o*zb(G-WG68 zLe$aOghRyM29fq=g^#$yvq}Hfem20QcpB+`CqEczM0ob4V7`fE5ZBafl8xq@3~}sa z&>#j&EhLQ}z4A39Bkfzhe)&87A&qfJDP1LF_uYbH7706l*ixUd&ShTXhMXN;GRH}gkv#hmx@_* zNr`895X$Qaevj|k>g|IfJQK;(t3aCw*xpb+tJ5(;(@XqU^USK_$sy>3?rG|yx>RDQ za5CwCKCDtOQ*HAh?0W`gG^m0;Lf-vPnPGJRb0)TZQH5-OT%Sf-NvGJ8=~g;-PjFjk zH!S{L$vtzm!O8Q}s0qY1celAW-6sKuRI<_}Ka076-^$1ji>edlsu75I2@L@6FeE-C+`T;>7R;YV^$~v2hZw<>neJ zacuZrqrMi#szsSLh^4eq0^kK|_3xF7Ny(f$58iTU6$x>NRHZyf=y{Wx$kV z3?r0kmnKy2neRe9q($INd3l0Y2xCHB8U}q-%8t+mpi$m~|IKeLbf|9p7ona{(DwZ( zX@6AG{w=IM2#i|L7P^i!`P13&H~26Yqxo(Qa)-+?_Z!daFd zoU8NI!T%;RMcoFIl&5EsRn8Kn!#oJactgq&^5d)76{4VM&~PsG_eMx`91x#sF3rfE znk=xC8(v5;qUI8nkGvgptw}iCZuz^m^)1}__d+H;aZvZ%i@c-P zN~ej52ONhznbG}-60;)*UFRc(BbdCBgn)F%V>V2Cl<~w``(m$pU(E2Wmj1}iLA6n$ z^_n)}V>mkpYoRuh&sc2kTeEh#HJ-YW?OmYJ(c3&{@WBY%g*w`F2pv7zi5M_80u7#y zvLxR^r5|egy=n@ufi#YW0N1jk)C4#)Yrt}MwiPzgiMYBlNiUC<71{qa+Eo#cTmD_Z zf_*eNv;)gfqzhHgdEVoTF+#2$$8u9<*s%kZbsb+ z&7iw$+NUKeITukc!B~u&tN2uC!A!EOJPbzaTVcj6r>-WM^Y(&Rc8*?y(3w!Vfpqp+ z&PXeNA%HllGnMkF>%4Izr{VGFMWxA~bBOPmi_$imW|Cl1)uV;+>bEwmpe#UKFiRbNt7qjoGuSR{(L_HJ+1YnMhw)l=z1?T+~cK~8H z1s$z4VyG)?N{cs^M?2Awx?h6drl4Q=y*w++ZNB>y@TA?A9fZLj(+vL5i`72;+sDYI zzyX+N(z`|I4PM{k<2OMQ!FO+iSFU*{*hVt9O+9$1e>pn(-|)QKQh#9PcJ>-&2bug{ z_t3%pUtTU8+Mzr3j^oZKZBeqC*2jdu+K=aEm!2!mee&3X73pgCt8p3af<@}N?%otX znfqTwM3uaN+Kw8+fhj+t7bxve*{U69=P%TpEm(LpY-3qElejpz;H~Hvi`!VsmS``& z`D6D87eWMnWH573l(l}|3byDnkl(I!e|h$)I_hAyco7yjI}+t>(-B)VKOG@+%{0-+ z(?e5~GqRm=STqAb{O2MIr$sk&7#|uvKaanrAJnv;4JgrZC_^3=`Ze>1mwP+e1RjrR z$*rxeS*GRFDXLa)#4p|xj=-Nd-R#}pZL-YsSv2wgWT?Bl=W4c^1M)bkiusd9h%uici9 z_&vY*&Yr-ALFRafLAL46mGl(i93MjJXMp569q5XB^N&AG67sNHDt>lvV`@jM(>TLC6QSg#0-OvT;p|;c%s4r} zG+y;t9jqIsZTIWXgeCP57JS?>pepJq%*aj>t@D{Gt@Be4y0baE53x5oqyYeR3ktc4 zjGf(VA<d_NkIvMEx%yk008*7Htp6Ra`}*K`Jhu#~0GURJa$pq`;F zTvO*3WF`2oj=Q zk;i+D(oR5qMBl(%J$6Q?g@<(0)^YDCSvaoje#EDt_eQAKYx{$bGxW2R!pVg5NY=|6 zcqZ(=e|qs!24sQG#`3u1l5Z${J&ViTq&@*+daiqb7TK63Q})K<|5<(wX^C4+2h@v= zA>JQBf7c0r2=zK^8<0_GCt3$3GDQUz`GVxp@lDM!M$;sk{~{+O(QvOpme;nx13Po8 z=6};~6mJs_Yb;Z%dtw=;?e>Ce`HFdQ7YqkYRAR}I->4(iak5S*k9GzHau1!_K z=48~E_m2j3b_Anw6Gg(}3oN~Pm+E}cSye!~qf;yHt4m}CttlC1T}<0QkF5JMsLgPh zn~-f^Q9M&Hg@u1;b&FqIC`Q1F{vgK&C%Q!E3%ZT^A(3>_cJiKyguuKKAzHLW@$N)LG`ibB<{eY?b~MdW0ncC59_Bcwzf2-hi3 zrV4%QW5@?e8*T?u(z?VSmDF_)jjd|r8ww1lSCN(C1ZEZw`}3M6w#5nD+<9mC>;~+Y z0@-U2}D_>(5(MzMpng8a#~&Ulc-1I6UI!%( zc0>bjW@NwzZq~Ca)&V4~kH^@^3U7V>JDP1rex0@(Uwcp@{ye$1aP0(3P+mk+b+5y~ zK}e4w4XIA)Ar)o=WyzFfp~topgwq@&fkb)!U#mTec#RVx~*k&7I7b;)joBbsuy-nd86`bA)^2~%9CuuYLr)F z_BiEY-s61SdpoY{;QAKSI5&~S$HT%K#rFV)<3-|;obGMU`P5+<(xT;5diO^Vw8xRK z>cCXPpS{=lE&H*3lQ7UsaXDk%|H{NB^*dp=t9xJWpFAC70NR=3XMKbm=^UI>YYB5vv)|6lSX=< zd;C?v^m9{`aaucTrn&c86!DAeDU(1OX}&((^G)*o*M_1O7vitWNlU01J9nM2%$(bS zyoNVCbHzww?8>=5Fp=*DnLU_QZ@U%{xl-KfCx5f+mIKDorBiKDkqM*+z< z%r{__6PDy(CvUY!d`%^Z)A1Wn9SFZ-!+81w3p&>ex@PK1CV5geXB{Q2MP9c0)Jl~L zH-bbt8tk19eocgZ6PW-c8H3S_DCYiP_voqorjPvQ+NP1Bx6dT~V%LUK5){lbarM5? zT{MC>ICB@-x<5BxeZdtXQ%p~L2aCL?NH>A6^POLrkTMQ9?Tz5cZ4IBg z)#W$Qj@aRgwBFD82Kxw1uo%0-v?MY9@TyvDg+UV_qHLZ_emfigTQ0w{aZ)nT-`MJ- zB>hA(qP7Z>3hIw)uDOlMiMx;VqLJl)>$`@D7Za2z~Zdo&U;x&8*^s`L~MY=5u4`7;vd%aO} zB(=Wh{r!NG{N7+eGz|T=AjV|l0de@$Dblv56~eswwzV|L671hvS|-dkk@^RxpYV}r z{@04TMqm^VIjUJ-sQ)?`BJ1%+mTP6@Nc$bcIhklQQ^o2WKGw?(sf}%0@tv$oem_7l z87^06?_>(|Bp8*lUH2jtjNR+EYhS&$H7@G*NQR$ag#NznXRSlU0GCtJ4rpruXPrcP zKqR0sP-(-gS-L1^Rg<)x>lB&I6^c6dJbj&;l`L6sdHA5vEWWLYDWrazxQ6pxPclk@ zga~!^5x(R($cg7gU{P;SOeo?bn&Kt)-b3+W@nPw~KRJnu6i5$%w2Ka`*FX~te#_~6 z`&%Mp7*Z)1&?7d{cij)m(`hPZf(s57Cw;pR zUkRoLSS|%ht+^8g`9P$Jy8n2HO8>kJQ zSIi9U(ZDSXCAZyJbSw24S4-1W3{X|FDE$|==3hYh{03llUuXS%gi9jnufj&OOV{P~ z1fBUtCmM%qov`gxpfa613ksK z;1_&p*;@(PT1UsWf5un-Boi(wHK(KQH#b-Xs@TLITFvR^#F3l*y_ zf|@mGzc9OPQIyUI#=i3-SV?9U9Cg#>y-rk!KEeoNjxEYv%@7*5+|eh6pYAYw;S4=| zv(rSmgsRf_#(BXOpW=;|+d&5q?CAia9b6$_k^hiqKr$Oi zs0O*EXcW7-{lK_H@?dFv2K+d7H}}HPUuy8%GQrxn-eMiTJ$iCdlEVk>`nQee(&JA1 zcXJV0GMy2g5{rm0p0i6&-|mx;vMLjm!59hGCdZzPhU;3K>M z_W}(VVtuh1sjE zRpc5lw0U(bhFP)6I0v#UA2PqpbVS5dB`8ay;RV zx`GL?X0vr#@t!hUnEnf=R;(eL$sh;Qw6Tv#H&BTXZuzS)_j)z4b zma*W!rz4toHEv3q$74m~nMMb8ftmN!MxQaEbyfi%y{>Scufbdpt>doA^z&DpWc@XX z6I*%q2_H`6eE72C46}7Iv`$=gVGAmSd@6?xORWh}3-uCe(0HzJSP6S$G>X_wS@IT( zqS_|47Ji53)}RXEhZ!!e|Gqod&sb7tj{bOR@IN9>{aa^rR?UT0jtfGCl1$kH&Bolh z8RwVg2fT9`r*J2&?BPZp z&Swa} zcgkDuygGA00T-+sJ z9V-~6*ViKWRHzY~%{(50hbXG)x*M)XzrA4G)_76A$^u^dTrL>T)N}2>r@1x3Te_tu zu5*8#-(wxp`CWbPa}(-I<}o92PU#S87vySQh|n{b6tvipG=;rCV%M{S?Ea})zImTG z%(tV!dwQR@RzqwDF;>FjJI!#ANhnZ!*l@f)!|#wZelk#B{F9V5C{ruIPDULiSKZwV z`VQ)cUweA1TJ`eoB<7KBJ$z+&BLL=Ob1m4BTlI$64r+qRb;w5v{fRAS}~)KSZ=Z&gCN{ zx_(};yyVfim6(r<$iN5|0;0tn4NWUqgg#F>R0qNsZZ|=t#xId7N6O#dOw^iSIt^TJbRpT&wtNjc^c=Ne6hp^8fJ);*;HnU`{;CtDFQ3MKh8`h!lrGEvgN%gI6yx{Kl6KM;ET;s&!t(a5?NrZ^6mv`@ zWU-^g(~3OvRjolsO3y*HNz-q=JL?X3o@jV_X^zc)kW(lwo6=DB>ogGp>pVTPg^ao+L=@Q-e~+4QFRV`eNx{oT_~W zzG>vU{09A@OQe}ZmnHb+&$>+@l+#E_k+ioQtX8XkuAXGR8{)8b+Q+9ysi8Vx%vx>R zEN#^CYB)W<^j!PiB!97GI@fH`le@}cGDo6X*P`r$9Z%8~)1SGH{f1kA`y!>(IbpU~ zspt1IQDQ|dpZdW1Lxct*C-)vC7Hbl$CFi|4?A#zH8T4ChC%T8~tV`z%e!B#m)hdZk zD@vna2{A^fE6?+L0k;yBXC$Tj_ZcEXnk}2+j8tA|mEsGpGDldo-yfn7ogzt6Yk^_u zE*5aISUAd>S!kBpV9zF$L4LaQ0ON*G_=k_jO^wuFctIzi$KQ0kE8 znmH@_)Emlw)ecb-7Hh&^aEfRicR_@|7*JH=f~V~7aZv}JF$`~EO>Yzx5*ANypv2(1Ww;$3L)mCNYM>jdcD-R8fa7ZbCalVJ5Ey@l#i_5aOz-?8>z@s zQ-9cR(F`Ct{Trj~E&Cmvs3u7Uotz#`UEm7{&=wtCD%g(_LX({1Q?M=VG$Q ziZ;rwKj;iW8J%?dnF@LZ%E~!rv}`t7e|UXV+MNPjFdqTkSNUJ}5uEhD?qhiQrTJNB z{?uK@xBEQLo&nmbMG=Z|@^UH?n_-4)%?P=o1u8;OHLnHzl+aMptb+!~;Yeoi_Yu0_ zKG*+=t(dpbZ(kRy4!Y%+^}v*y%wvw!QR>I2m&{8#6qgUvddbN}!sl>!7D8XFi~Smz zWS^Q!{I4NP)%#yOog~h1c$yFV)nU4=qdFNC&-tp%So(EK3jsu!SEh?VeIdKjZ)l+o zOZKRulJ93mWO8@;HjZMN%SMUD&2Av)r$lFva)fp8%o}tz%!l?=$pHK0uI?-Og-NTq z$Y>AwN0;?a9NH1|rs+ap`9;0ccL8c}NfltF_o(*&YdT6(Jnh&P^)5AJ)Wq9_{B4@h zej}Ru4kJU&8TgC@_eQoT-T11k=5?oZ?F*-X(3kXCz1OTCs_tSs9(Oh~Wu^XgkjJNomn)mM$th{uxd>GKTFVVI2n(bH?;e;zvLLjCvM zyJFAn5*0sZ@#cn|`K2tCz=Po}AGwcjDdIHO+fh?rxvwP84lnmM%tYFup~x3S8fO=K z9n?uZ8;{qgdpFhs<76W4eFq#SfADbny^ofZiJ=siw+;bGlJx0*T12Y%#G>PVQY$|+ z8yEavtV6^TT~qF9&@v3aD*HrWyis-;Q~U;H$(d7Z@VOBA<<%0*l-|^jeYKR_+OeN}a=n=(I^S+tj3C%A!l$SKZEV0oUHgf+UoD1PQp|4mu$ zsH@M}SEhpg5MwDbAKDPL?muZ`_j3`Xjpf~f%X;(68fEiWe|b;ni$CiyhIG(lE^Q?@ z#-L5b>fL@d*#%T(zXN^qi@Ppw7*M%nPqDYx+8|So*hM*2sskLEH^rX?>ND115jS+$ z8_f6&qNh-*R0f++Tq4kDehYhkS0ZpCvs@E(qIN8UTTxf=(SkawY_tu4e;WSw{0EXg zt={VK0McOZ+if5g%h9V|+|Qm?F~u#^x7-}NChS_o$vl_7aCjNFs*V*@-;e%-yb?oA zR~nsGSSo4R{{?UzFBdw?mY49<sbOBbIrG}C-h|n>jL1f=iPO0Mq-0T{%Ng9W8+tWNkaXT zB;)et=2411{C>TSgi~TWsZogIpWO40ph%}ri-O0jOChNaf7t)q_dJ2_F!c&Q8w&i4 zNut`lB&_r8e3*gyD>x8;4a9B&%A15SlSJgoF^42x!M&Bqi5L1PSmW81&gWg>+an(U zV(weW#6`gbmXxgWciuH)C)$=zLYGa@mH}@qJJ_@Xx|QkIQ>leD?}_{WdL7>$vN8cr zl6O}>ag0~i%K$o@h5Stm>VKs${AtU_hwe75gH~Nu2X9htSlPI}(p7T~eKfXhF0b;m zFka!IN1at=Nb94^TA?>ZUNxmx3)Bwzol^vO7M_s(EbD%t%Q~RTRNZp|wFQ0P`9i(( z={80Y8Rlkggqj0ABJPOW@YlWy*R*|)wXOf^E98a{_G}YIYu10Xyc9s|F;d=lU7rLT zam*O4Bi`6uzA->J@x>NLEeG4Vw#>FYnJ6puKVrqh4av)K*qQp@WNaa-zx4fux? z?hj@KpBKedDxL8_xVpzGF}75Ov|R6q?fZTJd;%k`7!7lix+(E@%4P z2Pq!ul9>^zO<*3M@%!iGEZ!iNVG+l4AkNKzWw=*@Ltwyio)?&NnPzS*(DtI6bt;N~ zo|G*j$BkVz1f5iH;n6l+`3OA!OD?NNAm`Z&2>k;Kh>f0ug|l6Ae&o;rI7aXR<-!kV z%8U{)`y!Guc-DVkFt|-e96Mv18P~p-w(OUiFv2q#p=STY9$XXN8Y~;HsL_1m+8o1~ z$gp2ETt2LN=^3i$_QYb=Hr58yXrSI~e8E*l|*K7T%ou?s|o!)`m@g(%) zfdk3`l?ShzJFcGGGrQa}!-XT$KO7Ps4>W&^UN=W+nRj~T>y$%{{t0IcB@JdhHkx9Q z%cfsS)aUF`ue59hO5SzsFSrgPwZ-4YtA2j*Q*a(eUmifFYE09Q(`gF&o-m4E#P$qu z2vK)NX*%|=K4&8Bv#`&7V%aXj+t_y2*>`*3Cr81Lw7OuKW!u0^gFce=w`gMiCm$q*&Q20s@oKIdPGGpL^A7wcZ_wTsYg8Jpf&-lr9jqVfd>CRdC=hJYW1SE%2$8(td zbPdREObw?ijs6A@tdaNY&|AhK)~sqjK3%~vZ8!(~lQ^5!BB#G-!mT<;TA4;ncg`9e zmt?jw*de8N30W#5o)(ZFup<^l1T)o+&!FOYXM8tlAICBur9{3yevB;3vzG-CmrA&l z&c#;haHhr}HIT`T^U<*VZ%3u~#ODz$nCTvAsH3SZ+`Ial)ac#T&yrPzE z{(eN-yKb~6wI_%f)d^S5X4?G%i(I3uDt3g~)lKJ*EUIT6`+>XyxEVG59+30*rvm6+ ze4~^@6v3aUCt7@S=ybNd1f9R4)m;1aVlL1D8DKu*yNu37MSyPYqp+uNRng|9-vdcJ z?OS`qHwoXe{!g%L)T$h6F`hR*J-Z|oenW$3IZY3?e=Auumu(a%4-lH6Bj)!hPBh;f z2{}9?BBMD!Pno>I+9QX!+kd#O-aoB1Ej(rA2@D?@CB#CH*>n!msh$HL-WeAB= z;uHv{i(qj0^~)_==X}2XsW(=)>J5n^%~m8uwGG?M3nHx`zgsVAvwwtvziWlo;dzCR zsvM=}j%WAAUHe_Jq1d#Fms1 z^r|Ty)wwgBpVD002v`&YMWGB2m%pNyQ3B|_{_@t@-k3-c;8qSJh!7Eu2+OP8x{I(g zS>(mc{)o9F9uVED5b)W6M$s@?o;9km|eoP!S(1*a4EVf;Y9Z zB+dIlI?4Lro|U#6wv!2Mm+op70{5(~MfP2Hd6c8DY)-xWzjTZZnRR}A)^mA$y0ZRs zH9E^v68C)#e*iel(doU6aSUg57xKp`yxI(afC2Jg@gqc&bO>@5AP_zro(>cmA_ z1mEZDWx2hb(`ZuDHz11*f&8rnr9)-{d++67njvf%CsW*_6#fMD9JfLLs>ItH?pnDJ zcP--4dGj9^qw{vVOtRh~3O=}&niV4g2x)`)kE}1M4nD+lp+ZMirq)0C7c`@8IpDow z@u%G`6W6@M9&C5DL#c68>x%%$a|VxNu6%mqXmPWC5OU>U1!(dX?b)jV7wcrgk4tAx zAMch!7}hU{FA6-JJ=oOv^&*?QoY8Fl5{FuT)1Rb*n63_qLHQ9GpBMQk6diz0)UCD^ zpm@s!jpSHAYB;|F#Bl+s+f3bD)m3arYm1oITO1;!>Ab)DuJPX^HiBBaLr2%KWb8O( zn);pssTWyN=bZ1BaGt%DxkS6X;2(X~U^ePqNe*7et@Ix=-SX-4kf5R~`XfonM5lht zzk3#rogqvYSGTxw^!)tjdvfH!}{jsj2My%+F>_oOHJ)~^bLYLMcjK)m zx;1G-SYi9*LhwMg5yqS0z<9Rr)(qXHmYpfI<`Ehv3oF^gVM6?jh=y*`=|s($Kw|dR zdm#GkT~iVmCPDbIh5pV^gw~1nCw=#z{GVR?>Qr%7*N#7s{>oSE=Qz(M3%sYuN&U=v03KdL`9?R z5lMc;m*F3896aOmY!j~M&T%ALbPIg53)J@e+mmf#2XN6K!`t*_!R(OAa13n$(|6|A z7gYC3&bQA3Z)2XLs^J4T<|bU6Ih6h~m1++;Q@x#63;+GKbc0ZFzaaXJXsN4GxceEG zV>7{i0df-i^9UlGc!r4<&4Yr2fLHky&qkLevo6O8zmjn9aYSeoT(neEnv8ZW1e7`) zWfhg6L$*9HjCccdh_PR&`mVGy;%xVW`K}NTCzug#HSo;`n+D|swzvb4__B3XXs8X=^Z!-nRGNWETEW8o?+pcR{9&#X;Vp|uXu5h9`I`V6L zlf=g3KEQWVzD*@4f0xK(o=Ymja9-7tCCH2mO@v0({Q*<39k3DD(O-AYif`LB$?aGE z4)OhU92w>{54oZY)v(Rv!>&g|(Md{CeD|#Gk_AwLoo6M<|pgX~Gn=u%TsVy@x8ADKSXw26z^F z4}6Dxi9G9OUiuFD0rD!lSOCrR`)^wLr^E(47R-v7;(CECNC@x}fjl;g(c(6guEGPp zu+vDqAubiDn%mB>y2F87S(Fgf>VFGsapy*ZyQU5_Z!l!asfVNiz%zG&a9h$*f|;goMo?+3s9aiMqCkZ<1?n}aD8Vp;#kdh{Y$06dt(Z9Yt;|#?mdIy6KG{^i5N&Mld{w%l65C+MiGq5;Y zbK#4OA=5_r%0B2u6uw{9@)6??=PkxHuxpNU{{vrnTbxy_4ngL+GW^(K zN#TIGtfD#v{+2pcyGe zl?_5!h_Vzu&^GM7@cM%5^X-%e)(Bz8VOX3Wu&`+Q4n~EjD$6-#^+Cy*(Asof_yV@_ z;sP3ZHN{G(lcj>juAMQ0}BxopJp5v&z|@@BE8Nx*k35ceHDR5 z>7(eLV<3m$`u?stw*QSaee2K?q|L=7;6Ie(Gsr~}HqX&cn~%z!mW(!p-1PkWuN1>dhZ8=%dr$;kI|e1=<4woWY~ZE~x+ zB#M&UB>~4*=CoF%AvbKBz~Dcw^|Q36s-L&dn8x=70$66&V|&qQ7txZnZ;}6=45k?z zA`c86>)j)+fDe5^-3r=#VEgC;l^A7w;$deD^-2P6-9biDPFUro2F^KBJriQ-s($vb zr$hCH@8pC>u}!L(Z?WGjc0el&jL9d@A3#dek0}^j4+33lgPBf5F_ht!nkRJlsb?n4 z0nXkDe#mHHOGXBWSx1M|Cr7n;(nj~73}%_5Qa_=GSBAn{2?LnZloUi)aKXc`*q^u= z0y~3dJ8!gH!`!p9l^Wf`R!0;|AmUO-zz@xlEqBc2am>}dWKgLRDW9X2a-g;9bu~41 zLV^;*I?OpCWoPan-%{@|_O&=6V;5*|4l!5O4Udw|3Z*+uew!U5e@03r>N~-#jgD8? z%nzopd-*^0n)i2qpkP<%zON(~6b5{*WbPB5JVu&?%kps(Q*w5FL#I2*NnhfHed>zyzR;bMRaOT3r{~}6iOgpbO2t&&%LQ=tgZ}o54 z{is!KhBSNITF$+LtyGmdA&s}!OM2_yHR!ZVox@%YbW}2&^kvSGXrgRkoTQNW5m=ia z_De#ega#cXPE(`X-p^X5d^s5S4VvX=*;8(XPANykm9M;Ols8r1b?i^Z;re)e|9vJD zWQnLA!+EA4x%x!a(w#s$yx?1Zz|xs8Y2yXG=yr4duiZFV#6(L@a&MqB(Cy+vrlf$! z=Q76#{}j40LxcuFfi#QAd+lnpWqTOr$r}?2Xflo-9h$dQ<+4`KEy#V%TP>Y3i8Gu{F}?B^dC?zIlx>obMAq@mhsvSQ zKB4#VlM`eHpp#F;1vxPit6~--ybI&?x551Z?oA@-!OG7FzUGDnO72w?LK0ljk};PZTM{9XFmhS z6CN~uf!DLe-osK!A4Jx|>;`l3mZ=7b_q_vrccu_P&!lT>drLMN^<(Z20<||Txxag4 zQw5;cARgRu;3t0mua3t%kdVMOMvekK=nx`nZY1uJw|NS%7xDwR3*QZTD16H(U;#jY z{*GwW*<94*eixqAT2inV%IS14BT+)6ef>W~+UB+0MfxjVaKLBVzmzlvz7m5=&Zmf( z#hn=vv}8SZg~$sH^OVMt041y_cqQi&8w#Zi!T+*2tSFZh;QQ+GmzW~)Uok7{WU8hq z!7>$C-$X+Hx#p?Xs6cttDX3JR?0_LUIBoQ(a1)=uxU)vgG>eJ*;Ryzw&$?w+%>O zhy#u&d%Gx!q{;8lqYxF~GyK9z9EVRmiplHjaFSgHYR{tiW&tcauMCc98@dl_b+(B2 zYA}K5uYq*(M)lFOqw?1gLa+{j|;BahbhlF-6`zOpxSf1%)vXlOXH#C9ru=W zW5XVT&r30`(7L8boSklB^-4zH_YPzgZBckujuz)PkiW6K3V=p&=jr0q`UruihXygK z4KCVh;i|OyPZY>_kN|po3VqUs`Ht#c!8sb3DvO%e(OdVC-%MvE+nSF;Izzp^7-a~L z6adGcHxv`qY+la?dLE|WqS_cW!eNZK2GD5y(d$R@VRqYIL8Tzhu~-1(uPoED@l>U) z=4Aex(vPN#$6W9wPjb`3%2c5z_4cQt)+ANiGG*h!?MWef3aVcZX=2n@_ua#6EEghw zA17MByS&1v>wSWwTBI!srRs+`ZcWsL1J7|Mw_k)eomh+N$S0d58u9DBmVd{|FZHKs zsF6;5^2mxOMw}*L4f9d^ATYnp2cfhdcej%FTn)@?Jm5DJ!0Zch(INIJ>ZkZjJM~tv zcx#q3*Pn01>zlgICA1uoT(rT z0_)kk@~5dk;Ug_^>`|;D@vD$RchDtKiSVvV^;9bY@MB)OTRkji3*po|chG9|9NB zJK>I?b!$yn!kbmIuZ|5dByELUeQpcKpK-CKXzSmq++TkHbIAkW%I&UgR5>167!HfwGEY!>)$&_kiv5O4t1vYAI*_g6o#GXT4J zep4on$W!!Gsjo?6!04O|5~LuS9fG{;D5?_JzezeZlOBFM2l53FbT?oRMTUILqQ#N# z)99(t9=owQ@5EgI`QraW)O*Gy`G;@AZ7WMFGjms_X0FODDwUa;8M!kDm6_(kJwYl{ z%UL%rN4f_DQ` zE7|o9Sakf}Dx3vT*;_(#g?cWtzEB`Y_XvF^WRIujsn(_gn`*w~qjUhYfcE8yX4%*X z+e7qzyDM*h?TU+n1$kxI&AKD1zVo8b-`JS86%WYu!8 zBnmlpYx1nK$Z72jC#Is*7vYD0V(Ms?*YvI}&@;4N$zER0>V?<_Jd?8Z_AzQEOtc@k zI67|e@QJIr{l&NNe|({!{~$so&4$)1q^Zgcsk2SkAoe(|3cVO;F0(vF3nK1XPE$P4-1;jE}kgVbx+NyBn(gb(_hsnr6@_FivwfMwN#Vz4Y51 zsu3b~@15n>wuU=G6*2RM0vdd-+872mndJdT!(-S|RV!RvyESuUJw zw4Enjq0%NauqPVvHG4Oy{|JZly=y?&S7irWM1P|wut<6x?g{MJPICT{&?R!`m~+s( z2q-wdmmhxpOEgpYD~WA@0pFcnqX#8ldk$YY_r>))>Apj@5gMWG=RjpfFm~Rm2^Ls8FMzD3Bi6$pd&$!5BI$p=9~H8BYM|u{ z!-xMH>ctXlpc_#PauZLIMO&qvBsmi;*Z7UItnU&=xEh+Wrig3LwRm?MJtd=Hk%|z$ zVVkJED(vk>PVByQ-OA2^ihGFT=}tj)Z0D^+3|>S=jSgB^zkrel)(-g56BaDh8(tcG z=>MDHOp?2)T2{6!vKPLcnNvHY<-Smx1fq|c|H(`P+LkNktVI72ebkP#G3cq1*~;Lw zpZXOGp=eKKQ$XDyUAU)u0qp3CLzu5mR1(S8k&{Na)J(&vX$$?hSB_**OoXR&J*N|(obx%8c<<${z;$;d7X$BIw4%6 zVw#ZrT=>#19ci+L_>O-RF`UrMq%CocK&+tTj5;2_#qQQ$z2>>?$D5?Eq#NH0N5Fu-42uK!!lLpkS^%|jP%hhLcY;|hsTj+Pc}@=`lc%CXiD>gOo+5=jHl z=RS(XmvE_%ri7Iq0?ulu)wQr|P_gt0+aSd$i@%pxw){xMZfIGs(M&9FZ9_Tb^oU0~ z>P%o>kkM5sKAs9`nZuii>}g;`iX-E!k6lr6>TSKK2^-I(P3h#EvbBT(@>D2#;Rc6q zm*OKgE!(4bkW6lgJ>X>Kf3D-W5)rO*ARxJt;c%=GS~&`!67ek)#TwGN{C-^iFM^4R~6B@@Z=!HCNe8jlp+SV ziokpf$5Okh5fxx?#MV?DVw*x9v2=k0?gQtC*~*L6GW4W`>Jd`?e7^y)qTWEj0m%-A zZ^DPPFk!(u`{VP5co^pTIZJ7|CyRX9#fidxsF(AlW}rf&bc#s4mKTq@*1X`5rTD*V znASPm;I-z^pDJcH!>sJ;Z5?8-|G|@*=NWvlZ)f&(T@aXcIU($I%W7lpl-2>2uuqRJ zys)r0`q*;x;DVt1ZJBs}f&FeXH!qwIlcZRir`&pU>g=6Y(d!U{w&}%k;uEITOBd^A z|K^&Qzy6FS_l2&%smxLdMa7c&+=_fHbEoVqKp?Zw#YG>G$E~d97W8Ab)`J}@ItX@L z?UgfPyg&J`sD9m^|K%&dnT$5qS-b~#WPQ&rOI8H`!2Jb}Rs8)FVOOpT>#BTMzM-Li zpIOnuyIzHgyCNO5FhOD$@v2tmT##57#0=N3x;pj+Rmx{3b#$;k7P6Bmh1^@U1Ul0j zkhJ9~{t5K3(} zFHVtGEX}H`ziGS(Y9y_t1v$y~7-m5=3q&k4mNzP8{yFsQlu^&O zg&&8Hk-qq$70Y*_+xT?2s{?Ac&T?}MuQo#lJ>FVHBzhKS`mZEqd8c}~!-h9W;==x+_EWPtnT0_TF51WbYOCw@kRh)H#wWFl4AIP+Q8GGp5ijEi2p_ zgDA)wQLad|0D6mMOEZ5fDJW9+3sT150z^l(31)xo?AHa z2Ia>w&b<~U(Y~4qc5VVtHv%`J;}=N z>X*L>lu=I#zO=BdH_!{&aif2R+01{3#h}VDlji^AzFMkcKe}EpR1r&fGJtC z_z71^NA{dIsusU+7DSGlf8}oUYMiZ;p>Se5eD4QT*JOx)-3hq0a_FA!$94QF02emF zI1dV?CZQzrEASOR1MV}-L>3f7%R4Bsi}@Q9Gbh{UCm^O3zrz(ncLi$TV2N;H6izjy zJ&%2!EyQ~8#rdt2e~zB!2K3$3LBpFZDqBDY2`r=-avw}z7-NCTrfK{^=ao_GO=< zk_1hO@-TgE0KlGlM%d|H;6j#}Kw4|E%Zvp%{kE#jy8120+rT`h+p0k?%NtXg5&f%? zjN4iJ(wwR$ugjnZcEB;64FgBz)%VDvhGl&PS&u=F7-=MD^q53tv$tc1O* z%BgG0%=O7|dpAzjq9JK6qSB;hrF{0W3fPPO+jlcnZ!EY6L!^~_d~Uh$`pSkj(eWq# z;Dk1i`dh(_pXvjN9>caPpETWeT$>xmOMx3TexKeo7@TB#K-IuA(tRbwo?Yi+@>k2r zl+&t0RDafoeODC&?mzrPo+lAS3nrHq_LtKD^D~j~UTxD(`=;44j-Xqv+LrB(Z-YtS zOcIH&$7I~L?{z>Z(Gbs?Dl!wVA-3pjzN0L+Q#S=m2Kwp(@qCm zXB{o;6tyjjr8Jp2!SA-u?@FJnSzL5NdHAG!Bpc?_6IeKavgm zNn!@Jr;$nQ8LIIBd@BoBx%+Q#ae|+J+JRN0HW!sXu|U83djE#Pge0(Tf3IZZ+HG&` z_t`2kuZ{=mMn&ZxzDSYNG79qUSSb6o{Z`n^4kfZS;BDj~cFwO44ebjvXrFswz@N$* zt z*#4$6W6BqAHC5xK%9U)AV3y5tb@jnR%oY;4ACc8LelVNFz<|`C z)~tNVEa%yXFw~g289<)@Q4pvXY#9`>kknim<7P)FSi2m45B~K^JZJcFU4`f zB-x|7S#rr+43-(>NCHNy1$7Xud9qPbV>jWewY!kd&CYyN8>Rqi&fse8O6U)P+gQgC%6*r`K=loS z^648$!eqEReT%~~Pz`m1*in{O$F(jYT{|hJXWjFfa*X*h z;IM(SD+ZK@yp33}2?gbWcinaCBES;qpPy9h=+K=ZI?E-?4t`_d}+AhMKlXm9E5iBX2{^L*@2DyZyKH6V`Ax~H64IVIUW&?xxRJRrh|A^ zCto3^u@PElR!-|e&sm#yfQ@y8I{Cv7u68U$!MD>S{kklNDc22xo*okhTwF-^tBJj5 zSor?ZRAxjOQ6%tO4{vF~L60y+C$T#+(wvle9z)g0Wjr(o_W17e#baK-!>8kiM13OV z6o}0zj>CYIGfr*XW#f~3Km0`l+;y_6!!82tY=Dit2)JU-O~JesWIg6iI>`lxyKoZqO&B%l13Nz?drUrw7j5JR3w``H;GmJ|3j3`si0BUjX^Hh!N6{^Zl z$gKbYDp)#-)|+q*Ug zs&}*1VV_s^=pQ)5ot2S-w$c}}1tE1A3r^EKVKKpP43YZV{L|g314+B}`k*H@un*)$ zJ>XKS3{%+ZiNN>Kl3KwP9|hOnXHoO4UlpUXa@Q@sf6rq$(i~Xet68A~Co62EOU(n23#O`sLH_O zdDjT>2Dul#qu=9p@-QAI^vzLj<|n0r7~_~dyRr6?FWhE_sxPq(sub$IXo@FQ`fCWW z{aW@V)Ae}1_ZuvlGb4}_#mQlZ4S3CWtBLAt5n-W2Ie}KYhEvZLPM%Vh9YQK^1YNP% z(dDk|0Uj+Sh5ZX?vBX}s?RdLurgnhDAcboO17_01cHO0v6{P(w#t2gZ9 zerOG%N`Jp&r#~5<-^OtS7s`8X$BZOGQ=-;{uA4V0h2GhaY84e+nr)suYQc77R#L9z zxUDt)E#Fw$HIFtpe)<=-scrJ$sVf}vZ%Aa_qWo;p#>`4x?)P%w<|pLeiqy@A{Bwq# zdq*kD=@@|9aiF*$qgMWY` ze8mGyUT}T0c=oWjo30GKZm5DZRMDq4H$DSVUwPU#`*PNYh)*C^-`ZHuDq)d*k5Kbg zB!}}Uyd1(mUv|sF=}1OLm)BRs)oqKg{ox8I*sZrcBEI~?)kdt;g*BKx28Xh0unSTh zsR)6fA9PPw!yF%@7QKQqC24s+9$|=8XfT^`t4q2_h(l9J$^u$m%cS0hwof*)3r>SUwVJ| zO(ApiwFEa?e>mD8=UA7h_U2EeZB7S7UfyK#?8)T_%%{B+!Hox^%0=Pnw2P_A`2mo$ zZ9=9cc1OfE*PeFaBU3MM(g|K0lb0uHQzwYZ^NyM)zT_-TIvDgTWI4M@-HNK)`6lX0 z=smiA`Q|8W-bPndDrIMF<8E~HFV!T!LcK@H1;GbGqV-zp^@2(jAP<<44|zqyvXOR| zJ9#`#T%C4iIhA|7&O~Z9MVhbW$6$(;RrbBgJyYgLcVDDw?vH1CE&5TFJoN)-%AQc* z*j9)^blc>AEaY7;OIMifd;#SZB-;ZjtOG05!z8ws8z0QT~OD zIZwp`u4UQ{Xo_-I2H|o6tw|tacq1xHkK-6xquP-JGwzH0OiV1e<)+@H(Q{3^8I8*0=OzRM@*vV1~;QOQnPkpnHA5zBLO1g#p=wm1bg zgi&xd@=Eqn0Q+d)JZp})aqx`|Jgpc=jt}|O!U#7#J(EG&#^X7%S50qyGg&yZyQ#ji zH9mq*e~HI`{z7p0)j1C-DH{RdpR_o-Lb)~glC*Q>2VOk;w* zk$~{7aovGf4w;as1R*&Y3!1Uh%upw}FX0z$|^B6CIh`;z^h~sW9EPM4=L**%ufJ-s0YwrsR6R1DiWBwx$wE@(y4qg0KP`mvF=3?8Y(=}ED z2+Hiiua$!O4`LS|656$a!@QbL-Gga~c4BR*F@or>Yrb?5-VaeKnz+r^gPHY<-5p&S zL(x6A;_HtPiXu+d{^xNz+bmulvYEkKsofq^%??!CVZ+fX9f{}j>Ueb6n zSP46}zpz^fFty`ud?iakap!%`MWJG#&nMtW+m=?Rb4>f~Pw_~TT7J`fT=FlSS7%NV z+ajC~6jpzxr(;u2pB*P|{H3n@1zowMd}dHozkmA8_S#2KS0-yrqdG0#yNe0>@nb2<6SX!w2$v49W~VZKcGmw48THaDHS= zt1F8vDSIz0{P686B;2k-Pgv2jV5HxQ`(vZie7_GW~{sL`&!6cLKiPkex=s~b{-fQ#+Ve(eA1Z!g=(2O2{~ z|L2nWD5h9VMx9a}Zfqt-5$%YxuAQcP@M;W#rPV#ZF{szj@eG%5v=2o4el% z(U;iibYDmqdDWJ(nZNy5-??c%yFxJqlZGs@27lErkI^4btl!3x3oc&cz15;s^2)&X zb19>j-&8&pyq)!VJRtCNbIOQ(fNAQ)HJ~iMit;%`)qJ{qGN>|z>wV^77N9c6Mb*xG z7Va)q2Yh}~-I$4+p1Pnv${Jj7d_vUKd)MudB3JX6S<_JD)25S=ePxw`Om-{Azc^mawg?_YJ1ebi3kr5$K1?cc1f6ZZ$J zGyU>xzT3TRR)Sw1)NbTB#pSw-q1fT%y+<;C6cC0*6wiD$-1Q;3fOmrKyJk`&>`RIY zuVSS^@SKR+zR;bQ57Z&jmIuC1R?5kO+>>F)zO)V(vts3R4FA5!cRgv{Zz#q@>^)F9~C)Dsa0z^K#*NCs6p8sOlRz09YK{q%GB zNF&xMW39nN<<924d!73BzI`0;TFM0*!KZPcy;wz#WaJeLD;VW>&b+pgauf4IcS>fD z4~v0QvMKSz${YGWRa+ct*z{Q2ttJ@Uw*UwF8mY+{$>*kc)i-G>295mMUL8PBB!*yQ zHOnvlJom;qQxaVAG_qGdNxb#1Y+@(fp{N2B+*?pC7-6;i`HOVT1;FJXdoO(nRPa7> z%eU_5PM{|ON`L?MB@M|Tl<1XRKNSZ}mt~QrbImU%ribpb-Yt?>D7AGZnCB2%NcqLy zQ;#EWhSovNep-GQ4{jgGnmKF)WGRXSI4MgBlE^h zCr%?F@$L#lpF<%JINADQL6kLU_UG~3Fi-7|RkL1im+mHBO!}}EQWp@vW#WuyQ!*mL zTtACYQv|>r28-9EXNrIy>qA`sR5){g z*W>GUR$s%r_cUt2m6qkZHUl~<#Avm-uG?je)HgTVT%qp%fEB(ZQ}C#%#ST|HsdRC~ zc%HURh@TK`nHHtZ95l>7p;-Es;tiG;%Pjf8pGwL`>G>c z|8yjaJ}dQDT3_f{{Qc%B>uz7P|)I|ojJjr9mo|JUoq08B`eZ z+2wk{2HZ_x)14d6Owb2+%3{dLjO4xVsFB4KmANE1fQV z)>pf=D5?`rTn9AgTM)j9t9(a3_{O?6O}>AIM}G8s1|GBHejhXpsfUH;)g>0A4^PLW zR$yIUp`2q*d^<>KV9KLXGm0;<5@}B*0Krnz$`3AY+8F46;{4Zt`!6#8Duf}|aDT72=-Hz}Gr3ZK3$^4e0Kpb(3Ju%o2LQ|){suVW=$BeB>j$;eqae{;SKyWvjn5dWj$3Cwn3nX`~{NfrjX{#e1383(%`#`7>^hk?Dj zIZ5u?>Jn~2tl>ztjGvQrA_bYqtWa0;f&mS8G1>=7p)b0?g1I8=m>Hhr-Lk3R2Mh#_ z!@Ff)mF786RVUngV_Cpm-S9D!gNzRofra)}F!D%+#H7KQ>A10p*Tj-+iSv}FlLEbj zotm@Lliv0RD0y9gm}x#isnTheMI5-Mu9Wa8qMGoQLtK~v~KD9rzYjZz6Y@q*z(P3pRP}D-ZnS^zLClNld@T!_VxU0tusuC;d!P>a|f5b%5(v^Vt9sq)+uFv)hg!e^pO|DXby_GI}cZc=jx2RQIk zOYqMf7($?bkba)mcEsi&fw-R@;H8r~gB4nR5q|c*DGBg^YpZTuu~8prI&$rFo&rjc zDyILa7(MQ+DI607Q#qQxwY{|NN2KO&O)6Y&w4`b%&mTK`>y-L9vOw)31)Fr4f)!lc z1gKx*e|2}P^YQN{$=Z`kC`cJXkR>zygNn5b2}1TC{3d}Uwiv)aDsHs96#MB04W3N)BKJ=Pq# zYPa@f8v`(KZFaeoU;V~%>piFMLJ@h3Fyf8d7~XDQ{D!i2BnlyaK>5i%+mSZQ5#VxD&yI9|gm}d2KR%@@RE4PbWIsD}-bp?-$T^wJg{b0q=;Yok_J)_dfAxz0i;*GL&$zY)2TKd)$654mB_H zK$_?^@652qXuL$4kppc*Ur|cyh|_+|#rmthXCpLHotRn%r|QK*^unOCaa4p;Xh)T` zCbr}ga45}-w;X%VtWr7<60>XE+qt2#)@|GhQkpW+Zny+I@gsTnZflcmB79MZm&-<3 z@Jj6Di#~*Nq-_FWyC3&rRkQJn5)wUc+S;63hG-S%SN*_T_IUi=_xD?Z3&m^YXUy1- zwd7Z30Ust(UR`p3mJ+HW-+d#gQ89VNOL;r>dP|yUD09fx>lSxzWi}_q9_#j7?0~7v zjN-~OIXRRw)!~rzF|9f4J6BX-*PS*14$}$yKYjq6Fiy~t*dcCgxDT$h>CxZ(Ccoh@ z#Z8;h9TS;j<{x&odR8Aw0;CQZyu+cHhY%I`bk-PiQKVh((+K+fnho;%~(MV#*v%Zj7+_ z{!z$k*Yb5_mpw^V54XW!zXsT;W#)wO*h_83tlPX@I?OASGkPv}Dr}VqcVDl+muRo3 zt}gHn<1w>5GskNuCc3-^vo72#9j|VU+eQ$DuulhS@|IlxDhPraTl~#36Z3b4m(zh^ z`UyuDncA&%|Sim z?=%_6LS)h8YZbv8>lN1yHOy-mu*FC!y zMX2QPF`A-wi0{G}Gkr4Q=@a}VB3=l#T*~4o9hDdSH6pbu_%Ua5BE4ZxJlFP*nay}j z*x|_#gSB<80TU3um&Dx&exz;|<*isl{XJ#Hgk+#pAf$u)hmxFUf8%>P4hJu&*t!Pe zJ@M@|91#sUG0l`9cR*-l(Y;9?UGo3|lXED}k3W*G0A){H zH(0$}-;RHz;G(g(w@|{PCeB^1rGZk8Gb&au_s!BTY>(esWL%hqWp`4iAr>;D@-^m5 zk%Z@WX_oH#Gx@HHt%H=$lvSd!)XtNy0&!DqNBEVVc>1=Cr0JhXu*J7sU-8N&6_jLK(}hZ1MRdRViF1PeQU-cqZ)P%)xBBd71}H zy#LEZ5W<85zyJDmhf6kG_;~$;MA3jdA3Lq(5c5~_a6b^6LE2q z4>MA~yw0*I__a_}4Si_XECWm^R?J(_92YyNN)f!+-+^MwyPh{`Df69m0$H zijn(P9fGHfB!J1=mwRSmW%@^5X_t=9#Y(o1TKI|(cq1Rjy13|@hEH!D8WqK$pfhpQ za0ZM3jY)h7GMswgjB|jnqzWc-tIN>35|IJH!;`h1*d3jVQUkV&uER8z5I?DYRe1-O zySrY$W`NzSeL1EOWR*lvoVu>7I4wi>dI+m@F0LyB_4Sag7^A6)vn6%Dadm=5w$|@L%-O-^VS1g0dP|Nh5$?;A?6_B-REIfDm3`eUt~w5#k=!6&4%QdS zlM+n{{)#Vwk0J?U@VZ|W1_yo>Xf-neOGfnQTPu#L`k1f>jG& zW*r17^*0T02nnORl4HhPML1{2SiW%q?i{AuZ52wI2{%DtLU-Lw0qz)Ud03DzkoKj42XI|?lhdi z)L=pm7lksB@lXCGeS)VNTJgF9mh%xZhuq=LeyxMtxlgn0BkH+kPNYlR;@QnPMOBsn zGf%(jA?%}Ngva>&o0|!7JJEzAQ0RA*^WM`L2Gy+2m4EN!rib?oa!!8gQ0IgwC*qVS z9-?hXu2_@*Gtm*q zw49Y%!+AjYBe}2Rq2$f`KrJ2uahb28sF)_}^t}V&N4~>!n9!9)2H02W8_0ennIJ9J zHv_e!iaE1}n5{%h%D&D=2uwu1;XGPq5n%NxqCtkwsY=jgG))j-7Go@Bnu2Z?J>HA( z)tyAo-{x_@0KTHe+BWjLAsIPT*2dG1kBbQYQHlGfpDiFN=@Z76Yqf|U| zP#`4b8f%-`$ZpzbmYnsLSKq(`ayF@%I_Pjj^&e0?HW=rT-EdD`bwOs+H%({90djo0 z-v#cXpdb1s z_)1%YhaT(*YE!@Y$w-L(b@0*kcg(lrBBh>|UY=f(N;G>1vDdGz4)(nNTfqNOUo~PY ztE3wl7ICX3V})nS-*}z7dWEB?jjgF65QgDoD*+A%;C|>f%vm@+iEm4a6}~2a1!>-u z7AyP078+1Nvo!!+8=`f$@602#>@uGIMcAC zJK8z z_qI-j8&AkUUMMbj7;-4+I@syiWzbKrQIX?^KsHJ64cx?~N%B<0e;pX!P0yS^idrA) z9ty{>%(a}D^(2xAslxGE1k)uRgm01%y>Sntc$dSAgfY~vLd9Tx4G z?r7vh$)jA2G6HmjNz6285M8m>O(ASee7k0|ZmpZFCyYr`l#C+Yb;`atJm%b;SSONY zat@f=75q+Xr#Pq<>A)mf!7E4PpfNPJ^jR=Zo_nAqbWFK$D^9%sJ$TpIwOQy{2v%=) z$ml$lawn+rob-U2+&053>(C1|HH2|gISD;Q*Jy^ir4|Q z3oZB^Q;@!$zIL@QPF^bi-E40rRw3Nu{_jrY^+A-rXFT%N`Rb6_8(C?r#E|2}dptYv zF*~KbShiAo0a&wnc(N!}4z_X%@u;Gv^-LpTaBQu4-!8vREo@?RJj^0R9*o_}jVl;C zK7iPvwD_yAJ3)2+v;2dt`Bgl7ayvRHc8HCtC&xCK@_P)=>uYT-wI4K>uZ*i{9qMAt ziSBpKn|5pa?Ru-s;BiL%IC+jrG7bu&^#@}^tzbkp)*kIFuSqG~X6mpG%gu%2%BR0q zKbIU!SQcMNinz(Wx_5miq&sXTd?e`G2-TADWdgjA6)c+u9&mbWSjou&21_5FoIwxTdp zlw@}R=W)$#5a7QSrQca5V0~_2F-} zytC=2cmE=^J0KMqxGaQD>5h;!Qely#0Y4iuUD$^7O>O&mz`#A==2gVfb$Z2mrfjB~ zEC=w9hdYeiirO)-JI5@GAGQyj({Y z=<9J;&A^NI%^6nvsH^knHY2_}7glqh;}k9aP%UDOQ&@>l?t=hh%oBd|hFr^E-4!(J zyt)dg2>Yii_Lcvh<+wdjG%4)nRap24ql66Z?x^U7ueHblCN2p^AlL}H?QZP{@UW_y zWd+(R7K|wPH-aNn@W-pYV5Ys@p;LpaAqh!9^WGs)_yR_1~t06mD-wy^95OnIB zo@*k_Q1JXxdBLn+X*<~aC-Ly}SEDwhI)ndO2Ect`cODod{Aa5F^VFWo9SZ3V6>E9U z{dCs>dvV+KR~69y`ywTtVh>#1fuJ%$v1iuA+0gV;Zj?|(yEJA83TACoQ2(Dwuc6OBLG1-kU z-^KD-H`EBoE7kZpx$b|Q!+*D3eeqjeM)1L_U;BI4+ft7_2_4qsemx$dVv4m`YArc> zaWO6A#Jjt&YhLVxwl?_%kG1fL`M^-fal%9l7`F42K8kkO@KXkxf@?^8pnZa#q_s-kt36deOn0|%MpJg~Wahl)Vh!S$}_rgPE z_ILId{V0DE!y?6boJ3SR+1OFFQo+F}uWr-$Fz2+4jX4*#a|S$DL2}%CukX&1$UqKE z+ss_EYt;`~Im ze_r?HH;!Ac)#uhWD>rx$A72eHut6d+XK$E*kAt6VpO-55Be;sOToP483JTQygg5mt zH2sn7ec9ED6{J*v0W>`XW}W7j`l#yAg7#P!8dIG-}1P455SnI0TvZ)B`p z^fk@M^3C?z^o={I-1Jfn;3d8D0uNyab3^ic{uy7&e&}!)+BBTlRKSOvca`4gljaIE zG2VPC3^k6tKojwzMS~`peTPax_MG~wbW&?jM`!oclKu}z|MCv@kI3G)+J#y{;~1nu zLFA~J)U1p_C2kL8e9Srrv(k7s>YoW$*^B>(X#YoJg0Rj7S*nBd$`5n_G?yLX^neF3 zzwDf@<+ZL_meFmyI4p7{`$XO;^t)J#Tck#c(8Z%dvzPe7mkO>qDP38pWe}-pyMJly zspVcm@SkSSWAi`xTpnE6Vt0a592Sx`#^Cm$?@Z~6g9)Q!Z;ApK^kl-T7+8N6T_v;C zP!=S*acx0EK~Zm{Mur>Kur26x!ej5?*EQr;nB&sI#XKUP#_Y4OWw;eOB>^AtzEe`s zXURy+HG(#UuS5R-f#X9m=yt;43|~4MhWX;5&%0Pp2k_iVv7nG`sd5*S$SYl z>7Ba*oo^h-suA)H{i;`}%cUli{)lh$rs|`AyTJh>4QRFUE&2%d-U*$^^3Wr!xIXM#2X(nOAjlqR=PFQF}OQca9j8G2vr zan?tv6+D50z4;Y~3VBe9lRxzQ^Cv!ID(y7#E$ec^5B1Os{TtuAiZt5;N{5mLYLa4- zq$}{A1&;9UFyROzwIrcJoKy|vx zJep{P$4@x2UYv3L#G8AM=*6i`9aAo%DHQw6c{G+dEL2d1xt4xWVEGY&;BOL)a}g8m z#2OA(z@xj>HE74uU}rQTP4QFPKCeV=<05@MJ; z74aW{>whfqn*0G!b{!QLbEm+d!w4B_K+Whp;fJ00C_-`FhG2h-s@$Qn>7Dp%vGbgsq>bzTAlPM=W`@&YOF17%by0+FqunvR+IU0@Xn{I5+5YJXt zEswuAeU952^hVks%&p0yR`DMhe_w#!>7ThjQL=jU_YasZr6)zZV1aYwX`SU=*Eaxx zp-a3l%`uU_1MkA_N1;u}nw7`TUGP3vm=_0xjw+b*Qm%E>#HRrLzB`KOcKcbS7fXPT zSDU>Q78n_ajDJKN`D;;Hv{f(J(kAlugGE66{@-x^P)YQ^?ybdNb+%FjVCoYH61Ip&`<`u_^#Zx^r09H8&4 z6Z^J&uO`IBn>grp2U3mEx($3j(=pfgL=nluI>F_3uTS+9aU{B`8@65uyZ#Mfmm{*b z&ZhKcd$Fj-!w<00@LkB+P|ta_QsXcMq9a$FQt#Ok*)gok_U1LCDdbu5z+qhH|1kBPVM(}e+rNe_ODiiY2bGyQNzK$yY?-O4rIqHQ zvci#jp(0f7Nv^CE$*o!9#(|I%H>tT5+*=VRGGBhr`@YZr|BVkGaCjg0eU0-v&-3bw z9gv05@IRQ2RZD%;eSSkVIrQu!OF<8x&l_&G;3eX>HbI>KIl2MlG&cAGagdNGT@|qYoa%{BNUq z?8EaDFSxJo#*ukvk;^w>Z}&{3;tY2#;%%JZv`&%&0d^-qBLq9|m%0^6YW|YCxvK#> zhx$772R$vTL%7>DWKd;U2#e>FNh=9XE(wy<{EX?@Hioj76_*|Bzqd&+rR$6Ial731 zo|kUwn%CzlX-KPSIcVn8HqofEh;I_qTBX>$g3rSVk1eh*6yZLX?blzC>5A@^baxD^ z`!H9jRj+(_;5F#gCNk4-iKPo(+i0zJiazd0`uYuVM)Y%Z|JlIv>*5GGG>6j%`IXtr zWX%9V1$X~Ic8{@hmt4n*N(hT53w>UKoPIz7M$)vG7?K+2DozY17HB2=dUAagc@~@> zOVlfz59>Z#0bhvr&nL)6s>F~L{kOFxc0_hhibIPk1d_D=KmrtkE)FO$iJZMLJ^Zm* zjeZW((92o=mO@*VLZP0n;z6=5En!H-o!^q+>945GMtMp)KC)o5Ort1_lH`>U$T^u) z3_ifvk7oCD{J!XI584y@UoxWi1x_Eo!O~@X@)1?9GuK%LUhr-UTcWa`f2Jt6VOA z5!<{5tggCLw{OcA`bnxax(2p2pe%mO-C)<`1WKALpb*xzoPza{=M}+E5Vy^lCX18OIaT1Rw!}c6BRB2jt!46+d=j9n7ME;pk@AZCB8G1Akb)M_>%uHtMn>Gy78NW0 zQ9>E~--2s7=AVsyV!zJ5XOs0V)!bN2ezdFXpItPcprv%_psf8hoA0UjPo~Ztb`$a! z!3OI+6j%9_(srKlB6U#q@08d2oRH3$d6ug|d8^o7bHNXWR?#|Ttwpu9%7La=jXtS8 zro=bL!j|zR^OF44?!!Qi%Op4sFf8p1mq6dKr3=L+o1Bu>eypv0nft`+8U7b9rKFS% z?W2K~i$w|~hW>@%EvU19)qnD$brcYWZH)V@cpjax{%Z-p<{UZ48h1G;$=`MSB`xv6 zRCfCUfPLV$zaXgUM!-jE!m6^j-T$bK{-;~~J$i@%yDaS|IV9$*=Dj6=JDW)e5d!AA z`>MVX{Ap~Qf0Uh+x;GrVU=*(!5x&0gv&P3O*lJr;C=n1)pA4l))83(h@Zoz|&KO{E|2g~notPue4v!~d@>f9oHAFm*AgkXJYI;92Jge5Lbv4xJ#$ zGlNY#Oh=81axWuYWY?%@`&S3KMoO=lu*0H{v))J5q#RAK{ct+%d9jDGztGo_~L&JVxRX z)_c1^f(8b%Gfr>vnK0d&`8gtb_{k{qBWq>C-%fdBqP~>zfv=fm*v8hO1;EtvC*v)z zrq$IM@yVlt*H0qQT5S?DGUCQCf#lu0(_;y@Y`+m|pTni7i3l|28$^`KB6f8tsPuNp z9VluNXIC@6yM@DTI43D#S&&(50r~Lv2Ri8InWyscj^^BYH4-;?FxFxAuNiFd4!@Lt%# z7`n5yQhxnh@uLYkU4lMzr0*o<+#aLJDa6t44Iy?;V-LLLigI?bnRJ}FxpJ<`3N5O9#6)0;lUh4@$fqd)RYN?#pw|(19D9??UgZgT@ z9)^+*HJ2gGJ{RVJ8I$e!p%UBth|M>&o7_TtkNM*0@}U7f{VA~itCO$XTs}-peRQxV zr6g`KLSrVu;lbSCeYY@7Aw7KCpu{}^8$LBLV)8$ugMX{6w|9OY^cPF`e$>cV1l6W> zBK+u=aDj4sRMcgexE^V+p4&yM^UC)fJDk|JVe=rbZ@$azOT}7E)KK4%VTDi|SVw1< zgz%MS9M$=;_gm_FT=Isy&==fmYN_sL!XDvTQtr=BLuwOUJ$@54K4(5%_p{dQ=`X|Q zfqrpeLDl*z3-l&CzTW-p%0=`L{1sHEHhKw0VTX<`X3*aGVNRZ&wtz2xN#Cm-VJb0n zG07J9V1DbC-ne%{K~_2{`|M1N4(U*!?e@K$ahwBB=mXJV`0t0>rH3;WZ1H;3grUDQ z_wifps)WsI)6*LE3M#${$^PMx^)$Hawt98qW6p^i<{%;)b2)*S> znBEtUGUVQ{OWdAbV;YL?({#v!-4CVT1-JV)KHr})lFu2HqnshuuCKP|Hf@SD>72&W zSj>}@WqUD&$C81fw(uMav49P!8WcJPIP>tWc4X~sTv)Pl3|WJDF7f>hH%&G0+cG^A zVAn`&IivJD6YSpF+d3^_AgnD$UFpb?FhxEN9gr<2`d#(as(mf+ltbbTZkK={fq|#7 zs)h*j{w?#FXT+EJ_qaX@zR)5we}w+?9Y| zrM_N;HAAimgmi0Yn@IWg%vNY5dRTPq)@Dz};#QNZUf|Ie9T&#V3Mo7nbHf87>_oHv zTL0&U>Al}Qc^A#utrRUi3jK%^cT4wsdL(&Qku;}-2&M(^KtRUZyj-)v{~9Pg+0WL$4#ql|>}Nf2ynBAiEczW?KIHr?Gs-81 z_^4j>QrJ=q?(d6#RUg=Yw&MC(mW7k#`o_g$V2*z6M#REoeL!&Rz3}O|N%$Bm zRwLnrqV1(ofAC2cBA-nebgOWK&GkMZOVc;?E>)sN(yDzQ;l?9DUlM}iL))TIB zft%r^zt10hFlvTU*PDf4%Z(*1VpFJes2q~;&jU^xlW6q!$f}E3rSmks-`nSvU9skt zgvY{@%5Rc#z}}S8uE@!kqg^GupUk23a@{mqhw&f3tuVAnh%b*dsZhT_63TkFCvoBD zgkSDG1%eS4?YZvz@a!t0d2~|KMCT6A(MGm1Sj6a^)PKepB72U3mLpk}iT0KU85gqY zk?udYsR{hoHY)NadL{KuJq&*dS!bxg`^IMkJes;hnDF$bcaL2=Bk&SC*dFl8RS@Dz zR2Z<1U$cYG82Y8bPFk)+%P&ZnW*N2t_*{X>5X7|RdM&U|Xz5C|D>G%X*uv*J>1wD7 zQuy&B)c1H%?vdQh#(}cLjs7juLR`_*b7n6u5;!G~3~Nggy1qD9L`m1#R@6S22H;OS zFG=Gj4bMm2%E})-JtGn`(L4qCNj+%N>-tws`aCKkq;{?kFq26M;l9*F6+k!^IdO=! zWVQR4;-|gaP&`^ z8E)OP&y60EHPG1Mb+nasm0`{d-)Z1Z zdH1j5FXGLst6r*vQ*T1>7NL?qg)-12f6UcW=^A;8h zMNm+6SVFQgp(As$l?>A)9!*n>I?KDxP~#d*rPDg9$FAAzjExtqR^Y>|M2MfMSJI49 zO7N`p4sCrsdh%>-DD28#Qlm!%L{i~R+~QvZ`DZEJwe@Z%gqq~*2%3P0rIC6MBmLYb zCRRF8x3$qpq?hN7;j0SG>hryKe|#3EeKbW>C-LI^s3)3)&en-13cN5fnq0q|@8b3| zGaWOdzI(y*_0LDhe`s5uFZbr|Z)TK$Ef2(V6F=#>Kn|r|*iQUdA>6J0Lm!`Rks^k?Z1710J^)R@#M$z49z+IdR1u z7e2Gm(}hh~iC*eZ1yOA!1H2^s2aM}9XokMp+akTRH7rx&okL*(u8U!MB|GR3V=qwH zbSNNxPUqA7nVPPSWBjpU7|6MR3U6s1AM z$Hc=ywL$!$Z?WJ+Z08ba$^ZhbduqD?x`FjFTrA&tp;f?qo~{1IwM{ez8ps}7G4wBM zNOY-geKtHIqxjP1=yLgO*D)Hyve0dxfwaTFdb|Heb&z^7RUmxZA$4We=)A8y5}>nt zDO`6wPN+(_)(Iwm2Z*Q75vp-t2&$fj_SNPu-|JP)O(wbID9g6OpZw?`Uo>BwkKDYw zG|0EKEqML4>jR_%db?c)x1F*j5c-uk#sp}=%WmpG&9!V>?wMyPIYyfT_I0{{t5(^k z>9(~wNH1&E0Xg2>urc#_wm?ojX~p@rNThp|yk%sGr`$fBp*Qwtd3r)n#Q#N=vgMA9 zq*loFk{rr~F=KGQ2~;}{+cB`Psze)!Ihgl~R7C@9PrW7G)Qp!?A_c_%ce%Er?`wKUbn`iRFJmWF7qEF{2E(XER=V~*%pJ5qU$*yFDndr60 zE{+e-`&#M1H(%#i6D{I9N)NLJ|0{Nj?R8L)3cN23C|;Ja)i^(8K8I0BcL(M*levdP z7iJiBdV8~c-w>rFQL-vH=?zkDntj}=HNL0wdYcs3EB)WA+FZBa4#a16M5&IoI3_HwWN0!yI(sWAf*FUNSk0Dv3MZ@8S#KN6gKpy*m~C>KmdmY7^xN?C;xisuD{w z%ZHVgVI+!6K50ci{l8k+$ba^^>_ET4|1m~fRXRAmIxKKSWJ_@GRCnB-OvV)r04r7z zmCSr$zh@^dIYBf~bYLT)XXKf&_>7$bLeUitz&fv8c(`DIH$>V{y{g)V=DCNg2fw=e zRA}7o+8d%fQhXH{Uf}!N$rd!r>Y3M6q&m#iP6IJ(Hm{ce&d{~O750D@C?`HSv8nk2 z92X?M;62g31R@L6s;0T%8kP%`Zz9gz_)s}FvYyFKenLNGo49RrvwX+9?4kLBc$ARa zHS5{Gx$qi^1kO|8dvkw@LeS>UB9lQsNlEx~g*h3MCobKv4y~}1>E4lEo7Js9Jt31i zZBwpWD7mYS$(?HdThjUL|KXP?d|%-UiS3+rI;d~ruWzG%XcG7dwfM~^QDV#}$y)68 z?sYStx+#%fe(1@j6f?@L@taX$Cn5hDC`c=rFv#X=Osq(mM?Xw4L0P;xqJ6jsLR245- zD*#3Z;+iz*n){4^4X*@98Njmrbym((ILz}+cKB}XTqez=D+_}wkHR`!{?1em&CIqtmp}C{O=gCo8!K^`n2%UaL6p7! zeRtQR?K{eHs5ApFCS_f(=h6Nv$`qb$f?Qs3QA9D@UupHU|Baz-rC1*4y5A57LDNh_ zthpHvGSEjSgK+1PRDC5e%sM5%|IlAF1olSj9K9W#!go$kKRIRgnZC6e$go3&c%{Qb&+8|}E`}Ryc?hPfw8TO<@$HrGd_b9Ja$d`Q*tm*gK z*T#$!vZeg=U8_gyreu;JTUP9fbwR7xje8xn8=j~;(8Pe#g&)nCYsDhxDxD4*!vJli zd2+p?)TH+5Ww+8w;edkx8@Fk7AN!|71g30JpPiKNa}Rjz+=^TIWRO19C2~*>X^f2p zj!j@URdsVgz;L#w|HbRtZ(WmW3WOsUtGcG93Ozz-$I}td10K0oE!4)6x4_GfH#Dh% z0kWLHnS6#VL~*7*79>O@Ol<9f!{!UsCo*G^0+#YdNN$cr!xY| z{m*S3KXvF-kkC{L`QE!hIdZtX*cfA=Q>2HHy!W*qEF92`)9ckfrhne~khS~%FVUY} zAhz^-NjZ!WV<)ZcnTTBVAA08lSq>42y(XZx)~+!j&nA{*^ChF!Qci`T$%G$V+?XZR!~@Y4g`w*0qhO$qmZMltE?*~G^# zQD(mAz^%sHFcVIH)t4iA9@nS%a)Yw~IC zx`;#EYNGayp`}Mv>owg7rzKIfoQhM737|NCL-c#nSZC9ex3$K|e+{NUdyl4$0fx^K z<1wWUS{v8&S8an&VCsMSTN5AXggl%usz38E+V}j%dFt9DiSLW^H~UbGP}}t|@dePV zzcQ+)rW5aa=rr{MB^j!6EH;vOnKwSskY|teqX8Glo_Mt@k2wFwE_55Cz{`I{s zO{_cZ?vc8`&jQYtcpm(`+%K&iFdtPv%~<}EkY=_cx&C15 zA=x+5PxEYU1&+Ek3rGTk>uA!VY0IY)Ue(p`X*$DcOED^*X2JO4t3H-=U+1$kb<3+? z8V@1gx|4fyFO%POw;nEx*D(ZY;8W@~kpnIw7K5wgN#6m67|PZJxUd61#cYzN4z?RU z{`1;COic4>&q^fud_X`jdd5-bk=!$*d~c2J@nP5h;3vA@CCS%?CQt=4dXpo*jn1L< zmj%9{Zy*#UJ1!XFw`Z!B?%j+;CNT0IKD&v1Vr%f0Zne?4CVeZC?{iH*+2z1ofm$b0 z@@G(z+LmKAzE}vdnyt%PTKo`l2^niuZx_oRHdKyJyC;tz(iFlt6|F!NFhDa=8@7X@vapk<5kJ5y3MMdL=#c2NgsZ%3F7VIuC^TAQF;(!8NpH z(yU=+UQ!6s}~u;7ySVpa{#W!UJ@=Qqa1BZk%^t9ZkNEhMer34^ixxvac-PH}zkghyL*w zc<76VQ&*1ugmoSazzh6=t*jg2r3VCEwXkZlL{J{>)2DNV(CO^C8>SO6%CbBHelnte zp;gCh`Pib!b ziJgZos*Z0zJ#>ZJ-RIAN>VNXq=VP``Ob;ojiP(MW_LHQp{pIjbA+ zm;0JLaQRBOM>saWb*Qzx>8s9TmG2d&RH}$>!TV*V?;^8B=>x666@kE;EbE>YVQ9w6 z(Mm<*sh^0PQ=ghDF+*nxWyLi>+?uu|V?D*dQrALY+B;I1r2gH0o-|--W)S*>_iDeY+f zzhHsJk-ZM@q!jO8w>{f7|0L~%FJ&e;(oK1?DerXVIq<(cTMQ{!qv@K5oUOl${OL)# z|D2)RT@9m8jR!l|3B<}Pq9>=yCRAgi;Iu4Ue(720ctj<9-KKE;|Zm zEOotSU25K5F)*Jq0exK;eVS_7bxAzgVfchm(}P!}k8W*qe2;)L9)Uz{iKoVT6!Wj! ziwIyaOz_VE(#(*FgP z3O@X^&v!@f^I72pOzGO}sb*|1Dk`!_GP$T_=E(ho{UYeVaT2@{bQZr=OG~*WTjF!z zDw%%`$DS-E$QXSV&kj!MOSMRR{jG5yGNi_ZuYQXW-k-DV_YRJ?={cc%cPC9QkCy1q zi9$Qjl^t@y+Z=T|v&&cC@2JLPlaOZA9J^vOk+725JklF>{fxw2WPJe7VV6emb>X1c zx)E43!#Uq)F}FV1{&*E(hj=q*W~$fPmO>Iv(itwj`%)+4mK=PvcjY~_ zzR_<;#_!}1SBJBn>G!_oW4_}F<9>_iDZ*R;f#mSN6D+?I40@C~+*(laM*YyIX5q`T znzvQSFliwTatTp&Z&)+CX{?X5~7jK8wo{Ia@6*d}wEw25rU15~#fchk8(pHWoD;R-ceCwa!vxZLy{mUAz z7iinxEp}xf!n{F*U$x47>%XJhZPA>}JG*tD<6e0k@W*yk5 z2M;E3GJwpCz9=AJFxykix%)Kto@mD-x7&7f3GjrxAHyNvCKOlv({rSqpG84`hIQ}0 zP~H2jQEvMGWdz=hN44Ok4*#l&bFQmWZ_V3lRH?ELI+tpwi>A+`r)Fo(eBfj0OW!$# z);2JqQronpy9O~&)2r@9&oY!RzXmrQ>fx+j_nwWQP!o6q}*fw)h9a`f0oIZ9qJAy_5_Na63Ps z{9%B|-73Hlwtl5~6JRP~toOo<_kBR#3~@Ap3*{|iejzsXkX}M+R=K;jv@KhkueeyR ztoN?|y(u@x7MGGXuUNtPf3UeY$4V8gWmDH1WlHMf3Y;HIR8sJ z>;@e?;|^Y-Q0TGL_1I5IDugosv_6TFnI)z%F&H z_Pc@qY|z{HEh`h(>Bbwk06=GUDUy$^zIgY=w^E%CHg==?9<02Er0JgbF=wYV_u?~6 z17v^2yOKpRqyKL`*ga-Z?F74-uP2H!-yzegxWx>G<~6?T%7(tw12A+QSVP-dvA5Ri zUR@h|?WTPN9ptn1WXt!XOVExj>@t39jMg4G_m)3png76Uqg;HHW4=C)#(cVPs&908 ze6Gjod6to(vxNx_Q_Mvl+)hi~e$=9EJt<*=gVdw^ z6#~w0F};ICr)Dw&Qkp93?~S<-M=q`9@-{JPN11Ve-M9js%`omK{?6Mlg#FeGggcY) zGG*N7(%LcV+OYx}yNiZD88T*&iYA)2dixO!NQ9Z$9j zM)i@xP?AkuupgKoxephI^ixCtKH!Cq4M%R561KKfy~jW^sMT0U!1ZCf*#@K)hl2PW z7FU-_$_(_?ie!3Fzh1X){U-`Qm|BU-Kjmtmgv?v6SMOni##@btbe1d1@%1_*4L!2U z4WA;=D#!e0!#pULFvO)oT20jYHaxBJ&}i88WhvgU@sHe+K+T8tmSq($9_Q?qG zK;N+#sE*d|)RftJo?mu~tPkp&Vd662@cTsCGDy+A0bt9x&zNvEpvpVNAtq}tCB#n) z%=B#7iQ*sqX}Hx2oeb(B98T>$H#_CeN{m`#9%T%6X+*7694At4xK_Cy5|8}NkGwqh zCWz<8#ovPsUmDFUt(7O0rKTt2Q)m^cE_V|^JGg>I%gXEE(8>+!eJ~>yW?-k>qwSOG zaqZu;l~4Ncl*>=8)n8=hBFMzxp014I&@W$b$d7rV2^fJ#qG z$zdOH_Azuf+m1uuXx$AKS3(YGUw;jr{&=iyukyy!cK%FZBVrn8JI8&3;YV^6Dh|Uw zO`M&u6%tPeWKGjpH$s~xO^1#7*d z=oN=V4gTLa(eFgK`zLzKCS$y_Tyd zHA)0r5e!?W`wTD&S1tU@*;nZGW*~7-x&f}+8u`>!>AxJJ!xa|l zg=*Hu<+M08t5Wdu$_MY!4}6r+`n;O_1e+*K3bH$$ubnShIJMFpfnY?^ru$!OYfoGD ziBXioc6e{~S|{RqDGBg{_E`9zV%hM7~4JjVa0<$PBzg?VCLOM z0hUnhKL?^#G5>w0h1@10LsY)`r}EA@4E>zEtgcQEkJ!QGL{?j0;|i)b52 z@`aP~z_!C%9{`LGk~~+=FJig>?o6_|Rw!=+$tCZ=H}=->xKti%k^gl(Jd;b~ar=n8 z9Ui5DKjtk(^ph;)#3COAX%=wU&#x(h{fESr)j%s zv?}HnkvjmwibmJ5haoH{ZH%?&TYy6ID8c8f;nEWXe;p>RmRTgsD(WM1s&oc;FyA^J z8^i0R?{2&Dd~m(hcsL^r3ER0tB5wF{yB2L|{>dARskDIADkY{XZ-rP}Acp@3Rk~Vk zr)7r7YaiSb!1*K0`LoFXSza|$oi|H;n1(_UcLIogB*ZewKc2enOs!zj0X%x&*IMeF zIXeX-ZihgFtclOR7 z|Jca}d-PmPvquxyq^nF4JBjl2^G3bAc#^nOeT_*Sz_8HE>BpuMl5QlqeL_;rnPDvf zA3R4xpF{P(z7pxvr5xNiXgJpSbA~d&t-RvtA{B-n?LIvljl+ z7ZQA#@^th)#yiUGG}bm6r(5~yd0I)!Z!m_Lk6Coac65`uLpmd(*NGGA?9e_Cg&w;q z?t1RPIYHnVYu}D!Mj1$cg1mYh>+T@tTa%zb?J6co>yA?Ak*l;I8_iSv_>HuP8pioi^_D8Vv zSc4YFQ)kCho7|l{Yk@yX3#9G@ngf{WfNEx$39GCR!w^B%yWTtg5f{YEp>C#ljC*C{ zavQjr$W7D%LHga5YmZ=;P>@}D+%Ne2gQ2ohkQ<9+_E(+K8|v`qx4#ts zesi%4+COc6pX*Ir9q?X8v0G3_&rA-^?(n!&B2$_;o$NJH32V2aOsa=g&PsbjHq;=h z{+XdEnmz49-t~yqWO!?&*nN-Dchv}`X5~;-v5y@?8uowZk|UUpNQ@`DQK7)||-`uKX5C`vaNy_OE(UO?yAaW(hE1 zhEf?KkftNm@1JucvGot~?AkR|5k7CJ=W$I|yXZA%hM-l;#-OsHKz*`SROsNvV^M## z&~Fm;wns6-s?!W*xQgF4M(XSe13I_Qkfoy~T6Ez@ni4Pd|rEPtlC4U_(~Sg`3kA^gcnOB(Rdbb#(C z!`EY)^ifVBtg6~%@K3eqpmvE4YwA^}%Gbcwu@MDf0I%VASNlF-;bCZgqseU2kkdol z^WXxQ!uG$taPCU5;3xT8L#=ObcXX-63LLK)fSaZ0szeE&xv|_+a$M%!E@!UfQ1Dc? zn?f~`AGhjzUy8<866ZxZmxP(^h#}xch0puBPL5Cv)aVrIJM?J~AO0y(*2MJa^ol>$g31*e*1Z+7W zI8Zb&74hI-DL%|a+tntLsI#24iMv!?=}VZ4^6aN4gxv%gwF(xwff8JL zWvg~B=#yrRa_4E{>Xhdp7G1(!_$61Fl6_VJU~2g4;I3vuNRM*MRJ^~~QjqzVl;#5K z4Da1(pnvZSpL1_6^1)^aB7v~7ohUp~TcnpuOT+BGI^UjW{>r^Jc23A&7O++!Vq0Bf z(#*OWazfHhYacn$dMs~R&BVVuz2G(afX(IVOs$poCH9^&1j9adAYBS2(Mwb4Mgew$ zip|EKZyZ4@%3>NeO(sT8Lqv02(6!a0rzYrTOf!#|+#~8uf;U1^Qsju^W2!in9s!M` zJc72JT(9(s8vY@~?CgeTsu@G++q7oLl23X2rPLDlEBKXQh@w2QEf;QpI|NPM{f%-UhhxZon0$0qMIRZdIyWx$q~b!syB%?4(n&adnXcj4cBUB>Kp z*R%{}Ai902V$>@PY*OZ~I~ss59I2CB`oQ%FhuTV>T63qhrAe9xk5Vm34p98umR z#G1p8hS;{t)k}86>4shn0)rmCc2;2$Z36Qnl4Jo;ibNp8G1rJQIQAK=@L%P{OQ`(P zM*z=3)R=!87suPCZp(lfXV_ctQqYvh)Zp4g+)D1gJI9MTq;>e6FlG z>rgL4C@s{aK$zK8Xnw>A;7KPuD6%_dz`H^3797sFkpyA$?Lf_;h^cGd4s3&JyG$du`POJ{Q8?(v0T^$7j1}R{);5kfMh+1{3H0kQ4)R`n+FwJ5n?~v0h`Q&~`g|}}lZo*iRMMWS zb0STCwHef5@zH?Aa%|vAqy)p2JL|fQX5L&rOP(}b#j=x#Jysp9n3R7K&7uA23S1v= z&%u`|T1CAzQB%sCo>dHY0Ye$X&m1tWJtX7YwZ?1J*_Gi`?)8QmlX?YH50Z+DX0IIP zOQ&ORHVA3xovy5F)Yz^;4A9p7pM>_RnLH`_G}jtk?4RQ{@PWzx)F}~qF~;1Qk?!8? zNr~y2{V4DPZbIu{*ub+weQDQt5x#4i)87X8+S_C?+Ck1)6C2S7>81RYXN$KBgoC!n zq1>o#Wl^lJ;8o62S3vG0I%VL;{Oc=>d8C4Md=&Kkct<584^uI)xcwlYusKl+Gx^ci zVCUJI@(?+oJT0w{X=i$%xWzWd2U*un^Z&t)f4;u-cZ8aTS1i#EyecYfa^UUcIXJ%X zj_m!qARO|1=YHebFE{eg?|r3n00xBF47+Wi0DmDi)R?de#7kCPG_5l7o7VvYid--V zm4<6NE@_E6!d@K2@Fg~L=$!%y|7e-ZVJR{HeJ-&A3v9yb5}~lB-`IUFPH9k$%}>~_ z{gf`x%&(-e84VNg40i;{az%&hZYJ8*5nS9GGshJY-Iuu@p98H(mr}IWNtvByv0|q^ zw6u#*pbClY)`miN7~Tp>(R}tDy;SVg-xpQ9#$r17rZGmf@X6{`iV_~O4gU5tc^*MzF^ zY2VlrAnFk1aSXo;bA8b6|0j74W}vtAck)8nIA6~65-$$XY=)k7DMi$TSf=jA9{mgb zt%`(K5k!pZx*O0Cu^90~UEga)!?LbomPHP|kXgNI*5%fsO5VXwfvE8toeqJPM}JG3 zYfa~aDz1J&&T3ns#f`ej!NlTInMG5N5Pq%CX$*=wYC+k(70z&)3lRCms&Zyrb;Y;8 z7cGdPkBh>xWOQzV*%G2y=Zj?iy5KF-2^Gw6a!_c|sJ+zf3S4V|)Xc9H_Ak$IQq-`JH>skbVt3-$4t@x3WlqpQ z$(){sd1|U#_G_kjy--Jsj&@GK{3n081{TN|X^(mB4`p)`kn1MZ)gO*EQwZDyo!taU zmsl;#O(P8XnsQ}Xac7If$YIpEBc8%qXLHxo!A95Ngg5CQ)vMV0B=K&y4tR7aa>7F+ z;JMi08#wK~YPPKP$N~Gm#PbKA-{bN>CokkMDamthGfy!+cHa(9pNlFkm>O^BV(bo8 zc{|71=4jox?qzwZ2xdVm!50QJCSa;NFLu%oW47uinColuNcEQIo0FlD3CPa@VLFGB zXQmc@CSzG$u-EO9OZCc@UlVLn-ND%yEypU#;;%Ko6O!O~d0RyiSbA2D&@oK`4w-HdD6T#@7p%fHpyfI4=0WOBw|1l1I`ltM#GJe0hx z5L_FyM^lAs(WYuPap2g?v@fZoCCsQ=j{j?wHxmX46^DpDvqPGmshQ361M|hCo~8YM zVj4mQBedaLM=DqLej8t+yt2(ri3faIS6=vV&2P;@xu$>l*?_A(Cen;$_Uuer>YlLm zoeErSCxrVnY%ENtLZYH`pZa;&j~4**SNWnpoDITcF3nnoZ+Pg`mS(}%U)iL!xmh+2 zO!#R6Kuq=e=i1vNM_CepSQswui22Iezr=2PbQ)XCrcm3cJTqmSH|W#smr@NBVk7L9TXe~!%Q~<; zBRUB2P!d$mVOU;BTqu&tXLd|J03}93+D;2aA~uaD5PA5A<}+g1pOMr$l1gSykv21uFaP9Jz>si z`8^9}!*b$!UB1bPt;B9Vc23ZPU{Q~5r5bikzqVnPixWELDmE-+@d> zrT6gpZ4n^5(G0OHkKm(tk3-Diy8~sdb51&jII7tabT5*YD)1szKeXhmYH%jxMOf?+ z^GDE~L?@^z2Y~N^&KzHPYY%bRmnZQZLa!6#1nqgW~L`sQQKOiKaliE74_=EYptC<%FVehX=l>VsV4-n@&0hO z;@2JsJh3z!D#?|g!)Jei_o;WO+N)To=)WMn_?Hv2v^kADazx{ySdPyVmv49llOOK2 z>*{`m!p8u#IR2K_veJBJIS`QG?K8X_mq+R!8)`&1S!RV1w@g&&6uKoejwQ{ExoA=w z0S~q23)pf=vE@HQ=G?6X)+C;docjqYYFMZl-?ZZIe0hT~O$&`Qc7ZRyzRTlnckR37 zn89h-m+>(&{76Pd_$9eWfn@|;{mz?0j`6f&*ab;a^&gL-8A5hpW)vvZt0!? zJ$rOQjJ=UkbJ(+L+2sZ<09UgUt)!pxX8kfQh1vn4U9D)l^V>w&(YxnSZx;)B5Jc z{GHL7)#?JFat zDuN~_%VK?t@0?WKn6C=-+R(TQ{fPvcAgNX7%h{Z=1{4N)Vday z34>)3n7%q_g9G)GZ7X9LqnfTywMVLAw|cTJ(0_j7n?`z$*as?6oL9>I=RE1&W5ZD` zrmor9df2cjxxK5JANAZ}m2pNS^_Aip6FDp&F5C-%pRQt#j!wLiI4Dz=JU;xG<9!w( zoC7Z8f|DMYee&)6fvzGwg%(B@s>ow016Rf$OHJSOf#mgte0zc|u=T#d`A2s#YFgOi zuZ9hQq`$jxSs!v->R6k<#typ=F0s?nZ}YZ??cJ%4>pnT>iCUi-DcbFG7zi~t>wv?95TDF(5GEv~R&*io~W#XSx z-@g%D4__f*E~z4un!c79)k{le1@;ui7T|o$9d6W*Je$jJvygBV ze)4CfqZ810T@}fZxGY<|IA9`mF&qBV=d%aP01a3vSe}Ef9`fv?dKSm7+>DqA_q-4q zRE0jDbL>a*0GOWCpYa9F1d~Mvo`j5?4wtJtAPyVWv)~@^L?%#+B3=xdt9jhdZ zXz6ix?-C|O*tt*D$C8-vOnicP4RbWrN1|q9cg9 zHo1`p?pH79nSmNDEZ%b4E$W2bF^}bE1_ydAzq#J?wMq}A})0ZHWlOSd3oG(Z0=P>4PnuRIiR!cI=1Ls8@6Aj zBIstFd?tmuOnY9`2TalCuRi-h0TxgO*qc9g$Uk5yMCOh%JJ5GafZj<7SRP_l-|yPD z=g_Tx_8xzKOW;JyoBZR+k}(^oF+#;yjW1B&G<+={uPES}_!%Al4{fkG)7#(*$&TO5 zqO?t@guq{i%rk;vvirS-j-I{t+uE~Jt=M)DM@6vQemN;RBspoS_!?OvM+J%>=N7YS zyy?S*{Fv~zW~D+fvn=@8bw*C-*Zy-r66^cI(H$z1cuvFZd+oGctY-7k^VhHXXqKrB zSeJIS<9CI&8A3M8km_)#UXzv8Sy5@4x%c{`1lAZD+>}4gL>%Zy6WW z*2WDhf&vC5(%q8MT`EX}C`flVLr6;~C80<+2uOFg(l9hLbTb1CJ@gRo=A7fX@B5th z{qTN#e!u7I?7e4Q>#DWab^ZTq2lCN&hvF>>-FmB9ktPfF5l3xR7QYul6jcuNe4&ew ziIhNX@rcNJ7FRNG00dltp@V_Mx*Vv>s$JR;(jX zc?8i3R{CnG*zjOtJYT)|thuSzrnh1xQe;r{c+y0}v@fPXw9KJlBiB4Tg1=&LA>~&5 zM)hd5egi?|75VX;+YES6Gd@rVEElKx#_|U$L(MvL)jL3Oc+PXLwCNyhW3I7wW%1@SlVXD5P>y$BHtM_U zimQsU#H9-oD4!7*$Cto8$~&J_W}nErBd_@it`Eml8pqxoLWp`BR8MqPYj&2iyM6WJ znMmP%mSl6XA*k`m;9Ka_w*arnutd)?7V#`1=mw(3I)A zOGB;ZGi4S(g(nSmhhUaU^dSV~kvVH}y4jgIxOZ_VZO>139X>98k)YBX+JXTYx)je73O;kPvH^ z0M|LKeC}h~&e-pdTWR5pp73=ipL6e?8jbD7=_3R0E=yb3`QARJxlzs^A;p2_IW_Pk zYa=m|a996LmPf^eL4j4s-s@(bvswg@8ESv-1CCn*@|m;DER@S0AhjB|tdA3Ajpec$ zr3WpCG9_J}EG$HRuo<7g5K4<7hKMeyNL-G;WSX}Q(nGU@>bVzJcQud)HlM+gHC$}I zX)^BOPdfQ6aA#`3U#5%u3{>=U*kIK66WJ*W&EIosSVTAEgjQvRyObkV%`uVTWNT^+O?<2D*Uz>7 zRR*2hVSGJ&ZPH>lKO5J2GJJgQ#<)}U=osMpZ&&pivBf&IH3Ph8C6VFML9bhI5=&H& zwXRg-EVNIYK=nMa>>5on%M(~xeC=ivOSumpBfN98ON+3*zZAJOtk|MPcqvfr6L__6 z$#XZv+5fiPs~3`-2Rm!DYW_0OSa`s91GEBOraNPkCQdM0W(Kz0;Y}AA6CT^~#)mth z&E@1x#jW^6fBYa*s=%U{%nx24n+){rpWW4RVddxGXxODfc|6{|7yo3=IB7@SmM|}4+(?_-V4OWr{W9@-tu^52eE~O>Ua|*be;9a}8A~v;sJNArcn842^D1@Ap@BML zRB3VkHtrv4xDiGY9d{W6O^)yP-2O;Qf9QxFxFW~=<=$U9`zvGJxDPcN=02MLchcWu z{}$|nBtCG3{#(!QH-?-4`SUqu+}lC#{Uu*N{QH;R5>R6SSMcRm{r_|GUzZ+-+>&mR zq|U$lFA1W9Zb^$`F&z9Y?BBv+zqm!CPaXZ{-x9o%zD1K3gzxcNqTl1+Lc^f_fXj*d zs^H%e(9?XtRgn%A{kL+^@FYWsFzF}$Ex}h@$q=T@7nJ{2jz1=K$9?p#*8i434!H9F z-#keSz5g|gYC3wZO1ge}-pX&c^kirYdEdMYGySLd!;@Il9b_niwxj3&@$)~|qh@@` z5Gbp?^4-5R`j@m3sem!cC2s3V{L_NttbhUkKZaT4YX+V%bG`(@23TU^Mip7;rYPS?1(1_HtA@SASk1HjRqa1=XND6noInXm@3kgEzbPw1yJE%KeB#KRtKVhE z{)ts(mDRLMn&p$oKW`2}=k}4f*C!;3ASbwh0~@1Ci=mng5bTXZpvjuLP!5Z)a#?Yo zCWQdXfCsfe&G9PP?j&%@FMs{P3j~mSW44*I*iwHoRKL@%dMMvKLdk94 zc3@x-}-Ha%@|3&7j-syn~vF=9Fc#n z`Mi{X?{$Gn>tFwU*Q>S&^Spc+#trucANO~UpHXHR-Yf@_*>oRp9b9Tt?*9(Jj7-cP za*Aj3s)s_Hfb;o}(zKE9kJb}aq5m~Ye;LU(@I!aT9eczw+3f(&#*PSq`AKrm^~_^$ zhnBP4`lU}~o7=NFo>|Su)BU!sm&Y|87Aa1j&JOxHf93Wqn=H2ZAHQE8&V*e9IIEvk zpC)f!%j+)=`nU5Zo>b@KW@=TMo9`{Qo3~>SRZTRX%zG_)V5|9MZZcP+)P5kc(w?GW zI;Elio*K345PHhG8||!}p0}7lp0Ns3=0uB+mzPfrlM2TMV%8)|tcdI444w{NiIUK- zs;RM_cxuYM+k}J&svu$DUsb?X0`kfxY=n+=e$D`e z`>c`g=~6IP$)rfCh&w--eO;y)_=j5d0I=P&Nv#;)kuAQ9uf_x@U3e**>+g_#CEFHi z&-8N+(wSEn`+7}YQra8Xe(|LH9BZk4d|!XSV%nJcvMogjq!`1fq&SwV1m>TyH36FD zY0_zoHhQcjby-uu_ScTm6~7Z}zlbpU-7$Iso&Irc^!?uq7dbFi7Ezd23574jHGbc1NwICYTsA?Sh#DX<6lZdT zllT?fxb9bL5194ZAfQl}G;{MMh#j~hwIN9(yarrI$qnVa&D4;J33ae@-oA_7)@yB=62Zix_^-H{$(XSUKu)MXiDT^#Y)c@b!E5bC_!W{X?L9g8cRThulhvXgKBHWFS?7g!MH48vBG-`Q(lc0p^-!scAbx3;L-tjVLM7)A zwFbUF0oeM&i0PQ;K7-QGTqGC5p}sLOZ%VgYJf*Kx0=71Zo%gUkS z<9W7K=j>jI^v?r=q0rH_Lm=JHl!I)tP{z4G(TbM%oU?JOg5TO7<4KuLtjNXQuV1!FwHH9deeAZErL5*F z)w26mUrk;LPI&gq^6}AHya9ifC9FK=a|%=?iUs3>4}mqIcF_(J;@;@CZQDFZckx{==Cfj3yp}l$9Vg29 zb)FkNmNRwj)j5I;eDWk1NF=k~Cv)yFpkDb5Xx5~V@R%z`Si7XV&ADol)dHD3*h!%c^y3g%a5Z~;VdZQ3Q-uvpyKb1_u9?|HrlkdP}6tVXgv zPFWWgvk{f+TV{UTs?21$rCq=1ca1WD93)P^3*84l-Os9H#9UR792ABPB&JqQrdRq3 zETCt-Oh4&vF_aPWOcvVvhEPOBzBNcI37D$1U@90|bDt5Cs;}d+ftA8qBxhTZ(>zYS zMzbA~#2b|mnVICvd%7g3<*i!wF}|p}T~g#$8QCw-6*uwgQwk6g<6iPk@|Nkb$W_?z zfI{hb;$}o46KS58(epAn9hG;os$cw?M?h!Y_!Z~g&(6ent|s!p*m{s>!D+sgRxNGP zzBOAYSKCUqN5|qYW6;zGeVL)8pDXUV#tkkreBRr zE|==!!FEIxc%L!HpDfmVT}%hkK-YuDGjilXNG7ZHu_ zv+Hv*X8}hw98!vTCb&ZNpcK=^O-Z}JifS|q^iZ^)hbUa=xs1HjIQ^Jd;O^2ANg}e%>czPpvtg zwn4ppM^kvbTlVV_3|JORmn1S}y1v~jfMPIpxE8hc`(B=FJ$s6G)-F&3`o*%84$lxjQmwd5v zq^x0y2ofOEaF$c$`55gqEWZaW$3`Wd-H91BMo-L8*t^0__|!;Ea2VPC!@YaZW*Sd1 z!mAr`g~mHPmZDYd93p|MtM#CY!YZeWG>^Ez+)Lgio) zP6Soh-WlAW%|*|Tb*7yD36;wG3B|-i<%BCc!x~>WVRz!Mp{C+?r3nK+`vfibaJ@ja zdHWsbgL%lwLLBKSf>Q!r1N~ldsW^(u)*&22J83Nd@vh}un^*d35HXb0dYxp3^cLJ< z0PQZSZ&ece^!B}7NUt=%i{@RFc;4H1jFNhSL| z_>K7BkJy`U>XyS;i`?BOSX36ccOjO*$L4_;AY-p*XfL$Ei~m6!pD{MQxVfl$iYRUU zEaT5d%4&0~{B;^wU||*;l$?L-`qhQPtEVCHZ1;4dnRlV3>0;kJJUM7MmONL#$ZGhx zlX#VOO2rXuMh`RBqc`k~F~sW{-}DDaHnit1Agb{40*^bobL#G*1fkl|m*Y*ueo{$M;*QOr?ub}SJ zR(T{!>HFzQsS0LCTP)s(BeIYJDG2$~Josy%kJ}Bja_sItAU2#Kfkt-W2je=hxhEk8 z!X>YzPCAnI3h=?PzUy(w&-#&sE!XB@9xL_1icu8j(<|!|_(ypQ(LVGuu~wv?Lu7uH z=?oUr{H&cq5?AUO;!{2x^Gh<{X}qd3d~soxe7ISOL!1~@N|ZnVCrHClRM30p8(V#6 z#I-Q7wKIUD&mN$_q}FdV1s0iopiT4GYgiO*yi4oOGIkwsoiz0fg25@~5$|EVPG}?+ zxZ~Zd(JcR&=ScHHU-l8VjRQodQRsQ4IS8D0IpDb@!NWB)_*gvow1&hJ9Gbb&s_0|( zwfRkOEH_~P4&kherX}trBkGYc~@%T{l&&s6hP@4o>0HPruq~tf0d?c(IZ1hTdVPGLQS%*_} z)|-FBPDg`6F!kEuxyVEMBDVg)#?tGdE#FfQ^LcZm*+34QS4nVh6`@#YNZHsT!28h1 zZI3p8yGJKdMV-QoIy&sbK;y}bgM%SPcTu9G=>lKA*;j#SWc~Jz}9IPTNf++`6HnYPRgDBZ}Xv!5yT3^eNzck^l^No z?ECZtURV{a*Mqi4tMTA!ATGOS_&3k(>(`#J0^kMqOolJHct#N^T|#6r6aECi*$Com z-_)%mro*8ddFl2u>4i#iV_wHwR$9!h1KF3<>dshJiNS?qFH>*hXF5qinbiv6(oo+q zC4t0XO3xoM8mL?m!Gi->^+E4#q^JwuVy3>gNjM^zVz zIyicCFyXwCUpSlIsurJLG!}8XOMG)n?>nhAHGmJZ6n!usqrDvr15rc%jbt7JMJd*P(|HMUFr2cJg>kL`c6wkFS&1_hQ8?E0xjG zrFuw>2*RASJrC(22C2sL+t{C?`O}FLQ9cqjU6ll5gsKW~>e`-&?QoCT&JWP`#v*IE z-?~YSk$B_nESqhNz}LgAt6ow(!Code+l}-=2+pY!?K&XsN^N3h`nXp<0>`)gYO1+$ z(ym^#_Uq(XXZZ8LN4fWn)6ZU_^+yD%)VH%$yqnOKiKRkHgNgFIH^;osvj-b1KkWwM zo#?BtB#sJYWqO2vv>h*!@a3UGUyz;pS=T20>m%&Tpa{{>6SN$8$<_(r-M^XeOADr^ z7hk8Gu>##1HmT8JU@m#x-d5!h1RsDGN(}t@@ zW5&xl()=_}wtJGqibEkhK1g`{vTksHyLLhQlW~5=;C(C&q7G$R9VuEp={MOMBN@jE z!$jP5)xRb}ftMN1@q%fAx9%P`X4tg!z7v^Qd+FB~d2yJUO=+<}nS-Y4?yzMAYxbcu zx|nRUm*zv&bs<5(OKd_NQ)NN@6H`k&vBGHd1uFqpj}BAx-RE5SUep~}o9d|Z==L1D zQxlw64xc$RZu8rSW$>P`$s+l3SL*#pA~p)@H897&e2@v5VOKYMl3TzVTr<1`DB@Yv z0-xrVyrBiDt2;c+y#|P%b-WR}vX_tRsuXpU zOriz6iLOq?DoseSU>tLvK_}Xba}P;`i|RbzpIcBi(UcjUJ{4827{m3`v4)zs>ppJ5 zWXE?gw`<+~Pz2WFa+HT(gZ=o-vd%hDCB3!cJ`!8L>r*v%UNS-4e^uguee%O>J_}pw z5|h0PF~zo?Iq|n@kexLs@RMM-O?8MOy>kEo@Y0O z`y_q&0laM&XaXDIX<_sv>g8q--oajL*UhdY-Ow1GT@|#j#fR_c_pymbCM&}E;M!7= z`^y&?lO2mx5x)IQA7HO-3*PLKlK9mnbWPem2{%_90oEAMDm^yEKbuze{I{6WNysJ`Gif; za%w95FtchS@)AGQ_~@wi(F0$&Z}}zJv#5Rzxx&r@m`%Ot0e!QKssYmQkqxgUFK=?9 zJFj0odB0H_>Wf-(HJk2pjL;0M_F2Eg9@eJg)_aQZ60(6KL5hxEU5|b}oXU-}3pywE z-4**cdgh%vyS}Dfh}h>Xud$Lb;z)61^b z`)()(?tEz9gZrGXy;j-me8TT7ye+)TD&8cJYaP}#!zpIuc_b!8*Jw|+Yp9QtJKuAA zCfK3X@+v{-SJgYiCG9ga;a%z4h&!NPhS<+d9+1xUyVpO9$klh9cpHJI*{cU)R5yjH z3ea*87)Ue$ND-N=S5mpnKv&zssevG-Cj0NJ9L=D>0l|sgtG3xeYsM&e&X-1cQ zPMVh;;hy@-}cv?cURR z)^nB-kjrK188Da+?{sx!R!YSW`m4tJoqDf7Y60@jnR#KPhd%G(IK0=0KXjgtf0|!( zu!c^3`8y~-`-p9%B}R*zcq6_|EqbFc4tJ(Vv(?b|K%<>m6K?q>OeF1aaGexdb?96; zE?BY~IENzw#TEqjYu;;5)ubfim!eBSQMh{)S%DH*`UjK9>@8%XnxL>~lQMeA6T zQ^y?CwZf~8@;y^$u$;8CdqCd07Rd)3WtZSR4`cgERBw%wIdpK z&t|X=_K~x8))``?U6oB;V%y@B1ZU%M$4Gn(gwkAS;hwDW+o%AU?|fM)tf$#U^#|ti z@kqf4N7i-sDj(GGQp3^+_m!?^=*f>Z*OpsvN^tGM(3yG)$}PHCd3|I|O z{TQia_VNLJb&=@XOwD)K*jHom+ak|fGA48Qwvbd z_flMnM|w00AO}N&C z$XJN#J5?VIjKCM{C@+SlV2B|mNKc+JhR2W_WmUXhX5rLRE(?A3J(!;Dm)xAn!(Kv- zz6wY=8_A%UX^i$;%QJ4h6Qg)G$tTDSpOr+Std~(Rg=E9rkeG+Kg{suB>R` zFg;I;6JBzuEi?4dUd+vI)cn=m9pbo%OL-C`yRP!Bsdq0L7Tx)Ue%PS z=myoYpb&9pd&Y)WxbO;#8q1k|<-7M8oBCQ3GtQ)T;M66oPbf)ovD!8+C0&kJK12bN z@O234(L@#7#OeNuUW~K-oT#JLomcOzO!czI%7Zlh2bC^f^NVJ@a_{#;MFKpM6DjPD zCVj7)g6anI;}2p=DeYG&yllCG53{jK6Rjp96E66bQbpSz)E_ce?$@BSM>h2zT!`jW zl`?#xpLG66sHw9+j$2e-G_w90Q=5A?d%twtvQNMt)HH+!e0i0mL?Jph5T=PBcZl@t z7~G!th8_`#0w8u#^S)n51U!R;mbYf^sKY*9tlph6C|jd#zksO^G(*#^hd9&kBJ5kj zt#*saac9czUd)8qsf5aI>X+6G#WCBr11pRaCo}1X7Hz_rNL-GBR1?>o1>(B~CWGXUWKu#aahsbo9ts8W9*R>+QQW9Cz`NF0O z&aI}=(tsY(XHDUb;rg0>zoX=6n6qh5T1O^#0>J#*2s$H@-5VJuZMz;^ual;p#yTE< z^!`K}nzh!uQ2woKBIQ_jjFSHIoL5p@538Fhs_H?KIJR>_UJlAMlR6yF^{HJYn7?}9 zI()9=bpaKPzPx*2&9?{sW*YB`<5=osELYj5iyJT04a0;^55?On)Z)n&Djg4LS1Giz zBZZ#FBneHkkFn?$>cXu!wxx&*wfVCrLD)yPq`o;1|k8ajXuJ=_x+rb}_b zX{U9#c5%b?7JDp9Ah>eLsaL5;XNt=afsF6%O;Xd6rn&jSG(x>Gq-IkE$0Vyw(lSfH;LOXay&n?x&p!d zR6qVaYk|pEFR`t7&V-4zBlhZeok^OeWH5uI9kc$Yyp8>9?o`bhDIjBe(o*}=_{a2) z#6sNTV)#NqSnt-9#;mf{Ue+oj0g!HG*xvW-?{aunX{Cx`4Cg7mPBj(y8TK#q%}!|LrZilDkVrc;EoMM^#KR3UdY$=HAn@Fu)D+VJGuKzZH_$-0Lrve zYzI#`{LnsP8*ip8Sj{1I+03kW0~)Dz>PmE6(b!xkHnirY0dujG03Z+w)D-MQMw8r-I#Ts6^sV z6Hx$eORsW`kuXmcA5ck&-*ok zg(=*oS>{f{Hsd$ykoYAh^tImcqs|y>6W-<+dX)srq;EBY!*|kiiF+Dok^_0bE1J<5 z&&6REHL8(*tHj{qUf&*?-~^!8AiRR4kJG-M{Rq|f0&hPtEj$Ox@18pG@AMp{U?=!W zIgXjb6f!0A&QtvC@t;POF~6bRzO;1PXt6T<={49{YhXbN4C-eX{l}V>6!S_DYw9n1SDO(fji2MV`r+B!K?jVB z!iMx^KzS^2-H?PC#hW)XBoy|dk#Sd_>SPVM%pL? zGhw9I@#N=6t-Pf(X9~l7a^8*9{)mCuwI-X^%VnR`SCgq8u*6J|fTnnQ@ryE$CF6b` z-sSgpqHO@<5N8D~No9Z9f2(+@gc`CL)JxA;ZSDylOtqUAn14^l>rji=F0tc_5VQw7 z$8(Np&|Rc^AA~B!J(rAVDpVTDKyjv{Ymezk&4cH7$iT_R@5Iq(D=aqAwM#r*L`%f? zU6$tD7hD@7oWpS)zSX9Nm$2Rz8azlX^tlFqYtYatytn}?bc*eEaf&BynJF2c20P?I z3OF@`M1}h66J$gR#X<3OeQ#<&i$Zfa*B5V(?re9*&Rk6=A7dvM4PwF7L_ZhhQD{-j zg0_1zL2WShC%j%1e9Wg`?5xkpUDYD;2}q06&SnmqwE2-xgP&fP&Rn&^n$d6CDV(={Ff8d3iy8kQtk@A8(@?0arw)(ooME@Y z8H42Qemd#;?EKa|RfE91V18d@z6--<#*h3o@>J}7Z?^kQ<3 z1X2;!{;}?yuaBL;8Y5Jvy7wbM_Mzu>iuX7NNGm40rNY`BQYZRodUWI12PBIk-k_s8 zRIy278KR{(O7iu6lJdtk7H>0^BlRnR#rUz(&iJip7MrOK&X!eYzUcz5#*Wc`Xh>mHphfVUWy|T|<=z|5C$nEQ zxv}O;hRV%Phx_dsgbgUMo3u|T9N#8LK$U}IA-s&Zf!GJc*ZV=xZO@U!zOxf;58;wg zF?Gn@P-q`UBZZrN-N4Ma3inBcK*vH{#+LKq1}tgpxQbJ0upgz2N>BI_AII!vwyKNV z8f>rd_wA___Ym_tg&=?J-cw4QG#@G;df7U!h}wLmD*GV~!{HVP#aTK+23@S+vH zc3=occ%2#*s_}h9Q;2v>miD!=*5I7eN# z0~f=j?<=*P{J2CMQt@b%ruB8e!0kA>ijsQo#E8wbGy8=hc(KcrE!*BAXw}>LZFi z>@hi^z5!jjZmXYY>^7eALv9YB381~CE|F+>#hC!w4Pe9JpS0$5x2#RZPza6ibNxP& zV)?Q5j{4HX9fgSRHa~z59lVbfR3H8p^jxJizw1Y_66RGR-YIi5Cpys+?e`;hH&Pto zLsb(<*6z@&rZq(m1j<2SdwtmB;h5bD1$Z((y$tNRGomv<)v8j9+%x;Ke9yIM&S&kz zuz!Z)sQc%TWA9DW$_WV!5+37L?@AFh7r@s!_vTY+o?_M1ILn4ge9xPj zXB{@cmR1m}XXzUR1UWDz?TtvnMCeH_TX%%uWeOZIvqVtZxOf3g7e0W1@`$4H?5w12 z8Jo`kY35GpTJd?cZ6d^+5+E3D@5P*c%YOFp2PaAEp!f0HD2O7!R_YmLwiy4WzbtRQ z#o2mMVJEA53HVV>?!W;hr>qIkaO%0Z{DmV?g$D5;cej$OJ?PrrX-5u8ICO$WD>%~o ztPV8*y4_E<7#oXT>O8wk)JZL}2dFnG09BM7@28x~o4jfkuToaH*UoMbJ$xTzLK$FY zQcKWGQMrJDoe7#OhIZbh9mQciEiuj#5M#WBt0p6WL&!^e=z7tkD^BX-Fo8#>vZ=jO zS{_{Qa1oJ;4#n{o#j1K&X7+CRM6${pTjF}JTF7YVEe``UB;E?XhVurCHNLES2|lGJ z4zKrIy%QLyR^c^p&>r$#=Ev2ef%evG7_u$fIFv_k)T8j^RAQc{50oCs;q&&@t#Jf1^lGz4 z?fAzTeWersXnRtlvGnRi5`X{MoES9iF=m;ctsPRpfQ##8YZ)Y}GDs)ggo9f%tjLPAlTw_ z+n^IO>Yq%JenQ@NV;xR@4L)nI7>O=yk+8U=4B0I=-|XJ~6iN8DyTHc5o`2dr-O^Pk zYE5ho%PGFzYq&nTW~G0k{RvtpEp^PQt$DBZBQ~qyA0{=_7P{xJs1*|AaOK|hh9ZQ& zu@U40pp~?)9#36@f0!6BaP81~>4qBVX^9gXYliauQ142ojLv@q{xZm$RKhK{8=S@- z(Zu>{xG?YqJU&peHnLG^U@uB>Ip&kCBJXH%J>tCQSIgDi@z6}ThTpvd8H26C58t6` z*k`!QIgUh@&$aO1QNQ~&iGej{jKN;*0^kb+8H$wowdLidva5ERu8J;S3^lG+q=Jns zW{o*SJqt-W4@SHbBi$tqZILF1o(0vv2&=xw!# zmVl0r*7DwhI>LNMHwi?K777R4=aaTYfa)Y9u(g77!iZrERQn6egQM@Dpr9y$>!LyK zc@CbaHd}Dn9qGsZdF{0da~xleF`VM|;r^)aqr#6knH5ua4(zVgt}33Q+55?k_@bNH za$Pe{89|BDv}I&tv}GQpc~rVIf>J$>#_WsQslnga^RN6BHytSw~+mpK3&xsa@6&s@aYiM06+! zA^^+y=c?4-bqz2@ni`}-a~^%MonJ>3vO7n{M+G*WTWhkUGNo>tv*_Kn^OwAX7j0oc zC@IXdr_r4Y(Q-x2hY{b)_nUFB{h}7RFnD^#zkhKKL-8#i{m&-BkpE`w$YxKFS z>)qdz*H#|w$R;t|vB4l3*FwrH>WNrIGpox+DNgf5Sj#u{uA%@)8ctIT)z_-cyZyC5 z7p9|xhzgo7_Gnp^uwv z1{}}H=E~;H3qu&nl_cAa#qS|b`?S8M{E@N-LcQBHJinX^OVzd+MO!sy_%ys%gqDAczXam@J$eIt>CI|zQaNb-|*ve$-$CkQDvfY zQJ`lDFwM#dESYHr$@jaiR-GVXfvuJJ=ul@WlcF>>1 zlE(lyL}9;VnDK8Sz+cppAMXGlepqw0F7e;E_P^lr-)I5G2FpC*H2VJ#IRL>3Z&2Ok zwQ=_Y|A&VJ=;Jj#z=G*)lurJa0LFj-tj7>%qu(0%dxBvApC{+NrX|5Y1$e^-2+%pN z&GF!$lo9za00HFjF1B63KLrS50H`{XI{hF2r5lzTuFtZb)eAf8(eH9}4cZ)p|NFNe zo&iJ&w14X7gQOVnAe7ElnJ@l>1irY}aVv;m@*fjdT>|Dn=o_d2)K2h9jxP@`HFG8v z|EahPX5g-u?eaNlXlnc0d4A$fpZ$8o|995@VE~V)bbUr=nh4%;7NnWZy!~lZ_#Z-H z+-R9vu|QsS5uw7A;KV7OQo@z<50!r-0koGmS0-;$LPkg>bSRD7@G8}qUUL%rhXt$w zwii@d`b9aW;0W+`wi`Kj+)^0HZIVugj`}=>T<{Emf!0u`REKQgv!T0T58-Ri+_d7bnp^)6O=5dhlN#^Vd9uHStSOEc!n3)X;LuEZm=lz6T` z_+UOx{y_QS1T7b|F)5Z}Zvg6QJ$>JlDCXss0OeHQ;(z@oPmi81dbLrABZ?~Csuctu z>?M`r_*03JBsYGrq*VBgQABMg=>1qOpKOa>!}V7U7U-bsjZ^+WN2_m1Um4AIx+ zpOH80;QPy0mjUY4$`4%4H)zU+2zuq9MgsZItjbi|vIbpQ-6iCIvU`8{0guOI1I+fz z_kOKcr6D}he}?Ji4Qt6)5EO^$Z)-e@<#fUgtNHR&@J|ZhUHa&4KwfZEf6ZvxD36*hp9W~%*hEA7LM9+m@Hh~`qQ}n z%K(v#D44aHk$$n&#cBb^H)%P0!&m=LK3Ik?)~T_uC#;T_2##LcS9e)wSEc+Xo$nS} z>ibes27$%6~A?Z$_~f1c6JY;$GXJMq#^0Q!|9@SEL2j{&%z^hlN1b8nj2poEN`7Y2HC~@q zMVJEA&&+{C)dc{;U$W5odiIz`Oy#Ve`y3%mXf^uz008cypk$hxvMFsIIG%BEs7!b2 zB7p%VF-7ff-nf=G{uyyl0~-0;bu*l?*qRSV%`-nfDL`U8ksg5N;3=?`2U#t&G~euV z5wDdX6-r6G<#5NuBz`3eu9@kf=I%G^@ak9m+_k6cZ|l$8b8^DkI3cfU% zEHgSj&ms(8h!oke)X;N%J6576GFGI;lk6~EWfixwK9UUvs3HVU)UN=KnxO3WYP$b7 z!)Tn`Z|)8ndfyF~cXo$(`#0-0LkiQB8!tZ8Gq>ul6*Ch%@$FDab~qo05iO`49-vg5|And7 z|HbKt+jj;YiEJ5GDhva~{@x>wpRUfXZ?*uMNeu;1jk9H^X#rTP$$^iAdtNkGgpbIx z7Mt=+Pv=@iFf_gX<4M2DOI`8*wuDO>oU&WFo-vR!+{FQBk$ah zX?Q>|MK4|J>#eFWQ#`pW1u|PXt*#YdUkBz6zJ~34esUs-)+kWAo;a2ZR^J~K2-OJ8eo+yf1b_}b z062vWy$0b8^^M1Jm|Da$rC9fQPPO$!9~)4@J3a*1z=@$@jtoEUEKS>#^107@DKqhHgLf}k!EsN({Z1PMmH_$9H7hsHoXjJ3;}Gx)8(5+R zWj433YSaB>`~RoCE02eA-Q(rzgihI$ea}QFjT*bGjU^T3V9-J+qlV^8qzO@E8QG?> z4k9f$$sRMEj$I~Orb0Ty7}<+GCNNr#&NqPKUL*V2md6=-)^Y{e!vHio|zr*OzqGFQ$nE3_{q`0 ziPAv}8Pv6mmHz$xxibyTqmKS12)w?d)Yw~tb*PQrT!Qm!tJhGq1_ft1#NfC_VxRYm zmeHYUFzM!5eV-vPjY4;Mq*}G%U^K3dLRW)q%~vJ6UxswqQH$J{APw)1l zM*{=UCm?x#M=4{SUycSD=77-FemIR@$rcd=vQ>#__t>hfx9Y0D)dK#o$`Jf^)4)(9 z@cLaYH;^}sBI+X5Dk0fic)qTcF)*^-q|(iQ#eWNKMnE6=5vpVKjA4=9L2uX}zi^X~ zzD(&?IN?68_U98{ib*eqLxh@pC%j{*T3b>Gx?T698DX)x$0ft>tsXV`@ksI+*PCb% zmGm5-I9%aO?&>DM_}PGGhA9@QK{X|B>Vy@pA0pgSaUL8HYm43?_9qG0;TAB;D~gw> zYec2!+||vt4BgAkt2Y}X_1H*Q4=Ki3u;wf9!yqiN9F0+=B zEvKFs$wo0VpELZOBe{9h4B1_B*~78aThz%gcObcA%;=h1kAqc%ti#)MJ?BzKC;xNy zQenV~*A!^FJUzjedEbqY*X#|f_b{LlEL+Z*#gP>VABP5S*O#>A;|ieU)EG^hzObR> zF|~A6&ZY=JU_rlD=BdJ7;!d+y3sK`HNn*FDv%kDlG}U^Z@>dU_)f)*NYqwO_1l_ch zuZ#V-=+tsJ%yP0Rr7}h_l+Nv(U+RRs0Eau?qw8$6=tAqf=KsK?6QtkR>9fPum+`zzo-EKAx_WHTkgx!*VS zFbI!TI9w ztz5`p2S+Bg&|{Z@i*puqy2!A=?eNvlWjM|?%BGlM$-u2dNqy)a&I^S(Z1)^+k#I{d zJn8eCPlrl4!A)({OyJ$RDycj)(XM3~<>Or0@>?2p%)Db|(c6n_3bKz~P2g*Qzv3P& zk7|Ri!+iQ`y+-EwX(+ddjbuF7h*=qp@e0VCQ25?kZYI}7poHNOY%IWr#y5ErTLEgq z_FCNh_6w`P0uuNA;EKcN*q?1J zT=pAS5^i8}YHi!~BQp;(R{%=_b(dtw|CjUM?apIvDByWSJMe7Q&f57r!~3K{uP5u6 zivG(Jvf*w4BALKaeYzv&&URc(-_DAS_JP>jHYEF}qPL;UP5=k7O9?-d zqCEsvR~zn_^FN~w3Q*^jck(~*wZ(yQks|Ehi(TL|+5xy9Wt#mjFD5q15HRt?xhsgU zgi5U878*XXQ`UucBzbUCo0KCAGhNOqM{rYFR82Y7#64tZuBmnsqj=Z%c{Ed~%26OE zeeDCmZdk&c=9eVdryZLbk2=kY%S-mS?#J>-79=sz^H1E-D5%4H?@Xycg`uA z(LGv{--UDge%ZMBgf!=@lWln4GbqyZhrPRJ@fpzG96sbh**~n6C$aGeG4-vhbwg#j znH)w{nGJp}Y|s`7JUDpaPQ)ScH;&;Zo7Q?4#}cybik0y%AgpO;^sw+1Y<5g0Mf5Cm z3{(ityH)Y)%Of#=gI(+c0}7(989(TpKGkhV4OZmPl-PGA03OJ>2q*Zqax zOoF-^IWk56W~Feys$=m1a7u#g)fGj>r=D$Ose$ZPfAe+lbBpw?m2)j^bIVya&~jK= zbgnrrelRkr;~?1$Wf#saof3(hvqfP+09{mXy*t zX(oSwE+A%fz8CdTrQovvdKDKc;}_Ot@Y>EDTdUu=2{vLY$%SXarYRek~ z)&ov*u1sJt=kEDU`HVcO1+1vI#8pQgy+eaj;r1a3o8*yDBaQ$q6bGz>Za!mz%cdhL zyOs4S3t?&0+RG!`skxq28A=@_m6UyH*EggLQ45Cl^%j_79m*!I^pd9Q$CgnA$8U*S zdej9MZJ%}}<{-hg|jdho-( zw^;qM!hG_C<2bG7dH2P8m@i=;iQfw)LJ>q>P^(}C=o@(BYFcvTa5nv|7dpPWtpA-^C7Loy8fH)6@V6 z3#e#$;=}?}wjfoSG2eTJF}cu@`a;beBs!Vq4x36LuSCQ@2sHIBwwi^BpE4+%cfN|8 z?9cKVhxv%xtEow&HWu7E30fc?^*Ob*?v?jEKMkRBeX)UY8USy5zTs`a+E88MIG2)Y z>f1($o(+@KBB@BIqh(t`cF1tNU8NMjD>Rl}v=_Jd$R#7o)#mB{r354Uj8Nyi|!~ z-xV(9anFxo88^-_4PRz;ftZRcqq()Z*iDdB(T+ZEfFny=`$gMHiO?uxk6s3{xD1IJ z+-}PhTrPMQcCSXo^neAfE0PZ<@b{igD;yjkPZYuD1e+(uOP!Yj1fIy9hHK;RaJz6VJ z5s{XDT7M~u-apOHLVm4c>{|>5VOf-j%QeNFc5R2P_n_QYX3KAeUY8K2v32Jd*f@m` zp-4nP9BkcG$&s8fC?@sq&&n~DX~bZ1bx~9Bejs@86e|EkE4Oc8X3FM)o8W8I7kGas zWPuhxBJo%~D1>Eex;T3#OnOXfaulOyMj}=EA9-|}hkIlji?LkV7LGZKSJj=196D+g z&8D1+3*^+u3oKs4L>rl<8+@2rls}C|Yuc^7>xWP=NRfz7@qP_+3P2>^aA-R1p}+Xz zU80TNz(%<>__e^*zOP||xm<{7zGkTlfbmS>}>k-2~sj+tJhI+BBCW+H{VO z?lu-*=KyedyK6MH;Ut8=Z%%#M5w%^iQs!YS#Rf)VI5Eh@+n3vOVLBe_TJ5q$i508I zDSpNp_-Y>TA|d7!;O0M2y$+iYe>2j-LkexP_x-xziQFw^q)(0u~84GzE0%f_X);4$T*RgrXP)<<<$ shMDcwjjgd03J$y_Ki!hS*|q);sArzguXCo9E#MDsdfcSI=xoS80Ry1oQUCw| literal 0 HcmV?d00001 diff --git a/docs/assets/software-templates/template-editor-dry-run.png b/docs/assets/software-templates/template-editor-dry-run.png new file mode 100644 index 0000000000000000000000000000000000000000..6095fb5cb0bcb2b45277cbdc1a3899e4a4fa42b2 GIT binary patch literal 105995 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­uS@C_AyQtgfQJ!?pIS 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
    3IrPsF}-w2vn|VqnOtFAR~E3CeAp`vmi~QBPRd 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%0Af(^KDXA22toL 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

    -#3vN&C*=JV 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 ZfgBe_mkn Date: Sun, 5 May 2024 16:14:43 -0400 Subject: [PATCH 56/62] docs(nbs): proxying Signed-off-by: aramissennyeydd --- docs/plugins/proxying.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/plugins/proxying.md b/docs/plugins/proxying.md index 40d155e13b..bff38fea40 100644 --- a/docs/plugins/proxying.md +++ b/docs/plugins/proxying.md @@ -15,6 +15,16 @@ can be the best choice for communicating with an API. The plugin is already added to a default Backstage project. +### New Backend + +To add it to a project, add the following line in `packages/backend/src/index.ts`: + +```ts +backend.add(import('@backstage/plugin-proxy-backend/alpha')); +``` + +### Old Backend + In `packages/backend/src/index.ts`: ```ts From 0911fa60c8d6cf2ee521fbfe22a4707c905d9951 Mon Sep 17 00:00:00 2001 From: aramissennyeydd Date: Sun, 5 May 2024 16:37:41 -0400 Subject: [PATCH 57/62] docs(nbs): plugin observability Signed-off-by: aramissennyeydd --- docs/plugins/observability.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/plugins/observability.md b/docs/plugins/observability.md index d8778f07f8..bb6f5abbe4 100644 --- a/docs/plugins/observability.md +++ b/docs/plugins/observability.md @@ -37,7 +37,39 @@ An example log line could look as follows: ## Health Checks -The example backend in the Backstage repository +### New Backend + +The new backend is moving towards health checks being plugin-based, as such there is no current plugin for providing a health check route. You can add this yourself easily though, + +```ts +import { + coreServices, + createBackendModule, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; + +const healthCheck = createBackendPlugin({ + pluginId: 'healthcheck', + + register(env) { + env.registerInit({ + deps: { + rootHttpRouter: coreServices.rootHttpRouter, + }, + init: async ({ rootHttpRouter }) => { + // You can adjust the route name and response as you need. + rootHttpRouter.use('/healthcheck', (req, res) => { + res.json({ status: 'ok' }); + }); + }, + }); + }, +}); +``` + +### Old Backend + +The example old backend in the Backstage repository [supplies](https://github.com/backstage/backstage/blob/bc18571b7a742863a770b2a54e785d6bbef7e184/packages/backend/src/index.ts#L99) a very basic health check endpoint on the `/healthcheck` route. You may add such a handler to your backend as well, and supply your own logic to it that fits From b17e7bea59faebfbe685e58e47b8decd3cb09367 Mon Sep 17 00:00:00 2001 From: aramissennyeydd Date: Sun, 5 May 2024 16:52:44 -0400 Subject: [PATCH 58/62] add section about logging Signed-off-by: aramissennyeydd --- docs/plugins/observability.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/plugins/observability.md b/docs/plugins/observability.md index bb6f5abbe4..e13653706f 100644 --- a/docs/plugins/observability.md +++ b/docs/plugins/observability.md @@ -15,6 +15,32 @@ See how to install Datadog Events in your app ## Logging +### New Backend + +The backend supplies a central logging service, [`rootLogger`](../backend-system/core-services/root-logger.md), as well as a plugin based logger, [`logger`](../backend-system/core-services/logger.md) from `coreServices`. To add additional granularity to your logs, you can create children from the plugin based logger, using the `.child()` method and provide is with JSON data. For example, if you wanted to log items for a specific span in your plugin, you could do + +```ts +export function createRouter({ logger }) { + const router = Router(); + + router.post('/task/:taskId/queue', (req, res) => { + const { taskId } = req.params; + const taskLogger = logger.child({ task: taskId }); + taskLogger.log('Queueing this task.'); + }); + + router.get('/task/:taskId/results', (req, res) => { + const { taskId } = req.params; + const taskLogger = logger.child({ task: taskId }); + taskLogger.log('Getting the results of this task.'); + }); +} +``` + +You can also add additional metadata to all logs for your Backstage instance by overriding the `rootLogger` implementation, you can see an example in [the `logger` docs](../backend-system/core-services/logger.md#configuring-the-service). + +### Old Backend + The backend supplies a central [winston](https://github.com/winstonjs/winston) root logger that plugins are expected to use for their logging needs. In the default production setup, it emits structured JSON logs on stdout, with a field From 812dff05b9b99b7665c9d09bd00bb4a86799ca06 Mon Sep 17 00:00:00 2001 From: Mike Ball Date: Sun, 5 May 2024 20:27:35 -0400 Subject: [PATCH 59/62] chore(plugin-template): add missing semicolon This adds a previously-missing semicolon to the `ExampleFetchComponent.test.tsx` file templated out by `backstage-cli new --select plugin`. Signed-off-by: Mike Ball --- .changeset/tasty-moles-jog.md | 5 +++++ .../ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/tasty-moles-jog.md diff --git a/.changeset/tasty-moles-jog.md b/.changeset/tasty-moles-jog.md new file mode 100644 index 0000000000..f3ac3b63e4 --- /dev/null +++ b/.changeset/tasty-moles-jog.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Add previously-missing semicolon to tsx file templated by `backstage-cli new --select plugin`. diff --git a/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs b/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs index 1fe424ab9b..1e746ff39a 100644 --- a/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +++ b/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs @@ -8,7 +8,7 @@ describe('ExampleFetchComponent', () => { // Wait for the table to render const table = await screen.findByRole('table'); - const nationality = screen.getAllByText('GB') + const nationality = screen.getAllByText('GB'); // Assert that the table contains the expected user data expect(table).toBeInTheDocument(); expect(screen.getByAltText('Carolyn')).toBeInTheDocument(); From e96202968cfb06c768df69bee98dfd3f2cd7afbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 6 May 2024 07:13:26 +0200 Subject: [PATCH 60/62] Update .changeset/tasty-moles-jog.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/tasty-moles-jog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/tasty-moles-jog.md b/.changeset/tasty-moles-jog.md index f3ac3b63e4..f28b77337e 100644 --- a/.changeset/tasty-moles-jog.md +++ b/.changeset/tasty-moles-jog.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -Add previously-missing semicolon to tsx file templated by `backstage-cli new --select plugin`. +Add previously-missing semicolon in file templated by `backstage-cli new --select plugin`. From fba2993675b5609ee75efc880bf49b1878b03819 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 6 May 2024 11:44:30 +0200 Subject: [PATCH 61/62] Update docs/features/software-templates/writing-templates.md Signed-off-by: Patrik Oldsberg --- docs/features/software-templates/writing-templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index d67f886e12..bf21b91746 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -759,7 +759,7 @@ Allow to load a directory on your local file system that contains a template and ![template editor load dir](../../assets/software-templates/template-editor-load-dir.png) -if you complete the form in the right side and click on `Create` button, the template will be executed in dry-run mode and the result will be shown in the `Dry-run result` drawer that will pop-up at the bottom of the screen. +If you complete the form in the right side and click on `Create` button, the template will be executed in dry-run mode and the result will be shown in the `Dry-run result` drawer that will pop-up at the bottom of the screen. Here we could find all the file system results of the template execution as well as the logs of each action that was executed. From e754da5127336da75e6caaf2133ec0aa71ec44fa Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 6 May 2024 11:54:57 +0200 Subject: [PATCH 62/62] e2e-test: remove unused puppeteer dependency Signed-off-by: Patrik Oldsberg --- packages/e2e-test/package.json | 1 - yarn.lock | 259 ++++++--------------------------- 2 files changed, 42 insertions(+), 218 deletions(-) diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index a41c724d5a..e4ddf47d73 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -43,7 +43,6 @@ "@backstage/cli": "workspace:^", "@types/fs-extra": "^11.0.0", "@types/node": "^18.17.8", - "@types/puppeteer": "^7.0.0", "nodemon": "^3.0.1" }, "nodemonConfig": { diff --git a/yarn.lock b/yarn.lock index ea85c43c11..0eb13f4629 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12254,24 +12254,6 @@ __metadata: languageName: node linkType: hard -"@puppeteer/browsers@npm:2.2.1": - version: 2.2.1 - resolution: "@puppeteer/browsers@npm:2.2.1" - dependencies: - debug: 4.3.4 - extract-zip: 2.0.1 - progress: 2.0.3 - proxy-agent: 6.4.0 - semver: 7.6.0 - tar-fs: 3.0.5 - unbzip2-stream: 1.4.3 - yargs: 17.7.2 - bin: - browsers: lib/cjs/main-cli.js - checksum: c2ec8bac9978ae6279d67442a3a81c517db1e172bd4603d1983eb48de12b088d8b565b1817abe21ba6df76be9a68e3fc543d4c7111c964a93f3ac9b14f7c76e5 - languageName: node - linkType: hard - "@radix-ui/primitive@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/primitive@npm:1.0.1" @@ -16495,15 +16477,6 @@ __metadata: languageName: node linkType: hard -"@types/puppeteer@npm:^7.0.0": - version: 7.0.4 - resolution: "@types/puppeteer@npm:7.0.4" - dependencies: - puppeteer: "*" - checksum: c84a44b054454c13935a9cf0f8983166e238532397af4f321c918d89b43a91f854460e3d0dda122f72c258b444dbcdc04ada950e35adc1938ff3b7831c6fd7a4 - languageName: node - linkType: hard - "@types/qs@npm:*": version: 6.9.6 resolution: "@types/qs@npm:6.9.6" @@ -17081,7 +17054,7 @@ __metadata: languageName: node linkType: hard -"@types/yauzl@npm:^2.10.0, @types/yauzl@npm:^2.9.1": +"@types/yauzl@npm:^2.10.0": version: 2.10.3 resolution: "@types/yauzl@npm:2.10.3" dependencies: @@ -19655,7 +19628,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.2.1, buffer@npm:^5.5.0, buffer@npm:^5.7.1": +"buffer@npm:^5.5.0, buffer@npm:^5.7.1": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -20145,19 +20118,6 @@ __metadata: languageName: node linkType: hard -"chromium-bidi@npm:0.5.17": - version: 0.5.17 - resolution: "chromium-bidi@npm:0.5.17" - dependencies: - mitt: 3.0.1 - urlpattern-polyfill: 10.0.0 - zod: 3.22.4 - peerDependencies: - devtools-protocol: "*" - checksum: 522da996ed5abfb47707583cc24785f9aa05d87bd968dbd520f245cf8972fa3ec102f8d1d72fa07558daa70495d8c6f2bf364d8599eb60b77504e528601d8a30 - languageName: node - linkType: hard - "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -21166,23 +21126,6 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:9.0.0": - version: 9.0.0 - resolution: "cosmiconfig@npm:9.0.0" - dependencies: - env-paths: ^2.2.1 - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - parse-json: ^5.2.0 - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: a30c424b53d442ea0bdd24cb1b3d0d8687c8dda4a17ab6afcdc439f8964438801619cdb66e8e79f63b9caa3e6586b60d8bab9ce203e72df6c5e80179b971fe8f - languageName: node - linkType: hard - "cosmiconfig@npm:^6.0.0": version: 6.0.0 resolution: "cosmiconfig@npm:6.0.0" @@ -22423,13 +22366,6 @@ __metadata: languageName: node linkType: hard -"devtools-protocol@npm:0.0.1262051": - version: 0.0.1262051 - resolution: "devtools-protocol@npm:0.0.1262051" - checksum: beaad00059964a661ab056d5e993492742c612c0370c6f08acd91490181c4d4ecf57d316eedb5a37fb6bb59321901d09ce50762f79ea09a50751d86f601b8f8e - languageName: node - linkType: hard - "dezalgo@npm:^1.0.0, dezalgo@npm:^1.0.4": version: 1.0.4 resolution: "dezalgo@npm:1.0.4" @@ -22839,7 +22775,6 @@ __metadata: "@backstage/errors": "workspace:^" "@types/fs-extra": ^11.0.0 "@types/node": ^18.17.8 - "@types/puppeteer": ^7.0.0 chalk: ^4.0.0 commander: ^12.0.0 cross-fetch: ^4.0.0 @@ -24589,23 +24524,6 @@ __metadata: languageName: node linkType: hard -"extract-zip@npm:2.0.1": - version: 2.0.1 - resolution: "extract-zip@npm:2.0.1" - dependencies: - "@types/yauzl": ^2.9.1 - debug: ^4.1.1 - get-stream: ^5.1.0 - yauzl: ^2.10.0 - dependenciesMeta: - "@types/yauzl": - optional: true - bin: - extract-zip: cli.js - checksum: 8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 - languageName: node - linkType: hard - "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -24838,15 +24756,6 @@ __metadata: languageName: node linkType: hard -"fd-slicer@npm:~1.1.0": - version: 1.1.0 - resolution: "fd-slicer@npm:1.1.0" - dependencies: - pend: ~1.2.0 - checksum: c8585fd5713f4476eb8261150900d2cb7f6ff2d87f8feb306ccc8a1122efd152f1783bdb2b8dc891395744583436bfd8081d8e63ece0ec8687eeefea394d4ff2 - languageName: node - linkType: hard - "fecha@npm:^4.2.0": version: 4.2.0 resolution: "fecha@npm:4.2.0" @@ -26713,7 +26622,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1": +"http-proxy-agent@npm:^7.0.0": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -26811,7 +26720,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:7.0.4, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2, https-proxy-agent@npm:^7.0.3": +"https-proxy-agent@npm:7.0.4, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": version: 7.0.4 resolution: "https-proxy-agent@npm:7.0.4" dependencies: @@ -31790,13 +31699,6 @@ __metadata: languageName: node linkType: hard -"mitt@npm:3.0.1": - version: 3.0.1 - resolution: "mitt@npm:3.0.1" - checksum: b55a489ac9c2949ab166b7f060601d3b6d893a852515ae9eca4e11df01c013876df777ea109317622b5c1c60e8aae252558e33c8c94e14124db38f64a39614b1 - languageName: node - linkType: hard - "mixme@npm:^0.5.1": version: 0.5.4 resolution: "mixme@npm:0.5.4" @@ -33532,7 +33434,7 @@ __metadata: languageName: node linkType: hard -"pac-proxy-agent@npm:^7.0.0, pac-proxy-agent@npm:^7.0.1": +"pac-proxy-agent@npm:^7.0.0": version: 7.0.1 resolution: "pac-proxy-agent@npm:7.0.1" dependencies: @@ -35175,13 +35077,6 @@ __metadata: languageName: node linkType: hard -"progress@npm:2.0.3": - version: 2.0.3 - resolution: "progress@npm:2.0.3" - checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 - languageName: node - linkType: hard - "prom-client@npm:^15.0.0": version: 15.1.2 resolution: "prom-client@npm:15.1.2" @@ -35369,22 +35264,6 @@ __metadata: languageName: node linkType: hard -"proxy-agent@npm:6.4.0": - version: 6.4.0 - resolution: "proxy-agent@npm:6.4.0" - dependencies: - agent-base: ^7.0.2 - debug: ^4.3.4 - http-proxy-agent: ^7.0.1 - https-proxy-agent: ^7.0.3 - lru-cache: ^7.14.1 - pac-proxy-agent: ^7.0.1 - proxy-from-env: ^1.1.0 - socks-proxy-agent: ^8.0.2 - checksum: 4d3794ad5e07486298902f0a7f250d0f869fa0e92d790767ca3f793a81374ce0ab6c605f8ab8e791c4d754da96656b48d1c24cb7094bfd310a15867e4a0841d7 - languageName: node - linkType: hard - "proxy-from-env@npm:^1.1.0": version: 1.1.0 resolution: "proxy-from-env@npm:1.1.0" @@ -35467,33 +35346,6 @@ __metadata: languageName: node linkType: hard -"puppeteer-core@npm:22.6.4": - version: 22.6.4 - resolution: "puppeteer-core@npm:22.6.4" - dependencies: - "@puppeteer/browsers": 2.2.1 - chromium-bidi: 0.5.17 - debug: 4.3.4 - devtools-protocol: 0.0.1262051 - ws: 8.16.0 - checksum: 76d4328e7d2a788a7a2dc3a8b19571f8eda842ff990da2fe773c3e5c01236a03856b67d9a2a6ae976f8fa74ab38813e2c7e7c4b15b9715965b2156e9ca1f9a78 - languageName: node - linkType: hard - -"puppeteer@npm:*": - version: 22.6.4 - resolution: "puppeteer@npm:22.6.4" - dependencies: - "@puppeteer/browsers": 2.2.1 - cosmiconfig: 9.0.0 - devtools-protocol: 0.0.1262051 - puppeteer-core: 22.6.4 - bin: - puppeteer: lib/esm/puppeteer/node/cli.js - checksum: 7dcbda7fc3b999f3ee7808d1c67da41be0aeabd66b0831711a46a897a2681d117f044263e57aeb7d0a096c420bb9f5871c5c2b21c38e40d323fa675e1de322c9 - languageName: node - linkType: hard - "pure-color@npm:^1.2.0": version: 1.3.0 resolution: "pure-color@npm:1.3.0" @@ -37844,7 +37696,16 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.0, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.4.0, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": +"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.4.0, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": version: 7.6.0 resolution: "semver@npm:7.6.0" dependencies: @@ -37855,15 +37716,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 - languageName: node - linkType: hard - "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -39604,7 +39456,19 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:3.0.5, tar-fs@npm:^3.0.5": +"tar-fs@npm:^2.0.0": + version: 2.1.1 + resolution: "tar-fs@npm:2.1.1" + dependencies: + chownr: ^1.1.1 + mkdirp-classic: ^0.5.2 + pump: ^3.0.0 + tar-stream: ^2.1.4 + checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d + languageName: node + linkType: hard + +"tar-fs@npm:^3.0.5": version: 3.0.5 resolution: "tar-fs@npm:3.0.5" dependencies: @@ -39621,18 +39485,6 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:^2.0.0": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" - dependencies: - chownr: ^1.1.1 - mkdirp-classic: ^0.5.2 - pump: ^3.0.0 - tar-stream: ^2.1.4 - checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d - languageName: node - linkType: hard - "tar-fs@npm:~2.0.1": version: 2.0.1 resolution: "tar-fs@npm:2.0.1" @@ -39900,7 +39752,7 @@ __metadata: languageName: node linkType: hard -"through@npm:2, through@npm:^2.3.6, through@npm:^2.3.8": +"through@npm:2, through@npm:^2.3.6": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd @@ -40757,16 +40609,6 @@ __metadata: languageName: node linkType: hard -"unbzip2-stream@npm:1.4.3": - version: 1.4.3 - resolution: "unbzip2-stream@npm:1.4.3" - dependencies: - buffer: ^5.2.1 - through: ^2.3.8 - checksum: 0e67c4a91f4fa0fc7b4045f8b914d3498c2fc2e8c39c359977708ec85ac6d6029840e97f508675fdbdf21fcb8d276ca502043406f3682b70f075e69aae626d1d - languageName: node - linkType: hard - "undefsafe@npm:^2.0.5": version: 2.0.5 resolution: "undefsafe@npm:2.0.5" @@ -41164,13 +41006,6 @@ __metadata: languageName: node linkType: hard -"urlpattern-polyfill@npm:10.0.0": - version: 10.0.0 - resolution: "urlpattern-polyfill@npm:10.0.0" - checksum: 61d890f151ea4ecf34a3dcab32c65ad1f3cda857c9d154af198260c6e5b2ad96d024593409baaa6d4428dd1ab206c14799bf37fe011117ac93a6a44913ac5aa4 - languageName: node - linkType: hard - "urlpattern-polyfill@npm:^9.0.0": version: 9.0.0 resolution: "urlpattern-polyfill@npm:9.0.0" @@ -42289,7 +42124,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:*, ws@npm:8.16.0, ws@npm:^8.11.0, ws@npm:^8.12.0, ws@npm:^8.13.0, ws@npm:^8.14.2, ws@npm:^8.16.0, ws@npm:^8.8.0": +"ws@npm:*, ws@npm:^8.11.0, ws@npm:^8.12.0, ws@npm:^8.13.0, ws@npm:^8.14.2, ws@npm:^8.16.0, ws@npm:^8.8.0": version: 8.16.0 resolution: "ws@npm:8.16.0" peerDependencies: @@ -42580,21 +42415,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:17.7.2, yargs@npm:^17.1.1, yargs@npm:^17.3.1, yargs@npm:^17.7.1, yargs@npm:^17.7.2": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a - languageName: node - linkType: hard - "yargs@npm:^15.1.0": version: 15.4.1 resolution: "yargs@npm:15.4.1" @@ -42629,13 +42449,18 @@ __metadata: languageName: node linkType: hard -"yauzl@npm:^2.10.0": - version: 2.10.0 - resolution: "yauzl@npm:2.10.0" +"yargs@npm:^17.1.1, yargs@npm:^17.3.1, yargs@npm:^17.7.1, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" dependencies: - buffer-crc32: ~0.2.3 - fd-slicer: ~1.1.0 - checksum: 7f21fe0bbad6e2cb130044a5d1d0d5a0e5bf3d8d4f8c4e6ee12163ce798fee3de7388d22a7a0907f563ac5f9d40f8699a223d3d5c1718da90b0156da6904022b + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a languageName: node linkType: hard @@ -42810,7 +42635,7 @@ __metadata: languageName: node linkType: hard -"zod@npm:3.22.4, zod@npm:^3.22.4": +"zod@npm:^3.22.4": version: 3.22.4 resolution: "zod@npm:3.22.4" checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f

    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

7LHg# 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 LNkvXXu0mjfloK)$ literal 0 HcmV?d00001 diff --git a/docs/assets/software-templates/template-editor-load-dir.png b/docs/assets/software-templates/template-editor-load-dir.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb22ab47c870d01798f992f725fbe314b8c216b GIT binary patch literal 597409 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%0A~ku6#a8P!&X+ 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�%n7uRC?r8(>Co1$Hrm374V~trG)&kF;rGFQV?FB;WR^C8D zV9ueh$+Vj>Q9mn*OIP!Nz)6|Iz3V@juLA+4h)OqT`{4D~=rI4_(OXMTT_u zx1Kw>x)=Xg0)FRn-53+<+TkVhP`Kj}u1%dw`RpF~@v;;Jz*Z{8i|9spU2gb4XE*&j z&PlmzX#`?hX46I2C+z;>h4w=0Nj(!judv<#Pk_sjzaBji2z+TH?~Fsd%=F7dpY`K1 zz)!vF)!ROa4|xlMf`>r2Oc^75MZv4HT3e4xP#-G=;l0r64jX;k4yM=vKU0;dWskB` z=%;6v*(!^5D?g(aQ-GzRfWx+GTx)@2yhBmdK_?xz{6B%AM25KiWWB>RV_^yP$EpA{ zqN5=EB^W4qU{-2OyO1<^x|9g1?Sa|T)aN4By zW*LnRm#>**2Mwl8s*Qk4dh6CLL-UbF{C_!iCwiHb3ywQCjZeQlQ%O`!K-Gx<5?GB{ zw(ox8u#I|aZ3w?2*KiaK7o0=bi>=mCdmhQ`eh9H2?j;2)^_N^Zh06Pu0UBi8Cp1s8 z?I!gPpcs+}Z=RSp8H^J|TD3(Fs05tnPaws%sf2dP+=>rlg%^jP(apuf?>F)fZ`)tF zeV;1HmdCGDIDmc?{ixt)i*YXg3aWvnVuo>h>mJ|qlZq#bEtmHeZO6+JCs#)>g;j~l z87AQ~mLAK*`^a3BC+={-UjO~Dw;}phmA7Ku7Sv{TldnEG8wFGMhF&-o{E#n_gt%tI zaU1xZtNDEPoOI7O8?;|J+<`oHFOFfeIvx-wJDf5TsSA9PV48yM8Q5K}C^+752LRW( z`A7bN%caTwnei92k~0cdiYx-Vt&m^!TdbB(tChI;lnS0vBSe;N(oUqz6-&=>4}oaI z{Hj^cL(B?(RO^klbBQ-LHz*w-UvkW*?qs(P(D#y)SKfcmxqR;!o{%WQK#YqctMi3N z2aM|I5?glTHAI8D4)(bjdLqgo$}biKm~j9Zv`b zyie#OU$yDce&+jU-v7 zyj7s(s>q17zur-Or)6*fr1V37)>7>>c|q-eV$(=-4y|Mv$JnFA?H?z?A_v}jHwA)xtk%EK)9FTzqm`6 zrU38wsvrG##9dQE8yPtBZe*ryKe9n#@` zs685ef@@sV8-nCtH>g*tcXOGwY*qIegZVU{2Z$3kyX@-v_o@+%L~gA88tKD)8LoKa zGXynJMO2u8-_t9#5l)2&wxS9JWmpen`VorA_dVM0xg-U%HaD=~dot}b;*mB4tOpxJ z^+;l5GFcgu%JYa5v%%+;w$)0SKkhkLea`Y&<`tDNBk#Q~M#T5mH|?w?7d(FFh}&#g zHRB2pmZvxlJ?89u$i7DRgPdLNXwnAtRge!PtlPdumkAueg`Xc+Fh%q@zT#JItdTJO zc1~fjVN4{v!;w)Y^pmgk9a@K!$R#|OI`oh~Y4iy$`d|>0rT!^OG6#{S=4$1!VlqDh z37XIbB2y;FF9<@LEv-p~R*lNrM85oKV6AF1jH$iEAU-&x{ z(Pi%FFxE6>-rIl6zIvQ>)qErVrS{k<=_sfrD>JaFVKZq%AV(aX=Dd}fek39DpB6J>X>+VgE6zG;%bz5VS9>1Pt{4LUEGO4{S$`Y^{Ovpkvv*|EfcnFwlO>u2WOcz zH_-HycukYL)cX|1gWhQq_r+7bb=(W$ez2{R0UG~XJB%yZpKfb}NL?mD`J)@&Rdo%< z!k_**0CG^&LacfEn2$8<5dX#`B>}>!58L7rv-#>tX^8LFncu@@O#1N2nO)`}4I87$ z>i$SrDqijh`>XciF5FicKuf>jn?6=ob?TM$2vldd+dJlJGw8TCbE8f^SJ6 zcrCs`SDp8)7M-nAktvZg7-s+edB~%l(S6f(^Q?o0M70upFSR9NS3XCRHad7!LHRph>m1GIK%S zT$Jq&&K(qUh?+eU9kUp%ecWl?+}0l9^}2Rn zF>6b0>z0C>?jXSKr!t{z9x+Wfbyd2G}kMVl^KPk2*!I_P97Z%sOE6G}oPb z(mMxn8J5CV?y(`!Emr>&=s$rN%^lpz+wX8B(p&AHAK5uKJE(C z&Am;`gI}20gHtscw(X#a5}TsG@z&8puBq4yxQ(i;yw7hoQ%nDYxFU$_td$v?@`JsT z`b1b2_>H`LUWtF?$^0;zk*#wHOx<3b3;%B+XK#<@(zeY zo(Q_j*KL?a{!W9RL$*{j9u5f%Up6hG?UOf+M#!3d1pl&0@8hY|;xIAzvcxzQV8c(` zTjJ5+5K~2mqJG_T&<#ywugPb>yTqg4akDQz^iu(Wj}3>XPM074cOGKpF3=0L=T|qV zC``H3%m-c&G_N?IE%9<9+961V&GY{IY0(OO=vEr~>$kgr^Zxx?|Ro-Bq9G%P!;^Q^GVmO#HrkMZ>?L@YFHP!vP@xix9% zp#O6A&%B<%hPgBIPV6K+Y00|_YFM|(jxz_fna;ie6rYc~o5^Yd4x$CEr(snc>|ar) zxAapegbKB;`@+L%8p3s=ptFIK0ZrUjsy{RE)}cDEI-JX>$ukk5j3B21yh>>i!rWwQ{~QO567Ul<~Q`@X1;%-irlDKETt9qaI^W{vb*V8^aih@-$O%I zcJoxDCy_71{GcyL)5cXZ4G8;-k4awefGJz-+s1VV5(T*f_P&7<4Y&r_WmYjW2b>b(u4b6?n zyJT4vu=jw0AJ$p5JpMI zk0<6c&TnkP!s0IDC<>GX#9RS!LY)x?;yh(;A$bQo@%_Ts*=IEUc1T;=nmj5IUgnL!D4%izZ|ndRC?EC^o-CuG zoaoG5h|Ubk24dwV@$p|5*ku#e282B^^YaNwqRUNaK?#elTglaraek&RRX?!Z2SEPe z_mUvx%p&_4^c?c9-?N>a*GyPBig&i-^hKf z{^xq%Yb5s_(jUo4MHVKyPg27^(%z?WuGdz{`SPaZ^wwnautzXDh?JyP)I3d4>;a(L z1W_#!a}#N)PHK}_qL}4H>gx&=!8J%03nNh;#gr2h~DsEnM%iilYJm!G=B z+z&z5GlgDxEZuj)mrOx29f}6$F^kN6r(FIDQWiyLrWQ2}@wN$bxpSkxyx}*tLBslx zX<>jcl0mTm&Lg5pJF0~#nLxcV^q0!=`P!6>DChz;A8vAd7*yvvjGyq!|A*qPMpfJD z5D40N1-t^G_r=gcn>PJ^+!m{v-rg=^VIk+%&oG%}0x^g@^#iwA@w?WZQjxYKALy*2 zR$9I)rS|Ixp2e6Cbt7<`@9_7Hr5WO0q+y~s?Ls%Yf96AgS@BjG61{xjC0Q=HeG3NC zpVOYo3$8|`@_8ntFap>0V5@`RU zHHbT9TVOH*7U+}Y<{&ifZSiI^<5H*J-NC`rp)VTYUGy6z_%>cZcv=1qVVf>R&t%)b z8@xMic{CW*E4Uw(tq@%1*w)r5cg|tH3Q7)kG+?QIB#Nw;GDc+hu+0453m3e6vw#;V zRkzR*ecy4Fbj-v^)beRE|HnC-1IsDr8-%@tnM#2*-7Slv$_i3K#PW`qdp+3ShB`m< zV8-u!`vMuVOjNSATecV;OYTmdC%6$@TCHai2O`hNI;wj&YIg0HE=>A&QUzBm7a%ho@ZxlB(EYr5gz~0q~r#*Xex%drWW*7t;^xvK!O_czcI+<|9-STzgRm+w@y?QW_=8 zZIG<&X*1Vmj-uf%cq+-nFpDowfg}0NZR5!}#{D(OPau8vuF3sZsUP5vwryC7+G7$^ zmd+Q_@A5~Y5ZPfJjvJ5aqLUU$C)cW*uT>3#e{n_cy`OJ!a^UR9OIKSJ^ETVSS7OT2 z>!xe$wLad|J>j$0m5s|h0toX@ZBqQ33xhb=Q#3#PRBd3GHwB7U;p zWhP?6)4%ma8_`o2U}?!J@6VaqpjHM25Ji;0)Ro8|UnQK6=rs@_PA7u1>sz+vhRn-+ z73B!g>@@1thevLl><04`nTZDMh(2r^ZyVG5=Z?APSM%S;u%lgk|B>^(_G0q_C}8#n z_pWQ|BwWYmcLL!2J;;+sSXKBcDaYnR#TC)e@-eU~w$>ie_L8|HD7z&~ndbj1Fp;iM zffY@O)j(lH=mNgy1Z`LtH5s+IihKG-gBw&Tjdcxs7PeEWg{iovFxb#>+MwN*MtEVM zd7aOhYi)_y47R|-JK`uQpF?kB&^f17)WA{Av9{px!J z1MNV)XX1Ua?a!teEjolhTK$)Ty4)Bagqwnfum2?Dfftb;pAbe||ArFJhEGOGg<~!1 zBxdN5HNC$-kzO5aN4b6SC-a8&Us6DfsNTBCJnfAB`MQ$?akZ+sy^LdW%Wv+gBS#9- z+TNbL@wvzgnWXzzKZD(w6zqUqpI_t*an#x;(4EQE$tP#@f86XbmsD%6nYm_~=HsIe zM1Mpk3$mONaFTg}F3khlmY73PyxB+MFM#$!j^OS}XD~%}93=YhQ>GS4Tl*$`!V3Nn zT8pMfKpsesCbmhcC^Mty9(IVM$^hPSH@rf_Gi2Vw(#jhq5cjGj%`=Wa%>AkTDOqq} zvUrC0oT9|p_}u)2Ntsp)s~nq_rmeG|Q`e78tw3i`FE-BwHtk8v2ES;!AGdfTr9|+= zee<99LD00-rRa6N<3`L)^b#%)7ImUjw<~`FFBWjMBZhLV!S-)f2mK$_pn5AONF=HjP#NgMdgEf?9Bk5M(#c6!U;Wh(I} z{S+S?R6Wke5x30#`w9E0*+uKzHp$Vz5N;v$(;R0Ej z%xcsmd!!)t`g^}`wqsvyI11!Qi>;U!R;*pi>GOi*^vsXR$8x8CWp-`mNSOBUM}{+J z#}@L~4{@AN%)F*;k4AN$tl@|iS@)gAxzN2BiB9#Y z>U%cTcdd}LV?Wu~v(Mr;0RGSf&z6YE|Z@+Z&uQJgOZKDCEu&|-fUNF+Q9Dlv40%)zID8lS$!qm1b&2t ztu)zeCD}+NtQIex--)&=+Ll4|L&k-8u$m4-e zaB4)6e0Ct0_Z9mwo_ZzhX>agkviBDHxj+dn&v?SVmZQyOr7pHF$TYu40bg50L~(T! zkY`F3pX^5BsuF!Nn#@U}UB)Zv*=AbHtaee|gQ@=j9Tj~Be`Ux7ZE$wI>K5hjR*?!V z&ox?Nx%0AosOBT2NM_dZH0fa^K1rC5ZFSuF{)8xEwIGP+iqHKy*b;6_8=9Y0HlM15 z)XYo=UqzVOIz@~GYxVEk7K`{-C$6SAS9UM_H2jt6mGPu8m4oTbWz}!{=}n#4;|n?p zGBefxG-9OPu{uhb6)im0)U{Vfrr+CI&48_9s-}^n)5xCehGNYt+`_DU)}@Cu-KXQf z1@rQ44x;hvm>OY*$c}Y8_<&AEHmhkM<6|9RBouz`pie|4~(`-hkKy5#2>IT z-EWb1-e90d5tAt3-aAO?l3H%HTovYp!4DG=Vu_y8z|LT3c#%dkM8U=u#xB%R6uFmI zsDCK)E<`>#53?4oU;qsmY+==y3O(*Ij%u5BB_oyfBkRO!b?%71rcK!I z2?7k3!y)mG{ao#Ty$xOI;<4g9Z~ceCbP^b3UT96$*|s9z&%?Fe7EXCR3(KRsJMfN{ zn0y8YP57(L>=|s>dd(`Atp4{5y+dFUqSLx&cZP2B!PY5Bt>iX+(0holb6d#w6Y1<- zs#_A%i;B~)EaT_ns%ne5HSRF9eR5S5r_x4$OR5iq=YxrYhS1MJK^sda3=Xh1{AxGx zGjpey&E=P2RlxK#i(j_qHiaDt=nbtey>r0{*XUL!XY$Lo1D(Es?(039*&<=F#xCYE z9rOlNNO^iN!p2vv2q*JB;ZbN+gl`CG^=@0T8sc}lk-(xKw(&Pv%4p;+t)T^kqrt)J zjA9DCQFXk*hOHE`HhGvV%?Ac7hgCy@mzX5^7_(q}Vxz@LFsmhRb(Q@hXwPdzT#q<6 zOh|ima5N|ST$(a!g-mzn?TV`o8LsH_#cetgDL!+YUw8%YSMtpDc9Uys<@%NcR*K08 zB<<>fN^|?hue%jqi(B72=Qboz@M>l`(+?2q+)>{GLN^P7T$I!DpW@e4|7H4D(Flu z{iREO!c`2ITYTlEI5s7&^Y~=I`Kk0j$>CX}>Lyb=Pv9Q=-B@}aHs-3hND}|2+|poO zvD^3%-mef#wLc^}0OvGipe{AAQ%>LmW4lD*FD)|DV_&tPsfS=9`E^&Z+W^P^pi4#8jkrDop=U@$lr@z(31-PQItM9bHnHD`n- zz6YA;;;myY?6r&>R;2QA$2+$u78H5ZIp&O76f|9h^hgwdIqhj2HeL9$a|QDx%kev7 zFt96l76V`R6+Cjc`2r>oIJOXBFQbbwgjkvPVMMJ1CV*a`QFmAuUxk_M!IjF*ZI1)` zt;J*H>$m!h{u1hYl9=g62|dy0#((0K&p!q_#DvldHtRim z1YUv&y$gc%{@2yxxaY{oLM)pw9{dCQ9o*PF2v~v6&;1DA#m`Y}_`tD*7({*k=hM?$ zu&6fMr{a4874f$=c^Q5lI;i43_9bt@8f;I`HB-b zSKXS)6Z>DrH1|C5EC43|20LeVt!A}H4dL+*rYFibUOhpd$W#qm$a&0mfu$8UtoH9M z0MavxkTLr^L$h=KoO=O`RQ`Je65bGvYQ>$xaANl;a&-?WgUS&e|3N4)kmHb(c}{6R zkuT66Q3Tx5%l^ZbP1HExcgZ=)l7G{s8-gct?fA5%2#oT!H~u0x1zRxR=7GEUQ$RkD&vwj@ z4lUXrvGKx*MJ8s4KM(5LIMJUZJw0BEtu3!J_D7xgOCN!%3`~Kh=v)5x_YmfPe@>j&o-Q({v`xGyxSh~f_ zAWD~QklczXk*Gd)7haB%j~92=9ixJR>SMUGYDoJp z{`HvWIN;}Ak_f3b4dlnWYw+uGFyoLp38SRWuT2@W@~L+kCr$!$Fhh?N51*7EnuyPY z-gK*$?hc{?)3B<5WaN@D+O!a7dev!r#Xk%8*UEdG{soz!!0Ft77G3Jh{Xu=a`_n0q z&m|9SJ)Ohaq^!s@2b9{xc|&cjRqWL05QgS!w3txQ@GyT31$ur35(!q+Tc z_FQ9C05VrId4I8KW4+)k6MClHuRVs?6M7|4jKfS_-6I3*jv@il%_vn&;ISp?`L&Sm z#mmptMe3U_V$2SF=)7--lvRKhd=+^r1^q#Hr)>6b=@8Z%+OMi9$F87IISn^h+KMHhv<^P7R|&j!>4W2Q zv?yUCDY%3?=>QWBBuMW+xA0c+2N9uU=HzKZtR)}?z5VE8?L|I1T@`S3 z$bSgjG^hV1b^gwA&Euek*j>nLhe{2e`h*HA4ZeB7d7mgp5Ifz|S91NG?!C)`87lb7 z&^0777*UQVgZ>N$4_mv}i0HZC8?vm(z@{p)5%~OBFKK>I=g|hwSG~pEzzw!dhh%E| zBBiA>p3SEkuW{XhbOJ$gd}HAq?~sQgs#lzE}yl0j?1ZkdozyhnjBy8x;*f z8dqR{b_enl65Vrxy(1wX^}rcecy5S5mC)&`QI_!arJgF&*66JAdhR^iu2vAsR@fMB z@>iU5H7Mft{}sMidR~7a9qq_oTcMMJ>rq-nRG%}#b8u!-%~6QyvS(llXIw)a*&tH# zsNb(JePM~9lYYP+b51yG^bg-Xi5|r_9MiRQT8r$>o@HCyms!d-y*qA2aY0ThMUHR3 zr)2?Ck-O_}fmN8lj9ur8E{7l@m#21lug1*aipcSk4ac;Z+9da0UKiQjVOD7Yk{h*s zi872G^~-{Zn1bJJ@VNT#iWj=C=oVN`wNhQuR-gM=1`1yAJ$a zU=$34H+8MVoR(}%(^ix+U>Y-#R56BJYU#!2+b?QvD;DcXH}s1#*U0-6$%UdVN)yqQ zCpK+&JJOX4$ilZ){mIL~>5W7%0QFgi=Jz}v)cUj8&>&FSsxlI~;Z)LH`2**--0e|B z?C>PsN&GJRqyyn1v=*sbxIddU7pWII@Mm~*)7jn-Eyk7>+wkNQZ^9$sO~bo zkaK@VDru-a>dblaQ6KJ+wnw^`{%{Ayaa!Wm=Fra~r+DqtP>NF|o#Ub-BS*p{RU9u3 znWl+4iq-7)YoUKkA(Y^p3ag@05H=EKJe}&5`Y16``G#o2bkvXek<4 zc=WCGmz&`HNn zkji} z$h!aCOzLTwQ0`*o>0FtpS;PdP{cKWh_Pa+@;0J`P8Dvu^7W)2rB4O1* zXi1j}t`wB_64*i0z{pU`H-$iU;C`Vd-Xb!u2&gT=N|paM2xmI~IFMczk6IF}QqC63F2ZjbHGx@Q@z0>G%qBURa0(ZB`rf!C~6T~bR zPlzn&b_JUHPN(l}?`ksqi@5D9+Midv;VeaWO(Ynyzm!4;WWMl0}dw5sND%k2~%TCW8=c_h~yB;u(NKV4YN-A%1%HJE0mH#>##s zzB2PbHF<`4keM3PV5O(&q{JQvN$xb7rDIXZkp?Q5NCt(qCNJbr4hL-C-}A|h<1(gi=$TcxaZ?5Y;8#`qx5+wp8T~3QtV;zDgyf_mztpb) zFVg7G#rNeOd0w;_)YX6QKfh?>%dRvGk|q??a_2_vMp-2Fm*KdOW?ZctoCyeAdxtJ- zY+LMiqPAYa5D~4AYS9f^&S2Yg`R`?>C^8{cT>eyNm8#9kx?A(uID}ig{@AylJ4X53 zIraD~WLyfq5{~9oZ)f%A7bCt;x+ToDiM1UCp5${N!f3D0Q$N)5 zUCzHoSk(i5B^=&-r(*qts8SrAa3sQJ?*W@o2mJ)Oi`e;3sMSyYqNjkZK&~TY!ckBMs|tBdH_|tHKH>6V zTuN-+-*tZlnD=)n)kflH$I-Op&|O|Iz}|zXtc%zxnLr1Uhz+Og5l|nG&is64c)?p?7 zm#y0W>J(qOrd&c`)CrtNl<48hYaPLj?C$?%tf*1^m!vD~#74)uMd-EV6g6wbWV1th z&vfe=i;I}0A@me3lY}|%-O837_t1ZmQS*X2o}@qP2!gHW)HMpEiB>3U>W5px8v)5)E7v#2hzmD}*R!QbCoHAIjVU zN2i7O--L&pvGFQi{Q<7An+Iis)yhfZurF-045ejy=C+ECHUZ|A&s!mMG%`5DlqSUS zVb2E!?6Jny=g{AzuccUI?@wb3?Zm)DcS6Z$W;_I*hB;!F{bM$r?xkXUy{q*l6R z<@mmZ%weFfhgy3Og2ms!3)XDt5!24cPbD1j$`ouTWB-Dbkx=0P_nFz;@N{c=P2K7h zcz^A7^hP9-RkvTmL#{ckYwU;1{1%2kiZ<|aKur(Spla~gWrgxjjJwPh351#BVB3Wi zYBy34MXSIa^f@iZLa>H~*_%DOj5;|}l7wpl)#`Y6f=?b{##+B)^1@NrTWrs;oHLDS zjASPJ(Y6WqWHi+nQLw1R*eZPoh8A-S;IM??5U}<(>XbR|!-;!>5Bd#bRqpZK+le-? z)%u+Dg&4Xsn=nl~HF0$Y%a$|Z)4GMX^#Pu*=8_}wk2fkBs9wYIXkZ_0HWj`4Wkr?N zBJ6*b!p z3$naB!Oqzob=R9A@}TlDx%|Fv&5X)?0Ov7VP#qZAu6Ua83*w@0E+8)@-!N zPvh#hG&eMX^*wx^ZsxpJ?P~Aj!^G!*&5%}P3Bx+AZRMxm3`HI9XI2z9*HI7bAJn3x zm0~t>%M7S~KS&qR9yLQj(6xmRZT1Y(oSb+$Ba42aoNgyRYNMEf>*25KW|A3{Y4`gV zU`@Z7*yh#^g@c|2LHlBnW>3*ms#|$Ea4?nKzlPC&qH{EDv40Xd0AEcly4CxXQF=P` z$VrTAcC*Fbt7GL(_lefOv~Aj>_}_p&e?;HFv&bIz3Gu#wrfb>5S`nO6ulIT~M6qo* zv$cdPYf-#k%IjCtx2qjqfPWtxc6m>OuNsIj)AfGycZ}f*u=R3AG&@vM*HJT`Y=*os ztHIB!2CC0Rw*omHkWihO>s#09uts0aQ`2)XnjdtXM$ASpf%c={q7O?$v|q0KePHB~_fxz+C0zR=3Gz zCv$df(Z5wV?9D=MAPoio1*^`o+PyQ9yZg`9nR1Fk4PyBb>1_z!g5<=#H+4N^f&O3pKJcji2 z6XPnfU9EV90AAHY9F=50^mZ{|E{Dr*^!SUwO5)57>)PG~$GtC->J%D@{g{BekK5Tr^_Y2`iyY=<(yVSlLlL4`yP8ASap@Mw8(F^_ST{vQjEp|IYm&LJ z3Hdwdk#Lra5(9S}X2s(wjd?vK6PH?UI?zk&K`;Gw8@|trr{%7;xP6PLi?I&VD<%ddqLXIy5bbxK=OZ#`*97-z5F*Z~TaAq3b*a7e<>D(vZPCrG zuQm=KYj@Lx0gv{hFZiG87c2}Ug<9;?ZG4I5;a7?M+kwKzf!v?zNeMBtry17)4g=|8 zXuZKb)d!PfXP7Ooo|7a1mVv%=umPe^fb+xo#-JLMF>@g0g1KgkTOW~Mhr3(%c%b#q zA%Yw)sJaM)>*KFMM5`SQgun4}@B)SKwfqjUuPsCVg4mJWl@68g7p?iHoqd{fMVpOr z*M`5o-z0$pCJ=Jy%u@FqBLwx&@ozNO0dvV@y z@G!@wA0M5w3H*&H4Ud{HMQ zzZtBZ=M6cV76<4Q$NZMcn9LMeF#8=>2EuVhzqbp1{4;voKA}zkpruj9Z zczu}KZd{KnD^{G{c+qDEvY|f0M^{8pQwJa-RK{RU*5g0<7D!Im;}_xka!jftiaxr0 z-rEp-01ybE4o_a*%w(MEe{|`(&t%N2f50yNiqkuLf2sbDe=ElmP*zkumz2Pd_bDAo zBOp0UgoQqaxYT5S&hur zp?Tk;>Z*{Nd_S{Vr5{#AAHRsr?18QtVtbg7tGuCt;mI>q*t;a^YkKv6lTLcYUFw0g z^inisbe!_y`6^c0J|9T)kFq|r-*gkG8WCaw<}_?fepKKd*2RCgyBHil7wLo*n=?E4 z@SEFYf`~42E2*h$RULN-Qv}qr9FAtHqfB~iIv8$jv8X!b1SVjI%8A~w>*fMD$&XW; z&Io3W-w}FhM_2_2xRQrdXg8@>n~fmMn^ zdX*qc^*ClQw5>MS;^QE$Ot0R?>2y^Hd#M*Qs2Y!EO04qWb%QQ&9hvrEG&kD-sf8xX zahuPxQL&zDf*-6)@Za(Z9GY{z`(CPOK*@mO1V|L*5S}5pyhol$aDUhSOx!qgw4_@# zkXKm2kBg5vckNIVXN+9GMqCfAXZU87xK zQI55lK!5l#!SVj8N7y)TwY(_aD}yPZ+&a|n*ZgNIOsX? z0W;|AUF(Ph{+Hmekh@B|4rS~^QKC{O6F3*C?y+=Eiu)ULg=yZE=TEMHsfTxClP*mq zNLi&=k6(|v0Grtdx2!!>4ysUNk97iyRkPX|C0ob_?OZX1e#pa2x~#kJoKAx`av$O% z|BDF$#q9oOI&L#aT-*HKV3J|5B^za54kw2gbBb@M9}8(RdUpLF!TsO~@^}*Xq5VmNfPJuSbhM@mL7FyZ= znyo~lw1R2i1w7*rGLDeus~iiq;@QIQ)?0zDL%LmjO|}m<6S|s7xmoyCa5Qgt4Bc&m zM{NBj?tOb+>xvO-SNLm9?YNEc<xDk9&p&-u)%g0l3PXuqLaYq47+Pt>Zn z&k`AJGxB&LYZMcpR(3~DHfFAzVp+S?Mw$+L7Jk~g!Mjf8@5s{&k=h-!7D89sFFPz* z+Aox6ER`}u(?MKOeA}?nj}U=>+MQPV495jmn#?vrZA2mfuE7cWkpJ*2%lOcX0ZJ0h z`3j!iXaoCsS5fxXTEe7M-ZS6}!(Jdg%PUx!aQdWm$ldf+^=Bt$za3d|oj2LE4hmY% z2zhW4594yH>Sr9a(kM^0g$EY@-4f?xAj0F!*D;he?@&g~9V`uBH@(5|Mte!9duXLjrRZcP1^^2BcZtbRvY zwl=4N7=#nbg6&zh#>kMfRi&PC!sFI+RT@C+l5-#x6IaLPTca+^cS0YZ`75$v#YqNV zhO~sV!yEX8WU=ip2I{v$zN)u^m2ttFI04OdLk`X6_uQ58UE`3UuRQsQJDz>R9pSzG zTDdsff#wCy#E&_#78 zax&-e;|5yZW3b1u(j?BSH@`$P{A}pG)sJ5PA29M$8{rrK|LRGLRAYiNA>1V#74I6b zKrfwVB`UI;C$+4f5*y0X-b^$<6CAg>cCkHx+`6peK=f|9lj!Yq{E_gS&DI(xGByC- zoIj6z#}OhKGvXWN+10Y-6t*f#_2!iwl9FeSy}7hg`TW;smZdrdjc=PlQFPs}l?@c~ zWPc3Pummrd0GuQBl(+465x=gd`t{@`G36bn_Qc2EzG~=6gC#iei#W(y8+0(mlvxK^ zNm?qhcXS-RKROEMh-T@w^KO`oJWI=VHsQ5l26@B<;)w8?LVFk41~J5)`_iu+IE)jW zwrXD<{KZ+7a{{-wvSFFLSHbmy9>2(jdsFToE%Ls80jK*ojdTEi`d&>Zw;OmgUHeIH zJ8=iJ___Ea^Cjl*)_Gw*H6tkxnZ~m!j(YoXORIz975nMvUlEF)uK%Lxb|3A}C)HNF z?#nU%nhU%9{ZJSum%szen4-Jr#XPdEmSSdAnpjJN(VQbra?HIn!`TQa&JZaHWoiG0UF$jai#N6e?AP55oSP9p$Ag`AvB zsa@0V(fZdT33_dEwb2?f$*u9xNA8(e^G?<;1P3=r`?d+(=<%Rp>aTIkHREH*GNgqy zx<`=9kS5=btGYW{I2=LevU0xs4I&Ee@T{|u`V)}qus?!pF>k$i-xqs&4NRZ<_;OwP zW;Dw6Lp8o`murX1T0gnEtON6C_DdLXan6gAxyWb&aN36d4O&vqt4#=0glIP{V}(N& zQJhc@#daLakU6X!7Fn-?#ol35xY}yzRhyX&A8vHz#abTN0hPv5 zhJh6)Dlg92Y(l3)Em|gcTY-ks@_B#KkWbKfbADv?UREM;eWn`gI=w*PX%zXHK`>+d)*vKE-_6_q0zQ5Qw zQ!+eOklJwPF&#jV-3CQN@1}h2rM?2hrx>NS4Pbj zf4l{9Gbx^5Ox4i)VMf-yxGQtYvl1oHHT@3vkT%y3x{&#M^SC>)yG~z4WH*Qbk$oW< zMo*eK_w^m*d55T;4kLe=pzYV(x3D*}ov2XDJXps-@XdvX;HVjen;$lfUfsi z+~2k>_9!L(`!j{SlK{0U|0$}PeoM9es~*STK&A%?$mh9F4=NiR{^sapiCg24PP7f% z+B`>4#kxSV>E<;>CAbIms`JjLAm>BXU}T?jDx1kL?{Z;($@Fc}*V+eCG;XU{$1E;meE6lLiR$2C(exQjS0k!*)vCb0Xi8@j>?OPZ~4af-zGk8R3*p1M80pQnPB5udq|%hY2W_BBPdErXgX zZ8u?eJ&_i@|=m zxlpnweuHC>yAk#OdQd$6u0S64H$4V0{@F<4hewqmuddsW(z@u~5S07H%%Y4=m`CHh zr|8?`-lYAKxYQ&%fi1!G*SZG-m9fJU?#&KctR!wODqUyYe!wRAq;1T$(6k+cq;Kiv%KoPKxSR3< zv~5@?9|~>{U%zfs%@|9Y_MX`9#W~H3m+d4}LNRqve7NJO=|ww8;`lOMeO;Pm6*N7g z4oKL%NCU`uu4Lb?ejl_qUJO6wm(69E28AGsfC(=X@E?)eTf$t~?GmFt5IulimlS@R z+`Klb^b4J1h$5+D?R@KKZ0BWQ;t+cf@{B9=i zsJ@lu|KsVsqmq9AKkmxPY-nYshS<-Y1AGIG_jm65{)=gtFtjAjBsKeb~6lwE~T(qh-c7P{9+IP-YL(ZwELOAv+xJdnD|8rusqC4a}Vew z$^bHDn0$L}1Ya@HYUaiz7)^Br;F~`cz3cX77HOXj$in{~kw*hJdqr5i;#k|m;wsK= zmetPQ8r7~JW|j(K#0ghN)zZJnaxDMg2ac*Kcw*fx1LhDBS+(h({b;(ee59>f@DlkF zlHX7BFaAF%{%lc+Zy|%UO&pQd6`8xUvr~6L&`D_WT=>1Wp?r%4+nUFnt}v{6bgl1{ zu6(MCjjGK@7^&WkU0E$Taa!N~qb?d{Vsj1LQET)0RXf$sqNXQii4QXI;VDM-5LaB{ zKs7BywH|O)NzE8DixC+0&pT{D6?_FrMohxXDLxn`f?QLqaZ<>DeX+D1-W11HTgSPO zKGviq6tm6e9NZ=F5im*qipw$k`3n*-ouJ?6jtb78O#EgMrc=nz{&`OkW&v5o`4$;2 zRH3L5OgW|6I=KU6h5ZL@K8PO3Z+Ko7mJQ;+pO#yL29S{1?ms5>Y~4tZ%R;BaMbc}6 z@|<7et~{}wQ9nFp8_WPchI&5;In=4Tegu@mNb3}iL5DiP zV9;62P-E^}H1C(@(Rh;!QQ;)jA$Ts^kuM@&J}D*&%XawQ`6SR%3|l@oXyjmh<14gZ zZvKf%s(iT0^pEhXJ-4n8rb5GVq0fN}PNh*^2QAd-L^<2H@)W{-=w0s#{f>VDZUahF ztO|3|Ej4RSeEcV*r2E8d;IDx7UjWg9=k%aXeL0Qvuwv2z+v_Cknr#X3kq_7nBlg84 z_{I?j62R@(R&u;v{cxku{1#C#(}?hIPRe&b*!k~f{I+r|XD759Qfqx%sg|-M0G1Uk zN%PJfT;0>$53Z-w70ku=2Y5P(*n?ST7~c+3vu0n&p3TXae4&77E^=$mhkb`=4!U1t z#lN+qDWa$i^J(K})P4C>M)hhx4n&(`zdYUd6O-kv~YehqbLBXND#B=7clO z!)W)Cg?6n2yz9f40HDT^gnrdE({g_2Z-emBf$blN$H19Tk5=pGkj`+|3&`ZSTT!3S z->dJzZ|Q459H>HG?DoXuG)XuMc)58-+)W%8f#7^ccjtHT&&vAw&L;hnVVmt5D4tSV zUr~OSB`E?=FP!&cUprL)Kx*DMw8105!fKll?%nk7t9|vOTf@nOBia1kVABLV&-dCi zs{=>@)>4ksUpMz2pRWV>`Z<Iwp#2M4QG#%$VlHod}B0OwlpeOBaQoK24HJF^J z&&n0c8X7Vp1TOM?pM(fExg~6oe{PBVgC8yYe17{eFr4r$9y#;cLdvI zdqRXzk$m&~7F-p0f?SiBH2Y{k7F0{B({iWyekhQa+pUn{D{ci8pIlKca%aAk;E_7C zmr<#2)%8wgmp#3YlKiT}~lp1amf&dxIGS z1+6Vb*&UOK&c5ym$=J?~)+QvkcPT*bf(;5-NC9Wf~j>Y?|or>y~8|{e)@8rs{o~Zx=;z z2CuKCQk}%XtzO}z)Yc8m1~{6}(dzU7`72%q%Y)D)gp5>9Bedszy{i>)ZCqtHdMo1&a{MeNUC}$naedv^`A7P)) zax=Zm?Uft&dB5>jVb6fI$9EOyLdY1ajgsVVHr)tA0gVa3onjCE<Uk(BpJ1uzZe_!Gx_huRMqBL3x}M(4vXZRGHD z2OP!2Li_mpbdQ$Y81XkIuYGUHkies9W8eB&*G|$th7-DRhhYtP<-H~dq9Ib#8>DRY z<$S0Vc|V}6-N>x9bH{qPT5VJK8?X|XYv&P&(-o>SJR4smV3aMR$ZkwDi4-f>ZCvKM z7BkMu%I!zdjyT}?l-WKxGq*U|G}CR= zJhj=_A2n-AS$)a7Zohyf8U-C7U-+w< zFN2~-)>lizcuqL?xo5UMIqN3LG`*B|$%W$=kDz={<{L@nuKz`ceDL_v>HZ;Y&O$AV zAFt4qJ($ijEh~@3S#gJ5p`9vt6{&!@iDaXuYj42i7n8098FS+>$J6k7qQY#|=L9>W zJD9{SPyats@3^DP(Ashu#E8c^=0gn(fk39|l_wCBg>qp=Y zKl0WSWaBe-2HS+HpMFP@+nzRg3xQNAOBbiK(^#SOzOcH&K2d=S& znO7SDzip8C;r$GDvVV58JvV{<_4O1uU$4iP2AKjVB(dZF@9lO@^DGRd$<>et-f@lV zvn4JOm0cVY%U4LduSH}B@X}Atd)L?uP}#w0pMz)EmOM+mV%&_`e+0)W=&KWhJ0`af zK+*Aq22F?%{oOtE-WY3W^}RPSD7#yn3L8Xvp9}MU7B*vHk+EA5Xp#E_U8NhuJgflU zaqM~oPbA3Q*Y4f@)94IU)Kg!YO!{@3cWPDgzb6=$h_eC{^|Ph`JBc&j3HY<*EpPR` z5mS=#1rh%t%o8P)Zn^cJk|y@c*nyQ&N6Gx--7u2%SiJvJ+__ji6@>+~YuCxucFZ64 zUt;Pm|1Pp>EWd(lDsrdxZyt^>8?lz>LH8(p_V{Ek!R`xNX@pq?ecpdl%@B^vNuH@I zL|FC1eFkd*1@CL@fqPr;Eq%Js?FQy;O%t%9BNHxY`(P@0hzC+JTwu39J9JJQu6CKa z3_WLs7N6YfJ>f&mp95<{wl*KTTVd9(2E;1=9PBw%KqjzPdcPWF6+L&#DhuR2ga#Ge zm+^{y;Ro(%E(m>MqlZ>oaGhA9?ltAz(xIh1k5$Oye4XXP{bd6MyHC$zrq?Ra@2kmQ z1@&9ry?R2T)UOZhCK51e4Qt`AbZ_3%e)4D0qn-I*L*&OFl`6;S%L|@AjsQ1q(wo}? z4sTqdo+cFPW@*SATbEY4T>ixV)d;#mg#DPuS%j43dM`e0v`!FilhINx-ugO#HeXNb z6-M@0+_R0;jQq9P()~uOBp^AZg%TGMb$;8`cS~0&B`yhLNib=b1yEjVS*AQ{eQ@^r z)uv@%UA6RWI7bH4mJz^6-E0^caLbcGT+TVge=qktRgBQ?C9YS93wOWzZ$^2bN=O?s z0@0kZW|Gn@v5mRp5*QrS+47J8f$KM&4zAh88(l-;oxkJw?bAyogYl-E;?FTFxh8{A z4C=?dC~M!;pZByq-}vYk)4slNC22Eqp}oE?wCdi2V@qO7)L(+Gi9kos9Of-f^dQE- z`vi`!-n%v)3Bz3iFrH3>tf$p{sC_Ey0-lbI3dM#aZGzW(DEH4!8U`MF1lDP~!7Gtn z%pAscbXT7ql)QuSq6?@rdN0-`%FXka;o_k)*nz#tc?mrRk8V2mqslI%v7-LOVoRrm z`G1oLHyfL#a?wv>$rr}=u!+l}v^&#UN=8kDV`?@fn3$+|VB0cX9e=Ye@ivIeNutF@ z#lzHeXrje@(f|8Qv#A90cG6p`xY%sk|1_Q_swH%ObXo$vuS|avOV`{Nl5BZM^P~G@ zPq5w6f-3Bc<*To4E=kIb&O^%K^T2nroj6B&h=+g);ttBqe26^Ti6*|8gk{Jw6_}3F z0fz@#{p@MuzqkZ z&qH0N9(6Yc`m-2REPmFg&8TW`gYB}XM-CDs5k7QFlk3=8yE|6~P|S*7W4ZygLit~2 zIH%_AKLovZNcSNA+h-@cj~&K)8_gt>G*3;AgYbLvu0|Wxt?zo3RZj)1an%tcTc1aY zQ0`Kf8av_1txEnDpiX9BR(*k%>`y%WER$j}9rT?u&bFw@99U-Y8WRQ6jC=Uk35+QiqtzS=cAD|~zEl3&S`D7!fK!aL$>{t{H77SnEm za#!rsWz9qym0mxUF*Pk*x%SN^B zfp3SJ{MsI>$ce_8%etm#a~p;q)O!*iqIW|{XUY0926L2~j%%pzOI`-ex#ri^|I={* zN9oS8UcyCmZY!Vlxti{4lL!gYs2Rd!I}9qeC%a!1q(cIB@w1AVY|W`c_`C4I?yf(z zTN4p-JCF+&2x75ZwA?auJC$`4?u;V$0!m&NIA@y0pJ1CBbpL94eyk~_c%e`y;nk4g zY~fJ@d*h@CBuV@C&?2rqmME8TS|rD_Gxb8j)mitn0B5UY_<_VOA%}bkQA5v}29o*3 z1EjDeQ}{D$K46)nk0jzb`n+}=0c{d2TYX$w+F1;iln3mOIJf@5L1K)RAc*sFv6|Qy z`S@#EKyusoPy^OqK)axK>!wG#Gr4#SO5w(9JIydZh|{68wY25Sj3?YR3` zUFjYJ>G!Eetcg@|WZ(LrVwf9v@r7kevYlo*PPC?4kRHd!br`N{LkFu2rJ{6zzvJp( zu9gO^?LPt^2B$(711C!#Di_11Du#-zHC6;Acw$vaE#uM;rPBl6U5pk!>CH9KR()36 zepX;7el^EQ(=%P?Y=a-ih;X ztgttk0I8Jz{b5PO8mntrAS;M5+-(**-ZU0S3{LBTwYuqmNF zwsa#`OjHhc+AX8d5gkw0G!DGTv{eh;xhd%Rl{Z^q`$jvF1wRC^2(1L2!;7GJ%7Hr| zam3)(XNj$dJh$2rlYl#}?y2lJ_G#pZnv{p;lJBvdq>g#O#$g)YW^f?MyKS16!EPnz zv@ygQKo^J(1hLgww{$XYSVZB0D+hI3UT{Ui!RC$W$lRx67eBzKE1G;q!P*h14a>%N zwOSX-G+YZX-v=nSGKjx!nG)Yfo+dm8oBAv;V$OA_Q*60Wv#Kasj9wn165R5=m3tY|nfMg!T=j-( z#w5#ox}|j<`~*npM(d1&4rkzfPgcUgnRmeL$&Ln%_`vl$pW#`E08Bf{RwM=YGjQyQ z+X$wI|9GaTOvgY>s?cifIe+~ZkoyP0JuwgVs1syer7M=V=^@OC31~$D%zpHjncNoU zrO^7F!-XW=H0D!dA@=TZdb>8R!Zu{)I@fy(w?gYaO7qRQwv1#}`YT5wTi9t8(7?G- z27BLSM@;;=gQ#sGx1CWMB=eh+^L{+JRezlqNS>7;o$P*ImnYlL95;|~#t*mXZEi=Y zDMN-2jr_s1aOyY@0!&m5*-wyVU=Q|r(cLy<3Rl9&_@U1iVe$dGqS6>wMOJs*F(zEK z(|DKQ?v68~E&Cxc_v*(i#HsA3WmyHd00>N^s9QDD|ZHSFq z*Bg0=xIA8U{y8KHkt(+3e6U02f5hmdtPtxx{c5t~2xBv5{}(9$I%b^LeFMG4r-3m;5ixjkxEy7T=lrI)9E4=|oJo3QtK zv+ES|PmV6&GYKNV1bbJJ^~8cmXtwcT+vhr6+FUI7%DOIS`UH2OGfR;)T|I%Y{S03e z)%)%q3*Oe>|MK92VcIy_>_m}d>;8j`G_{O+GsuXjrBf&7<@|5YXV$`Kxlvmy%|(SfI!Q_trcurpfs*Hucy-LckaHk5qDu$Bl2w+_81Y8-lXIDh;WjV3Vv2EV82uSfG zqU~PBk~@r4V21-Hn<~)243a*4afwHF!MH$1Q9?DeDc5>QlDQ_j2`Vl0m#$p zSxJ{3CwND_%5%*bG5tS^1yi@W{ma^~C7zi~m)S?pfum)T27IRwy+eQoM42*{CI6Re z%PYVwn-8%Qo&@`HhgUduw|2_GgPHDRf*4rr>qM{P#y&q&P*SZh&tgIGtLj(DUpIxZ zcFU(x32=&0;a=pZUCq|F{Rgu>2;a$M@&-~us1|&^irn1UuuOiRGsN4W1cg5DcX3`` z;6$t#c#$wK*YpUAc;=FUCR0etlQ^+(*qaw0>>u-6e0)F+=k%Q$a|gV62UFf;M~-Iz zJL`9O`FKHUHe07?q2I}heRBQA?IvO)E^Ld=Bc?A4!O7%iXcHobqiv(r7=z0Ue`TeU zPhovmrAL;7cnM9&9{9m|NO2OI?^Zwa&ag>3Q)E?zM>aLY#0rm_^`>1|Mg)K&sXhYqhUw!%H&$`EG^v<=szDclk=Aj_9U7Fwac6v3y&88MG421E zJ~l4;5}M4C-mnko6HcvNEW45 z0cX_y8^^-27f;D``u?zKw_K|M1@QlSd)o?)yy`0q-i^ZBO9W;yRRo9TN?aQ^y=LV2 z^DFnZ%7S)R9&v8?D{6*vobmb8MH*3#_=~%S(_aVV1dT8vk;aJGCPO?QNn8&uf$(CD zV_ts2zZVG?^kQ9CQwkcVLH;0??JFR1p!3t159;sAu`vhThj>1b9_`&ArT)5Z$m~&U zuow5N#_#C!MkEUYt;b&dUB-(A!_h0rmMzoEPE=W{>09b1Vxql6@CJ_E2@@gzfH zIkDFmY@Bw9Rl;k*R$D3~J0n@UCP%P~pR@7GlA`5f9ME;4$`^D>!BVbpWJ!{A|NWVK z$8o_HxiA!`#AH?+v1mUUmg16td+Axb9!8w)NVZxZB{#%IdpMh&#QQo& zH+D))uXN#jN&-wiM0y=R#`wCXzn~57y>QW9>)z9XbttN?`d6daN@0wu@1DdYcH?2q z2jUAVax4_}mTheHIN^=U-0&Q7lp8vG8*#b#ipHhZk#-#9zbn_0jyO$%i;j`z6jcPQ z9f`Sp9isYOq9}(0oO4L*FZ^eWA}JmuctZj6Z|n6r2D@JB9H<=Ky2Vyg${35soU)&j z451&B!#eKdHAcfWy7?k zU1}vGm@mz$js;fGswj6-TUZajdco)ba2h+A9S%yt=i&B8?%5RG^?wiR z?BmbygmmR;C+wmAF zQTX?h5ES@qUeFL;5N)qE|68xdk9lD-bJD6XU+mRkAVXPRcszMq zr6XM7tEtPEuS*LKjAqOSipVypY~X0P!sZkPx~#|_La(sQhS+HmsKAQyE!aFTJN%Z* zU8ed>UU86tR3hW3^A-=UV2@(cCbCQ`mkr+`w#%OnehzsbcDKB6x0W zW>tulyFCjbZVyURRwJECytmPN6+N*hg8K%IO2^% z)a3*JyzT*PH!_z-Bq$G+mBb7MXo1UrfcL)2^<#)1nfDD>kH76Bi<$O>Jp6EvwtNzD zph^YY0)rhpDnVdeu}P7yK1KVAy=~|bC{z0Kh9-Q*yV_~XRUo8Ht4P(zK@_n$S(fwS zU3z}rGXuI#rt|9w;d#7{A!f*R+B=Iq8LNSu+2r6*tXf{nW9XgAtb0NITI|f6%ib)( zwSG^^hp6S#vsF(R!M+>l&7>8|8h&H_0gWm)f6h4{8g%JyZ-B#ArbWN%POb*br+Pjp zxm$s1|8?fei74+A;}FenO1n(Jw|Hv4eL+JpB{hdnk{Jt*$5B zr51a(R!Od-JOjs{kj-{{oj8+z>CS;$kGH`azY`}qHr50Xe_&kqXS>bZ%R-zomF$9v zJnMiuJ6@aKrNg(!y;8s<-7e_qYpnZ>dJKZsWf~J9s0m7MFANud78QMp-jZKOxbPEI zPlN&D;|a!WyL4~EL(&lTWtxs4nQ+K})I~G6#KzKOW77<@) zh!{jqY^yULJcg=?1>B>3Z1V22sP-O7&uoYts4`EV+Hc_%_q#osqxKb+cbd4d5y%lx zxfsd;HtthFe@L59<+M^Kp(sz5gs3RUYGs!p=+`SyO_rThQ34q;CpAA!)N4w;MO@D# z@--#A_=~)SyC6K_Ck#^Dq$dma(>jly=Z(xnBMqEb);HKKMt0cb6K{pBEkk_XVJ2^C{rVm!=%I?ZX zx49b&SRf7IibtL3F>JicMVJB^RFq}d7|9LfLBQ8 z^d$9P%NNe?(X_!ttBj-X4_dL}_QPC+`vY&xQo?QC(Um4I|GEGEo82>uYZlr@aWTJC zdcrne4{9s^aM!r>cq74Z%i3{(6Lh(s_4{Wt-x-al0|ayD@3SJ_rg2gRh2!Jo%8?SD*Tnhf|ZpoSW@td$m17E=-%%-K&Xzn`^qNu*lz9@57_>bpM+UPqP>^;S}HP()TC= zzb$P@0AHS8#R)8G&)9#YkL-&b!F}ex_<^TV4A$`7kE7qY2phxPX}-0|)NZ|Wl%MSM z6@0mvbcon6>+Vjl{719yBJ;G|(%)vP12fik^*n+eqsS$Os)A5ki%Nr+j0~=XgcxIbRMdec>44`@#iR+vnRrZ0Ny*dxA-+TCJY$;2%}l|29W1& zhT(yqe9djq_J}3lF19q1Us-U8d=nY|KXhT?5HkEFWj2pk?=*XKO1{ddscKE*Cx3k3 z#24ljt%d`AX|sr{H3{-#sHCl*A52tjCx!m2wfThEY7R72;L{!z?Uix$?=m@pu@S^L z)rL`b^w&bIZ8*==o(NE>8JHcq9*&}#-nu~>#D_{`y=U|3f(CwvSRob1h%>c=PCDrW zJ|+lVI73sL$`e4o57_s5%BX({$cV+9z|g%tJz7B<*M4lRY~(p|GtNPnA1;WJE;3A} zLHNaufhD%1tb zR~5eI=?B1rIMq9@kJ3rWjG6aezsOafM-cNk>?AreD)IeFGqrbFERmQVex{gwgDO)B z_@I@*xdghFL6}03Zy!6m-6yV66C*xe-&h8Asb;k;Q}a9O_dWz_>3SL#G}$>1R0Kr| z%{DnUR8qG*wS2FUmr1&;|KPKz;Ld&1^*zoCOPUJl43``z2hXtc<%;pI!=%GQ)~~1% z?&|pI9=qlqA%5ufc4wMiLX@z_wx8L54FcnGS?TOMDu?0!c=GQ3BF}IvrUX;Zsv~(!B-zg?3KA3Lync%289RAny+}5 z*7q*m<#NgW)jSTF0+!|e7G^PyN=R(Q6J}Q4q)Z6Tcp}+2*(0~tmlEh(aiGz}{y5Nm zuID<{1ti2MlXTOWm5%_l^e%M^_CJowLbh&CGn}j*dib&-Bt?KUWIC=8b z#~4(|L<8OdcLefuRo2d<_QhG<{sMU>h~KqHr-k7iz-C_ItfM55EyxZf zRhh1?3vMA*=kpOz_1-hXLhU9gYe9=M4KMa4SY~>q4NvUR=)Iv`b_o3xdSLM2PFnB` zOOBVaMM<>9(D|2==@CFdc-1NDNnbWAKeC^7AP?769*Yhw1phVo+qU4Zry07;y$0xg zt3D0;&e6u~jYt;pJ2bmU98>K?`K#~r-rP>!QOHYedc59ZP@qbFKXz0uuLR&7zI4v} zzrYOPFLyg8c=$=lJ+V~_Um?s$0uw<)9@W1nCiVY<3c4$C8$2;1w~H;ahm;lC1ps2Z z8eGvVjZ4G^;@cf{BaI?)sPnko&ch6LHyc$r;Ep&XUAd49;d2e-IdBB~jFch{_7YPD z!l=HBRp3va^XQ|qJ+_k-bhjN=H84Z&zqX^ab}>p*rgAR9nS=CxzZ~9j-Had4=YZRnxNx^(O+s?SLT2QP~Z12U<`M2naNKx;r0z;(QDQWq)~O|+dwPaTaB|n z6Q5n~NQJ1XH%dU^L3y`0>uXuK3tIn{2ZGJk0zr;(&?l!YJJuY*f*w7)(o7ZBndvmR zq~Q2ofd|;B7{?Q*XlrKsdsTCtGb^10U4lPY z3TKDQ+k5(^3Me0)WgK*4&6L^xYO)IFd$A{_I@rtAwZgof+t#Syt9UOC_-r%LIrm)eg>^JtpbfT_qp_8+E@8$M}njI;^)2>np=^g zwNb$OD++@h)sMkPe1_;q!~H+2mDTfBc2Qkhe{}9k$I{2GuG4uAdN&_BA#hjIo^!Y7 z5JhR%6hhn|q(}e7)%l$$SAUgEvG$D6OU?C==B}r~Muq=uH=`A@ggVL|)AR$gvnn1d zLoVOK95+!Xdq0wtNBN2@E?sO;)}xhJ@E! z62JzU|Kbk>s!lh4#JP*wH_n2r11NcMaEFT#k0A62dv&d6Lgk2ccI)gEBYY=KCvEA_ zd~(z1GFTfb&gJD7opFmrE=w=-BVr!P{V#$FU3?~S?IRL%J0tUV_!O85x7~DRn~)%* zy}UGu@SDIfIWvK$(xb5v{DrLM1WcV9l4Z*Zmtp_i>&9LW1Wz~UyvY)4r z(2Ohn-JHn(pKFL`3kUpSXfX5E<5lG-kli~8zxz%uz0OeXxyJs>y6R&Zw}JX%@c6hq0VxTc38kp%iekG<6uss#%V1C-t6G=MJq_0Gla0 z=r~~Fy6hO7Wa6SS5=C^%#{amIeLw+P9tGdneph*glDIn@cva}3iX*KW)Q>;QMwl_< z_oB8`vQ1ulCBiFcITEd-+!hpprcL*+=RK*YDG#0X)>ZCigX=F5ZyN?te{9^- zOEVs!;@K)Q$eC+$B{0v)X80?3X10ZD5B0>MKNDyC|Ga2;<2|^Bs4_U>5vWHPo1as_ z{NgpiPmHH3}SzZ=fc{$8f*s_JZ1x+CqFog;_@sgSr|8vzLs~>gr)nhn;Lmm(0AxS-~c^ zQ&)u+KSS$i7x%Vow$J{o+~#RCJVc@X`ZtOccQ(RNn>r(9PkOtQ*e#t({PEgF9gsGben)Pla6vsGZzNn zv+?bFz9CIoK|9N7>r~>x&Gtmb^|BM9ec>*+A)EZC=(+`UpQq;yp3WOJJB2$fo%?MP z3(hi8I{s9OZ5{3-P$t|^)Yt{(Cz}&sv%Zb>+v!`*=W2OXP#z1_z4>nHm367vdH40D zve~K|mUE6C>ma3`^T_M4{Y*CV!KRB&b^JKr8?|NpYr%jxq;M!-tgw-;)n#z!1?acA z)cZ}Hb@UhxO1XiSB(9-S%(G>Nc)*yv451NS{*Et`plM4X6t_Lk)1v6eE03W8X%r`v z>z{oVk;bii+qbam7ZJgD%hPwRT=UtHtghwX+u-@QNleI}i}D;mEXL2(gURR&%2TLB z-T=b5daEgL?w)!qKd6&F2tVQNL(hroCm!nM!3oHxm#TZwj&|zT=;ZZWZKVK{xEJb6?6d5f{|8a{wGA*gl_VOSGG_S-lld-86=k_z*(s^Hl?tfy=-*ZEgx4qo;rIJ)W$d zL2HgxXX+2!WZH+eW2M#74+G`;@rS+rTw(mmS%@z6OXKA;m#`rU|7k2(XPR|=&~Sc? zkNop9?(gGUcO=i#Qnx-d@qh+2XMvOpumg|a6wo8inroC6C0xt0jETGJ zB>dLet|AfQTO8Xr>{8;5$*?lZO$46;mj_v*M;c-w3w7NLX5j?Vj_c2B#c*m|TzP7x zvX4QS{^#pUe;JJDMDEp9Se3n~vp9AVu|Az|;0pD(ZZIrwYVs#|q$A%w7pEXq;VFP}Ml=}Z% ztOUDT?0Qvm49@@}geiDYeAwxzlfb&wwaT)^zcX9)*g5vUpqr!2Tg^Yeq-0Snd!h~% zCi{~n>xztT_tiX8?pu^Sk}niEJGD~T>3AJQxvu_+bxrC+BH|aRx;NL|c_XJmc0Uvb z|K){Ozrx+^g%7ePFf6;GY<(kZ&H%R=S(9e~aDI%Sf849J+^o~>S`4DfNs|O?rl1{b zqQkwuCcG(?R*I>+xo_V@d%M>N@q3q{^FRs|vcH(8*~@ObIvIS!-yFN^j;TA;vcD~C zHHRG_c4s0+R5mp@A}8F!uqqz4YQE zaKAXOZZC*|_rI+77sC7jQ-E&xF8U!oc*J#*rX9PSfr7`!*J|ZlH3A0HTjJcb~&Y#wCOL+2+>~FIXvA zlly#jx0*(^m!vPub%q8j>T^d&CeW5dsVe-NH0|zAC0;1iYL~6gq%I!KYcS}Ee7l@# zgvfTg%zZF{G%a3Kj8UQ`vErstYg6Fig)dBe;zhs)zab5%;{Qen`#?t$afkQ47r}41 z5&Z92WfF@kaSd_4tIZ(x^zu-kOya;wL1paqFZ(*{*+Q6I2|>=wWuKRNs1{>v6G+}hIoK_D~E%a=kb?k zR6Z>bybHo9VZqkynd&Ojx13ngrX5aJ%`YPly_G0DiR@x3FY!6o!$aqzJ@8{fK{xJg ztI%;+KRMoQ=5xPyY?j5!j5wW4{jkkw1gt@vPPHw1N6yraAtHlr0SFze(z)r|^W2f| z06`K)iFtdDF-5eYZ_N^+9X)aM%yHi?H}c!$nu&((oS4_{&k%D$ ztlt4_?q0peN7X-Pe_9^vXnE3ipxR}A5l#+AJdrzW_zBDj?ImPqwjEJh2Hu{52WxY3 z0^7SEr^nH~PJ=YAmH!@XQg7ID+;TXfweW%!F+d7a;a*oF?mpVF+0M?ZgWJfMsyw_sKOuO#6xs-vePX_PQ_8mF;BXHq6y54fD_RhD8o*;rH&hvlD9nD8`7YJqu z&g5Rh-??g{^j;(oZe;aZ*}Wkrv>h^8HOH<-v4j?Z`{f#rfNwQrX`Iv0FcbeMiB&wk zEpp#MZB(e1z5CxOdjp=ERwA$m7;W{k{Su=2>e&Pioc_Jj2h6FrAZhxo2yB``nI@Y) z^JGy|xe^gHI&b9aA%mEKN|RN|VtgGgb-oTu?{66^8v>Lc(cuZs|A@b(kj zwS67-8g#$o>13LS2I-6a=#YIRQ}rwz*t=S4Z)&^jFFNl z27vPmq+1EZ$IwJ-FvVx`P?7xLBrHC~2;sq!1yvwS=+mhChz8)t2O;+gCc2V61iM&Y z*|Bk?ZVoSy8woZ@cD*673&e-D04gw%{q7079tbIQkOFYET5~;5t3l~)x|BS2#A6$x z32Na{Ae%xwz+vc{O%m5#0qQXe{%-w-hBBu zXD|T#Iq}M33ItnY)Fxav|LOdW&O&H>lzVP;2tr|K%$G%`-GoQ%<-`L+mmoWl_H};2 zoJR{+IH_rtc%y{)ab)*VIn68W0%rR<3+rP}b77T4>YF=-H|&DeBW7g|yf!&@DCM;K zY5ZTgzq=bK2|yO61bTY;f7yPUfLer`<|E!gFZU*>%UN&bSxUr2A2jJgkd2^xYO=|s zJ4IbkDK*{;x66S=P!DQIKi~XiTGuD11}1%j1hukWOwU>9KNuaN2VQPMJ>EjUM8r9% zwaaB$vKwH|!A+mk+4UR5pIFW^OA;Q&h$66~SPwg&*e*oz}x+)&MiOO1khJ`X=(E&y)D?njU-0s;OKF!=tU`(f%3#u-*{ z3UMPdZS^|NXl3WZsNH~!JSGZ7Ee`}}(hw#Aw8V)VsALAuK1SU2`hv~Je=5C~jMx!* zB{8n}l=iPx?}gt4@q8iJmiAD4uF)cZG{g%M$|(oiZk@AX{BFCjwUMllStYclz2(7- zc?^4x$@O;b$xBbM!Sz!~y|j}o0&VNT9w{;y6lPfWDV&a42qNT>$N5oy+$8uBv`foT zZ*v$=GJ;HRg%9pkQ>c-glcaZ?O(H4*N>=9ve7p|+8Yrpqkqno1Jf3~ABs3n#Gl@Aj*6yJyrHuy&9*j^m4TC|~WtklO4 zRZ4u1WGdw4acKjrPrM5;W@heso<=;z`04F_|NXU1Gn*ZgP1C8A*@T;=^g%-M^u4nD zr)Hoh03r>0@ik*A52>&dvM>j^oU7nVuv8Z}#10xD zKb>UwL~CWd&>O>&0dHo`*~P2a=mVGocy@b%W0gN@DCXeu|<}@g3(F#8-8NzEF zMYLXm{US_IW|~C$rXQpsV(G>2YjojA^EgTb{?q_yO|EH=usI(t<*72~7m!~w7kxxJ z*QY&Le;N7RyF4kRpu_ieg*Z3-s7CEPN?pgbHf%fj?S3$Bb*B+w;27{8lExoKrN0% z1W$B4QG9|q;*_d!HQ?-sa$;eC@iX#kGND|fQ8K! z*KNb)(?2`nCB{`Iy0z4LF5C7kZre_E#l~wAO1`~5C3CnWsZBj8_hdQX-$x04H9-%F zC3qb6qo&~XF!yGQtXi;=iF#A^2M4ZgIQqODUw|*%TI?@CD%Km5)(?o}&zfxLsC>2* zD+|6cz^uGkn9^|W|Cp800e_(~NDt@S}ug=6CHQLU#Q^M@6rNcf9x6zjLvl+WE>p zi1`dYTYdvp!7vWeZM6CBpQBEE+p`BeW}%k2gRYrnHN{M6O>rFT_!<)n&W9=Sd~f0`N@3Q)%PK z%!@ z4A*?Td7UfBu#ltQ`SV9>Y|ZWijWj>Z+Gx?ve3 z^^Qhu5PMsXyDhke);?f!EP@PRY>L*Q0?EDg?INBH!3Q}%=NdHABn-693f0qk-fc;( zeWkQ^T3%fSe5363>d!f#Z-}dO3*aW|zzn93d_S4+TCJ9G72=mWa}6r)@K}7J$cKwH zuvu{X!~r9gP5eFfUH0Z=NZUWU=B|t9K;pbvMtkf5-`JU^w@&e5eJF5X7n>Rmth(*M z&wfiYU)ejA8jVOfyejTIjr%9pHe>66dXaNJ`dEy=dt)x#xc5d}hzbbGzUX(|_qp!t+=t^i`~gP}`gwoe@8|RRdOYDfP`~N+ z0vC4y=<%Q-0*_^Q7-rXa*K4kre~B`$Kl7MA*yM791KAZYNgkR)*?@j~B=}c+ghHzi zqhJEWA8_HY9=oML>FU#Cq1G7%36FVRv-Rhq~H`uDq+cqyexdc-q>zvyMdC>9&A2@oznQyvp5hZm(OVh z-CemHj(EJM7yLeaD2N6e2R62v?m$0Ywq^f`?c0mR@U@Qp2nr3A&)u{3V9QLk5C)p< z5Q9vdx3@&#^*B0{h<_`JtE%Gh6Of9*EL#N%D)L;(5FJ;&_k%K)`zR|=F9U^)5v_to z?xTly|CfMz_g^o*O+>7C*~()UR~Ju8B|g6(sPkI$<|~L^hY{3 zm!fMc-Ms8<1ymTth=9)Y?YCF^u^aqt_t*I`uKB&Nc<3(Z-5CEYz>PjgaTkMNvPC(P zIa)(BBho}w;7O+e-!miKIP(hhOGxugLJUeYYUT18C3S(3VEg+`Jr8HZHD(zzwUM|; zyo1J4>>CU_is?R%dYD0w{tgItLq85}p$t90Evo8*9*H)#f2^%X`zN~XO6M|@R?%Rb z@3drC*RB;8<-s0dgClj$Cik4#hpIs1_m@@=LHOIUVl^^E)?7ZWD8px4IH$Jqr(UP5 zzpyLS&(htRs4@|{-;^pP(kZo3Lh)SZo@IvqWD7EHFQJ2AX)nXX5jz@#+c0mbb)Xzv z&qgtqT?3~@`Td8KTdIDJ8}GGWzxjKKXR{tX zaJ67zQr>`Z``o2q`6=C>u~gd4sVS+?aH;QC{DYtgN~?tk(8uin_w@p#CIJ+MxR>!2 zxro@-s&+~VWk$`G^u0T)=Jh0-btTRxGaB}`c^?OB%eL4B+HqPkH?W97^XWrAWQKHO zP)!}D(zA|#={xP#Vj&UZ?vGSkd$B7%aWKZbUjKeNo}yGue=Vsi9yG0hHa3CtHlQV% z9z)A^->N!a`mr3|pa;GuMv)w`oQBO^?k15}Jj}*2X)o8VwdS!=h&JTugBgvp6)x3R zHxTt(=D@%}$lhyD#WK}Ve%jc=B;hOC=V!`Y==5;2tx&rGFAr^SwKE;#9LU}swykkkfxf%7#zdI)oc z*(i`cQe!Ux+Pznwcttn<8gAftX)w2hgAdzuvZF<0ej~jZ#KPtPoe)`#xUKEQ4sOs2 zS9t&LqcU$ojHEnr4kg9Sj=No?q9UkWye4{2Xr6zy!;`C%MriPEgkN0)wABM4CWghx+ z#)V`0gw(L_15I;xC!8Tc+y!wl44><(8*n7bkOtQa3b@sh3E)TRcD}~1m9bF=4Al@>*2>ZZ`O+xc%F>JW ze9Zr>BL2E;=r856H@M;m7nY+q z^|+-#)dh1`gu495Vo&frR_a!uE;n7MkJGD&zFN$7OVTtJIz4lqU-dbp-$Ok-EI!DM ztjLD$I047_a7JuFcJF9H6w$;5@#;fhu*9n~T$Mdp36uBv3`bZk5#q+R^Wz)}p%*iK z+eUo$Ty%I=KK#}%^h#XUT1oZU0o89WTAQ^xT+_abkElvUQ{EbMOKUZ~to0a9{(EO` z@4uRN`TfStZF&<02yW-f|3$ayCXDlb6S)vt)=U3-XbmFRGR( zs7#mLLpX=5rhjxEzsersX??yXnhs0g0esz$qwHwH;1-)W^+JTrmg&Ux7fwN6yqjzD zJ`^=8C#WZ2@jktvmi%~2$=2{tX3)`2)G}Yx^6Mo)@ zn^PSly7qVWhSpMNm5B)#N@L6w-4=_vsW={2W`q_wZ%}YCWCz7bD6OHgMF2> za5Q7UQS6=K{dxACo8cLvN@6qRAmj9~5m>TYp3ap?k+8$8clll*ruR`mu>-$QR{ZR<*`jvZbW15-#xI@K+d;NUQO+?12?Ux$# zuK!6FIl1&tfVcTJj#RG!|K%MV-#ZJ!dpI2&=MVg167H|>Wbo#nJ^$$ZDp>n_T>N^A zvxD|ShAa+XJh-&a_S^n~!Ih;(`=a_^NF&oHif!H7YDp3&2&j8Cke_0uz@Fn1fC<2Q zI7ng1d%t9dcRcPq=5I4K;$rFHYVN$YR=5Oo$O`RIgrY>!C6+5v`IEDMAv;;|(L1kA zjH?uLV-#PQHWh5An!ls^4CKGHu1QpI6(tD8i+JGxYP6>v<`-uGZ+ylr-zXO5WRNB} z39E2zf+wctHdM8Ef^jbmh);v^M~H7vNJO#Xp~(ltGwm7?e`tc_Nj!7?qE;;d!|*L@ zsN_smaa?P_RKb*!4$S223LOgt_A_!}K*}1C1#5KH>Yhvpq0q(gx$*cx*y79%nB(aR zeD!dJ!bgZ&RxC~!8<;>Jd&jo)hEF2+JcxHes}}B%pnVsUsiq_6GMI>2(hfeSyP2`}`ai*x2QK%k|<~A@u*fwMFAHPHYiIDZ%aN6E) z9XW{BRxP_za{!g$!8CxEa|Q6H zKtC0kcj*X%%kMIM)`J3GUTX}g0(btj=ACYI8WDezr5?-_ngM$TZ)wgDpmbMdHG1LL ziybHmau+641bO5(nr3@I5uAL+FE_t(q2mCa_buo(uU4* zmK6ZAfwc1`G5$%qHN`g?Rb(vxlpqzd*ou&CyWNY}uuoHcLvb3h&WhVk+#SHCvSnC7 ziss~Hfl~_3UM;|mHJm3MiC#AzuWT?koI9ZQ$%U8!^QgW|YNaM$xFPeD2==2pZd#Rg z2G{p;M>)s#-x;P?0hwQ|Wz+ZI+Y^e;=Ju~9iMz8zI6(qYjB5Uy-g563q$v+pm`pm; z#k0v=9zl_2qJN>+vVOdYY1v}&0-1B10;tzqaQj7(^`O;%$tEy87h8wgo89sh-IsZ^ zL702lIrF?t+1|3cRCgrpX>QnV#T;c&3BzZ8DG3`g%gPE|e?sNyO0B=N7qrz2aDX|s z&~6f;o~BToWN z;3tyk5sK?@qh%ls^1v9EtC$J1aK`E1n%l`^wHc#^AxkCAK1>UyS=wwHYOR33l=~2w zNa6*a*jXARjnmtuaGr%|na!IZDLOog9$)(lWLb=&crdAXN3IeY@GDL?tlB4SBOH(0 zU#vLv&D)zS|FT-w`1enE+V3#d6THdbcf`ZgK^I8ZLO5O{_{oPM(5K(t66xard*!-c z+(`YC5BdXrN?a$qdh@sm~-H~fz~d_1Zz z;YsjZjCw9PST_iPC0>#fefHFD!qGPCw;|>V^$8dyQwCaVcPB7OAeB|~WGq?c)io^Z z$`N&%VT;)3qYB#ttFO@e=&&Cren6Th|2mVqAI_uU1dI}NV=Ir>TMny(|3$a|4G{XB zi5O(y6*>#MLLT1Jn9_W*e9Kr_ID`E86|(qq!tkdz4SGk^m}vL0qnsNxVN*!h24w%2 zu>JWq>kFz?AArL z=bh!$`U`zm8{dDtaFK4dZ1P@MmA%LZ`@8()K^^NvjgkpVlY*K3!LhU91a~uMN2K-Lv%c=U<*ORw5=Jl$ib3?V!-OBRqoHI0>$(Ivf!5YDw1?K%BtA znI(=96(GNJ7s4!5>NxFO&XBQLz9iyXBdHkodMhP}FH3FX5PXC>Rs&%%15*_>a`O)L z{~$x+R!q*5XKCRGKTk#!dO#%SVc-32Md+^4t^tC@?~$^1nkqL82|nZ_ToJW0(s${( z+j(Oan_AT{@{i>rT`cP9##x@?8Zu`8dRTdx#e#LY>+#Pvg!3=(d0rBJBj27qRMIJ^ z_c}+~O+O50mNrp**!v-Q3r!$yA`q)Qm(7pfEB?<8WSV%g`9fXvGT)Tq8HGV*^*1hm z&T)TDh*^pT623N?+4P$k8rPQ0nWFi4D4*CodvimXtho2XX`JjrZ47j+z3B z>`p$^#k?uot!n-BbM9F0*ncxqh3T}NmmM2GekA)id|u{-rXl|a+r~_RZfw$Tum=%P zd(dvMuN~TJ(*2(kUFCi0SAA32vE*jp{X0W9&n;2bRXS)_epQLpYR3*do1UFVdb5nV zRuVs)QW3xJ6Joz|5+O?BBgJ{-uq^4cUi`}S_!OEnMSD9C7_tGa5F0zj0#cP1hhC2Z zPj(lzOe{Y&7LzK!H6>Vne>KrTN&Z{j@N6!D$MP?kY8^OCqFTErK=_)>a78j6>15ST zL4RqFskO>3sbeb8`#YNsibPa+!#0u{eRu1^rd~G^cP$R92GwQq4qJq3dQSQ73DT|N ztTfN^>Mwa{JEk>yU4h$f!7$Og$`fcByZ;$l=fE!^sdHsH_}kYChivH%$YkUUwyuQb2p|_o^Q+tM`Y&I{xH5mIF!VH5f1$fMi zDinr)h~47uq?y$IYa;Q;tk;T)k)1OwbO>H5$X_eic&`~4de zWup|ipB|@;gxo#H*(F|s{K`7QA&7E%Z7DTRZfIn(hJvp(>^WdVGB?$WCU26zc zqbeBJ{#lavo-UungK~1WJCU`89<1b0q9Al#GLRNbyrB7Ge20rgu@ghLq#>u>D^<0g zK$SO6*u^uu3MV~@m3ry#y_ZAnkp%Wy@ovb z1|h7`_`KY4=n6Yg4lEOTP%-MsmKEu`1mYiZ>e1H<^hZTuZ0XWZQ_N+Fx8~D}NWXSz zZ&Qch{}XyrL19h`|`7v87}EOs~VCD+Xs!C)C)rTP)FWr z1f664m(fw|2G@8V@x60H345b)U)qfsRuV&si2=nkB7<>gxWGRlYwOjrSzOGp0U zii-pLy4L!JIa~`<1KUbsl#DI<|Mz=5}rt&-zV@YKxfE zMSyyDpB~bb&Z(k#u0b~f|6~qF(DJV5cH^9@{3)laT-b-J4D5bS1#Z7Ssl+`^Nf?Gd zlFwZXiOwgdnT+c>v06M5`LphXfqDDVXX&ujDLvJ~o)B59IOV~j*5(P%5bMyYwK+#< zUR4$M;STncB@}PRoU(Lz;gB(M33pvCQcGs%&^5YTRqCoQ<8-3SBUbJwnHS+VQEF>v zZYsS$NteV_2s&I_+cxC^Q*wmVv_N-ni6heFI=(UPufF+d7_T3ls2{MX#NJ-e*<9=f zFMxg8oTj_8IO4k*f~ciN9hHL^(O2ZLzqVwnH~?oVe+JV14#x~2e!h?>xg)dpqQ5;o zQCHw^?rZ1HHlR29Y(oq%OooVt=@+rNKyW62<{E0 z&Pi)CdUF5?s?*Qtwv_14`+WUHGeaY2h!^ml3u2;beSzM2sXD zw4aK+WEP=jb8WCO9k2b$vUcS!|1`Q|oZ4s-_6TBLl%NKbb+6ZWd{6!E0k{K8e=vx! z0P$M4PJ(CbM?dD(C+}aW_9OB#!6o!wsJ982dtkQ*1OBT;H$%#ROWbdbv2W>~s7pk) zosL84JF+gqV`2U{OU{PT<{zg_LL>L=98m$Z0t)VQ(8=tdtmg&8445NrDPa#A8(+J< zzHB&3Uk3S1k~}a4b1y)G0&z(Cq_^B=Hb}j^;b>14^e)Co?-wGR8E~;L;DS&TW-LKN z`(tY&f2s5N=8Ikx-aW`+@X5F z%*)6db_Izyme}CpU4u`>ef^L;2o5sdB23(Yg^9Bn&Sqy=-A8nV*!Qn_R{}^bgMs3K z87&%L;L(OE;T^6iw0(s`UZY4OxuNe4zQ>l7bN4bb>KpYo6*FLX0ZQb>(n{}pqZxu{dAO;EhRnzvX0{LO;LoITu<6={&wUMAsjyCdlQ0G59@h0H?$1_-x8BPBmRa70^ z#d+dE^1jzt8mCy~89!t^);0Ccw~*+F@gCJz;^Nq+R}eBnT&ts>ETWLgh-HRFz2xQY z8@W^uG3I#Q@a3i}Azw@~GMb9uHJf+#qa{zSzEq^Q{{cK5BUvk~%wRfIG0^0W(P-W`yX@TXgS}B`t=6z6u7&eo70YRLEElkxyeU<&e!{_!f4(f zLt4>`;IsjK`}hsVb|Vy~|5jV={eAu>zyN@5LKoS0a*M%WW?gAwfCpkWeYN;hfR( zY_W(HDf-pk3J%O*p8aLJ6k;|sCpGb~fu+EnTpdOC6sooQM2UC3E};=8(3Z2rIq z&cE9AY0zNUH^{2eqC5LyY>9;;3y-=Cp@(SOl>55w?lZPSEY_?L4hLkkM#~Iq7Y1_->t>M~#{1Q-|mY%pcW_-E_nPq^{Cv{3?~eB_P(@@rg_x{L@dg zGjAjzKzxfgA7`tI2Umxt)L-3>uiMS$pB62q*S18j=zRa9VPVuZ-b&l^Z5+y!OW!n^ zjYeSVL@J41{D9s%+tA&v!(%g>wNoD6bJc4hfn^!}B_f08)Q5VS-yZfZLfua`xs1CT z06PrGS0^SU)NjqP<3n$=j=_fC8vS*y62zY*@cJYA!R1D?2W(_fcN(o#40C{1z*>_= zQ?L9wTRYGb50}Tdeb2Y*B&p7U#q~SCeF*_;%2PX+546s(2c713Wxr!>0tvm!(RKHy z&gRFv&y?%p0t#E@ji2jt)h~I6n1W~aUbhn2Wa0l9lWGEhC~Ro!Mf^dUZ!Xp&1smYN znp+(0=G&ZEtt0cIPqa<%AS;}~m@RJmKvTcWwB0fJ8aaS!lDg3VUvT5CTPq4L$0Rji z;}Y@5H`HRC3i7RbjFM}yrJM=A3BHz)^GKZ*hO$AoWQXLL89tq&|6=WYm(L9HNq0Z})gM^vLjt7I#2g>u9$Ng49>P6rTFE zI7!&=C%>E+l^t0jKMUUfw6gJo6{FrRXKkfVr9IyhYJOa~A~a8FcInfh4pjDx;4|BT zqpf3->S1BLF?wzOvIk`!C=;=ZrT&43+9rN2UK^{s3HrSriM}K@)-AR;Bzo^kJL&9s zt+Qjyw`v|8{b%+6`mbp1Eq%AH%TCBXsEI5$57l}3I-l_|2DuJM#5g^V>(aAlB&eAj z@MxhL0Vkdb@G$Xl2@^4@hdx2}_1%7o$HzvX>BqTkJlO2nq6R{&XJ}#FqL}6VG&rgM zJN5)ED(DtM80BBD@Phr(ppxIaQCnT0IQ;7ju;t98^=Hojon%NH$$YMwN)y4PH;J3< z9G~HhJwlhDLTb41v2=wD?@sSTH9B*CV`~RUirheyHG+M_9Wj@{2Ol9GOizgws?qmV zofhBs_{fsjLU~;i`~C@$g$(GzU4gB+N&3i-opO+O_+=if%bc-8x(>OH5LR5Q@`tz5 z<%t(17ZY&;xJscp#Qf`wCa|KnLd>CPZUKO99@6e8o=ReC7eiW^a=Z#XPF##)KHXFU zvGxT(&86IEC7%^FInPQ{lkcn!es*Y22XmZwptN zv`Q0|KUpsFKA0T%`q!NCB^qOoeYF}p{B~h%OL~CJH|P)?iORnY%?JzCXX-A|kME@A zHPqX+a`3g<4Au(`HVW%InFWz*{N`;thIsdvUhjLdgLbu@Z_ck85;sma&2U;=vxM%>e?Vc1q;01x0H}R8j{jsl6_fvSO}x>uo%h;yNia zPcztQJNrovr7{_8pCs|$PnxY!s@-a!!&)1F8yt;kn&m_YztGL`22a#f=rh#beK9$| zdZq0&Ow}(Zf1-Z+%leTCNG~IZy`hQf!RHWYXGocB)nDA5R_dBjNptz}h^afnA~jBJ zBUMjfpmMgp|7`$Kt(;|sZx9e0!yjC&+#&FiO5{ScN&wTO1(`EhlhMt@r~H|cMqVVc zz17>d?jUvOAr^+|`GY1#AyZegTttG;W2^FntIFyXfST8!*LktJ6};eyvf+zR#8e4- z0x|&+9Dw{eQ+k5B6x2t`z`d%aEaYxLd(2ZxIl-`QqN*!v(UF!=xs|BBf1s>XSkiS- z&{WM^FnyBL@BWC3C(}bdV`e~`%iiaae8J)!|7uVsG2ypLgOBru_zZ>&RC>J{jw%mZ z#VV(YW3M%eGHP62N&ku?Med;Mqpp|H?CxpGa+1I*bvM&#S$GXKJ7}s!D0X;Lw^H%f zARup8q0D2;is~Nfof9H41%W6^|K9TFKWJPC?77yrK#2TMSe|8NSCu~!XSLak8R89N zxb8A6>mSfs>~h%@`K_>&x;yZEQswZrh2mZ=O8s%Y%Z0o(F=O*L;(qDt25Yuz`1uzL zIpmioNoMB>UuRk^Z?u-3=|S)`paz9x(}(nVjZku-TKA4!c2t-d~cTxuGf9iMi8_I%?EwC zL)*QH3i>*Pc2s)>OLXKTBzv;eyvU5_>K1I?p<1z}2?@)1=<~>=|2lWO6}D_CWwQEJ z9H(F7-Hz(d${`JDE&{in&@+Zfy2U*z?}_$d=2Lvr z75^&Ut8PqL+2V;2DfSe0c#`!wKT4!8ulVAh2B-aqt?a^8zd}KLbTbr39~b5BeorVl z)`rePX8>x(`<2g1L?uXoeeQ8Oqc_Mt@+y@n=9|!jcKu}lK?Fa3AQ>l%(T_vAqMsT6 z8x2_E{GBz8G{{Hv@R+Uswc%m0eWEzJ81d&UaEj$2T&o30vb$veHsX(;LsE6G7n<9Q zvwfP%^onT@0a;t)l(X|ec0&P(H;flqg6;2yQ~G@Te`}Y&$eHbA zKxbH5!>To`N9fWp>aNpJ(cI)&(y1)fB;3m{R9^9hB^V)aD;Z&Aj7jl}$lL(D^;z_h zZDf<&Yh<6lCO%}5=yEu!M>KVrV@W?^U4Td;Dw9CIcVC2kD!P^4#=ZWQgHgsj^G0)JVhbPK@AMRipoLRpFf??-2aUTf*|vK;shs z_LL0FYf{))+gZr)*0uDt2|mHi@ck=48~jq}8ytEBIghDryRq7qAm|8?y94;O6k4V` zE^d{(5q@ed+-fGJ=$?~PP8omlSALaZ>#YFsDt`gjMz3oQ2}27lYO(D1;11BkiH=6E z+NCf5x1E+8!@o^ls;#N;C?*`Foh62*;=f3$==NRf?U-@hd`_m{0hd@85aj{zm#3Bo zTV9&)zH)%Q+_d|H-FxgBiY@m@4@%F9yVgXO9YdsnP#Y=;7h+n6@?rg{-h$LJbTz)Zz@k~`@q`+;hi1!?<5-W#>%#t78$o(&%7GW5~& zNwr%v+RGkwe!weMb3B7g%NbW{t)5hw{fgenEt`HG!8&jU*q|0SSdufp3S8YK@$M5B zB?6OWvnF|;vx5{hCc9`LS!sj%>D?@%p(ZH;JS6EWHs@iJ$cYxl2@?L;8rJJhUBmApTz{#&2LzWdBFR=+dMMJij#26r|J8PN;9ke_KEN$%_svzx6G|rJ zQho`xhUzv}cgyEo@YAjMAP|=Dg?rpe5t9Zc{H+wenThtNnzZya&pO*_i6N#aTaCME zB)DLE=+U(j-ZE`iCDPOa=H~^_-1v+0O~f9e*KTiku7+@w8-n#w0a8x4VBm+hl5$1HJYVOxEe648}&%<92lj`-A<7 z-7AuBhkjI5!wo`*jGJ9XF(Jx5yN>6aymWLz*s^x`S#lQo)cVe{$WUAh?=Fc)Y3Wg2 zq)8_gu4wpK^)N>KQEf|T1@?Q@Ah_LZgw6IKO;&OK)nT=_^Q=)m3nCwxC<4)eyvNmsXnD!yGr|GH(0!mEFsh?pzv)c ziB-p=b*IycW!X>c3}=Y!>DlMOCDbyX$EBvOOwbd@U#j$C{GUvJTkw=otsFi_A{%P; zg6Zc#zfA?uS;wY0XWs`JGCu=?xmPx}im94)q2M|bV<_5h?enCs4aXEGMtp)Hox-87 zGGA&Hz;#{+wU!&ez+^X1M{kjx8DOnEvk}UmNBbWWX(wJl8zHCel zkab#6Z63Z2m(%|81Why)I&M4R0F;My;4PeTPK;! zlEP9aS%id2LV5`OxIFz=H5`dAF9B(ZRI@C|FHlsL;KC(4B@0@Fx zx**xYuYmqWjR-)r9=*)Oe_l`eD$WcX)uX3AnV;F-(9$FUDxv{`Hg~XoW7USiR zYy&XH=^f%3BXLej4`H}Z1g-%=&VYk};k3TZUb-{;dH}t&1o4phfiN--=3UCD?U0ui z8@SS*{FOcwR>7`SU_*1FZ?v*{5*F}jtI`h3_7w1x{uvXty8gJhYNvJU0z{rC%GQG~ zVp&TQceYnWZHnJvt^0cpY#rUE%e|>rM4y4`dr*C0XB@$mV=2(qvIk&!$hIzeJgo7; ztXi;`&$2X@(OLBgI-A1hG0m!%!UFP07FefRNysoV=plsczC@Wwp?aoJor=*)#xF22 zKNg`i=b@Hp4V=0-($#5`p1NRKk80*Pvdg-h5IqqlXE|VW$=SIx*zs#wr0@0&ja_UQ zI8G<|8B8pA0?rSaorYgk<-CXBm!>|JYzNDX;sTm$*P=KMi1T?LRW*x@p_di+2)Yc< zkvHrox(#4&=3nKTf3{%U@B4l$21U#TikzeWBs;}cY52@?k7HB`=}9QY4Xxk{cfg5L zdly{aRiRGBLgb`NfS;)yVNTeWyP297!+kGX0 z61V-yI^8PNe3k&(g+^(wVujFn$F_GmmA6OqTTFCmU3VRRL$$m!kJ~vO&Hr)-apc)R z#e370Rw_bDx)^P3%xg;WBNwDsulU6@|8csNT)Fqw6Kz{|MzOy{NGB;S@@{hpbZ2O9 z3jlppZPa(4H!f$DSy1z(Wz1+SJe8vy|y-xT5@2$7*oR^9}aaI3W zsGETabgs2KTq4T9;WT*)rg6Aj&s#?!ENWxRzioPU^oRW!txIX|f>GGrypgGhFOe6b zDoA(CPj?;rx%=AKy zgwPtc5hh92@jI{xHqaY%P7`_g0S2ea-LET-N`%jeg z^z*qx8ly>?CrXGPCoM;3O@ZZS>L+q!`V+^rza4rST-ZLP7Nzw*^JiFU!@K&0HT;qR zCKSYR+O`N9gqqGKj=@|3%UID~!d^1NJwx*xsYyA}lGG%&c1NA9L`fJ^I*`ydpK?7` z|AT3xT>YeIJLek>3~Vg^+C}q(Z+Us5q;p^0-4^t~cc_szV=DRK>)uTgi(cLrBaR*^!SQR+Gi} zL6gmgJnk=w?cEs9ZkhNL5rwxn5X`h4x-Wmx2C$ZDwr^i4)1V%6AobTi$=?IN5$WVF zCfmJ!#JvPaQ10MZO3~9)vetT+@ z|JC574L8=xgTP-kJ5X_C^dyC{-PwU5Cuc^fS5%ZFB5XKEOXg>{mSnV)u2H#*M1;BB za9d|KZ{i^wryutcgCF}Yv?czzy6Ba!uW~FVnPN-U$C335&<_#0)W-Cv>r&EO=`)u= z!$P06PPX$2$*G6Y3*5C;yT5Lb1X)06;-i2aZfkTH<_I*av-lWu7@I+s_1h_fH}8=5;*H^}kdJ$`|C zM?>3sIGp^&6fExkS2pf5Dkz!MDrVkYAJk`T5@zV>@_tBhsUrMmv4921cu!-`P4`>9 zhpA%r4Sb~?%GEiKh*O!Tg2g`^*~Dbm$E$|T?CI5>rnV6+#4ErjKZN{MTMsG(hNSnb zk1Z9;-y8qvlqNO%6#Yi7?dXWB1h5Ky%LF9Bc|M+J(31lX6t0srACIqsCppz!g?7o} zPa#z8Y(wva{^qQiNKQ^wPM6h?$D=oXide21_`8!72%a=W!}shWYSZ^etIm9O-s#~^ zKNN=oEf7<*eAa6HG8>}D@{3^bdv>c9ph@zceUhXvqG#uPK*wUEvZ~|KcUFh)Y6)$- zJGAh*+qJ`6L+5NO2vF`0))84v(l)KQ!HPj}3pLa*qX?tP7+r$|m@O6aGbLd=a}MzQ zp&;=&pP<{>qE6#FN<^!O@%4pCtzz}YPBhIK`g zHjZS+LgHHPCZK?Xy|$}HwDgU@U$pee1`V93v}iuZCX-`Gd9X|AqAfoTSZ|F!b~6&M zdmi*jLb{yL^1#J|?AeLFj81LWCi8UyE=jLxk zk;TTh)Kg~%e5Z6P`KD4tt)S!R)s1-IPl=dfOI6hI#gp&Ep?s5R&$JRVj|a~w&H_rE zHGx0D$BMEU)~W%38Fz3jQY3~fnm=#idQod>Z~Z9xQQvEv#YfczD3HsC zMYIrT0P&{3gcL_)US?m=ZH0jC_V+8Qk)r%Vw~HG^@O7*%6WH(WD+d*xFZm2W_ic9x z#ML_Y6eO&$#C_!bm-d!)Ms*&smZ_n5U%PnQ(DklwYF*q>G(Bd+9LlP1ecmE>`e(1p zBQsCAsm`Nc$US41XHGC1j&bL`TJ>HS4rhItrr0TT4tt(Qdpvs#zJZW2@qE_OJH?(6=EDxO8~a&=X_$$45zlj2!l{ofrzaM-|{G z(TZegm@%~14Y^%=_a8v!*?GMNOAQ&04?S3W7;c+^Xqj(mFnjQ_dO_G*smk3v5T)pX zW7Qz)CO!>2M4Cc>^egFWt@;jacB&0Cv$2MLkvT{)B4zK>4#$6qZ#* zAEoH3rXRf(b4cq4BwF`obx;Exj#hIEI;1D1}jkZ+7|~=55pR0!$a{ z);UsZRkIYGb?z`X!}^K~lP)`9Sz2*hVZ3M{t31UNHOZl4EktdKYPDCCY!zfQ71W@u$v~ zLfjzZsK}MlNY4Ar1}ylmj7{$mu|q-r0|?>_2g7+ zH5wV`^rjDuHra)CfekZnD`ovb+*r|_Yla=xyxQlv(=rO|#XmNN(ERWFRd4mIZS2(e zdWff;8holHPuuz)tAzjlmVvGGY(Z9^a^VeSk5+ne<=CI=XBZb2s%-Xn+<5pt`A*ee zddcd~o%a^zs$1?*;!LI_p z0A0r>@!d20@a}y4b@}Gw60htqYXsI>yZzJ8t`f2bMr6PJaZQ}eJaO;H$K&DtPeo#j zJRgRN9B{Zh&pYWt{8_ET#}yog-E5~msxJzwl-3z-fRe&&N%ume|IfDRch-@Oj%9zI zWOlVaRpyCd@aTlr{QDvkBS4kf~`*UZF zDcS@{VcI7LIHx&sqtVxCC*?1pSuG>!xEs!&bbn3wK;g%xWgU;OMa6Zo2WpuIXZLw- zc0j^%^7(!WUXe+`e?mRTwR7wF{IE^nL3Y}$t2=+iYz$2r1%F1?l2atAvL;vNek+Gc zLBE!}{WZWjkrX8O5ffsFNV3)DksmkBdPX-?zMr!Y255PIyFuw)OcP2({EA{-y{d`+ zc(}HAux+DvTkk2^)|Bsz=c6yS3BX$xucF6ZxvGV5A2bR+5U0kDp61B*%_TZDstnJ5 zJzaknn5Z0cKwpBZphee6gqxeZ(udRY*$?jw2+bP>n`hDAeLWMklk@%C=QwPt6HD#^ z?;vX{;(ZzN^rr)~x9OeTaXW7_FL@yS$}n>G6gmG)V3U4xaz=ewLq!n|?g?<1yYmWS z0s5aKGw@Rf%%_xCKvrgm+QMTpS{tAlOB2VOds_3dQ}vw)h7@EJ05H& zGaiyWCRA@%f-MsttOm7L<@+Spi{B`#sJT1_N-wo{(>D=sb75?stdWo%>qGP#3md6b zrbT^bUt->;4Z$Q*+D*W=Hx=Ha%&o4E!B8&j+fL#+HGCqfNCnCT_QXA zW~(ur_XS1FF!WB_?!+ADZJ~&o z0=3sc*md98vkdsd2{pcArVkk&ZcIXK5%=wm|Z*Tg(^kR>);q3z8BRbbLRVuW{986go3VF`h_PVh6` zE`OguNb-^36Gyg-){P&hFX27PjsjUH68f?gw3|!b1D_Q{0JLuZdq(nFwouPBN{Hel z;oJP4ax~ageRPq=4fZ--*t|7BzwyCr5+e6_S!3$s5iHN!2#lP2LftCkUf*QO0afaL z;-U3^GMZI&veLqKKP$jbE;Dh&S&L2Rr2N`7DsMAW#t@zKL)|_&d z2O|H9eV9^aGU6lc5c^#{`cTQy>GzZiBwa+A-JtGBiK71R(nEvxm=vH?t7hKY3vtpA zz2H4@w*g{Q=5f`=?ZxP#^n0SYkaYp7oiqDyn8teD)vo_V*1Lx@9slv)Ns^o@73Hv` zLSh}{IHn{?tdbD6N)pl{XR{?m5>pOS4ol9$oR71WFz3l>&T^R3%wY`MZ0_~_{(j&4 zy07~$|Loc>pY45kJztOK^M!ex1HUyG&6h~zb!Q?uovDAoL(&Y^AA@NNN@yI?z#XYWZ;xgEi_{Jq48h9$3Pa1Dy#MW2S*xAkdRto}-Kazi$d~Kn_ZS z;1pDlPZZ@^&(2R}igKiOMHF^X^C06zVne0`k<8Dw7l#u}n(`&7RoP8{J-=VJ#B@)L zyw)a8h1Dhqg6ke2-b+hQypLQRIRJhJmr3GXAg?=b*~)`hinu$3bIV(cL$H@fayj-g zwnK4qOM|jaZ02Q-x33<7+(797osYGfBB94;;jNd(W4w(QKk*Jr7xrwOMcL0lB2>Ai z{0*+=`>e*|0=Z1!m1tWza&8Em$>_(SlAvf$(0Nn=tyFiW)cGu$m*K`MRD(>pbDJn9 zDPX5EAR9e^ZEpj{694Lj@xH6WD8wQ{-nvs6S`%5daSf-@iTdZ87_3TN0qjM|{*I(A z>oMsqg;MzT+F7lV;jHwx=ttpX>H@Ae70FRbg*)LX77DbaEyir!y0i$E*`Q2Ncu#-S zH(hM#G_fk0tUqk;ySvu6dy&DWLJNBV+IdtMOl?O8@g9jTL0Guq#8YxaLT;4iaGWti4j0yHI z_*hxO^$B=4O0m&ObqZ?zvFya_Uv-8yp+nt}o0CGLc%<(pUh{{6f-w!ip)_Q3T!W)4 z?E&0@MGN8zn059I9PQr``A$}w7dRRC&5DkD8K}Dc-l*R1ki+7kB<)jjvnKhz>}dfv z<35!~jN&Lf>r%x3%>sD%BR*HXqN)oz+jW%a)AS-?sRh@0HK!WUw^*SDe%rH`+%`|! z%B?v3AIan=XrDJVd?xo&rp13$6vf>wlJA~nEL-pUThjy&X1R&t>OH?JhXr-viukTkJO- zz5Ad^7B$;3C_B!eWtJ3Qo3wuEuBJlhpY|--B*>Y3zsI;Wb?1tTGMaq=7EThWdc@I$ zb&b^^M%lJw59g`M=G5qb3d#M5?A4#zapYfZf9k`CZ8*^LU8_27*F9l}4CmnGJ$i_g z4Z)DxFop_X)x$qp*(3b$HH9)u4o0Ug?*t$#>~_w*dO^b|KQD$J?^8=l(#nH?7%cv- zN8-`tqU-ff@fvP#7+)D*fzOut0`w82q-)&$l`fUI*zm#y?G*e+Q~5`MjGHE!lIXHW z>@3i_Gc?m+1+%H)vTcPh_wS9;j0*=51R-$z zbs$R_zE#a4u}F4n>Z{$}N=@(wsH6ubC^zJ;na3OVn$%K55DL(?`0sW+nSdOH3gSoY zk#;P!X{&Gob|)+A$0sQ1ZANAB#4|LAZ7ZmWud_yWFqWS+d zISMvcdJ|!VI?O3`-Y|9Le(Hx6QC!y!S|;Kb8d?^cJJS$#AEdrq-HG2~HYt?>wkP`& z@N+MpalSzTDKS!Pv>Zrf+p?mr`pbkgYm#-Q9kO$5h%zwk86<`659(Re{cpqNh5SV) zgWaCTfv$Kl1E??1p}jL%UoELY!(u>*^803=gGaCoBhXQW_UvxCyY)@+k%2H!Ywz8? z->Y^2{jjE_vBH!k)``Bx@=7M|X!_<}{{r#CL0CRr9G(U||rwc})q?X-o z>PvN4EFWbz@i5#YlLdXdW_Q6`r?%+z|i$?y7FL za;`3X`VGi#z2lxp5LhO~&f7PY63c^G{uhG>VPO$v+5DL?Eqw7^rxzYP^-LJg*1lt+ z`XQdsx3t#>&v`Qx^RxWdIuKjNKt>S~9!JZ7SdBi@0rz?3=_o-4ZJS~&&Urww011$r5!qTl{ z7S>7^qo_U5=ta5qLR}x{upkX#2UHHvik*I|b0dtI6kN@`nITC-56Aj@zj>>>3YizG zJi4I|M)q4cWB(nQrsF7ngsPnKd3x-^@={z{RkY{DIs1te%Y(~gw>`s#q$@v=(gmbc zfIMb}o(<4`8KSF9z%)u{@>aMZ0cR&BRud_yS()(1*q&B%?li}B5qYHYN7w>n`+!r) zB{cZ?d~z~@Uqig8cQ&e(a|7kSs&h4%=KjH7RxPd&u3h7%DOk!MB zfVRsv>Q&Q``|b8NFJW6!wi{H18Zy9*8*}A&#>T-iG zjMoeuV?w;kXIIhNL-uN(z6NZs?m_7+wN{_U;@#=Ln#o&c57bSE&J$PfC+tYvo~(+&TD>R|!Y;O+ z$XmJm8B%6)2-4682UNH%$i^0m6<830+`P!Lsj0Yxq~lQNZ8ev&jO3*45~Bds= z=BqCmC&9)N2w+*2L+8ZxnfC1@Ls)~oTq}e~PYP_>r$$0%bA;s#~xXIzEFNF`HOKb_j zm5>CdWHMRP+N()Amkj%e9W^v3Z$EafS`&0vxgDXpvevTNldus+pi15MKh~$Kj!BpA zKM3uNp72kTTTACpDA6=ayK9G!$H}apa|vow{pvzjOMeQ^0!;5S`M@h>;bh3(eO~IK zYk*nhxTqTvbnFj?fpBpTl3wyS^EC zTRhwJ)W@QcXQDS0LCpoa5Kb~#k*oPGa$X)m=LsMaZ#_&PZ^Z2zFJ)QwAi~U<>k1~P>hQPvO2Qr-Q+j^+6!QFYwSTPIxc9sNwIJFq@t;8Ztm^Hs%hud4a!<=uf!Ch5WZ_Z@3ZA_pGV3!aGt;Fc7bH2!&{E7DUD%b(xeHQaON>eof3e;fA8Yln&1tDl-oJrREc z_G^6*z!XHOvl_T4$6s?bM`-3`awXxSyV?vX_-R~t(BT*-r!TWq)~ypR2uo+r%uTIR z=}(isbxc1Ks6XeHJHsjC+$eOkCDw$6_g*=1(W-gvN_yFY6HWIM%AM}M;AZc;xi=Ta z!Qk&~6vvB6jNkYjc&1G<(|HpZj57N&gz^_UaSqG0&Bsw5T>7zX`=aWmsz%VKHZX^$f3^&XexNz0 zzsIcRzIRvT-6brcfCVAJ=Wmm_;4_etBBe9FC|^4o@)`UaKF zsQ15!kI+}`wMkZ1*&DYexi?X;rCSN5q}$pJwz2HIl$vtB7L|FTOiywS-jUh6&IIL& z(_)?rr7}yZ0+~}|tp|1eAKNb#I8^!H*+e9c9)#QA?n@6<_mQ>i6#B&<;CSavSA$vs z!>0Ah*B;7ns+fN&-$pePQA>qD7a~U*PG(&gBBoX;JUhQh`L3U&ACxNKm~<7q@0MZC ze0FNN`VlqO;lL~3G)f#N)P zj`|Zw{?aoT%+Pk9_I32babx#G_IbbkX{u)Fh$={~;A!ak1h*@KJx9k9ep#GiSsE%#(#ieQPk_rp_Y#ZT?lvBTzph@NuKi}Mvml!yFlG@jW3Ll0eDDKAKJcgI zZSZ-ZkYUYAjCT9vjhxEk#mQTBuZ?pDt>3>Q>bR19sJFD; z@}gjez!?dGE^$Mb?h~as%l}7|`i6SWuQ6}lwmuofDURkiyJ}O^o@MTQYgG;mheD5>7n@ibm=1RE*2R)#9bHnGjI(wC$9f| zr6O%$xjqEqeM&m_e_n<)>Gye@ZW|`MT9~8HN#RfwyZBakDg&kvC z3ED0=ZYI_Wxwr-JA0uy{PcWb9d3!Pjooj|MhW2+lyTQKLMP~(<#6Z%(d)BYoeE`bC z^!{wvY_`Uo(|Yg$CQ^9Ibo9SSl(=I02F!c}`H?%Y)C`Q}PGlb+)aZ78Hg3BjJGCWH zv2SrXQNwr#T^zig{p0m`qd8`Mof#SA?^&n=SxK#)iNie=yqj%D=Np z_#f2eePmIPypO*#X+dDwcY|*S>^)LAWozLT?&tDZg6x~@Y;AwL>@}8WZ<%=Ra4tq$IS(4#=y-SWjjaw$y& zWEqs)s{wj(a_(xC5CmkWz_P9<*ADIH9N1p$Fi}>PM7@rj*TNr-@OmN=$rxgI3|}(h zjUeSyr=9Y)Zg6BE_`j$}SRtsvr9bD`KfZ9)sZlKi>zzZv$Hv2szcCVAlcL8K)2_^$ z=Bl$0TW!*7rJeHazwE!X!Qs7Vx<~7epoo>h80_&z<4tj0=cS959$)HT89D_rlCfda zb-@GM!*N(D)@x_>?1^Q132U3o^Puf?E~jF|7o`_5r>@UHTqdy7k()Mh<7MQm?HFEK zc3f#QQJnU$*GrTp{W<0w4X>GA+`kJ}dvV2um-zJOD1UuX`}{6Mi^ zYmMDe>{j@rNvM?{CrQY+7V02D0HVnFi&YDMiO}p9PcZIt2CPO4jv@VzKLZ$M#He(| zOI(7+as@&(dG`ah8)-XL#DBt7?T78G?WGh-GDWScd}zw zOf@d0o2gE2aD%H)l7~3o?t`(i`~mUsO zEkcQ|Xjg!9+>t|D_LaOPt8oM|#`56{)ZL}q-?=vp@^P+UA9hgxT4n(C299$<=ppmz z!R1-?*jQ3(2w!4tSuzOf-w>tB_tx!{ezm)D7CiB33HVZT{lYkDBU8DMv)^V@HhaCV z@1d5E0-z*1`9l$;7vD>4!oPk6>R;iX1;#l+W`y2YqI@>i$f^JYJpEi>y(a zcmSaI8w(?KycB%~gw5 zXp08u*3=(A(|2gMf`CK#;F*n=mufND@c&^z|EQpvYp=6$m37#3FTTw68z3mWd@dQmdR?KF4?A{XJuMGfPZ*20qAcsa($iNC|B)H<@1qrV z`!ny94`Gt9HDOswyWi!U0r2Hhcf)(Mp`Ih?O3!Z}?y7>P1&oeKat}fRZHRq&?%eO;dN@h-`=jLmAHe z@RLb8f%t~&ACDu+yj5tI1id5EkFYVTKc!aVC=+*l6H`Gd4Dw%B$pjgpG)>d;ztq3h z=>5U@)le8iZ!E=dJ^ZG%!QrP{x6E;W_s+Md32AN_|J^*u_)svAH>mtljPN@w4SGUZ zGUXsFoIJ}>F`!$tUAeOe%ut({Vo$CYBW@`8z{W~hH(iA!x3985csBh6ku6Cl{v7}K znu0vH?#JB_#C2gmYjet&xs!Wh-@tt5+os1-&r65mfm3DW#e+5Y z3c4A~5uC8DOb_Lb#$ladP6@xU@96N>;qAL91n{B(2R5HPWe|m1SdCvf?DX|9q-ga& zoYRo_{jsyF`#&Y2(`>B9YJSba?i-ecYa%~PDNS4eE7+o;KHF~#O+6nUUNp~TM>Z&f zW-5i{!>txwj!o+@z0G+N9)R{}IZ)09%69I`M5T7+x^$<`c+*-YoETMU$IuC$6w)q7 zeZPA~NtbwnuhVd~0{79wA>L3LT(H zE>DNF@{Wj7*u9(u}UNUX=-u zXH6#74#r6{@@j*40~G`v;$%MaibyZ5NMhybar4*LmLv~uzZi63IB(?)%U;#EV9s6*hTy8lPZ_zj6nL#Xl^d8vFGMDvTdAS}j)uqk{!rWdVOI z|K0HQ?PyUe`2lfI+yqZoYhG>J$lRv$*AQmKeG2fH^KaUz%*3lh>XSbKBW6{HJ-g?r^}j(3vdMYVsWDf6kmJ)+@38puQX%;4G*O zJw(Xd@Uh$O(yaZB(6mT>>7n(4^jb~fadNEG0JG^TzXK}wUVL45%=5yq3#$dq97c(Z zzg<525$5@-MKY6R*s&=X9ZD~tFWww1Bh;0@n@Ie(i5*aU-ElXlBxH|dFt7zs*mD5W z|HzdGedl9aGWCSi5}h;(yH$01WQa|cw+n)|WfhADgm~Kt_Jcf_&%Xl30&+aV48kmi zNBQd0rmJ(je&U#ir~6mHb*;FRM+k9gKH>9w@Ysq%9?``>QX$VVn4%vy=5LUZ3wxF% ziA3add5?|7YK^P$-G6&FD%jcEzgb@hq*rHAI>hcL4)Xq;5N;Pwpt|dC(#w~(5XOC0 zu|Z>F51EMa5jpwpHu1ZIz4sIb*1dAWy^|Syq>~$2;8pSDGUuU3szMCrw?>;#`FPCx zcj2>j$w#l7HXXV{00Mpg-rpIZ_8RmHYM*=!mUZKv=jg}zvrX#D zUfWVqj?Gk__sCW|eLT&t>U~qx#bU_wrQR(Oz3>si=Ty~k0m5^bHOq(ERU3u8%$VI+ zSWtvT=3(PjB~T$gLagI)UANe;)&TqxWY$%fAM%TnXk`2tB5wt#&`w29QzE=l%u(1xpyQ5hnE9>jIZ@08L{3hy7BeS zC#7qNy}Y*&;>ItU+E+QZS4%gDeesuIpIZI5ie~AVTJ{$)bExvtCSL`{g zlN@u&(eiX~B$M>#w`obNDcV^l;A@(H-JYHI9Ge_ceO?QfYcY~t#(Cw7lERM?*S4SQ zu3pglf;vWJF(aRS+_-Rir^ah$tt=&Y=w?$T3DXAu9glwWF{l~?T%IoAJdlYIcs@G>j0zYW4=f1_^J4QizKF)Oezf9~Nz zPH-^2O}Zi2lTnZZXRQff)6ne3g_Jt$K~pSKR-spvQr=UM@2gD44l`H<-4^p`gJ6w& zi_&G10vqA8rY1pq;Azz(3$z{9hdwEE5TmpSV^u07LOR0z4vhBw>-1rKsI84nru-ow zN?l+lxBa=R)V0g3>$PHQVg4Mhc{iDX-rBsWOR&YR?B6GA_Bu{_yOvK*?e^JJw%gp} zF}~xx(TI$|;w#}?jTe_gc0Yaot21ClQk!ewaJ`lnpkwRt(6Fxl$ z#LXe&f_t{VpL>4`rhjGE(`3GEBIZ$9Wh4_MbNqMlly*6n)wtAq&rC;ocT2YAZY{L( z%`J;bipecTrsFqTXj9Ap^dAhsci4tzotF=>ww1D=oHzR?dN`XtOl5YJ&^`}g{xLs? zLv)u8%7eW$YbOU*Kb`&hwQgbGM;{L~pRH|(7VfP1;^@yix1G0X*A3*;(f=2ge!B1Z z#5%L1;5k2b^&$NJ-8Bc}!nz^>ublHFs@1H8+@ZD3_*}ccH5=s)a=q7bI8S~*Hq00s zb?Mw4l+@GR>G@_CQm5lo{^qlqXO(~HvgGiDi9CLuuboJ$|6SaE!%7>B#!TO` z4oW{H()T#~*Ti*XRLBbS6yyDe@Tj<-7+OeQ1!@`&xNCXOETp;Q{_ht_ep+NX3eW2JI8Hz%!0-F z>d&z}6#=nt@z3fXA@x_*LI(eDaEL8O^G3nz{ql) zw+L~h1nc4PT-77gJ%zb39avnaur3@3h8{KP$>|#>y9}Xn?jIGA>7&QIctwQp_!^>@6^+^9oJ;=rq=4h(R4gD=d!+H#)&e9Z?M0~PSM&(n1 z>h$H#esu&?Kk6>5TZ2SdAvi)AOz`QLk5)5fEUQ zEjSvp-Q!;X>sJ4o=lTOBI51jhespx)ncIdu?Tp&IN*e)M>tiIlI#*LYzyT=Jjgiv| z`i!fie~e8Zt`07}i%g*nUVf2_e?bbae|32Uw33YFW!v(;;tqZ2I6Lih_OUqMB6JEH zEm>r80(zl*#7tr8Dq%kWdepkbg$h48%P{m7jLZk;SDJC!80m6*5~QtS&jj%6a@VcH z$i44Hq&(0@=V8U?H%xEYSQl#Jaz^l)6Bv&ERq0`IR>1U)HblnSG;ocqN>qFZ4#2Kt zI)17sM_16SM#Qc@47za;-9sVMml9gPSiU>WiXDMr1(YTa_PoU^9+^{s13l!4t1TNY%mp=U; z(PO(B;^DC0(nT02i@KKfQeNvmw`mNV%bjNrF16=p?U-$(@U1r5E)=RgcA}RlZ}(&B zbQPgKhGzAV;8O-x5w8nhA#RzR=r_MPd=k*3FIO^G=8ds->n?tk(+ag_I44*nk zbKhg^cfG^(@rzYPW-aRu*ZCVbpxlb79us0;|UkG^@xq=ZmoYS4LWJQkmF{&gr!YAnZJDvE}#?*#V#f{*+m*EWl$nG!Cm4 zffrV0htrOjPf*m>7>@a-!ZOA+KG9eo}!wRuGwwHE}<)dzrOwYkvD;;qX zU%-AUM`+7@otQ+kD;)n~n4k=eu`6BGi6M}p}LfY=x%KJ@`|L)omhUO*{DD+p0rv z{~C_~-Jt~qEvc%!x6i3TS-8)KKH&OdlbM{rno6>sKWWRa1vWNb8rw^473VrO2?~q; zY_yzS`l>zBNO(z9ksO_pN8>IAwf$J8BKNPSLuF9TAp4)*qpOR=1MneTY-Op|xMfor z9CD0L7w6)&Ht~7pV;k-RuR^r=Y)*2q=uIyB*KiZqCLbx+v&x|yfmhR zk?qj8@7#X-a~k(`&+R8!Hx=E|zO}5n9{N*n=s5=YOn#L{I%Iyc1FjO^eD|Kyp3h(p zvC-a-YwR}~+^*iRC?g%9ug|@qI{z!kEc%-fm7kE7tba#yoMO?CjkELd?5cn5kog0) zs~ltVa6h-MJ-cPS9!!}H79khACipA--znY{vP6bAGnD~x)X8Y15Mh?liZHK;CDOA3ksXwKY0s=({R*$eqI zY#9ASQTTf5TRL+w7ExFaD(eZor(7)t%?@1v8&Uw%=q5qY)o)rP@rv zLQod=j0@7^npr@cntVjE|6P;YqL1W3aj zRd%?j+G08AA)=OPJn4u!13Hh#G#OSw3rom8u_X2xXtM1?oCuov)0lHC?{SJl_YUn$ zHh~}94;vkc2iKD3S0eh=R@p+J?$Dt}XA>a1mflJ(t9{>&q41o*8`r9%_tP#1o4Bw@ z%%lB~<3_A-TovZP3d^rS@%D^=7O)nKYsm!B58dui17v*tCJ!z^S-{7~b2`s1N4s%V zj@;DyN>Tez5}buU^DJ|x%irGRs$`GfS)6ceTIp!ZZ~2w5(v)O0tW#q}0;TwlHN zBHq7W`0Nhm-S}aw_X6M0RAXi194@I);;Vj#^Ee2y?KKElKsRpiElQn$>$ZCuzh~kC zAA(jc2geg{Q8yx{F3#&-L%n$TsP2q!*)s#7{&)bks~G4&5g`8BMt|fSt}!(Nj${n{ zVp}gPxq~F^G*B-~_uH&b$IyScQ7$$JCOJPN4+TG-uLdlC7&|BQ%?^8#dJo*+v z^Re45U%^e63z;(~lke>R=ebllpo5%#=KC(WEcHLiE0j;v9JO>Noe@m#jSgq)98>3G zHve%~{%7Zj+y%WmJT%lTJ(zGeQeZQ-+0CVhGf`!y-^=Z2d&4@g*%#Ijv@dv&IAE`L zk83=J{%u*T$UMV~%&H1}U|J^~b%`e1icLfAsc@ROx4o74n{QHW7Fl#Di44N*l?56{ z_1s&2J#~GrMLkN3C!ET)0&D6?{*KOcYPi2OFZzk?m0)HHM>r^1eJV@Kf zn5ooG@mx#vg8ZO1pji>NpN3=;RnQ?!85pb+Ve)_vl2C96CnqZ?Xt>Sucf>{hI?8P^ zfN3ZjersM1a0eF~gVrBE-1&sfm?{}R%as9}{oqiF63cKWuTRxy5BR?98HVh%Aa2of z|6XEV#XWf89H>iEx!Zs5Bhz8WYk{Qav;(v0L@16P*ohE^_wEKZ{e9E)Pfux^$Hu^5 zIbV8qE`qtZ)uPQVv<(`49$Y-J#Xt~w${Vo!@t#2X=6oG5OVEEAl8eb+)CE{=Yk5@< zWP{|7YAXgl983K6s#!#=?GBP}rc%PRHkRd#XMi(zlCULb*1$QWtNfxNAqraMeFrj8 zts*-Zk(J$0u<)j7x*?1O0%Ma|peXb8L!5-^{!14$_?Zdmr0_MtTFs4RA3j6!?NvMQ z9pbS~E6@!2_&4j)tRsg{{pims=}x`++C-isp$)G#>ua(jKvI%FO_4t-otmUB8U{1(j}ngCnw{!mUL37QuxXbP&ZGELUs^t(rj^=h#d!a zadduhg{WMvFjRVl_jVQ9>EG@A`PC3L`0&cUB0$~FWY(ybm)ak7eFs*~ukBr#W}VJo z6}#09Rb+u6r_L@|THL-7n4}=L7Dx0)DYwvhFe}8>{0?5^R$&sNpMAQ;(-eO;g9-na z(qNsQ-omc7?e{|C_|n{S`+g1^(N+MdmY}k|`q^3uuY%pm5ZqSgNgM_QOfO!MX~4lg ztlpyBf-a`N&@F^tec)&u#Cg98q!FPsKgv!TfdGr75M$|cMyLxP?KUpi0iCia5Q9X$ ztTWh(({@Y1R%Yp@Qa;)nSv?BBVz}k;Hc1g+*ZV3*kua2WJ*fZSqARi98z_@XO~8io1GQS0a+zbL|C3 zTWoWicZJGTF}DdO=E+u*stpKQ(ZLaoBDb3^W0&8CVU?HDc=+dtV_Aq1r>af9S!t}) zB~#or_`%%g-Is3dY@NwqQ#uSKL7Z%i`;=aC@P6)z*Fui_N0o~5svdu;$tlW{(b!LP zWoFy~i>J(#JSpucPWpN&HT&pXcvgk`xq2C5aamBr@E620aEcWBcD^r&(@E{s2gmmU(&E&1QJ(|dhacmSOelbo>GSMQCc+mCaF&dlN}cPRnRAq%e;+r&IuIQit(4!t&n~+HB0@n z{_lD>vcxjEhgtZympwgE6wp%u*={`MngDIrP8zt)cM2sPD)JDq`t6^qG4^eD;k}jd zKNl6MCd4mU+jW0}UuAZf+oWy?k2S=hKElo%Ux@VWqdt=61cu60OIy%G$ zi^>Y7INb{D_DLxVo!;W?KSLs15qjM}B;&>uE0_P*DRTmJJ;;8C{A5C{wvh3SVuf`9Q{lRWBwyJw3yW4rB-Uh>$2sTUVG1w#o(TBVnK(xZi|nVc0xFqz6aB#Gs17zZ@RhI?po!7@IEoPq`%KgYYpQnCP4%oGp%eQV6 z5Rir}2hZaj8z$hoL4~g9nec#>idj)!fEeN?QEzi#}S{}d+ow^WsKfLwx9)^a4a z4A|g3Wtzn-H2{AOoa8NeD>&^~r1xUV+E$&FYr?tjABc@7R^TcX#tH+yFYI*1Nz`|7 zx5}GeL)EO+f<}0p$7Tu(^SWIE~e0216q>-Bvq>7C`kL=_|M2SPSO*|%QH;R9x2L~ zWXo8@EzBJW=fO_r=db~JCwDB@8>5|FTn?@jwd?%`kdXoO5T+Z7ag1D2O+3VbVvSm` z7_#1xhAVwUZTm$@^6PAyEfV!JY?JZ3=SzgiclyCDS-&e6$|@5tn#ui(4iT6<$ob>^ zOPIcolKFhOqzql<_&I40-vu%xD6VCxGAwI#CgT4GQfxj3R81uRyD-EYkU1a#%6a^a z80q>imPccH_-|=>dAy_N_BCJs*%Ogw-h&5UZd%vQp}_2;{0!%hRvda@%*=Jr$i($9MurS_E!xcjf4{W5; z&OE+f@vw$4C2H_EgnN+x&GWe3te+U&j1%w2M!vw3S>Cd0E`>X1_+yI*T@hq9Z zUn+uklbh4vzVk_6US|sd{Rd^UkZ$lc8=qe#4L0+$@*()uvpZi`veL;A0%HE!HQOGy zm4d}PP1cFntv_QeXmN5CcWve86oYE;t8px5JVu-MYigFZVpZDXAAG5YY8uGMM}65E zVW)uITREBN(u5C;_b$)iYm--kPNhzho?<*S+sx~Uy5WQsDG!OW}Udrvox=8Q>n3CmqDMfi1~su%Fv4-zVwg-?g>jW zae9sd!6fRZrr#FrB=NEP{(1$BF6ssE(zYbY#hQIu792V-{C?ZKK6{*bWTl{%mxjXK z1h+C{wnP^$6>zKdJ?E1cEvcN!SuM(|T+|2dtLd&!i_^vFURN1eUqO~5zeSK@j%y-2 zCwU_1x1=s!`-};Ak~7I<7#D`xB9EXs1Rd)G^Ys?=LyA$iHZGRcWv~N)dz{V;I+cV! zkxVw|_O}&By^gi?dm^ZB*%eKy1W(9v_ALg6kXxEJT_v4q!Z6t8c)nqweQPeRd|(G5 zVICl52zqpkdm&1h=ZPwt04}$!`Hx6{LOD~7CF;%{W`^@!-u-i_LZxU^+47F_BHWE4EbggJvuO@~hK7Ss3v0}g*Y<|X_1hn3BgEW)VuuYdqd_xe zAk5g2f}lApfdh_*xLa_wuX6gND4_}tk+?*aCYcYhgDb~B9wAM9N*ddZ63{Ym{M;FC zRPSSmzq`HxwdO2ZB1OlX_puKI96Nr|R5n4VR`)Aj%xu$H=@&~> zx@1inc+U9MUD-psP4+a+MSeJbO5@-9*4^#jg}Hk5;kkXupRM}Q0A0OjuP6cS8Sc|p zEP&RA7x(;CE2_SxUEWrl@U1C3!0(CUm#<0xM~X22xGPoj;TpT*`D6H@ejg9;H1t#2 ziz{M-6xw^g*wq2o)HE@RIGGA!cx}H-;ZuCsgwVHJce|61f$kyKoeLH&>4XX7P+ucfjf={U)w(#D2_W1Yu=7o&$|?&pF9s^N%IGMj91oWGDzjf zg<9f*1Nt4!B7dT=da`wKVB)vTi*8UpN8a%~JgL(2GoYg7ue6A~BR|Rmc7E*c=r?Z4 z0=5B6L`_&)y0?;RU?uHdTSY~|&Y(#xD(12_^LY#o;lYE|8U`h=&hur8^TWSX ziy4)whED`}PPZuVDnQJT=;lM6Q=rcV8LKf(#f3)8s0d*YhWz72S-w4Ph;MBc^e*bMO=Djcpt;aqv3 zy%4`v?upuWnBpgZURDHKNTi(L{|-V<;_h0*R}mxQS(0(xdtEt)HyhH^4@=6`c=9Jd zw^_;=eqIU5-GzAqs17~_ViyY=c#gj4;Q&B$NjBlnW(+oGf!q~ZDId7F;70%>C@^Q@ zj?HpTJh{Vs&|2B@>CO}ld6v9ZN@RmwTztt+HLcLCGI%SL@zLeS;)cFq0=IRU7uJ-X z#BPG;Q>U)Ka6~A0{f-(0qxv@02(@0VGqPh_xI=|+t{+2gnWdF%Y0#(RKE8tmjzZi} zf2UkfOjJi_o9$ffm|+_!qn_b>`Rn43dcx4apO`9MD`dyP_n}|`xdg>erdQ;&V+b*u z+MMA0!+PcO7-tHn-xRFD9|#1^;QGuu!a8|W6pzTENK5S){nB{S#trI0A}0#S?S!dg zwN-8W>h1BXR;~Z3Rk~Dn2j_=>CIVMCyWK@FZ`)4dgwbt! z+=k+*8i6va>`(j6`DI7HbjV-i(n;=MK1-^!E%o{PpI`sEmk4VLLp2%nluXFyY-at% zDBKfti$bhHA9i_q{8Il#Zfk^7p_kkVtVZVcN zkoW7TPDN~Cx#8c@I7K?*C-11KVZ)X}FHX$g;5`Kt_A}@_symcWTU$Fgn!Owg+l#?0 z2C9IWWHu}Pi76H7Y7PnW(hxmi_w%}~eeyA)Vsf>X#^8st2hrP!fnUa3Bf+|-ru-Su z=nir$Cmo-x`=M7W^FD0g@Y<~VDS?KCi`9g8?_^_C*BcfIR7PWTueI>kSIxcM=ViQl@-1gS(>C3DV89OtV zgnHNifKyhR@i5+8{>5Qe>p96}%h0c1#xS;q=6yIbl`zY%OgG=e)BdIrcqQ1)D)%PZ~n4NXc&kSJM@K&X(Xq>J*g~ z4*~|xYzuqb_c-G5%l4E1ied0&LIUzGZwe?CbaW?LYr7LmG~mQ+`Bk`oww!U%&uhgg zg(GkH{TvLRJqB4=u!%Ifq&`+G#acc25&E;*TlS|-lkl3wT{Xb!zMl<4CWJ4+X6Aif zWw*+e5T%UBGF#qiI;n(0-0u5&6tFW4C#dSrLQ7O5b>*K6Gjjfb86e1i>c{W4_r zOCKO~1Fq-q<~8lYk3#HhYwMn-hu^-MXanJX*6~R1L3=?8PNz~HGrU?`i6)5lNG$8Q zg+FB!M&{uvc@wu_z^DFF6I63GSa3tZHNSj9$%B{ zxj>xl;JMGX%h z25&wZr!AoB#-2WMrU7ptY9?lt!JIHUgN~*?ubo$%>Tvz--)-k*Zj*xgGHsIbUOcB9 zoDf7%aRIp|V^>op;DDn2TaFHwrs7W0;rXWz0$rr0c;|8HXIwv5HVRXgeSZqARM3LR z!_2zbq&Cm-*PD_cCRI|EL>F<;D0WPp;kk3Z>gZsryyJTMZsO2KNeA=(>2{kGDQPp!{r~IzGawYCV^N(BDpcH%QIq^(tkR@Vq(1htBP@|D@VfRK-Y4=2&WtuN0pWv+v|g zb?Fm!+y!IHEe>lO>?J+9HSbyuT7+$=@vVc_FV?muw?6X{P;1e^AMys!0zh|MOC+yx zG1Av`fr%v|eo!9RLW%zmP469-)c?l)f67X2NM&l~YD(pxw44Z)m6axyl{s;y=H8+R znVRLo+@(U6Bg?%fxJk{u_udmx_PF`pzu)~Ie{g`uId9In-mlknJzw^6EeFw*3f>>< z-F%P-1(PkyyOof^TS=8nxg#Z8xE|)U_7q8~*@%n8gMLJbW{$2>5x0?L>yah*^J*A9 zqBMXtT*M0I8SrI><_Ww?-OC5V+MFF;x)MLStT7k20qeX=^jt%e9X~d)ICjTU{N;@i8+w&$nX?o71d z;zg98^n3?X6i@zr+baocqP<7DdQ$%%3&1I>@7Whn zg*A|9b-2O64(DE*bx&ig;6WwU7O*^Tsf1m(5Po>1E}a zxTHqsk>aOwg<4(}+Q<_S_>n|rM|X~CU?1w*>`uD&f3?ZyLD#~&M%4lp-Qc2f*=F?D zdIdO2%ih23oYCn7k7738mT#UcleP?z18CY;WV{BDi@7d(>mf8hn6vi^2G-|GP1eW=2?^hJYwpFKi+h!!}>{UbE%%9yX9U;_lXVx;g2Mi zdAy7|QZ3+p(;M`l#k+fh0$G8=kda zkPu1SB@s33xeLHm*5fC6By0?cR8Vg!pj@N|@c->#B4%Q6VO=N~{G+uGC@V&czHuk`k)0U<*tv2mj zvIHPf_NJiq$CfZou)+`c4$>X@s!bgFSb=L(yV}V}GTS0urHGC5TnR6%Xoq#}RJ~!A zX_r?U^a`?8AwJN=1v$6xntN9sQA(lUndZGP*}q3Md$q)WL(vJh1DI1de$pWUTzMu(VpY7jszevqLH+rzK)Wcumt z)Wzb|c$r6fbA2F4%5I-pqb$z#jW^?S61Wg`>pFkSA(oAHCki<4zyr>VPW@izddDp@ zG$uT!W^v@l`d8!oP-okMlF5S5dzO9*RqQk8#{Ja%)B&)_7{7}!H?~3xgG0r zrn&6UaFlZa0I5C{jbw}EVS44qS;kK1hwUQM+~CjeH|ytet<*d6{JUTXvvx|?4?Ngu zYHwnpg24`}tra2-uxgg)cdZ~U4M>l<^_;w>xfeCn=wWhjRs$%=FngsyU$6-LT{UaXjx_ zKj}hQ1!6&oLS5ry8BSBlev+?9_=&fSSBq4JaaI40YDJ$rJKs`%aNYG_a~Nu(Vz|xh z;WS)ymTpyz6ez(QSxwnz+jOR&f1f!2I}_seYIWAcRoKo*X@HW{m|u50So~3 zboXz1Q#FE(FR?Sd4g%S9e7)SAew7`&b1n1=#uS7s-;w?HwA#(?nKVX?B@uI>o2D`_ zAv^V7lc1*C65f0Wn)XEW1aq_o;%7q1f};Mo4Q)Ai0f0|_6R|(>YFd6~FQxu+R$RGC z0prtk!lyipKML#^+J_aMyDa_VS@dXk!q0oNn^AWf_(Hq^a!Whn{8f}kTO?_ z#IYWs7UG7x$v*;kwS)CG0aB%<5!jYwFf+%ufd{9x2;(Nu^`mDZ+*n?<$LP9@D~X1r zNMO`Bk#;>iE-Y)+B+*q{niE3*D;F+wEVWR`bi>9+7vm+5AuV)VWr}SYM1C&m>46rp zE&bzlAX)A_(8ys|)ORGSc|Xqe-aJPZs(QHm0Ddi7ccZv;;sz-44gwj!4waiy2^{E# zafu$hQO*GjCmE@A&f<~enaH5GVr)>c?@lWb!D1 zKFOUUmf#P#t{+??c7_(aPd0ZY6-lnkK;eaiU+{m*ocEgUTFcAzpQY}A|AJy&o&;c| z!M}io^LAqt%8cVW#&9myo*!lTz#X$$!&4*wJW@xk=mv04VoNi07r*$d)UY;tWb`6qT;GX!PPF^&BPLb5f2#z5sW{<^LHmMnNpt@H zb!%mlYT-kwn_{lqiIR6LiU~J^`<4)EyiFk+Eu&m;jEXe0p#oG0#^aTUj9RLPvZs{o z7A(rlR%sme`xj;mG<=9LZx;r0cjLMM8jAr;NPeE{v9=H=-Mb=`sPN{flJf_O;q+wZ~He4C*=?p+1N zl2`9QUw9lkfNwaT*_=(8KFIXRbol(}J?ox5cL;Mm?US9xqfzXQ>EaI0fS2`><}OIj zRPz0!`Hr!fVICyLLC@#cdT{) zm9<&Hbu}Zkg@&sIzNw}{Zgg}RX8n^zkw$WzJ7FN*8hyE zwSHTHLE#A;eOGKxb3?d+Z~)$=JXvgD(8CIY#J?_Fg;^c#%o}c`zan+Oyh`-t))eYC z7FztSbO;ObOw-9ymm)1qz!S8&60%fbr#n&D+`#q)ocVL^4I11U3`=E9y{t|!ufs{Uq z+p~}Nt(wAji+d;gBDJCUj`!X%GATr#$BWphVdfU_Jr|SaWAHg3wD--0VwfKc_!55)h z* zm0vk#TJET=`CmVN3Ej4Ontywl7J!eE?1m~3_I)|vGermeAzh)v3^J@+89VUo9T31X ze^eKqLrO98ZLqlRG2DCqtVLHj90WgcIkuvns>zgzZ`e~9Bg$8moO{rHYhTT{ioG^1 zN_f?YfggfiNBiRNpc);H8>(o(U|VK)1Ngu0+4DC(OSnIwxle2ZY@MvhhXEdX6&h;{p-= zXSAo@-9};&9dX6NI?+!A`HKm)n_8o*CCkM`0qN@4S_Ql!^Kq8p7vEf1?&6P&(j2S?pbmOe}oGL*`u9dK=CH`gQzwCeG(=fS!L)C|TMPdloyR7wu}A?K&OfPd6prCEsAlm3=HzHF z4>cxa3m4U!=6=S!MN`wq%ernrcfaUNL$}f~G5AVF&C9OglUIDAkZ5KQ_3^o^dqTe= z49w;8uaXwc5-?%%niqjTl)$sRLCE~7d-@$B;2Y9A565n2>)XQm@TVkbV}>n9Aitm$ zy9%(thm^nkQ_CD!A^HqZ=43|MQfu%t|GIafHw4*?R&tp zS(el+Od{yBN&j0rZvkf{-?uzQ(EOJT@u`74+J~(SXHTkc8UBwXu#PU>JIpwFz`>Q9 z5vjRo8u(#2tM)ThVS2|as)dLnY-^2fZG~Kn7;egg1)bi%G0Wb2RhJ>%WRvpp( z9&?ZBesKqQ2nU;>8@2es&{02s5!NozT@%%p+Ek$$HI(*01Hjbj$xgiDv6*ojQ@jrH zy7|^;W*Auaa>3CKe%c9#b!%x>;l|?^lmsR786DE=mB~3*7s9;oXaEEmP#)2VQ`GXX zG*}^Hk$;*cPfAggXs~82{UuoB^OcXdhm1x;!bLVi-z>KYb`sjf^-;Em1}rJS{{3Gu z{(rl3N_QH(PIsL>lf4xqypaj4J?Q^KYd36@WYxTF_dh)P96{zh{@#-LsTZ77pw{gg zHOzuLfZ8R_oac5YM3Fp3%)nS!KPn*O|DYWmH3PQd zuvTjJU$@(%!*PKWVcZXAwd+vfP{iy!j+@KS_X6!&gPVv}lWwN1S6J(tN<_{kzpEIV zq|5h9=bdl>^T?_g4Q5XQ$gm4(I|XlH3G|)xVdx!aQPjzlvYVGaA`S;kV(y54)5M-IK4LtLSJL*H26~c4%>;?=goSi z(Ta&3BOl9<&v($%L`bUC>G2ORROQGy2Fnn|BODGLL5_DCORWVK#QSppR2yucNphTyv6D3soOd42Gl?b}+%C>C@0WoH<27khO z)xf>1-f0+fgIl9Vv*6tQb8<%^wXSXWONu@O{Wpb|vytjiI`N?l#}->N(7{KtWumzQ z_(chv^*T=2BQTgL>)&>nFLRY`MAr2o^kMKQdMRWF`;8-CN!U@9PyPovKR(N8vOTZ7(L}GG3HKq zgueL(d`r8SaEluex*&Qt;1R`A;3OdW?Ek}!TxMP!3wEEJ_q>Y@njIC|!tg*1l;VAd z(S81LgGA{(8w+$R*dV^GNcw9TWQT54{Jd4UJe*hQCQq$Zc%M>ibP9aAKt?t&?sT{z zC8{>pXF1rp&)p+P^C21J)(5si4BwrU(D2oib}h(c_jWDZwNf{LR2y3Pkov~~)SQG& zp%`()2Y>X`PJQwfDTE9ad^EP&j#p;yQQQe<{f}G6fSxc&<_XYzf}qSCbRBWW6qSmP z1~*G|Qws@qEDTvyQ`na7T>$y7bFC%vSbIJFuI6pC3O;L z?&-v1qbU}xs}I^XDtE^Ug)FKNV7@3suuC@r?_HDsve>Kl7l`P^@&;JJL!*$rX7Bo- zHqGO&z_PZ7+O>JjUT=QY%|4P&=~uv=p3IGQjV#brr(Yjr__*H;<2u?1hABDKUq#AzI9C^e+5?4ZZAg!zX|1l4W1iyyvZT=io3PW>^qa~-WrZmdX>-inuI?H9mQ-r9dFHi zRxUl59NHk;}aFiv2q-yEqB5j`(&)B8GEc<(_EMfk6T)MaX73Gj*GlwXA_G z*@y;B=A_h>ncDs8KBeap81L-gYPHBq>UyeLb&9_y3Cg68dS~YkIdNwJ=Zs8QS42w0<(iksEAo`2L$+0CV5GFFTnF6JN0$eVK24*BmL(bi&YDenLLww5@#Y z3F`|2L7)4w4(6a*-i{|7opSekcSE}H0@HkS!@q9iLO&HiH&L3t`u|&I0t#@b)vwrd=1r$fXPr_P2WBD&0riH(m0B!f3Oe zRs*-rsknJ*{)P}q0PyAMZ<;nOjX>iuO^d}752P5JdIRy>+t#+3cR8#7H_J3Jit-(D zXeGkns5zPC+6_Nx39*RaS@ZQwSJbwulGE1SZQD_Wcb-|m);-ln=#MDA#R*n@idP(& zyDPzc40l7YJK%XK;YR%Z^%!;y&-uciKh}a7x82{fIzL5onl$EwCryu%{ z^Q2Xh1yNZP?zjOkf9)S$)v%$BqrddQj3_S)*8bb87OT4$5JPLfVG(z`kqDu#ZcK-B zM*hltY~uBqkNBc|IUX;s);vDzl*nrhBXZdlXaxhP)XF=Dx~-e>IQ1lRx}7;&ry( z8I*a_>aimr^pIx>S|P=w$UTK#(PBOWJym#NuX~zH9Rsbb-vF;=h1pE+(SWvG5&#Wt zdh_tS^h%iHVWN!RtghGbFuL?rkoL@C2sM!PQ^RiY`seGG(?;0G>_YlC(EE@@{Eox) zuZ;%|&|}MzEet60Hu9Hh=j+fw^3Zs5xl`>07ZdYF0e4z`Hsos^ zN2DMz>0z{X?yUdlOLi#{Vs0*gu%K{RB$LGl--x!{g~Onsr~mZG|BX6DiP>N;NYK!9 z)#(h1qbE91i|h^?NIDQB3Oa~PS$QvJ(75v}MLJjBe2$LcZc@Eb!?>ixHximwWFc7v zG3$Df_pXH`^mR|h-PK{M%Ig7de176t!9`qNBv!S{Tb*xqTAa4IIG3xJiMjv~J8Riq z5_w!Dx%doz%@=g!pOzurky7;wS~f&eJ4e+KRS(Xcl1)ij_S+9V(-E<_;6U(3 zBzEsDjF+QzhhEagNAVe;g_*-GR#(^h%kkxOYj(;mc@A2>x6zbEvtYlqtYQ%I*cq%G zsJhCx5!GeK#NK#2&<*ZyUJ9xusz&{(Q2e8tilqCE_KnuZ{btNXrTbd2@CL8LMC;vkVM(zi>N@IIRS!PuRZ(*X1A!hd*LBl~oY(;)3BRZ=l7Z_~0q@Fh)c zawJ;&Qhd^;^=XG;y*8|N?Hv6AsSOev7$R^vK%n;#CmkM84-Q>sj_=l5>g3FIzx@V2RbhD&zl>t3=B1DXZFsu=ziFF7)G=ERX0CHE7^DVuDKXg0;DNKXE`T zs&l~7et5chdS1WwbISHKB;OEOmt`O#^KN31dUja}8@OqF_SLiy7f;;Qh{x0&q{gvr zb%bznCpNOl!50kB2ZC&HEeBF|l0OnZ;>E9CtN!kms-|8VzLryQQAeP^vuXSX0JjTU z)2>PB8Ah!~Ogy}ySHLV5+>cHD;0W}dUl?7t>EFcE(nPKYnoW?7VzXHAzgWfV2q5z$j5DeN=19tK5^XyttNghg{a^0I8}7R zrW=ReTwllz@I3=+E+OPa>Zw2`=TvYHH^2Blqe$SH0h3wYsgIBaSlPVnYc+9T95AIA zHD_Cp*stS!Ac#`O46aC*b^eI;%75y!_>;ZMHCE3#n_Uy!(6*)~Vj8>_=GwB?=OzNx zHdpg&@AJG|`U1ox&tWrHqtD7X=xVu(J#@M!Ka@O?)L{TI>`BL=X0V=eQ)h zqxH$Lv&RB7L<@6#42g|{qnN)-ChZAIglFt9+(nT{>Rl4-S5#QP#}AEGzNx z+>kzre%u=Q@eck1@h+F93pe6@3sMb{e85j?4D!qSqCPR$;$V1xxVYOvl@H}7Hsc7_ zr9oD#Mn`l;p#xjjqi>7f)_TPVvC4NqB`AsoW&YkC&UxJtioZIXAeB_$S6OXD5Pd7y za!c_~_kXf00Y{vKWc7C*FF{Y(A&EHyPcof)ly@TpAEEX2h2PdEAME->T(Td+@c-jB zIijvkmqtT~txs3N#Y|7?OF_S|$=mb;B~J%o7x|>VEPb7mD0GnWz6jDc)-gHhwyU6$ z%iWOUes(b?@)Xr;k`lT>f(Kh=Rl3(ZW$!;&ymX>fT^~=lIx-XDkXjtQE%2ruoswD~ zDfXuH(URdi@AGLCVJDHw&l|W0DMLZtkfqe^X4#qHzgZ@c>LtrsExS`CR^46O=}s#` zk)#SBS>Ryb^m$+tmqo2pX4C38w{EX#5V+vAd50^LP!&d4395!% zLrekjM+n&Z_er1LpHMk^)#Wbdx-@WYJ~YOyUqgT7A>j^sOh(@m)#MxK>Juq(@_lw9 zV9`mEMf1f!fkn3F?8%&*4%n)7N`7!oaD4Z}5thiBc4cJL&x_-U98Qj5?ZX>Y5D*~y zFM3Ca^`S9o?=qFxkwxMy5~C_fdJu3|E^p>}SDnXQH^zn$&Tw}E2%fvi{YalBn{#)E zMLtUALK)ag*}u5SwB@H0r|!g;I3tPESv1>P3%AgJ$9$*uZME2@Xz`{t z(w_@w`Jm?|zTRwgi)DsE19f~vLDws9seP7|XmsCAh_*YU;3u~byR&W|te`I@EWr@o-gF|`* z4nAICbB*`6f153*26SstO(z|ayt>E!ydM1h>d)`jgHr*oHm6Zkb)P4nKL_EK&HXM+ z2=Y6R9Y9-(J6Vr!e@DgI2{VrF|HbF-I#}Do&$_C}wnMGQB6pSvjK{vl{Ag@nxB4nd zjq!&Qu@m|U%KQr~3_3*qcIYn3PTDf4L_vM1+^OM>w)9(1ld86b8Dsrj)SA@x2^lrA ze2H>Ab;$R)7R{m0WG&~RL{)5)F`?w+~sO1czkmmh-S=U z#vfB7e{QuUtxK&n9BzFGM3QExH)N%B8j}fPsq6{7|D8|mCqm)~QO88Zi8=+9WdW_Q z$_D8*?Er1fHqhUZCap5i;y>DB^MqkR85ee|2db=Mti%vm$Wi*{Rpwg2&S~qu8(i-m zAB8(2^F~Icz=p9VQi04ufm|=n4rSWl4g|EAbzbAXX-*-{v4{71M&eFYWTy=&_n|BH zf`&kzMWgiQd zuxQV;UcdxxX6X&9RoLZcn*XO=%o#gos<{u)90RKveZF@*Q9i!3H`6i$(Quk=hw9&8HtQo$oT5`yI@M8 ziEDgBro`dA_H95u^%`ooQsnJEnWU?%G*`kbU)JW>_xNg>?8gh8*j|EOjzSI7JmFZ zW^%i%$Sw=e40u?vCKN-E@V|}w0{Ad|yR2d*3#nUwpM?4TTjsOCk5`>R$6BK9`d=}L z_XW=*A=N;Z?yB-V1E=(NxZiiJ0&e;Jl(GN5DpN+fk*4|8X~*mRc;G8-*zI?&Z+iHz zNv8A)AgZ(*=br&V*hD7LEnHGwK1_IXmqe&g<~RVPW--CJ+| z`kz;=ahZ!VjRhcBM>}8sLjCGi%@oj2u|{a1wD<%(o%au5*A?F#5>a40#}_?%zzjD9fR)GObK zckBgOwS2;6Mt|hCVowVyU@IXtCl5O7HLaa7e@!il^QG`Ww7cj}wy zwf^|4{a5(@dfm{^hIZNB+tQq6A?nS&9^y_5O}ZKh3_mvzm?=BtZz^DC29QSI(0_=x zqc>SA7K87Q zb}9(_{Jlm#PiU&q{He`)`jW1#H(mS+{bzI!%2QjC;77$Kz0784li??1SpSX^Lh8fT zkd>&73t=B6+={E*Z_180nY)QnqE5OcKH%0Z9&icyKDq1h##}SiJ3UUxx8)|7fO4h* zQ`I^P#Lqf5r_sL&H|n^(P-ISW+)jgq;b$sO2c~(I>m-~^dM!Qok}yQEx_BrfJ+-f& z*!wzLa^Lup88Rqb8=djtPAoS@&2n^Ir` zD~{X)MAkkHj+{U?$K{HTKmnuFp`DYG!B62YU!O8X8#o!9P74%4Mc(vn%Ts-+Phd^V zWV;=ux)(mp-E`a;3}W6`LeUr6cVq}OOe?p9urJf7=%u1V8`ecz0V7PR>ho-NXgeuW z;RWLV%5SMo`uftg7NKPZ7aqa?vm?W-l?BogeS@7*GO3OP);u|v<3)kktSWWzJQXfw z_)q`$9B5Yn_rjX5bf3r1*2Tg$b9@Etw&E#AQW2pC<)(d*&-ErWtiM#oxGFWkM}88l zhUj~osIlA{tW6z^x>*Al^D_gX#O&(THHT2ejS$qk?FG4Q5`hmPQPG#K^T zH*gc;SwHHM*_%L|v?%C}#p-9A@BU)pq-vP6sqlZ(BGG_}m-YSmpW{G$o9ErJZ=DNI zpstO@Y*rpyqmIJ3cN4fJaPGYkd$`17HU>=(vHea*qn6 z{$c}45u4vMU4y|_(<1(!9RZ92@W@$!DeTiSjsDXU^47V-rnCcmfaST2I_5(^9Osxl zTGE8GBu9*1FVsA3{joe_p}SdyP+%s3|F6cpMCU9nl|Sc;nW$nZNYd1=zpPb8r$+NW zs$Xmz_k-^eN@K|Z|K8?lC6l^MVBgkcr>d>8)*5jZ&bI>@rEW9k%s1#o+27sTNBUsR zZ8NE2$sF-i0dB=KE4D=r%Iq+){6h`jtUL&hpk4QB_C88Ba9vJCsNhe#*Vdh3-;P`) zFxsJpWbxorGNwOc+vSIQlMoJlrwHAG?ohb*cOp;jBqgJ44ouKd7%p`G3UPX>1%=mWc3#jEpR6{q~8w97Lm4-K4h2CR|Dx` z}Eeg{&7zS}NPsdgY>;i6yG6BTwR$|R^ZLJaa{#YA z2=1SztpEler%5fO+3yuY8vh6%o=$IfSVA=dH&-A#eCl=9(#z zcsf;O5I60N=}w?c1nr*M^-WQKxifRP^}l7UYn)F*YX@>0(tlJ!GJVbk-eTA@v?cjF z{p>dm{A+M)nWA^U!#GY{MsRd zY||tDr>e*z{*tqcP>v*n}rl-O|hg|HXLw|N(y72#^ ztkpn%;N|f3RYC@cr2@;FMP~7kHEWvJFqQI)yII8f8T6;_x!Ixh(7>>Sx;t8V@dBgV z9N#FuRl+;5eS(^KK<1yimqPACHPiD(tlu63a2r>~OI*X=&*fKxY7x{6SEgzpgXo`W zSI6wuNG2gb^=Bu`Wt(sjNJ!o>3=B5qG zc^9@?#uZXQo%6rRb(GvZ&m3GK5EwZ9WeFis_=4L}AL}<^>2+8IeRH~z-;(0gL{I!(-l;I%UWvjtE(bII=kR&V=C z_O5vMoo~NTwxr2Uz%z|v{wO&hO0U57-$ z5mY-h-=OOT@J8RYevyj)FOXh@25A@sk;y*AttO$?*YyR5Cj_(agCEq*&oY~s-D(|k zNwWiRjd0SL*Go_vT&8>*<3FiG2&>(@Zt|H|GYkyEK$FvbF%43HNx-?qRO4Rp?Q>5H zGfKjWIU(TLv}_0E+>Zv+EvjbL9^ss|KPF9OzU&Dv;w|RvOSf@nF>*@w6~X$d-WfUQ zN6+*6UHfO%MCL-wHBNA6)d}z1y@pb52WBNa7Mw!#t%`QDz?tk0u~bJ@b~{%|GL%a_ zyd271SM|wj{b2iE@mg5+dKNeQ66;8B#jlDC;DV}_|8eF;SP%!z+1JgAyY<6t87Pg4 zPheIzMITk2@XS`HfA2kxedZi8;?fl)F%#eRAY~L{w46BAnnal+1Txp%o|w8; zF4P`n`-|$k1aie)%W1wiMyngSjymG^`^x1HdXh;brMovhUyOT+e0FF9J{(A=o{U{1 zJ+l>=f4Qa!BX){|2a{&6?A3MSxMs))mcg^E*;T?ce&eF1^VjIX4P~%8qq+v|k~-<* z=Yj2Emqnm#vP}a(0$IMhlY-IR$2W${EoI~8t82Cewl&$gYjJa4Q%gq<9~mT`WbGVs zbh-FFm|!1IS{F-mjcy4WO+G$rmR);+Mcqa<6<HGKRI0 zGCbj3qn@t}h0WQG{*ZV%9}8-|`xq+9eg@1UA6j>{u#RtEjzA54j{b`#r{He#Z(9R2 zj%N=l2*Ip>Hn_M=W#w60z)eqN+mh@i>fHRkGO zES2+bouGoyhl)PqrP=ROa;KzKB^5%oH=U`|5x2~BOkd6>GPebjCjBqDb#s+c@9{#K zZy$Hruo&S>2`YE?H0kP;b%k&i-kF+ubnMT*U|oauLnG8TJeN5EGON-_KWfu|m!XUyboV%-H+8}?r7`)Vvm!pj z@PGgb&6%y}yqn6an)$?4`D@qXl@;hIJA=YQ58$RZP&c8AZ)L2$8z{n-m)a(eFT(>4 ztK`+EgVz9JDxxyMCG-Ps#&!r^VPNhgeG@w%yh%7@DZY@licy*G1lG5{e`r$Q`Lg)t zzgCbllDZpVX`MLoP-zRYBztD`YN`~=;m6C(BMu@o@>D(2jQf5g6E9;kb~I+O&{^k|a&u2?9$^ZV zN0R>Oowo8M?fX!Kxl6d%)YtseZ#0)uqRI}dChokHUW4z|mfuw3yM8m`w^_81+2-tR z-OZ#qv%ep=Hv4}k75&5w_%DuJ#I}O2yw!RsMie$9d8jK=%*!_ z>|h1#Lgw2SGG{kQo67wo39hC4%F^w_* z*TQouBHXmLMYgE7uLV-QrU0w>s}1pJ`F;nEpUIUf;jLZZ#D3h4h8aolUV%lb8wfai zBJlG5rGPGp`{k~3UhIliIrc&pSzUnr_H=X7t#lm<+}CE=Z=^Nz!T#~^?dxZqwEk=9 z+j>Si;k4JY7yMaS$SKk@)%WalT$K4xMFTIwn!Az&q2cY7r!+h31M0r|O?U2lI~ew{ z|MqM{OZE5nJ&dQHqmJZXQsW|a_U|^Pb?qPG+fHWT-}ng%2Y%ld-2Z#ybkAa(klxQ{^4`A zhbfT`<+`UX`gc<)Hf*{JHs&^IIs_2b<*_1(oniy)Ozsv<3=qI7Tw8j30&#t8J)4Ti zJIRjN-#)v>diCOiKCDvtNo9r1VA5X1Es?Fgc>F)Om{XzG=1RU+ytV&3!1$td+f>(M zZr*Bj4uK)&VM6FgUxy=^cb5YN0dk%K%qZrmC{W8W7`tH{*z%{Y+L17TZ3m7(2y5f@ zyyS_CE1{^vH4WQ#*-0!%63YYWSa(DQy7Jh0_p$3!&O@m1AGC$$bvfqKed-T zL&FYvCv?1N6)dnQQ+5eY+xkQ6nBDuA5>pziAAb^cG`kvBH(&RfHwB~GOWxHa%Du`) zHf2wfSDM_6(fB+kuQk*$$qKus*~Dz0-OHoQ*WmESDG?1Xar-GMAu`i$-dX%f>m$MJ z`(EWugKiTk;c=>Gv-BUw0N+EYjpsZI=T=L=wn@Mg<%vjxVQO%&8kxM;FJtOi)gqkj zDY0ld)AsXU+}Pb+arKrf~inw|N5kwEtU>wX{%hgldX*XR87sV8E-35w(Al|eOCE?cD3sDc@#n;@QSNE zR21+|>k*_=F_wHzEt6az`Yd{7!p`?!5P$H-ezEX7CI9QLPy9AU?RcTP_XbC_KA$+$ z4m$`7m^w~W_*gfqwqhBst~It>`xh4H+oqrz0&6X@SpAxnm~Z~p#`wMbQw310ICe#B z66yS=&QeO#cwsgMn2YnH^@00+%TRdi>5v4e34b#jVj$K$qq|MJgZ}omc+~ezQE|3s_tikk9m-S0>4%k*Pi>^%#?T?0Z(QrY+Ec%0E z(S}-Qf08LOspRJ+od8IAql!ojh-oR^C)j{+LT$zdiga;~Q~vuX7Sj~0?XsZmv|4;N zY_dT#e1wMEQ3|2ay6a=NgI zcS3QZI1g8UG!srKaC|c;56bUO7Ho1HE0aZ1j{rHQ4f@JBS{w}+JZaVMQ!kmrU zVe0vfYT)x4G#q_wzO(g{j@0jq`y;g|b#6-xTD4SykIBd!Nsj4%h3QNl9_4s&mQ$^= zhf=mo(bvBM^E{P>$=3;YWg|YTxm5YYXw9hE`JG|U+W(tx9&#D6@7n%%rsQs#!KR$* zoU$)P()tO*y09pGd3A^I8Fbt9^1#iV zKbJS7r6W4;r2SlolUi$rSKWvCnMLb+37*$*$5NnnWBQa=Vj6{>&ct&(9a?=6w4mqb%XrRsojeA2{NexY zegW~=c#+o-u6x^OiESp@2R=Q1yUWI(GuWeBCxDs%*_SkTSSQh?TckHSZ7e%u9sh8( zCQ}YBx5p@J4PdvROIND_agu_V&H1@Glw!F_=xXIY6V|!TY5S* zfBGT1jw%Duv`s$8GCC<#>nwBE|;dALm&i^p=$qFix@l6Gu)6jg=4{Lo0 z?XlP%kpBOkRc3r^GVCFKf+=T>l0-6hJ0j$3c`dEArDte(kfFHS&nS(ZjwnJzx*MYt z_Ckoq!>@kdtuW!<%vnLGbp2!>or9jWK_pj?hXk$bL})!*p>T?nF+p^IF>25E+CDC6 zn1eUF_VG2!NWZU!EVudsE{<~pL1(YvV$J6k*}A_m6&3xj#$N|go*1gza^Acc9F13e z{EToed1{lKooW||Jn@h4N=6;{%)06L5Mhh^Ob1 zqmSXAvA?Py0fb_~p{8YZ=qs?)#f6zY$#2#%&+EJhFS{O{)LKePtpe*^ z#DCseOsMQTaYPHp-Mv4pzpCnt>Xj@4d@ul-BmpIqYmeFik0|2L!ot9s2X6KA!M04* z(D+Pie~r`C=7Ic@`(KmRC+@uoiPQax?b@uEK>MmK|0|gtQ8{c2I?hxa)dF)iO0Mn? z?tBXt8uZtkpzrXh2_|<9#1rZMo4I~+VQkNABW3qSVcUcJ;05sFui=^MK*GMt&QxQP zQ=`$ami}IU_-ckj*QXg`e|H--ooE=sKU+$Rj)RrN=~0P~Cjel|RekfRaR#8D*U7$G z_*P5ukGq-Nv}m6R|)jmw5-wmA%|;@jkMqo#?qJXp1GX%99N4EPhiCND)PL>TxhPs(~=2);lxu3^=F{h?gZ`^>k!PR{9{@<_Aw{AKHV z90(^z1cbBEs4h9-OI%$9k0!_H4^JF6I&8xW5b9dnKATqP{q45(Uo^&S0C!K#z95q( z-*d0|+wXTVLcK>L+}3W@ER<*yrA=( zn(!&E|BB;Cen=Oobo;gM-|9m^a0%S)XCqkt`=1z$XK{O@r{f4EkL4Zfn=r8JOk7=e z@f7DC*H1)SYN>=JOPee%O{8e%kAI#jLLs0X%Q7v7i)#lLl?f{<1?khuI~i35(ap6V z(M}aFu(dMoxo-lGX^n^}9@VNXMU;?+yERa~=hyCT##7O{hCk)9sazj_S(#{M7io3- z?aV|=!#!p0=_7KTgund5uaM8XAFKqY`uf0|-QUys+3(@!zDC2Gm*@zEKy7#N6aLNT zI#kPw>aVRB+ONMUA59*{1=+8u9%(;-0YO`TC=Aa<6IX{sWCLA z%U1Gs|yDz4EdPcdwp2d6RIP-S|=n`Xg!&ediOGRR` zs)kd5fHCuiM%5!47D4 z1z9+DGR2giRr$lgKlU*kp~=$VEt!ve^w6`6f?u^hYB+;m>^*SSbS14k_|k7z`TT+W z50{LvngP#nNc5m!Zr(ND|HlG|o~W))L+wjGal5=e-AQ|)8F^?Al;6AE{(opX@35r) zH|~GS$}H2;%&nD`<|4J+LY8HvL1kve^+#4E>+@+b80y)VvaphLrGsV3X5fxEU zaf5&lzvsE0f6sOP_*~~)=iHyq`+mLO_asu2ASkyK`T*xibK^FALHM)oIo$g}#sXeL zyGm7uslI(ja#IPpxHv~&ekE~&@tRUGTAOme;ulETX`?fbU&nJgh3iLlNcAIkOCEo_ zMA(Ahl*;x^Ikk=R&sqg5 zTpGx86l_7{lFwToZBV|dQtj4`;|(KTsWV!PvRdmAH3;4|$~KB-y*i7`ioeRR)R$Xb{?+hj1?W&|KAff@U$w?6ur z&pv2R3LEAsZ*X=IM8-`n7|Nq=u3Xx*txm*V?dZxQs?;1)?(T%eyMQuM0+*R%YVOQd zE7KZuKuf>o-@TC{NjgN6`AMGTrr8-JuHiVQ99;HppDR&@Cefu_q^sR#M!(!%TY=>e zK*dtu8uXJ2;*_60Z2CL*Cp~rM)UfXtG8n90eszy7LjE z1MA!h&y9#y$Jbett#{Nki*ORX+UzSKN_OAuGm}{FgQ+eEM@fX&*#1DwzChCsQ8oP< z)i0t`7vYYu983&)6riNeTSuuBv>n|o-EPxmyH1x2@f8DzE=T*VGrbDXG~t-kZ`4Px zJ8=(QEcgeLzE_n#51Cwm>|VRz;B_M>1w&VhG&bMCrS_1{LXnlgzvX%Fz|9`*Cvx16 zPPQ*wJpasJQJ~spusN(XL3#QOK*?{5=;~Msbl+W1M9kEezwZKB&TZ-Jmz9|{qJv%& zw0D;5iuK>7xL&CiDObKDg#uGwSA`_Qoz4D8JUHbfTjIDw@E)C(XJi=dosOJ^yl4J% zKmQq8)c0^9utrtSlj~iRWOeO*!?5{DuHL=G1V-m14uyCd@P2pZGOL?^YN`W!=>~|z zvwttuH?7aHKS9x1+0fXKzCYW(`NpSha>_&WW6z+LG=`LM?ytZgEDPNYy6W1P%4E_B z%_kZ(B1efamo4|6Ag1009;-(+0-XLQ*A>}1{zcZp0pJk)0k`=pgpI!3?Es!Q-BUiv z3KYxZ%9#1&*CIOStG9nL=P&_H-;46g{Q(Z{V2mJ%CILL+)vx*vCgX=74yN_5Bfos?hPcqf|EYaYd{HeTl{2xF;vx99`!*^v#3wBPR2ms zp)vhDV64xIYrv34oOP3taiR-;sg@%B_)w&qMG}(OY^i#EtzLe$?&Sas5#<;s&BX=);$- zb_WVLte54TuC(^kvZf3C_W=hf6aG5dKlYPha!iZvyt<9uu_uM_|7g$?IuUz>* z{Qk?*=zOvZ)$!ZKTn{Qp9(N19zd+yewAadK+~wcpt4M~R5c>=5L5_auOs&Yu+Cmiy z-WYkhuP;xQnH&_o>>OoQO}m5EOX40|d&|}X%wDW@3piY_`*6#Nnqm!NtKRgXWQE1S zuYnI!dj+rf&dDITolCWN7<>g`Y5MmdXQwYvj`vpiUZKp;rkwh{o}LJPV((SsjM?Is z^-lsgbkNSEsaM7R?0ooE9KwIgWJ&ZZ`~vT%(e}=%WU{RLGti>LoAK01(sjXM@tX;E~X|OhKk9U$K&7R6__oh+9ltKU49oLJ}c3~P>};cwx0vV@GEQV zs(xpQ@ABc=>=ya-Uwqb&JO@MlBW1Ek49`d@DR=-?2o{?z#1}!jGFbF@?PIA>U=S`- zFy#&HS%~2kaB8?Q?>|GNwZeBx+I^S3t)XQ{yFwc34i2LxqUSghPf7+3;e$QR~r2MFo{1@LbkKUTOQIu z?j+-Nai`LFM#h|H45Ng?Z?2XV>J@9Y1u>MwiNZ& zkdF75W{Jb0>yu{m_aeQW&+SE!p*iw3w?e-Y#wsuRIa8e%o>)v#I=!sg;sEtdni!id z=m_})hs`0)54!#79V`~cLq%R-Ed=91^Bo;_r_v|aZ%)p-JztVpZeQtC#Y8-Y9i8c1 z7HL`)E&Xg3^q*wRt91k)HCrXg_ffz(`mYm7X!F;)GOSD5uYZ~u8I+8R<#DsaIgM&r!t5gx4S2Ncfy$;`L{T|2%gS{`f3+uU@sE zPvMsfzw;a0t`bL4Th`xxa8JEVZKac;`X{H<$*(i9|5K}&n8FMS zo3EBklN-ZupT;*gj`*~O*#tH2n1vg8)Tu}muQoIQ?iOL!;~pzd88r2+8L$`FAAC8@U z{hn%Tyg?F{g3Po$#6P;$-(8SsN~bts8~SG z6T>&IEYoi+HsB7nrGF%y>iCwzSH~MtdDr@%B7jgh5&h{4dd#x8}FG5 z7B5$ay?m#(BMrXwF1tkZGWf~r$)MBXpy&QxPY^OJ1oIB z+LU`3kFlPyt}g~VhU!)_ACmHb(|sI7YEG6C zW&|V(hWE1dUbJiYDuzOyvl0wgOm?%<6CL)|=`};uU_kX^k~<|ZsAqjRXOno&mKG(B-Qr!uwoeK9yL>deF4_rVBMaD*@^6V>IqjI<&VNacf3Oa=&wf0A}Msp zA!W^@WpCw|(6UD)^1HP&|FeUl#p$^jW#nMe8lJYYhu!A3K|Ekc!Vj+HUsxa-(SIY& zJrE$$j(@EQ-5QW$$&jN9u78EDO!u<7S9G4R8}};)=xfFyboLL%A5y{TyU|!uJgs6z zYI?Q`PG#BWu1mh3Jh0s#+pxOH>YX53HU;hN(S~^-thT|^W8^Jw{Z8nmooXg4uT}n?1Y%dGW<8j%`?jFizR>oA6xtn9;JZ-PD<2 zTLuFlk5=;Peoxfj6jA+;&5Zb~e&svLcgmO8RMZ6)PY{aXeL(mqE2!|}tf$h#y`X5U zNXzNP=0iD0CDlu)Uxw)zUX${m2bKLYoI)?y+$ffE*<`__`bF)g-t99-K%iXp02SYeckA@Q~2k} z`cE@Y z=+l;bbwTAip35^2!2Y@OI=3pb6tP@BT1u-WrENz`vv=*JKolUYX!lo_`(x;0g_oLS zp5CyB1Ylo=Q^pz1=QZUMQBJF$25v)xo zh}?*?r-h7&+`kBZ6`QainwKf7s7gE8EwFWNUh|3ebp=+|SUQcR0N4qcWPGf$ydU4lO&O&+tOgP`Bu zU%m$_h|@AcC$D>%TD}4puLa#aXk}`7D{VTsPG!`I%Keh=VqaH+{8!ImQm6@@1prAi zg7>ocPhq&qrLa=y9s}0jGddw`aK*0`|Ln=tC0bF6G!NKl7IZI@vBkk z$>vmn=$h0;&*OhyN1T?SSDN0$F`tsn@aXz?vs#bpe!=I=npX;3*#p{<*<@PlF>UcJ zdts`S#Fd-MkFR+_Uv~$6-q&W5ONtILg3WasZxV7F+?5Iv z2XjrN2E0W(%yjw2T%=u%VHjU`13E?;uA}>@3jBU6D+j;)(7FrnBM%KUNMhn&bA4*^ z(rn#2ebkCuK|^6mwY)K_5D8ck1qT-v9b?!X3~AiF0(Zyj-J){i=00x;po1*Cp#8qK z*&o2;ub;jumbaN+VffHlItm1LscM7w4DUjLF;N zkEl@axDnVU7+S>eH*!2pX^bL&Srp*5y5;lsCr89yv#kklo)NKNLBlB427|nIQ5NQ9{gNbD*njj!vau8-%oercL_l`O5cou#2|tT1jvS z=v{-=Tc_rz8YPdO!Iqn1sRd%6sc8i}9?N?5w{EA5r+6~7k)u0*?Wg&9{Xj`?X9zoK zZO^sP-}WE$80Ljw&2-Y$>}mp*-&E2%2_4M z9V2a9tB>^uBl=tSEofmSOvfL!YR%u=j9F@7b~xOgnnARY#XbM?o3wV87}{E4-QfT9 zW+^Q4I(tNh=BX5Wer+n0mA?XSxLH_RkA!^_a0L-DZ`k(ebx-8P!v{ec zm3k+;2KEH8_p9_=y#gbe5U0WOR&^J8C)1T^dkh(CyPBzq;q|Xsvtz5JZg89}#B*g=g!+&c5q|A4pYtlUseaJ!c7Fwjlxp=*$Cw4~Z z@yPPKe4|1w@x~_xM9<@nYoz;Fn=y$8O8Nbz5=14~60_mEBXPZ_T)$DEE#1G-*7SY+ zinb?<(;R47q7ob1%_eRkQ)j%IR+@b@*VX#QZvombD@0u}mwd$5l@`|MhB4H*OrQar zUi#0_R!=_lV~ZA=9>68zM(FZ+epAn9MJuD-p4#nLbhOLaE5yvxsz48D8;<=TKK!|I zrabd&7SwLDGFt_hWl?`*BXxYaA*kXp{wNhs&p*5Y7$ooS>}_l#Acxh>3B2vnK?dQ3 zPlDs!+gfXO$X&j_xhyVmRIVZ%<2j{<%6_16G6dvWImV5#4t_On5gt;YG4Q9o=?+Z? zk94Hdwretz2-ccHqg?iepL|ZPn)4{lUOJMokq8u#+Iji7!JOgPlQ-C{d2Abezq0H}n5$!c^klESCC()_)hBFp!4|3QWk@S5HHb;G(5k|<`sV|~7P z`iSs(O;L9qK%ZxdK1E^++Cn?=R#ZJxjyWIUGUaSlYX{U08@Z#8clI-R(T8rOP)|it z4QqIe5m#DPIEdFjA7jU$iA%ely9@uL9Cr6|N#L96Vk=Y6y~WiTOw!)r^g!Z+nlj;4 z-9S~zkBvtO!qmLMs;d9$Ip&2w!jyAI9LMNwGOE$<{yi%*oU7;nz#ru)#v&H!^Tx(3 zspxvl_KB?8T8^Jq`-NG^OK`TDGK9cq2F$vYh4ql|0?sW8A4fT$2Sq(rE`HrxBtcI7 z4|v;{8JrREYfOS)!ld)<41_8sZ-x9P7^$PWW%$K1wG!OboeTA$=qq`a*MUw%Nsp zBuGaF-CPajg#HjAFU8GAS*c^9y-a-pK0kLJeI zfBx}!@A85VaY%zSNgQgISoK3ks?0)fda-^%OsRsC2*cSC1M|STIoGFy;`zs}*$E|l zFh7X(J9O>ZV|xVI#JnWOz>dyNPlylWOoC!CuQEeX4=P9aN2Y#3v6bWLiia=T%?VK> zgfvDhAoyCaYAQ=K7I;3m<#An&@|f0YiA~0OW5vz~Y|4Zlj&|!_=Kq{fc0xbuidtht z`3%KF{w+5`RlSA&^_`LxuPgA-&}`4-*3uZJCC(`Ha^_gmWd(by7k4fwhn}pkmKZEI z0--1psD-T&;+$^72SmtXt7D!T?Kp%@E7Lh>e*a$xu1ymdnN>=ywi|LM_oJm=Bpu;M=RxjjwR6Ti6V)HEo(-KjTqhU9=~pn4sug-rP_l3K+Q(V)%Mt z*04`OSFtv2cW37-0Y9SPesqKT{T&tFGb0R9@2nDe{0_C!Y(^m9+}pk1datWK&Q33- znTk}=#M{koLCfZLcKw2WBXF<{+fSrvoA9)wv8!F`cc2@^V>7NU2l))X-#`5AtoJ^p zNoHu1M@iodv1T^Cx9Dtr%W-l=shB3mhrj=F4D5VZ?6(u3Z>Kh}cWK30fBUwHif zPWo`jqZU%q-_203+>0Dnb2!cj+6YwSKc`;z`Q{xGhKO$*Tkqu2J7Q z_6OlWvx z(`dUrQB!s9UE@|yOThj%Hsn89YE2evudwz?VrH%UsM=L6QIDSV92qI9gT2OFuU&FG z5q$0*WEB&Z#jmL;5xhivPl_+-2-Ml!y0TC~%(e|*L3nbnN*i9F%c<*cqT?Yb?|%xg zf7k2u&n^`_5YMqG*pSh_M6GG6Mb6Gz^kM5){7U^-!yP5OLn_zSbX>g+u7U;zo%b{d zJMiFhcdRRHy%U5!Xs3Tt!Nc}TxSAgCO$(_v+FC7`Gy*&x%7$&_ewMu#EEtTFZQ6e0 zbhfh7*;DiVr*g+@V4;Xo+)~(q;&>^eBy8b=^c_bLt#@j)bocYgE1ilw0M6Ikwxb!y zZru366*@R@P@K1fXgWgh`x4EcO;0xI<&7!6jsLhfSqoGK|3+_^c}53FjiJP$LFb;1 zsGPBmqp=$`_9Zsm)2;D>?V%b9mABD~>(5g9#fQIO3e4=FRJOJpBpXWvAGEc_*VjU~XZ> zCLtANx8KQ3@JL*pIt5J))%k&?!{F_OG?5NJ{8gv^6cN5Bh@!DsDS`=>Zu} zkhDiH+LH7%ZcG{pq+%zwkVjyJks@E=*)W>h&y||~=8f$qyQ9z0{{x@=Z&=EneB@!z z;M75P@QETo7f3!}x3+zaxkZWWx|3Jgw%|b<13PpVCn%p4ChVlB~8PsI909+|4 zTcNY<_XG~~Uql@KmgeiYc%=6!ql=Kwt`2*sh(krj;5LfEfCV?$y7XJzed##hzxuX4 ztH%hDNtUfb=$(zf)1m>gOPEVFp^=ULIz0g2F{T(=rW>G-Pd*4UTlwCBhkbP^z2^o` zU=%DKvgekuA&6ILWJWCi8$f8{b`S+#LD(Y?duuLDwz-7x+sK9*)&;XpYkjVkrkT=< zEr~Lw(0YJI)v(7Y%N4=DhqtMA46%~XB$O4O9^NK!W(Ew|k-o0G>BiZ;xdLbI|F;bP z#aDGN!zqQ6+WHp_!buWok_Vzj#q5D2(s>Mz(F4d|HJHc97{81aNqMJzW{Ej)Yh|3L z>kume{f)rv{&3wcsXwC}Oo1Iib@qmXD5p2YqVVfQpz_7P(uPFy~+fYS*6p(VSSJ<1U|Y+iCtq?_x6vxrk~kElsW z_I5xur31dph-BTM;G!dKcoG)WRF-NxHCHN=n%s2&yc+DewT-C>ax=VUU8pyJO4IBQ z_DGSYDA!Z83H{;Q*K`8gndL{G`U*&HL{EC~IM(kT%kM_jtX*Jll5lQ(bqbu-_conw zvh5poZr|_R{z@vb@F)=+i9@tHJ_>*>L>HaFTmpRfNGpVC{`GpQi&Witc;BM=j#OkZ z?&!stE zT?$0&?I=4>0R^PbW9yUmxbH9j*ms!fQ${RD!DfL*tf9wW>p0NMMz^dqm)?%y|7LiY zX}9|IuA2YE(3;pir`mr%|BT58RWZ!Hr5x&(T7r&9tV-*D54nhF;CLHBRwYiJ$&r}x z_0l)~-r%f|TlJqG$`&M{KMZ5$8Y1&2fBTr(3bv1HK86#SbX!?X8hhLjbdF^#R3E296|A*u|Ms+$P#G z*hvGjyR+e~uASlEpyjm@Za5LMeR&V8DHQ(R?j`1WjGZityglqP8itp$Ujk8!8Wx6;03fJI4uUX3Ef_--C zrTUUTvDw6nMaLozcd_Y$g<(q7|8tOUbps+l-nfRpkDC%r;}R*)09glhpRoq7CftYJ z9|4~~6dFQeRu1y$CQTmoTP$MxC^TGUPh@qa4E7&5E0;=6HDO!%Tc6*Z_T4LbOFiu% zSb5UC=Kb#UV69Nvxqwsn3)|$HF?0sG9R)vCzOOu%F>0gMvb`aV*fAl_iDPd~HZmmZ zT@nARu*LOFUTYS#2LZg)?v1mqXAd+aSIKr?7>?5HI9PY+-k3vb&u7H?^tWT*cvQ}o zM+%MYms0L&I|P3o5!j|}$*o2w;B912vii9}7nG~$jE$S%Sptvx#xE|uQ~yITW*-I@ zA90l$KeJ2%iEk?K-18^|={# zM*aK^Rwb7QX<}DlbVg_7HV3ku;XiF_WWcRB(A*QF+28i zyzZz*Xsc%KpB#MyFur7BA?*gPRNBjgPcmt*Id5VLmWa@s#W)$=$eaH~!*^M{hyR3a z01v_;b3TVF>s5oUH%ASo$~?RJ_q+5j1jw@l@p^XNn)d$UB%Vqhs+}Wl(2ZC9WM3OB z7KP{$A`14mF~yeL?W9zLo4n}uN3{N65uP%x|B&kNPPG2#E$+#|Y8{>>kC79_P?hLP zN`mJXIQy@e4IIQP-sIOb;q=r7TC-Z7)+7S~@^Noy5j$A?ypB!R6sEim^@z6ans?dX z%Kw{8$5F~xd{U)Vz~|*Mi7KEK^44urI~T*kz?Z#x2~2^lDOzqqbMXv=wHMm5__$EC z>RPr^NP8zn=1&TY^DW(}54^io+C{$Wx%on`sxxk@YU4%fqW`9i%GVf*g#W>1iUn~j zGp+BhbPD!D@}(hZ4S-it`?j-%8(&d*l=BG-XdmA*mp?(CCq6ECEM;Lq;%HOE9y{TP z&6$o}$~V;HnMHry_`_3XwX^#_^AY*hJpOdSwVg)+$in?&hB%gN(|+9I?>Nb~+d3nY z6&43g>Wh_Mke=zJGb;(6?$8rS(A_%}0qY9D$NpqMW2YLh@?nDb#NVo9Rz#%W{+9Xf zwL*tJw7kNd+6;&R>laezuLro|Kn==gemKiY^?0+mEH{Jm)hFxmZuxdW2lTAwKoUXL zg_HlLb=#k|ytNpp< zvBW_<+Hr7ANw3=e&~W^{T(MqXZjv4AhW`Lqb;%0-r~7jxZ8gi7Fac@9!9(<3mDg&)JX`Z3Y_I%G!FWmfDYvfxs*RGnO)&~qA6&V6^TT45GAbaC z)~{X(fw8|{%kk(T^lT-A={sygpFbQe!Pj6@*4c1xPiv-r>Rsbb_{bq8G+|H({j&ms zqhjZ!3l4t}r44X@7>>ceruR`PjC0Dr{Nz1bb)M6kUS*K+q;cHe!oh>TVTPeEL|<*0 zU9r4UrKe7L9FWiCid!FH&XJzrKIVvjnsHC}1ry{!_D_Q1%!pU7Orrsn)<$}R5RZ#N z<3KSG4`csPW!uM#`=rq8?WQ_44(k|d=x>+uuV|{mLE5NJ4#!S4ahSvoqJVt0PPn5Z z4#x)g3HR1dK_QI7!pX8D+{&BzDqMKTnYw;RiAD}m%z{;8+WUgeZ1K(KjzV$?uLsUv zMqbj#$kysq2Yh1+p>3`~{k|_*S$gI~+~#fuSi{`+r}sim$|CR|o7W09-fPrWg*QUn zE88R@DgWHx(`EQaIP(_!FLPh3;^yR;SNnW#?Hk|cIQ4r9r9X1XBg=41j%$b17oka!1T~qa z6oi-czT{GLTOyc@V~;?c%?v6pfZq!fysRvM|6pno%`<)j&M1vd$Miha3k91=7gegL z8{5Vqq8rI*=6|Z8eQz?GNwPB|*10aQ#G8=bLcg2&_3!-kHa}}Udd1U#wye{x?MRx; zaOu)F*}EuFNvSMs&{Z#z*T2_!(OJo-3fd&JzOiN~4JI97Ej4>=(r!Dt`djY#SSw?_(~GZ4!7|sZl1bI% z)5Nymb@#M#EBJz^W~;j2M(G$9v?&s!P5G3?b=b8bAmzn8z$>4EfDUyZ3><-coe`~Wb>-+DVxZHzOF#LZw;j1@PAJ_tLyZN6V} z^gl%NxN(j@hgKRJhw&s=8ZEZ^ga88rrRO z3w!;Wc6ms-4ITH_Y=z71I!^5Q0^DBf6Kh?ROOu-UEviB3eU1@(D9;z>u|x%QsC>vd zyR-LaHg-5ECtcy7cd^nZ(yosw7H8YdaL$e4SnKV(3fR|cuJS{G+%Vzd{)G}W;e0P} z=0H{h%vuWuS!SPxy@7_~1*i@*pJ)~U%`o2I0x-E;k4sjxN_dT;Nnp~z%OSdVET?1FEF`Qk?rpmS?9d~Y_?0z%cVhE?y>!Xs?sLL;-8f5J7PL{Tn z&*igEhSuD!@fNR_xGQDaffW^{L2Z(bX{f;L&T~QbMtKe|yq9)AW?l-fbGv3EAxTbX zNzve#$%&Zv&aW2_|(7ktY@4Yo$;B7A8B9Pr@R_#ggttxMvkad&8 znK(kMYs#xbxtS3|b5@wqdW*(~^^_v;>+)pfAz%+>6-Y3{t+fG-yXB%bo04xzB16=XlXcQ;c`J^?xy!^ z^VFs!yON95K}Jyuz(!~G#?{TwQ&Bn3a#I<@W4Rc5rt;q#{Z*Y`5K}kzRqJ0ga=(&l z^JDc@Jx}H<%J6>@doQ1roV&_t93*3f-cHX^Z&*{BhZ8m{nub8sOE9Ak1|FBp4eoki zg@$A9upqU7YbrM3tge!dd`Z1eDHFAhg0~`lu-$X9qH2Cl>m! zGG*b37JZW*HyBSAj3`J%Q{7b9C?y(FgaWp<(}ZO<117Lx{CXfQ4Z6-sML%Q^)J0P{ z6Pa~m_FY@~`}OptuPw!SF8B9uA&}qpwbRO^1UPRa#6;##P!dXvLrXd{+TTb@I|Xi? z&PbXu)+}ILhoG&@-EmhSOKUHNrmB4HfEL*q12QKou{uK+8ex2p~_f3VF)VAsW<2d#~auO zEeIA24g-1aADk7+4Oo!!3E-~^Ay4InK3{v#2qq~4uruu|jP60&D`r;!k;0y#Kfrys zY9(pu6Ne5<37M!s4{TlWJwd#B9_hTi<6zuHez}6(|NHE`S`j;90?~S_F#<7guO`13 zgVx$-XdecgRpo!QX!{%4JeGu0c9DTvNnagVk{#`MKG_+`6MC@&b5+YK0Q6Jo+GWJ1 z;LN#aK}H$|PEFU?y5H%XOrFc&(vS}DNqk`a(a5h`vn|_MF4#BDe>Z<|8(Gj|9=@)n z@H`B-vyxLWeISFV;c8QwYWkHhny$`oML>j>6}8THE36s0cS zBB|aoLLC!Bw1AZj=e1qahWO*VF~+-O8tR+pBsH6iqc7vaR@UpA!HVT#3V@4}`M4k= ze>2Y7%T}>@D++xP@)6r*P;ZD1xvX2^@Yu9);9TzRUiA~cwaYo29N#9h z86(dl5gnVcoj$-fjAF{jHs5Q$^|sEUo4dyN5M7EUCTU~Vu3MjDo$?3z;Gp>zn^bSe zWBA`~wa@^zb`5XS7cC>=U_karj&Q{PqI%M{-XQsM?fa2kovN<{-u!FdYKG`u03O5v z#-b*f^6xO7yF*m|!YT?YxWfcr~cm+t5L|W3E2uL_~no-42aL?!S3viP@OSAHxgT0 za+TRlC;SDRT?$Ki`Kvusl z3R&%}Jg8{w6$`2=ygQn8&-^B$Jkn*YR#H5!UKj<%l|RCUa7a*jCS-_s&Gq$cZm>@0 z%c8mW0pEm4>p@G68}_cujU;+q2yOBt#(Sa*NADu{l*`Rr+`Q}AMwU+>W2vp+naf8$ zZe<`}YZ+H~4#p6raR)sxGPHTICoMnZA7ZqbKjM&$^q6?K zY7d+P*nT{NOg_YMgu3x3&-?CO{5Su#_5-ML(~)?`^^Pq&aXm>hiY<-X!>R)|pEJae zJF5Lu?(9zrz{qb;DY|*dcsXXV-r=Nwy%g%@4sT2Ezb+Vm)Mutr%BWBxedBKozT&Zb9-<^+#6EY;yE-rT zK~{;;%VgmNf&U4^3(Nx#ge3HMfNny$3;ak}nr*!|y;Xhh*@e-kVS#)KcEMxSz83qs zt6UHf$nK@9*=vUkm%|SL&M-i1oWbR8PQ07j{^ivxkY5#*srP;ETw9nRA&>`dgE?a- z2eeSthq%L??)}VTjH8UtJ-Fj*l&N&Sk8&zNr9JNew~U)aFkF!vA=hxlW*a&wLYfvP?+!>-YWw-u(JMKqW1< zZ(WPT;z8}ja@wOLNk)$hx6WNIalKdqyrEe0$wBh}?h?P=VcXH8!c297ZUC* z{^FAxwIP~&`qKqCt;icl{8cVIRM~iM%e#i&*=_fI2ZWV%ySI+0m33gh|5>-$GjI+Q zs+v;p54`h%%-~#uB@Kqj$QP#WU;V~+o*(}jo=j}!h$(#t;%;7T#P-x`r+YOJ)u-Lo{y z!+&Vfz+rsE*Gq?6jFR5w!z|@LK(5;|#K;>vf_M$fke}o#Ysc7?ecA;NebgqxCmL5!RB%dyTcIYUnX{j`J_*IOhvNhxagGk#S0$=P?@s; zfLUeYNkGPu7(bwX``Oq(6F(VHe|SofB#V>d$8Fo0dGCHToedp($mFb!x=G%Vqj=wN z*o){Der>yPUgE^~HJ?xCaRQ5UN8Rc zHJX3}Wi6N^24RM=_X#Epf%0y2%3yqN<#Ca_W!O~(S6m{%b7J(WNWQC!cFkmMgqFc> z%7R>3H*_GcRdxEw<{?KobilNz;rTiAypcz9gzz!=xz~iNHIdE%wmTwi$H@N4c03z0 zwPDmHW*7I0u0KZ0R%p5V3=}}R=}bx13F4n{fhr`}!OpblbMkX#H^0OYA17^+KdVRV z`lz`6lh=F&ie%$>)bBGVI#b9g)6W?Keo1Jk<9Kk&)m{5!*?x?(V5?&h)9yXkoPIT- z^|W8xSb8LomH3xOaw1RR#IWJ#6`B5t{^VZOicUgbXkF4u!t2k9E2vosFzXdMm3 zrXWk%66e^PMg0wx{kPGaky290PZ%64p6W#10m&G`3XH54iP{{iKPbCn4F5FW+$*4iA#C$p`gc z6rl^Jc5C2s3UX}M_5PDtI`z+xISB%fWbJD=tSSFe9zj@-LyiY8fS$0eSzMcN(Ah)X z=?5Kz4G7ErGACE(!HS04Nq`VMH|rMg2m4krL%99Zswt2E{Qh^Z<@G~`AN>ADowg+r z15DkQru=B3g~zRqe%8}`ktHwLHUY}$t?Vgf+{Uhn`PC!J6K57AjWFJHP7)a;lI2HG zVM1_Vw!0V$AWm!U^<>hhZ-zSXQ$%ONFg2?8%{ zo0(RMJ&G2!L~wOt;V(V&+m3r>On!=AI)(9`N3iNZ>W1y01M;B*7^gMeZrZ96UmC`L z1)?g19OQ4qSp;Di*AW1p`t!FU*M9+s%yc0LUi#FUmnM#r-7(pg@ah0ZI#1^Id<%D% z{%WoBI#0h}!R>zVkkZWKVBQKn?k)h`1hhI04@S15Sj;<%m27{QCHY$V`JuUJ4wHY7 zTDe1j^9`Z0rqPV2a5wmk;O{-cO)9;ajmKs~ru7O#NMbJ}6~&s4Y=Ck})jjKz&4Fgn zcx;6wq}h~$b3@&`!UHV9 zh+Q{F56Uc%##!Iy-c{Pqe811n$qfPx?AuUH2ZCD4O#ieFr3!3;E|I9v?1aCxv5urRNGZx`M6f47cA1n$h>su0vY(51*A1R$i$CNcQf_H;O?=hHVr z8_4BKw+Vv0jh+xJ76q0pc)K7c&aFqeGm<;}&D$%u0{6%J|cr*^GpQ{sM>$V$jLq>722@k{ zZ!fmq+xJxZu-?pnz&H)fwImNKARaj{w1(8PwL62>2?pRopVIsTI%Qku zuIvk+&V^f=zIiwV|E&V8zX3ZpTck0iDlUx&)V`>^=g<@@m@aRe5i#~!um9KKul7{M z_Pt3v><0Jx;V)`${eDD#@g&7QePa?>7a)(@ATF2Ak18l58@Q#O~CE8iWhfh^M>=A?k14F9_X)rPXW`HS%Gqz!lTV@STOyTwNAeg zJqbnHFWe?bT5k#hU(#hDki>mci2zfdy~-7*+3k{)*8oduzk)Jc28(^aGP<{EFY@|$ zj`VN^DL|efdm__5Z@|AH*?p=x`=XVWLEZ3Z=AFxW%d&-8n~XHcXhs)lh2EOGDy;%P z`tHY!_7KKc#_|$k4EEVKkdEfL(@uGaIOB41~TIm$sK<7~v*Mi5m6P?l&%=IE^z2 z)-$NEfoJd$2xQ+vMFqWA8t3 zU8Nxc{@V|t5|Au=&^{_n`$5sI_i>*nCY62%h=-0IxMn5Xm##Vyw8C#eyVXOrs7TwY zcD-7)%(f{y$ho5LvEbhYFz?#A`)J+IymH_)z_!9CMS^?Q1IOU z&jK*p2?j2e*A41f;wEcY2O%RvA9W5+t(dX8*`{+WWdLokl!sC*2)skJ+RsX6zZG(? zzu4!u;6JyyD?YlP2rq~^ePn3=(bIvnb{`|aWJOD-(hlwU1Pq%f8OO*+=?v4JuLrRr zCJ8le*ynimH;^SgjrlnEm&Y@~n2me8TAE+qP}|Pz%OAvia^99y(_YDXnmCr;!f z^~kYHhdVq7q0QipSCRhXNAgo3@RF1jDU$6G7 z_V4a&*A)9%dAj@G$lko8ZT#F7UN4R3Wv4EhuKM%vwTrr&HboI~AKm#~a0blsY|mP1 zdi;NQdhfWT{`dd?)yv9;NoA$xpfWQX;;5WJWoczfWo2fHBU5vrnOh*UGINk=X*tMT zIdN~rjhocm0~I$aB7$tbyxyPR?e{0#IGpo5=k~mw*Yj~buKU5?LNC>KiOf(7?;;S@ zYR^0;ADy-e>>HoCpppgKnZ(fmr`o?WFs)NiL$Y+X1un~f4h97FxnOQA#_xt~8w-tD zVMLy#jx#pnVJaUf;{X1M?(;Z#1_tvc6o}fv#;>uK z42RAD++04SHs`>9qmTTl{3W=fl63PnXm?OUKK9;AEk)mJ%*c(LgT5j0?4Z_**rPB9 z>G_pi1lGbC*4n!{t%GKQfa;UePYh1@bb=;M+>Y@$_-kvIG@Lemt+EIFM{4aW=YZOi zpaCp{cq<;_%J`bpZbw`5Y}3%O3L}duduDP#;ct*Nfi@_aB`Jd#R9W3&p)U(8{=}1r zc1Ysqu3&!0_TXh)kHM$^0+%zPO^Tijr_gq&qStan)>e1&W&PDl-p7)fdAmoqjxmh+ z67Q_w7q_rkK-bqpPPNF`u{cPsq7P+NacqHn^tXcic*m80&rf@PTwA_t>cG3UA^2R8 z+uHVu&dR}mKcy;G5+s;mZhMS{y8K1i_$s5~GW;gmBy*2Y1|+o)qj;l_a?sEX9vi}* z*ZH#>G)29_@#3m~BZ<=>ZXHcGMcbs-5r1uPbe~`(VrDGy47wOz3W|b!$iyt89w=(s z(cE{B$Aj&-duFe^-6zobHKvko*Hr1&T>JE|Q{+tUaQ=QYV~`l8VgX%bDE6i&QHLz$=idh8?0U`t%Kjyt+jF6k2o`YEZ6Q=mj^mSuJ32l;} z-xIuxQexw*x8A^4o$spn#`_KKw7u-}?Se}ZNsOPU7Sa9WeLt6roA2~oprivKTS-yo z!*zt9`_fbXrj>rJO82*PBtM&pSdLdK2djT$+7|Dna!NM$0^Qrye%kVPdpFkd5$bQ(8`QMzV9--omz^Cp-s+6&$lazzoG!AM!X;fR>kd+}T680Uqws1KIa#MTeHNnZ#} zX2IyMJp0cPyc_m9?5-eiClslELDkUbv{pXN(+j?4)yf)Z!l!FjmO(B%a$ee|iBtFJ z8v&MYTm>OSlTyL`*5p%DGV;xOmhthiH0ATp=oZ$|9?SD|rH*`_GP0H&I*9nsu>IJ7 zm1sVb*DI(47l6u}`zF1p2!j+Qfp|;fo`F-*u7_=+C~+1sU2V59+unnm+zudvv{ZuS zXFtvITY~@3PWWrOmNZ%Io;zCd-I=0ZR*C-CO#jLR7i&Ww$f-su$e!g+N&Yx#JY$1; zhiqdAa?io3_$N6R^*#j>0&X$UmBjNosH913N!@vYQo1nbS)H`%&rXYK)Jz~+scv59 zXbKlmIH_L-8?|X}wZtp*O^v6e&|Y+LFJoaNV=XTu_H9eA1Q-W>l$=@=(W(+nzanEMZx>!h*U4vDjD7UgoH0y04}U9GfnUI$#;sf& zN#=FqesXjnp6m?%A`;&8i0P`7^9CmbAl2^Th1v#e&ylneu45GyE6iW_(Dwpj+zL zE#tFR=6vg%BS=+p{N(w8*v*Qxnt}%cX0>@Q^Y73x)qw*kSTcG3B5oRC z;+}tsU2CKap9!U7SJ^)3(@|gP4i&HGbDP%}7X#~4iBzTU@apVUSmYm0x>a?*^2ipk z10pyR#22@MetVq{LrQp|Ho1PS`z4LGUndV&IE1SOrLy&A)X+`HdNYx~#=mh>aFw># z%!YeO4vw_cL0lVg8R|}t{+8R33$$pRD-ha}os9qR1758pRP!Aqx~L)qqwZZ|u7*kL zqP^~gWdqBEEVmV=U+tfaImsF>5kYAf zcR0QD6n!tcHx0uJa0=1^)(Jt5@oB z?|dmDj@iC){%J`vjrR3;IqGbi=laIgfP?Ql<5K4&@I185Dzb?%s{ijl+NyU~>V6K( z>eGE?9M<>DyQ5%zNe|;2a0L_j0|>krr9FS;xQxPq zJW{D@-ee`jZM53w^-kwI?w8ah4&1fkR67Xt)++z>eo_GFdR4{lSMZpXgnA!)8OCki zi>uIIa-MY+UzRZrJGA?}%IqiLzPtJ*rG~DAYlHEd528h7fv%HmuhbFAz@XFB8>p*s z&i4Muzf_rd+T^u)Id`3hRbVg|ITn+jJX&{c*kV>Cc;Y%G&UyIc)d8ncmE!ZE*Yt~& zO7!o5>U<*3C)<99)6(|l58ub`iE~gt%l-Y@u+dUzP)BLjv8?*F$n4&0C@b_qrNy96 zu=Ph>TLHVO1rq`->;~;X*bu5X{-x7Q-PL7NrUmOsXhyKuEGt@$OFn`kUK}%>aZeou z!w|1$tgn)>8B&mQ_ZaUDa{Nq13*MdKe|0Bpke@;xeqO|c>@d_6O zsZeHjO2v3>#Nu-W+jFq_eUfMcpMl=0dOm-6qsx?&hU!3^_|4hJ#PK|~NZHnb;aPaA z6r4iu(;RFzG98DSnH`XPI{ae$v4wU3hd!{*x6=YKanM}sr9vn(z?kAS6e(*rwW=!< zINsc)^B!p&Pm0rqaC@G(XzP1fFWfc%uyHursT%gwCbZb5$+!kJMmrO5M`vu4wmUR6 z&V=RMrLEXSSSjvb^pAsT;~j3IAd%hkFF9EhhrCkESlT zhaYo7dfcvKFMrN1{afSt^=$1srRzlT=zTIK2k(4VJpJwe2XCamx_r9!oz#6a&X&ME zZ)LOBs=O~`($Eqif~jw9(a-tGw)|wCwKMcP5Epo8O2oJV{C_&K#1xeG{;oHAe1cRF zt;9^ZNk2BCN;z(F!0o?4;dx-Awfed)XfI-^V8{O`O#ksc9PtOI{^x0|U{G=sj*XxL zgb1OI=|k^b69>H9U;B7mWo#clcl$r4*8fIvh2yeicp#2{o#o8Hd>_aRbJ6+u{PbJ> zV6*z|3Y{}W8Oa&&GQYjtn~Pmff3Ra_;hRUz*mUOOT3h^z3QBp7*Ct9CfE}B<#B;xE z51U;Id}{prg}!9DRao}c18NiZrc<4An#1h&>; z|1z|EIxiVq9e>O)oH4llRzE!KE%)s=cKPV-BTWOnwo~_h@%-OfK$o-q^o2IGR8gmC z)&-2(>*jnc2fL*lT*@U!Ux1S<`*A%gOUB?4*fOpte(b&}cxbKh-bOlXQTthKGV=H* zgR~ep^FIHfzYEkv&ujM>U=%(hPu-V+l+8gNr!04I_EK9>)xFMseLxzF6Hh&v&i{fRBc-Y+w*belKtSBB(h8X)>}; zoN2cCyWEGa&h`yeNLpX}j;?3~jl55#mo-}Akr zLE>**%g(a9vYH(`)EgsD9zUfnrF7{ZvWj|>jNSF)KYQO5K8XE}>)D>-*K;SkY=XF- zym{}8-}xO{S1jU9v3&DNU^TrEt~}Mu0QnTjTk&D=I?PM*1s=Mq z-5m8d8Xv{bWRzaIc);1MmM1D1X~IBLdI&3)|2c$B0HFG2I@a8+Q`a~fyq6^QAuI1l z26CM9W`6AlD8S18qoTe6d|dJsbuIk4NXs6h1;}X$%}vUMXM-yYfL?z$H}-c8+4T|E zwnH&if*CHGZ~?lO9vv_<23Za$e`gtL9T+_>-~a@?0|5lwa^|9!KYrn!uyi@CZE3if zZisb{(L%r5-sTVg$p_3 zh~AQrmxGq-p8UqC$d;s)ej5=I)&00zi^`SdWyve%j zTi`!44(e=L@aMrhtbIx&a5(;iL;CU9V+y{HyZ+Tje^05zw8+)D)1v+uu}&uW-f<=( zJowygOfMM{zI&0Qp@X1i3P&*KKd&M>KPasKhO#=zhnnMFL8@&{-ps|UcehmlE-wBV z^P3TrY>^C$=*}%oSi9P)3+k(?!%~2l13~2y(c#O`d&F|u;3Kp%#ATov__kyM^i78a zS%uU6-Nfn2Y8hoRJ>?G8#csxO%*SOtq@jl`S&F9Ah>O>hz(pp%U-Dn74@LaeKK1KtfG;GZ z#zMLL3;5JZDz7M$HKWxZta~IeUY$OPtgqWy*EU>AHVIx|^j=~o&_B5xqR8`b!}=x- zK)nAWe&=>Q6_7uGE$ATWVwH%1O{OFxzDWL#VDsP$U6Zejf6u&w%}$-Nb86UKl&;}v zX<(bTz=s^snpD118UU{`;op;|44mzvt6MqRm^4CyZ68!w?v21GGT(qNY&7<^_%9vB zT8$^On9R)Tx~lAr2d4_e!BsVM$~BnB`h^Qk;3-DWnaL>k?pIM45qZHRIWa-+T2aC0 zjXsu6%XY?c7t>}Rs?@c38!+;^rC^2?*!)z|#X+mr{N?S)lX^33KwA)&XKxloS2U6B zN((=|*;WKIV*6Ab)vqIlMi{q^sQ=lcuXJOa+tA!t}hd2(*3OP(X zaM*QRW91h7O}kEJj5X&w^H}RIwX^kVz*jpx7UdjrY;w7*oG#mvIs=@k^_7)@12w>F zzN^$~LDRLLtPrnuNL#cx?`1a#&8b_7p9-E`R5WMrCyHn4#R%`C?5Odbi-SNRQ4kBz zDSBgin@Mgg(EeBvzP9`ES^bIf^ZIqGEfK85DU3DwdUJ~}s)OBu@W4{0t!~iG4?5K*LtVJa5|`p}j8NI_pfbOJdMmRdOo^t6b|gK6Ct- zyLokM4fQP?ANR0X7hXy(KV>{{=^6L-+6si)4hN0H@xh!tPP?xqS}?a$2ZoH z{FuyK66{fVqSw+eCi@xxH`wk<@N2Y-qqB_-gt(-Fu)iIEXlq68{G`GD2G{=W?Xs=&~RM?@Yn-y*z9`x*)&K0?k7RlykLI z$1V>j_QS23I6Yd#w=~sk6}5Q?So3)>v34FN4PFWJHyC-;u!oxCRQ+r{7dp!rAZKOH z_I!69{#qA~(O#9Qzqq}e?~?)?5aV8sxLa)C8M76Vpt$xibXm$H)5-r!U-Y{!#K4N* zAZBJWkWK9Fsc|Z7)DfmP| zZ0)?jAy0TMa0p=`_**iOnN)!632rVZzb*rzBD-Blj{K4O(`kaea#SX0W|HGfuU(_q3u8IM?&6kuE$azJp>nc}z&F?8Fc@lX z1pwi$jTPU0^c9=u&ADlo#=9m zYYuy?$fl&X!Q*LRlUJbS;zQ6tw&wjsQVU#Ku&-b9tYD}YZXxV8%K}O!@u(-k1D74| zkR$-mcKTyZk9$@0*4zgMta6zISpIJINW+`*3&n+5wmnY68e zYs4s`Y8Aj)k<1{-l zua>BHs%mO!i+;6`$+=|TdLf5$WLssSR#;A9N40GGqq^v@Uaga(R0Hh3fbPvSh?_K) zbVvCLUc*M~QmTNHS(k_$4X))bVbNMRU(|pO06d^>Fhk?;*azH>e8++O;oJQSfU@D$ zb5`(Am;e@QeXS1MAh^j`8>i~b?bn?W#tHD2Z#Jc&iLv*!4~%>9LE45_j)^(+X()>& zY=HO;*I##^lq3{ZBp-{|p)jENM(U*~xOhtF5kx7=Q$Jo(bR&u8S~qccPAh9I(S#Xa zdG+#E<@2czugbM1_hqj7zu}{ZVypUAD(_`Ry8cl+xN=bJza*xo;iGcj#3SfaHV_~D zsIDk%s3-y}sc~X=OGA~W`a%-xneP3XmNzm7#mu$TnYCC~AC}uft2%_8(&Q6mw<0h{ zb-kD#Q+$TD2NV*0x~sm;R$_D4yua4a&{_|tA8>=N^g5mQ-%alPl;rJ3bRo;`;+)&9 z_9=wuzQ`cDi8GCZ!k>i6B*ca!0))>G>JKf1QR;<1$b`ckfRIWD?|Fi+i=uwWACm1B{q}fLq1}v2G*r zgIOTOd%|f@S-k(p=g1=e>w&XACay-{-kNs*0bSqeTZn%F&2v%ggWF#nIjITDZMV?P zQ>4%DN&BINuqKc_!6#E`{S^C*PQMbwEAa*>)S@D28`fOtG|+6**0y~Tf%d)4GT$%( z(`+oMZ|-g0sBzGtkSkxHq&@ z;r*T4&=$|x%bm6S-%t&{O(ba!WYX>L@O&hhpU>B%)xKKN`&Z)1TEPM8=C%Y-Db1jE zZ?8hheQfI5ca3DZ#IK~AzmNe2v#QS}J`LeV!khePRaHLR)`I6XED$&C{EJ%exN9q% zA!yz*7=7*6d9m z2fV?<-mWbvM;$LXQWmZ=R8qq_0&RqiXB<%;(+b|SvG{L{Eonwg3YyB%v;U{$` zhDrZO$s4d+I4^6#na*g?D1cpt3=fwF34DA?*b^h$EL-VE!G!fq|4L~?F}no0qGpi# z>9)O1D=v5AB0?T%`~#h<5l_5Uqfm3wp{0~4R?}3~JE0OP!>M}41mW_GRW&N3RE{x4lZ{g)UZdlOyplTYHcaEQ%&YEw)vU4x(o`-bb^?eA#hQJ zfmXE#@}U88KT?*@T3(xdkWw=RI#?3(B~5mk;Xigr>$KYZUydJj>Jb8{c&_~tr<{L` zqT$2tj(?@fc3^fcGBO4+4AuDutn-wcd7NEhb7^t2#=JK>#zaVu^|0r_V$1}@StYIt zIWf|^f*p~h07uOzdZH-uF?JX;5 zjVv<^?2wz+rH2K45+Aqf6rmj<|E{!hZI=9oyy*qkIkR-omG4hXxD6WP=AFtLIL-kI zur@rz)Oh1Fqe#+#7ZA>Grqs=q$!oU|{y0z*92PK&lV73yF*R_rYL**%-47Fko?6eC zBf7j74I_@{QHFhA@;SDXy#VW_PlpS6%cqOaRzeI1X!KEzQtM>j2l}shi z(i3$tM)DO$U<374>?rMj*dI=eMaHVs-~V`WN?ZxN`hGb)27n1zThYVgQOJDFc$9Zi(Yuxr=UR zwa8O-B|VnW04~;=hS5T&bGCZ0f>^;TiA;VBbhe&ZnaMKe5T-A(EjInu1)2yTFHG1Z zF3~S(PhzJtL4URzx10=lUD^E6g3YF5ZvmxY;^cT8U$c${Cx>DLH)fGvLs${axHC3b z1!}YM!=z@u6C5pi#a;>aRsHc#bjJ0ydbjR$de{T}nP&h2ho==KT_9b(;wbDY5nj%( zP#Zw?Gg6&}_jrwpkI~jhH$Yw%HUVA_e#Jiq*-eoV{0q3A*^C@EUOa*(<0+IwhF-dm zE{03Cw2go@!23L;AMcDa9B!U5>~-MlGdUw|*r!HwT5w_fe?k9r>l+!J17b2nokGPH z-e)Lc!>+^up+I=wDzUV@Wh`;Gv0-h^)F%k(YB}HbwHL!o#-(p&!7=4Meh!NRkYz6+ z5MSTGEg7JxDY(at&t7|toPIE+x zRyIF-0zx#jlZPF}4k332jj#U1j+xkWa?`@YmRCw}cuT;yGpeHau_@c2rHd5_1Xv{F z>!b3jltagW9dEO+!~($xiD#nQoSmnH>=IF{&doLzn?`K!cV+ecNK6JQYxm5 z(Gldg{Q{l%oV6xW#w)G#$seH~3d{9-blF|z@H~jhy02CH@}S3|C2mCZ6uZ;?E#FerzNP}{(?kYsE%1S*?e8KcCodFF_3=j_48@bYhtU*CWnm` z&V14e!L+MS1OiCdTrF%Q}-+r`aKu#lo8a{v^Xmly7|C8xX|#yb&bM* zcGuUTDS$#WebR6L@2DKly%N)d)y^uX>lJ0uh1%yeu2q$iMqQeJ-z!it;vbw6F9D~l z?_6^TP=h^CWO>^EqOM*{aF0B(e;Xnx_;+~b%m;@{nlMfii2Y2#{1cJ}C(0u&JetbA4drm2(R8dpBd{6^n_YPS`1`iFAr$`16uEPr1&IkZ*F zZ*-bX+i%AF(0$b{9WV}8*$p2#*~CBdJY*8338o#lcbgBoaXx!ooT%wWSLCU84)m%DtoM~yh2zWj=L-u$l zp>+GdWG7F2;6UqL?e{ILOyGn{qeFqp2kZVuxwTBDPnab(&~ zlnbATAC*Zgr5iXZZEu7GNACPH6Kqgbm1_e<->>uMCy0lZs*XCd0R&(E1{H z5_gMXJcxntuQB=;)_=pH^~lM%9w$SuD#0mIH|{U|@Iqi;k5d!{mgxKk?q+OZDffI2 z{Irf(Q|~{!6(l>n7j`%(BS=N+^tv12R~FYG$I2hP1U~87HSpUF%-3Y2aZ z$EkP*OSH1t`kO0nk>0X&Q`XHVtKg92RNUHll(j=mQQ^2;Z21R#U8BdC_FytNF4zg6 z0 zO;s7&MW2)z{`(U*OtX`+J7E9~?WNNr%$fNrQ+^O>x)-v3^?lH78=Ffnbb1$&#Mbdj zFjV`~e1dHeSe;L(rx7VZKR?qtvP?h#^ySD!M*6XR#8spT z^zDcCbo|6HnlN267fMzEB3LQpX#z7yJ7~_Y-MbYsPIV#uCkE{!==|h^z5*r?ZDkZ- zFfSa3Xf|z(Z?v9)U3}k4xWSy(FCagcxKeh*rQ}$*4dJ;&CD+Og4H}f(9_%V`aAUP_ z{KLu4aQE9!KL+p>8Ms@1o8Ud_hLVo8i}t9%Jcc*Nw7%P<6I~|4Gp44fz7= zEV*nre=!L1P?(2DuaoL>A>7S~l?VhXmG%PS6dka2xUFvx$d$u8Ow2~o*)*^aW3j#s#eT-4Q0NYA(b~YmI`~?wtYS z&@y2|S{p;z8gYgREviesc&Vwv(GMA`{fo_Z;66#yp&8eC{+#R+G{~5~05U<*=}!J? zUOO0I9(GYmziay6V>TmuWI69-J=jBnL(BYKn83+4nkjPRBHvCm2KE%whdVuLN-Wp1 zZi<1-oQ2M0rp(-4rwTpjCKb%0yPMMfXtp^9G<33q{0$`ZH$Z6=tONf`dDoGVS&$yQ zf*O__n|+77Dw3%(SFhCT7F5h@_Q%Q%fo3w%y6H~Urvcjl1HroCaw~CcEzJOZGst#W z=S0oQceQwKFZK}PVxVV8nmjcR?F^vEVv4&lGjaXf3=oW(@(|$`&xj`$HdnJKUBHW= zbe0r)W1uFQ#_aP!b{+Rb%K6Ju%nS5ICtNXJe}aEUD8PP?O&4v#O`f0No#(xlCp2|$ zA6BlKthce`4D%D%_r9?;k~aId9D^3ybnp%Q9rC3?2Exyhku{l$w89UKMb_v!DZOO^ zEi@>5BnBE#-{Q)-(#R>RhsKe%ziSFNd7%{2=NVXKLE7DUm@vw>9+vrlK(84Ta0FHx z3fn+SMQVw%u8mO8oF;r_I1xtX>vhW2Fol(}1bO1^r|iT<;B38SK!jeJ&{K%zC(NBh z&PlOL_~Wk(g!j!@%3~H^?vvJD$!gZ~Uh@w{7j@%WF2on(Q~0rTD<;63Q~>L5sW>^` zOpQT|iFv7JQ0=kdFxs%A;8t)){kIozIFfG47`1?Nkc$p1Y^FGcijRXh*&=zOQcr-? zkU$}}LQ=G$Q(*rkz~Vb8L9{60;1ZsO-0IwmfDudwzRkgt#UE|}Sj$LY)>EE<#Mq|IjPmQ3rN!)R2PN7MG1lv?#_gyMtHmCG zeC-s$QgZBJQGz2M*(dbwCx-B`wO!+y3RkDz!=n8%ve)LzGm?%0VpP+ItTk7PFs@ zldv5yG^iDLkB3-`^pP+Br;jkCY7d3nyle36Fd}lTNdlgiM>;L|V>o;5;Of~(v1N{J zQhJDX=639rdmrC7y}wmT@_U9GH!*lGahPq?{xrktm|$eb7thsLXBD8@b%WWH#dl%B zFTjBjqpy4|75Wo=Hq)`j!rL6*-H&c2yt^_ zS|`+ID0HU@!!1-?g)(%l#by5CT6S~(0(^P9de-yQMps)Rcaa|N;ba*Up7mKSsFW82 zr0F?ETJWMc6($^G%m*5{3I0WeV>O%6QHV&%8_zhP2Tyo4iQ_BGg*Lwz z0o$zJrB;?1B}#Rbk-+Z57N-24&M^h}(2?Axqr z{<2K@F#Qqb^Fg+JA4aG)A}1b(k!*}zZV3v!=B zS3luT*AdS!0u>oiN<-T%&#+R>=ny~qrSE_NEU@6HmD$NBdR)FH_x*6ga7>n+e5IMJqwURq-Oxzzzeni(Rh`?^A_w16{RG8f zn*x*V+n$QS56lSk&+Nur2lNt*aI4oTPaI3!!5kX;;uvU9Qt=>qaFJbRgGgyF*k)+u z?c?a^AfifeujDsTt&o6;%?hf6d@QxJnPV`l549ENug0Gk*C3QIj`iYZg0(4J7j^pk ziFNq9yRJ^1uwXL{XlHaZ!Z^Xt#sK*eyEsTDJ1{mRx05jNf>k9p+k1Z8@0pX9!|dqf zn(H8WPQ3ZO_*jJ2+44lq;fe#G<ujR_)k%TM&v)ZCFIDFKl zB||=UvFg=#5N(8q`8tK_@#sP`=h1G$Wb?phDN^WhN@OZCVn1r}IdDrnL%tJ0w+k!? zYqt`WA(RK=XIkP5wkg+*{$-z?&!7)v@on$(F2nS>8^Z~3=Y;NtxwN|9K|)VB(h0bE z_p+C2)=;y{A|pvp=r9Zy!Qr3dUFxmYSngGjxb5=<_RDdnqsBr0h2V@hh|Jl5lZu_h zTxn2_HqORE6zA3V-~OMHYP)+jL?$1<8SvwIKRo^c$M)yk`zO4QK=rFZqKg<8r=E(h zJqXu>zC{1`O$JMr07D6n)C9aGZTr43N$~~`8M7OUBGlVJ%4E?1vi^|97Ebw(2=f4x z#NbKaJE;4bUFVf`LCxWW6_+pFxHtzoDPEEM-q=!&rm@9l85jww6fUZwR}=5psKOpW zCrHVZ1n=OYp1GR1esM8nP|N?xH-@T&F~TAoy{2CX9m{m7BE8Ucpj&Wk-voc#Ok!2B z2T7bzXvk6ab@ZFaQdO`>5Pf1*Nh~Q_mkIQJVi;(Z$dG*smGIeI3^=G1RGQo7aZC2Y z!e>RVFX#7`-irL-26;^E@q4%3?Ek!jG@VO7At_+JQ1)HArV&CuFzzlN*&5ASW+%4; zm$SFE#Sf_Cm2E|Bh|ljbdc6GjW%Hrhm%hWN<4_e-51w3#11^gN-I;rge*8u&sKvtd zGrt0)CPog5j-5(qmdlVs+BSTIA*B$@rtW)JLsO>Za`w13e2-cCz{iobVy7C7MVXLUj1_y>uSAI%-THzrcHqRa-86mFd~%8wocdWo~CW@cstQPM<%xX|=N;5#26S=+}pObh#Z{Mc~mb z(E+`0FBt*X7lbcsLsWNHGFtnMBd&jue5vwcm-D>Z*=^8C5ecA?bs9Lm+ z8a6@bDL5=D7%iapP28kX01@q5x<(v%XvyS@`t3f#U=|Kq;2{T4YPaExnN$gYpNd}4 zDdDZ`o%HjJ_;<@n9mIR`4w2r{gfew@QZ#lfxk^cixF;69Oo1Ok_J`u5u;Aza129;*06HlGW=ge;JaXr>!JrPYjfv}Xuf0scDEa=c3{$F5`OI1 z#&y`W1>6WJQX|g@DjKY}?hczYRf7DkU#2&IEhPvxB0U+68!Hzzt{5P{nI!>soapx&BLU<#LVn z%IVZs^-YX3FC$pyv#j@u`ufG4r-VqEwLJx=1O;q>sU$sjt)L-nYc2wO|ISL-t#Ylg zK6&XSG{887IU0ZrHsA0?2R4B@wfMSP4o9^YCKbJJ8nn6Jng@;(o&@8t{`&b!V+H6N zirEIJMEl^K!pCp5qj}mzC3@c>1+c8mPOhtlnK{~u_Y=xNZ!p}q6rLWQH_oi_v_A2r z&@-ODcD_Hzh^fNSZj&2Y^Fbpz&vtcb)MG&SJWQe7mG&}2UZ>)a6M&dvkZl8Q#zj3A z$wU=)oyAU3i#r6XD)SRy2s8KrZTH+SqGi&<^A-T0&D_>EtYsBl87 z8e1mb3jcSm7@p%|PrOwHmhq1!I;~RUP1Y!!+XDWa{B3=eMdO!WijRs?ww)5Z*>OZJ z7R|WHnB?>K-Z4M4*w%1aT35}zPU{%g#Io%$U1_Q|ul4fL(@@*5B zn1E>d$@!il<9?kb)BQetF*L98?0bWgYF)rj9R#j%kV9Xkmy7#oSR-)D8P}!A3ax8Q z%2M&&yU&$>L}smnF84{p_cLI?uNmWWJhnV>By4+cXyp|NtLr)p>q2EuNXPIq=F+^` zOJN~Md(UF?cva(`PDV@Fr9+&PGEu(=Ove;Ucd<2v1G9zJf9$V(_=R*UB|D@30%&6z zEX-Cag5ZV|UDFCvirOo@$EGhwT_fFBKsES1Kda9An0)*?Nt~NVw+!4?_=Yz*kLZwL zHVAx1-`4yE2G6f4r(A#9+ujyU|Evpxfb0rVlmGTxQ3RU)3ZbL;vlS+2t@^HGK{7cY z(O|&}c{^$?V=J3Kbt%a3<^%0FLN<^If?l#^@T>#Nkov0|4QPE~6toy|1w0luIgqTP zlqo8XiE^~uZS!POTdznsdqFiHA6MP%8ut!DKC1KI{5$m#{TN&%PBps^Ssm^Q*%6er z53rcFg)#JEN%@&gK^Nam7B!4b+rCWf8Xvw7lsuaO-xvLX4bM$VXQ}Tta}a+vTv#j8 ziHB5iIWQZ10cuSgng>DAG=INAG!$*Jd$?kz*`koA%^BR3ie`%&c!G~DXv%A0FSpB_ zp0ei^kuM4E%zs=|9+hibsprJ~r#Y+L|J4&vgL&@-4hg7vcEVSCe{5He*^}UBzrh=U zX9>;sp4q@J{x9l<*#O#V_oO6D!7`4$LryX8wAxgTOo)&FoB=UkZCg+AxnUIOmZ!#Focb6Br@V5Z6-gV+R&OOQKwAoEFP!TUwS&zS zwz(7ssTd1l26x*TG-)+sO$Y6ZeASdgSEw{c7b~768eTIBj=+m)(A{JENG}k58)pMg z1yKh`K4K~tp-IW}cc)JDl|L8?HlF!?dxK0fL!V*E{4O4D+8ib77d>S$1yz_#_j~4^~)0BRkvOl z09d-GX*wy!V@j+fp1M;94|H8Iw7Emy@uKX@VAwKg`a)JW!jvp)=6n~q_PzQ3GU)4e zxi4Yfh^E`7=xtLb`J)%75R`;r7zW^Bj!^SCZ?~y$W9u4>O@)y)cUDkMfaV#jDhD31fL_uT-qxXvks1}2GBFdqeJOLWtg=|uwn?e+fMh^3u#;Ms94cRI zlEj>2PpAH@tNci1Tm8sSYhSzv&io6{nY73LR1N4}vxV1Nue!lG1@on?p^WnPz}#8` zQWeW6h(A-8e=X~u|D~aUvaEGM{#w1jkr9EwfA7H&FJpgC*iqthp`2miFE2uNKs*gT zn&g6*a0JxPuI0Ylrg(kYt~bNH_7^)^8PRh1{qiBKfB2Wx)cT^*PoL{Wy2JV%;)cc- z$Iq}??{Dg4UhRHgd8Yi#UzI8=pn)<{9}z~7K1Qy=IA-CSDobhIO0?TH*YOIdC%^zj z521{3r;xC<*LLbUNWtmOO%f=rAaqc*CD^#Fs*3%`8{Mv=o&2JH1rnQ!zuv+&)RgEvLQ4e5q)T zia{;1JJeve4W2)G%VD7WG!t0_Zr7d}r?mb-gvk+^nC0=UIRM*`gi6xIUrA|B5xGc4 zt)X$yZ^W$(^jeOSUMDxqZ?IXPYXEsNv`Toeo(QEgjK4>-9xiuCb}7GLw}fp)8e6tG z>11qidFI9EHy_=hRlFAX3tCdnFAf(3W~N2*rlDkxRCD4hSxRE5StdTq4UYeuTTcOI znmiyo6wqkA<&u@2TuhEMF@?hk8}9p2jO4cp$eeR_C30Ls+Fz}t&CfQ1NB{ly(3Nun z01Zf&H7;!}pCM9q$%uS*cZdIH@tJ@2A!YTg#YRIY-M5L$h!k0bTN?CarrAveW8eNS zV0{^PM<1tmJq%okO&^lJ;-IWoULTGvqk9KMSP!p3aD3MqN$8c@F1n8VaE6;czMBZo zCJsM4Aa!|Qo-bD342&!ocDaCyd13!&0cU<_00S)7n%m%l2zSwcnTZ;O@Gc5G`xz=R zT8LbPUU0V(g=;ME4fX{pZk``jygSn3gA{PcuL@P&kzbGfx=}g|GRM%=4Tf;6k;}$ScpCVY7(D9ki;Rj>^w74#Cf=vhE=7LSL^>By<8HCa#%u?@-G%$75{H40fOWx_tuqPjx9LQUCy!D@64J+zI*DhqJ|FAe-4fk> z(Gfeu^hmlpI?m0eOH4c?J*?2yPSjj{22bL=Y$_-(e^1S`>ZH8?blVX@eMx{SO>VuH7V5Hw<0 za!Dh7odR~EoPzR{ydlrF)3W6LbIeYdOD`d~V-)DtLk4 z=1+cJjBR&%IZ;-Bc9^v#wx+Cjs%xv|{5N2vIFK;;d<0uoVPZNUju3hSIA@P&*f*(1lt9zup4!gm$brZiD6RIFVoVrn)c^VQ9MgN3_j*t z3FB1u@RVo=Z>Ll`?4#v4MxeK7aqkypYT0bl1z<=rOzXwU_-Xz_Ad1%OL~VKR;eWCR0vz8NRqcy$YBmi5+mhoOUjbNawz1mFxvIz-s$`(GNwZMyk?Qd?$iaQuI!saF@^v1Jfx_e zLKq@qF7uD~s{#ui#L9fiA}6J&tgkYZgdf=BDX=tf!dMJZPcZgSZ5iL~F@X{HhsdX( z&bs96ytasMOzBGau{&oj=g3N9;^H6eAgUx&zKIj1AzJ)8+X@W93RYF5J}*%0AU*5! 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