From b08b045627705f3fd27b9200db0bdecccd38a492 Mon Sep 17 00:00:00 2001 From: AlexPalaz Date: Fri, 24 Oct 2025 15:27:04 +0200 Subject: [PATCH 01/13] fix/517: checks on invalid categories (#527) --- src/app/components/EditorMultiselect.tsx | 16 +++++++++++++++- src/app/linter/index.ts | 7 ++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/app/components/EditorMultiselect.tsx b/src/app/components/EditorMultiselect.tsx index 8177e8d1..395b7038 100644 --- a/src/app/components/EditorMultiselect.tsx +++ b/src/app/components/EditorMultiselect.tsx @@ -25,6 +25,12 @@ type Props = { type PublicCodeData = PublicCode | PublicCodeWithDeprecatedFields; +function filterValidValues(value: string[] | undefined, data: Array<{ value: string; text: string }>): string[] { + if (!value || !Array.isArray(value)) return []; + const validValues = data.map(item => item.value); + return value.filter(val => validValues.includes(val)); +} + export default function EditorMultiselect< T extends FieldPathByValue, Array> >({ fieldName, required, data, filter, deprecated }: Props): JSX.Element { @@ -38,6 +44,14 @@ export default function EditorMultiselect< }); const { t } = useTranslation(); + const filteredValue = filterValidValues(value, data); + + useEffect(() => { + if (value && Array.isArray(value) && filteredValue.length !== value.length) { + onChange(filteredValue); + } + }, [value, filteredValue, onChange]); + const label = t(`publiccodeyml.${fieldName}.label`); const description = t(`publiccodeyml.${fieldName}.description`); const errorMessage = get(errors, `${fieldName}.message`); @@ -82,7 +96,7 @@ export default function EditorMultiselect< id={fieldName} onBlur={onBlur} onChange={(arr) => onChange(arr.map((e) => e.value))} - value={value} + value={filteredValue} data={data} dataKey="value" textField="text" diff --git a/src/app/linter/index.ts b/src/app/linter/index.ts index 10c6745a..5d7eaf88 100644 --- a/src/app/linter/index.ts +++ b/src/app/linter/index.ts @@ -16,8 +16,13 @@ import PublicCode, { defaultPiattaforme, defaultRiuso, } from "../contents/publiccode"; +import categories from "../contents/categories"; import { removeEmpty } from "./remove-empty"; +function validateCategories(categoriesArray: string[]): string[] { + return categoriesArray.filter(category => categories.includes(category as any)); +} + function sortDescription({ genericName, localisedName, @@ -79,7 +84,7 @@ export default function linter({ releaseDate, logo, platforms: clone(platforms), - categories: clone(categories), + categories: validateCategories(categories) as (typeof categories)[number][], usedBy: clone(usedBy), roadmap, developmentStatus, From d09defa7fc28469f89b4c0782cc358e3af80580b Mon Sep 17 00:00:00 2001 From: AlexPalaz Date: Fri, 24 Oct 2025 16:32:16 +0200 Subject: [PATCH 02/13] fix(#524): add date validation to contractors (#528) --- src/app/publiccode-adapter.ts | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/app/publiccode-adapter.ts b/src/app/publiccode-adapter.ts index 057d6811..382f324c 100644 --- a/src/app/publiccode-adapter.ts +++ b/src/app/publiccode-adapter.ts @@ -43,12 +43,40 @@ const publicCodeAdapter = ({ defaultValues, publicCode }: { defaultValues: Parti } if (maintenance) { - const { type } = maintenance + const { type, contractors } = maintenance if (type === 'none') { maintenance.contacts = undefined maintenance.contractors = undefined } + + if (contractors) { + maintenance.contractors = contractors.map(contractor => { + if (!contractor.until) { + return contractor; + } + + if ((contractor.until as unknown) instanceof Date) { + return { + ...contractor, + until: format(contractor.until as unknown as Date, 'yyyy-MM-dd') + }; + } + + if (typeof contractor.until === 'string') { + try { + return { + ...contractor, + until: format(parseISO(contractor.until), 'yyyy-MM-dd') + }; + } catch { + return contractor; + } + } + + return contractor; + }); + } } return values; From 7e24eff91e2ff99d6d9e74042b1079eca98ba795 Mon Sep 17 00:00:00 2001 From: Valerio Date: Mon, 27 Oct 2025 12:23:10 +0100 Subject: [PATCH 03/13] fix: show it.countryExtendedVersion only if it is imported and its value is wrong (#529) --- src/app/components/Editor.tsx | 47 +++++++++++++++++++++++++--------- src/app/contents/publiccode.ts | 3 ++- src/app/lib/store.ts | 21 ++++++++++++++- 3 files changed, 57 insertions(+), 14 deletions(-) diff --git a/src/app/components/Editor.tsx b/src/app/components/Editor.tsx index 5cf4ba21..112b983b 100644 --- a/src/app/components/Editor.tsx +++ b/src/app/components/Editor.tsx @@ -22,6 +22,7 @@ import mimeTypes from "../contents/mime-types"; import platforms from "../contents/platforms"; import PublicCode, { defaultItaly, + IT_COUNTRY_EXTENSION_VERSION, LATEST_VERSION, PublicCodeWithDeprecatedFields, } from "../contents/publiccode"; @@ -33,11 +34,12 @@ import importStandard from "../importers/standard.importer"; import { CountrySection, useCountryStore, + useITCountrySpecific, useLanguagesStore, useWarningStore, - useYamlStore, + useYamlStore } from "../lib/store"; -import { getYaml, collectRemovedKeys } from "../lib/utils"; +import { collectRemovedKeys, getYaml } from "../lib/utils"; import linter from "../linter"; import publicCodeAdapter from "../publiccode-adapter"; import { toSemVerObject } from "../semver"; @@ -163,7 +165,7 @@ export default function Editor() { } = useYamlStore(); const { languages, setLanguages, resetLanguages } = useLanguagesStore(); const { setCountrySections } = useCountryStore(); - + const { showCountryExtensionVersion, setShowCountryExtensionVersion } = useITCountrySpecific(); const getNestedValue = ( obj: PublicCodeWithDeprecatedFields, path: string @@ -215,6 +217,23 @@ export default function Editor() { setPubliccodeYmlVersion(publiccodeYmlVersion); }, []); + const checkItCountryExtensionVersion = useCallback((publicCode: PublicCode) => { + const { it } = publicCode + if (!it) { + return; + } + + const { countryExtensionVersion } = it; + const isCountryExtensionVersionDefined = Boolean(countryExtensionVersion); + const isDifferentFromSpecificDefinedValue = Boolean(IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion) + + const countryExtensionVersionVisible = + isCountryExtensionVersionDefined && + isDifferentFromSpecificDefinedValue + + setShowCountryExtensionVersion(countryExtensionVersionVisible) + }, []) + useFormPersist("form-values", { watch, setValue, @@ -222,6 +241,7 @@ export default function Editor() { (pc: PublicCode) => { setLanguages(Object.keys(pc?.description)); checkPubliccodeYmlVersion(pc); + checkItCountryExtensionVersion(pc) }, [setLanguages] ), @@ -334,6 +354,7 @@ export default function Editor() { reset(publicCode); } + checkItCountryExtensionVersion(publicCode); checkPubliccodeYmlVersion(publicCode); setIsPublicCodeImported(true); @@ -351,7 +372,7 @@ export default function Editor() { const processImported = async (raw: PublicCode) => { try { - try { getValues(); } catch {} + try { getValues(); } catch { } const adapted = publicCodeAdapter({ publicCode: raw as PublicCode, defaultValues: defaultValues as unknown as Partial, @@ -671,15 +692,17 @@ export default function Editor() {

{t("countrySpecificSection.italy")}

-
-
- - fieldName="it.countryExtensionVersion" - data={[{ text: "1.0", value: "1.0" }]} - required - /> + {isPublicCodeImported && showCountryExtensionVersion && +
+
+ + fieldName="it.countryExtensionVersion" + data={[{ text: IT_COUNTRY_EXTENSION_VERSION, value: IT_COUNTRY_EXTENSION_VERSION }]} + required + /> +
-
+ }
{t("publiccodeyml.it.conforme.label")}
diff --git a/src/app/contents/publiccode.ts b/src/app/contents/publiccode.ts index cc023d7c..96d84786 100644 --- a/src/app/contents/publiccode.ts +++ b/src/app/contents/publiccode.ts @@ -5,6 +5,7 @@ import scopes from "./scopes"; import softwareTypes from "./softwareTypes"; export const LATEST_VERSION = "0.4.0" +export const IT_COUNTRY_EXTENSION_VERSION = '1.0' // https://yml.publiccode.tools/schema.core.html export default interface PublicCode { @@ -34,7 +35,7 @@ export default interface PublicCode { export interface PublicCodeWithDeprecatedFields { monochromeLogo: string; - legal: Pick + legal: Pick inputTypes?: Array, outputTypes?: Array, description: Record> diff --git a/src/app/lib/store.ts b/src/app/lib/store.ts index da48c309..e8eb13d7 100644 --- a/src/app/lib/store.ts +++ b/src/app/lib/store.ts @@ -1,10 +1,10 @@ import { create } from "zustand"; +import { persist } from "zustand/middleware"; import { Warning } from "../components/WarningBox"; import { DEFAULT_COUNTRY_SECTIONS, FALLBACK_LANGUAGE, } from "../contents/constants"; -import { persist } from "zustand/middleware"; export type CountrySection = "none" | "all" | "italy"; @@ -24,6 +24,11 @@ type YamlStore = { resetYaml: () => void; }; +type ITCountrySpecificStore = { + showCountryExtensionVersion: boolean + setShowCountryExtensionVersion: (value: boolean) => void +}; + type LanguagesStore = { languages: string[]; setLanguages: (data: string[]) => void; @@ -116,6 +121,20 @@ export const useYamlStore = create()( ) ); +export const useITCountrySpecific = create()(persist( + (set) => ({ + showCountryExtensionVersion: false, + setShowCountryExtensionVersion: (showCountryExtensionVersion: boolean) => { + set((state) => ({ ...state, showCountryExtensionVersion })) + } + }), + { + name: "itCountrySpecific-store", + partialize: (state => ({ + showCountryExtensionVersion: state.showCountryExtensionVersion + })) + })); + export const useWarningStore = create()( persist( (set) => ({ From f7ada35b48c861b883b8fd90a3c9efa42eae7059 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 12:28:17 +0100 Subject: [PATCH 04/13] build(deps-dev): bump vite from 6.3.6 to 6.4.1 (#523) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.6 to 6.4.1. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/create-vite@6.4.1/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.4.1 dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 440e4d25..37fea29d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,7 +71,7 @@ "tsx": "^4.19.3", "typescript": "^5.5.3", "typescript-eslint": "^8.11.0", - "vite": "^6.3.6" + "vite": "^6.4.1" } }, "node_modules/@adobe/css-tools": { @@ -18949,9 +18949,9 @@ } }, "node_modules/vite": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", - "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 37622b9d..12abac72 100644 --- a/package.json +++ b/package.json @@ -101,6 +101,6 @@ "tsx": "^4.19.3", "typescript": "^5.5.3", "typescript-eslint": "^8.11.0", - "vite": "^6.3.6" + "vite": "^6.4.1" } } \ No newline at end of file From ce2e1b9f22abe0769686f3bcdcc1545541d2a0be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 12:29:35 +0100 Subject: [PATCH 05/13] build(deps): bump actions/setup-node from 5 to 6 (#521) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 320e1858..a5652412 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: 20 - uses: actions/setup-go@v6 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 519fbe26..a11b260b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: 20 - uses: actions/setup-go@v6 From afb77d2a94ab204830eabb9dd01818b76710110f Mon Sep 17 00:00:00 2001 From: Valerio Date: Mon, 27 Oct 2025 16:49:03 +0100 Subject: [PATCH 06/13] chore: coding style setup (#530) --- .devcontainer/devcontainer.json | 69 +++++++++--------- .devcontainer/githooks/pre-push | 2 + .eslintrc.yml | 2 + .github/workflows/test.yml | 1 + .gitignore | 1 + .vscode/extensions.json | 11 +++ .vscode/settings.json | 14 ++++ package-lock.json | 115 ++++++++++++++++++++++++++++++ package.json | 6 +- src/app/components/Editor.tsx | 121 +++++++++++++++++--------------- src/app/contents/categories.ts | 6 +- src/app/is-valid-url.ts | 24 ++++--- src/app/linter/index.ts | 17 ++--- 13 files changed, 273 insertions(+), 116 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7bc5e2db..41ecd814 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,38 +1,33 @@ { - "name": "PublicCodeEditor", - "dockerFile": "Dockerfile", - "runArgs": [ - "--name", - "PublicCodeEditor_devcontainer" - ], - "postCreateCommand": "sh .devcontainer/postCreateCommand.sh", - "customizations": { - "vscode": { - "settings": { - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "always" - }, - "[typescript]": { - "editor.defaultFormatter": "dbaeumer.vscode-eslint" - }, - "[go]": { - "editor.insertSpaces": false, - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "always" - } - } - }, - "extensions": [ - "dbaeumer.vscode-eslint", - "github.vscode-pull-request-github", - "github.vscode-github-actions", - "golang.go", - "firsttris.vscode-jest-runner", - "waderyan.gitblame" - ] - } - }, - "remoteUser": "root" -} \ No newline at end of file + "name": "PublicCodeEditor", + "dockerFile": "Dockerfile", + "runArgs": ["--name", "PublicCodeEditor_devcontainer"], + "postCreateCommand": "sh .devcontainer/postCreateCommand.sh", + "customizations": { + "vscode": { + "settings": { + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "always" + }, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[go]": { + "editor.insertSpaces": false, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "always" + } + } + }, + "extensions": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "github.vscode-pull-request-github", + "github.vscode-github-actions", + "golang.go", + "firsttris.vscode-jest-runner", + "waderyan.gitblame" + ] + } + } +} diff --git a/.devcontainer/githooks/pre-push b/.devcontainer/githooks/pre-push index da6eea44..d0e7fdc8 100644 --- a/.devcontainer/githooks/pre-push +++ b/.devcontainer/githooks/pre-push @@ -3,5 +3,7 @@ echo "Git pre-push hook" echo "Run Build" npm run build +echo "Run Lint" +npm run lint echo "Run Test" npm run test \ No newline at end of file diff --git a/.eslintrc.yml b/.eslintrc.yml index c3d02ea8..ac9e346b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -6,6 +6,7 @@ extends: - plugin:@typescript-eslint/recommended - plugin:react/recommended - plugin:react/jsx-runtime + - prettier parser: "@typescript-eslint/parser" parserOptions: ecmaVersion: latest @@ -13,6 +14,7 @@ parserOptions: plugins: - "@typescript-eslint" - react + - prettier rules: react/prop-types: off settings: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a11b260b..8140bbda 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,4 +13,5 @@ jobs: go-version: '1.23.9' - run: npm ci - run: npm run build + - run: npm run lint - run: npm run test diff --git a/.gitignore b/.gitignore index d535886c..84a4515f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ dist-ssr # Editor directories and files .vscode/* +!.vscode/settings.json !.vscode/extensions.json .idea .DS_Store diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..05dd7e61 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,11 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "github.vscode-pull-request-github", + "github.vscode-github-actions", + "golang.go", + "firsttris.vscode-jest-runner", + "waderyan.gitblame" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..6ccc09a6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "always" + }, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[go]": { + "editor.insertSpaces": false, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "always" + } + } +} diff --git a/package-lock.json b/package-lock.json index 37fea29d..d1957a2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,6 +58,8 @@ "@typescript-eslint/parser": "^8.11.0", "@vitejs/plugin-react": "^4.3.4", "eslint": "^9.13.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-refresh": "^0.4.13", @@ -65,6 +67,7 @@ "globals": "^15.9.0", "jest": "^26.6.3", "node-fetch": "^3.3.2", + "prettier": "^3.6.2", "release-it": "^19.0.4", "swc-loader": "^0.2.3", "ts-node": "^10.9.1", @@ -3290,6 +3293,19 @@ "url": "https://github.com/phun-ky/typeof?sponsor=1" } }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -7772,6 +7788,53 @@ } } }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-plugin-react": { "version": "7.37.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", @@ -8267,6 +8330,13 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -15039,6 +15109,35 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -17826,6 +17925,22 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", diff --git a/package.json b/package.json index 12abac72..e497a213 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "build:licenses": "mkdir -p src/generated && tsx scripts/genLicenseList.ts src/generated/licenses.json", "build:wasm": "cp \"$(go env GOROOT)/misc/wasm/wasm_exec.js\" public && GOOS=js GOARCH=wasm go build -o public/main.wasm src/wasm/main.go", "serve": "rm -rf dist; npm run build && http-server dist", + "format": "prettier --write 'src/**/*.{ts,tsx,scss,css,json}' ", "test": "jest --passWithNoTests", "deploy": "gh-pages -u 'Deploy Bot ' -d dist", "release": "release-it", @@ -88,6 +89,8 @@ "@typescript-eslint/parser": "^8.11.0", "@vitejs/plugin-react": "^4.3.4", "eslint": "^9.13.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-refresh": "^0.4.13", @@ -95,6 +98,7 @@ "globals": "^15.9.0", "jest": "^26.6.3", "node-fetch": "^3.3.2", + "prettier": "^3.6.2", "release-it": "^19.0.4", "swc-loader": "^0.2.3", "ts-node": "^10.9.1", @@ -103,4 +107,4 @@ "typescript-eslint": "^8.11.0", "vite": "^6.4.1" } -} \ No newline at end of file +} diff --git a/src/app/components/Editor.tsx b/src/app/components/Editor.tsx index 112b983b..b3036294 100644 --- a/src/app/components/Editor.tsx +++ b/src/app/components/Editor.tsx @@ -37,7 +37,7 @@ import { useITCountrySpecific, useLanguagesStore, useWarningStore, - useYamlStore + useYamlStore, } from "../lib/store"; import { collectRemovedKeys, getYaml } from "../lib/utils"; import linter from "../linter"; @@ -61,7 +61,6 @@ import EditorUsedBy from "./EditorUsedBy"; import EditorVideos from "./EditorVideos"; import PubliccodeYmlLanguages from "./PubliccodeYmlLanguages"; import { yamlLoadEventBus } from "./UploadPanel"; -// import EditorMDInput from "./EditorMDInput"; const validatorFn = async (values: PublicCode) => { try { @@ -84,9 +83,7 @@ const checkWarnings = async (values: PublicCode) => { for (const { key, description } of res?.warnings || []) { //if no key is provided, create a unique one - const warningKey = !key - ? `Generic Warning ${++counter}` - : key + const warningKey = !key ? `Generic Warning ${++counter}` : key; warnings.set(warningKey, { type: "warning", @@ -117,9 +114,7 @@ const resolver: Resolver = async ( let counter = 0; for (const { key, description } of res?.errors || []) { - const errorKey = !key - ? `GenericError${++counter}` - : key + const errorKey = !key ? `GenericError${++counter}` : key; set(errors, errorKey, { type: "error", message: description, @@ -165,7 +160,8 @@ export default function Editor() { } = useYamlStore(); const { languages, setLanguages, resetLanguages } = useLanguagesStore(); const { setCountrySections } = useCountryStore(); - const { showCountryExtensionVersion, setShowCountryExtensionVersion } = useITCountrySpecific(); + const { showCountryExtensionVersion, setShowCountryExtensionVersion } = + useITCountrySpecific(); const getNestedValue = ( obj: PublicCodeWithDeprecatedFields, path: string @@ -217,22 +213,26 @@ export default function Editor() { setPubliccodeYmlVersion(publiccodeYmlVersion); }, []); - const checkItCountryExtensionVersion = useCallback((publicCode: PublicCode) => { - const { it } = publicCode - if (!it) { - return; - } + const checkItCountryExtensionVersion = useCallback( + (publicCode: PublicCode) => { + const { it } = publicCode; + if (!it) { + return; + } - const { countryExtensionVersion } = it; - const isCountryExtensionVersionDefined = Boolean(countryExtensionVersion); - const isDifferentFromSpecificDefinedValue = Boolean(IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion) + const { countryExtensionVersion } = it; + const isCountryExtensionVersionDefined = Boolean(countryExtensionVersion); + const isDifferentFromSpecificDefinedValue = Boolean( + IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion + ); - const countryExtensionVersionVisible = - isCountryExtensionVersionDefined && - isDifferentFromSpecificDefinedValue + const countryExtensionVersionVisible = + isCountryExtensionVersionDefined && isDifferentFromSpecificDefinedValue; - setShowCountryExtensionVersion(countryExtensionVersionVisible) - }, []) + setShowCountryExtensionVersion(countryExtensionVersionVisible); + }, + [] + ); useFormPersist("form-values", { watch, @@ -241,7 +241,7 @@ export default function Editor() { (pc: PublicCode) => { setLanguages(Object.keys(pc?.description)); checkPubliccodeYmlVersion(pc); - checkItCountryExtensionVersion(pc) + checkItCountryExtensionVersion(pc); }, [setLanguages] ), @@ -295,27 +295,28 @@ export default function Editor() { } }, (e: FieldErrors) => { - const genericErrors = Object.entries(e) - .filter(([key]) => key.startsWith("GenericError")); + const genericErrors = Object.entries(e).filter(([key]) => + key.startsWith("GenericError") + ); - const body = genericErrors.length - ? ( + const body = genericErrors.length ? ( + {genericErrors.map(([key, value]) => ( - {(value as { message: string }).message} + + {(value as { message: string }).message} + ))} - ) - : t("editor.form.validate.error.text") - - notify( - t("editor.form.validate.error.title"), - body, - { - dismissable: true, - state: "error", - } + + ) : ( + t("editor.form.validate.error.text") ); + + notify(t("editor.form.validate.error.title"), body, { + dismissable: true, + state: "error", + }); console.error("Errors:", e); } ); @@ -372,7 +373,11 @@ export default function Editor() { const processImported = async (raw: PublicCode) => { try { - try { getValues(); } catch { } + try { + getValues(); + } catch { + console.log("getValues() error"); + } const adapted = publicCodeAdapter({ publicCode: raw as PublicCode, defaultValues: defaultValues as unknown as Partial, @@ -389,14 +394,13 @@ export default function Editor() { ))} ); - notify( - t("editor.form.validate.info.title"), - body, - { state: "info", dismissable: true } - ); + notify(t("editor.form.validate.info.title"), body, { + state: "info", + dismissable: true, + }); } await setFormDataAfterImport(async () => adapted as PublicCode); - } catch (e) { + } catch { // fall back to standard flow on any error await setFormDataAfterImport(async () => raw as PublicCode); } @@ -482,14 +486,14 @@ export default function Editor() { {isDeprecatedFieldVisible( `description.${lang}.genericName` as never ) && ( - - - fieldName="genericName" - lang={lang} - deprecated - /> - - )} + + + fieldName="genericName" + lang={lang} + deprecated + /> + + )}
fieldName="localisedName" @@ -692,17 +696,22 @@ export default function Editor() {

{t("countrySpecificSection.italy")}

- {isPublicCodeImported && showCountryExtensionVersion && + {isPublicCodeImported && showCountryExtensionVersion && (
fieldName="it.countryExtensionVersion" - data={[{ text: IT_COUNTRY_EXTENSION_VERSION, value: IT_COUNTRY_EXTENSION_VERSION }]} + data={[ + { + text: IT_COUNTRY_EXTENSION_VERSION, + value: IT_COUNTRY_EXTENSION_VERSION, + }, + ]} required />
- } + )}
{t("publiccodeyml.it.conforme.label")}
diff --git a/src/app/contents/categories.ts b/src/app/contents/categories.ts index 96e6db4c..7cf125d2 100644 --- a/src/app/contents/categories.ts +++ b/src/app/contents/categories.ts @@ -1,4 +1,4 @@ -export default [ +const categories = [ "accounting", "agile-project-management", "applicant-tracking", @@ -105,3 +105,7 @@ export default [ "whistleblowing", "workflow-management", ] as const; + +type TCategory = (typeof categories)[number]; +export default categories; +export type { TCategory }; diff --git a/src/app/is-valid-url.ts b/src/app/is-valid-url.ts index 2686127f..ca00c62f 100644 --- a/src/app/is-valid-url.ts +++ b/src/app/is-valid-url.ts @@ -1,24 +1,26 @@ +/* eslint-disable no-useless-escape */ interface ValidatorParams { - mandatoryPath?: boolean; + mandatoryPath?: boolean; } function isValidUrlWithMandatoryPath(url: string): boolean { - const pattern = /^(https?:\/\/)([a-zA-Z0-9_\-~.]+(:[a-zA-Z0-9_\-~.!$&'()*+,;=]+)?@)?([\w\-]+(\.[\w\-]+)+|localhost|(\d{1,3}\.){3}\d{1,3}|\[::1\])(:\d+)?(\/[\w\-./]+)(\?[\w\-._~:/?#[\]@!$&'()*+,;=%]*)?(#[\w\-]*)?$/i; - return pattern.test(url); + const pattern = + /^(https?:\/\/)([a-zA-Z0-9_\-~.]+(:[a-zA-Z0-9_\-~.!$&'()*+,;=]+)?@)?([\w\-]+(\.[\w\-]+)+|localhost|(\d{1,3}\.){3}\d{1,3}|\[::1\])(:\d+)?(\/[\w\-./]+)(\?[\w\-._~:/?#[\]@!$&'()*+,;=%]*)?(#[\w\-]*)?$/i; + return pattern.test(url); } - function isValidUrl(url: string): boolean { - const pattern = /^(https?:\/\/)([a-zA-Z0-9_\-~.]+(:[a-zA-Z0-9_\-~.!$&'()*+,;=]+)?@)?([\w\-]+(\.[\w\-]+)+|localhost|(\d{1,3}\.){3}\d{1,3}|\[::1\])(:\d+)?(\/[\w\-./]*)?(\?[\w\-._~:/?#[\]@!$&'()*+,;=%]*)?(#[\w\-]*)?$/i; - return pattern.test(url); + const pattern = + /^(https?:\/\/)([a-zA-Z0-9_\-~.]+(:[a-zA-Z0-9_\-~.!$&'()*+,;=]+)?@)?([\w\-]+(\.[\w\-]+)+|localhost|(\d{1,3}\.){3}\d{1,3}|\[::1\])(:\d+)?(\/[\w\-./]*)?(\?[\w\-._~:/?#[\]@!$&'()*+,;=%]*)?(#[\w\-]*)?$/i; + return pattern.test(url); } function isValidUrlFn(url: string, params?: ValidatorParams): boolean { - if (params?.mandatoryPath) { - return isValidUrlWithMandatoryPath(url) - } + if (params?.mandatoryPath) { + return isValidUrlWithMandatoryPath(url); + } - return isValidUrl(url) + return isValidUrl(url); } -export default isValidUrlFn; \ No newline at end of file +export default isValidUrlFn; diff --git a/src/app/linter/index.ts b/src/app/linter/index.ts index 5d7eaf88..3b6b1108 100644 --- a/src/app/linter/index.ts +++ b/src/app/linter/index.ts @@ -1,9 +1,5 @@ -import { - clone, - cloneDeep, - isEqual, - mapValues -} from "lodash"; +import { clone, cloneDeep, isEqual, mapValues } from "lodash"; +import categories, { TCategory } from "../contents/categories"; import PublicCode, { Description, Italy, @@ -16,11 +12,12 @@ import PublicCode, { defaultPiattaforme, defaultRiuso, } from "../contents/publiccode"; -import categories from "../contents/categories"; import { removeEmpty } from "./remove-empty"; function validateCategories(categoriesArray: string[]): string[] { - return categoriesArray.filter(category => categories.includes(category as any)); + return categoriesArray.filter((category) => + categories.includes(category as TCategory) + ); } function sortDescription({ @@ -105,8 +102,8 @@ export default function linter({ }, dependsOn: dependsOn ? mapValues(dependsOn, (v) => - v ? v.map((d) => sortAs(defaultDependency, d)) : undefined - ) + v ? v.map((d) => sortAs(defaultDependency, d)) : undefined + ) : undefined, it: it === undefined || isEqual(removeEmpty(it), defaultItaly) From 3f6c81333b1bd3b7f4f5a4a0768c813a67455cfa Mon Sep 17 00:00:00 2001 From: Valerio Date: Mon, 27 Oct 2025 17:45:06 +0100 Subject: [PATCH 07/13] chore: formatted all the project with the current coding rules (#532) --- src/app/components/CloseButton.tsx | 14 +- src/app/components/Editor.tsx | 27 +- src/app/components/EditorAwards.tsx | 10 +- src/app/components/EditorBoolean.tsx | 2 +- src/app/components/EditorContacts.tsx | 10 +- src/app/components/EditorContractors.tsx | 10 +- src/app/components/EditorDate.tsx | 2 +- src/app/components/EditorDescriptionInput.tsx | 11 +- src/app/components/EditorFeatures.tsx | 14 +- src/app/components/EditorInput.tsx | 7 +- src/app/components/EditorMDInput.tsx | 22 +- src/app/components/EditorMultiselect.tsx | 21 +- src/app/components/EditorRadio.tsx | 2 +- src/app/components/EditorScreenshots.tsx | 2 +- src/app/components/EditorSelect.tsx | 14 +- src/app/components/EditorToolbar.tsx | 6 +- src/app/components/EditorVideos.tsx | 2 +- src/app/components/Head.tsx | 10 +- src/app/components/Info.tsx | 8 +- src/app/components/Input.tsx | 2 +- src/app/components/PubliccodeYmlLanguages.tsx | 24 +- src/app/components/ResetFormConfirm.tsx | 6 +- src/app/components/UploadModal.tsx | 141 +-- src/app/components/UploadPanel.tsx | 8 +- src/app/contents/countrySpecificSection.ts | 30 +- src/app/contents/data.ts | 2 +- src/app/contents/fields/generic.ts | 2 +- src/app/contents/mime-types.ts | 4 +- src/app/contents/publiccode-yml-version.ts | 24 +- src/app/contents/publiccode.ts | 61 +- src/app/contents/staticFields.ts | 6 +- src/app/flatten-object-to-record.spec.ts | 54 +- src/app/flatten-object-to-record.ts | 47 +- src/app/importers/file.importer.ts | 2 +- src/app/importers/gitlab-url-adapter.spec.ts | 29 +- src/app/importers/gitlab-url-adapter.ts | 79 +- src/app/importers/gitlab.importer.ts | 22 +- src/app/importers/standard.importer.ts | 8 +- src/app/is-safari.ts | 6 +- src/app/is-valid-url.spec.ts | 111 ++- src/app/lib/store.ts | 45 +- src/app/lib/utils.ts | 24 +- src/app/linter/index.ts | 4 +- src/app/linter/remove-empty.spec.ts | 932 +++++++++--------- src/app/linter/remove-empty.ts | 46 +- src/app/oembed/index.ts | 6 +- src/app/oembed/oembed-models.ts | 54 +- src/app/oembed/oembed-service.ts | 64 +- src/app/oembed/oembed-url-builder.ts | 55 +- src/app/oembed/providers/index.ts | 4 +- .../providers/oembed-provider-importer.ts | 7 +- .../providers/oembed-provider-models.ts | 15 +- .../providers/oembed-provider-service.ts | 19 +- src/app/publiccode-adapter.ts | 138 +-- src/app/semver.spec.ts | 72 +- src/app/semver.ts | 94 +- src/app/validator.ts | 25 +- src/app/yaml-serializer.ts | 30 +- src/app/yaml-upload.spec.ts | 120 +-- src/app/yaml-upload.ts | 36 +- src/assets/glyphicons/glyphicons.css | 18 +- src/assets/main.css | 366 ++++--- src/i18n/index.ts | 52 +- src/i18n/locales/de.json | 2 +- src/i18n/locales/en.json | 2 +- src/i18n/locales/fr.json | 2 +- src/i18n/locales/it.json | 2 +- src/i18n/locales/nl.json | 680 ++++++------- src/vite-env.d.ts | 24 +- 69 files changed, 1958 insertions(+), 1842 deletions(-) diff --git a/src/app/components/CloseButton.tsx b/src/app/components/CloseButton.tsx index 48b932e1..1f2effe9 100644 --- a/src/app/components/CloseButton.tsx +++ b/src/app/components/CloseButton.tsx @@ -1,15 +1,13 @@ import img_close from "../../assets/img/close.svg"; interface Props { - onClick: () => void + onClick: () => void; } -const CloseButton = ({onClick}: Props) => -
- -
+const CloseButton = ({ onClick }: Props) => ( +
+ +
+); export default CloseButton; diff --git a/src/app/components/Editor.tsx b/src/app/components/Editor.tsx index b3036294..1fd9648a 100644 --- a/src/app/components/Editor.tsx +++ b/src/app/components/Editor.tsx @@ -95,7 +95,7 @@ const checkWarnings = async (values: PublicCode) => { }; const resolver: Resolver = async ( - values + values, ) => { console.log(values); @@ -164,7 +164,7 @@ export default function Editor() { useITCountrySpecific(); const getNestedValue = ( obj: PublicCodeWithDeprecatedFields, - path: string + path: string, ) => { return path.split(".").reduce((acc, key) => (acc as never)?.[key], obj); }; @@ -223,7 +223,7 @@ export default function Editor() { const { countryExtensionVersion } = it; const isCountryExtensionVersionDefined = Boolean(countryExtensionVersion); const isDifferentFromSpecificDefinedValue = Boolean( - IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion + IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion, ); const countryExtensionVersionVisible = @@ -231,7 +231,7 @@ export default function Editor() { setShowCountryExtensionVersion(countryExtensionVersionVisible); }, - [] + [], ); useFormPersist("form-values", { @@ -243,7 +243,7 @@ export default function Editor() { checkPubliccodeYmlVersion(pc); checkItCountryExtensionVersion(pc); }, - [setLanguages] + [setLanguages], ), storage: window?.localStorage, // default window.sessionStorage exclude: [], @@ -266,7 +266,7 @@ export default function Editor() { setValue("maintenance.contacts", undefined); } }, - [setValue] + [setValue], ); useEffect(() => { @@ -290,13 +290,13 @@ export default function Editor() { { dismissable: true, state: "success", - } + }, ); } }, (e: FieldErrors) => { const genericErrors = Object.entries(e).filter(([key]) => - key.startsWith("GenericError") + key.startsWith("GenericError"), ); const body = genericErrors.length ? ( @@ -318,7 +318,7 @@ export default function Editor() { state: "error", }); console.error("Errors:", e); - } + }, ); const resetFormHandler = () => { @@ -332,7 +332,7 @@ export default function Editor() { }; const setFormDataAfterImport = async ( - fetchData: () => Promise + fetchData: () => Promise, ) => { try { const publicCode = await fetchData().then((publicCode) => { @@ -361,7 +361,10 @@ export default function Editor() { const res = await checkWarnings(publicCode); setWarnings( - Array.from(res.warnings).map(([key, { message }]) => ({ key, message })) + Array.from(res.warnings).map(([key, { message }]) => ({ + key, + message, + })), ); } catch (error: unknown) { notify("Import error", (error as Error).message, { @@ -484,7 +487,7 @@ export default function Editor() {
{isDeprecatedFieldVisible( - `description.${lang}.genericName` as never + `description.${lang}.genericName` as never, ) && ( diff --git a/src/app/components/EditorAwards.tsx b/src/app/components/EditorAwards.tsx index 61c7b744..50514a41 100644 --- a/src/app/components/EditorAwards.tsx +++ b/src/app/components/EditorAwards.tsx @@ -55,7 +55,7 @@ export default function EditorAwards({ lang }: Props): JSX.Element { useEffect(() => { const errorsRecord = flattenObject( - errors as Record + errors as Record, ); const formFieldKeys = Object.keys(errorsRecord); const isFirstError = @@ -91,10 +91,10 @@ export default function EditorAwards({ lang }: Props): JSX.Element { {awards.map((feat) => ( {feat} - - + {description}
@@ -81,7 +81,7 @@ export default function EditorInput< */} {!isValid && validationText && ( -
+
{validationText}
)} diff --git a/src/app/components/EditorMultiselect.tsx b/src/app/components/EditorMultiselect.tsx index 395b7038..588f8b02 100644 --- a/src/app/components/EditorMultiselect.tsx +++ b/src/app/components/EditorMultiselect.tsx @@ -25,14 +25,17 @@ type Props = { type PublicCodeData = PublicCode | PublicCodeWithDeprecatedFields; -function filterValidValues(value: string[] | undefined, data: Array<{ value: string; text: string }>): string[] { +function filterValidValues( + value: string[] | undefined, + data: Array<{ value: string; text: string }>, +): string[] { if (!value || !Array.isArray(value)) return []; - const validValues = data.map(item => item.value); - return value.filter(val => validValues.includes(val)); + const validValues = data.map((item) => item.value); + return value.filter((val) => validValues.includes(val)); } export default function EditorMultiselect< - T extends FieldPathByValue, Array> + T extends FieldPathByValue, Array>, >({ fieldName, required, data, filter, deprecated }: Props): JSX.Element { const { control } = useFormContext(); const { @@ -45,9 +48,13 @@ export default function EditorMultiselect< const { t } = useTranslation(); const filteredValue = filterValidValues(value, data); - + useEffect(() => { - if (value && Array.isArray(value) && filteredValue.length !== value.length) { + if ( + value && + Array.isArray(value) && + filteredValue.length !== value.length + ) { onChange(filteredValue); } }, [value, filteredValue, onChange]); @@ -61,7 +68,7 @@ export default function EditorMultiselect< useEffect(() => { const errorsRecord = flattenObject( - errors as Record + errors as Record, ); const formFieldKeys = Object.keys(errorsRecord); const isFirstError = diff --git a/src/app/components/EditorRadio.tsx b/src/app/components/EditorRadio.tsx index c24ddd49..a3d252c7 100644 --- a/src/app/components/EditorRadio.tsx +++ b/src/app/components/EditorRadio.tsx @@ -17,7 +17,7 @@ type Props = { }; export default function EditorRadio< - T extends FieldPathByValue, string> + T extends FieldPathByValue, string>, >({ fieldName, required, data }: Props): JSX.Element { const { control } = useFormContext(); const { diff --git a/src/app/components/EditorScreenshots.tsx b/src/app/components/EditorScreenshots.tsx index 36bd1d9a..f74a5d22 100644 --- a/src/app/components/EditorScreenshots.tsx +++ b/src/app/components/EditorScreenshots.tsx @@ -91,7 +91,7 @@ export default function EditorScreenshots({ lang }: Props): JSX.Element { )} {get( errors, - `description.${lang}.screenshots.${index}` + `description.${lang}.screenshots.${index}`, ) && ( {" "} diff --git a/src/app/components/EditorSelect.tsx b/src/app/components/EditorSelect.tsx index b10e4cc4..5e0e0fd4 100644 --- a/src/app/components/EditorSelect.tsx +++ b/src/app/components/EditorSelect.tsx @@ -18,7 +18,7 @@ type Props = { }; export default function EditorSelect< - T extends FieldPathByValue, string> + T extends FieldPathByValue, string>, >({ fieldName, required, data, filter }: Props): JSX.Element { const { control } = useFormContext(); const { @@ -36,16 +36,16 @@ export default function EditorSelect< return (
- + { - const value = typeof d !== "string" && d !== undefined - ? d.value - : (d ?? ""); + const value = + typeof d !== "string" && d !== undefined ? d.value : (d ?? ""); - onChange(value) + onChange(value); }} value={value} data={[...(!required ? [{ text: "(unset)", value: "" }] : []), ...data]} diff --git a/src/app/components/EditorToolbar.tsx b/src/app/components/EditorToolbar.tsx index 736d7921..6ca76511 100644 --- a/src/app/components/EditorToolbar.tsx +++ b/src/app/components/EditorToolbar.tsx @@ -12,8 +12,8 @@ const EditorToolbar = (props: Props): JSX.Element => { const { t } = useTranslation(); return ( -
-
+
+
- - - - - } + {importMode === "file" && ( +
+ +

{t("editor.browsefile")}

+
+ + + - {importMode === 'url' && - -

{t("editor.pastefile")}

-
- - - - - - - } +
+ + )} + + {importMode === "url" && ( +
+ +

{t("editor.pastefile")}

+
+ + + + + + +
+ )} diff --git a/src/app/components/UploadPanel.tsx b/src/app/components/UploadPanel.tsx index daed0a7a..f4b226af 100644 --- a/src/app/components/UploadPanel.tsx +++ b/src/app/components/UploadPanel.tsx @@ -40,7 +40,7 @@ export default function UploadPanel({ onBack }: { onBack: () => void }) { const [comboboxOpen, setComboboxOpen] = useState(false); const [source, setSource] = useState<"gitlab" | "other">(null!); const [submitType, setSubmitType] = useState<"file" | "url" | undefined>( - undefined + undefined, ); const sourceOptions = [ @@ -79,7 +79,7 @@ export default function UploadPanel({ onBack }: { onBack: () => void }) { console.log( "submitType: file", `isNotYamlFile: ${isNotYamlFile}`, - file?.type + file?.type, ); if (isNotYamlFile) { notify(t("editor.filenotsupported"), { state: "error" }); @@ -122,7 +122,7 @@ export default function UploadPanel({ onBack }: { onBack: () => void }) { }; const handleSourceChange = ( - selectedValue: string | { value: string; text: string } | null + selectedValue: string | { value: string; text: string } | null, ) => { if (selectedValue && typeof selectedValue === "object") { setSource(selectedValue.value as "gitlab" | "other"); @@ -215,7 +215,7 @@ export default function UploadPanel({ onBack }: { onBack: () => void }) { opt.value === source + (opt) => opt.value === source, )} onChange={handleSourceChange} textField="text" diff --git a/src/app/contents/countrySpecificSection.ts b/src/app/contents/countrySpecificSection.ts index 9ebf02f4..c15925c1 100644 --- a/src/app/contents/countrySpecificSection.ts +++ b/src/app/contents/countrySpecificSection.ts @@ -3,27 +3,27 @@ import { CountrySection } from "../lib/store"; const SECTIONS = ["none", "all", "italy"] as CountrySection[]; export const parse = (input: string): CountrySection[] => { - const splitted = input?.split(",")?.map(s => s.trim()); + const splitted = input?.split(",")?.map((s) => s.trim()); - const sections: CountrySection[] = []; - splitted.forEach(s => { - if (!SECTIONS.includes(s as CountrySection)) { - console.warn(`Unknown Country specific section: ${s}`); - return; - } + const sections: CountrySection[] = []; + splitted.forEach((s) => { + if (!SECTIONS.includes(s as CountrySection)) { + console.warn(`Unknown Country specific section: ${s}`); + return; + } - sections.push(s as CountrySection); - }); + sections.push(s as CountrySection); + }); - return sections; -} + return sections; +}; export const isVisible = ( config: CountrySection[], country: CountrySection, ): boolean => { - if (config.includes("all")) return true; - if (config.includes("none")) return false; + if (config.includes("all")) return true; + if (config.includes("none")) return false; - return config.includes(country); -} + return config.includes(country); +}; diff --git a/src/app/contents/data.ts b/src/app/contents/data.ts index f2892496..0953b1a5 100644 --- a/src/app/contents/data.ts +++ b/src/app/contents/data.ts @@ -99,7 +99,7 @@ const generateBlocks = (allFields: Field[]) => { export const removeAdditional = ( allFields: Field[], - obj: Record + obj: Record, ) => { const validKeys = allFields.map((f) => f.title); Object.keys(obj).forEach((key) => validKeys.includes(key) || delete obj[key]); diff --git a/src/app/contents/fields/generic.ts b/src/app/contents/fields/generic.ts index 355e50ec..169a5ecd 100644 --- a/src/app/contents/fields/generic.ts +++ b/src/app/contents/fields/generic.ts @@ -1,7 +1,7 @@ import categories from "../categories"; import scopes from "../scopes"; // import licenses from "../../../generated/licenses.json"; -import { allLangs, allCountries } from '../../../i18n'; +import { allLangs, allCountries } from "../../../i18n"; const developmentStatus_list = [ "concept", diff --git a/src/app/contents/mime-types.ts b/src/app/contents/mime-types.ts index d827d7f6..fa2e2cc3 100644 --- a/src/app/contents/mime-types.ts +++ b/src/app/contents/mime-types.ts @@ -1,3 +1,3 @@ -import mimeDb from 'mime-db' +import mimeDb from "mime-db"; -export default Object.keys(mimeDb).map(o => ({text: o, value: o})); \ No newline at end of file +export default Object.keys(mimeDb).map((o) => ({ text: o, value: o })); diff --git a/src/app/contents/publiccode-yml-version.ts b/src/app/contents/publiccode-yml-version.ts index dfc412b4..50790dd3 100644 --- a/src/app/contents/publiccode-yml-version.ts +++ b/src/app/contents/publiccode-yml-version.ts @@ -1,15 +1,17 @@ import { LATEST_VERSION } from "./publiccode"; -export const getPubliccodeYmlVersionList = (currentPublicodeYmlVersion: string) => { - - if (currentPublicodeYmlVersion) { - return [ - { text: `Latest (${LATEST_VERSION})`, value: LATEST_VERSION }, - { text: `Current (${currentPublicodeYmlVersion})`, value: currentPublicodeYmlVersion }, - ]; - } - +export const getPubliccodeYmlVersionList = ( + currentPublicodeYmlVersion: string, +) => { + if (currentPublicodeYmlVersion) { return [ - { text: `Latest (${LATEST_VERSION})`, value: LATEST_VERSION }, + { text: `Latest (${LATEST_VERSION})`, value: LATEST_VERSION }, + { + text: `Current (${currentPublicodeYmlVersion})`, + value: currentPublicodeYmlVersion, + }, ]; -} + } + + return [{ text: `Latest (${LATEST_VERSION})`, value: LATEST_VERSION }]; +}; diff --git a/src/app/contents/publiccode.ts b/src/app/contents/publiccode.ts index 96d84786..121dbba8 100644 --- a/src/app/contents/publiccode.ts +++ b/src/app/contents/publiccode.ts @@ -4,8 +4,8 @@ import maintenanceTypes from "./maintenanceTypes"; import scopes from "./scopes"; import softwareTypes from "./softwareTypes"; -export const LATEST_VERSION = "0.4.0" -export const IT_COUNTRY_EXTENSION_VERSION = '1.0' +export const LATEST_VERSION = "0.4.0"; +export const IT_COUNTRY_EXTENSION_VERSION = "1.0"; // https://yml.publiccode.tools/schema.core.html export default interface PublicCode { @@ -35,10 +35,10 @@ export default interface PublicCode { export interface PublicCodeWithDeprecatedFields { monochromeLogo: string; - legal: Pick - inputTypes?: Array, - outputTypes?: Array, - description: Record> + legal: Pick; + inputTypes?: Array; + outputTypes?: Array; + description: Record>; } interface IntendedAudience { @@ -181,27 +181,28 @@ interface Riuso { export const defaultRiuso: Riuso = { codiceIPA: "" }; -export const publicCodeDummyObjectFactory = () => ({ - publiccodeYmlVersion: LATEST_VERSION, - name: '', - applicationSuite: '', - url: '', - landingURL: '', - isBasedOn: '', - softwareVersion: '', - releaseDate: '', - logo: '', - platforms: [], - categories: [], - usedBy: [], - roadmap: '', - developmentStatus: 'stable', - softwareType: 'library', - intendedAudience: {}, - description: {}, - legal: { license: '' }, - maintenance: { contacts: [], contractors: [], type: 'none' }, - localisation: { availableLanguages: [], localisationReady: false }, - dependsOn: {}, - it: defaultItaly -} satisfies PublicCode) +export const publicCodeDummyObjectFactory = () => + ({ + publiccodeYmlVersion: LATEST_VERSION, + name: "", + applicationSuite: "", + url: "", + landingURL: "", + isBasedOn: "", + softwareVersion: "", + releaseDate: "", + logo: "", + platforms: [], + categories: [], + usedBy: [], + roadmap: "", + developmentStatus: "stable", + softwareType: "library", + intendedAudience: {}, + description: {}, + legal: { license: "" }, + maintenance: { contacts: [], contractors: [], type: "none" }, + localisation: { availableLanguages: [], localisationReady: false }, + dependsOn: {}, + it: defaultItaly, + }) satisfies PublicCode; diff --git a/src/app/contents/staticFields.ts b/src/app/contents/staticFields.ts index b1602f56..23ad6a02 100644 --- a/src/app/contents/staticFields.ts +++ b/src/app/contents/staticFields.ts @@ -1,9 +1,9 @@ export const staticFieldsJson = { - "publiccodeYmlVersion": "0.2" + publiccodeYmlVersion: "0.2", }; export const staticFieldsYaml = [ "# This repository adheres to the publiccode.yml standard by including this \n" + - "# metadata file that makes public software easily discoverable.\n" + - "# More info at https://github.com/italia/publiccode.yml\n\n" + "# metadata file that makes public software easily discoverable.\n" + + "# More info at https://github.com/italia/publiccode.yml\n\n", ]; diff --git a/src/app/flatten-object-to-record.spec.ts b/src/app/flatten-object-to-record.spec.ts index ef20b37b..cbae6ba5 100644 --- a/src/app/flatten-object-to-record.spec.ts +++ b/src/app/flatten-object-to-record.spec.ts @@ -1,27 +1,33 @@ import flattenObjectToRecord from "./flatten-object-to-record"; -describe('Flatten object to record', () => { - it('should return a record given a object with a object-ish property', () => { - //arrage - const mockData = { en: { type: "error", message: "this is an error message" } }; - //act - const actual = flattenObjectToRecord(mockData); - //assert - expect(actual).toBeDefined(); - expect(actual.en).toBeDefined() - expect(actual.en.type).toBe(mockData.en.type) - expect(actual.en.message).toBe(mockData.en.message) - }) +describe("Flatten object to record", () => { + it("should return a record given a object with a object-ish property", () => { + //arrage + const mockData = { + en: { type: "error", message: "this is an error message" }, + }; + //act + const actual = flattenObjectToRecord(mockData); + //assert + expect(actual).toBeDefined(); + expect(actual.en).toBeDefined(); + expect(actual.en.type).toBe(mockData.en.type); + expect(actual.en.message).toBe(mockData.en.message); + }); - it('should return a record given a object with a object-ish property - deep', () => { - //arrage - const mockData = { description: { en: { type: "error", message: "this is an error message" } } }; - //act - const actual = flattenObjectToRecord(mockData); - //assert - expect(actual).toBeDefined(); - expect(actual['description.en']).toBeDefined(); - expect(actual['description.en'].type).toBe("error") - expect(actual['description.en'].message).toBe("this is an error message") - }) -}) \ No newline at end of file + it("should return a record given a object with a object-ish property - deep", () => { + //arrage + const mockData = { + description: { + en: { type: "error", message: "this is an error message" }, + }, + }; + //act + const actual = flattenObjectToRecord(mockData); + //assert + expect(actual).toBeDefined(); + expect(actual["description.en"]).toBeDefined(); + expect(actual["description.en"].type).toBe("error"); + expect(actual["description.en"].message).toBe("this is an error message"); + }); +}); diff --git a/src/app/flatten-object-to-record.ts b/src/app/flatten-object-to-record.ts index 79815ea2..78c1745a 100644 --- a/src/app/flatten-object-to-record.ts +++ b/src/app/flatten-object-to-record.ts @@ -1,28 +1,35 @@ function flattenObject( - obj: object, - parentKey = '', - separator = '.' + obj: object, + parentKey = "", + separator = ".", ): Record { - return Object.entries(obj).reduce((acc, [key, value]) => { - const newKey = parentKey ? `${parentKey}${separator}${key}` : key; + return Object.entries(obj).reduce( + (acc, [key, value]) => { + const newKey = parentKey ? `${parentKey}${separator}${key}` : key; - // Controlla se il valore è un oggetto e ha proprietà - if (typeof value === 'object' && value !== null && !Array.isArray(value)) { - const isLeaf = Object.keys(value).every( - (k) => typeof value[k] !== 'object' || value[k] === null - ); + // Controlla se il valore è un oggetto e ha proprietà + if ( + typeof value === "object" && + value !== null && + !Array.isArray(value) + ) { + const isLeaf = Object.keys(value).every( + (k) => typeof value[k] !== "object" || value[k] === null, + ); - if (isLeaf) { - // Se è una foglia, aggiungilo direttamente - acc[newKey] = value as { type: string; message: string }; - } else { - // Altrimenti continua la ricorsione - Object.assign(acc, flattenObject(value, newKey, separator)); - } + if (isLeaf) { + // Se è una foglia, aggiungilo direttamente + acc[newKey] = value as { type: string; message: string }; + } else { + // Altrimenti continua la ricorsione + Object.assign(acc, flattenObject(value, newKey, separator)); } + } - return acc; - }, {} as Record); + return acc; + }, + {} as Record, + ); } -export default flattenObject \ No newline at end of file +export default flattenObject; diff --git a/src/app/importers/file.importer.ts b/src/app/importers/file.importer.ts index 615b1699..d9c70bc7 100644 --- a/src/app/importers/file.importer.ts +++ b/src/app/importers/file.importer.ts @@ -1,3 +1,3 @@ import yamlSerializer from "../yaml-serializer"; -export default (file: File) => yamlSerializer(file.stream()); \ No newline at end of file +export default (file: File) => yamlSerializer(file.stream()); diff --git a/src/app/importers/gitlab-url-adapter.spec.ts b/src/app/importers/gitlab-url-adapter.spec.ts index 3f31b105..a7e6d49f 100644 --- a/src/app/importers/gitlab-url-adapter.spec.ts +++ b/src/app/importers/gitlab-url-adapter.spec.ts @@ -1,15 +1,18 @@ import { adaptToGitlabAPIUrl } from "./gitlab-url-adapter"; -describe('Gitlab url adapter tests', () => { - it('should adapt from a raw URI to a API-based uri', async () => { - //arrange - const url = new URL('https://gitlab.com/opencity-labs/area-personale/core/-/raw/master/publiccode.yml') - //act - const actual = await adaptToGitlabAPIUrl(url); - //assert - console.log(actual) - expect(actual).toBeDefined() - expect(actual).toBe("https://gitlab.com/api/v4/projects/opencity-labs%2Farea-personale%2Fcore/repository/files/publiccode.yml?ref=master"); - - }) -}) \ No newline at end of file +describe("Gitlab url adapter tests", () => { + it("should adapt from a raw URI to a API-based uri", async () => { + //arrange + const url = new URL( + "https://gitlab.com/opencity-labs/area-personale/core/-/raw/master/publiccode.yml", + ); + //act + const actual = await adaptToGitlabAPIUrl(url); + //assert + console.log(actual); + expect(actual).toBeDefined(); + expect(actual).toBe( + "https://gitlab.com/api/v4/projects/opencity-labs%2Farea-personale%2Fcore/repository/files/publiccode.yml?ref=master", + ); + }); +}); diff --git a/src/app/importers/gitlab-url-adapter.ts b/src/app/importers/gitlab-url-adapter.ts index aff07168..ce7bb7ce 100644 --- a/src/app/importers/gitlab-url-adapter.ts +++ b/src/app/importers/gitlab-url-adapter.ts @@ -1,56 +1,59 @@ import PublicCode from "../contents/publiccode"; import { serializeYml } from "../yaml-serializer"; -const URL_TEMPLATE = `:ORIGIN/api/v4/projects/:ID/repository/files/:FILE_PATH?ref=:BRANCH_NAME` +const URL_TEMPLATE = `:ORIGIN/api/v4/projects/:ID/repository/files/:FILE_PATH?ref=:BRANCH_NAME`; -const stripTheFirstSlash = (path: string) => path.replace(/^\//, '') +const stripTheFirstSlash = (path: string) => path.replace(/^\//, ""); -async function readStreamAsText(readableStream: ReadableStream) { - const reader = readableStream.getReader(); - let result = ''; - const decoder = new TextDecoder(); +async function readStreamAsText( + readableStream: ReadableStream, +) { + const reader = readableStream.getReader(); + let result = ""; + const decoder = new TextDecoder(); - while (true) { - const { done, value } = await reader.read(); - if (done) break; - result += decoder.decode(value, { stream: true }); - } + while (true) { + const { done, value } = await reader.read(); + if (done) break; + result += decoder.decode(value, { stream: true }); + } - result += decoder.decode(); // Finalize decoding - return result; + result += decoder.decode(); // Finalize decoding + return result; } const atobUTF8 = (data: string) => { - const decodedData = atob(data); - const utf8data = new Uint8Array(decodedData.length); - const decoder = new TextDecoder("utf-8"); - for (let i = 0; i < decodedData.length; i++) { - utf8data[i] = decodedData.charCodeAt(i); - } - return decoder.decode(utf8data); -} + const decodedData = atob(data); + const utf8data = new Uint8Array(decodedData.length); + const decoder = new TextDecoder("utf-8"); + for (let i = 0; i < decodedData.length; i++) { + utf8data[i] = decodedData.charCodeAt(i); + } + return decoder.decode(utf8data); +}; -const decodingContent = ({ content }: { content: string }) => atobUTF8(content) +const decodingContent = ({ content }: { content: string }) => atobUTF8(content); export const adaptToGitlabAPIUrl = (url: URL) => { - const { origin, pathname } = url + const { origin, pathname } = url; - const [projectId, rest] = pathname.split('/-/') + const [projectId, rest] = pathname.split("/-/"); - const [, branchName, filepath] = rest.split('/'); + const [, branchName, filepath] = rest.split("/"); - const gitlabAPI = URL_TEMPLATE - .replace(':ORIGIN', origin) - .replace(':ID', encodeURIComponent(stripTheFirstSlash(projectId))) - .replace(':FILE_PATH', encodeURIComponent(filepath)) - .replace(':BRANCH_NAME', branchName) + const gitlabAPI = URL_TEMPLATE.replace(":ORIGIN", origin) + .replace(":ID", encodeURIComponent(stripTheFirstSlash(projectId))) + .replace(":FILE_PATH", encodeURIComponent(filepath)) + .replace(":BRANCH_NAME", branchName); - return gitlabAPI -} + return gitlabAPI; +}; -export const getContentFromGitlabBodyResponse = async (body: ReadableStream) => { - return await readStreamAsText(body) - .then(JSON.parse) - .then(decodingContent) - .then(serializeYml) as Promise; -} +export const getContentFromGitlabBodyResponse = async ( + body: ReadableStream, +) => { + return (await readStreamAsText(body) + .then(JSON.parse) + .then(decodingContent) + .then(serializeYml)) as Promise; +}; diff --git a/src/app/importers/gitlab.importer.ts b/src/app/importers/gitlab.importer.ts index 4423d1e7..3af6f49a 100644 --- a/src/app/importers/gitlab.importer.ts +++ b/src/app/importers/gitlab.importer.ts @@ -1,8 +1,10 @@ // start: https://gitlab.com/opencity-labs/area-personale/core/-/raw/master/publiccode.yml?ref_type=heads // target: https://gitlab.com/api/v4/projects/opencity-labs%2Farea-personale%2Fcore/repository/files/publiccode.yml?ref=master -import { adaptToGitlabAPIUrl, getContentFromGitlabBodyResponse } from "./gitlab-url-adapter"; - +import { + adaptToGitlabAPIUrl, + getContentFromGitlabBodyResponse, +} from "./gitlab-url-adapter"; // this is the API // https://gitlab.com/api/v4/projects/:id/repository/files/:filename?ref=:branch_name @@ -16,15 +18,15 @@ import { adaptToGitlabAPIUrl, getContentFromGitlabBodyResponse } from "./gitlab- // 5: url encode them // 6: call the api const importFromGitlab = async (url: URL) => { - const gitlabAPI = adaptToGitlabAPIUrl(url) + const gitlabAPI = adaptToGitlabAPIUrl(url); - const { body, ok } = await fetch(gitlabAPI) + const { body, ok } = await fetch(gitlabAPI); - if (!ok || body === null) { - throw new Error(); - } + if (!ok || body === null) { + throw new Error(); + } - return getContentFromGitlabBodyResponse(body) -} + return getContentFromGitlabBodyResponse(body); +}; -export default importFromGitlab; \ No newline at end of file +export default importFromGitlab; diff --git a/src/app/importers/standard.importer.ts b/src/app/importers/standard.importer.ts index d50c4bde..159fba50 100644 --- a/src/app/importers/standard.importer.ts +++ b/src/app/importers/standard.importer.ts @@ -1,8 +1,8 @@ import yamlSerializer from "../yaml-serializer"; const importStandard = (url: URL) => - fetch(url) - .then((res) => res.body) - .then((res) => res && yamlSerializer(res)); + fetch(url) + .then((res) => res.body) + .then((res) => res && yamlSerializer(res)); -export default importStandard; \ No newline at end of file +export default importStandard; diff --git a/src/app/is-safari.ts b/src/app/is-safari.ts index 0dc66a57..ff24eb29 100644 --- a/src/app/is-safari.ts +++ b/src/app/is-safari.ts @@ -1,2 +1,4 @@ -// eslint-disable-next-line no-useless-escape -export default () => typeof navigator !== 'undefined' && /Version\/[\d\.]+.*Safari/.test(navigator.userAgent); \ No newline at end of file +/* eslint-disable no-useless-escape */ +export default () => + typeof navigator !== "undefined" && + /Version\/[\d\.]+.*Safari/.test(navigator.userAgent); diff --git a/src/app/is-valid-url.spec.ts b/src/app/is-valid-url.spec.ts index 8781e8a5..4ec93282 100644 --- a/src/app/is-valid-url.spec.ts +++ b/src/app/is-valid-url.spec.ts @@ -1,54 +1,69 @@ import isValidUrl from "./is-valid-url"; fdescribe("isValidUrl", () => { - test("valid URLs", () => { - expect(isValidUrl("https://example.com")).toBe(true); - expect(isValidUrl("http://example.com")).toBe(true); - expect(isValidUrl("https://www.example.com")).toBe(true); - expect(isValidUrl("https://sub.domain.example.com")).toBe(true); - expect(isValidUrl("https://example.com:8080")).toBe(true); - expect(isValidUrl("https://example.com/path")).toBe(true); - expect(isValidUrl("https://example.com?query=test")).toBe(true); - expect(isValidUrl("https://example.com?query=test&x=1")).toBe(true); - expect(isValidUrl("https://example.com#fragment")).toBe(true); - expect(isValidUrl("https://example.com:3000/path?query=value#section")).toBe(true); - }); + test("valid URLs", () => { + expect(isValidUrl("https://example.com")).toBe(true); + expect(isValidUrl("http://example.com")).toBe(true); + expect(isValidUrl("https://www.example.com")).toBe(true); + expect(isValidUrl("https://sub.domain.example.com")).toBe(true); + expect(isValidUrl("https://example.com:8080")).toBe(true); + expect(isValidUrl("https://example.com/path")).toBe(true); + expect(isValidUrl("https://example.com?query=test")).toBe(true); + expect(isValidUrl("https://example.com?query=test&x=1")).toBe(true); + expect(isValidUrl("https://example.com#fragment")).toBe(true); + expect( + isValidUrl("https://example.com:3000/path?query=value#section"), + ).toBe(true); + }); - test("invalid URLs", () => { - expect(isValidUrl("example")).toBe(false); - expect(isValidUrl("example.com")).toBe(false); - expect(isValidUrl("ftp://example.com")).toBe(false); - expect(isValidUrl("://example.com")).toBe(false); - expect(isValidUrl("http:/example.com")).toBe(false); - expect(isValidUrl("http//example.com")).toBe(false); - expect(isValidUrl("https//example.com")).toBe(false); - expect(isValidUrl("")).toBe(false); - expect(isValidUrl("https://")).toBe(false); - expect(isValidUrl("https://.com")).toBe(false); - expect(isValidUrl("http://com")).toBe(false); - }); + test("invalid URLs", () => { + expect(isValidUrl("example")).toBe(false); + expect(isValidUrl("example.com")).toBe(false); + expect(isValidUrl("ftp://example.com")).toBe(false); + expect(isValidUrl("://example.com")).toBe(false); + expect(isValidUrl("http:/example.com")).toBe(false); + expect(isValidUrl("http//example.com")).toBe(false); + expect(isValidUrl("https//example.com")).toBe(false); + expect(isValidUrl("")).toBe(false); + expect(isValidUrl("https://")).toBe(false); + expect(isValidUrl("https://.com")).toBe(false); + expect(isValidUrl("http://com")).toBe(false); + }); - test("valid URLs (must contain a path)", () => { - const params = { mandatoryPath: true } - expect(isValidUrl("https://example.com/path", params)).toBe(true); - expect(isValidUrl("https://example.com/path/to/resource", params)).toBe(true); - expect(isValidUrl("https://example.com/path?query=test", params)).toBe(true); - expect(isValidUrl("https://example.com/path#fragment", params)).toBe(true); - expect(isValidUrl("https://example.com/path/to/page?query=value#section", params)).toBe(true); - expect(isValidUrl("https://user:pass@example.com/path", params)).toBe(true); - expect(isValidUrl("https://example.com:8080/path", params)).toBe(true); - expect(isValidUrl("https://127.0.0.1/path", params)).toBe(true); - expect(isValidUrl("https://[::1]/path", params)).toBe(true); - }); + test("valid URLs (must contain a path)", () => { + const params = { mandatoryPath: true }; + expect(isValidUrl("https://example.com/path", params)).toBe(true); + expect(isValidUrl("https://example.com/path/to/resource", params)).toBe( + true, + ); + expect(isValidUrl("https://example.com/path?query=test", params)).toBe( + true, + ); + expect(isValidUrl("https://example.com/path#fragment", params)).toBe(true); + expect( + isValidUrl( + "https://example.com/path/to/page?query=value#section", + params, + ), + ).toBe(true); + expect(isValidUrl("https://user:pass@example.com/path", params)).toBe(true); + expect(isValidUrl("https://example.com:8080/path", params)).toBe(true); + expect(isValidUrl("https://127.0.0.1/path", params)).toBe(true); + expect(isValidUrl("https://[::1]/path", params)).toBe(true); + }); - test("edge cases", () => { - expect(isValidUrl("http://localhost")).toBe(true); - expect(isValidUrl("http://localhost:3000")).toBe(true); - expect(isValidUrl("https://127.0.0.1")).toBe(true); - expect(isValidUrl("https://127.0.0.1:8080")).toBe(true); - expect(isValidUrl("https://[::1]")).toBe(true); - expect(isValidUrl("https://user:pass@example.com")).toBe(true); - expect(isValidUrl("https://example.com/path/to/page?query=string#fragment")).toBe(true); - expect(isValidUrl("https://example.com/path?valid=true&data[]=123")).toBe(true); - }); -}); \ No newline at end of file + test("edge cases", () => { + expect(isValidUrl("http://localhost")).toBe(true); + expect(isValidUrl("http://localhost:3000")).toBe(true); + expect(isValidUrl("https://127.0.0.1")).toBe(true); + expect(isValidUrl("https://127.0.0.1:8080")).toBe(true); + expect(isValidUrl("https://[::1]")).toBe(true); + expect(isValidUrl("https://user:pass@example.com")).toBe(true); + expect( + isValidUrl("https://example.com/path/to/page?query=string#fragment"), + ).toBe(true); + expect(isValidUrl("https://example.com/path?valid=true&data[]=123")).toBe( + true, + ); + }); +}); diff --git a/src/app/lib/store.ts b/src/app/lib/store.ts index e8eb13d7..40d683f6 100644 --- a/src/app/lib/store.ts +++ b/src/app/lib/store.ts @@ -25,8 +25,8 @@ type YamlStore = { }; type ITCountrySpecificStore = { - showCountryExtensionVersion: boolean - setShowCountryExtensionVersion: (value: boolean) => void + showCountryExtensionVersion: boolean; + setShowCountryExtensionVersion: (value: boolean) => void; }; type LanguagesStore = { @@ -117,23 +117,28 @@ export const useYamlStore = create()( publiccodeYmlVersion: state.publiccodeYmlVersion, isPublicCodeImported: state.isPublicCodeImported, }), - } - ) + }, + ), ); -export const useITCountrySpecific = create()(persist( - (set) => ({ - showCountryExtensionVersion: false, - setShowCountryExtensionVersion: (showCountryExtensionVersion: boolean) => { - set((state) => ({ ...state, showCountryExtensionVersion })) - } - }), - { - name: "itCountrySpecific-store", - partialize: (state => ({ - showCountryExtensionVersion: state.showCountryExtensionVersion - })) - })); +export const useITCountrySpecific = create()( + persist( + (set) => ({ + showCountryExtensionVersion: false, + setShowCountryExtensionVersion: ( + showCountryExtensionVersion: boolean, + ) => { + set((state) => ({ ...state, showCountryExtensionVersion })); + }, + }), + { + name: "itCountrySpecific-store", + partialize: (state) => ({ + showCountryExtensionVersion: state.showCountryExtensionVersion, + }), + }, + ), +); export const useWarningStore = create()( persist( @@ -148,8 +153,8 @@ export const useWarningStore = create()( }), { name: "warnings-storage", - } - ) + }, + ), ); const initializeCountrySections = (): CountrySection[] => { @@ -189,7 +194,7 @@ export const useCountryStore = create()((set) => { }, resetCountrySections: () => { const defaultSections = DEFAULT_COUNTRY_SECTIONS.split( - "," + ",", ) as CountrySection[]; set(() => ({ diff --git a/src/app/lib/utils.ts b/src/app/lib/utils.ts index 297adf77..5c08d3ba 100644 --- a/src/app/lib/utils.ts +++ b/src/app/lib/utils.ts @@ -27,30 +27,38 @@ export function useIsMobile(breakpoint = 640) { return isMobile; } -export function collectRemovedKeys(original: unknown, sanitized: unknown, prefix = ""): Array { +export function collectRemovedKeys( + original: unknown, + sanitized: unknown, + prefix = "", +): Array { const removed: Array = []; if (original && typeof original === "object" && !Array.isArray(original)) { const originalObj = original as Record; - const sanitizedObj = (sanitized && typeof sanitized === "object" && !Array.isArray(sanitized)) - ? (sanitized as Record) - : {}; + const sanitizedObj = + sanitized && typeof sanitized === "object" && !Array.isArray(sanitized) + ? (sanitized as Record) + : {}; for (const key of Object.keys(originalObj)) { const nextPrefix = prefix ? `${prefix}.${key}` : key; - if (!(key in sanitizedObj) || (sanitizedObj as Record)[key] === undefined) { + if ( + !(key in sanitizedObj) || + (sanitizedObj as Record)[key] === undefined + ) { removed.push(nextPrefix); } else { removed.push( ...collectRemovedKeys( (originalObj as Record)[key], (sanitizedObj as Record)[key], - nextPrefix - ) + nextPrefix, + ), ); } } } return removed; -} \ No newline at end of file +} diff --git a/src/app/linter/index.ts b/src/app/linter/index.ts index 3b6b1108..2725a785 100644 --- a/src/app/linter/index.ts +++ b/src/app/linter/index.ts @@ -16,7 +16,7 @@ import { removeEmpty } from "./remove-empty"; function validateCategories(categoriesArray: string[]): string[] { return categoriesArray.filter((category) => - categories.includes(category as TCategory) + categories.includes(category as TCategory), ); } @@ -102,7 +102,7 @@ export default function linter({ }, dependsOn: dependsOn ? mapValues(dependsOn, (v) => - v ? v.map((d) => sortAs(defaultDependency, d)) : undefined + v ? v.map((d) => sortAs(defaultDependency, d)) : undefined, ) : undefined, it: diff --git a/src/app/linter/remove-empty.spec.ts b/src/app/linter/remove-empty.spec.ts index d018fc76..d2b114b5 100644 --- a/src/app/linter/remove-empty.spec.ts +++ b/src/app/linter/remove-empty.spec.ts @@ -1,469 +1,465 @@ -import PublicCode from '../contents/publiccode'; -import { removeEmpty } from './remove-empty'; - -describe('removeEmpty', () => { - describe('primitive types', () => { - it('should return numbers unchanged', () => { - expect(removeEmpty(42)).toBe(42); - expect(removeEmpty(0)).toBe(0); - expect(removeEmpty(-1)).toBe(-1); - }); - - it('should return booleans unchanged', () => { - expect(removeEmpty(true)).toBe(true); - expect(removeEmpty(false)).toBe(false); - }); - - it('should return null unchanged', () => { - expect(removeEmpty(null)).toBe(null); - }); - - it('should return non-empty strings unchanged', () => { - expect(removeEmpty('hello')).toBe('hello'); - expect(removeEmpty('test')).toBe('test'); - }); - }); - - describe('simple objects', () => { - it('should remove properties with empty strings', () => { - const input = { name: 'John', empty: '', age: 30 }; - const result = removeEmpty(input); - expect(result).toEqual({ name: 'John', age: 30 }); - expect(result).not.toHaveProperty('empty'); - }); - - it('should remove undefined properties', () => { - const input = { name: 'John', undefined: undefined, age: 30 }; - const result = removeEmpty(input); - expect(result).toEqual({ name: 'John', age: 30 }); - expect(result).not.toHaveProperty('undefined'); - }); - - it('should remove empty arrays', () => { - const input = { name: 'John', items: [], age: 30 }; - const result = removeEmpty(input); - expect(result).toEqual({ name: 'John', age: 30 }); - expect(result).not.toHaveProperty('items'); - }); - - it('should remove empty objects', () => { - const input = { name: 'John', data: {}, age: 30 }; - const result = removeEmpty(input); - expect(result).toEqual({ name: 'John', age: 30 }); - expect(result).not.toHaveProperty('data'); - }); - - it('should keep non-empty arrays', () => { - const input = { name: 'John', items: [1, 2, 3], age: 30 }; - const result = removeEmpty(input); - expect(result).toEqual({ name: 'John', items: [1, 2, 3], age: 30 }); - }); - - it('should keep non-empty objects', () => { - const input = { name: 'John', data: { key: 'value' }, age: 30 }; - const result = removeEmpty(input); - expect(result).toEqual({ name: 'John', data: { key: 'value' }, age: 30 }); - }); - }); - - describe('nested objects', () => { - it('should handle nested objects with empty values', () => { - const input = { - user: { - name: 'John', - email: '', - profile: { - bio: '', - tags: [] - } - }, - settings: { - theme: 'dark' - } - }; - - const result = removeEmpty(input); - expect(result).toEqual({ - user: { - name: 'John' - }, - settings: { - theme: 'dark' - } - }); - }); - - it('should remove objects that become empty after cleaning', () => { - const input = { - user: { - empty1: '', - empty2: undefined, - empty3: [] - }, - valid: 'data' - }; - - const result = removeEmpty(input); - expect(result).toEqual({ valid: 'data' }); - expect(result).not.toHaveProperty('user'); - }); - - it('should handle deep nesting', () => { - const input = { - level1: { - level2: { - level3: { - value: '', - data: undefined - }, - keep: 'this' - } - } - }; - - const result = removeEmpty(input); - expect(result).toEqual({ - level1: { - level2: { - keep: 'this' - } - } - }); - }); - }); - - describe('arrays', () => { - it('should clean objects inside arrays', () => { - const input = { - items: [ - { name: 'Item1', empty: '' }, - { name: 'Item2', data: 'valid' }, - { empty1: '', empty2: undefined } - ] - }; - - const result = removeEmpty(input); - - expect(result).toEqual({ - items: [ - { name: 'Item1' }, - { name: 'Item2', data: 'valid' }, - undefined - ] - }); - }); - - it('should keep arrays with valid elements', () => { - const input = { - numbers: [1, 2, 3], - strings: ['a', 'b', 'c'] - }; - - const result = removeEmpty(input); - expect(result).toEqual({ - numbers: [1, 2, 3], - strings: ['a', 'b', 'c'] - }); - }); - }); - - describe('edge cases', () => { - it('should handle completely empty objects', () => { - const input = { empty1: '', empty2: undefined, empty3: [] }; - const result = removeEmpty(input); - expect(result).toEqual({}); - }); - - it('should handle empty input objects', () => { - const input = {}; - const result = removeEmpty(input); - expect(result).toEqual({}); - }); - - it('should preserve properties with value 0', () => { - const input = { count: 0, name: 'test', empty: '' }; - const result = removeEmpty(input); - expect(result).toEqual({ count: 0, name: 'test' }); - }); - - it('should preserve properties with value false', () => { - const input = { active: false, name: 'test', empty: '' }; - const result = removeEmpty(input); - expect(result).toEqual({ active: false, name: 'test' }); - }); - - it('should preserve properties with value null', () => { - const input = { data: null, name: 'test', empty: '' }; - const result = removeEmpty(input); - expect(result).toEqual({ data: null, name: 'test' }); - }); - }); - - describe('mutability', () => { - it('should modify the original object (mutation)', () => { - const input = { name: 'John', empty: '', age: 30 }; - const result = removeEmpty(input); - - // The function modifies the original object - expect(result).toBe(input); - expect(input).toEqual({ name: 'John', age: 30 }); - }); - }); - - describe('TypeScript types', () => { - it('should maintain input type', () => { - interface User { - name: string; - email?: string; - age: number; - } - - const input: User = { name: 'John', email: '', age: 30 }; - const result: User = removeEmpty(input); - - expect(result).toEqual({ name: 'John', age: 30 }); - }); - }); - - describe('real world cases - publiccode.yml object', () => { - const publiccodeData = { - "publiccodeYmlVersion": "0.2", - "name": "Design Angular Kit", - "url": "https://github.com/italia/design-angular-kit", - "landingURL": "https://italia.github.io/design-angular-kit", - "isBasedOn": [ - "Bootstrap Italia" - ], - "softwareVersion": "v20.0.0", - "releaseDate": "2025-06-24", - "platforms": [ - "web" - ], - "categories": [ - "website-builder" - ], - "roadmap": "https://github.com/italia/design-angular-kit/issues", - "developmentStatus": "stable", - "softwareType": "library", - "description": { - "it": { - "genericName": "Design Angular Kit", - "shortDescription": "La libreria Design Angular Kit è il modo più semplice e sicuro per costruire UI web moderne, inclusive e semplici da mantenere utilizzando Angular.", - "longDescription": "La libreria **Design Angular Kit** è il modo più semplice e sicuro per\ncostruire interfacce web **moderne**, **inclusive** e **semplici da\nmantenere** utilizzando il framework Angular.\n\nCompletamente **open-source**, costruita sulle fondamenta di \n[Bootstrap Italia 2.x](https://github.com/italia/bootstrap-italia \"Repository GitHub di Bootstrap Italia\") \ndi cui eredita tutte le funzionalità, componenti, griglie e classi di utilità.\n", - "documentation": "https://italia.github.io/design-angular-kit", - "features": [ - "responsive", - "accessibility", - "inclusion", - "web development", - "PNRR", - "PNRR/Misura/1.4.1", - "PNRR/Beneficiari/Comuni", - "PNRR/Beneficiari/Scuole" - ] - } - }, - "legal": { - "license": "BSD-3-Clause", - "mainCopyrightOwner": "Presidenza del Consiglio dei Ministri", - "authorsFile": "https://github.com/italia/design-angular-kit/blob/main/AUTHORS" - }, - "maintenance": { - "type": "community", - "contacts": [ - { - "name": "Designers Italia", - "email": "a@a.it", - "phone": "", - "affiliation": "" - }, - { - "name": "valerio", - "email": "a@a.it", - "phone": "", - "affiliation": "" - } - ] - }, - "localisation": { - "localisationReady": false, - "availableLanguages": [ - "it" - ] +import PublicCode from "../contents/publiccode"; +import { removeEmpty } from "./remove-empty"; + +describe("removeEmpty", () => { + describe("primitive types", () => { + it("should return numbers unchanged", () => { + expect(removeEmpty(42)).toBe(42); + expect(removeEmpty(0)).toBe(0); + expect(removeEmpty(-1)).toBe(-1); + }); + + it("should return booleans unchanged", () => { + expect(removeEmpty(true)).toBe(true); + expect(removeEmpty(false)).toBe(false); + }); + + it("should return null unchanged", () => { + expect(removeEmpty(null)).toBe(null); + }); + + it("should return non-empty strings unchanged", () => { + expect(removeEmpty("hello")).toBe("hello"); + expect(removeEmpty("test")).toBe("test"); + }); + }); + + describe("simple objects", () => { + it("should remove properties with empty strings", () => { + const input = { name: "John", empty: "", age: 30 }; + const result = removeEmpty(input); + expect(result).toEqual({ name: "John", age: 30 }); + expect(result).not.toHaveProperty("empty"); + }); + + it("should remove undefined properties", () => { + const input = { name: "John", undefined: undefined, age: 30 }; + const result = removeEmpty(input); + expect(result).toEqual({ name: "John", age: 30 }); + expect(result).not.toHaveProperty("undefined"); + }); + + it("should remove empty arrays", () => { + const input = { name: "John", items: [], age: 30 }; + const result = removeEmpty(input); + expect(result).toEqual({ name: "John", age: 30 }); + expect(result).not.toHaveProperty("items"); + }); + + it("should remove empty objects", () => { + const input = { name: "John", data: {}, age: 30 }; + const result = removeEmpty(input); + expect(result).toEqual({ name: "John", age: 30 }); + expect(result).not.toHaveProperty("data"); + }); + + it("should keep non-empty arrays", () => { + const input = { name: "John", items: [1, 2, 3], age: 30 }; + const result = removeEmpty(input); + expect(result).toEqual({ name: "John", items: [1, 2, 3], age: 30 }); + }); + + it("should keep non-empty objects", () => { + const input = { name: "John", data: { key: "value" }, age: 30 }; + const result = removeEmpty(input); + expect(result).toEqual({ name: "John", data: { key: "value" }, age: 30 }); + }); + }); + + describe("nested objects", () => { + it("should handle nested objects with empty values", () => { + const input = { + user: { + name: "John", + email: "", + profile: { + bio: "", + tags: [], + }, + }, + settings: { + theme: "dark", + }, + }; + + const result = removeEmpty(input); + expect(result).toEqual({ + user: { + name: "John", + }, + settings: { + theme: "dark", + }, + }); + }); + + it("should remove objects that become empty after cleaning", () => { + const input = { + user: { + empty1: "", + empty2: undefined, + empty3: [], + }, + valid: "data", + }; + + const result = removeEmpty(input); + expect(result).toEqual({ valid: "data" }); + expect(result).not.toHaveProperty("user"); + }); + + it("should handle deep nesting", () => { + const input = { + level1: { + level2: { + level3: { + value: "", + data: undefined, }, - "it": { - "countryExtensionVersion": "0.2", - "conforme": { - "lineeGuidaDesign": false, - "modelloInteroperabilita": false, - "misureMinimeSicurezza": false, - "gdpr": false - }, - "piattaforme": { - "spid": false, - "cie": false, - "anpr": false, - "pagopa": false - }, - "riuso": { - "codiceIPA": "pcm" - } - } - }; - - it('should remove empty strings in contacts', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)); - input.maintenance.contacts[0].phone = ""; - input.maintenance.contacts[0].affiliation = ""; - input.maintenance.contacts[1].phone = ""; - input.maintenance.contacts[1].affiliation = ""; - - const result = removeEmpty(input); - - expect(result.maintenance.contacts[0]).not.toHaveProperty('phone'); - expect(result.maintenance.contacts[0]).not.toHaveProperty('affiliation'); - expect(result.maintenance.contacts[1]).not.toHaveProperty('phone'); - expect(result.maintenance.contacts[1]).not.toHaveProperty('affiliation'); - - // Should maintain name and email - expect(result.maintenance.contacts[0]).toHaveProperty('name', 'Designers Italia'); - expect(result.maintenance.contacts[0]).toHaveProperty('email', 'a@a.it'); - }); - - it('should keep non-empty arrays like features', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)); - const result = removeEmpty(input); - - expect(result.description.it.features).toEqual([ - "responsive", - "accessibility", - "inclusion", - "web development", - "PNRR", - "PNRR/Misura/1.4.1", - "PNRR/Beneficiari/Comuni", - "PNRR/Beneficiari/Scuole" - ]); - }); - - it('should keep false boolean values', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)); - const result = removeEmpty(input); - - expect(result.localisation.localisationReady).toBe(false); - expect(result.it.conforme.lineeGuidaDesign).toBe(false); - expect(result.it.piattaforme.spid).toBe(false); - }); - - it('should remove properties that are undefined', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; - input.applicationSuite = undefined; - input.description.it.localisedName = undefined; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.maintenance as any).emptyMaintenance = undefined; - - const result = removeEmpty(input); - - expect(result).not.toHaveProperty('applicationSuite'); - expect(result.description.it).not.toHaveProperty('localisedName'); - expect(result.maintenance).not.toHaveProperty('emptyMaintenance'); - }); - - it('should remove arrays that are empty', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; - input.usedBy = []; - input.description.it.awards = []; - input.localisation.availableLanguages = []; - - const result = removeEmpty(input); - - expect(result).not.toHaveProperty('emptyArray'); - expect(result.description.it).not.toHaveProperty('emptyFeatures'); - expect(result.legal).not.toHaveProperty('emptyLicenses'); - }); - - it('should remove objects that has no property', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.legal as any) = {}; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.description.fr as any) = {}; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input as any).outOfStandardObject = {}; - - const result = removeEmpty(input); - - expect(result).not.toHaveProperty('legal'); - expect(result.description).not.toHaveProperty('fr'); - expect(result).not.toHaveProperty('outOfStandardObject'); - }); - - it('should handle contacts with all empty properties', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)); - input.maintenance.contacts.push({ - name: "", - email: "", - phone: "", - affiliation: "" - }); - - const result = removeEmpty(input); - - // should keep contact as undefined object - expect(result.maintenance.contacts).toHaveLength(3); - expect(result.maintenance.contacts[2]).toEqual(undefined); - }); - - it('should keep the entire structure with valid values', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)); - const result = removeEmpty(input); - - // check wherte all the main properties still exist - expect(result).toHaveProperty('publiccodeYmlVersion', '0.2'); - expect(result).toHaveProperty('name', 'Design Angular Kit'); - expect(result).toHaveProperty('description'); - expect(result.description).toHaveProperty('it'); - expect(result.description.it).toHaveProperty('genericName'); - expect(result).toHaveProperty('legal'); - expect(result.legal).toHaveProperty('license', 'BSD-3-Clause'); - expect(result).toHaveProperty('maintenance'); - expect(result.maintenance).toHaveProperty('type', 'community'); - }); - - it('should handle deep changes in nested object', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; - - // Add empty propierties at different nested levels - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.description.it as any).emptyProp = ""; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.it?.conforme as any).emptyConf = undefined; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.it?.piattaforme as any).emptyPlatform = []; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input.maintenance.contacts?.[0] as any).emptyContact = {}; - - const result = removeEmpty(input); - - expect(result.description.it).not.toHaveProperty('emptyProp'); - expect(result.it?.conforme).not.toHaveProperty('emptyConf'); - expect(result.it?.piattaforme).not.toHaveProperty('emptyPlatform'); - expect(result.maintenance.contacts?.[0]).not.toHaveProperty('emptyContact'); - - // Check that properites keep their validity - expect(result.description.it).toHaveProperty('genericName'); - expect(result.it?.conforme).toHaveProperty('lineeGuidaDesign', false); - expect(result.maintenance.contacts?.[0]).toHaveProperty('name'); - }); - - it('should preserve array with valid values', () => { - const input = JSON.parse(JSON.stringify(publiccodeData)); - const result = removeEmpty(input); - - expect(result.isBasedOn).toEqual(["Bootstrap Italia"]); - expect(result.platforms).toEqual(["web"]); - expect(result.categories).toEqual(["website-builder"]); - expect(result.localisation.availableLanguages).toEqual(["it"]); - }); - }); -}); \ No newline at end of file + keep: "this", + }, + }, + }; + + const result = removeEmpty(input); + expect(result).toEqual({ + level1: { + level2: { + keep: "this", + }, + }, + }); + }); + }); + + describe("arrays", () => { + it("should clean objects inside arrays", () => { + const input = { + items: [ + { name: "Item1", empty: "" }, + { name: "Item2", data: "valid" }, + { empty1: "", empty2: undefined }, + ], + }; + + const result = removeEmpty(input); + + expect(result).toEqual({ + items: [{ name: "Item1" }, { name: "Item2", data: "valid" }, undefined], + }); + }); + + it("should keep arrays with valid elements", () => { + const input = { + numbers: [1, 2, 3], + strings: ["a", "b", "c"], + }; + + const result = removeEmpty(input); + expect(result).toEqual({ + numbers: [1, 2, 3], + strings: ["a", "b", "c"], + }); + }); + }); + + describe("edge cases", () => { + it("should handle completely empty objects", () => { + const input = { empty1: "", empty2: undefined, empty3: [] }; + const result = removeEmpty(input); + expect(result).toEqual({}); + }); + + it("should handle empty input objects", () => { + const input = {}; + const result = removeEmpty(input); + expect(result).toEqual({}); + }); + + it("should preserve properties with value 0", () => { + const input = { count: 0, name: "test", empty: "" }; + const result = removeEmpty(input); + expect(result).toEqual({ count: 0, name: "test" }); + }); + + it("should preserve properties with value false", () => { + const input = { active: false, name: "test", empty: "" }; + const result = removeEmpty(input); + expect(result).toEqual({ active: false, name: "test" }); + }); + + it("should preserve properties with value null", () => { + const input = { data: null, name: "test", empty: "" }; + const result = removeEmpty(input); + expect(result).toEqual({ data: null, name: "test" }); + }); + }); + + describe("mutability", () => { + it("should modify the original object (mutation)", () => { + const input = { name: "John", empty: "", age: 30 }; + const result = removeEmpty(input); + + // The function modifies the original object + expect(result).toBe(input); + expect(input).toEqual({ name: "John", age: 30 }); + }); + }); + + describe("TypeScript types", () => { + it("should maintain input type", () => { + interface User { + name: string; + email?: string; + age: number; + } + + const input: User = { name: "John", email: "", age: 30 }; + const result: User = removeEmpty(input); + + expect(result).toEqual({ name: "John", age: 30 }); + }); + }); + + describe("real world cases - publiccode.yml object", () => { + const publiccodeData = { + publiccodeYmlVersion: "0.2", + name: "Design Angular Kit", + url: "https://github.com/italia/design-angular-kit", + landingURL: "https://italia.github.io/design-angular-kit", + isBasedOn: ["Bootstrap Italia"], + softwareVersion: "v20.0.0", + releaseDate: "2025-06-24", + platforms: ["web"], + categories: ["website-builder"], + roadmap: "https://github.com/italia/design-angular-kit/issues", + developmentStatus: "stable", + softwareType: "library", + description: { + it: { + genericName: "Design Angular Kit", + shortDescription: + "La libreria Design Angular Kit è il modo più semplice e sicuro per costruire UI web moderne, inclusive e semplici da mantenere utilizzando Angular.", + longDescription: + 'La libreria **Design Angular Kit** è il modo più semplice e sicuro per\ncostruire interfacce web **moderne**, **inclusive** e **semplici da\nmantenere** utilizzando il framework Angular.\n\nCompletamente **open-source**, costruita sulle fondamenta di \n[Bootstrap Italia 2.x](https://github.com/italia/bootstrap-italia "Repository GitHub di Bootstrap Italia") \ndi cui eredita tutte le funzionalità, componenti, griglie e classi di utilità.\n', + documentation: "https://italia.github.io/design-angular-kit", + features: [ + "responsive", + "accessibility", + "inclusion", + "web development", + "PNRR", + "PNRR/Misura/1.4.1", + "PNRR/Beneficiari/Comuni", + "PNRR/Beneficiari/Scuole", + ], + }, + }, + legal: { + license: "BSD-3-Clause", + mainCopyrightOwner: "Presidenza del Consiglio dei Ministri", + authorsFile: + "https://github.com/italia/design-angular-kit/blob/main/AUTHORS", + }, + maintenance: { + type: "community", + contacts: [ + { + name: "Designers Italia", + email: "a@a.it", + phone: "", + affiliation: "", + }, + { + name: "valerio", + email: "a@a.it", + phone: "", + affiliation: "", + }, + ], + }, + localisation: { + localisationReady: false, + availableLanguages: ["it"], + }, + it: { + countryExtensionVersion: "0.2", + conforme: { + lineeGuidaDesign: false, + modelloInteroperabilita: false, + misureMinimeSicurezza: false, + gdpr: false, + }, + piattaforme: { + spid: false, + cie: false, + anpr: false, + pagopa: false, + }, + riuso: { + codiceIPA: "pcm", + }, + }, + }; + + it("should remove empty strings in contacts", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)); + input.maintenance.contacts[0].phone = ""; + input.maintenance.contacts[0].affiliation = ""; + input.maintenance.contacts[1].phone = ""; + input.maintenance.contacts[1].affiliation = ""; + + const result = removeEmpty(input); + + expect(result.maintenance.contacts[0]).not.toHaveProperty("phone"); + expect(result.maintenance.contacts[0]).not.toHaveProperty("affiliation"); + expect(result.maintenance.contacts[1]).not.toHaveProperty("phone"); + expect(result.maintenance.contacts[1]).not.toHaveProperty("affiliation"); + + // Should maintain name and email + expect(result.maintenance.contacts[0]).toHaveProperty( + "name", + "Designers Italia", + ); + expect(result.maintenance.contacts[0]).toHaveProperty("email", "a@a.it"); + }); + + it("should keep non-empty arrays like features", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)); + const result = removeEmpty(input); + + expect(result.description.it.features).toEqual([ + "responsive", + "accessibility", + "inclusion", + "web development", + "PNRR", + "PNRR/Misura/1.4.1", + "PNRR/Beneficiari/Comuni", + "PNRR/Beneficiari/Scuole", + ]); + }); + + it("should keep false boolean values", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)); + const result = removeEmpty(input); + + expect(result.localisation.localisationReady).toBe(false); + expect(result.it.conforme.lineeGuidaDesign).toBe(false); + expect(result.it.piattaforme.spid).toBe(false); + }); + + it("should remove properties that are undefined", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; + input.applicationSuite = undefined; + input.description.it.localisedName = undefined; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.maintenance as any).emptyMaintenance = undefined; + + const result = removeEmpty(input); + + expect(result).not.toHaveProperty("applicationSuite"); + expect(result.description.it).not.toHaveProperty("localisedName"); + expect(result.maintenance).not.toHaveProperty("emptyMaintenance"); + }); + + it("should remove arrays that are empty", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; + input.usedBy = []; + input.description.it.awards = []; + input.localisation.availableLanguages = []; + + const result = removeEmpty(input); + + expect(result).not.toHaveProperty("emptyArray"); + expect(result.description.it).not.toHaveProperty("emptyFeatures"); + expect(result.legal).not.toHaveProperty("emptyLicenses"); + }); + + it("should remove objects that has no property", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.legal as any) = {}; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.description.fr as any) = {}; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input as any).outOfStandardObject = {}; + + const result = removeEmpty(input); + + expect(result).not.toHaveProperty("legal"); + expect(result.description).not.toHaveProperty("fr"); + expect(result).not.toHaveProperty("outOfStandardObject"); + }); + + it("should handle contacts with all empty properties", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)); + input.maintenance.contacts.push({ + name: "", + email: "", + phone: "", + affiliation: "", + }); + + const result = removeEmpty(input); + + // should keep contact as undefined object + expect(result.maintenance.contacts).toHaveLength(3); + expect(result.maintenance.contacts[2]).toEqual(undefined); + }); + + it("should keep the entire structure with valid values", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)); + const result = removeEmpty(input); + + // check wherte all the main properties still exist + expect(result).toHaveProperty("publiccodeYmlVersion", "0.2"); + expect(result).toHaveProperty("name", "Design Angular Kit"); + expect(result).toHaveProperty("description"); + expect(result.description).toHaveProperty("it"); + expect(result.description.it).toHaveProperty("genericName"); + expect(result).toHaveProperty("legal"); + expect(result.legal).toHaveProperty("license", "BSD-3-Clause"); + expect(result).toHaveProperty("maintenance"); + expect(result.maintenance).toHaveProperty("type", "community"); + }); + + it("should handle deep changes in nested object", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)) as PublicCode; + + // Add empty propierties at different nested levels + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.description.it as any).emptyProp = ""; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.it?.conforme as any).emptyConf = undefined; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.it?.piattaforme as any).emptyPlatform = []; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (input.maintenance.contacts?.[0] as any).emptyContact = {}; + + const result = removeEmpty(input); + + expect(result.description.it).not.toHaveProperty("emptyProp"); + expect(result.it?.conforme).not.toHaveProperty("emptyConf"); + expect(result.it?.piattaforme).not.toHaveProperty("emptyPlatform"); + expect(result.maintenance.contacts?.[0]).not.toHaveProperty( + "emptyContact", + ); + + // Check that properites keep their validity + expect(result.description.it).toHaveProperty("genericName"); + expect(result.it?.conforme).toHaveProperty("lineeGuidaDesign", false); + expect(result.maintenance.contacts?.[0]).toHaveProperty("name"); + }); + + it("should preserve array with valid values", () => { + const input = JSON.parse(JSON.stringify(publiccodeData)); + const result = removeEmpty(input); + + expect(result.isBasedOn).toEqual(["Bootstrap Italia"]); + expect(result.platforms).toEqual(["web"]); + expect(result.categories).toEqual(["website-builder"]); + expect(result.localisation.availableLanguages).toEqual(["it"]); + }); + }); +}); diff --git a/src/app/linter/remove-empty.ts b/src/app/linter/remove-empty.ts index 75add474..616ae1e7 100644 --- a/src/app/linter/remove-empty.ts +++ b/src/app/linter/remove-empty.ts @@ -1,35 +1,29 @@ -import { - isArray, - isEmpty, - isObjectLike, - isString, - isUndefined -} from "lodash"; +import { isArray, isEmpty, isObjectLike, isString, isUndefined } from "lodash"; -const isEmptyArrayOrObjectWithNoProperty = (val: (T & object)[Extract]) => (( - isArray(val) || - isObjectLike(val)) && isEmpty(val)) +const isEmptyArrayOrObjectWithNoProperty = ( + val: (T & object)[Extract], +) => (isArray(val) || isObjectLike(val)) && isEmpty(val); -const isEmptyString = (val: (T & object)[Extract]) => isString(val) && isEmpty(val) +const isEmptyString = (val: (T & object)[Extract]) => + isString(val) && isEmpty(val); function removeEmpty(obj: T): T { - if (typeof obj !== "object") return obj; - - const ret = obj; - - for (const key in ret) { - const val = removeEmpty(ret[key]); - if ( - isEmptyArrayOrObjectWithNoProperty(val) || - isEmptyString(val) || - isUndefined(val) - ) { - delete ret[key]; - } + if (typeof obj !== "object") return obj; + + const ret = obj; + + for (const key in ret) { + const val = removeEmpty(ret[key]); + if ( + isEmptyArrayOrObjectWithNoProperty(val) || + isEmptyString(val) || + isUndefined(val) + ) { + delete ret[key]; } + } - return ret; + return ret; } export { removeEmpty }; - diff --git a/src/app/oembed/index.ts b/src/app/oembed/index.ts index 42671fb1..d2099043 100644 --- a/src/app/oembed/index.ts +++ b/src/app/oembed/index.ts @@ -1,7 +1,9 @@ -import type { PhotoProviderResponse, VideoProviderResponse } from "./oembed-models"; +import type { + PhotoProviderResponse, + VideoProviderResponse, +} from "./oembed-models"; import { getOEmbed } from "./oembed-service"; export type { PhotoProviderResponse, VideoProviderResponse }; export { getOEmbed }; - diff --git a/src/app/oembed/oembed-models.ts b/src/app/oembed/oembed-models.ts index 71e214c5..592474b1 100644 --- a/src/app/oembed/oembed-models.ts +++ b/src/app/oembed/oembed-models.ts @@ -1,39 +1,43 @@ interface ConsumerRequest { - url: string; - format?: string; - maxwidth?: number; - maxheight?: number; + url: string; + format?: string; + maxwidth?: number; + maxheight?: number; } interface BaseProviderResponse { - type: 'photo' | 'video'; - version: string; - title?: string; - author_name?: string; - author_url?: string; - provider_name?: string; - provider_url?: string; - cache_age?: number; - thumbnail_url?: string; - thumbnail_width?: number; - thumbnail_height?: number; + type: "photo" | "video"; + version: string; + title?: string; + author_name?: string; + author_url?: string; + provider_name?: string; + provider_url?: string; + cache_age?: number; + thumbnail_url?: string; + thumbnail_width?: number; + thumbnail_height?: number; } interface PhotoProviderResponse extends BaseProviderResponse { - type: 'photo'; - url: string; - width: number; - height: number; + type: "photo"; + url: string; + width: number; + height: number; } interface VideoProviderResponse extends BaseProviderResponse { - type: 'video'; - html: string; - width: number; - height: number; + type: "video"; + html: string; + width: number; + height: number; } type ProviderResponse = PhotoProviderResponse | VideoProviderResponse; -export type { ConsumerRequest, PhotoProviderResponse, ProviderResponse, VideoProviderResponse }; - +export type { + ConsumerRequest, + PhotoProviderResponse, + ProviderResponse, + VideoProviderResponse, +}; diff --git a/src/app/oembed/oembed-service.ts b/src/app/oembed/oembed-service.ts index 405e9499..b7888174 100644 --- a/src/app/oembed/oembed-service.ts +++ b/src/app/oembed/oembed-service.ts @@ -1,34 +1,36 @@ -import { ConsumerRequest, ProviderResponse } from './oembed-models'; -import { OEmbedUrlBuilder } from './oembed-url-builder'; -import { findOEmbedEndpointUrlByReqUrl } from './providers'; - -const getOEmbed = async (request: ConsumerRequest, { signal }: { signal: AbortSignal }): Promise => { - const oembedEndpoint = findOEmbedEndpointUrlByReqUrl(request.url); - - if (!oembedEndpoint) { - throw new Error('no matching schema') - } - - const url = new OEmbedUrlBuilder() - .withOEmbedEndpoint(oembedEndpoint) - .withRequest(request) - .build() - - try { - const response = await fetch(url, { signal }) - - const body = await response.json(); - - return body as T; - } catch (error) { - if ((error as Error).name === 'AbortError') { - console.log("Fetch aborted"); - } else { - console.error("Failed to fetch oEmbed:", error); - } - throw new Error((error as Error).message) +import { ConsumerRequest, ProviderResponse } from "./oembed-models"; +import { OEmbedUrlBuilder } from "./oembed-url-builder"; +import { findOEmbedEndpointUrlByReqUrl } from "./providers"; + +const getOEmbed = async ( + request: ConsumerRequest, + { signal }: { signal: AbortSignal }, +): Promise => { + const oembedEndpoint = findOEmbedEndpointUrlByReqUrl(request.url); + + if (!oembedEndpoint) { + throw new Error("no matching schema"); + } + + const url = new OEmbedUrlBuilder() + .withOEmbedEndpoint(oembedEndpoint) + .withRequest(request) + .build(); + + try { + const response = await fetch(url, { signal }); + + const body = await response.json(); + + return body as T; + } catch (error) { + if ((error as Error).name === "AbortError") { + console.log("Fetch aborted"); + } else { + console.error("Failed to fetch oEmbed:", error); } -} - + throw new Error((error as Error).message); + } +}; export { getOEmbed }; diff --git a/src/app/oembed/oembed-url-builder.ts b/src/app/oembed/oembed-url-builder.ts index 98040e55..938ac16a 100644 --- a/src/app/oembed/oembed-url-builder.ts +++ b/src/app/oembed/oembed-url-builder.ts @@ -1,38 +1,41 @@ import { ConsumerRequest } from "./oembed-models"; class OEmbedUrlBuilder { - #oembedEndpoint?: string; - #request?: ConsumerRequest; - - withOEmbedEndpoint(oembedEndpoint: string) { - this.#oembedEndpoint = oembedEndpoint; - return this; - } - - withRequest(request: ConsumerRequest) { - this.#request = request; - return this; + #oembedEndpoint?: string; + #request?: ConsumerRequest; + + withOEmbedEndpoint(oembedEndpoint: string) { + this.#oembedEndpoint = oembedEndpoint; + return this; + } + + withRequest(request: ConsumerRequest) { + this.#request = request; + return this; + } + + build() { + if (!this.#request || !this.#oembedEndpoint) { + throw new Error("Missing parameter"); } - build() { - if (!this.#request || !this.#oembedEndpoint) { - throw new Error('Missing parameter'); - } - - const optionalQueryParamsList = []; + const optionalQueryParamsList = []; - if (this.#request.maxheight) { - optionalQueryParamsList.push(['maxheight', this.#request.maxheight]); - } + if (this.#request.maxheight) { + optionalQueryParamsList.push(["maxheight", this.#request.maxheight]); + } - if (this.#request.maxwidth) { - optionalQueryParamsList.push(['maxwidth', this.#request.maxwidth]); - } + if (this.#request.maxwidth) { + optionalQueryParamsList.push(["maxwidth", this.#request.maxwidth]); + } - const optionalQueryParams = optionalQueryParamsList.reduce((p, c) => `${p}&${c[0]}=${c[1]}`, '') + const optionalQueryParams = optionalQueryParamsList.reduce( + (p, c) => `${p}&${c[0]}=${c[1]}`, + "", + ); - return `${this.#oembedEndpoint}?url=${this.#request.url}&format=json${optionalQueryParams}`; - } + return `${this.#oembedEndpoint}?url=${this.#request.url}&format=json${optionalQueryParams}`; + } } export { OEmbedUrlBuilder }; diff --git a/src/app/oembed/providers/index.ts b/src/app/oembed/providers/index.ts index 421a1abc..5a0bda2f 100644 --- a/src/app/oembed/providers/index.ts +++ b/src/app/oembed/providers/index.ts @@ -1,3 +1,3 @@ -import { findOEmbedEndpointUrlByReqUrl } from './oembed-provider-service' +import { findOEmbedEndpointUrlByReqUrl } from "./oembed-provider-service"; -export { findOEmbedEndpointUrlByReqUrl } +export { findOEmbedEndpointUrlByReqUrl }; diff --git a/src/app/oembed/providers/oembed-provider-importer.ts b/src/app/oembed/providers/oembed-provider-importer.ts index d8f46089..ef10dbac 100644 --- a/src/app/oembed/providers/oembed-provider-importer.ts +++ b/src/app/oembed/providers/oembed-provider-importer.ts @@ -1,7 +1,6 @@ -import providers from '../../../generated/providers-oembed.json'; -import { OEmbedProviders } from './oembed-provider-models'; +import providers from "../../../generated/providers-oembed.json"; +import { OEmbedProviders } from "./oembed-provider-models"; -const ENDPOINTS = (providers as OEmbedProviders).flatMap(p => p.endpoints); +const ENDPOINTS = (providers as OEmbedProviders).flatMap((p) => p.endpoints); export { ENDPOINTS }; - diff --git a/src/app/oembed/providers/oembed-provider-models.ts b/src/app/oembed/providers/oembed-provider-models.ts index 7238d34c..e279406f 100644 --- a/src/app/oembed/providers/oembed-provider-models.ts +++ b/src/app/oembed/providers/oembed-provider-models.ts @@ -1,15 +1,14 @@ - interface OEmbedEndpoint { - schemes: string[]; - url: string; - discovery?: boolean; - formats?: string[]; + schemes: string[]; + url: string; + discovery?: boolean; + formats?: string[]; } interface OEmbedProvider { - provider_name: string; - provider_url: string; - endpoints: OEmbedEndpoint[]; + provider_name: string; + provider_url: string; + endpoints: OEmbedEndpoint[]; } type OEmbedProviders = OEmbedProvider[]; diff --git a/src/app/oembed/providers/oembed-provider-service.ts b/src/app/oembed/providers/oembed-provider-service.ts index f964a6c2..f1869000 100644 --- a/src/app/oembed/providers/oembed-provider-service.ts +++ b/src/app/oembed/providers/oembed-provider-service.ts @@ -1,21 +1,20 @@ import { ENDPOINTS } from "./oembed-provider-importer"; function matchesSchemas(url: string, schemas: string[]): boolean { - return schemas.some(schema => { - const regex = new RegExp("^" + schema.replace(/\*/g, ".*") + "$"); - return regex.test(url); - }); + return schemas.some((schema) => { + const regex = new RegExp("^" + schema.replace(/\*/g, ".*") + "$"); + return regex.test(url); + }); } function findOEmbedEndpointUrlByReqUrl(reqUrl: string): string | undefined { - for (const endpoint of ENDPOINTS) { - if (endpoint.schemes?.some(scheme => matchesSchemas(reqUrl, [scheme]))) { - return endpoint.url; - } + for (const endpoint of ENDPOINTS) { + if (endpoint.schemes?.some((scheme) => matchesSchemas(reqUrl, [scheme]))) { + return endpoint.url; } + } - return undefined; + return undefined; } - export { findOEmbedEndpointUrlByReqUrl }; diff --git a/src/app/publiccode-adapter.ts b/src/app/publiccode-adapter.ts index 382f324c..7cdd5375 100644 --- a/src/app/publiccode-adapter.ts +++ b/src/app/publiccode-adapter.ts @@ -2,85 +2,91 @@ import { format, parseISO } from "date-fns"; import PublicCode from "./contents/publiccode"; import { removeDuplicate } from "./yaml-upload"; - -const publicCodeAdapter = ({ defaultValues, publicCode }: { defaultValues: Partial; publicCode: PublicCode | null }) => { - if (!publicCode) { - throw new Error('Public Code import error') +const publicCodeAdapter = ({ + defaultValues, + publicCode, +}: { + defaultValues: Partial; + publicCode: PublicCode | null; +}) => { + if (!publicCode) { + throw new Error("Public Code import error"); + } + + const values = { ...defaultValues, ...publicCode } as PublicCode; + + const { usedBy, releaseDate, description, maintenance } = publicCode; + + if (usedBy) { + values.usedBy = removeDuplicate(usedBy); + } + + if (description) { + Object.keys(description).forEach((k) => { + const currentDescription = description[k]; + + if (currentDescription.screenshots) { + currentDescription.screenshots = removeDuplicate( + currentDescription.screenshots, + ); + } + + if (currentDescription.features) { + currentDescription.features = removeDuplicate( + currentDescription.features, + ); + } + }); + } + + if (releaseDate) { + if ((releaseDate as unknown) instanceof Date) { + values.releaseDate = format(releaseDate, "yyyy-MM-dd"); } - const values = { ...defaultValues, ...publicCode } as PublicCode; - - const { usedBy, releaseDate, description, maintenance } = publicCode - - if (usedBy) { - values.usedBy = removeDuplicate(usedBy) + if (typeof releaseDate === "string") { + values.releaseDate = format(parseISO(releaseDate), "yyyy-MM-dd"); } + } - if (description) { - Object - .keys(description) - .forEach(k => { - const currentDescription = description[k]; - - if (currentDescription.screenshots) { - currentDescription.screenshots = removeDuplicate(currentDescription.screenshots); - } + if (maintenance) { + const { type, contractors } = maintenance; - if (currentDescription.features) { - currentDescription.features = removeDuplicate(currentDescription.features) - } - }) + if (type === "none") { + maintenance.contacts = undefined; + maintenance.contractors = undefined; } - if (releaseDate) { - if ((releaseDate as unknown) instanceof Date) { - values.releaseDate = format(releaseDate, 'yyyy-MM-dd') + if (contractors) { + maintenance.contractors = contractors.map((contractor) => { + if (!contractor.until) { + return contractor; } - if (typeof (releaseDate) === 'string') { - values.releaseDate = format(parseISO(releaseDate), 'yyyy-MM-dd') + if ((contractor.until as unknown) instanceof Date) { + return { + ...contractor, + until: format(contractor.until as unknown as Date, "yyyy-MM-dd"), + }; } - } - - if (maintenance) { - const { type, contractors } = maintenance - if (type === 'none') { - maintenance.contacts = undefined - maintenance.contractors = undefined + if (typeof contractor.until === "string") { + try { + return { + ...contractor, + until: format(parseISO(contractor.until), "yyyy-MM-dd"), + }; + } catch { + return contractor; + } } - if (contractors) { - maintenance.contractors = contractors.map(contractor => { - if (!contractor.until) { - return contractor; - } - - if ((contractor.until as unknown) instanceof Date) { - return { - ...contractor, - until: format(contractor.until as unknown as Date, 'yyyy-MM-dd') - }; - } - - if (typeof contractor.until === 'string') { - try { - return { - ...contractor, - until: format(parseISO(contractor.until), 'yyyy-MM-dd') - }; - } catch { - return contractor; - } - } - - return contractor; - }); - } + return contractor; + }); } + } - return values; - -} + return values; +}; -export default publicCodeAdapter; \ No newline at end of file +export default publicCodeAdapter; diff --git a/src/app/semver.spec.ts b/src/app/semver.spec.ts index 1f7389e3..43774a6a 100644 --- a/src/app/semver.spec.ts +++ b/src/app/semver.spec.ts @@ -1,40 +1,40 @@ import { isMinorThanLatest, toSemVerObject } from "./semver"; -describe('semver test', () => { - it('should run', () => { - expect(true).toBe(true) - }) +describe("semver test", () => { + it("should run", () => { + expect(true).toBe(true); + }); - it('should return true if is minor than latest', () => { - //arrange - const versionsUnderTests = [ - toSemVerObject('0.1'), - toSemVerObject('0.2'), - toSemVerObject('0.2.1'), - toSemVerObject('0.3.0'), - toSemVerObject('0.4.0'), - toSemVerObject('0.4.1'), - toSemVerObject('0.5'), - ]; - //act - const [ - actual01, - actual02, - actual021, - actual03, - actual04, - actual041, - actual05 - ] = versionsUnderTests.map(v => isMinorThanLatest(v)); + it("should return true if is minor than latest", () => { + //arrange + const versionsUnderTests = [ + toSemVerObject("0.1"), + toSemVerObject("0.2"), + toSemVerObject("0.2.1"), + toSemVerObject("0.3.0"), + toSemVerObject("0.4.0"), + toSemVerObject("0.4.1"), + toSemVerObject("0.5"), + ]; + //act + const [ + actual01, + actual02, + actual021, + actual03, + actual04, + actual041, + actual05, + ] = versionsUnderTests.map((v) => isMinorThanLatest(v)); - //assert - expect(actual01).toBeTruthy(); - expect(actual02).toBeTruthy(); - expect(actual021).toBeTruthy(); - expect(actual03).toBeTruthy(); - expect(actual04).toBeFalsy(); - expect(actual041).toBeFalsy(); - expect(actual041).toBeFalsy(); - expect(actual05).toBeFalsy(); - }) -}) \ No newline at end of file + //assert + expect(actual01).toBeTruthy(); + expect(actual02).toBeTruthy(); + expect(actual021).toBeTruthy(); + expect(actual03).toBeTruthy(); + expect(actual04).toBeFalsy(); + expect(actual041).toBeFalsy(); + expect(actual041).toBeFalsy(); + expect(actual05).toBeFalsy(); + }); +}); diff --git a/src/app/semver.ts b/src/app/semver.ts index 8d43136c..d35f3f40 100644 --- a/src/app/semver.ts +++ b/src/app/semver.ts @@ -1,62 +1,60 @@ import { LATEST_VERSION } from "./contents/publiccode"; interface SemVerObject { - originalString?: string; - semVer?: string; - major: string; - dotMinor?: string; - minor: string; - dotPatch?: string; - patch: string; - prerelease?: string; - buildmetadata?: string; + originalString?: string; + semVer?: string; + major: string; + dotMinor?: string; + minor: string; + dotPatch?: string; + patch: string; + prerelease?: string; + buildmetadata?: string; } -const SEMVER_WITH_PREFIX_REGEX = /^[\^~]?((0|[1-9]\d*)(\.(0|[1-9]\d*))?(\.(0|[1-9]\d*))?)(?:-((?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/; +const SEMVER_WITH_PREFIX_REGEX = + /^[\^~]?((0|[1-9]\d*)(\.(0|[1-9]\d*))?(\.(0|[1-9]\d*))?)(?:-((?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/; export function toSemVerObject(versionString: string) { - const [ - originalString, - semVer, - major = "0", - dotMinor = '.0', - minor = '0', - dotPatch = '.0', - patch = '0', - prerelease, - buildmetadata - ] = versionString.match(SEMVER_WITH_PREFIX_REGEX) ?? []; - - return { - originalString, - semVer, - major, - dotMinor, - minor, - dotPatch, - patch, - prerelease, - buildmetadata - } satisfies SemVerObject; + const [ + originalString, + semVer, + major = "0", + dotMinor = ".0", + minor = "0", + dotPatch = ".0", + patch = "0", + prerelease, + buildmetadata, + ] = versionString.match(SEMVER_WITH_PREFIX_REGEX) ?? []; + + return { + originalString, + semVer, + major, + dotMinor, + minor, + dotPatch, + patch, + prerelease, + buildmetadata, + } satisfies SemVerObject; } export const isMinorThanLatest = (semver: SemVerObject) => { - const latest = toSemVerObject(LATEST_VERSION); + const latest = toSemVerObject(LATEST_VERSION); - if (+semver.major < +latest.major) { - return true - } + if (+semver.major < +latest.major) { + return true; + } - if (+semver.minor < +latest.minor) { - return true + if (+semver.minor < +latest.minor) { + return true; + } - } + if (+semver.patch < +latest.patch) { + return true; + } - if (+semver.patch < +latest.patch) { - return true - - } - - return false; - -} \ No newline at end of file + return false; +}; diff --git a/src/app/validator.ts b/src/app/validator.ts index b6d7f90d..25c5b17a 100644 --- a/src/app/validator.ts +++ b/src/app/validator.ts @@ -17,7 +17,7 @@ type Result = { declare function IsPublicCodeYmlValid( publiccode: string, branch: string, - baseURL: string + baseURL: string, ): Promise; const path = "main.wasm"; @@ -29,7 +29,7 @@ export async function loadWasm() { if (go) { const { instance } = await WebAssembly.instantiateStreaming( fetch(path), - go.importObject + go.importObject, ); go.run(instance); return window; @@ -53,20 +53,19 @@ interface ValidatorParams { baseURL?: string; } -export const validator = async ( - { - publiccode, - branch = 'main', - baseURL = '' - }: ValidatorParams): Promise => { +export const validator = async ({ + publiccode, + branch = "main", + baseURL = "", +}: ValidatorParams): Promise => { if (!IsPublicCodeYmlValid) throw new Error("Validator not ready"); - - let url = '' + + let url = ""; try { - url = new URL(baseURL).href - // eslint-disable-next-line @typescript-eslint/no-unused-vars + url = new URL(baseURL).href; + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (_: unknown) { - console.warn('invalid URL') + console.warn("invalid URL"); } const res = await IsPublicCodeYmlValid(publiccode, branch, url); diff --git a/src/app/yaml-serializer.ts b/src/app/yaml-serializer.ts index 0a425bca..a9bd5226 100644 --- a/src/app/yaml-serializer.ts +++ b/src/app/yaml-serializer.ts @@ -1,9 +1,11 @@ -import yaml from 'js-yaml'; -import PublicCode from './contents/publiccode'; +import yaml from "js-yaml"; +import PublicCode from "./contents/publiccode"; -async function readStreamAsText(readableStream: ReadableStream) { +async function readStreamAsText( + readableStream: ReadableStream, +) { const reader = readableStream.getReader(); - let result = ''; + let result = ""; const decoder = new TextDecoder(); while (true) { @@ -18,20 +20,22 @@ async function readStreamAsText(readableStream: ReadableS export const serializeYml = (yamlString: string) => { if (!yamlString) { - throw new Error('serializeYml: yamlString is a falsy value') + throw new Error("serializeYml: yamlString is a falsy value"); } try { - return yaml.load(yamlString) + return yaml.load(yamlString); } catch (e) { - console.error(e) - throw new Error('serializeYml: error on load') + console.error(e); + throw new Error("serializeYml: error on load"); } -} +}; const serializeToPublicCode = async (stream: ReadableStream) => { - return await readStreamAsText(stream).then(serializeYml) as Promise; -} + return (await readStreamAsText(stream).then( + serializeYml, + )) as Promise; +}; export default async (stream: ReadableStream) => { - return await serializeToPublicCode(stream) -} \ No newline at end of file + return await serializeToPublicCode(stream); +}; diff --git a/src/app/yaml-upload.spec.ts b/src/app/yaml-upload.spec.ts index 2450c829..6aeb274b 100644 --- a/src/app/yaml-upload.spec.ts +++ b/src/app/yaml-upload.spec.ts @@ -1,73 +1,75 @@ import { hasYamlFileExtension, isYamlFile } from "./yaml-upload"; -describe('yaml upload helper functions tests', () => { +describe("yaml upload helper functions tests", () => { + describe("isYamlFile function tests", () => { + const testFactory = ( + type: string, + assertCondition: boolean, + filename = "publiccode.yml", + ) => { + //arrange + const file = new File([""], filename, { type }); + //act + const actual = isYamlFile(file); + //assert + expect(actual).toBe(assertCondition); + }; - describe('isYamlFile function tests', () => { + it("should return true if mime type is application/yaml (Chrome)", () => { + testFactory("application/yaml", true); + }); - const testFactory = (type: string, assertCondition: boolean, filename = 'publiccode.yml') => { - //arrange - const file = new File([""], filename, { type }); - //act - const actual = isYamlFile(file); - //assert - expect(actual).toBe(assertCondition) - } + it("should return true if mime type is application/x-yaml (Firefox)", () => { + testFactory("application/x-yaml", true); + }); - it('should return true if mime type is application/yaml (Chrome)', () => { - testFactory('application/yaml', true); - }) + it("should return true if mime type is text/yaml", () => { + testFactory("text/yaml", true); + }); - it('should return true if mime type is application/x-yaml (Firefox)', () => { - testFactory('application/x-yaml', true); - }) + it("should return false if mime type is application/json", () => { + testFactory("application/json", false); + }); - it('should return true if mime type is text/yaml', () => { - testFactory('text/yaml', true); - }) + it("should return true if mime type is empty and file is on Windows with .yml extension", () => { + jest.spyOn(navigator, "userAgent", "get").mockReturnValue("Windows"); + testFactory("", true, "publiccode.yml"); + }); - it('should return false if mime type is application/json', () => { - testFactory('application/json', false); - }) + it("should return true if mime type is empty and file is on Windows with .yaml extension", () => { + jest.spyOn(navigator, "userAgent", "get").mockReturnValue("Windows"); + testFactory("", true, "publiccode.yaml"); + }); - it('should return true if mime type is empty and file is on Windows with .yml extension', () => { - jest.spyOn(navigator, 'userAgent', 'get').mockReturnValue('Windows'); - testFactory('', true, 'publiccode.yml'); - }) + it("should return false if mime type is empty and file is on Windows with a non-YAML extension", () => { + jest.spyOn(navigator, "userAgent", "get").mockReturnValue("Windows"); + testFactory("", false, "publiccode.json"); + }); + }); - it('should return true if mime type is empty and file is on Windows with .yaml extension', () => { - jest.spyOn(navigator, 'userAgent', 'get').mockReturnValue('Windows'); - testFactory('', true, 'publiccode.yaml'); - }) + describe("hasYamlFileExtension function tests", () => { + const testFactory = (value?: string, assertCondition = true) => { + //arrange + //act + const actual = hasYamlFileExtension(value); + //assert + expect(actual).toBe(assertCondition); + }; - it('should return false if mime type is empty and file is on Windows with a non-YAML extension', () => { - jest.spyOn(navigator, 'userAgent', 'get').mockReturnValue('Windows'); - testFactory('', false, 'publiccode.json'); - }) - }) + it("should return true if filename has .yml extension", () => { + testFactory("publiccode.yml"); + }); - describe('hasYamlFileExtension function tests', () => { - const testFactory = (value?: string, assertCondition = true) => { - //arrange - //act - const actual = hasYamlFileExtension(value); - //assert - expect(actual).toBe(assertCondition) - } + it("should return true if filename has .yaml extension", () => { + testFactory("publiccode.yaml"); + }); - it('should return true if filename has .yml extension', () => { - testFactory('publiccode.yml'); - }) + it("should return false if filename has .bkp extension", () => { + testFactory("publiccode.yaml.bkp", false); + }); - it('should return true if filename has .yaml extension', () => { - testFactory('publiccode.yaml'); - }) - - it('should return false if filename has .bkp extension', () => { - testFactory('publiccode.yaml.bkp', false); - }) - - it('should return false if filename is undefined', () => { - testFactory(undefined, false); - }) - }) -}) \ No newline at end of file + it("should return false if filename is undefined", () => { + testFactory(undefined, false); + }); + }); +}); diff --git a/src/app/yaml-upload.ts b/src/app/yaml-upload.ts index 61a09932..73a57764 100644 --- a/src/app/yaml-upload.ts +++ b/src/app/yaml-upload.ts @@ -1,30 +1,28 @@ -const yamlMimeTypes = [ - 'application/yaml', - 'application/x-yaml', - 'text/yaml' -] +const yamlMimeTypes = ["application/yaml", "application/x-yaml", "text/yaml"]; export const isYamlFile = (file?: File | null) => { - if (!file) return false; + if (!file) return false; - const hasValidMimeType = file.type && yamlMimeTypes.includes(file.type.toLowerCase()); + const hasValidMimeType = + file.type && yamlMimeTypes.includes(file.type.toLowerCase()); - if (hasValidMimeType) { - return true; - } + if (hasValidMimeType) { + return true; + } - const isRunningOnWindows = file.type === "" && navigator.userAgent.includes("Windows"); + const isRunningOnWindows = + file.type === "" && navigator.userAgent.includes("Windows"); - if (isRunningOnWindows) { - return file.name.endsWith(".yml") || file.name.endsWith(".yaml"); - } + if (isRunningOnWindows) { + return file.name.endsWith(".yml") || file.name.endsWith(".yaml"); + } - return false; + return false; }; export const hasYamlFileExtension = (value?: string) => { - const ext = value?.split(/[. ]+/).pop(); - return ext === "yml" || ext === "yaml"; -} + const ext = value?.split(/[. ]+/).pop(); + return ext === "yml" || ext === "yaml"; +}; -export const removeDuplicate = (array: Array) => [...new Set(array)]; \ No newline at end of file +export const removeDuplicate = (array: Array) => [...new Set(array)]; diff --git a/src/assets/glyphicons/glyphicons.css b/src/assets/glyphicons/glyphicons.css index c96d0c12..3b0d84ca 100644 --- a/src/assets/glyphicons/glyphicons.css +++ b/src/assets/glyphicons/glyphicons.css @@ -1,18 +1,20 @@ @font-face { - font-family: 'Glyphicons Halflings'; + font-family: "Glyphicons Halflings"; - src: url('glyphicons-halflings-regular.eot'); - src: url('glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), - url('glyphicons-halflings-regular.woff2') format('woff2'), - url('glyphicons-halflings-regular.woff') format('woff'), - url('glyphicons-halflings-regular.ttf') format('truetype'), - url('glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); + src: url("glyphicons-halflings-regular.eot"); + src: + url("glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), + url("glyphicons-halflings-regular.woff2") format("woff2"), + url("glyphicons-halflings-regular.woff") format("woff"), + url("glyphicons-halflings-regular.ttf") format("truetype"), + url("glyphicons-halflings-regular.svg#glyphicons_halflingsregular") + format("svg"); } .glyphicon { position: relative; top: 1px; display: inline-block; - font-family: 'Glyphicons Halflings'; + font-family: "Glyphicons Halflings"; font-style: normal; font-weight: normal; line-height: 1; diff --git a/src/assets/main.css b/src/assets/main.css index 2fc1ce66..bc6c64a8 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -4,8 +4,9 @@ @import "./glyphicons/glyphicons.css"; .system { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, + Cantarell, "Helvetica Neue", sans-serif; } * { @@ -155,212 +156,211 @@ VIDEO PREVIEW STYLES } } - .has-error .editor__content { - border-bottom: 1px solid #f83e5a; - } - - .editor__wrapper, - .editor__component { - border: none !important; - margin: 0 !important; - padding: 0 !important; - } +.has-error .editor__content { + border-bottom: 1px solid #f83e5a; +} - .editor__component .public-DraftEditor-content { - min-height: 300px; - border: 0; - } +.editor__wrapper, +.editor__component { + border: none !important; + margin: 0 !important; + padding: 0 !important; +} - input.rw-widget-input { - border: none !important; - } +.editor__component .public-DraftEditor-content { + min-height: 300px; + border: 0; +} - .editor__component .public-DraftEditor-content { - word-break: break-all; - } +input.rw-widget-input { + border: none !important; +} - .rectangle-5-copy-34 { - height: 48px; - width: 186px; - background-color: #0073e6; - } +.editor__component .public-DraftEditor-content { + word-break: break-all; +} - .editor_button { - display: flex; - overflow: hidden; - margin: 10px; - padding: 12px 12px; - height: 56px; - width: 172px; - cursor: pointer; - user-select: none; - transition: all 150ms linear; - text-align: center; - white-space: nowrap; - text-decoration: none !important; - text-transform: none; - text-transform: capitalize; - color: #fff; - background-color: #0073e6; - border: 0 none; - border-radius: 4px; - font-family: "Titillium Web"; - font-size: 18px; - font-weight: bold; - line-height: 28px; - text-align: center; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - justify-content: center; - align-items: center; - flex: 0 0 240px; - box-shadow: 2px 5px 10px var(--color-smoke); - } +.rectangle-5-copy-34 { + height: 48px; + width: 186px; + background-color: #0073e6; +} - .editor_button:hover { - transition: all 150ms linear; - background-color: #0059b3; - opacity: 0.85; - } +.editor_button { + display: flex; + overflow: hidden; + margin: 10px; + padding: 12px 12px; + height: 56px; + width: 172px; + cursor: pointer; + user-select: none; + transition: all 150ms linear; + text-align: center; + white-space: nowrap; + text-decoration: none !important; + text-transform: none; + text-transform: capitalize; + color: #fff; + background-color: #0073e6; + border: 0 none; + border-radius: 4px; + font-family: "Titillium Web"; + font-size: 18px; + font-weight: bold; + line-height: 28px; + text-align: center; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + justify-content: center; + align-items: center; + flex: 0 0 240px; + box-shadow: 2px 5px 10px var(--color-smoke); +} - .editor_button:active { - transition: all 150ms linear; - opacity: 0.75; - } +.editor_button:hover { + transition: all 150ms linear; + background-color: #0059b3; + opacity: 0.85; +} - .editor_button:focus { - outline: 0; - outline-offset: -4px; - } +.editor_button:active { + transition: all 150ms linear; + opacity: 0.75; +} - .editor_button:disabled { - opacity: 0.5; - background-color: #0059b3; - } +.editor_button:focus { + outline: 0; + outline-offset: -4px; +} - .editor_button--primary { - color: #fff; - background-color: #0073e6; - } +.editor_button:disabled { + opacity: 0.5; + background-color: #0059b3; +} - .editor_button--primary:hover { - color: #fff; - background-color: #0059b3; - opacity: 1; - } +.editor_button--primary { + color: #fff; + background-color: #0073e6; +} - .editor_button--primary:active { - color: #fff; - background-color: #0059b3; - opacity: 1; - } +.editor_button--primary:hover { + color: #fff; + background-color: #0059b3; + opacity: 1; +} - .editor_button--secondary { - border: 2px solid #0073e6; - background-color: #fff f; - color: #0073e6; - } +.editor_button--primary:active { + color: #fff; + background-color: #0059b3; + opacity: 1; +} - .editor_button--secondary:hover { - color: #0059b3; - background-color: #fff f; - opacity: 1; - } +.editor_button--secondary { + border: 2px solid #0073e6; + background-color: #fff f; + color: #0073e6; +} - .editor_button--secondary:active { - color: #0059b3; - background-color: #fff f; - opacity: 1; - } +.editor_button--secondary:hover { + color: #0059b3; + background-color: #fff f; + opacity: 1; +} - .editor_button--quaternary { - height: 56px; - width: 242px; - border: 2px solid #e6e9f2; - background-color: #fcfdff; - color: #5c6f82; - } +.editor_button--secondary:active { + color: #0059b3; + background-color: #fff f; + opacity: 1; +} - .editor_button--quaternary:hover { - color: #38444f; - background-color: #fcfdff; - opacity: 1; - } +.editor_button--quaternary { + height: 56px; + width: 242px; + border: 2px solid #e6e9f2; + background-color: #fcfdff; + color: #5c6f82; +} - .editor_button--quaternary:active { - color: #38444f; - background-color: #fcfdff; - opacity: 1; - } +.editor_button--quaternary:hover { + color: #38444f; + background-color: #fcfdff; + opacity: 1; +} - .editor_button--custom { - height: 56px; - width: 172px; - border: 0; - background-color: #fff; - color: #5c6f82; - } +.editor_button--quaternary:active { + color: #38444f; + background-color: #fcfdff; + opacity: 1; +} - .editor_button--custom:hover { - color: #38444f; - background-color: #fcfdff; - opacity: 1; - } +.editor_button--custom { + height: 56px; + width: 172px; + border: 0; + background-color: #fff; + color: #5c6f82; +} +.editor_button--custom:hover { + color: #38444f; + background-color: #fcfdff; + opacity: 1; +} - .has-error input[type="date"], - .has-error input[type="datetime-local"], - .has-error input[type="email"], - .has-error input[type="number"], - .has-error input[type="password"], - .has-error input[type="search"], - .has-error input[type="tel"], - .has-error input[type="text"], - .has-error input[type="time"], - .has-error input[type="url"], - .has-error input[type="date"], - .has-error select.form-control, - .has-error textarea.form-control { - border-bottom: 1px solid #f83e5a; - } +.has-error input[type="date"], +.has-error input[type="datetime-local"], +.has-error input[type="email"], +.has-error input[type="number"], +.has-error input[type="password"], +.has-error input[type="search"], +.has-error input[type="tel"], +.has-error input[type="text"], +.has-error input[type="time"], +.has-error input[type="url"], +.has-error input[type="date"], +.has-error select.form-control, +.has-error textarea.form-control { + border-bottom: 1px solid #f83e5a; +} - .control-label, - .control-link, - legend { - color: #5a768a; - font-weight: 400; +.control-label, +.control-link, +legend { + color: #5a768a; + font-weight: 400; - font-size: 18px; - } + font-size: 18px; +} - legend { - padding: 0 10px !important; - } +legend { + padding: 0 10px !important; +} - .form-check-label { - color: #5a768a; - font-weight: 400; - display: block; - font-size: 16px; - } +.form-check-label { + color: #5a768a; + font-weight: 400; + display: block; + font-size: 16px; +} - .help-block, - .help-block small, - .help-block .form-text .text-muted { - font-size: 14px; - color: #5a768a; - font-weight: 400; - display: inline; - } +.help-block, +.help-block small, +.help-block .form-text .text-muted { + font-size: 14px; + color: #5a768a; + font-weight: 400; + display: inline; +} - .has-error .help-block { - background-color: #f83e5a; - padding: 0px 12px; - color: #fff; - } +.has-error .help-block { + background-color: #f83e5a; + padding: 0px 12px; + color: #fff; +} - */ +*/ /** NOTIFY @@ -799,9 +799,9 @@ SETTINGS } .warning-box .accordion-header { - top: 0; - position: sticky; - background-color: white; + top: 0; + position: sticky; + background-color: white; } .warning-box__title { @@ -847,7 +847,6 @@ SETTINGS height: auto; } - .preview__footer_item > .disabled { cursor: not-allowed; } @@ -1352,7 +1351,6 @@ LANGUAGES background-color: transparent; } - /** OVERRIDE */ diff --git a/src/i18n/index.ts b/src/i18n/index.ts index 86715683..f62409fd 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -1,6 +1,6 @@ import { countries } from "countries-list"; import i18n from "i18next"; -import LanguageDetector from 'i18next-browser-languagedetector'; +import LanguageDetector from "i18next-browser-languagedetector"; import locales from "locale-codes"; import { initReactI18next } from "react-i18next"; @@ -11,7 +11,7 @@ import it from "./locales/it.json"; import de from "./locales/de.json"; import nl from "./locales/nl.json"; -type LocalizedEntity = 'language' | 'region'; +type LocalizedEntity = "language" | "region"; const resources = { it: { translation: it }, @@ -33,45 +33,57 @@ i18n escapeValue: false, }, detection: { - order: ['querystring', 'navigator', 'htmlTag', 'path', 'subdomain'], + order: ["querystring", "navigator", "htmlTag", "path", "subdomain"], - lookupQuerystring: 'lang', - lookupCookie: 'lang', - lookupLocalStorage: 'lang', - lookupSessionStorage: 'lang', + lookupQuerystring: "lang", + lookupCookie: "lang", + lookupLocalStorage: "lang", + lookupSessionStorage: "lang", caches: [], - } + }, }); -export const displayName = (tag: string, locale: string = i18n.language, entity: LocalizedEntity) => { +export const displayName = ( + tag: string, + locale: string = i18n.language, + entity: LocalizedEntity, +) => { try { return new Intl.DisplayNames([locale], { type: entity }).of(tag); // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (e) { return null; } -} +}; export const allLangs = (locale: string = i18n.language) => { return locales.all - .map(l => ({ text: displayName(l.tag, locale, 'language'), value: l.tag })) - .filter(e => e !== null) -} + .map((l) => ({ + text: displayName(l.tag, locale, "language"), + value: l.tag, + })) + .filter((e) => e !== null); +}; export const allCountries = (locale: string = i18n.language) => { - return Object.keys(countries) - .map((countryCode) => ({ text: displayName(countryCode, locale, 'region'), value: countryCode })) -} + return Object.keys(countries).map((countryCode) => ({ + text: displayName(countryCode, locale, "region"), + value: countryCode, + })); +}; /** * Get all the languages supported by the app */ export const getSupportedLanguages = (): Array => { //It's a special language code used by i18next for debugging purposes, and it's automatically included, so you may want to exclude it from the displayed list. - const cimode = 'cimode' + const cimode = "cimode"; const supportedLngs = i18n.options.supportedLngs; - return (Array.isArray(supportedLngs) ? supportedLngs.filter(l => l !== cimode) : []) -} + return Array.isArray(supportedLngs) + ? supportedLngs.filter((l) => l !== cimode) + : []; +}; -export const formatLanguageLabel = (language: string) => displayName(language, undefined, 'language')?.toUpperCase() +export const formatLanguageLabel = (language: string) => + displayName(language, undefined, "language")?.toUpperCase(); diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 3582c5f6..35a24d51 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -372,4 +372,4 @@ "description": "Die Liste der Medientypen (MIME-Typen) gemäß RFC 6838, die die Anwendung als Ausgabe verarbeiten kann. Falls die Software keine Ausgabe unterstützt, können Sie dieses Feld überspringen oder application/x.empty verwenden." } } -} \ No newline at end of file +} diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 1de86e15..fad0da88 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -388,4 +388,4 @@ "description": "The list of Media Types (MIME Types) as mandated in RFC 6838 which the application can handle as output. In case the software does not support any output, you can skip this field or use application/x.empty." } } -} \ No newline at end of file +} diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index a97a831c..27df1bdc 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -385,4 +385,4 @@ "description": "Une liste de types de médias (types MIME), tels que définis dans la RFC 6838, que l'application peut traiter comme sortie. Si le logiciel ne prend en charge aucune sortie, vous pouvez ignorer ce champ ou utiliser application/x.empty." } } -} \ No newline at end of file +} diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 6328b20b..db419a8a 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -389,4 +389,4 @@ "description": "Una lista di Media Types (MIME Types), come specificato dal RFC 6838, che possono essere gestiti in output dall’applicazione. Nel caso in cui il software non supporti alcun output, è possibile saltare questo campo o usare application/x.empty." } } -} \ No newline at end of file +} diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 5a35dfc8..9f4af814 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -10,382 +10,382 @@ "italy": "Italië" } }, - "upload": { - "title": "Upload een bestaande publiccode.yml", - "file": "Bestand", - "url": "URL", - "remote": "Extern", - "upload": "Uploaden" - }, - "back": "Terug", - "additional_owner": "AgID", - "cancel": "Annuleren", - "title": "publiccode.yml Editor", - "needhelp": "Hulp nodig?", - "source_code": "Broncode", - "lastgeneration": "Laatste generatie", - "addlanguage": "taal toevoegen aan het publiccode.yml bestand...", - "nocodegenerated": "Geen code gegenereerd", - "copy": "Kopiëren naar klembord", - "copytext": "Gekopieerd naar klembord", - "download": "Downloaden", - "import": "Importeren", - "genericerror": "Er zijn enkele fouten", - "success": "Succes!", - "browsefile": "Bestand van schijf bladeren", - "browse": "Bladeren", - "pastefile": "Plak externe publiccode.yaml url", - "importSource": "Selecteer importbron", - "selectSource": "Selecteer Bron", - "source": "Bron", - "gitlab": "GitLab", - "other": "Andere", - "load": "Laden", - "notvalidurl": "Geen geldige url", - "filenotsupported": "Bestandstype niet ondersteund", - "warnings": "Waarschuwingen", - "errors": { - "yamlloading": "Fout bij het laden van yaml" + "upload": { + "title": "Upload een bestaande publiccode.yml", + "file": "Bestand", + "url": "URL", + "remote": "Extern", + "upload": "Uploaden" + }, + "back": "Terug", + "additional_owner": "AgID", + "cancel": "Annuleren", + "title": "publiccode.yml Editor", + "needhelp": "Hulp nodig?", + "source_code": "Broncode", + "lastgeneration": "Laatste generatie", + "addlanguage": "taal toevoegen aan het publiccode.yml bestand...", + "nocodegenerated": "Geen code gegenereerd", + "copy": "Kopiëren naar klembord", + "copytext": "Gekopieerd naar klembord", + "download": "Downloaden", + "import": "Importeren", + "genericerror": "Er zijn enkele fouten", + "success": "Succes!", + "browsefile": "Bestand van schijf bladeren", + "browse": "Bladeren", + "pastefile": "Plak externe publiccode.yaml url", + "importSource": "Selecteer importbron", + "selectSource": "Selecteer Bron", + "source": "Bron", + "gitlab": "GitLab", + "other": "Andere", + "load": "Laden", + "notvalidurl": "Geen geldige url", + "filenotsupported": "Bestandstype niet ondersteund", + "warnings": "Waarschuwingen", + "errors": { + "yamlloading": "Fout bij het laden van yaml" + }, + "form": { + "add": "Toevoegen", + "deprecatedField": "verouderd", + "noContractors": "Geen aannemers gevonden", + "noContacts": "Geen contacten gevonden", + "reset": { + "button": "Resetten", + "notification_title": "Alle gegevens gewist", + "notification_text": "Alle ingevoerde gegevens zijn gewist" }, - "form": { - "add": "Toevoegen", - "deprecatedField": "verouderd", - "noContractors": "Geen aannemers gevonden", - "noContacts": "Geen contacten gevonden", - "reset": { - "button": "Resetten", - "notification_title": "Alle gegevens gewist", - "notification_text": "Alle ingevoerde gegevens zijn gewist" + "upload": "Uploaden", + "validate": { + "success": { + "title": "Validatie succesvol voltooid", + "text": "De gegenereerde publiccode.yml is geldig" }, - "upload": "Uploaden", - "validate": { - "success": { - "title": "Validatie succesvol voltooid", - "text": "De gegenereerde publiccode.yml is geldig" - }, - "error": { - "title": "Validatiefouten", - "text": "Controleer formuliervelden" - }, - "info": { - "title": "Onbekende velden verwijderd" - }, - "button": "Valideren" + "error": { + "title": "Validatiefouten", + "text": "Controleer formuliervelden" }, - "generate": "Genereren", - "addnew": "Nieuw toevoegen", - "overwrite": "Formulier overschrijven", - "overwritetext": "Deze bewerking zal alle gegevens wissen", - "unset": "(niet ingesteld)", - "true": "Ja", - "false": "Nee" + "info": { + "title": "Onbekende velden verwijderd" + }, + "button": "Valideren" + }, + "generate": "Genereren", + "addnew": "Nieuw toevoegen", + "overwrite": "Formulier overschrijven", + "overwritetext": "Deze bewerking zal alle gegevens wissen", + "unset": "(niet ingesteld)", + "true": "Ja", + "false": "Nee" + }, + "sections": { + "name": "Naam", + "repository-and-documentation": "Repository & Documentatie", + "software-details": "Software Details", + "legal-and-reuse": "Juridisch & Hergebruik", + "description-and-features": "Beschrijving & Functies", + "logo-and-screenshots": "Logo & Schermafbeeldingen", + "purpose-and-audience": "Doel & Doelgroep", + "maintenance": "Onderhoud" + }, + "validation": { + "inprogress": "Validatie in uitvoering" + } + }, + "countrySpecificSection": { + "italy": "Italië" + }, + "publiccodeyml": { + "description": { + "title": "Beschrijving en functies", + "localisedName": { + "label": "Naam van het project", + "description": "De korte publiek bekende naam van het product in deze specifieke taal. Het moet de projectnaam zijn waarmee de meeste mensen gewoonlijk naar de software verwijzen. Bijvoorbeeld 'VLC Media Player'.'" + }, + "genericName": { + "label": "Generieke Naam", + "description": "Bijvoorbeeld: 'Media Player'." + }, + "shortDescription": { + "label": "Korte Beschrijving van het project", + "description": "De korte beschrijving van de software. Dit moet een enkele regel zijn met een enkele zin." }, - "sections": { - "name": "Naam", - "repository-and-documentation": "Repository & Documentatie", - "software-details": "Software Details", - "legal-and-reuse": "Juridisch & Hergebruik", - "description-and-features": "Beschrijving & Functies", - "logo-and-screenshots": "Logo & Schermafbeeldingen", - "purpose-and-audience": "Doel & Doelgroep", - "maintenance": "Onderhoud" + "longDescription": { + "label": "Lange Beschrijving", + "description": "De langere beschrijving van de software. Het geeft een overzicht van de mogelijkheden van de software voor een potentiële gebruiker. Het publiek bestaat uit de gebruikers van de software, niet de ontwikkelaars. U kunt deze tekst zien als de beschrijving van de software die op de website zou staan (als de software er een had). Deze beschrijving kan enige basis-markdown bevatten: *cursief*, **vet**, opsommingspunten en [links](#)." }, - "validation": { - "inprogress": "Validatie in uitvoering" + "documentation": { + "label": "Gebruikersdocumentatie-URL", + "description": "De verwijzing naar de gebruikersniveau (niet ontwikkelaarsniveau) documentatie van de software. De waarde moet de URL zijn naar een gehoste versie van de documentatie. Het wordt aanbevolen dat de URL verwijst naar een gehoste versie van de documentatie die onmiddellijk leesbaar is via een algemene webbrowser in zowel desktop- als mobiel formaat. De documentatie moet worden weergegeven in HTML en doorzoekbaar zijn als een website (met een navigatie-index, een zoekbalk, enz.)." + }, + "apiDocumentation": { + "label": "API Documentatie-URL", + "description": "De verwijzing naar de API-documentatie van de software. De waarde moet de URL zijn naar een gehoste versie van de documentatie. Het wordt aanbevolen dat de URL verwijst naar een gehoste versie van de documentatie die onmiddellijk leesbaar is via een algemene webbrowser. De documentatie moet worden weergegeven in HTML en doorzoekbaar zijn als een website (met een navigatie-index, een zoekbalk, enz.), en als er een referentie- of testimplementatie is, mogelijk een interactieve interface bieden (bijvoorbeeld Swagger)." + }, + "features": { + "label": "Functies", + "description": "De lijst met softwarefuncties, die beschrijft welke mogelijkheden de software biedt. Het publiek voor deze tekst moet bestaan uit openbare besluitvormers die de software zullen aanschaffen. De functies moeten dus niet gericht zijn op ontwikkelaars: in plaats van technische functies te vermelden die verwijzen naar implementatiedetails, geef de voorkeur aan het vermelden van voor de gebruiker zichtbare functionaliteiten van de software. Hoewel het verplicht is, is er geen verplicht minimum of maximum aantal functies dat moet worden vermeld. Het aanbevolen aantal functies om te vermelden ligt tussen 5 en 20, afhankelijk van de grootte en complexiteit van de software. Er is geen behoefte aan volledigheid, aangezien gebruikers altijd de documentatie kunnen lezen voor aanvullende informatie.", + "value": { + "label": "Functie", + "description": "" + } + }, + "awards": { + "label": "Prijzen", + "description": "De lijst met prijzen die door de software zijn gewonnen." + }, + "screenshots": { + "label": "Schermafbeeldingen", + "description": "Schermafbeeldingen van de software met als doel een overzicht te geven van hoe het werkt. Het kan een relatief of absoluut pad zijn" + }, + "videos": { + "label": "Video's", + "description": "Een of meer URL's van video's die laten zien hoe de software werkt. Net als schermafbeeldingen moeten video's worden gebruikt om een snel overzicht te geven van hoe de software eruitziet en hoe het werkt. Video's moeten worden gehost op een videodelingswebsite die de oEmbed-standaard ondersteunt; populaire opties zijn YouTube en Vimeo." } }, - "countrySpecificSection": { - "italy": "Italië" + "legal": { + "license": { + "label": "Licentie", + "description": "De licentie waaronder de software wordt gedistribueerd. Het moet een geldige SPDX-expressie bevatten, verwijzend naar een (of meerdere) Free and Open Source licentie(s). Raadpleeg de SPDX-documentatie voor meer informatie." + }, + "mainCopyrightOwner": { + "label": "Hoofdeigenaar van het auteursrecht", + "description": "De entiteit die het auteursrecht bezit op het grootste deel van de code in de repository. Normaal gesproken is dit de regel die wordt vermeld met het copyrightsymbool bovenaan de meeste bestanden in de repo." + }, + "repoOwner": { + "label": "Repository Eigenaar", + "description": "De entiteit die deze repository bezit; dit kan al dan niet dezelfde entiteit zijn die het auteursrecht op de code zelf bezit. Bijvoorbeeld, in het geval van een vork van de originele software, is de repoOwner waarschijnlijk anders dan de hoofdeigenaar van het auteursrecht." + }, + "authorsFile": { + "label": "Auteurs Bestand", + "description": "Sommige Free and Open Source software identificeert de auteursrechthouders via een bestand dat alle entiteiten vermeldt die het auteursrecht bezitten. Dit is gebruikelijk in projecten die sterk worden ondersteund door een gemeenschap met veel externe bijdragers en geen duidelijke enkele/hoofdeigenaar van het auteursrecht. In dergelijke gevallen kan deze waarde worden gebruikt om naar het auteursbestand te verwijzen, met behulp van een pad relatief aan de hoofdmap van de repository." + } }, - "publiccodeyml": { - "description": { - "title": "Beschrijving en functies", - "localisedName": { - "label": "Naam van het project", - "description": "De korte publiek bekende naam van het product in deze specifieke taal. Het moet de projectnaam zijn waarmee de meeste mensen gewoonlijk naar de software verwijzen. Bijvoorbeeld 'VLC Media Player'.'" - }, - "genericName": { - "label": "Generieke Naam", - "description": "Bijvoorbeeld: 'Media Player'." - }, - "shortDescription": { - "label": "Korte Beschrijving van het project", - "description": "De korte beschrijving van de software. Dit moet een enkele regel zijn met een enkele zin." - }, - "longDescription": { - "label": "Lange Beschrijving", - "description": "De langere beschrijving van de software. Het geeft een overzicht van de mogelijkheden van de software voor een potentiële gebruiker. Het publiek bestaat uit de gebruikers van de software, niet de ontwikkelaars. U kunt deze tekst zien als de beschrijving van de software die op de website zou staan (als de software er een had). Deze beschrijving kan enige basis-markdown bevatten: *cursief*, **vet**, opsommingspunten en [links](#)." - }, - "documentation": { - "label": "Gebruikersdocumentatie-URL", - "description": "De verwijzing naar de gebruikersniveau (niet ontwikkelaarsniveau) documentatie van de software. De waarde moet de URL zijn naar een gehoste versie van de documentatie. Het wordt aanbevolen dat de URL verwijst naar een gehoste versie van de documentatie die onmiddellijk leesbaar is via een algemene webbrowser in zowel desktop- als mobiel formaat. De documentatie moet worden weergegeven in HTML en doorzoekbaar zijn als een website (met een navigatie-index, een zoekbalk, enz.)." - }, - "apiDocumentation": { - "label": "API Documentatie-URL", - "description": "De verwijzing naar de API-documentatie van de software. De waarde moet de URL zijn naar een gehoste versie van de documentatie. Het wordt aanbevolen dat de URL verwijst naar een gehoste versie van de documentatie die onmiddellijk leesbaar is via een algemene webbrowser. De documentatie moet worden weergegeven in HTML en doorzoekbaar zijn als een website (met een navigatie-index, een zoekbalk, enz.), en als er een referentie- of testimplementatie is, mogelijk een interactieve interface bieden (bijvoorbeeld Swagger)." - }, - "features": { - "label": "Functies", - "description": "De lijst met softwarefuncties, die beschrijft welke mogelijkheden de software biedt. Het publiek voor deze tekst moet bestaan uit openbare besluitvormers die de software zullen aanschaffen. De functies moeten dus niet gericht zijn op ontwikkelaars: in plaats van technische functies te vermelden die verwijzen naar implementatiedetails, geef de voorkeur aan het vermelden van voor de gebruiker zichtbare functionaliteiten van de software. Hoewel het verplicht is, is er geen verplicht minimum of maximum aantal functies dat moet worden vermeld. Het aanbevolen aantal functies om te vermelden ligt tussen 5 en 20, afhankelijk van de grootte en complexiteit van de software. Er is geen behoefte aan volledigheid, aangezien gebruikers altijd de documentatie kunnen lezen voor aanvullende informatie.", - "value": { - "label": "Functie", - "description": "" - } - }, - "awards": { - "label": "Prijzen", - "description": "De lijst met prijzen die door de software zijn gewonnen." - }, - "screenshots": { - "label": "Schermafbeeldingen", - "description": "Schermafbeeldingen van de software met als doel een overzicht te geven van hoe het werkt. Het kan een relatief of absoluut pad zijn" - }, - "videos": { - "label": "Video's", - "description": "Een of meer URL's van video's die laten zien hoe de software werkt. Net als schermafbeeldingen moeten video's worden gebruikt om een snel overzicht te geven van hoe de software eruitziet en hoe het werkt. Video's moeten worden gehost op een videodelingswebsite die de oEmbed-standaard ondersteunt; populaire opties zijn YouTube en Vimeo." - } + "intendedAudience": { + "scope": { + "label": "Bereik", + "description": "Publieke software kan zeer specifiek zijn in bereik omdat er een grote reeks taken is die specifiek zijn voor elk type administratie. Bijvoorbeeld, veel software die in scholen wordt gebruikt, is waarschijnlijk niet nuttig in ziekenhuizen. Als u expliciet sommige software wilt markeren als alleen nuttig voor bepaalde soorten administraties, moet u deze aan deze waarde toevoegen. De lijst met toegestane waarden is gedefinieerd in pa-types.md en kan landspecifiek zijn. Deze lijst kan op elk moment evolueren, los van de versie van deze specificatie." }, - "legal": { - "license": { - "label": "Licentie", - "description": "De licentie waaronder de software wordt gedistribueerd. Het moet een geldige SPDX-expressie bevatten, verwijzend naar een (of meerdere) Free and Open Source licentie(s). Raadpleeg de SPDX-documentatie voor meer informatie." - }, - "mainCopyrightOwner": { - "label": "Hoofdeigenaar van het auteursrecht", - "description": "De entiteit die het auteursrecht bezit op het grootste deel van de code in de repository. Normaal gesproken is dit de regel die wordt vermeld met het copyrightsymbool bovenaan de meeste bestanden in de repo." - }, - "repoOwner": { - "label": "Repository Eigenaar", - "description": "De entiteit die deze repository bezit; dit kan al dan niet dezelfde entiteit zijn die het auteursrecht op de code zelf bezit. Bijvoorbeeld, in het geval van een vork van de originele software, is de repoOwner waarschijnlijk anders dan de hoofdeigenaar van het auteursrecht." - }, - "authorsFile": { - "label": "Auteurs Bestand", - "description": "Sommige Free and Open Source software identificeert de auteursrechthouders via een bestand dat alle entiteiten vermeldt die het auteursrecht bezitten. Dit is gebruikelijk in projecten die sterk worden ondersteund door een gemeenschap met veel externe bijdragers en geen duidelijke enkele/hoofdeigenaar van het auteursrecht. In dergelijke gevallen kan deze waarde worden gebruikt om naar het auteursbestand te verwijzen, met behulp van een pad relatief aan de hoofdmap van de repository." + "countries": { + "label": "Landen", + "description": "Lijst van landen waarvoor deze software expliciet naleving beweert (bijv. hun processen, technologieën of wetten). Alle landen worden aangegeven met kleine letters ISO 3166-1 alpha-2 tweeletterige landcodes." + }, + "unsupportedCountries": { + "label": "Niet-ondersteunde landen", + "description": "Lijst van niet-ondersteunde landen. Dit kan het geval zijn als er een conflict is tussen hoe de software werkt en een specifieke wet, proces of technologie. Alle landen worden aangegeven met kleine letters ISO 3166-1 alpha-2 tweeletterige landcodes." + } + }, + "localisation": { + "localisationReady": { + "label": "Klaar voor lokalisatie", + "description": "Of de software infrastructuur heeft of anderszins is ontworpen om meertalig te zijn. Het hoeft niet in meer dan één taal beschikbaar te zijn." + }, + "availableLanguages": { + "label": "Beschikbare talen", + "description": "De lijst met talen waarin de software is vertaald." + } + }, + "it": { + "countryExtensionVersion": { + "label": "Landuitbreiding Versie", + "description": "Landuitbreiding versie" + }, + "riuso": { + "label": "Hergebruik", + "codiceIPA": { + "label": "iPA-code van de instantie (verplicht voor overheidsinstanties)", + "description": "Code van de instantie binnen de Index van overheidsinstanties (iPA-code, https://indicepa.gov.it/)." } }, - "intendedAudience": { - "scope": { - "label": "Bereik", - "description": "Publieke software kan zeer specifiek zijn in bereik omdat er een grote reeks taken is die specifiek zijn voor elk type administratie. Bijvoorbeeld, veel software die in scholen wordt gebruikt, is waarschijnlijk niet nuttig in ziekenhuizen. Als u expliciet sommige software wilt markeren als alleen nuttig voor bepaalde soorten administraties, moet u deze aan deze waarde toevoegen. De lijst met toegestane waarden is gedefinieerd in pa-types.md en kan landspecifiek zijn. Deze lijst kan op elk moment evolueren, los van de versie van deze specificatie." + "piattaforme": { + "label": "Platforms", + "spid": { + "label": "SPID", + "description": "Of het SPID ondersteunt - het Openbare Digitale Identiteitssysteem." }, - "countries": { - "label": "Landen", - "description": "Lijst van landen waarvoor deze software expliciet naleving beweert (bijv. hun processen, technologieën of wetten). Alle landen worden aangegeven met kleine letters ISO 3166-1 alpha-2 tweeletterige landcodes." + "cie": { + "label": "CIE", + "description": "Of het de Elektronische Identiteitskaart ondersteunt." }, - "unsupportedCountries": { - "label": "Niet-ondersteunde landen", - "description": "Lijst van niet-ondersteunde landen. Dit kan het geval zijn als er een conflict is tussen hoe de software werkt en een specifieke wet, proces of technologie. Alle landen worden aangegeven met kleine letters ISO 3166-1 alpha-2 tweeletterige landcodes." - } - }, - "localisation": { - "localisationReady": { - "label": "Klaar voor lokalisatie", - "description": "Of de software infrastructuur heeft of anderszins is ontworpen om meertalig te zijn. Het hoeft niet in meer dan één taal beschikbaar te zijn." + "anpr": { + "label": "ANPR", + "description": "Of het ANPR ondersteunt, het Nationale Register." + }, + "pagopa": { + "label": "pagoPA", + "description": "Of het pagoPA ondersteunt." }, - "availableLanguages": { - "label": "Beschikbare talen", - "description": "De lijst met talen waarin de software is vertaald." + "io": { + "label": "IO", + "description": "De software communiceert met IO - de app voor openbare diensten." } }, - "it": { - "countryExtensionVersion": { - "label": "Landuitbreiding Versie", - "description": "Landuitbreiding versie" + "conforme": { + "label": "Conform", + "lineeGuidaDesign": { + "label": "Ontwerprichtlijnen", + "description": "Of het voldoet aan de ontwerprichtlijnen." }, - "riuso": { - "label": "Hergebruik", - "codiceIPA": { - "label": "iPA-code van de instantie (verplicht voor overheidsinstanties)", - "description": "Code van de instantie binnen de Index van overheidsinstanties (iPA-code, https://indicepa.gov.it/)." - } + "modelloInteroperabilita": { + "label": "Interoperabel", + "description": "Of het voldoet aan de richtlijnen voor interoperabiliteit. (Artikel 73 van de CAD)." }, - "piattaforme": { - "label": "Platforms", - "spid": { - "label": "SPID", - "description": "Of het SPID ondersteunt - het Openbare Digitale Identiteitssysteem." - }, - "cie": { - "label": "CIE", - "description": "Of het de Elektronische Identiteitskaart ondersteunt." - }, - "anpr": { - "label": "ANPR", - "description": "Of het ANPR ondersteunt, het Nationale Register." - }, - "pagopa": { - "label": "pagoPA", - "description": "Of het pagoPA ondersteunt." - }, - "io": { - "label": "IO", - "description": "De software communiceert met IO - de app voor openbare diensten." - } + "misureMinimeSicurezza": { + "label": "Minimale veiligheidsmaatregelen", + "description": "Of het voldoet aan de Minimale ICT-veiligheidsmaatregelen voor Overheidsinstanties." }, - "conforme": { - "label": "Conform", - "lineeGuidaDesign": { - "label": "Ontwerprichtlijnen", - "description": "Of het voldoet aan de ontwerprichtlijnen." - }, - "modelloInteroperabilita": { - "label": "Interoperabel", - "description": "Of het voldoet aan de richtlijnen voor interoperabiliteit. (Artikel 73 van de CAD)." - }, - "misureMinimeSicurezza": { - "label": "Minimale veiligheidsmaatregelen", - "description": "Of het voldoet aan de Minimale ICT-veiligheidsmaatregelen voor Overheidsinstanties." - }, - "gdpr": { - "label": "AVG", - "description": "Of de software voldoet aan de AVG." - } + "gdpr": { + "label": "AVG", + "description": "Of de software voldoet aan de AVG." } + } + }, + "maintenance": { + "type": { + "label": "Onderhoudstype", + "description": "Hoe de software momenteel wordt onderhouden. \"intern\" betekent dat de software intern wordt onderhouden door de repository-eigenaar. \"contract\" betekent dat er een commercieel contract is dat een entiteit bindt aan het onderhoud van de software; \"gemeenschap\" betekent dat de software momenteel wordt onderhouden door een of meer mensen die hun tijd aan het project doneren; \"geen\" betekent dat de software niet actief wordt onderhouden." }, - "maintenance": { - "type": { - "label": "Onderhoudstype", - "description": "Hoe de software momenteel wordt onderhouden. \"intern\" betekent dat de software intern wordt onderhouden door de repository-eigenaar. \"contract\" betekent dat er een commercieel contract is dat een entiteit bindt aan het onderhoud van de software; \"gemeenschap\" betekent dat de software momenteel wordt onderhouden door een of meer mensen die hun tijd aan het project doneren; \"geen\" betekent dat de software niet actief wordt onderhouden." + "contacts": { + "label": "Contacten", + "description": "Een of meer contacten van technische mensen die momenteel verantwoordelijk zijn voor het onderhouden van de software. Alle contacten moeten een natuurlijk persoon zijn, geen bedrijf of organisatie. Als iemand optreedt als vertegenwoordiger van een instelling, moet dit worden vermeld binnen de affiliatie van het contact. In het geval van een commerciële overeenkomst (of een keten van dergelijke overeenkomsten), specificeer de uiteindelijke entiteiten die daadwerkelijk zijn gecontracteerd om het onderhoud te leveren. Specificeer de software-eigenaar niet tenzij deze ook technisch betrokken is bij het onderhoud van het product.", + "name": { + "description": "De volledige naam van een van de technische contactpersonen. Het moet een echte persoon zijn; vul het NIET in met algemene contactgegevens, bedrijfsafdelingen, verenigingen, enz.", + "label": "Naam" + }, + "phone": { + "description": "Telefoonnummer (met internationale prefix)", + "label": "Telefoon" }, - "contacts": { - "label": "Contacten", - "description": "Een of meer contacten van technische mensen die momenteel verantwoordelijk zijn voor het onderhouden van de software. Alle contacten moeten een natuurlijk persoon zijn, geen bedrijf of organisatie. Als iemand optreedt als vertegenwoordiger van een instelling, moet dit worden vermeld binnen de affiliatie van het contact. In het geval van een commerciële overeenkomst (of een keten van dergelijke overeenkomsten), specificeer de uiteindelijke entiteiten die daadwerkelijk zijn gecontracteerd om het onderhoud te leveren. Specificeer de software-eigenaar niet tenzij deze ook technisch betrokken is bij het onderhoud van het product.", - "name": { - "description": "De volledige naam van een van de technische contactpersonen. Het moet een echte persoon zijn; vul het NIET in met algemene contactgegevens, bedrijfsafdelingen, verenigingen, enz.", - "label": "Naam" - }, - "phone": { - "description": "Telefoonnummer (met internationale prefix)", - "label": "Telefoon" - }, - "email": { - "description": "Het e-mailadres van de technische contactpersoon. Het moet een e-mailadres zijn waar de technische contactpersoon direct bereikbaar is; vul het NIET in met mailinglijsten of algemene contactpunten zoals info@acme.inc.", - "label": "E-mail" - }, - "affiliation": { - "description": "De expliciete affiliatie-informatie voor de technische contactpersoon. In het geval van meerdere onderhouders kan dit worden gebruikt om een relatie te creëren tussen elke technische contactpersoon en elke onderhoudsinstantie. Het kan bijvoorbeeld een bedrijfsnaam, een verenigingsnaam, enz. bevatten.", - "label": "Affiliatie" - } + "email": { + "description": "Het e-mailadres van de technische contactpersoon. Het moet een e-mailadres zijn waar de technische contactpersoon direct bereikbaar is; vul het NIET in met mailinglijsten of algemene contactpunten zoals info@acme.inc.", + "label": "E-mail" }, - "contractors": { - "label": "Aannemers", - "description": "De entiteit of entiteiten, indien aanwezig, die momenteel zijn gecontracteerd voor het onderhouden van de software. Dit kunnen bedrijven, organisaties of andere collectieve namen zijn.", - "name": { - "label": "Naam", - "description": "De naam van de aannemer, of het nu een bedrijf of een natuurlijk persoon is." - }, - "until": { - "label": "Tot", - "description": "De datum waarop het onderhoud zal eindigen. In het geval van gemeenschapsonderhoud mag de waarde niet meer dan 2 jaar in de toekomst liggen, en zal dus regelmatig moeten worden bijgewerkt naarmate de gemeenschap blijft werken aan het project." - }, - "email": { - "description": "Het e-mailadres van de technische contactpersoon. Het moet een e-mailadres zijn waar de technische contactpersoon direct bereikbaar is; vul het NIET in met mailinglijsten of algemene contactpunten zoals info@acme.inc.", - "label": "E-mail" - }, - "website": { - "label": "Website", - "description": "De website van de onderhouder. Het kan verwijzen naar de belangrijkste institutionele website, of naar een meer projectspecifieke pagina of website." - } + "affiliation": { + "description": "De expliciete affiliatie-informatie voor de technische contactpersoon. In het geval van meerdere onderhouders kan dit worden gebruikt om een relatie te creëren tussen elke technische contactpersoon en elke onderhoudsinstantie. Het kan bijvoorbeeld een bedrijfsnaam, een verenigingsnaam, enz. bevatten.", + "label": "Affiliatie" } }, - "dependsOn": { - "label": "Afhankelijk van", - "description": "Systeemniveau-afhankelijkheden vereist om deze software te installeren en te gebruiken.", - "type": { - "label": "Type" - }, + "contractors": { + "label": "Aannemers", + "description": "De entiteit of entiteiten, indien aanwezig, die momenteel zijn gecontracteerd voor het onderhouden van de software. Dit kunnen bedrijven, organisaties of andere collectieve namen zijn.", "name": { "label": "Naam", - "description": "De naam van de afhankelijkheid (bijv. MySQL, NFC Reader)" - }, - "versionMin": { - "label": "Versie Bereik Min", - "description": "De eerste compatibele versie" + "description": "De naam van de aannemer, of het nu een bedrijf of een natuurlijk persoon is." }, - "versionMax": { - "label": "Versie Bereik Max", - "description": "De laatste compatibele versie" + "until": { + "label": "Tot", + "description": "De datum waarop het onderhoud zal eindigen. In het geval van gemeenschapsonderhoud mag de waarde niet meer dan 2 jaar in de toekomst liggen, en zal dus regelmatig moeten worden bijgewerkt naarmate de gemeenschap blijft werken aan het project." }, - "version": { - "label": "Exacte Versie", - "description": "De enige hoofdversie waarmee de software compatibel is. Het gaat ervan uit dat het compatibel is met alle patches en bugfixes die later op deze versie worden toegepast." + "email": { + "description": "Het e-mailadres van de technische contactpersoon. Het moet een e-mailadres zijn waar de technische contactpersoon direct bereikbaar is; vul het NIET in met mailinglijsten of algemene contactpunten zoals info@acme.inc.", + "label": "E-mail" }, - "optional": { - "label": "Optioneel", - "description": "Of de afhankelijkheid optioneel of verplicht is" + "website": { + "label": "Website", + "description": "De website van de onderhouder. Het kan verwijzen naar de belangrijkste institutionele website, of naar een meer projectspecifieke pagina of website." } - }, - "publiccodeYmlVersion": { - "label": "publiccodeYmlVersion", - "description": "verborgen veld voor huidige publiccode versie" + } + }, + "dependsOn": { + "label": "Afhankelijk van", + "description": "Systeemniveau-afhankelijkheden vereist om deze software te installeren en te gebruiken.", + "type": { + "label": "Type" }, "name": { - "label": "Naam van het project", - "description": "De korte openbare naam van het product. Het moet de naam zijn waarmee de meeste mensen gewoonlijk naar de software verwijzen. In het geval dat de software zowel een interne \"code\"-naam als een commerciële naam heeft, gebruik dan de commerciële naam." - }, - "releaseDate": { - "label": "Releasedatum", - "description": "De releasedatum van de nieuwste versie. Het is verplicht als de software ten minste één keer is uitgebracht en dus het versienummer aanwezig is." - }, - "url": { - "label": "Repository URL", - "description": "De unieke identificatie voor deze software. Het moet de URL zijn van de broncode-repository (bijv. git, svn) waar de software is gepubliceerd. Als de repository beschikbaar is onder meerdere protocollen, geef dan de voorkeur aan HTTP/HTTPS-URL's die geen gebruikersauthenticatie vereisen." - }, - "applicationSuite": { - "label": "Applicatie Suite", - "description": "De naam van de \"suite\" waartoe de software behoort." - }, - "landingURL": { - "label": "Landingspagina URL", - "description": "Als de URL-parameter geen menselijk leesbare of doorzoekbare pagina biedt, maar alleen broncode levert aan een broncode-beheerder, hebt u met deze sleutel de mogelijkheid om een landingspagina op te geven. Deze pagina is idealiter waar uw gebruikers terechtkomen wanneer ze op een knop klikken met de tekst \"Ga naar de broncode van de applicatie\". In het geval dat het product een geautomatiseerde grafische installer biedt, kan deze URL verwijzen naar een pagina die een verwijzing naar de broncode bevat, maar ook het downloaden van zo'n installer aanbiedt." - }, - "isBasedOn": { - "label": "Is gebaseerd op", - "description": "De URL van het originele project, als deze software een variant of een fork is van een andere software. Indien aanwezig, identificeert het de fork als een softwarevariant, afkomstig van de gespecificeerde repositories." + "label": "Naam", + "description": "De naam van de afhankelijkheid (bijv. MySQL, NFC Reader)" }, - "softwareVersion": { - "label": "Software Versie", - "description": "Het laatste stabiele versienummer van de software. Het versienummer is een tekenreeks die niet bedoeld is om te worden geïnterpreteerd en geparseerd maar alleen te worden weergegeven; parsers moeten geen semantische versioning of een ander specifiek versieformaat aannemen." + "versionMin": { + "label": "Versie Bereik Min", + "description": "De eerste compatibele versie" }, - "logo": { - "label": "Logo", - "description": "Het logo van de software. Logo's moeten in vectorformaat zijn; rasterformaten zijn alleen toegestaan als terugvalpositie. In dit geval moeten het transparante PNG's zijn, minimaal 1000px breed. Acceptabele formaten: SVG, SVGZ, PNG." + "versionMax": { + "label": "Versie Bereik Max", + "description": "De laatste compatibele versie" }, - "monochromeLogo": { - "label": "Logo Monochroom", - "description": "Het monochrome (zwarte) logo. Het logo moet in vectorformaat zijn; rasterformaten zijn alleen toegestaan als terugvalpositie. In dit geval moeten het transparante PNG's zijn, minimaal 1000px breed. Acceptabele formaten: SVG, SVGZ, PNG." - }, - "developmentStatus": { - "label": "Ontwikkelingsstatus", - "description": "Toegestane waarden: concept, ontwikkeling, bèta, stabiel, verouderd" - }, - "softwareType": { - "label": "Software Type", - "description": "Toegestane waarden: zelfstandig, add-on, bibliotheek, configuratiebestanden" - }, - "roadmap": { - "label": "Roadmap", - "description": "De URL van de openbare roadmap van de software." - }, - "platforms": { - "label": "Platforms", - "description": "Lijst van platforms waarop de software draait. Het beschrijft de platforms die gebruikers zullen gebruiken om toegang te krijgen tot en te werken met de software, in plaats van het platform waarop de software zelf draait. Gebruik de voorgedefinieerde waarden indien mogelijk. Als de software draait op een platform waarvoor geen voorgedefinieerde waarde beschikbaar is, kan een andere waarde worden gebruikt. Waarden: web, windows, mac, linux, ios, android. Menselijk leesbare waarden buiten deze lijst zijn toegestaan." + "version": { + "label": "Exacte Versie", + "description": "De enige hoofdversie waarmee de software compatibel is. Het gaat ervan uit dat het compatibel is met alle patches en bugfixes die later op deze versie worden toegepast." }, - "categories": { - "label": "Categorie", - "description": "De lijst met categorieën waaronder deze software valt." - }, - "usedBy": { - "label": "Gebruikt door", - "description": "De lijst met namen van prominente openbare administraties (die zullen dienen als getuigenissen) waarvan de softwareonderhouder momenteel weet dat ze deze software gebruiken. Parsers worden aangemoedigd om deze lijst ook te verbeteren met andere informatie die ze onafhankelijk kunnen verkrijgen; bijvoorbeeld een fork van een software, eigendom van een administratie, zou kunnen worden gebruikt als een signaal van gebruik van de software." - }, - "inputTypes": { - "label": "Invoertypes", - "description": "De lijst met Media Types (MIME Types) zoals verplicht in RFC 6838 die de applicatie kan verwerken als uitvoer. In het geval dat de software geen invoer ondersteunt, kunt u dit veld overslaan of application/x.empty gebruiken." - }, - "outputTypes": { - "label": "Uitvoertypes", - "description": "De lijst met Media Types (MIME Types) zoals verplicht in RFC 6838 die de applicatie kan verwerken als uitvoer. In het geval dat de software geen uitvoer ondersteunt, kunt u dit veld overslaan of application/x.empty gebruiken." + "optional": { + "label": "Optioneel", + "description": "Of de afhankelijkheid optioneel of verplicht is" } + }, + "publiccodeYmlVersion": { + "label": "publiccodeYmlVersion", + "description": "verborgen veld voor huidige publiccode versie" + }, + "name": { + "label": "Naam van het project", + "description": "De korte openbare naam van het product. Het moet de naam zijn waarmee de meeste mensen gewoonlijk naar de software verwijzen. In het geval dat de software zowel een interne \"code\"-naam als een commerciële naam heeft, gebruik dan de commerciële naam." + }, + "releaseDate": { + "label": "Releasedatum", + "description": "De releasedatum van de nieuwste versie. Het is verplicht als de software ten minste één keer is uitgebracht en dus het versienummer aanwezig is." + }, + "url": { + "label": "Repository URL", + "description": "De unieke identificatie voor deze software. Het moet de URL zijn van de broncode-repository (bijv. git, svn) waar de software is gepubliceerd. Als de repository beschikbaar is onder meerdere protocollen, geef dan de voorkeur aan HTTP/HTTPS-URL's die geen gebruikersauthenticatie vereisen." + }, + "applicationSuite": { + "label": "Applicatie Suite", + "description": "De naam van de \"suite\" waartoe de software behoort." + }, + "landingURL": { + "label": "Landingspagina URL", + "description": "Als de URL-parameter geen menselijk leesbare of doorzoekbare pagina biedt, maar alleen broncode levert aan een broncode-beheerder, hebt u met deze sleutel de mogelijkheid om een landingspagina op te geven. Deze pagina is idealiter waar uw gebruikers terechtkomen wanneer ze op een knop klikken met de tekst \"Ga naar de broncode van de applicatie\". In het geval dat het product een geautomatiseerde grafische installer biedt, kan deze URL verwijzen naar een pagina die een verwijzing naar de broncode bevat, maar ook het downloaden van zo'n installer aanbiedt." + }, + "isBasedOn": { + "label": "Is gebaseerd op", + "description": "De URL van het originele project, als deze software een variant of een fork is van een andere software. Indien aanwezig, identificeert het de fork als een softwarevariant, afkomstig van de gespecificeerde repositories." + }, + "softwareVersion": { + "label": "Software Versie", + "description": "Het laatste stabiele versienummer van de software. Het versienummer is een tekenreeks die niet bedoeld is om te worden geïnterpreteerd en geparseerd maar alleen te worden weergegeven; parsers moeten geen semantische versioning of een ander specifiek versieformaat aannemen." + }, + "logo": { + "label": "Logo", + "description": "Het logo van de software. Logo's moeten in vectorformaat zijn; rasterformaten zijn alleen toegestaan als terugvalpositie. In dit geval moeten het transparante PNG's zijn, minimaal 1000px breed. Acceptabele formaten: SVG, SVGZ, PNG." + }, + "monochromeLogo": { + "label": "Logo Monochroom", + "description": "Het monochrome (zwarte) logo. Het logo moet in vectorformaat zijn; rasterformaten zijn alleen toegestaan als terugvalpositie. In dit geval moeten het transparante PNG's zijn, minimaal 1000px breed. Acceptabele formaten: SVG, SVGZ, PNG." + }, + "developmentStatus": { + "label": "Ontwikkelingsstatus", + "description": "Toegestane waarden: concept, ontwikkeling, bèta, stabiel, verouderd" + }, + "softwareType": { + "label": "Software Type", + "description": "Toegestane waarden: zelfstandig, add-on, bibliotheek, configuratiebestanden" + }, + "roadmap": { + "label": "Roadmap", + "description": "De URL van de openbare roadmap van de software." + }, + "platforms": { + "label": "Platforms", + "description": "Lijst van platforms waarop de software draait. Het beschrijft de platforms die gebruikers zullen gebruiken om toegang te krijgen tot en te werken met de software, in plaats van het platform waarop de software zelf draait. Gebruik de voorgedefinieerde waarden indien mogelijk. Als de software draait op een platform waarvoor geen voorgedefinieerde waarde beschikbaar is, kan een andere waarde worden gebruikt. Waarden: web, windows, mac, linux, ios, android. Menselijk leesbare waarden buiten deze lijst zijn toegestaan." + }, + "categories": { + "label": "Categorie", + "description": "De lijst met categorieën waaronder deze software valt." + }, + "usedBy": { + "label": "Gebruikt door", + "description": "De lijst met namen van prominente openbare administraties (die zullen dienen als getuigenissen) waarvan de softwareonderhouder momenteel weet dat ze deze software gebruiken. Parsers worden aangemoedigd om deze lijst ook te verbeteren met andere informatie die ze onafhankelijk kunnen verkrijgen; bijvoorbeeld een fork van een software, eigendom van een administratie, zou kunnen worden gebruikt als een signaal van gebruik van de software." + }, + "inputTypes": { + "label": "Invoertypes", + "description": "De lijst met Media Types (MIME Types) zoals verplicht in RFC 6838 die de applicatie kan verwerken als uitvoer. In het geval dat de software geen invoer ondersteunt, kunt u dit veld overslaan of application/x.empty gebruiken." + }, + "outputTypes": { + "label": "Uitvoertypes", + "description": "De lijst met Media Types (MIME Types) zoals verplicht in RFC 6838 die de applicatie kan verwerken als uitvoer. In het geval dat de software geen uitvoer ondersteunt, kunt u dit veld overslaan of application/x.empty gebruiken." } - } \ No newline at end of file + } +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 78c8206e..a83a3741 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -3,15 +3,15 @@ //https://vitejs.dev/guide/env-and-mode#intellisense-for-typescript interface ImportMetaEnv { - readonly VITE_REPOSITORY: string; - readonly VITE_ELASTIC_URL: string; - readonly VITE_VALIDATOR_URL: string; - readonly VITE_VALIDATOR_REMOTE_URL: string; - readonly VITE_DEFAULT_COUNTRY: string; - readonly VITE_FALLBACK_LANGUAGE?: string; - readonly VITE_DEFAULT_COUNTRY_SECTIONS?: string; - } - - interface ImportMeta { - readonly env: ImportMetaEnv - } + readonly VITE_REPOSITORY: string; + readonly VITE_ELASTIC_URL: string; + readonly VITE_VALIDATOR_URL: string; + readonly VITE_VALIDATOR_REMOTE_URL: string; + readonly VITE_DEFAULT_COUNTRY: string; + readonly VITE_FALLBACK_LANGUAGE?: string; + readonly VITE_DEFAULT_COUNTRY_SECTIONS?: string; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} From 4796597429e17d2c61ea68182f0f39089b32a247 Mon Sep 17 00:00:00 2001 From: AlexPalaz Date: Mon, 3 Nov 2025 10:48:46 +0100 Subject: [PATCH 08/13] feat: PublicCode v0.5.0 Support (#541) --- go.work.sum | 2 + src/app/components/Editor.tsx | 100 +++++++++++++++-------- src/app/components/EditorBoolean.tsx | 15 ++-- src/app/components/EditorFundedBy.tsx | 113 ++++++++++++++++++++++++++ src/app/contents/categories.ts | 1 + src/app/contents/fields/it.ts | 5 ++ src/app/contents/publiccode.ts | 31 ++++++- src/app/lib/utils.ts | 103 +++++++++++++++++++++-- src/app/linter/index.ts | 14 +++- src/app/publiccode-adapter.ts | 11 +++ src/app/semver.spec.ts | 6 +- src/i18n/locales/de.json | 18 +++- src/i18n/locales/en.json | 16 +++- src/i18n/locales/fr.json | 16 +++- src/i18n/locales/it.json | 18 +++- src/i18n/locales/nl.json | 18 +++- src/wasm/go.mod | 2 +- src/wasm/main.go | 2 +- 18 files changed, 425 insertions(+), 66 deletions(-) create mode 100644 src/app/components/EditorFundedBy.tsx diff --git a/go.work.sum b/go.work.sum index b508229e..bcf421f9 100644 --- a/go.work.sum +++ b/go.work.sum @@ -11,6 +11,8 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/italia/publiccode-parser-go v1.2.4 h1:ASdOVjgCNtlRKW+/ZrPxmguUxjhKx74vv0TKwLH3U6M= github.com/italia/publiccode-parser-go v1.2.4/go.mod h1:zYlDR8AbitTI9RzX3IRV73tqsmR0SOmhWCJDb3FpMT0= github.com/italia/publiccode-parser-go/v3 v3.0.0/go.mod h1:MXFsgghRD+t6k+08WEeRLNrlTzvPo1AqIRL2tRB4tDE= +github.com/italia/publiccode-parser-go/v5 v5.2.1 h1:9aDiCrh84nHAJzDRhf/Gx+exusfd4iQ0GCwtEwofeqo= +github.com/italia/publiccode-parser-go/v5 v5.2.1/go.mod h1:xndoanQHcweEnJlubntvOHlT/cvde0eFDF59O5PwuCg= github.com/kyoh86/go-spdx v0.0.5-0.20220421143955-2f42f2d4c410/go.mod h1:0Ndah0G/f6NZOyvjm4hUmUGUjCKRzC1qirN4LKASBkM= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= diff --git a/src/app/components/Editor.tsx b/src/app/components/Editor.tsx index 1fd9648a..1267d62b 100644 --- a/src/app/components/Editor.tsx +++ b/src/app/components/Editor.tsx @@ -51,6 +51,7 @@ import EditorContractors from "./EditorContractors"; import EditorDate from "./EditorDate"; import EditorDescriptionInput from "./EditorDescriptionInput"; import EditorFeatures from "./EditorFeatures"; +import EditorFundedBy from "./EditorFundedBy"; import EditorInput from "./EditorInput"; import EditorMultiselect from "./EditorMultiselect"; import EditorRadio from "./EditorRadio"; @@ -95,7 +96,7 @@ const checkWarnings = async (values: PublicCode) => { }; const resolver: Resolver = async ( - values, + values ) => { console.log(values); @@ -130,7 +131,7 @@ const defaultValues = { localisation: { availableLanguages: [] }, maintenance: { contacts: undefined, contractors: undefined }, platforms: [], - categories: [], + categories: undefined, description: {}, it: defaultItaly, }; @@ -164,7 +165,7 @@ export default function Editor() { useITCountrySpecific(); const getNestedValue = ( obj: PublicCodeWithDeprecatedFields, - path: string, + path: string ) => { return path.split(".").reduce((acc, key) => (acc as never)?.[key], obj); }; @@ -197,6 +198,19 @@ export default function Editor() { } = getValues() as PublicCode; return type === "internal" || type === "community"; }; + const isConformeVisible = () => { + const values = getValues() as PublicCode; + if (!values?.it?.conforme) { + return false; + } + const conforme = values.it.conforme; + return ( + conforme.lineeGuidaDesign !== undefined || + conforme.modelloInteroperabilita !== undefined || + conforme.misureMinimeSicurezza !== undefined || + conforme.gdpr !== undefined + ); + }; //#endregion //#region form definition @@ -223,7 +237,7 @@ export default function Editor() { const { countryExtensionVersion } = it; const isCountryExtensionVersionDefined = Boolean(countryExtensionVersion); const isDifferentFromSpecificDefinedValue = Boolean( - IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion, + IT_COUNTRY_EXTENSION_VERSION !== countryExtensionVersion ); const countryExtensionVersionVisible = @@ -231,7 +245,7 @@ export default function Editor() { setShowCountryExtensionVersion(countryExtensionVersionVisible); }, - [], + [] ); useFormPersist("form-values", { @@ -243,7 +257,7 @@ export default function Editor() { checkPubliccodeYmlVersion(pc); checkItCountryExtensionVersion(pc); }, - [setLanguages], + [setLanguages] ), storage: window?.localStorage, // default window.sessionStorage exclude: [], @@ -266,7 +280,7 @@ export default function Editor() { setValue("maintenance.contacts", undefined); } }, - [setValue], + [setValue] ); useEffect(() => { @@ -290,13 +304,13 @@ export default function Editor() { { dismissable: true, state: "success", - }, + } ); } }, (e: FieldErrors) => { const genericErrors = Object.entries(e).filter(([key]) => - key.startsWith("GenericError"), + key.startsWith("GenericError") ); const body = genericErrors.length ? ( @@ -318,7 +332,7 @@ export default function Editor() { state: "error", }); console.error("Errors:", e); - }, + } ); const resetFormHandler = () => { @@ -332,7 +346,7 @@ export default function Editor() { }; const setFormDataAfterImport = async ( - fetchData: () => Promise, + fetchData: () => Promise ) => { try { const publicCode = await fetchData().then((publicCode) => { @@ -364,7 +378,7 @@ export default function Editor() { Array.from(res.warnings).map(([key, { message }]) => ({ key, message, - })), + })) ); } catch (error: unknown) { notify("Import error", (error as Error).message, { @@ -487,7 +501,7 @@ export default function Editor() {
{isDeprecatedFieldVisible( - `description.${lang}.genericName` as never, + `description.${lang}.genericName` as never ) && ( @@ -565,6 +579,12 @@ export default function Editor() { fieldName="isBasedOn" /> + + fieldName="organisation.uri" /> + +
+ +
fieldName="softwareVersion" /> @@ -631,7 +651,6 @@ export default function Editor() { fieldName="categories" data={categories.map((e) => ({ text: e, value: e }))} - required filter="contains" />
@@ -715,25 +734,39 @@ export default function Editor() {
)} -
-
{t("publiccodeyml.it.conforme.label")}
-
-
- fieldName="it.conforme.lineeGuidaDesign" /> + {isConformeVisible() && ( +
+
{t("publiccodeyml.it.conforme.label")}
+
+
+ + fieldName="it.conforme.lineeGuidaDesign" + deprecated + /> +
+
+ + fieldName="it.conforme.modelloInteroperabilita" + deprecated + /> +
-
- fieldName="it.conforme.modelloInteroperabilita" /> +
+
+ + fieldName="it.conforme.misureMinimeSicurezza" + deprecated + /> +
+
+ + fieldName="it.conforme.gdpr" + deprecated + /> +
-
-
- fieldName="it.conforme.misureMinimeSicurezza" /> -
-
- fieldName="it.conforme.gdpr" /> -
-
-
+ )}
{t("publiccodeyml.it.piattaforme.label")}
@@ -758,10 +791,13 @@ export default function Editor() {
-
+
{t("publiccodeyml.it.riuso.label")}
- fieldName="it.riuso.codiceIPA" /> + + fieldName="it.riuso.codiceIPA" + deprecated + />
diff --git a/src/app/components/EditorBoolean.tsx b/src/app/components/EditorBoolean.tsx index 6c8e0afc..ed5de5f6 100644 --- a/src/app/components/EditorBoolean.tsx +++ b/src/app/components/EditorBoolean.tsx @@ -1,23 +1,24 @@ +import { FormGroup, Label } from "design-react-kit"; +import { get } from "lodash"; import { FieldPathByValue, useController, useFormContext, } from "react-hook-form"; -import Input from "./Input"; import { useTranslation } from "react-i18next"; -import PublicCode from "../contents/publiccode"; -import { FormGroup, Label } from "design-react-kit"; import { RequiredDeep } from "type-fest"; -import { get } from "lodash"; +import PublicCode from "../contents/publiccode"; +import Input from "./Input"; type Props = { fieldName: T; required?: boolean; + deprecated?: boolean; }; export default function EditorBoolean< T extends FieldPathByValue, boolean>, ->({ fieldName, required }: Props): JSX.Element { +>({ fieldName, required, deprecated }: Props): JSX.Element { const { control } = useFormContext(); const { field, @@ -33,7 +34,9 @@ export default function EditorBoolean< return (
- {`${label}${required ? " *" : ""}`} + {`${label}${required ? " *" : ""}${ + deprecated ? ` - ${t(`editor.form.deprecatedField`)}` : "" + }`} +>; + +export default function EditorFundedBy(): JSX.Element { + const { control, register } = useFormContext(); + const { append, fields, remove } = useFieldArray< + PublicCode, + typeof fieldName + >({ + control, + name: fieldName, + }); + + const { + field, + formState: { errors }, + } = useController({ + control, + name: fieldName, + }); + + const { t } = useTranslation(); + + return ( +
+
+ +
+
+ {field.value?.length === 0 ? ( +

+ {t("editor.form.noFunders")} +

+ ) : ( + + + + + + + + + + + {fields.map(({ id }, index) => ( + + + {subfields.map((subfield) => { + const { ref, ...reg } = register( + `${fieldName}.${index}.${subfield}` + ); + + return ( + + ); + })} + + + ))} + +
# + {t(`publiccodeyml.${fieldName}.name.label`)} * + + {t(`publiccodeyml.${fieldName}.uri.label`)} +
{index + 1} + + + +
+ )} + +
+
+ ); +} diff --git a/src/app/contents/categories.ts b/src/app/contents/categories.ts index 7cf125d2..02407c2e 100644 --- a/src/app/contents/categories.ts +++ b/src/app/contents/categories.ts @@ -104,6 +104,7 @@ const categories = [ "website-builder", "whistleblowing", "workflow-management", + "other", ] as const; type TCategory = (typeof categories)[number]; diff --git a/src/app/contents/fields/it.ts b/src/app/contents/fields/it.ts index 43207b01..7cccfec2 100644 --- a/src/app/contents/fields/it.ts +++ b/src/app/contents/fields/it.ts @@ -42,22 +42,27 @@ const it: Field[] = [ title: "conforme", label: "Conforme", type: "object", + deprecated: true, properties: { lineeGuidaDesign: { title: "lineeGuidaDesign", type: "boolean", + deprecated: true, }, modelloInteroperabilita: { title: "modelloInteroperabilita", type: "boolean", + deprecated: true, }, misureMinimeSicurezza: { title: "misureMinimeSicurezza", type: "boolean", + deprecated: true, }, gdpr: { title: "gdpr", type: "boolean", + deprecated: true, }, }, }, diff --git a/src/app/contents/publiccode.ts b/src/app/contents/publiccode.ts index 121dbba8..69d229f1 100644 --- a/src/app/contents/publiccode.ts +++ b/src/app/contents/publiccode.ts @@ -4,7 +4,7 @@ import maintenanceTypes from "./maintenanceTypes"; import scopes from "./scopes"; import softwareTypes from "./softwareTypes"; -export const LATEST_VERSION = "0.4.0"; +export const LATEST_VERSION = "0.5.0"; export const IT_COUNTRY_EXTENSION_VERSION = "1.0"; // https://yml.publiccode.tools/schema.core.html @@ -19,7 +19,9 @@ export default interface PublicCode { releaseDate?: string; // “YYYY-MM-DD” logo?: string; platforms: Array; - categories: Array<(typeof categories)[number]>; + categories?: Array<(typeof categories)[number]>; + organisation?: Organisation; + fundedBy?: Array; usedBy?: Array; roadmap?: string; developmentStatus: (typeof developmentStatus)[number]; @@ -35,10 +37,13 @@ export default interface PublicCode { export interface PublicCodeWithDeprecatedFields { monochromeLogo: string; - legal: Pick; + legal: Pick; inputTypes?: Array; outputTypes?: Array; description: Record>; + it?: { + conforme?: Conforme; + }; } interface IntendedAudience { @@ -193,7 +198,9 @@ export const publicCodeDummyObjectFactory = () => releaseDate: "", logo: "", platforms: [], - categories: [], + categories: undefined, + organisation: undefined, + fundedBy: [], usedBy: [], roadmap: "", developmentStatus: "stable", @@ -206,3 +213,19 @@ export const publicCodeDummyObjectFactory = () => dependsOn: {}, it: defaultItaly, }) satisfies PublicCode; + +export interface Organisation { + uri: string; +} + +export type { Organisation as TOrganisation }; + +export interface FundingOrganisation { + name: string; + uri?: string; +} + +export const defaultFundingOrganisation: FundingOrganisation = { + name: "", + uri: undefined, +}; diff --git a/src/app/lib/utils.ts b/src/app/lib/utils.ts index 5c08d3ba..9863b6a4 100644 --- a/src/app/lib/utils.ts +++ b/src/app/lib/utils.ts @@ -3,13 +3,106 @@ import YAML from "yaml"; import PublicCode from "../contents/publiccode"; import linter from "../linter"; +/** + * Converts country codes in intendedAudience to uppercase (ISO 3166-1 alpha-2 standard) + */ +function convertCountriesToUppercase( + intendedAudience?: PublicCode["intendedAudience"] +): PublicCode["intendedAudience"] { + if (!intendedAudience) { + return intendedAudience; + } + + const converted = { ...intendedAudience }; + + if (Array.isArray(converted.countries)) { + converted.countries = converted.countries.map((code) => + typeof code === "string" ? code.toUpperCase() : code + ); + } + + if (Array.isArray(converted.unsupportedCountries)) { + converted.unsupportedCountries = converted.unsupportedCountries.map( + (code) => (typeof code === "string" ? code.toUpperCase() : code) + ); + } + + return converted; +} + +/** + * Converts the data object to use uppercase country section keys (e.g., "it" -> "IT") + * and uppercase country codes in intendedAudience + */ +function convertForYamlOutput(data: PublicCode): Record { + const linted = linter(data); + const converted: Record = { ...linted }; + + if ("it" in converted && converted.it) { + converted.IT = converted.it; + delete converted.it; + } + + if (linted.intendedAudience) { + converted.intendedAudience = convertCountriesToUppercase( + linted.intendedAudience + ); + } + + return converted; +} + +/** + * Converts uppercase country section keys back to lowercase for internal use + * (e.g., "IT" -> "it") and converts country codes to uppercase for consistency + */ +function convertFromYamlInput(parsed: unknown): PublicCode { + const data = parsed as Record; + + if (data.IT && !data.it) { + data.it = data.IT; + delete data.IT; + } + + if (data.intendedAudience && typeof data.intendedAudience === "object") { + const audience = data.intendedAudience as { + countries?: unknown[]; + unsupportedCountries?: unknown[]; + scope?: unknown; + }; + + if (Array.isArray(audience.countries)) { + audience.countries = audience.countries.map((code) => + typeof code === "string" ? code.toUpperCase() : code + ); + } + + if (Array.isArray(audience.unsupportedCountries)) { + audience.unsupportedCountries = audience.unsupportedCountries.map( + (code) => (typeof code === "string" ? code.toUpperCase() : code) + ); + } + } + + return data as unknown as PublicCode; +} + export function parseYaml(yaml: string): PublicCode | null { - return yaml ? (YAML.parse(yaml) as PublicCode) : null; + if (!yaml) { + return null; + } + const parsed = YAML.parse(yaml); + // Note: we are converting the yaml input to the internal use format (IT -> it) + return convertFromYamlInput(parsed); } export function getYaml(data: PublicCode): string | null { console.log("getYaml", data); - return data ? (YAML.stringify(linter(data)) as string) : null; + if (!data) { + return null; + } + const converted = convertForYamlOutput(data); + return YAML.stringify(converted) as string; } export function useIsMobile(breakpoint = 640) { @@ -30,7 +123,7 @@ export function useIsMobile(breakpoint = 640) { export function collectRemovedKeys( original: unknown, sanitized: unknown, - prefix = "", + prefix = "" ): Array { const removed: Array = []; @@ -53,8 +146,8 @@ export function collectRemovedKeys( ...collectRemovedKeys( (originalObj as Record)[key], (sanitizedObj as Record)[key], - nextPrefix, - ), + nextPrefix + ) ); } } diff --git a/src/app/linter/index.ts b/src/app/linter/index.ts index 2725a785..0a964fcc 100644 --- a/src/app/linter/index.ts +++ b/src/app/linter/index.ts @@ -7,6 +7,7 @@ import PublicCode, { defaultContact, defaultContractor, defaultDependency, + defaultFundingOrganisation, defaultIntendedAudience, defaultItaly, defaultPiattaforme, @@ -58,18 +59,23 @@ export default function linter({ logo, platforms, categories, + fundedBy, usedBy, roadmap, developmentStatus, softwareType, intendedAudience, description, + organisation, legal: { license, mainCopyrightOwner, repoOwner, authorsFile }, maintenance: { type, contractors, contacts }, localisation: { localisationReady, availableLanguages }, dependsOn, it, }: PublicCode): PublicCode { + const isEmptyFundingOrg = (fo?: Partial) => + !fo || ((fo.name === undefined || fo.name.trim() === "") && !fo.uri); + const sortedPC: PublicCode = { publiccodeYmlVersion, name, @@ -81,7 +87,13 @@ export default function linter({ releaseDate, logo, platforms: clone(platforms), - categories: validateCategories(categories) as (typeof categories)[number][], + categories: categories + ? (validateCategories(categories) as (typeof categories)[number][]) + : undefined, + organisation, + fundedBy: fundedBy + ?.filter((fo) => !isEmptyFundingOrg(fo)) + .map((fo) => sortAs(defaultFundingOrganisation, fo)), usedBy: clone(usedBy), roadmap, developmentStatus, diff --git a/src/app/publiccode-adapter.ts b/src/app/publiccode-adapter.ts index 7cdd5375..c0e4e2ae 100644 --- a/src/app/publiccode-adapter.ts +++ b/src/app/publiccode-adapter.ts @@ -17,6 +17,17 @@ const publicCodeAdapter = ({ const { usedBy, releaseDate, description, maintenance } = publicCode; + // automigrate riuso.codiceIPA -> organisation.uri (urn:x-italian-pa:[codiceIPA]) + try { + const codiceIPA: string | undefined = publicCode?.it?.riuso?.codiceIPA; + const existingOrgUri: string | undefined = publicCode?.organisation?.uri; + if (!existingOrgUri && codiceIPA) { + values.organisation = { uri: `urn:x-italian-pa:${codiceIPA}` } as never; + } + } catch { + // noop + } + if (usedBy) { values.usedBy = removeDuplicate(usedBy); } diff --git a/src/app/semver.spec.ts b/src/app/semver.spec.ts index 43774a6a..af52a840 100644 --- a/src/app/semver.spec.ts +++ b/src/app/semver.spec.ts @@ -32,9 +32,9 @@ describe("semver test", () => { expect(actual02).toBeTruthy(); expect(actual021).toBeTruthy(); expect(actual03).toBeTruthy(); - expect(actual04).toBeFalsy(); - expect(actual041).toBeFalsy(); - expect(actual041).toBeFalsy(); + expect(actual04).toBeTruthy(); + expect(actual041).toBeTruthy(); + expect(actual041).toBeTruthy(); expect(actual05).toBeFalsy(); }); }); diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 35a24d51..7b0b2b26 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -63,7 +63,8 @@ "overwritetext": "Diese Operation löscht alle Daten", "unset": "(nicht gesetzt)", "true": "Ja", - "false": "Nein" + "false": "Nein", + "noFunders": "Keine Förderer vorhanden" }, "sections": { "name": "Name", @@ -154,11 +155,11 @@ }, "countries": { "label": "Länder", - "description": "Liste der Länder, für die diese Software explizit die Einhaltung (z. B. ihrer Prozesse, Technologien oder Gesetze) beansprucht. Alle Länder werden mit Kleinbuchstaben gemäß ISO 3166-1 Alpha-2-Ländercodes mit zwei Buchstaben angegeben." + "description": "Liste der Länder, für die diese Software explizit die Einhaltung (z. B. ihrer Prozesse, Technologien oder Gesetze) beansprucht. Alle Länder werden mit Großbuchstaben gemäß ISO 3166-1 Alpha-2-Ländercodes mit zwei Buchstaben angegeben." }, "unsupportedCountries": { "label": "Nicht unterstützte Länder", - "description": "Liste der nicht unterstützten Länder. Dies kann der Fall sein, wenn ein Konflikt zwischen der Funktionsweise der Software und einem bestimmten Gesetz, Prozess oder einer Technologie besteht. Alle Länder werden mit Kleinbuchstaben gemäß ISO 3166-1 Alpha-2-Ländercodes mit zwei Buchstaben angegeben." + "description": "Liste der nicht unterstützten Länder. Dies kann der Fall sein, wenn ein Konflikt zwischen der Funktionsweise der Software und einem bestimmten Gesetz, Prozess oder einer Technologie besteht. Alle Länder werden mit Großbuchstaben gemäß ISO 3166-1 Alpha-2-Ländercodes mit zwei Buchstaben angegeben." } }, "localisation": { @@ -359,6 +360,17 @@ "label": "Kategorie", "description": "Die Liste der Kategorien, unter die diese Software fällt." }, + "organisation": { + "uri": { + "label": "Organisations-URI", + "description": "Eine eindeutige Kennung für die Organisation, die die Software entwickelt, wartet oder besitzt. Es kann eine standardmäßige URI oder ein URN sein (z. B. urn:x-italian-pa:[codiceIPA] für italienische öffentliche Verwaltungen)." + } + }, + "fundedBy": { + "label": "Finanziert von", + "name": { "label": "Name der Organisation" }, + "uri": { "label": "Organisations-URI" } + }, "usedBy": { "label": "Wird verwendet von", "description": "Die Liste der Namen prominenter öffentlicher Verwaltungen (die als Referenzen dienen), von denen dem Softwarebetreuer derzeit bekannt ist, dass sie diese Software verwenden. Parser werden ermutigt, diese Liste auch um andere Informationen zu erweitern, die sie unabhängig erhalten können; beispielsweise könnte ein Fork einer Software, die einer Verwaltung gehört, als Hinweis auf die Nutzung der Software dienen." diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index fad0da88..01e00eb4 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -80,6 +80,7 @@ "true": "Yes", "false": "No" }, + "noFunders": "No funders present", "sections": { "name": "Name", "repository-and-documentation": "Repository & Documentation", @@ -170,11 +171,11 @@ }, "countries": { "label": "Countries", - "description": "List of countries this software explicitly claims compliance with (fe. their processes, technologies or laws). All countries are specified using lowercase ISO 3166-1 alpha-2 two-letter country codes." + "description": "List of countries this software explicitly claims compliance with (fe. their processes, technologies or laws). All countries are specified using uppercase ISO 3166-1 alpha-2 two-letter country codes." }, "unsupportedCountries": { "label": "Unsupported Countries", - "description": "List of unsupported countries. This might be the case if there is a conflict between how the software is working and a specific law, process or technology. All countries are specified using lowercase ISO 3166-1 alpha-2 two-letter country codes." + "description": "List of unsupported countries. This might be the case if there is a conflict between how the software is working and a specific law, process or technology. All countries are specified using uppercase ISO 3166-1 alpha-2 two-letter country codes." } }, "localisation": { @@ -375,6 +376,17 @@ "label": "Category", "description": "The list of categories this software falls under." }, + "organisation": { + "uri": { + "label": "Organisation URI", + "description": "A unique identifier for the organisation that develops, maintains or owns the software. It can be a standard URI or a URN (e.g., urn:x-italian-pa:[codiceIPA] for Italian public administrations)." + } + }, + "fundedBy": { + "label": "Funded by", + "name": { "label": "Organisation name" }, + "uri": { "label": "Organisation URI" } + }, "usedBy": { "label": "Used By", "description": "The list of the names of prominent public administrations (that will serve as testimonials) that are currently known to the software maintainer to be using this software. Parsers are encouraged to enhance this list also with other information that can obtain independently; for instance, a fork of a software, owned by an administration, could be used as a signal of usage of the software." diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 27df1bdc..05d97061 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -77,6 +77,7 @@ "overwrite": "Overwrite form", "overwritetext": "This operation will erase all data" }, + "noFunders": "Aucun financeur présent", "sections": { "name": "Nom", "repository-and-documentation": "Dépôt et documentation", @@ -167,11 +168,11 @@ }, "countries": { "label": "Pays", - "description": "Cette clé inclut explicitement certains pays dans le public visé, c'est-à-dire que le logiciel revendique explicitement la conformité à des processus, technologies ou lois spécifiques. Tous les pays sont spécifiés à l'aide des codes pays à deux lettres en minuscules de la norme ISO 3166-1 alpha-2." + "description": "Cette clé inclut explicitement certains pays dans le public visé, c'est-à-dire que le logiciel revendique explicitement la conformité à des processus, technologies ou lois spécifiques. Tous les pays sont spécifiés à l'aide des codes pays à deux lettres en majuscules de la norme ISO 3166-1 alpha-2." }, "unsupportedCountries": { "label": "Pays non pris en charge", - "description": "Cette clé marque explicitement les pays comme NON pris en charge. Cela peut être le cas s'il existe un conflit entre le fonctionnement du logiciel et une loi, un processus ou une technologie spécifique. Tous les pays sont spécifiés à l'aide des codes de pays à deux lettres en minuscules de la norme ISO 3166-1 alpha-2." + "description": "Cette clé marque explicitement les pays comme NON pris en charge. Cela peut être le cas s'il existe un conflit entre le fonctionnement du logiciel et une loi, un processus ou une technologie spécifique. Tous les pays sont spécifiés à l'aide des codes de pays à deux lettres en majuscules de la norme ISO 3166-1 alpha-2." } }, "localisation": { @@ -372,6 +373,17 @@ "label": "Category", "description": "The list of categories this software falls under." }, + "organisation": { + "uri": { + "label": "URI de l'organisation", + "description": "Un identifiant unique pour l'organisation qui développe, maintient ou possède le logiciel. Il peut s'agir d'un URI standard ou d'un URN (par exemple, urn:x-italian-pa:[codiceIPA] pour les administrations publiques italiennes)." + } + }, + "fundedBy": { + "label": "Financé par", + "name": { "label": "Nom de l’organisation" }, + "uri": { "label": "URI de l’organisation" } + }, "usedBy": { "label": "Utilisé par", "description": "Une liste de noms d'administrations publiques importantes (qui serviront de témoignages) qui, à la connaissance du responsable du logiciel, utilisent actuellement ce logiciel. Les analyseurs sont encouragés à enrichir cette liste avec d'autres informations qui peuvent être obtenues indépendamment ; par exemple, un fork d'un logiciel, détenu par une administration, pourrait être utilisé comme un signe d'utilisation du logiciel." diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index db419a8a..2374b419 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -79,7 +79,8 @@ "overwritetext": "Questa operazione cancellerà tutti i dati già inseriti", "unset": "(Non impostato)", "true": "Sì", - "false": "No" + "false": "No", + "noFunders": "Nessun finanziatore presente" }, "sections": { "name": "Nome", @@ -171,11 +172,11 @@ }, "countries": { "label": "Paesi", - "description": "Indica in modo esplicito alcuni Paesi tra il pubblico previsto, come la conformità con processi specifici, tecnologie o leggi." + "description": "Indica in modo esplicito alcuni Paesi tra il pubblico previsto, come la conformità con processi specifici, tecnologie o leggi. Tutti i paesi sono specificati utilizzando codici paese ISO 3166-1 alpha-2 a due lettere in maiuscolo." }, "unsupportedCountries": { "label": "Paesi non supportati", - "description": "Indica esplicitamente i Paesi NON supportati. Questa situazione potrebbe verificarsi nel momento in cui esista un conflitto tra la modalità di funzionamento del software ed una legge specifica, un processo o una tecnologia." + "description": "Indica esplicitamente i Paesi NON supportati. Questa situazione potrebbe verificarsi nel momento in cui esista un conflitto tra la modalità di funzionamento del software ed una legge specifica, un processo o una tecnologia. Tutti i paesi sono specificati utilizzando codici paese ISO 3166-1 alpha-2 a due lettere in maiuscolo." } }, "localisation": { @@ -376,6 +377,17 @@ "label": "Categorie", "description": "Una lista di categorie di cui questo software fa parte." }, + "organisation": { + "uri": { + "label": "URI organizzazione", + "description": "Un identificatore univoco per l'organizzazione che sviluppa, mantiene o possiede il software. Può essere un URI standard o un URN (ad esempio, urn:x-italian-pa:[codiceIPA] per le amministrazioni pubbliche italiane)." + } + }, + "fundedBy": { + "label": "Finanziato da", + "name": { "label": "Nome organizzazione" }, + "uri": { "label": "URI organizzazione" } + }, "usedBy": { "label": "Usato Da", "description": "Una lista di nome di prominenti Pubbliche Amministrazioni (che serviranno come “testimonial”) che il maintainer riconosce come utilizzatori attuali di questo software.I parser sono incoraggiati ad accrescere questa lista anche con altre informazioni che riescono ad ottenere in modo indipendente; ad esempio, il fork di un software, di proprietà di un’amministrazione, può essere usato come un segnale di uso del software." diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 9f4af814..ac066150 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -78,7 +78,8 @@ "overwritetext": "Deze bewerking zal alle gegevens wissen", "unset": "(niet ingesteld)", "true": "Ja", - "false": "Nee" + "false": "Nee", + "noFunders": "Geen financiers aanwezig" }, "sections": { "name": "Naam", @@ -170,11 +171,11 @@ }, "countries": { "label": "Landen", - "description": "Lijst van landen waarvoor deze software expliciet naleving beweert (bijv. hun processen, technologieën of wetten). Alle landen worden aangegeven met kleine letters ISO 3166-1 alpha-2 tweeletterige landcodes." + "description": "Lijst van landen waarvoor deze software expliciet naleving beweert (bijv. hun processen, technologieën of wetten). Alle landen worden aangegeven met hoofdletters ISO 3166-1 alpha-2 tweeletterige landcodes." }, "unsupportedCountries": { "label": "Niet-ondersteunde landen", - "description": "Lijst van niet-ondersteunde landen. Dit kan het geval zijn als er een conflict is tussen hoe de software werkt en een specifieke wet, proces of technologie. Alle landen worden aangegeven met kleine letters ISO 3166-1 alpha-2 tweeletterige landcodes." + "description": "Lijst van niet-ondersteunde landen. Dit kan het geval zijn als er een conflict is tussen hoe de software werkt en een specifieke wet, proces of technologie. Alle landen worden aangegeven met hoofdletters ISO 3166-1 alpha-2 tweeletterige landcodes." } }, "localisation": { @@ -375,6 +376,17 @@ "label": "Categorie", "description": "De lijst met categorieën waaronder deze software valt." }, + "organisation": { + "uri": { + "label": "Organisatie-URI", + "description": "Een unieke identifier voor de organisatie die de software ontwikkelt, onderhoudt of bezit. Het kan een standaard URI of een URN zijn (bijv. urn:x-italian-pa:[codiceIPA] voor Italiaanse openbare besturen)." + } + }, + "fundedBy": { + "label": "Gefinancierd door", + "name": { "label": "Naam organisatie" }, + "uri": { "label": "Organisatie-URI" } + }, "usedBy": { "label": "Gebruikt door", "description": "De lijst met namen van prominente openbare administraties (die zullen dienen als getuigenissen) waarvan de softwareonderhouder momenteel weet dat ze deze software gebruiken. Parsers worden aangemoedigd om deze lijst ook te verbeteren met andere informatie die ze onafhankelijk kunnen verkrijgen; bijvoorbeeld een fork van een software, eigendom van een administratie, zou kunnen worden gebruikt als een signaal van gebruik van de software." diff --git a/src/wasm/go.mod b/src/wasm/go.mod index 8225bfb6..42998e7f 100644 --- a/src/wasm/go.mod +++ b/src/wasm/go.mod @@ -2,7 +2,7 @@ module github.com/italia/publiccode-editor/wasm go 1.23.9 -require github.com/italia/publiccode-parser-go/v4 v4.3.7 +require github.com/italia/publiccode-parser-go/v5 v5.2.1 require ( github.com/Jeffail/gabs v1.4.0 // indirect diff --git a/src/wasm/main.go b/src/wasm/main.go index 7b33a160..c2c45e94 100644 --- a/src/wasm/main.go +++ b/src/wasm/main.go @@ -7,7 +7,7 @@ import ( "encoding/json" "syscall/js" - "github.com/italia/publiccode-parser-go/v4" + "github.com/italia/publiccode-parser-go/v5" ) func main() { From a647bdd547b721fc36706ef0f78a981b0e46bc30 Mon Sep 17 00:00:00 2001 From: Max Burri Date: Fri, 3 Oct 2025 15:46:56 +0200 Subject: [PATCH 09/13] feat: implement cd bund --- .github/workflows/create-release-pr.yml | 74 +++++++++ .github/workflows/dependabot-on-develop.yml | 57 +++++++ .github/workflows/deploy.yml | 11 +- .github/workflows/finish-release.yml | 53 ++++++ CODEOWNERS | 1 + README.md | 15 ++ RELEASE.md | 37 +++++ package-lock.json | 20 ++- package.json | 5 +- public/assets/img/favicon-32x32.png | Bin 701 -> 1230 bytes publiccode.yml | 92 +++++------ screenshot.png | Bin 352657 -> 226186 bytes scripts/ci/constants.js | 9 + scripts/ci/updatePubliccodeReleaseDate.js | 56 +++++++ scripts/ci/updatePubliccodeSoftwareVersion.js | 31 ++++ scripts/ci/yaml-file-proxy.js | 22 +++ src/app/App.tsx | 2 +- src/app/components/Editor.tsx | 6 +- src/app/components/EditorAwards.tsx | 4 +- src/app/components/EditorContacts.tsx | 3 +- src/app/components/EditorContractors.tsx | 3 +- src/app/components/EditorDate.tsx | 2 +- src/app/components/EditorFeatures.tsx | 4 +- src/app/components/EditorFundedBy.tsx | 3 +- src/app/components/EditorInput.tsx | 2 +- src/app/components/EditorScreenshots.tsx | 4 +- src/app/components/EditorToolbar.tsx | 6 +- src/app/components/EditorUsedBy.tsx | 4 +- src/app/components/EditorVideos.tsx | 4 +- src/app/components/Head.tsx | 25 ++- src/app/components/ResetFormConfirm.tsx | 3 +- src/app/components/SettingsPanel.tsx | 1 + src/app/components/UploadPanel.tsx | 5 +- src/app/contents/constants.ts | 2 +- src/assets/img/Flag.svg | 4 + src/assets/main.css | 155 +++++++++--------- vite.config.ts | 1 + 37 files changed, 555 insertions(+), 171 deletions(-) create mode 100644 .github/workflows/create-release-pr.yml create mode 100644 .github/workflows/dependabot-on-develop.yml create mode 100644 .github/workflows/finish-release.yml create mode 100644 CODEOWNERS create mode 100644 RELEASE.md create mode 100644 scripts/ci/constants.js create mode 100644 scripts/ci/updatePubliccodeReleaseDate.js create mode 100644 scripts/ci/updatePubliccodeSoftwareVersion.js create mode 100644 scripts/ci/yaml-file-proxy.js create mode 100644 src/assets/img/Flag.svg diff --git a/.github/workflows/create-release-pr.yml b/.github/workflows/create-release-pr.yml new file mode 100644 index 00000000..6c8a9e00 --- /dev/null +++ b/.github/workflows/create-release-pr.yml @@ -0,0 +1,74 @@ +name: Create Release PR +on: + workflow_dispatch: + inputs: + release_type: + description: 'Select type of release' + required: true + type: choice + default: patch + options: + - patch + - minor + - major + +permissions: + contents: write + pull-requests: write +jobs: + create_release_pr: + runs-on: ubuntu-latest + steps: + - name: Checkout develop branch + uses: actions/checkout@v4 + with: + ref: develop + fetch-depth: 0 + + - name: Set up Git user + run: | + git config --global user.name "${GITHUB_ACTOR}" + git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" + + - name: Get Next Version + id: nv + run: + echo "new_version=$(npx semver $(jq -r .version package.json) -i ${{ github.event.inputs.release_type }})" >> $GITHUB_OUTPUT + + - name: Create release branch + run: | + RELEASE_BRANCH="release/${{ steps.nv.outputs.new_version }}" + git checkout -b "$RELEASE_BRANCH" develop + git push --set-upstream origin "$RELEASE_BRANCH" + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Install deps + run: npm ci + + - name: Update release version + run: | + RELEASE_BRANCH="release/${{ steps.nv.outputs.new_version }}" + git status + if [ -f package.json ]; then + npm version ${{ steps.nv.outputs.new_version }} --no-git-tag-version + git add package.json package-lock.json + fi + if [ -f publiccode.yml ]; then + node scripts/ci/updatePubliccodeReleaseDate.js + node scripts/ci/updatePubliccodeSoftwareVersion.js ${{ steps.nv.outputs.new_version }} + git add publiccode.yml + fi + git commit -m "chore: bump version to ${{ steps.nv.outputs.new_version }}" || echo "No changes to commit" + git push origin "$RELEASE_BRANCH" + + - name: Create PR + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + RELEASE_BRANCH="release/${{ steps.nv.outputs.new_version }}" + git checkout "$RELEASE_BRANCH" + gh pr create -t "chore: release ${{ steps.nv.outputs.new_version }}" -b "Release ${{ steps.nv.outputs.new_version }}. Both Package version and publiccode.yml are already updated. Don't forget to edit CHANGELOG.md" -B main -l release \ No newline at end of file diff --git a/.github/workflows/dependabot-on-develop.yml b/.github/workflows/dependabot-on-develop.yml new file mode 100644 index 00000000..43918457 --- /dev/null +++ b/.github/workflows/dependabot-on-develop.yml @@ -0,0 +1,57 @@ +name: Recreate Dependabot PR on develop + +on: + pull_request: + types: [opened] + branches: + - main + +jobs: + rebase-dependabot-to-develop: + if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]' + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Git + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + - name: Fetch full history and all branches + run: git fetch --unshallow --all + + - name: Create a new branch from develop with dependabot changes + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ORIGINAL_BRANCH="${{ github.event.pull_request.head.ref }}" + NEW_BRANCH="dependabot-develop-${ORIGINAL_BRANCH}" + + # Create new branch based on develop + git checkout origin/develop -b $NEW_BRANCH + + # Get last commit message from original Dependabot branch + LAST_COMMIT_MSG=$(git log -1 --pretty=%B origin/$ORIGINAL_BRANCH) + + # Merge Dependabot changes into the new branch + git merge --no-commit origin/$ORIGINAL_BRANCH || true + git commit -m "$LAST_COMMIT_MSG" + git push origin $NEW_BRANCH + + # Create new pull request against develop + gh pr create \ + --base develop \ + --head $NEW_BRANCH \ + --title "${{ github.event.pull_request.title }} (rebased onto develop)" \ + --body "This is an automated copy of #${{ github.event.pull_request.number }}, targeting \`develop\` instead of \`main\`." + + # Close the original PR + gh pr close ${{ github.event.pull_request.number }} --comment "Automatically closed: a new PR has been created against \`develop\`." + + # Delete the original Dependabot branch + gh api \ + -X DELETE \ + repos/${{ github.repository }}/git/refs/heads/$ORIGINAL_BRANCH \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a5652412..d0bddc76 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,7 +1,7 @@ on: push: branches: - - main + - cd-bund jobs: deploy: @@ -17,12 +17,9 @@ jobs: - run: npm ci - run: npm run build env: - DEFAULT_COUNTRY_SECTION: italy - ELASTIC_URL: "https://elasticsearch.developers.italia.it/indicepa_pec/_search" + DEFAULT_COUNTRY_SECTION: switzerland - run: | - git remote set-url origin https://git:${GITHUB_TOKEN}@github.com/italia/publiccode-editor.git - echo publiccode-editor.developers.italia.it > dist/CNAME - - npm run deploy -m "Automated deployment: ${CIRCLE_SHA1} [ci skip]" + git remote set-url origin https://git:${GITHUB_TOKEN}@github.com/swiss/publiccode-editor.git + npm run gdeploy -m "Automated deployment: ${CIRCLE_SHA1} [ci skip]" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/finish-release.yml b/.github/workflows/finish-release.yml new file mode 100644 index 00000000..e1a1ab3e --- /dev/null +++ b/.github/workflows/finish-release.yml @@ -0,0 +1,53 @@ +name: Finish Release PR +permissions: + contents: write +on: + pull_request: + branches: + - main + types: + - closed + +jobs: + finish_release: + if: startsWith(github.head_ref, 'release/') && github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - name: Checkout main branch + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Git user + run: | + git config --global user.name "${GITHUB_ACTOR}" + git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" + + - name: Get Version + id: v + run: | + echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT + - name: Attach a tag + run: | + git fetch + git checkout main + git tag v${{ steps.v.outputs.version }} + git push origin main + git push --tags + - name: Merge to Develop + run: | + git fetch + git checkout develop + git merge --no-ff main -m "chore: release ${{ steps.v.outputs.version }}" + git push origin develop + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ steps.v.outputs.version }} + name: Release ${{ steps.v.outputs.version }} + body: "Automated release for tag v${{ steps.v.outputs.version }}" + draft: false + prerelease: false + make_latest: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..ec1ef44f --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @olibrian \ No newline at end of file diff --git a/README.md b/README.md index 0245b9f0..0be4b32a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,19 @@ # publiccode yml Editor + +This project is a fork of [italia/publiccode-editor](https://github.com/italia/publiccode-editor), customized to align with the Design System of the Swiss Confederation 🇨🇭. + +For details about the Swiss Design System, see: + +- [Design System for the Swiss Confederation (GitHub)](https://github.com/swiss/designsystem) +- [Design System for the Swiss Confederation (Stoybook)](https://swiss.github.io/designsystem/?path=/docs/get-started--docs) +- [Design System Core Library (Figma)](https://www.figma.com/design/3UYgqxmcJbG0hpWuti3y8U/🇨🇭Design-System-Core-Library) + +The application is live at: https://puzzle.github.io/publiccode-editor/ + +Below is the original README for the Italian version. + +--- + ![Build Status](https://img.shields.io/circleci/project/github/italia/publiccode-editor/master.svg) ![Issues](https://img.shields.io/github/issues/italia/publiccode-editor.svg) ![License](https://img.shields.io/github/license/italia/publiccode-editor.svg) [![Join the #publiccode channel](https://img.shields.io/badge/Slack%20channel-%23publiccode-blue.svg?logo=slack)](https://developersitalia.slack.com/messages/CAM3F785T) [![Get invited](https://slack.developers.italia.it/badge.svg)](https://slack.developers.italia.it/) diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 00000000..091882a0 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,37 @@ +# RELEASE + +The release process is automated using Github Actions. This automated process mirrors the manual one currently used. + +## Branch workflow + +### Start a release + +Everytime a new release starts, you have to run the action *create-release-pr*. +It will ask if you wanna relase a patch, a minor or a major. +After that, it will: + +- Generate a new version of the package +- Create a branch with this name release/*\* starting from *develop* +- It will update the *package.json* +- It will update the *publiccode.yml* +- It will open a PR on that branch + +The PR process has the aim of giving the freedom to do manual editing. +You MUST update *CHANGELOG.md* manually before closing the PR. + +### Finishing a release + +Another Github Action, *finish-release*, is triggered when the PR is closed on *main*. + +This action will: + +- Create a tag and push it +- Merge *main* on *develop* +- Create a *release package* on Github + +It's highly recommended to edit manually the description of the release. +It will be automated in the next releases. + +## Future enhancements + +This worfklow will be changed with the adoption of more solid and more robust solutions. \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d1957a2a..c4c13eb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@uiw/react-md-editor": "^4.0.5", "accessible-autocomplete": "^3.0.1", "bootstrap": "^5.3.6", - "bootstrap-italia": "^2.14.0", + "bootstrap-switzerland": "puzzle/bootstrap-switzerland#gh-pages", "copy-to-clipboard": "^3.3.3", "countries-list": "^3.0.6", "date-fns": "^4.1.0", @@ -5583,6 +5583,24 @@ "resolved": "https://registry.npmjs.org/bootstrap-italia/-/bootstrap-italia-2.14.0.tgz", "integrity": "sha512-df8zE55x6FIViPxVXjfggaJVoR/9DMKR37dpvgs/Y6pwc8kKU8ShPEusnr2kyy4w5pQvBeuKmsBT+dltkXy9rA==", "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@popperjs/core": "^2.11.6", + "@splidejs/splide": "^4.1.4", + "@types/bootstrap": "^5.2.6", + "animejs": "^3.2.1", + "design-tokens-italia": "^1.1.1", + "just-validate": "^4.3.0", + "minimasonry": "^1.3.2", + "progressbar.js": "^1.1.0", + "uuid": "^8.3.2", + "video.js": "^8.21.0" + } + }, + "node_modules/bootstrap-switzerland": { + "version": "2.16.0", + "resolved": "git+ssh://git@github.com/puzzle/bootstrap-switzerland.git#d638b1c9177b5f66a4e3055c59b2902f835d4494", + "license": "BSD-3-Clause", "dependencies": { "@popperjs/core": "^2.11.6", "@splidejs/splide": "^4.1.4", diff --git a/package.json b/package.json index e497a213..e65704b8 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "serve": "rm -rf dist; npm run build && http-server dist", "format": "prettier --write 'src/**/*.{ts,tsx,scss,css,json}' ", "test": "jest --passWithNoTests", + "gdeploy": "gh-pages -u 'Deploy Bot ' -d dist", "deploy": "gh-pages -u 'Deploy Bot ' -d dist", "release": "release-it", "_postinstall": "patch-package" @@ -28,7 +29,7 @@ ], "repository": { "type": "git", - "url": "git@github.com:italia/publiccode-editor.git" + "url": "git@github.com:puzzle/publiccode-editor.git" }, "jest": { "moduleNameMapper": { @@ -43,7 +44,7 @@ "@uiw/react-md-editor": "^4.0.5", "accessible-autocomplete": "^3.0.1", "bootstrap": "^5.3.6", - "bootstrap-italia": "^2.14.0", + "bootstrap-switzerland": "puzzle/bootstrap-switzerland#gh-pages", "copy-to-clipboard": "^3.3.3", "countries-list": "^3.0.6", "date-fns": "^4.1.0", diff --git a/public/assets/img/favicon-32x32.png b/public/assets/img/favicon-32x32.png index 56b1cac7fd83354ea34590a8a2be11ba02bcc2f9..11f10c46bbef5646ef6336c55917ed1da7a5be64 100644 GIT binary patch delta 1221 zcmV;$1Umb@1rG_x6NccCV!?gt7704T^K|ke2B=* zGUg;H0nhrnr#`B?D9`fl`?Gr0ti=GINIc67(< z8cD$z(D~vx9}yt13)HKQ^L^|%^%KDV3|#3gf4K(Ce3D*mY2hQFe;c^CZfVLMaJd5v zJsGkoyON)lkjnw@XY@@OVBi+$S!>L#d5+TuAVsrE+dW{0Qs=+IP%bOBCgB+~pI?X+-|#PGN0;R_zSeUzjDL z{bxu#dFb+{M(&Y+I}L>DlF5sJPZbMPO(S}!%jH!y&CwLW3tp}Hm*$%YO27h&dqAKl zv44G2u;nITBV6Q5HL_$QD7lnYP@HQlN^D;OIoZR2jW#@l*5B(8QV@y9w*|G|zJWG4 z07`{`HT?l=Y_d$EAh81xuzn{^p!N3>8@cYQ@BYC7Pyg1~tFk7R7Xhyt*z}s%1j|Wm zUjjK`bq@%v22Ft__wP#prS&X@l~shO6n~-`i4g8gxJ!I3g1aoZwK{O;2@;z|Hz)UxMDNUlEl^xOT zPHXiwFH{Y;BrE^ZPWWm73Fm-OdB1b;4p$A=&r>pH&JWy|fGnOVU_`FU&z68&z*Mcm zYxrFt)A0c4@o4xWFbmxGlYO@jlRi$l!n?ph$3FiEcxqs-?di+NLF5>4Q+_@(Fu(ov jcU=-)l~1+**0B8o8I0NVeYFlr00000NkvXXu0mjfU??2S literal 701 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10qAS2B#FZiKj8Nf)ga!9` za?cqwU;F?6ze43D&g^r(Q*QI+op+yj>;2b1pMU&~o_p`d?|(mk|NH*yFH`!NEtfu= zd-OG6+MVmqzq4hXee>ma+1e*7PQTl5;r*N=ueoy0t!?!=9=G^=E{SRaM8QsRKw%s>)UQJyEbQNQgx4R4LkNlU% zfgH{PkH}&M1~x$uW)#a_%LEi;FY)wsWq-&d$-^%9%d^@DC^XsA#WBR<^wkR|g_;Zm zTrax0EJ|YL(Z60#7X>$;Al7RocRoCLe_Jk~b6?_dYiY)6UcN1#5Ap_`TFkcm^HL4=gg2FbjoSUQ zSu1R`xEYoNnt#8>k@a=8yxWJ62dONX-S!{YlK;8aXcsKy^JnJ#S!Alo33Q%niEBhj zN@7W>RdP`(kYX@0Ff`XSFw!+L4KXybGBCF?HqbUOv@$SwbCxw1MMG|WN@iLmZVhuM z?7axoAPKS|I6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWIb8s*s41pu}>8f};Gi z%$!t(lFEWqh0KDIWCn(cIgdZ_a1@4VXq@stea7=?5CgL^w_Y;0u(GiCWD#az1(ybs x!zs+ln?n>%-?(z($eANDN7zp{cr5VJV|XPlSn|oqbSlsa22WQ%mvv4FO#oW(6C?lt diff --git a/publiccode.yml b/publiccode.yml index 8d0f2302..29e8b850 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -1,69 +1,55 @@ -publiccodeYmlVersion: "0.3" +publiccodeYmlVersion: 0.4.0 +name: publiccode editor +url: https://github.com/puzzle/publiccode-editor +softwareVersion: 2.1.0 +releaseDate: 2025-07-03 +platforms: + - web categories: - - it-development + - application-development +developmentStatus: development +softwareType: standalone/web description: - it: - features: - - Generazione di publiccode.yml - - Modifica di publiccode.yml - - Validazione di publiccode.yml - - Importazione di publiccode.yml tramite URL - - Possibilità di gestire diverse lingue - genericName: Generatore di publiccode.yml - longDescription: > - publiccode editor è un'applicazione web per generare file - - [`publiccode.yml`](https://github.com/italia/publiccode.yml) validi. + de-CH: + localisedName: publiccode.yml Editor + shortDescription: Ein Web-Editor zur Erstellung und Validierung von publiccode.yml-Dateien. + longDescription: >- + Der PublicCode-Editor ist eine Webanwendung zur Erstellung gültiger + publiccode.yml-Dateien. - Compilando il form, genera automaticamente un file YAML compatible con - l'ultima versione dello standard publiccode. Questo file può essere - copiato + Basierend auf den Angaben im Formular wird eine YAML-Datei generiert, die + dem neuesten PublicCode-Standard entspricht. Die Datei kann direkt kopiert + oder heruntergeladen und in ein Repository übernommen werden. - o scaricato localmente per essere poi inserito nel repository di - destinazione. - - - Può inoltre essere usato come validatore. È possible incollare o importare - - un file `publiccode.yml` esistente all'interno dell'editor. L'editor - validerà - - il documento importato e aiuterà a correggere eventuali errori. - shortDescription: Un editor web per generare e validare file publiccode.yml. + Der Editor kann auch zur Validierung bestehender publiccode.yml-Dateien + verwendet werden. + features: + - Generierung von publiccode.yml + - Modifikation von publiccode.yml + - Validierung von publiccode.yml + - Import von publiccode.yml über URL + - Mehrere Sprachen können verwaltet werden screenshots: - screenshot.png -developmentStatus: stable -it: - countryExtensionVersion: "0.2" - piattaforme: - anpr: false - cie: false - pagopa: false - spid: false - riuso: - codiceIPA: pcm legal: license: AGPL-3.0-or-later - authorsFile: AUTHORS.md +maintenance: + type: community + contacts: + - name: Olivier Brian + email: brian@puzzle.ch + phone: "" + affiliation: "" + - name: Claudia Asti + email: asti@puzzle.ch + phone: "" + affiliation: "" localisation: + localisationReady: true availableLanguages: - de - en - fr - it - nl - localisationReady: true -maintenance: - contacts: - - name: Leonardo Favario - - name: Alessandro Sebastiani - - name: Fabio Bonelli - type: community -name: publiccode editor -platforms: - - web -releaseDate: 2025-07-23 -softwareType: standalone/web -softwareVersion: 2.1.1 -url: https://github.com/italia/publiccode-editor diff --git a/screenshot.png b/screenshot.png index cff9c1bee578ebf3c8f9f93fe7061a0f06c92559..d945dce5c639ca22fcce36c04fe2c566c2f23636 100644 GIT binary patch literal 226186 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

auK1l$o-`G3M*w*6f3qu=CPpB6@I27*!-MgU z#rQU9W&Ha6_34<8pBy+s%k1GBLkic%>{-VL2>DHj`6aNIM|}Wv74FD-x(F*v*2GU} z7bU{S!R+kkL}df8+|HFm>)9^9(CJR9N=oOX-v#>B(aJE2rutkk>{*U7MXnliVawPz zTDMx~FIR>&rCr9-h33tvgpaN?EZ{W#oBZx`#(?nHFr&;ZP72xX4yA9im@#dOc*0af_O4 zG-j%+KQQo0ZlBE)dB(?c_)yv?R$bxpGgbdk~1|m|GOBMlztUS@Jl8(_q2|2 z*1GS}OCpUg!R}r_$B`?0`jyMWe*Tu?azDU18;PNiQ)uWQ^qn`GGmp@y(MS+ z-bO}yc)8=66gt(7G{NR_`3x{LNMH`>vV!}<8k|WrQbEP*dSlTyv!2I^KL*px960mY z$+{N@ZpiGgnY^#7X{@FiQK2j+b&eKD0}+U_tvy^*(|@t0D5Ru5;|YgEi}ZRu)6J$Oc$%- z$I(irNo#9lzIo>TwZV`DN~!cl3WZj)sas)hCh_cevFA1lVB7vk$vkG$?(zj0)yj)s z3#Tw016E2jYPT}v>S|}}?v#)2{GPlzBjAQoYwbR&{)96(*e%w72mkGBcPx*2VSTiv zmF@*Xjb+Fx|A!aA4A@}ma*nA`#eengd6rI`PGtV_lMk1b#!fEIIoa2dk4>#qOHUJK z(EmJk-jrlj{Eq_PIT&gxI2;1-{woRC%aSH%N-B9OlULa*zo6&Ls z@x>uK#uq7~ly3P#kH(Yl-oA1f3Z9hFW!WYdFORn-zkAK8$(B1PfoVyWw*yB1v4u!v znlw9?X+-Auh!EJ0a)0VN6aht`NcdGN6%G9Q); zyhV0=^+G@Xi7Bp?Mg6WH%NHSpp9ePmhffE7aenad8}EZ3(_L@IIqndpN@-=KP2<4c zKI^_OpHr{Z=+X=QsU3htKSEtm-j(v31w0FvF>`j0adbG#1=ma#hRoxb6#1BnrN*C+By!YD{#~wBwFPf~3$**QP-W|m_ zx~{_>tAUSRyRe=rm&&OhGhx1)sf<}{ngK*Idb7el?9nELLK}q3OXc|W43`dBGb;kI zw1?T^Dy0Z;T6ex?3+rCJ+hO1^&H7?2X`(~}UF$&qWT^A}g9@&g&#@W5wHTw#dY9-r zrv1|kynuzKjpLpXtYRoc)|eEk=U1@A|u>QKx z)In!Aps3OPj=p>6FB>V(=9PY>KOD=yCT4h&YEh^4J`*Mfa=O-pfzw>QSRDd4T&>dy zDYtN+j?-mD<^ptbd0G_XDR_Df8%(V-M%74voa%@mR}5 z9J0TEAG`HRjK0)WOcod02JBL*r+B?!+hejhWX$mEgZ88gR`>DKqLdFd#lpI3uq0!>=&B2>ZlbhC;L*Sf7tbW znRtQ@y=GfhQO_Pfi%ff_IqM#l{=ogo<>`gezfqg}a1Oob(CHqp^V1J#4J;HmP)`j7 zHC%@VapG?ZbMFRst}NHw`FoHPySYp<4&`= z;h$iY?+N~^D)JAX8RfV@?T4+3sLi!TH*jWXp}69&=+JK=Ecv0momNTT>c8>eL5gl_ z3A77>ufooV^}wqI9DN~al7Vs@f9tPMFo4XgKtaprmXb$I^dI8sQnUDf#l|0B%5r4D zW$|IxeL(mh)ZM?r2ReT2icqD?|Dovpb6p^A4w~vOkW5YecU$?-D?d*xZg0K^xkOw4 z>W2P7)0-bjGrqu6=me~CD z_v5(krO*{$q_TVQ;>DLJZ){*K=Q(mJmqf~#YH11g5FS2PweI2B-h!B2Lva#EscR05 zwTj|pv@Dcmt!kg~di%zX*DW?+RrId%G<+#k2wAz=qTg}>u%Qi&q@jyBm48ujArjKk zZ`@taTJ2|8ZjGjcm|?7k&10q)8ODq(ma{)oAKW}ac_zB~{_iWg4y2Id_!9ZvZ2yhW zbKLOZ&p$Y-=!0=siNvC*{iCZ&6p#X21tA4ZN+p^@5Q&1ld}5xleEH0e_=v5ot(DQd zZs%}RNQ^w5x7YmBH<(^t59DhK+E>M}y!Lpj9WAbg+RBjh%>v{)v)O`iM|F=nk-J}6 zl#7Izl4k`Ia>iE}O6Gi;(VQsJRVw2mx8om zmG4YDX8L8VI#xMe=W^zH&Z>CaUbEk+m0kOerKl&a54P1iS&PQ_iwB=_Ls_`E5-l`1 zbt9+!UeOk))R`dTb2z*ei!SWOwkiJvu9d{w+uM5WI1j_r^LkRoZf`2kZgaTIc-bYI zPJ<8lu}(JjM*(M0nOtBsU;s=84mwC2lew;^U?l>*CtGvA=mgL@r$sI}2Ze$#PALLK zYOT`@evJEheJ%x?nnTOU8=;Wz;;S&bon;RqUAUcR)FZ%{?fs? zGYXz+S!1EeoS*M{?kPw+_5@l{bvge^wYu?_SYgBYn(6d+&uJ@!%a>9x-L$=%A62qn;Q z5WJs^p95XpAXM*e+Ou+;Y#ky=FpbX|W4xf?`{L~dg#zU($|xY&^FBTony%Jov^N?5 znH@_KyfyZDVV?US+WlhbF>}76K~?V^oYU1QO&bDgy3klpB&AFc3r)hJE6gBqMkvb{ zva^o#6HGVbxpaywQH%`P3x?zE-A`RPQXjUNN=r1G(k=IrBg-fxqn@qCvKnFnhn^35 zlyd|4)7CfB%v%%1g567kQ?;M*fiJ*fPgJk6N~}zAWN>zIL2`1X#ZYAUxZA zT)aJ4suf+%4`!;(vccEbZBFvc>kbt-5=K*Nb}b8sF406x9>i@i#W~v=&|A+c_e4{F z?6ApFd2fjlO2Ct8nu8KqS)C51>ntkac>aX_70cFW;YSfus_7~dufbqk>uSQoO?1v` z^9%)8b-X@(sQHHvaO2UK>JYmyObJ}M;pqSbdptIm6|2OPCYOuw7&^^gmOtN^iAHCB z4@T}+t8RrT(n!QnDbbEV?8QVe=|uHs%7JOgrwYkDd4@4#hH8CL9kuLt{0PWz$jM)P zAqdfkWhcJ;b`*PsR!H5)X7~OwG%rqZ`Dz+5?1ZJ~TMIFcd-EN2 zDcpDs+WMcfPbwU$0tZgi8?BO`E_X`j3(#ZI*&+P??R7I+T@oTeFUC=A+LpjtQWc`0 zbD~%v8#dSAU}AnhtosS?Pl&@4)8s7}qKDSyuB-x#B>Lrv&c<_5?Rqz!jCl0d(ADWohcD`c9 z-OuKsiHQlb3U?SL&ZzbMgkmn3vEEwo7nngoMa>D4u$FYfn}|$e(Pt1uN;o>*QR^=s zr-?5=6f-o_Ir|!GTxA}h(#f$0sj&zr4SssE#j1BRz2PbjI?7F!8^bRyE*=p4rGGrw zkxbrC{owUg8H=vCs!`<#({6Vux2lk@L-gJd{Hl6k@VU&j(EkZZ@N$R5YC#Y$@H_X~ z5e!0MV4*DQnSuzP736`N%r=VY`Y8~neuRnIyZH(4EN7l-x`e)7Q;Wv>-OfeiiZZ6b zv;LEtC%{i`2=6GCcW#D7+(yG6zXT|FK)lks_mow|ZO^&?#{iIIIf|-bNp|My1o}yr zSwM+2o1O3YXZ(9XdTwVr@@Cv7OST27hG;yMdMOnua?PPL->Z9Dn8ZsuHDe-Q@Y1sJ z)MKQ&-i=^|W&sc6smTy0e9JhkjuW-p=ZU3XeoGM*&RG8tEU0QW9JALl4B5PgA0G8O zxm+!JTpl_?slR{H6pf->5;H70K7EMC>kyeIM>>*o2Y0&7`(5{pAP9$Eya1k5R9hQv z4!_~IG)NBW?H<1|pRSCgm5Wv|omlp`es^(%r9FIZ%~8dj>#4OhZu(OuRIYHU)ZYae zM<H+;qY+U1H|+nDCr6 zOEjtzI+%i_RQz!NxEsCRep6t?fQHR&`w=`M>gUn@G$$9$p;7z&pB^aN3sA0g!5{)w zp80dJXiCAROXOHC`dfy2ycC5yHIX%H6|1=>U$hKpxlj@eIQ9NOI9XLC(B7U$j?vvI(7&Q z^tCH0Ubaww{B!(k$HWu;{^($8mGV-Vg%w zxmReJwhkn(iMrrn85xno}7GsXugb!Xq;*R!`(wOjB{#TzYIqCI3h}enhWW z9nzj}k2_gqNci#N$LF|Q-927P;|MJu)H+VV0PZFgOXvrb#Id+$E%>LW!Z0+S=MbdlXFf4~}wl*J-yW ztD_imq{>`w!0q5{DGkdgEiL`EIa%VMBC=C|!e-T#B%|9|=Ct^5AcYgx@JblmG&g6p zej~SnbU|R+YSW0yx@|qvzaoOZFvi82l7jVq@c>8P~;v+3;MXL57 zQh-(!By%JY|4BW` z^~iApbG}lZpy|3JVHiM3m3wXV`h&b61RjpdgndMh1m=62Atgcav~f$a!#Bc%DnK}$ z_Ia^3r9NmTjF6RP{?whIPowO_cZ}})Ig6-#KxD|Gmj3FYex=Er4+1i77<4qU(-Yt~ zN6}>*(r;VaHb)A`9wTAuZS04|uU=kWR+`QE0NbrFdR-x$yCDqT=Ju3U#e%U%h@Nkw zG$|SMy1vB4u?H{3xgITfA91;y`wi(r0gu5UKt*k&S_5%b$BqNyauN`h0hP%xpaK61 zo!PA}N}y1vXQEN7xsNeNZE__#M5Cq}I9(!F3S#JDo2}45*bLmrxaRBm`1!F}bTD{W z8>@uUIx~9@x}&){L0b&s&^!ucT;|TczQn`oSGj5>Jasnf*}{X(Po6yay*WY#SE#be z2OZF$uvGIZRH+yS9&~*Cps^Xpsc(GEgna-em5*%P{_&VbgFUpGPtay{K;qsN|LH}0 zQ^T1~)X2z)?(SFb+MW3h!eE?I&;;b`w~Y1iX^1`2#nHOqq@N51t&Yf)&1%(vaCD&x z_W9Y1!`OJ)zUg?O-~_9-8C<{Z{ie<3jJ(0+b9xT@-Tcjco(Z?oWy#;aJ@ec0~IWj4u;O950AaDUDq+h+hAx1z)<=0)x4f=b4H+31UX5u!x zO{saW0d-NK)%N^1FyCe8AfyrrHNPV7#?N1(Lb&4n(H~$y7OtPQ0|4=jJZaHZu##ii(mv`&xT` zF~8(VrSx8Z`uXwkF&w#O`lGb8wDbA;$6sW&MwKyWgCXUEyJ80bqNg}XtMK* zg2yj&F)I6EO1kSk6pamKp=2=*(lzzw;W`JPA^`GQvsvfw-US-Q(o~me+c_~BRYF)S zMW)cef(G3&dS@d?O-inJ2|;(nV_S18ZjYI))>SsX=-d-^8w&arc{DZ0Rdt|`J)T`Y`#sM zL`StAaGoEWC`%1&$JtLyX$+VGHWORDGXXfu54U?HPm3;mfk6Y@4^Cl4kO(;MVqdVH zY$gRVo#=luOqY8O2O#=b-ZEY(+MVAWV{@Qd5-?VWV=J$xPLY(N>7Z}d9O7iA_Ok$H zkvO|6{$M0gRUfiG?Kid9U^lJ(@CGGpy6Z<{T?M?=)vYdE-{ESfy*E1eYMZ-l%(aj` zUuzToqWS<#+Aimstoz&4hHDV9z~rKZwASA-o`vr0IU#16gIseKPXP zSUd5mw8a^ZQRrltVjvg^y2xPq2!ub2V1Tn6ko)UbJs~;enXI+K8;Hoz1>KdniEeiz zO9QTpE0v(6>b#8sGVYvKU<}FX(=Ge+JC$4SLHPj2&AVs`eV1eHsIiD)s#i2vR>c8* z+U-bpcL_P%??x&*A*5WLf0LB;93ToqFW&uKbdW1{@608!%{lv2(HEk1|I z9sm5nB4Gla*FZE0x`?h>=F|j|Yb9qC`qk{ErXbC;7vM<(Z@`h-e*A^dA~7-(P1vCa z{;85$vZll8R8-RQ%_$!MACs{c+3?wKyfoB_7RMI{2#`AmYnFw*T0eaXdv;BB-^Ohc zQ}43aX5u7d%O>=Ceh{AMwjlBu204bP^d~5t0O;?iD&FvI6eOn-)2rl1>-{Z9J^G!J zv6*Ae=Svs1ouT*=89e0puW8rf!T$8#~yGHOQ>k~tI1Z9m!nfRoXBk(A5)Uf zn<_RL**?i8@vurDVB1Lynp?IEQX-LpWySznXwHWRJC(A=;=@KXViBYa(WyV*^dBf! z>y?q-Qoiaz!^3M2d<`Y;sW2SuilS0VztSOC4#a|ohkqU%w1l^aB%N=EjY7cQnbLHt zvq!*+XCgmhH+gY&WonPnX##D05%7AisnU1^?e&YP5QU-i*SNU0;Ha~hYZS4Peo-`C zNkabKZ^i?n-n0b>@lU-2F&10CA%6Gq8Ln_u>bKq)&mx8^(P|2+xnZv`2&YkVn63`I zCf1s8fe;YgY%KB@24Ie;Dt5i)I2o$xjERjdQj_~x_@-*7V42DK>$u-cd&td%R&ka@ z0?WMZ_4Ng#&05f{;C)#1G$PT;eun?@c++}&)(iNv8wo)#7Y=e_?GM;sqJ=x)2-~l- z{`UL#n-D^7(YnLcJoS!{ksL{2BwlNG@Nm`4T!u1=V-5)dve%Yew6=}eEUIWl&>SW{ zHnXF>{rmc0vT^ikUsRwWz2;w_>WZ$mQEptTFct_ozI%J${Pb)0^j9rf`+0B#oNh!b z3SDP>o^OnQ^+Ly#&JQ6js3G`i-x0|s{6G?KyDQ!tu}iI(-F_N%t)sxw^T*jp&Wq>A zC(@MmcbfTDEse2jJw6&0^FfJ_AQAq08K6vPXT4r(zc76rH#L&myYJKs!0X5ZPe=W= z;o!)^xhRP4S~!&}X1@zqrT~-v=)|=!7fGQRt3TpfZWTq91>-31*dd1{L3NUO>*XB# zXJy=;KhNgNNTxntU~#ekwOdMMBJ-t4jC85onUKWPQUBK?L!pzM4}q6scJmYMdV}%) z_D9fC^F8Yx<_+LqC}pH9cV&6o9ulK)f&vC*dy~yeoK4fw)kgqQ7ze@-j~AYsl`Y^p zgo;?;jVGO7>jz*NoYwM`ZOM{jup#eArVQD3spQkUclMD`Q}60tGiwaM^4WxVSnz0L)js8}{~OTM&6JX=WSA))8N z(ikVm;es^t<>MKI3{Le*^AohWffq&Q$Okg(uX}_70;njab1!;*PXyhSTJt>MlM@ioy{`@Kqq!44XVhlAufrn zWA>aCh6CCF+N9Rn{F)XfQ&>J_yP|#5Nu%1UrFl>TBV<1 zVq&^>sdzM2EQeJy*AUC=h_b_JH>{e|dq5wc>zN@$)S0vJ(~FI5bVxOtMPpid_3K0U z?r;**!c{Fs2GMCA*yg58js^GDXc6={Px3h-$Lq6YGMR!gRs8z08ULmdnMhF*{hp}x z!>qv9*jd>&uQ)-9SXQL$g-$>KdcnvPyXir-MxT7qr&0=|NpQH#?NcdlSKv-gR+@yE zQ*k;p80(By5y12Bz^ICEg4k1bYT6O^*~5HEf`Ug%wHIGnIJs7Ac~TikPk6;utjmnF z5FO~IaNO$NRi*y?AU@m)NfwtlIz0RF*=}Pp4#D1Zx!RP>lgSiizuz3Itn!^iJd=8Z zOB8@L^H!x3bjHVl7YF!A+k@7}TcZUz6e*KUzfGxP=$4PxrCm;TaZNR*?KUepnk2-B zU%uFcG*dJ6z2!S7sPLNqu$x;LwQD%LQfOj7xj%_#+NQ^C{FXpcWQ? zc_N$jR=B#4%L5be$>*k-R@yHLsMVX`;c_0E0=W}qND=OPooQLXXb^u&Wg9T%xB}|c z=d+Md{xO@$s8A0pXXQPI``~pIcNVVpYy(?td?%a#h{J5oRejz4zNtG1Y*c$GnJ)r+ zH6fLzvVk>wybKoOcYt#u9=pt!(0R%+Q549*iC9nASCC#(=;YLk`KFX@` zzKAK$SuRbD1%44zBv9PWv(+f5-d?}W=wf4Sz}FW@IgPhpa5WbQ-e>+bk)aJyzrO(4 zj%Q&5?}AB_Y_GCWzWaDHYF|I>KjX+Spf;Si%O1Ae=ISpWQ$sCX@4|-j5!Y-70U-wc zU~ds8YMs+g^qM-~N@9K!2TPhz)-Xs3-VC{Od#)ldLa)8U(jLSyWa?h#Y914?BXM(c zAFg({)KT$pK%JLn75ZJB=0d&!?nzkU6vGkl%F%Nrbi2Hc^Ncoo_m;2Ypdy*e<1`?A z9P>WUknNx*SLk~Pi%+^IF0fwj$~2g;19y5m&_PpDdBq9dAZW{5Hc#)D!1_Drvjs;w zsVGrw7=!^l!8PiM+mNl(CMX+?AAuL%3FN=H4ue{d#m&G8r}^5X%-4T!T|491M8$}b zr53^~qj=y!d^&`G+${qg{GpsEQYU=70b)51VHZ*F!`|PTj~N2#Flc2TS(d;?Eq_T@ z^v(1l9nl@B3t{t^Faa9Gngotam8w0S$pq2+_g@ltc!KbG{l(+nj*zvpLJi$Oh<2ZT z*IFfmgs`e7HZI}lumcI>+2g5l!-+bJELoB7qE{5LeBRHjkGs&y^#_x+ z5fx;Eae2dpPGCmCk0e5t(Xo#B)@D!6$Xr9(Q|3j@&BV2T>`Li-1Rk!MPgQ>A27>_x zyvF^|_?3DyP;x&e2WT9VDOy~5&pcwLFgS5h)@QC6JTjDp4O-b=b2wrVFSaH4X0+F#XQ&&D$}`UbfrC7A28@RBpJ1{I^WeLlrz!Q{rYgZ*#caI0inL#Nehyk!UW$Eboy>+4ufP<*2I7}k5UdG@uz@kXUy53OLlaANC6 z=*!nHzF5a^3|)Wx=(W<7%=pi)gTrL<{pi}cFPT#-=aBYJt;H`a!_!KBsrg+#xM?15HP4P8)ho9FR-m0HvZ0Y%^91J&60h&;`rK|&r3G%Hz3qpGn+VsZ#i9F zGg~eQ^A@_ao$;V3^pche4zF}Y-xC6?m-uGoW;YIR{8b?8>J6JERei8=jXp@wK67tO z!eH8Gz#e(m>Ec<0q6K^V7$C#K6XPdUTNf@KV~h=$a;*#u8Zf|~$sO@19ls0&c6Ww- zvuv>Uy(vh9%~$a-V1v56gX=09Gr+eB% z95}4#UGTOUT?y0BI$f5!HzU^UzSGJn0VE7^jAy&aQ+TEtUR>eoFy*{?+ zi4)$usV|-oa=YH;eybK86j@H&S2TmlX4{97EctdBA(( zhf?PuLko8T8e)%+)|SSTd|&6V=nem{V9HmBOPpdf721!>9P)U<191oH(_TZ@iEUY!=pemh~taRmxsqY_u1_4*2$CYNzX~gAUK@0O>NQf9Y{zQqh zY-^{Fa45l2xsA8v0cZm>UZf%sm9GGR94aO5k{6hm0mk!&4-!l-2G+yB>h5y*yDrj|XiG4H^%}x*Z*ed;-lPUvri6KJM?!Rct~?`TC9BbC(*# z0U`eWr@4K2>^4?oBS#H0K})VM(j2LzR*<%W`e%DZj#M10BZ@+Sf^eGjuS#d6@e+-; zM)nG$U%B)xA6p(ha?8}o>hV`XnVeSC9{PF#q6bj@floE5+PY?R#{stfBL^{{eABO1 zsWTnf{dxmex_vl&qC{(X$34kmhqE((!ueKx*zl9oRme1PX@sg&qydd;xj__?sbZaU zgQUjw&0eWFZ0+5c8o>0LTxX3YbLm|!FR9ha{ZI*cjH*CqQGyUW9szpT5}5ss#ahG) z`SSOept2EpjpbDsujhj=dpxJ~`h(F)>w_61?-~l#KY|P_lIAE0)`?&YU!w zlQ-I;4F?6X1%qLG{6r8101!D}@q7W)x!6p4gjCTA9uE6Y?oZB75%Y-O%14_1`u0TO zkyLUM=^Juo)0+ufWwOW?^0Xa~OaM(MH@opCCr&NVWJr_03=%0)L?X+P(OGAv_lKbSM5>t-lmxnN=e1}oHg3bB{_y^p-;yGHs_WLebM$4m#vMvw1UrB`Qw1yczi%2{lKk;8q?mp2iMI zHpa@H!Z*}p>g^P(X56A@z}ClW0$}ciy>+3^5cDgqU*5DS6k1|E@=v=3W8BA12re>s zQNN$#Q$*#;6l8ebQiTw(i!URbF!6danZSLpzly)_E(n?yE^2E9cMKrC=KU<&m?W^n z>Cl;PL=V^-4}VsA8kAY|ej^BAxKg%d7ks=Cg1#5u74^JYV%F!ZdBuT{MFgwY9N;Nc!O~pLa~dBY~d#&P~R>sf3JJmhb>Y}Cff4VpwCgWy}C#( z7g!JlVsS89A7T_S_>Xb!?-9Mm#+I2Yeu=!rwtt`t2P(k7@^v@-!VA$*KVBHzFeW*es}7fG;0`46 zbhMK6mQv!x>6EAhMjsQt_Y*|I`jxAR-x-91R&c~Y1S(dCD+jvy3MFYOihwx;fT;9F z^T++=nX^a$!Rl6!l2W8r%V%F##54f)ya!(Zn7#p$!1m#net3^PU~3XdYY(yhFr5|* z))JkA2-p)F95aM#PH^A9WeIEcaB4sR!+^W9%Pak(Z{73FuScz_LwW({{d0C8p#a!@E_07K79d?q|CDdgsBo)WrbsFUVa^8h z0AFgfF|k7jFLWu|AQu?Tn5?FBub;YO)|%xQBzT?AxeM&%uU3wG-ZIRojm|&=$8H3^JaR0pv zhOE}wo`h)P)1g)Odsd)vP{y8wv+ZWGJ=$A2TwH7%>D&(l{pIPHWzA<2;(+GQ!WOE# zbNbCJkl6j~tn-3VP#~Ah`4$JLOwvS0cvc3&UL~YYtFZ9;`gB}qiubHX)21ML9Yp%a zH_x=QEe>XVpM{*gHWg#+hk0Q&5QkDqnAZl}u^%Ciq3A}mc$(1y%yEKN$7PWdyIjlA5mo53}W z15~>kgy-oCUp`uQqS^A&xo8Gfh|9wK^XlCt@@FPSRUOv&?Bdtkw}AZvqL|V(-F)qv z@{yy|EBYdRW|L0Hct*S9_VToENAD7$x#rw_aYG&?7330q;t)>FV8UQ&33U zm}Eb_o~y4kH!vW8arFHlf}gL^aa4x6(3MiEG7Xq=23#$+-IwDT4QrqWx|tFQmUIVd&XtC>z$5-3F;%=g-jOPv4bytR0NH`QU4NV@o2|3FR+P!YBDrYP zQ8MsBi%{&y?LGq_*ujy_{X!A)EysAAlSa9BC2h{>YLS?1K!ezIT%4&uDe49~u;{U6 z^N^XWL~O#{Sh0o@R!#U;uG7xWM3Yq!JBzP7@xVQ9t1-leC3>{TLhPGlTV;>>!6~tA z=P^@>R&WGXF(@6rG(@y@OI$0_zh2OAx>(}|4)|n_1BLQ5T3@@5h@0W#%e85O@hB_Y zFZ2xPX2kb%UYID-wvo_jfl63cfP^c1nfZezPUh8AsIw|_p;wl($Mk93lb`x@T3nX1 z21Y=qolqY8)!BBaKCEfnC>uL)+}7djkYXK*_8z&t-*-67wF5Qk);e1 zs;5gQocH^R%S2lc?xZ(qRYB>|ZxNia{O=&=;0T_*iU+&PXrZi+g4)>;{TshurSAbo z3Fy>IsnEwDZ5Lb^vK<XFuL8@`Xhk|Mp=J*q2UD_Z{X3$H0N9SYKn1ed85+eml~Yw>i#*@ZXnokO!8n;+uU?fqOWG%%cVy zk_~p9?Cj)_ewfwLwE_W`M+?3>6> zXDLD#M}iKb(7;EJ9v@xqAm%HUe(nqp771V^s&7Q4)i~4N{vxT@8y`0(|wCjIc! zWgrSsYP^YMET;36QuPyjAcr$iEdJqTi9cXQgR(*_mt|G9tyGpG+V!Swd3zj&)`HU4 zue`=tc~YMMc{zV-+UnQxL(6&hOocX_?`|j^dj)8{U{lsMN|gfSJ~o@Jm%s=5yGLBR z^28vG1`jH&*4cf+gvVj+B}J6h=yrnw^fpIIVMjW9vUvE`;YrlP)w`~c=G1Bdkv zhd|EGe7!R|jcQfr&!2A|6aSG#oZn=L#U$%fY2+$3Kfq-z%yFMlwA&f=a(6xbRVIgJ zFc3$T)bv&bq=o%}HmSnu$t0Q;4mjf`{W5iSbF`g*I@6UFJOGR9%Y?WL7|^1$a~a6cgU!*yG=1Mq-SGsD$fm@1C}0QyUD_ zLb%v!qO8BA6LxXe&BX!67GP(${rZpsUV-{7_HadTc3(Pkv3O!dKw8tZ&B+fW0M4(C z&202Z0L4g#Q130s@v3PO+HdU{^JMZcLX(9I%Ip8)%co1lWIGXD6Bgl4Wd7mH3lCz= zl-=p|M3c8>AkA3EF@HtotXh9_Qg0t~FNacvJTi2o`+PSYH<~ZYGM-rDPhqOt4Ujoi zUQmgA{CgGVSh>UKMbYMJwbzF^eJc~_E<9*#UebH;wM)_pK&?PQb~JCui@Z%`GJeDE zMkoS#AHJ^m$zkQmQs~YpsT&0Ua=!Zc zQyX~yba>e_9yn-893hMuP1#Zdd~t}<5%7^n`!zbgioiR8y0lzzAQQ~)W>$3L=nX*n zsNUv;a+b#DR0h;@wods)Igr zNpDo;u(K9=gYYvVNYYy+|3(u?W{tvQ;r;D_5doHqGM+~wnhpoLj~_kyRjO&e*5{a= z8KjB9QNOh*a>vs&>AG)KSeNE$Z)-TXGSueV7tcxf1=Kzntgn?FcITSvW#gG_LI0Zpjk>UN z1m4_`ltm?fIX_R$X> z{Vn$W9`5XZ6~^d_3F>_v>0`xalg?~eZ7+F01|p2TzH?N1!?5ZJ;3d0cELL{dIX2*C zdxLyYTr4i1SRO4ELE%TdVGT*vKX!!&TEH;rKTQ9ng%4+u1EN(Nlu;EA-(~#sop)2;$e3U9Hm@54ZM?n<&Ut*rWl@G!$ z0bPj$kC17$z;`aPC1w{9n@H|9tFHOd4Y92kfcMg4>(* z{ia2G?kxU)o)bhx2DU_j|MeV|^0WQ`*uhq4ME_C8~{~` z0R@FU_fy@8Mmj7mcMs*hdIo^40yYz3 z3mduNxzwigpTT%gxyT%yeT}~pm0b_0UX|r|^!IIj+dYuj@MDqc3DpI05)*4>+Zwf0Q~?*Ay|NIeHwL9etwzA zmwx#LvJuU-+pAX+2XKI7dvIBl=y?B4ek<8IAJR706+Zo|n*oAGcyDjtJ4~S4d*vym z-W4aN38Iki*6^Hiqv>!Oh*Dx<%GG;EpTZpeOc4)9QNQhtr~%EthtB7>AY}||1^esB zLK(ZGr1=t{+fdu!eD{JRXZLk_FIy#ZNgr{5KoYz~uC+(KpcoT5f6>$Bp6^rc)+rtI z9620A%&)m&?Or>;);n5G)!V%@a8LUI`%-zA@sDvA5bpH>N(}hd`${FXBK;)Q(ba>FoekI~eZ41Hh()sRMA+E!ZrP4Ua-a;5_ zP!n=5P6ay4jCDVi%9{*KMejrSACytyByxzhuydDtPFRv$!t1#bVp08-gC3wA1a-Lh zu+|($+Tq0J=bPe8=J&xU0Nw8oBi4}OG{8Gjr4QO&5UEH?5SvZv_a8erE~m=4vTxS~ z1}Ykk%PS6s&tliai`(Aa&!Gb`xrYGA1a;ytn@xhN!Rjo zmnK48ctY{S_+VW*-VRr!zeoS|e1m&+0fK%vff!E^H^UMswxkQJQ?E zFN;Eg;@>0g;iAdXBE_5o`>fNz{6=;o}(4>K){bSumNtkXRG}kh4k=o z?{z6i=8d3a@InU)HHy_Iz7HTb_AkL3pW}0KkJsXL!>2m8;Z$z2$8PK6*sjmRBY2Dx zg_(X55D-{d)nj=eNm?Ov9^m)apT<_7Yo4gzKctH_n>%8=k<5}@o(|ouH&5FCCWqDR zuC7}%8Z8t`rgxq@$DBQxtc`&1cUqsH8&~gf^R3hQPM>1+Bm^QJ1{4z zA4so1z@QdChZt&eJ?iYRi=+qJ{q`t{XAsi%(MiAeT-^Tr-RDKL*+zF?K$@6NcHH4i ztWrC*x|}6ZEM90S>@dv*65}>!kNH*Z?0&88+PpwEVDZ{JZlT*3>0N1ZXpp{6Z=Fq; zGobnQ9a9i?prTB@5sz;uc(`v5DJ!%YJ{xJ5{O2xqQSF@P9ffl92%l18e_AsGfn4h% z7s{jLN^Tyf<9C}Q*>CH7IUVnObPt)>%GG^_e+=uVM$>ko4Xfc zOIo%0Rmh{ELN7Wv?2(+7wz;Tpp;5~}!_Xa^F}n98lGUf4@IV-ZZn1~6)(*#T52BZs zR$+zHwGo(>6M7R~8B7Ixy}(0k%66lcM&gsvdD~qZX!KoaZfkGvwq^810?8vs*(*1% zX2No&H-W~Lo4)C@_JsA#XPA%Mz9u|y6VXdZ=hSYK^bOT|*Ub9Z#&u{{E9p*HDpBH? zYe2JB$JK4`7G5?-e0QH7OeX-k=i0o%B$BAc??S{@{p`jViU~+dHE=QNlNZwRyaq&mKcOGEyai5E#gW&R4AV9?9 z8mMov9%MiA;GJmfg;NvW`S$w2%ns~fCMXl8)4ji(Hf}Yi$WaXvPivrf2rH@wR z{8#pA(({Q=1Jd?>SX)a@B*r=`7b!NZ$CpWivAzqKayqZ;(tF6C5_UiK`#+i@f`?a= z1Xu$xfwovB(?VzS5L;AKN7k8JJQbZ3#ab(fdNtJhaBT_P>si+qW;2*Kll{z7ave@@ z_8&#{ymD>5ji{}w2OU6fmCq29ctWKH3TqpjR3*$d-F;DKXP7y? za?%gB4hr`^np{PTu``xkjG~b%#9u*DGHaij;yZJYAdh7w8^L_ko}gv6%lo9-exq~k zxK8X5LK4yYji9+Flaq}yS=5q}2IFS)$R94ky(eqk3B?|=%m@i$^+hmt!uZOf>nn}h zwMJqlPj@DAlqUdJoM8xce0`@(@M0{@Wp_zo8Y1`q z*!t?YsJ8BX6h%=&rCX(>yX%UCw1RZEbPgRNNW%z7r_$2hpmZZS^w8bi^V@UZ>-*k& zzrXoI=fli7bIv|{ueJ8`JZmlF>WZXM4!+ZNwz%fK=h=XZ>Rv(Xy+ex25|^lZ;as&X z0+ztT7@N6)RN-u(n{Zj}6iuIuHk-)7M|l`iKubmS1$>P*RRN2*N%@mX7+mkFyzP&X z`*3uQn4#lq376Ws`Sl$MD3;u|0jQVFhyC$YJpTqsH*SxD&hA#ZOC612Ba~11VDDz; zzSbo+ouH7x)jw(Xby#c9nyz1kNoNurso#6Bbn;E@=k(Fm8J5suwZB0Wp{tnt5Fgl5K6X`($832z zM9h^Omh}?(2jt6@ODg7QFa{g2$^qPUT#A=^c#VXVj z6DC!56?fQC)k}dOV}R}Ib=n}tw|OvpPa3?^!fo!#TPFD+zI?6pgrDrZe*Ffe3hVq< zvGvJo(T}&)IOjp3JE4H^;o?^m-<4nd92560wr$2{lc;i9JElY~o1(9}#XSfG;p;Ra z(|%pFxf|a{NH+&q^NB_y(w3(6_CWNqcwUFx?PFAbg}IR$8PX}%u;W9C#VWTv?VF#^ zzK&QQ69M1Hcz#LC%|iI9sxoZC{frl#%XP;-i3vZe4_ZTBoSxOM>4QkH%8wIH8rC$~ zmxwM!ce^ewsw*}*dCgyC{$tOMV}0B`&9@Koy9&`niueoU5Am9LIz)j4Rbz z7a{7afmc&(Aq;LXg8maN$|W=@P5%Mhv(O>8zp<##KluAKp z)3pvPxh>}kW@i%AH-tlpK!G@(C5ue%d~6r0e+o~(her4oirIpK!AMAh5#=*lY`~83 zA3Fs8U0NqI(&qoI1*oa1{ml1Dqj768((F(*r%V<3y%YwH2s9d5!ie@39X;e}|9rV> z2u<=BBf6!4r;EMSLQ4hV{qr`1%Lt!6R*U5G?LtR|{LkM@JMCb%j&|_mwwx)PdmZ66 zQV3D!wmbr-ia^|#F><-{I3hxg$s}n6emQ+acE+*Xjhn5rywu1C71B?J$^zYZzN`<*g=Vi6xJq=ba$hI5Egx5&kR=l?((e8DxSmm^&9e? z9qSB*STx#fNwOZ~HN(I)bIW}f3sU;;c!M`o!uWamdX;gucBPLVJItk1J&)@8G6$hjhEHiAxzb(do~VrnX+kfOX)sL6K!fojo=%h<2KpGWLT>yyW%{$)`dG_-++ z_|u3CDMW8uUte^6jYElEm$dbCy&O1K?x_j{RHHVPfnAsR)N2>T%sBpl*-S4a{%ksU z+j06LPNYh^v269S%n;@U5`*?m`d<$FS9E=0(@wIxa;Jaa@&Q6pRpK>_RjA$MlN}&H z9YT=x_F4nQ&(FVP+y>A6glysFT2C=sUTQlbnojBa3l!Bt9n+hIXi@>MCwcmF(LxNz z=Bl)+{g#!6{*q$Fdi&B&Tj9YRRaFFBd8(mYja-{mrA{r})-$!Q+C$fKRO|RZJy;6j z+WtK6{h8g^Uidw1+WPV%HN!-)**!SsTH8tTrCOO6Lto;E;faSxziz$k_b+rV=@Qhz zcyvFK?%r$(JPPbG`lcsLF>9uE&zT3tySZyd`jEfxO1y{9d!M~aNGNAn6Fnpq21R^z38uYix)0x-y1fM*7g4k!G%TNFPV|d5*taG4} zX}?mD6C|>R%CMz<`-)8;O{lgW@osaxaHcp6lp+1K(jWo!fhCR;#1dD+L5-=-cGbi7 z5xOW0sx}!K%MZ?$x_{2NpITXTY80R~K`#SBVv7zyUK9XY6BtyBqL{UbQLJYgdj=>G z&$TB<%3ZRB@k2iKO*tL**x;O(YYNyK4FGC9K4iRR^(p4YStRHtE}tyi(MsoF(7I6N z!F0m_Q$jH5*4rED!%}=huPum$gv~>o3%A&YVp%jl@;$t&aYo!qA>XOot~(*ka2fo_ ztNE?l?z|gvlfn(v7-fj$he(fEP4|z)hp5%*lkhc^4i+lo6vC_9ra$%U?b&9pPgUSJ zl0T=UM90J|n~GsnXP2d^c08v~N5si87g;)bAhbaRaK0claD_tomqceQrgdA;Hz#p9}M`2?IP zila}L)*ZB(>_SR2LnepBB_tG2`^-U20KyNX6J@{ZcA+3d{FQGM z4Zl*!Z?S3Pud{-COoSb+4;7nSt0W~Qouzp`1n%qBXBH@r=LL2chX@akY9uXG!<0|C z8`sI=jQK!Q+VyPB_Ceyn=q z)j&**t+^mh3&o-t7UvnADU&!kHt|r8JCQC2OY2~A)XtQTJ-$tPa<8=)LE0f&fbvSwMum5IA z*J665XVVHc?|v|%4*bw|Ru$S_SG2F^z1xODjfsg2ZNW>XQ-);IVBnrYzT>iO&{Pei zuMVbbHy}p4QfMIbSmgZppt{`B@c}iRW^LR|<-6Q({fFyi1f7f9#+zGrZ5<##8QjP2 zP|$L6hB~aW3>8~5)os%$xhy1ekaT>M2aPK58Ip7XQS!G}k!l^M_vaSl8(jQpv=GR=<0p`7y$f)&Zb5ppwbG-^u|e)<-WeJIuoc3ktg4|L%UZW;OB2Z$hL{~ zW4OhagvVyWN+zD&_2U89Fa7UT5{Ht3F z(kZ!<|IHLwLu|vd?tl0nnUMw4UQ~m<=TpeWmy#Xm=J=!0eV0?~UiO&=cWl#;yQZe5 zQ)}=`?2p^w`@8+}rvb_HWRvwWwT`*lC-HJCyoQ~L9f_Q|N~I2`UI)wjD`3HVVNzz4 zsP%S6X?jsu$Xt?=?dNoI+oihBko~bmGQ7rlKqcUBga7=wLQk(DB~|Lk+f!Y~>vp+9 zxC`e44)&q$peWP5?)~>}aNI7T8qd{~nN9f=ei92W)HM~aV_4~N(nyx#`J-DX3H~2CB(ex@rGq|2a@q27n*H-U!=nlJw3Wm{7f)c)4iWRW#iZr4~&CxK%SKWVwCFiC_^^)8&=!m z`nr53th-oH4^<^ET1#i5#v5^~YIk-S6E2O*92ZME!Oo%IZD|h67fl$+t@c`^0si)d z@;BB|`dHJ$N}T+GClxFJa{FQ($GjyimE{v}_@@vL!pl7|#n} z-^9wD(vY^k(N8?)?@S`#^gFY43f49(7%g+%qa*<1+0&?r1Sws^-h21ijim=xg#;#a zG#f3^uT%>cZ+rn)M3?$&_@I|rx1rzXmE?A%asL+|pksYoW1wDX32zy1%6i)%efK$K z0jQvWN81x6*<{)shgCM=2M>n4D|m-ROG|5S)FbO#Wxlt$i*xS2AqZ-&NWXsn!mDR2 za(XyQ8c$kez~J|;7U}yty+5>BvKz9C7c>CnWfXr3f*k!2D8nUKp|a8m1%}bkNR8ho|HbWO zU#EhEcD2M4DPkU%s4sMpWv)}!x5q5ohg-s6-LbcSbalzX`U}*HUG4%04zdSDH{Q{? z*6GMSH78zCsH-xa{kAL{Ujl;L`yc=it?Dn>?~k8x3XR$2*1K82J1bC=QB&h}^{^jG zm(jfNKF!l+tgui4+v_DTG|?5CRr+?7pXm(wXZH$@SjlNYb)c6Qj%Hgru{03rgR`Zj zwS6Vvd0OX7X=8wUEb&|wuCw|p-0n)?qojaXc3rhG5MII@6*Kmh`iP@DH>0A`I}9oK zFyB%(By#2U9DKkGJ+pd(r^_H0ZW+JdADz6DJXPFjgSSZ25AH7L_PNJrpV`$6M`9Q54NWVp9v^;^p?fsiUpQ zlbZHJT`rTWch8?wu3x;&%fR}NyIKO>hkLjm;MrNm>)v|my}Tkt z9Ppprz!3Y^jr-A$r*4?)EvzW04u0si?1pxBKNpUc%q$QVp&es9F|7_D*$L||+CG?@ zQe=Oh8-blNeFk=ApL_f65?~XA&UI#lOX}!@2or!vtcL_eR1R53xGWm1xv!r5&+dX9 zd#?JlqPt$D8Y`_sGjSG|$MSi+usho-i%z?MDwYOk0odh8Z+!my@)y%F$0xw9%5hCe zmQB0iN#x$;lHPcv!`C3Z^Lgai-(u9jz>Msjp;Xk=*|o&-?-p!G(NywYj<_}c^OOhd#d;sWrnW)@!9muT zSZOJ<@#voir^MfFdEk$Sqas^>LDu*w7+3D!-+1!rF4&hk9{uBS1=gGQqHOHq{o^WK z&(%<5QQBJ&{~V8{Og;Gxlz;y0(z;slZGSp*4O6-8|1(BfXvx@+Enj6yw%?!M>z_ZXLu`_Vzw@svq>Fd0cKeNs{`IiywR#7W8~pX( zOPl`Vb|PW}+srFIcKMB(-~Hci{XYlQb25&-X7ER69fALAUa+(I616-~$@}MG1XDF$ z4I>W^74q+Kv}9Dt^TA{I@IU`F{^&F#^tAjH#(!pcGlgM=qVU zJzO!FS`evrcI12Z@|IdsQVM@j)B7|7t7XNw4m%~Fi}Ki#qmFPPbJu)Utis zR%Me?6|r+TBc(#2Wu+CJ;7m=UH#&h+f7RtPnWJNO+fjI>RaX*|)-+e@=QNa|EO~S> zNF(&T5vJ6^U#?34FiRI(OX}6i0sRY`Yr07IW$s}DkJp}3$L&W%X2yVW)2j2@j6ZNC zst+usY3Gx|Kx7`$BM^*wdd)w6pl~+-Uaw2a?+*G-)G!$)*iH4$cxKKZdf4C|zN~e` zmpNK}TRo>gJn3%MLO`_Y_U*mZwTjv;uJ#8+H(>dlEQ_Yp5MHSr@#%YH?$}5?aq93_ zaq+5Guj-6*`b`sm-(uvu?JZDYJ5I18HTA+v>=RmYi3X-tBp=6G8CK|-1$T#hN?B%s zc7dS4>AgsPV|)5&hV~7)x~&6g5K`qnKOYCoRzh@-?XDLqs64fU9TA?&uP}^#5kdD# zgP*ggXL2GvXC&w0J!s>Z{PkYoeSVLV#fKu+if`1#BmE~>^Yzr&;v@NSf3HSYo$wUi zo`^+LwHmK`hp`3OTKl&vJuB#ApXpt&XiYYJAh{Q_AY%MJG~x~QgJu2EP~AVDigTao zI$R_|*ouDYrjeqmB#blE;`<;-f+{onxjW6j)bUf<`w%cgY(x2}9Kl{fv!>%P?doa^ zVc03l{AS9oz!%A{^)<*j>RDF1rOOwTcZtvDDkd_mrEO^@I5QJ>)T27hTl^(`GfS~f zqvj6G*yH#ZoNr5$ZE%OH?h28iIn`dd3T6i-SWkeSJ+s=Qt*n*l{L&AmU$M#9eQSyn z)9dNMGr*ffWPvY}svlzWU^5#Je}v~MHdb4uQXVhACsk+9T)cd%^g^4lX$JCGd#rIr zv&`w_b>WU?D_C5e(L!a~2?HYLKR+cOBCkFbVoh$yKMkGY(eD`AM_%AVfz`v+Ujv4r ziVE@5z7vM`>^47BT&l`9R~gXNT?^}|$MblxB5!(RCH`utNnpns+Rblu#3M_1LLDV} zw0My633+8;z@^@3w>ne!-MPy;zbdRX&X;}zb;lb zQFaWBpG4Eeq#ip+*j*NjWOENJ_EOdQefgfo8x56ysI9U#?EW6W1-C4a-GhQ z^X5CNCPCP8e}wU!!fPa9)2=H?l6`31uu-xjQ00jQv8Xp;usL!Kv5;P+9VPf9wXlG< z$&fkLiDfQ?d6!S)uG4}AjJS3M1$lNy^7`|s^T@(~z6Dx$B>O&^=rmY*`Si9z(pLq* zVPEf8EE_iNiUY)68*U@EZN6*;5drolkg771(EHM zru~YDput8yd#lz{axz_YvfLutnZxj;sMfho(@(80@?IOT8^#50Y%4>5JK@eeW|?+J zWPMxhd*PtKE>~Cfep!Ms zM)I=hZ#4TNKH$C84bj;3+ZCnj2g4Q6LKnc(d#{mg9$F4G9*dwTKJJOts|aFHqwi4f z<3Wyg0V&>wbCz0PP__WTJDJrSO%iI)7!3B;dx@`Shr$;g$m# z>NmY42<=doq||r1;qTw%J-6W5oxkXt+M1+zO$L9!HpFS8=F2T~FRDS-5S;4Aj{*Mi zlLqAmL0yQ=tKFYXO54dhUzpy0z*twDY7jPlpn!JG9>EUbSFDn=v0v?NFG6)6&veb! zfpBm0{xMOTyr)|hz20X_5<5PysrfY$HMOZf5jT=`I}w% z{i}T>$~}tdt_t8@^;+39&z8En(i z1gf4~Im!_Ob@d(DsFF(8$xu4gZ%>JaGwm`SSdyB-NoyKY95DslCDj?$36eCHiRzsYEuc462iBQ^XDdyIk*v`nCO`A-b~m6l-xi3X#}rO3 z*kUNOuwq=nEHfu9sI8_JEP4dI`EXS!bS31HLf{)rl}@#=w82Wj_NzUjyN62|NaoAq zk`ipGyOKm2E8InFkN2sSfBGSEC^bB+j10(B&YZpG$(|o0&IEf~Eb1&~FHxZgo@fh#e)AXu!15p8= z(*fzV|Bcj`>^j}&j-Hry22C0jo5{9yhuHfV{4KlQ1FJxcfJK2gWZq@7x{+>|({Al5 zBT%n&A~DQj%utTvG0YGG=kS%3Ujg$`tJ))Md9#xC1@xI=mfh}4RssMr>n+Mli)`(& z#mma5)HyOi~d1b)24cRV#TE9rIOg4`~N< zjJCeq1xU6v95bHoMtoQ88{?(`ja(aFL0Q2dlb%A_tj3Mk2|mN za^M$~PU&t}AhDp5)n9hp)^LSdPC7bu-XiS;8C4tGs}a7&%WpV&Ji9c!yqqtWJ&0oq zr=QAwU#g~ZKuc+08rV!urm<1}3W5GaUZ^4M!2Ui@QzT44fI4_7Oa%2_8%%;m;xgv5 z1!dvs+8I?wW6DX20!Glj`nM>l# z)Z}?e$5e}j@JATaOLAO^Lfzn(y&)AV{uP1S+FRuLCj^U@J0I zS62Y6YL9r?Y1r|X`lhae-(j`4dx@{da$rEazI(gwbUR$>`Z)6FvKkYlr$0Bg$9`(Q z-P$4KrPD(BoY!rEah9(XO^owv3TgbV zjxlZY0hYpxgZ%RXGN>f*mnI;vGj9dN24Z3o_Dg3(NQ&>GCcP_)fdoYT$XJipYlF0? z>H6_1v(B?m+4n#U^~2KZNP93=B-HpI$@ol#@!0laDCUfNGa`+J=@N_Rv^Dp2`bw3RE-zx21M`lxv4G7bv-aziW%-b z+QhAjCUy=xC2dpI4bRa%gviq12wdL))fbRU6?7YKOOR?7oRGysp@baqvL$2c<%~qb zY^zY4^ZhFC_tUv7Jk~RrUVX55?pp8qeW8@y1ISb^{3L`ntE&Bpq^N|j@I$5BvC|R~lkR(jV7?q&y1cDb^P=fL0__B! zd|^(2y54N!Bio%Suu1KaR_VQGn73l*;kHC8AI)BQRh?ma=2b2qcux&pn@zw)`p?KC@_l5-@Dq9~VPXwKM6} zJJ;#1>+$iGsFYH5c+2VZuLS|Q1SYVp6Wt+au$~qefaNfH zV>00tpC3{07&VXL7re#<3$^OHzzpt;rYy5cgsP6+S)PCGIRgY`3Q$SP)}*A~pxPa} zKYp!01S=ZkMbb}krzWXeLW^dq+oCOaa^I~?YzPV;TQv5I9L6YBTGLL!BR}+wK#lwQ zt4Rf1!=K+JhnyJoB+YV9;-mqkQJgG|*Oe7Lcy@Qw^k$RT4(PtH#BP_AwTS{%)ScvT z;#;0i_o%2JuKt{1+Ly?_X?no#3HU8)VE9`BN;;fhqX@s7nvKE!<3F<}r?a{b4g6xd6?I8Mr53q!8a!;9yIVXgT^ z)%{(IiZrKBEwYZ#bvSs~z!S|uK2ejXE)0KwMt!_<6D<217tz6TZ77QZwXA?lx&L#K z@KW=#1*xE0ByfVf-s|+Ex(v6(An!0XMrU^_tP7d1uH;ndztGFZgs!`kne*8j5A-&w zNf5Lf1J%`=bVV~X&oQ6dH4QIRSb2m58ea{B@75O!VzlTrhh{o@Ha!M&6vT9c>93Rm zpxC_cbOlZ+s2%*v-_fgLM0JV9a=-16kp-YY>E#@ooA>zbvI()BBy}?txL5b=PfFTD z2V*lSN>0HowxSq?mx9kcmLTjr#k)u&Cb;OrS4w=s^Q>L**%t5I-k1fMq;R#c7k0 zlj9qVFdtQ@toqKq$qK&!?dT7pfSYBSE$oWhbr*6Mze-gvwiE&m0lDJ^`|)3A1@r)( zLIXc3KeD(5B!Y{R%C?niopHjLpk`b+p$Z0AbWHBv`Yhhu+b$SZ>_Meu~>LI^Vxjv%`r+hpfiec)x9S3xi- z=nDjrrN<}zkP5y(Wq0;h0Z&nKm8i49^mp=(e^Q*~#BOSeRNjG@8E676fIzt4nG%6U zYSEK^H(6LAsM)o1H40TV)~K?Q$t`RPUF7tu$};;>cS=0Z_b2*}hC6ji;-V2|^~k14Jw7VYq}06q{!NlKoDG+VNUGh@EROvfO8`t(-vwcf zaRGS_q@Qj}du&(Zee z4EgvZX>1ry_`r~|=9%>p9OJTL*!Y+@22KK96wij+^RMfUiJKI&Fb!Z%GVh~3x&4%3t_GQSIE+O7BD{c<2 z&4FI=JOeo%$m|2Kfii46nopW#@8Rb7kiL4XZZ!eC55W4azj-74vyamGEL8K`Jmzf8%p?+Z#hyY;=V_smoZ0?Yo z;MQ`50XLt+^~N?8=Gw`1MtrRHUv}|nW`IQ`Ib!6T0cGh=DdVGv46sjaK1P+vnYhBK zq*^Gi1A^h(6%pZlr7INp_bk7G?I+;TIyqSX!R)K>RIzDgn+c zUj-GF)eKYj_lX|6{!ADvkVYs>-75AR&?kmmb#pHl0%A9LveS>x;f6i;L3?9ib!T4p z7ky~<@Ry-J}|NWUi-?;Lr zAr+ad`eEhYcK)GGdK?iO&^9r8P@E3?L*~CS%D-q6K}Pa*AzSqDr;NNwfqF~_O#fiS z4oZvTl7CQVKI{_IMsFaB`TwvDC~CK&e4@%${z0Y!{zg4cj#r;MiA}vvFQ?@fqghe+abT7%M!@Hj2$McgT0FL7EXN56tLJ zfFF&0hJwwJbE+a$Dv$Oh*6MT{!%|mtvKyC<%trCj-3#lHr3|e3cu#&?&P1oJY{!x- zkKsd4kT`^Ak+@&qqme1agJQ1AFfcL*|5dST3nFy)!j90MJX;-{p0e^~g!p$B*Z8;s zf3Ol*S&L~PoWJLD`ZYuNqR>aqi{Uci!rtzY2eX!n%Fcg$^A+x&$+z`z~=2n7iHr-vGKIf zj7ex_<}B0OS>7hT4SCb7yF7r{K@%H2J=OL4v6X4DCUoWu@}im(`s&t?&K0JsA+Q+9 z9*GLxayNFsi5c!5pmXLZ5AG2DUwY$lM^wL*2hcYio7cDh(50DcqA};31BjFpnQ^!l z2}PAnb9m-rjh!AH7|+##uc=WW?4I(HEDSsA-bki=Sk{iU)H^nTMDLQl7R}z(m1+}% zs0SHTfEa59aZUz!ljW=Mnvp^k@<4vmD6jKizzW%e7y-Q-!ab{unIvG3-s3=e=jqgxC0#IDv|=>KEs)6R1`k|Oy-Y{?L=FT7DwdMv+)&q z7GKuJ4E_JI7p2>}Y{#Zk`-=$|JfMh2FEB$4?gSIviCju{T(|Bq zTnJ$U@R3L5cKiT9L`xa)d^E*Z!ppaRO+aDmG)0Q!paAc(y>m-)5>s*`4iU+eX7=Lg6l0~?fY}ZV( zH6#us0O07cfBhe0uERt$oUPv-=+&!J>JQQq?La!)#%M8uy~HrY?P%@SmlRY9MZjjt z{+TZVpYV(zdHh%^nLBk6?8qj{jM84#vAjRECIh(QrY$4Dn!uLTgPwb_!P@sM%TyDD z$EDj8hb^XHB%_c4<^DFb+T)nU;pPk}h1vn0hCOpQwZ$coF{asON1!&H@LTS?H3wH88o1GOA z?4M|Tz2aZT^ONOHW$}Pb(<01AXzL(ocQUXj-%Kf6Z@|ZpbK?w8+@eyycj>O|O@(eg z4E953``o=!gs+=>zAvT$j2;>as#`_6N6^O+v*AP)3U8TJ6*d9-g~iV6i;PnF#HJ?z zxSw6W;yR`98{a6ioRJ)UZwhilMFKp30=xd=O$D`$^I0(1LmRd(XqIq_o0oqrwy^-_ z1b_1=2jm?cN{p6{yr0D>vX>*|fkas8_Ti__Z7lYj2n852sMrlYFnn`T<`Hxi6pY!9SuBpx$ zOi+B)x`@xG?*VhG#2hjkEWr>m8sI-Wb7; zSEDAw&NlMi%xd)#b9@FFUWyB0P9E%fxVjJv@nL>t!;I~bZ{$4IvtT?(f=AxB#3bLl z^+K%x4@|Hv0n%20qE(D`G~er~^I9y;X(npLbG<8L&YU`e3V z85?-(WC>3h(eGkdXz=H%vD?G~dzX-O+J1JuvpfCT^#-w7Hm74A$BVpRSmu`|LPC>E zKO|p3>s*W>^*B#?IlrW~%TfXrE3o%`&inKL zqQ3jI$k{2OUis6Q5L%h%E@&kt*wF#Mk_L!OCFede;|;(nM{6RH;MYqXyr1e~5+NN# zpw3t?AX5OB^Ajx4YTI*Si>j^pRM#FdW>j7kT?Kjz(Rf*!V1iz`RTa#MYEKcByv3f< zZ6S}O)Q-M607f32&trqmhh`V!Idi7UFKn2JN4~$FQfM-5tKCMX#2$URC7Xc91+f6> zsVKb8`{qfmj_-A#5Y1Cow;?U$RnA33p=0pBx-^0Kea<6qxqG^yW^-r zOv&zAFbrtWq~35(pCo?wAUh?3$1V#Pqqde_IU;MFMp$?5DxqVc zFK--chQ`Apc$;>{(#qjWFqe{RLPX(@e|_qQ1QGM+MKB^`+Nt&sgFu3 zNYGuO{n0`kJ=v4aCp49`$x$FqW-}KZ!FIr+5Rrp5w(NH&1OZLRH~*dX$MSOq zA|A+NB$qWYX%!k@`dLM8HZ+3!!gKq-^w|-SZVGl;mr<$bT=eSd&P*L{@8+S%$qql` z_btr1GiU#o=paR(W@JlH?R0u51?WT7q&KT2 zfkhJ8s-DZ@G%cc-7}GaVvv}$8qs?i111|wFxfY5{B;@+N8nkns3b@XSQhntX(A8!+J8?icFo(yJL2~=*E8~2QDmzzz63su$;3fc4i zeEBk$EbFXGJz=%EWs}Vu;z;`ybmi?k+=REOml-uPYU1B$u&Hw->jgqlxfo*G1>3(w z0zM-F;jQk>Ma79>m|niNF`9@C_WtHx*!LgM^oXR(6$ERfy?No{VhkPQ3^v11#{Fey z6tDdD;RC$RmeqTvoMuV06{O%u(9ePB11c>kvWbf|)|48D4X(BZ&yP2m($ANR92<0l zmX%e}(4;@sZ=oNQu1-c^f_mPO@GM3c1Li5=0Kee#+eHBboar`7qFvAL-bcq=R0$0) zigP@l9c1@rE?`HWb3;6fL4@vA^rj~MDz+sTJP9j-OCFXL4p14oDfL}r9F&@N7n5ti z1l?91;E(bf2$>PF=rkGjS9@udYUXiKyC`lbvvkxnc<)Uvvpy5X+R_m6bD;XSI!8ik$tJRbweWk`fM_OO!Sys<@=QxnR zJO!TBZEj(u4`Pa)B!AUaDU!ur?yOmA(uKQP9e29moN|%-F)&%*!WDcJ^r&9rTg1D zX`*@x5!i;B-xBPcC8gnP@+Ao&Zaz#FL&~#%lcCY+RqDXnHbZtK$0bWw@H0AeA)IKR zTjvg|Kl%HlUBxma{1C7152ZXgJ!~E3nD$;CLO*EEmHuh5DIu3WEH~YyiOcVlb zzA2Ktc)PK$GKcU*H@^pLoI8W86`wM#Bka3)_A^t>PuOjb( zO)QU%utxciH+_nCRFw^!-Tds0(|Eh5#i8U`pW9Ppm%oduXLs)0DR!Cn=;uoUh0;H7 znV5{^ybW0|Gs%{=M5j}#WW3AB_(W(0^bjaFKVg`1np7-)qYp}OX!BR5YhQ*tu8r^w zI`r8uQMsRN(Gis*tIM={Pj)~l)<+u{db|+6qMynoCE`GP*~n#vYVQGGP)N1Zs)Jcp zR!)gdalcF{FJ0imAoyC~k3OeYO=goap6!pt#KqejZeVvn*V@QTBaXh@YePY@99%n~)+cuoCy^aq?3N`%kI6#?SDXU5Bge(j04;j0vims#LMn<^N3D{KZ z^iSZiyZ7%u7@MTH^m-A!uOLpUDSCRUNgXq*1c#w4b;XAXkYg_hNql`nmEaE=ggt+* zXrbxiVwAKP=|+QW!EQ06aCljVow`7ZbH(>1-L%m5s22}Ef7T~^k$I9Qucy*;zi6IN ziMcF)3(gxWZs9y+J@-!d?C!5peTXHjcZ8q0r1Yzd&T8nU!u1B;8tZ%F9UUk-G;pqc zFwAb__K)ljKX|7ar#ItZK}B+}r4^6yB6YDrvRe+!?9M2?+S@vNGqh97zMNZRbW_zV zH$J+XzVz*!)Bfm=<7eK6rbUGYB0RsE`m@W+%`gDD-HQw+L?O0QCa=cE0DSK?At*NZuiYcrT|N5rb z>E?YQpZj|Wm+TC`lrDl=kKXkmYbukC1v$oIl4 zj6o(GDRj9N$Kn0#(*wNc4l#^$q>uw--QAbI-ZI;)k;_-=_hy9Sn|#Ymx9pr9G8LNE zD%i6W;#_T&|2NYk3V?HCJR1x=1~m|4K10eK;67`U3~7~AZ_{*S(9=>q|NOQkrgJj zjM0g@gHycTBw^)4_d$a;A`WZ8bjh&SVUOAn=&7`gxSe@I-`m&`u!^^E&%MRII_OBg z+J{by z*wgNNcYZZs&^k7GISP1OZE^K$+Zim!c!DB|DU9*onl$Bu_*0)mUL+}?UyPjlW;2%< zH85e53z;r{v$H$dRK$*q{KXLz7`goO_Z6?xR3P;dR&Myge{emSf@a9-qIO& z>x!n*iLS}ys^kPI<^?I{1YM?dA({l3nUMvWMO2D1#kwL<1U)bO7Cte#UT;LNRD;}_ zV1mk}@Q{a(gg)(0j^>S5Ib)A9sHQ0l>`dF)eRa{7DL~N2vZOpX@He(2ieNC?{Db^Uuxi6izr_j>+*mzn7^QqR!Q+xjlw@@%Z4J14Un7 zA9OPQJjwN4aqK&9K?2Y6cH)}ZQ_$3A0&%KCJW?PI4p<+o;1Cwph3AB_usjlaVmtoG zg8mDgc;ENvGs8Ca=ZJW>=Z$9en3$OAtj<``-O*n`goHe6Afe5Z(OmVgmVnk@lB>V9 z09fYBRqm_dmXpQgfhjkYrd7=2+i=Miw~ECuJiX&?IP&uFK(Fqhvl2_VdDNWakbITR z{@(nn$#N?Kn`zL`ZW)T#qsHsaJW3y(E&Zu9ltd^pE$s|$VDA9QG%3(Py1s91!Ef`N z$Rt9EeZS7bj90}LlT0~2Np`ko=(z_bj zEk1$qso^?Fo}Jm6S7q&(beiAqfS$%@mzNxFt*qVA%u-;m#!q4~%?t|6qSR_HPj@KPK&=9>aW6Al7QtK8u7JXX3#T< z@qKk~d!c~>*h5Ow{-iB<6@d+l0`m6GAK=kxXUW!g{HG;ahPGqM z2g~2g&m$R=x&1DNa-|?Qo8Y_=BZBsm00Y@iOa}td{M{JOaKlglJ!P z=Gzyz80(`kjx@Rgg3hG8a(k<9oC;E2whf8XSw_SbS`n9e{Z#8?16`cIN!GQ4ZW#A^ zu4>F+`B>H|*g>HqHzvKSK`h2H_}>DJg+qt3UK;Nm_pE!jT;B$uXOxqixnYi?ehkyY zhDn|v2ibLlyF?RBsGypF{!Ob7Au)03?zn4#VbXN{8MT81@aMkjm5doYTtQLtqSFoJ zc56q}H(KmIXj}|>5iA5&i6h_Kr`9sFKnN5?V3lTg=*F02B=<>CJV!edW0N3s)Z=B7 z>nWSLDqYKG9V@!`DT#C~Zg29___*DnsJ2t1IHt}v?btiPin(cNuGaij`9*k=(t=SO zl?;R<4S0Am1esc0%~!$>ye1Ru4m-h4rs|@`iy*+wVB^e?u320D3=F2;Oha@(48~QY zgPp3>@D0x&bc#nsT~Qzm42swxi!iSsP88}OniQzL$>3l!F+yOuwdKlqjz$mQ=niGE zWf-??#1UqXCMZ@I#2bW`?TF?Y#DG%TVY6fjkDd_w!_rqZ%z8;@0_>?DDrK9i`yZM2 z#LRRYfrxkNB$*1Zdt?mRZ)d;X7iT9DRvG7-Yhpv7~=FE9JpJ>n* zFT?=4#u@zq!_U`bMVs<9-P`lZKRl-!ZN%dokjpG>i|5Ls@O3XYX+K~}a8iM>CyifA zhdH^d958ttVe1`F5B||Ta{eW)XVt@gU2~O^GJTE5`Y{)MOml6(iO^ss`5OHR$F1@D z&HJw|%QK~B=y4h1Qb!#m=Px&yPQoYCKST{%GwReufhWgms^uMw*Q)?JJQH!HQKq9g zjtF22D|nc_DZ33!eftY5;xF9@=u6*)4yErtFYb!vDtYn8dJ9mb-oq#%|B+vFn5$Tk zFuR({@A@%{HvF(-qe3>BEo#WPdv1Q&Hy{>!Cj~o4EtkDd^F5CV$ykB$$@Dp?fL#K+ zanE3rf`S|^d|ioFz0r}aY^8tkXyW0!?~0#%uH7t7pyX_!phGRtNm5sCPs$CiFtM_S z-=v$&CaEV0Ln0>}R?D25$WROJMQx|%s$O4R@p^7hZE{;K>eYmt;nol>?^#(TEDn*wg{ zp=v25`4lI;?sB4h&9dN4SfS$oqwA}~qF%eTQB)KWL_r!Pq@_C*kS+m1x^oEW4n;s( z=^RSBySux)bEI<^n(txnv-f$w>zwls7vjt>o>I2qNL7T)@l+cvYj(A@br`L%~;#I;ST) za)~2$44tR>@IuLPGr*XFXfaj&arz3JB`zTEDRFt49}l{)KZ%r#G$6nn^?E-M2lLpR zkzp|&$aCJCE-_3~${tB5zMa|BY}6G7S_ec{H)`dkQlM?R^ZCj{B3?&QYU-c&yz^*O zZf0)|{_fB@?0E|ZB{2i1*OxaNjPZi2=KJ%N+TU)qUXsz=^_|`xQteCP`YEPzI#Mnp z9FkO@Vc+LV4cXZu^9y;c zI+sjU!Kv+KRwIVRmOXaX1Dm-Iz9$(@0&Y3nx3=QcGA=>nd}QDBXQRHrhg^K&rk#nd z+S-&DXcs~Dp~@Qkbx=CLiC?6NPv(8wHA^~Am+%-gYQ0x)#?PD+be0Vu{SBVI*KyV6 zPw__Mk4`!SPV*AG7s!oQ2}@x`$mO{a%M*wFYz3PB1C9MngW8uL5GbMUu}q#sbVg{a z-Q|t3%op2I12~96%C^q0tsGA!;ydI^m6y4;8RGOWLN(i}>154Sc`!4>Jz0$8jr)}b zp4VI2WHz&Asa9j5yWTW8^rK131V6bUtbcVP6Yct0POW1|z`|Of+-D#kf5>)CgU`J| zU=~Wgp-^o15jsB=+Fv5E!{a1Mhe2~FJ)lwZVNq6wyTSbll_Nu%dACp*0TZ?(5qS zS-+ZY>ng19puwQ`LoIs(m!sxBS9nfgjmyDQGpxcd~Oi6>Ea4EJ~USCo;#KVfMRtZC()h#8#5^|*%AJWvY+1G1;CGW$V)Gig+ z#ChLL%C^Vh+to!ayYsoH9T}3PoyJ$V;2~aImk|LJMZb6~(&o9A>9uFnqv77dYZWz* z;uLmgecW?_1Us;=YQy$_=x=6Rg-YfAw#l@znnyW>AP{sBqV+D&cl^&p#>as1^R%L>@|U(vzm1x0llmw`}pzL9mPAU=T6=b?Tkb z9=pL)>_DDY?>?`(sFHUp5z2V0ox%f#Xrv(Cb<1@D> zn=d^q$@C8L>{CE;50kzdq_spw0?88<+kYxVTBPfGyB(uj9AVlnlDs+ zZS9oR(bJQB_YNttH(GZ&%&_dr*kT-X9@!et85mk7-yF(jov*b^bx5p1!!^jC)-Km` z-eCAF-YOcLtyF+UE*hHQ8mgr>iHeH)TP+zAh|>3(BPN&AD(%9U=U%)Zr@o_(pkHX>&>C!LcomCQ<2#^J z+W_Y}lW@Saz@ip{0<7qAOM33RlgEodQyy}JF--0TnauA5=I5}(1>R%mi$?r?l!z0l z#=%T3wqzYw(7J>&7&>3`^NrLi5AAZw0g%(re;S#qWY|@-jC9zs`(=ae)R@sEWA+Ak z0|2rXc__{?-Zf5%VTC;E3?WQ0J>Ia}8S@EKR*t*A3jo>0mPjY?u@6*RsBvV952w;= z)SWfXBQB|6AkuE7tS2GD%Qi(($dOPt^69< z$k^FG9vSR8V={sd)Uc{;VY*vEv0PKLtQI{Y1#?yT*upzDv17J3N74-uu3kU~77wz#1sN=di8|vs@?b61 zr8`sgI6pi{*VVV0qKyTtn#pF$AQvfTJl26P2zn6*{A@Z&27F<3=r0!!bBTI>#B$2)XROU!C`F zPGlno$Frpy?+f@>Us;hHQu1UZe zMr1az5>dkrVe(k{O)+`(cU$Qv1Vfda1RPfWr3)MTz0rqdteK@(h{#3$ilB_{_yU${;!DxND8;g&rGQ96i8*&TWzcF@iZ^g?qP64M+MAlZjOCIriHSo#Wse+o#7=aHk4``M z$)M>XBrF7|O+$7a?E`_)nN&b*JNr|9iIMu}7q;6tMMF@^RPkS_b?(Q$LqDI7Y;omF z?|dH39DLUW8;tu*BIqJg`8m-YM3XkIFC7mv5L@F?HXG7z&%(bwd}?a{#jxw=uO_dv zNtRF9N_}yxp*P4V#g3J4uU!zy%DX)DpX;z9C4B~wleiAsL)bG;Hb)_%#>&}h!QoV? znZaD1H-zIklds9hzDeN_-I)YVtGQ(B@ITqHb#--B&Z{*>Ge%&U>X?mZhcA_{(nZ(s z8SB4%nV;?Io+L;G&>HaZ%qs2#781A{3tk?+U8kby&PGOhs6Xc_EG#^Nj|VhKPse+s zufo`KC)nmeKzFJE!U_E6;!Xz~8GKHiu|LIN1gWOsg+l3)b2ZN1X5)}A!-x0zT@mf= z)Bb@WI9~`6Mi>yqPELLY5-Ac% z0((EsFw;6rRZ#l1m~pH66)#vvzDOExmdpgGVAPj164kMQ+-E+F%Qk zV~eCVy{^esIb7U4u$al?_Vz=2V;j}im&h8(vfg8A-_h~v)hm4C*=RVwemt`Us!SYv z8qlJX=txn{E$1Qd3&sDCCfaC56fPia2a`&4fpfbqzi@E4yu-|{=8naia`AKE@KcRyIjK0jMF!}|5{%J0#c8ILiKF3;JWcQO$7S_67@?R9{qfhW6bm+`WsT!xAS77G3@vC@pdrX){{t(uHX;5E`*$dFCMl`s=(}IM$^eDL|pmjrUpM| zE4{$O#)Dlf)}qJY#+yux$%wc2L;^i&x3dG%Y2eS4)9w-PY1q`g+pU4iQ)7)4sD~18 z7TAJg7%Z-w^A@>i4zi4MTVur%CDXV{6Fg(>cRF4Z&e})jaSZdE>%xD@ApOa7?u|0P zh6E0D&YDjX?l*4Vb*{fHnJs|gs!l|ks`@zT-;dyiV?Zal&RXk?`RdW(^<=v7kpA@N}Pu>!|5zDitVT_kQ!iWp|@y7#QGl zy@&v|vRKfaw%K-}!MPP=x(-?zxc7nnVC{9Of%#($h?X$g#nPu3h53%V!ZS2?AW-As#ja>6*?2G2h zy(J@aO)ARwhx~CEwU}%#lg%l^sY6S%O?l!tAOj=qfmNRS z#Dh=)!{xea5s~lP36{kx?RPK~XF#kF$h-~!_g}jroQ^Nx7`e#6 zoIBm_5dpUEyOY2tz|mewU3~~{W^L_YG_xiVv)=W7*pp{7+;&&UCs4;suVq;nC0m{I zq8ip4owPGuVmq{l^eIPqlrSCy|7JgQK1~qZZt9!1U9I2Cjb>zKWgWe`Ia-$r3JP8& zny33qe?b8X_CwOu)t7o#&Tjoet!lJ)3vTBPj-UUr2_8Z@T?co#idEV3IG8p)KCi?vxdolGG| znk>*XoR9nDc5@Z$cHSRbtAn|*@enD78GG5Dh56v&LtWLPWM!0;1|?eTc#Db> zlN*gZl#@4X^g(sbM=XCTNuNMj&HA{s&Mro3KClJ_2b&D%up>WGh3qB?*t6I}K2hm+ zNRMT!BxUr+ZDXs%JM21xtmSHF5NN6%;R4?RlF)t+CJ)}4enOqBbv&sN)e{mD`dndv zX|+(-EN=+l#s}3>k2Is2SqCDX7g$(rGwivkykjnnE`2jO%DW}P9OEl!iH=_I9dW=_VYGQ83|6s|}aLgndU>p{SifTu_W8Od5qCI!bx zve@K6Obo8=-b$oZ4)UW%7x@GlslTzowsu-*l=BZ8-o_FH8?Y5+_u%-L9B8fGokwrg zDbCZ041K-U39&~6H~Z8H+&Y;|hujSr z)6oi|`pZ+P^*?_t{2TSFYe8m*G4T?k-i{$%@~%i;PNanetvttyiqm_dHw#ko46{6L)J+(dMTLq=^L>bF-M6*K_(n5lSh%hCT z);#TGjSm%T9S4Pv)5Xn!GxY}ecZ5792=BBPf~CauF19+i0{t}$w^ryom+^O=(|{I^ zv9Vi{V5a@7LpEXT-GH=t%K4(#ecmUg#8v+;ih9bo%cf4Lz9c01i>oz|c)#-H2|qgZeH#pyIr z29N|lgs!ga^!-Tj=62}O5&|ik`T6G@LGbvY#+}3+MAfu?j zeix*1Amr+=MbI>gEcOk%vok(*t8onD&9uNBF62jTZ$$L2wL!ZF<+bmjCsZ|s+1G;V zV)Lh&L{=F#B48XnUggBta_7F}mjCaOcue}BPrIJKTo@!~zum09a<4o|s&^7TUU(_4 zpOtDey>geH0nwZZE5Vcbf>^>^U*j+h70YTz^53`~$!MFIMot7=EOB76RVL}>jJp+kGF5Z(^8eyKq z)vR)VPDdcI4sW;M%|PGp22nI8SA=-oAUjQQ=B4HA?^oda5RXbtR^)iY z@TmqHeDH7E+bdZh)0h=03e?IDxGISRLtpNE=6j6FUIXcY{$Gp<^+mk*I9jmN;r~S!8K8) zIiQHe&O?lk7T~y6dxXtK=LRepoZ~zhih(Xw2_?g2+7MXq#7xo@>u`Ak<+$kmJ|aOc z5P%yhw6(2coH+vXENiZPzbSE)BZy?~)ApGbQQX1Rh6maw+QdD?5;VUWavMFtaTj|9 z8K8WNHvyl&Tz5SZnCJDsE?AF&jWZCmUX-ogoG0E*ZKUuv$c_a~cxcXa{oYbQR0Q9> z^zCJ4mF&nN^m;ebH%O9?u&pp!Fsr}_2p|; zF@)h@jcT18k9Z-v4BIBfrv^KJR%U@{$I#_FVvXQ{m|l5VFm#52f?>L^a@ zZa@5mYuc-|6r8UWI5N-xTP)Z0u-^Xlf*mj>7LpN?W0J^YsBgAB4dZUY&5N5;Aq~YlS@!cpnYgnVpeD6+l}mfNKQpb z#(a}$L?vxsYPa{QhLz6bE4Q;ha@`m8MP@^Rkji;@faB++)4WBGpDsjVKRGP$jY78z zr&YkBz0ndR0BO5Bicgwxz7gQp*_kL)$?}wTp6bswgs=zkRjGNU8V780XfnR*O$10d;&9~*>Zbi2ND4(Cz0<12sNBW zxOsnqV1+{dxXzdt$QZ=ABiB^ufE;U3TzP;^{;sLC>u=kckZ*^#d< zw(JY?OFz5Swe#)1YyEg-zj}ssx?-+yoBnR^qx2Qo!$ihPJU}*GsVNl;a03d%O5RU| zYnY8r@we;=->;XnGxx@Q*w)ZIGK&@D{P@v~9%7dS5xgugVlZnHkE#^DlV8m{$4I$iJ?-X1dsz&N1|W$^VO&4;GuP0576Qrh?a*-qZ4Yrc*A+oN7Jqgtw*M9*XU7Xxd5Xm zX#3iatJ--JyK@Cz@!*l?M*FrSmqtTAwwS_+KWob6c%#(Q9a)}|)h1Iwnd-@k%`I!V zVg&4gQyIvp?HZruLUky3n4p+L6rZ<8fca4*YwhbJ#$>mJ%AjGp+LVTX>{U`0EN=kCK{W#YoURiMx>#9dtrgI zb5{N7S9Qb!`V*)GK$JIph56mlQQV6`c;H%uE>fUd_2Z)ws;*urM2thn#H0(ng-bgg zpc5JrAf98VZ)EiH%W77=zhxL^#JZy-QrhP-c`Wb%RzlU@PIHi<=Sa07GRyBk;wN#u z#vDqI9ueAC^#o4te{nzcJJ0~6O&^?}d%237F(9eTo-2ReT9rhq>z zTpc#-JZKmd83$VGt@29u*1`9~3HfawIu?or#n(pV0NKtm9RZ}fGc4jmJeTzzekiow zpfyBzuEAAsAzJ3|#e7{`)^u3&6jDJvRHhBc9pzeB)((i3W_@kTMfh4xDKAK>SGx}S zT{-u$bx!dvtn{_3zdO0;g%$EZPPf$>UIenzOeXS!9&pr1a7cvlG6m#yjqv62C{CUG zel%Hdq5)Tuc$@1|C!4Xc+P(`Jl6KuaZoJo+7dxxmahA0>>JQk zI5=;P<=QkJj8laeOxYWU8nkc24`Mf97#=qU12I~3Az-77R@#<67(8F`wQV71vOnBu zhx8BL`Ge7va+m+p@}E8b^ja=NL@c?3t;!hk z$R6V3yg-PX9t>TXS{|`@hq$AJCIOCdH9p`N!!;Bo`ydYAs&H0< zJC{tu@j`7N{BqhjR=f7C=g}25pytLc+V^kga+0tiUc7!y9YepELWC`JRi`8wdGF&g zCN-AV$>o2e@+)n?Gm4WfICGoE!8`=}@+{*u|E^PblshG*GykmRNBNg^Jv37ZC+% z;4GO;mQ^U@XEy^*Ejw-GNH#e;Dd5yHvolXzK^db}$;7DW+2~y!sPCY^6_4erC*kkR ziAmo;@Nt*^Vy@4gU=Io&QCP@fs@!v-j8oPbG7i!Y%DYUJtbU=<;2f=wuEIVGaM0vc z9%NeFQp$A*X9^cif?bf;J6)sKz6|NZ zAC2B?h5aEkh9*pRfszao!G}o0kR=aO*9JSnXnM2e_4op$2wEcvrHDAHL2c8KA3;GY z;5gK%^YAO5ML$}pATpH1YB{_hN?eu8yMyCfTSeD~$^&@a2MxP4T2q9x!ssrEx7~t2 z?U;M2z|Kf8vd*MpP;C=Bwmodw0QSZWdUmwuO>)NzF=|(E34Smc4ai=ADrRC)N^ADD zel;Jfwj(qP1yp=-)jAK?Tafd)Lu~+!9rT(Lj(y=1!{u2|8M5Yadd_#4{%#>5Zn4xr zQf?z?ldUn+KNv`gPMMgbefu$)>r}>?VW~a&1-Vg}8<$lVJm?8bw z2X(2n*%dYOd+j0QC#z|2XaE6@U;;SlFYh!vEkUs!vcsqNM9Cm&7_Z?6W_mv*FxsijSt7{}$1*x85$G+Kn4C z>bw~>042a$fRSr|Bg^Xw?3?g*2RpaZ7TH?@<<6X}_Qrx%6|khz@@GAMLi{-8QxDJq z_iz&{^XrHgHmhH;4jes4r7Tr;yoBu!%ZndSmWweT0(vM*jIN@mm|>RQM2yD{zl$=f zg-tt4dzNB4S|-EX(zTc;PkELYXilaT3f;zb)q}HVb10~QGNdc_6T;Gt({*q!jKxwM!8Y<*kYC4YJm|d+&Q;`)zQsU z!0o8>aE7R_#4ts3bOumbWLQ7B+E^^OqXEAScO>_1CWA&M@HesOOk^ihN);*G&#d7~ zap5S}wH(Gpc_L;mk_eY@_v=ZN`g9wV}n*bftnzQqf58Pgbv@ zJYQM$O6q)qM2N^I1Mw7cj;D%jAyaz`$IAflXQ1t8D<(XzU)Y&NcxVVzMd6XVvVsXI zn6tTzoAj4Dbcdt6&SDeJ);z`uMG1nIOO^^UF~!u3_gLF>D$Eg9j5IhC@uiGwZp-;o?>^$$ zq+Gu=v6NGSO7T)FfK2-|j9RDOYgXx7wHACDWd^>bn4I<&k(`ia&0MR?2#fEjY2b18 zTRY2fFDN-|W%DKH#M)4~yHp57b`KDIn->l#@9bf<^YYqOwkjRx8-dF^UKJoMaor*$ z=LRjQ0Q8S8T)aJ~LnXbrr76K?R?HP{0c>b7JkzF2m5X}kh!KH@K5mmI^P2lTkN=5g zJ{L@qHcEOkmOFzHY}}2B#LK&=E7>bhr12Txwcjc8#r!6WiS>8! zLoP$5-*H3K?3lR8@@<-B;9h?P&Hr)*SM5!-{AQ_c)^2<>BN&u_Rv>4XWZ(mU*5rn0sH|hVmVw)V02KYO| z^5YhDKGRM)otat05ch*Y%zgWxb)?k)eDL3g5PbRxpByNiNPGT&WIcG@J{rJ84u8+Atb4xspvgFwZfE8sb;=1tH%~uj>=oP?Tu&l zH63Hqz1bSYXm8`jMtK|H@s7(5gS-Q$3U30LisWDq25Y};KDxw6G*}PYL^^XnGVb1w z#~aFgxp8i@P1HFk5?vCGU$Mv6bQ$UqL_EW}uy`v4n4_&%Z?~2qdJBwg8oU>Z%`}MXP(%vvwQ$Y|9B%F_7&wW)9W7~YcTnaQC z^(Gg{^E6nVr7OfPSud(ldVHT+-&+J#?HGM(MYIFP`sT%gwbIf--B9+Y*gdKrOVu8t zp?S;&Q991=mEI1~WQ34>OG(-C)BMlzJX}l>dWMQcJ&p=iOq?g4k5F@R!%Sivb0ft- z3^Tu({SlC;W%!Jw;wbk`&`(Ft{P(oS;3$fZ(AUdr6g6$L%Lb=@*iU&>9QvPm+gs$0 z45eI&?RX=Zqjb-NBT1)AjGCz})cPwlT|;#~zGnPH8zu3J>sBU=mUpoS01rB4E8U3* z%x+n!Hb!?BMO4*|&hrr0Z$u5;eI=V?pe2`;1*bx4J?5?Kk$Gb%U$yN}hO_Y4J9&8~ zEevAYKY#En7aDq*wxPIq=`t+AF%59m-nOb!VMyM8 zh(RpyK3ho-6QZQ2fYt3(u_-O{q8_7$iJjeO?dL+=A~`v^btBB@!`HfQNyH*;cFA%6 zUe!W)ND4`^Mr_y)=%8@x^)5e}0Mz1j_UasuC(CaE_T-=KeD{6@N|IPv*u&a#ViICu zS}XBnlWlFd$5+l=_8q?v``29w+~n|WB_LIGbeQprE)y>!ql3@sOlfr4b#W9WT|wfS zXZ&-uCEdQ@*`ZXFG!ox|v(QalHIrn#Xn4nY;AAye?;ajEF(CN%A>0M%OHmJ$pAzwP zzok+EN|!}NU1EL{GF`e+?9+(l)lRu9_k#zBdg4?Treq;*y1o)fCV?&ffOITNiP<%W zz&T2ZK7!O?M?hpkn}yZ(=nK+9o%>*On(=|h!4K;4xGQJd(Nqb3)ELamX zEBK7;Oxga3E?i(KlFQ^eZvd^4)g7nX{i}8Bx5~^WyuwdIxDpy)80V~mop5vk=j{mj zgCQa}zU6dI*@}YDn`PkTt0z{-R5ny&haAWt%(r&d?aU^FfK(u83@Qw8`cvazav6MK z&`e?Qt+5JtNREY&K}rn9+LR5FgN)QuK}P4dp@zXrmY({?S5zk-A+!l$oI2 z;6QL$8h!o;CO1GhZ8DyB4@Ow1s|$_RCYT7|4EeNO`HRCMj!O}A$-U%V?~NLpJI*eR z25U;+O}lPmMg|9X&oUW;kL2LSn`Cn&Rw3JsChk@(^!q~b4=Y*= zt0XEwEy7=nE|f?bh!BNCQUln@_!^EE8ZMi@wq_ojI)4Km5{q)X$!rO;>8&Zr3%bhI z&i)LUK+&<_;psDQQPz#?W-H{Hk6<^{@0Bi6d4dNao=4A8il9^cW|JOR>eA}aKeoqQ zUA3TptnC`hXUSA;V=!rsfqv8XJ66hcyp9xPoZsjB0(~ay!=ASbo(JUmzIICV+5s8C zW)RVSPgCuTklSD|k5%)>qS;Cc2T2YLwi`i*0)dRM{sg`R;m(02>)U&h>0u*p0!JF) zg>jh4H51Q}(iK2&^T8?40}4>YOPZKX14Pk&>(=ADMEY0m3w#0Qp^li3jD;4pbVqe_ zqWDd~K1ZQi z$TWX@OJT2}E$lOQV0V9OAl!3?MR)Ao(MEUn^bI#fgam8UP}xVKo+yTayob3ld=5-v za?sU=Xbe-dXW2>(SfI3UsjT%4gSIW%*|9PBnnY$re^(@{YXZbQ(9PL)I9Zlm7FsPH z|0-BKdf>qisKa^7dVHPJdECLlW6%@x{pCbs7?mTsR-<#$ALA$nIMb=pBIsLA$Y&OM zta;Ztq?laUk%taSvSGvFQ4en%mZ(vxRT3>$T5)RMnW{rRA6X6|PW$&oQvH`ztlY~)$uz6%ykE4V4(F6{qotMn511fI$_}pTD%+j0 z^9Q57VQuX9h1%PHOP# znWN({+(qK`_XVlP zn}&#Ma)a)$pXNyZ>j-W?{nMyv*g#_S_O!9F5y9dWlkY9uGpq^86T&SPngq^YldZ}8 z_uH-n(>uM&X=-m4T#wZh%sfv>J(76*Br#LYwQRK*v>RFm^(hs5I^*|3?b|B744mIv z7_UYVCGgotO}xcl1)Z(}16c#3Z@ZHSDh|Xm9h_WoU@PrhdU~NNdwY_-8;;>o(1AVv zk9BtJ%xjy==u?a6mN>36=L7SXv22D62(~Pl{;kMrr%jgdj6PCs?l*%CUsyBxG~UVU za1(F335urudKjp3I2yC)Y;}MHDX|}#Ax!$la08ZoL=sc>XijK}s8{XVx33Iwz-86~&5ALT? z$U`+BZUou79Jp^#wcQY`?R9*cCrj>CH8o#OrX=bLDbG*$1iL~7<&s^-1MED@$YWz; zHL7s^($bKPfQ*Wm%+k*J(=sbp#y0^t{JkQVKa2FYjo%qWWuy z`zrIxjCD2Gjj~cc;lNdU?hk){$zU_=dtBCA^k3I|hH}pNalL3*aahdy3>Jv4^cs>> zeey|~X0!*OymHa#7N9k@{_+UB+hr@RZ`}mOBw}G??|-%5o_Ro{dfy9G_dNhKURi&HIi+nrJ$|Y;llS3w zdiv_xT316BZXA0-=&;FaGQRKimlz{!P!}Lc3#EJFKLK}DR2cnSX8!DL9Q*GNrM~Yb z#(psui>ZRSC2gJzBh`ZLo%CQja(fCcTsq+b{QKK9?c#i*^=nLP_15xX!EW_s!OYHF zc@mJ0JzB8^XW-NO$qFLW#sg5;!SJec6ztEESEZx!O3VCwKaUHZ&Up^pz`)?3g>^pv zNo`JK>-kzQW}jwN%f{0aZ@-YKAdx=MMJ=uTDq@W76@#Wsnyqnc=&hk|bMfXH4kN&1r1jnqzElCpVRd zST6QAPmw!Nxv3OP1G(;%*i7Qekh##T=PgT)ja`U3>|D;Dz?6Vnx6jXGcg5AXkHvH+ zaM}Bo7?y~BdzCT2ApRa+XMB4vB#Eov3+DQfw2Tkw6YVFRsV-|mF5GzISjupJHTIn6 z)$XDF_{-{*yBT^;)LKwt3QEdS^Kq9w$nccfKISqh7Treop#IGgsIz`y8rA3$tFZfEpf|yD!@$E^MLg{p$H=;6m zVEnti&(P}?hR#yA@e4Px^Nlh+_@j|gR@?&(#_jrkS?T+L5BV)Q*MDYvciPb_W-1NM zseuYx$lEK=*v7?$=lE4Y^5MKaP$6-s$x&6}fVHEvMgdOL0Xy{e%+0g`wcCmFYIz)lk zvO(q_`2o-YH_&_9y!jj5!6w~5T!8AV)iZS#{Ab`jqWdd$Fe5ov6h~&`9`w?-iudpa+KJCU| zc3PW~0KLWYx);pBgmOxsZNPy2`R?;bwQlf>m3sh;>+4*lvR_d8e!b>F>IJw%r1Tfd~xh_(9d@L@%Yp z<-ORuAAHXIEZ}nTTPC%8!NHaM;l%Oq%PKBj)$sahTII*px-B@#9*J9d^F@(qow6@* zmj)y0{0aH&Vu(ZeAH3TcUNtZ>Qh?V~Xx2+U5Ka4vjDj&s>DFo?wiivS`mIlz)n7v5 zT%fkKfKs&dQ~ry4Kvd*psyjYT^6cV>_QUsL>tl2Vt$|e=Ua^Un6|s;v@>2n7za2P|Eek%{xooUvMRt#!ubd^(YF@3Sk>tLg@$3 zD|Wji&n#z)qmS<0aQN>@Ss&7?-cb3WlaP~=`b*nVf+zI3AQiH)39#3k*w&Ypm91WO ze)2@(4rAe<)F(l-N94y>;V>lzpdEV!z6no_wm+;Mualc45(@uaq+!}xwGpu`?14=`?dFNSp7O&y;urdok6Z z&j?ns+T`_TGQ{JC^=fPM-OW{xLZ{y%%80(cE^C<97iF3R`$%UNLVT|F6FAuiIBB zXpf2v3fFRfHB|QK47w#&4|J<_a-M<{2D~yBu^G|0YF}@7iJ_anfK!aHU+Bj|2lj1e zOO^1)?k)n~LPK|>+eE#GH|+KF_Avdx&_*ysvMV6Ei7~>VP>)@=H0H@eXKQ;0O6Jhv zpi@eY0@(6$2iV2c724HdUTNOQAt50?46JY1gP(ZzWpwkyZGv5Dhp#2YrF(2I6Xgr? zNaWy7F<@f*G>Z~G>U+QK3=9%!HIadS|ym@bf1%++2 z#s468{k;TFJK3>FDu;YBockTCQD+xh{}IL1QQLOA;UoyH;oJjkl07?<$uMAgxwyGm zTr_UBkzv^STGyq?xbyQGhctLS!Wb0;<%Kbs{7)9<>>bk_wB`9-U0l}O3&W2ZA9>%q z1GX7&dHy;buZ7qL=gY^HpI#J6YLCA#4r~iPN)tmKBNY zdD?+Atgn7XMaiy()GOr@euaems{N_*l)i2P!IApD9x|GF31dz@b(wY81Kl1~jeE~* zua!ZemDptkVg#H6RkgJ?J8h<-SA4}yC6*Z;0IS?}T3mWsZ@X)2Uy+~o|63S6wz;T6 zjdf)JAXnPDSrfRNXKFIED(jMCf6U{#`~t?PK~a<-hy)Pub9_RRYvV%TtSKlc`19-Wy4yqBmsVYjq zl!}EOqv)Z}QV`LK!qr6wk%N+E2*u!7^Fw zsOG<-#dj!<5+wSPN;dIcQ*-mzGP_wGI%(dn!QH&4X~W`pjUzj=o#bWQOS#Z&cID0rkVua5t2hGQGMV53}n5~9UM@C1pHPcG$7rPaW ztG_UZgkY5Y24Gg;jnvZmW^;N~uTMa+o0lLn0IFkBYHB>4AxS-mIsm#076`s1fGp6=G1Z?#z6?OCsjgiM}Gbki98HeTbQYTQga4pW)`4>T2O&)gr67kgo4T->x* zKg=;JO{rM$eP{PM@vA-((4m(J*Cu~j1)NL0$_4Gs%_3jqxwjouaE$jL)8B!|XZwcq zSJBU-&-AYbptV18b6Fi1Kh3(BE7-84b;_l`ua5)X1C!%2Djz@J&czD>Qf3+zekW&_ z=eSF9@EmNKP0c$$dN@T>YHnU*x|%BBCDq`Xdd9FxQ>7ivjYi|cTb6X@__yEv9uC(@ zAWvA$3>+kNj9x5=0?<=rDNJ$aw+u62Oescklw{Z}NLGsR&IGyGIykhn&IcC_9pMIx z8VzU)%__@CNXQrtkFcxyN4+@5((sD6;02yq$9Q{e$xQ3}^?fBC>4(i1rCdabji!#Y`>V+H=3yfKJ_wBw!&L%y)>_4mes{ zXDGBYRfz17Rk?Y|uw;l>GfGpE*CL3M-QKB&g@vn@xLH8c=#EE!e{|USj{n zPH2d3f6ZHPN{rO_R@CnfKpiS{4kcgFtM;?X35b@{s%{&CclekqYPi9u|jmUeTy@0x~Q;ttbl5&GtobzP2G4XnuXYJH4M*`&1Jj@EjigvN*V z5VyrYtlLHxy6HdU$y$WZ4x|0cKsQyxE6MP%xSqq8pmPm#p1fd9Pww7-gataAfAYtd zuIUwj#y#w%h_?V3+wEp~yYjmJ%FP{Ahc@;0BFo9mmg5O~BU?MzkR@y25fTxapO#yU ze_zpp=3Uv6=T4ZnG!Nes)F!!e7&oe@Y6bhimcQb#<}uCQ{QmvHkpaSQS4|EMPJ!yJ z6qoVG(7kJFS=o>i&k7VpV|tydHC3({X<$VX7v_0c&D*Bjdfiukp`7bqxHXV)Ls<+Z zkGGl{s;aAx8gY{JIuhE0lK29Hg3#_GUjb)1^#9TI)p1d7UE5%Q2*NSwI*Oolcc~yK zjUe4MbPe5tf=EesiIlW-4Fb|75<@o(IYST4w?~iXdEWQ;e)ES6GI8H~@3r>2uC?~M zl4X$A;ZyJ0t}HV2RgCL__`*YMFc>(aedOr7;}Eso!*)A+C^TCy)w057Bu3Zs)6H|A zaoeh`n8(PrpTrwAZj6Lk%};=*7nwf2-F;+ApJu66A{p(uUgmY+LBgurx2Q||J=X-U ze)6f0t*h>EvF1BKBCzOJrU4(f2uK4$q6(7*TIjB5iO)2JPK{fzdx#o`LpK$$&5V&o zG{D!2nZ{VFhc9q}!MFI+7rc;_%>}OS>gmDCbOfw&<4lORpcIPsv4mIX`eOE}vepdUpo(iS_eR|E>VoV^i=^{Kn9v2X23?e-5S2v_StSqgq z^)p{R;qsh$h4C#iGE8Y{G?J<}+B5x3IKN43X-8Y|fkS~NU=Ib6DWZ!;mkflm(`68D zG6E4e!XZa4ePHY*H%Fq}aG_c-ATBtd$fzp=CHlESDiF5MrhE0!^P@b|Jx?&8rpI4y zv1ojyP$c3CzZLmlV_rXZ*TMKB*maJ0b1UoqY{Yq+Zx#p{s4% zD>U&10jrfpgT%0DfIw?Xukqh3(_qome`2Piu(+yldY9PuT~9E7^*N3zGbG&@G|o?3NgwPE#;u7TnsBV)6u#L=%EKp*GRqm z?{yCvKRVt_R&JQO?3(1G&<3UR2GfD^s`-a-miUiF37*a31Q*QIVh$vJALMD6e+v8- zqxlfmwjvI{DE-(NUeIQQ%|cdYQnXNjm->9E#ARs}50JW#b-$Q^OK^Px=rNh|yU5Dt zLpo=~qlL5n>2{3tp8vWJ$qOSwES%O6f>PK%N#rDE+fYamkDwE=hTMAg_ch64~@4yGz? zb1*wk0<`e{=Wz^&VqGN(xem<%3N<=Fucx!=Ex4Em)u{UbUIC^6?jFLRC5`9Gij>uX*;mI}GfanG6T-!J|B-x`D@A><)#q0I(0LIZy! zfPbqRy+6AvV8CI(8GWFL_a8MT%m_vL5@gX2T_FKObmw1rp42yDMo&=+k@_xW3 zMETg!$93P^E{J;)GL&xxK+)-W&e0w^ zGu5Setzb_J)x7M|`>q~x{Nc|nCwp;zre);pc_CC9vzVN_b4rAIRbHZOnlF-P54?_2_ zub|fbWzF#w(ggMA%GPnOQ}Q|xf)8-B-HzwiZO^F{j|8t}Rt|Zu#rp=7MDFDHhL%|% z6&r@DH{?66*zfkbGxTdX%9_4Eix%+1E^i~a%xrE1-Rqdv|N3p0l9I@TfFQ-~ZElHe zX5A>U2+?m}@>?yY@@YLkp*Bh95);jk$fK0LD%tpwdvz%QgPsta?7O_9f0Y5A#}$u1 z+pD+Yw%+I2IP_dsYi%|$y4bx{eJ+~Yr|;Zj>c!(VW%FKgDP8`2u0N5-id;WDMe^Mo zmfi;XTF)b2iB`gasF)Ow4&!lZVozB->quV;T#ObJ$QqoHnmHA}D)LYc0zF=SJshR8 zvvbQ)bGJdMKuh<*qz3@U0`PMG~&Ze;2TYfQ`t}nMHi%xY@ zQr}P3``NPlJgHVFvY5zV0HOar`93+m+F1JLL>YSS7W(;H9IoAH^}N@-DXFJM)-&ST zGQE|Nk@9u>kfEx^Q8=BL&pSQc$rT}&qlC4F-DWfvh#b5)@`$E|D%*R8QspNPx#m() zW1e%{Hcg|}_upKwB<>S~EHY%()fk&>Ta~oV)mGv~hB#xs1&c;m+EWSNIU^mlD`&Md z)b7Qe(hLK7QnMYCi>s^ON(YCImQL|T9Tja;n~9qGGG0e}s1gzxUB02)Cp)@d)}b&? z9N%TKbehRNRA|V0cJ3wMd2z@1B4I$fwZo7P;;k&OcIpaTS{muh358!2V5E(DoRF56 zp$B>%HMLy(BQTNS98QoG*$fuzrA!Ys>1(GRMKdjGM;#lB=NhImZO-`SDLGu}Jvx?{ z;IlI*-}*5at!g_njTEpufc0y`((GnEZ{tP>WAaN$)4Cy@(}O8up4g9%U=xc)*rM(m zZ8TUcnvIEvjrs%5y>p~>LnUwtpyviVK90~ijh8$7(C#{dWzdNb-#dQ)vNpVSM9kN5 zg8&D%NA26Ii~S_GO8#hPQGL7U_-_M!Nin6!lk~XQZ4qT*YP3#a2}PEmWL3KY|cQ)(mEoaQJJ30+%7+K z-6*qyTo{~BmZ;$_EZoI1AFp9UHSOMuWxnRHurC-Gk=P$$44L?@sU-e5FVz2}At;%7 z)_0$4OM9mEIK;sVy)mrgOsoZC(I;?EV{jc=l6m%koAkVEPEmT|;Zh)MB3@{uB~i$Z zxCHI#|5J=!quP|zrk?2QhL6q|Z^XQD&QPW^UH4JkLr3*{-ZkWjtN@;E zRBbN2tA>@e-`svyq98KaNcYCn8z{3A%wBNCrZe>7WK<~P!90DjiYVZ8L)K<9Uk?bp z5ZY||FDugYm3*CDq4SII^vu0;c?WxYgXuV30xwrG>F`O{qShdoq>`XG&8o9a($SnB z*QT~$+6j?}yaPKC1A%8Ut1w!n-co?pS3K8tlaRic=_)0cF&hO61Wn-=LTn9x5to^Xbnt@e9S<3zM^@ZU-xqYU&TFlLvS8DJGcz zaSyw+kTMO88b`W5RI$zUC~)-zn|mDWjr^e#HfamhjQEK=d(!U3r$-meikvR%&#r8^ zX3AHq3xJLdHX$~f{C0QJKT5XZrkjqHr~s?%(CMgoTb1FqT;-l}YXG)$9k^XGF*70H zs=v`!V16s?((}7ebjd-q+PIxm4p{uSAZKfP#Bq>IWY3X!5oOiKJdUr_+Y>+pBbR7& z@pjKZ6uiA2yEuu)ok*bsO9*hAKcpgdB`=BG5ZN=TH<|6Ay~fnqKlieU@bch^M{gg_ z&<=MX$K<5w$P*Jq_D&G0R^!o-*&~01htpENH0|SIUeIG?qrzGzUaZ7NYWnn)%L_PS z(!=o+H0ZVIz+GFtfd%p}H;ErTfkS39!M)ronIf4@A~HMw+rS%1du?pd47CB&a~xcq zvlR}kR8IJs>iPEKi>hH&2pEaUYIW26oe6(-sf#qk1z{28j#ks7quJA0s2v=8>U9AZ z3~(gx+3OX`m7gvOK8WmrF^_E8r9Q2KP~F6*f?gI z#wA!D-$=`3>sRQdJtYS+&6$QlkhQb@zt&ap5kt*Y-0WDYVK?SsW(O9>W3n+#1^8JE z{fytK-#ntRe11Apa$Bk7E-72v-car#eF)S8CM_*?bjXiHZc~vM?8n>PTR-zZc~hT^ zkKf@N9GyjncJ+N{rh8Iu+hcp?Evpr=1~0#hxUb}*} zB-m>g)lamhB3!Mz`n@?fr%10p$&YF~-VX`}8%yNCj8_^&?=(f6AGMJ9h^Asg)E1Q6 zIap7VKL_vBtR~(MEu3l)25Wb$mOYSPjND?&YP<`iq_@|@gzfQcngiU=G}>plu!N>( zV+NxU$~i8$?E@OUor*YyT;z5T;@~MYsZt%?I(Un(r5@y;C^_;n4-~X5=uX{*Jd(zm z@hHQ!^AY-Rotf`1&&_*u9Ro%i{pYoJZec|uSRg0T~ za`SYh;`l*{|U_`&n4HVed!LF9HYkF=z@>#Fg z*lt$ZI=yw{+z?<-tV}sR_*IOSg}u_=eA*`W;50wxtOb2XNIq`QvBI; zvCbu4nO-CT7{K7EFKxNWftgWw${c#U=g6k}O7dd6y#Du1daLm&1eUmbf^MF`eJhz| zup7O4HFRX4L>nqa$KE8~pk!)NKYr@L$(ANRiFQPd(8|ULLuS8(io$OWq5dcU~_5ewlt*wna;*juXKLbO#knJPN543QR^wfiS0x1UUx z_|QAL@>ua9=L(dg-I+R)x({`%Kqy?OLD~gwBKU(~H`ve|*L$zm&t6vgC~{b=ypobn zk=QI#VbQ7#zP$(;Y7E)xY&ko5(`Y)CH$X{%<00xLo_-+^2}-!i9VYd}&JF$hYC)*O zz$zN>21Q7B@`JMq`C*}NKx(i^#fktYps%dBxPPB|pHVtIoqK9c4d=^#mA)%Mt9iwPwWOJJpUwSc@=Ee11|=7wKg^=HnSpOKy`V ziU-6A?tf|ln1XOsdWWbxWh_^mPBx!!3^!w`--+I4Td{!lmPJE~d>=hzP+q7zzwTZv zEuH56>FQH#ACS(*F5Mg`a!J?ceUJdwa@Ep{k4yAI(%N-or24A@<<8z2f)UQvUDMQQ zbb`w(qi-8xPlfEpJ+yf9fx=ltZkH~vfH(5WBvdZQa=^RsHNbvcwi6FFHt0GOq4bpAdPmltfT1ERl04WSInR!#oHRJ@oX8Aj-lyW5XhtY;)9MdZt{a; zE0GH&Wnak%}X*p!2?rNwo zvCuZ7`wxFKDWMs}U(@-I*KvRN{y9bjeHzOa?CQX-W;c!X-eAlOJ9fY6Tp<0|tC{qd<;By8O~!s8 zAyhcf4~ADqH)V@Se6mhc{8iQ~GAt{;tqc&F?2679m5n`AwmTr#OyKh>FkRZTQoj?0 zz0HPf1CGow_0g{DoB^jchxxs_e}HSJuN3)glul^1uQNKj;;mpleYIS$p~5hJtkAPezZ z%R{sbKaSU`Ysg&R;c8E}en!n!3eH;dA(-|~Zp*=GjZrrqbtYNvgTr$mtpN<+AmoR5>x*n4VGx6-zd1@yJl)nqQwtX(mzBfgwKk*Q6D~x-xXbOJZ z!@oW1msV3J0Fg&DoJ~wL9nQeDP0KVK>0j99luTKsH(kIe!)lvM`b%!j%27TJP1zxK zDzfw9igFkt0Y{Wm3skmUvf8q)ZYfk@gJ>a-QlT}qD8t7367v zJa%(tn8h(j1VP8(z;Rg9cM{9X6lBOjb_8MrupX{FS*Ch9DxCdvi>YwBA=2`f z!BQ)$ZXW?_D!YA@R7tT79^O8{>t8TL6|3#uMApZHcXs{0hEFx|f{W@uje%&SL<}te z>M}|*zJfh5B-tYZtg5`%l~-fna3TKN%A*TX?|dXXBQ8Ez){#eX+dslp zEvj+jYM;f=Z!R~tScS7{&`2$C-*2L`u3jxEu1&E4UcH>;vWq>vNvfya8FT$AlMGH9 z!zWek;Dp6FXL29G`60i^l+KPlwDR~XEJMI97le`9ZXIgZ;tnbqxH9a~&OQC-JXRXf zTCbVrw7Vzk(yBy#j=gDgCwS>t@>sy#VqnF7Uisu8qIxs*6Ld01Ku7?*GC56mf`lm$ zuoWOwSlMtrxqF-9#c3S+$2?5x9TVN;B>O=Q2(l<BRbd zwPunB3#_y!D$QSvyf*+S*+Q)_WNEvs@ZsvH?qCd~ZWJI;z8P@*D1oT;!Z$$Jgr1%B zW14UFx)|L9qAZYN#^P#Z=qE50csI9Ot7BX!zPleV0{f{RAAiG?@A6yh)Ef3V2yV+cMzlk8H9ehnGv zKzg$4;O6`VpOs!Xl{h{it<=-pLk(#Omd@URR&}PNWzve%qXHnkOo<4s7_V|a6$85^ zwja&aK(6(2b-^kNilFcmlZD=FCv$IBY#uZtajm#1g@9=j!!yl_xrq)5U#>LBhOhb4)QF5;%3}tOgbO%QJ;v{4_X1 z-#3tWqv|#>G=?37<2X^i`$B`n;d}m0dKiURBdIZqL8jGX1ZG7eRL24-`RD70GqS(5{a73 ze;GjW_Sy;5aYJsSNg{bGae3akD=p}v^ee0Lb%#tq<{ZPDJT0>*e@>#xBv zME%A26&XMsm>ot{g3-TS?fRy#4AA0O=0CH=K>%%v{OJrhF;z8%<8bESF1f^de~_`$ zh_C}oqFmb7$XmC>j9!dvIB2-S>BDQwt5a!Wm&o`guES)0!8!{jWlrg1<9-&SQ)~c&Kg8z>gB7<_PRpQyF-=hCesto- zeNkV%y~Ebu#f>#~up?T1 z37GkpG76@rX;;0DRW63O5l+J0Zm5kxugm!!sw3!~+yPyapS{_@>__Uv1?gj}rg3+= z<{%0Dhfu)A0Eb5=?3_7`GAyBO?>7OXjmN4V=dA5Ah#naLEiH(s7XdC?Mx$o$GYZDe z=CD0nS3)|w`%>{oqxIJ$04kw;fZiU?P=r!*FNLHZZ*B08SMKwJ6n7!|dz#P3gqRj@ z#j^;-8MnCWi%nPs5)#?w1pm4^A`ii60z`uMD(!zgxuFqb_Hv&M>vSae zBmv|hPqY3jcevDVKD5b3F;Ws9A4KW=<@t|#D{Y28Ev;e0;Ik~i>L10jb^Uni{a(yT zu1hcS@-gn!z{0`C#5gK)qdy)7vyOis3W(zRXbjK4e{q}hNc~o+NzxD}M1$iqg#c7TMd+W3qce32ncqZ8WYg8t zTqhTfT!;aW|DeHlqncKSKl!NN(S4^plp`@Tfhv@YR*G=$qMD52=l|fiqne& zRqmks^U~ixT|g~ydqI{bZ}y)YW@l4hLJ98PB){E+wUtILQ}Ced<1Lkzx*}gx|E9j+ z8(Ghla@)}e9vh{h6{_F)%E4@1ZnKNs+wq6Ji0^T0`#wuPm@H;{wMj9$Sm*xxr2tt* zI!FIjN^6ouD<0uvV<;vM0tJZ} z1-s<7jq|k5gER~v2I<1uQY)Gu_+>Lc3I=L(xv@Z&0+Z1jnl!^Mby*?$ofJ*vZTH9U z=+YCj$p{!G9r>iEeydK+k9R1L+r)q!=2cId`vBr-2p5_0$&a6guOnAlTv0@G;ObMx z#gai%^#!1WM$a*H`k+3nxds(zZ+2>ZSd#K&gW+JaP60E;#|RFsQiJBuL;@C)ux(<@ ze}Ts_Kged#Z)x#-ZyWEbD*^#q;Y>{`ARw@R{ND^aUstO&CZhs6hCeLzA)RpYd`Im` z2r@7_X+w1IVv_!ggsksvkCXtIVx*ga>@OV;*P&kO`Pd2A9isYMx01$F_B6nO0IxNP zE9=e-V)uj5xCdp(jURQlOAb8!fl8(*+J*X?ZY9&=#-hzMYGL#HSy{RR*fuF#+~WEb zi82)`?Zv3isIVR>q_+a5-ltLs%U-bq;ecoJ2BcC!)@Sp}z^zEnd=*i2B~IKyTSvVB zW%X9&sTOvcPlG5adz(t-bHy)}n_YoLo||BlZ>JM{a(wraQ+BSj?6l1pouZSX^gQ(4ZVcqDE(h#(zwrv#EFCb#iAfkG8Z6 z1py9?<RYX&;{X5rUf|?j8@%1dGhe&$0TwI8 z$b2+^TBAqNZ2&r>pri|%Ff~6w-yGYI39#wZ^@4p^v%#ZW7fwNQ=Slo&@=xQrAnTd3 zbnp`L?f&YwLD!TDv}z7&MkuSw0gnfAAb@rQw)N0d20;_XiZSC$9YO|Ny0yea4Hg5A zRk-&b6Tf7zSR?P%{2Hf#<~Ica$#8)tUenK+UY!~oELzmUQQWRsFFb&J@4z4#nng(6 z^Li%71{4lV{#6^qpq}gJQ{^cQ(BjTy%=O`Xl79AR1h&#Y^wCn*mUVv^3@HjuYg?TQ z-{%az(BGD6X3Xtz89PpZ84x$d6D?i*5E+nil%#ImL0&y8SPnb6bNphIu> z%QkW*hB|rX@os6)wnD@eGF&QeSUFD4SiLK}=BT$>s|M8NR|GR zhNzDOet=R6PZxrq=rLPD=WI$qeKPZ!89tu+oze_vuRnD!7dAP)y3I$167~)*7+Axi zPubO09o zg^^^cH+o6blgWe+y)U9#pzID9YU1D}~Ka6U%OWA-0D) z_gANYXcLQyO755@J|1xTRa@aX+PR~WZB&?WwZdFADCsp*DW_uuZ@91n2H_2NaeD9d zIXc;AcnOL(gm{v8m11o8Y>Q0g)z6o5G5}{7@(^G6I{ul9B^0YDU4UlD=r-~)?R$yS z%M}()tMbcM!$r3&Uw#i~8(Dy)Zf&S8hul9mAIuBaU4E4N`72bPz?;U`4+LN!g+Ov5 zHUlyNhg#C0K)0P4LHGIa6sGayqYZrB^(9Q@SPsi-s;a{a>J*l;0$fUOi6N| z`3SHWK;CqJpGPT`NIh?nxZ-w}sTO*46sxn7CIo$htIgli(|QYRX7$EcV}I51Z)m}- z4M7ko@?*gk1es%?)}o{M{|n$~^k{6~)unyhy#N8;x48?^o6c#!hC`H$o4d~>C-J4C zd`BMde->tJPOtXU<(p4gbj#n>xJ_Cl0&{7r*AHKbh0qvxL=DPO9rD4l8-hhWx{DRa}B%sNDU2u0b}Ph(D>p- z0H(e=cDrtBiiHEV6yR=y>GYH+nMq{8i-AsqnXv&)ajR?Ro~~vcuz=d`^~*zkC-dp| z(UIK2p!Q=ykES-f3#A3<8bEAt11AC~00xkN2U%6uP2lxGkPHf0TJi?;OivdEG35g( zpf?-%qWW2B3{`h=OyEP@t-(Q7YS3=Z=eYX~RAsF?8p%Y$nlJ+cjMi6^(>4Bq_hsv& z{wqplUB=HTf`0ws#o*VmGsFZfNsUm5!l<I+Mb596{QJ+8NLI7? zHzS}#@Av#z@AvNe&%dD1ijJ%}9IHx)`tXk}{o@rcuSs1sxE4xsHSklo)E{2)_s>l; z9xM$OvRgO=INATs*6%-EFou%!lF9is`zv$*iA4XokTYWe4Xlth|7J&L#(#4dzpvw1 z+8zr(t{_n_13<^Cyv#wEf~JR(>N@}FS13sbd*3CbS+NC(aO6G0JLZH|*IC?eS~JAW}Xa~-VE zIFOyMKyoLB0*fTZgji=6&#BJ#Trr7JDdW*yz5f;CjiMi8qRH580}y2bK4el038KNy zm`K#*cOYVA4^U8Byd8Q`bxDqGGpPd*RbQDEuuuznp_jHdF!5$fv3p_i0Udg{Ag(|G zoEmt%p?;GTlAB!k8Z&K?zC^gC23-pK6cyorV)M?~VBgdrtoM4Nkr9^zGrH2R6C1Fp zE@$vxgw*AY-MH~Wv%tvE0G%{uwK35sUhlkR+orIIL`o4TS>LOF@y65FH={%kyRoKt z6}cxEM2G5a7!a|W%Hrzn-OoNMp2$%_ttUkDmIway{4RG$B^HpS%eNA-(F(G}n&k&r zIF`I+4h|LPP?l;`P!uynjYNL4CkwQjtM}r*pQ*@EhGvkr#D6wm_gSM)T)>lYyI{{| zsFb2S&iY$lJ$ZY6s6DhhUp);=!lU9FpEg4`|7L&k_KTY}!bTYiHFTP-Ny`aBh0F&N zw@ikRS^B93zvT-qaRRaORP#nG$+v&2xM6x)9Chul{diAIdC1{JIx$;I+nvOU`&fHHeL2N$?WE{5G@(vX&}Vx!U(fx@Qm18W8#5g5 zMnm=z)9;>BMQ?kauvl=#|xpW(}4`Sfn}FtKrt$doIm4gad?$S z2i&p}uX_fCeU=ZmYiVLq^t&ZYw5a;^_Oi^Gj9`hswdN7&C8cOGBmUWb|Lb43@cxpb zl7WqIVF9a%;P}6Kx|&?MVyE2jQ99}%?O0dPV_ngY?IfvKFzjcfo{tm zGmy(099S&9a~Tz^*d*qgCWzNq~A{BA`V4?mr>8fC9sSafW_ zKl3JKS)_)~M9dT`bND}IE;O+$^eerOsYZ#~l1t}P8dBW4%3|s2(F3d-bpXt_aF)OC zuE7)dY`*G5^rj|P)BrCjz386fj-|c7h8S-Ho=8pT*EU~yHNxL>dPbQ)V#$kxg98>- z;{1P2Kyw29^lXdk%j7N+~P%s@kNrVtgWBAKEq!{(oO-cETXe8OwI86h)x@$MfT zkN1~c%+Tn2TbC}K##kwh6ras${#m4vUn_)sy^f^tCyr2+TC5q*i}*MmUTALx9sXw( z|9R%)76`f`^JrC26tVoL!Q5xR=tqk7o1M4&(}hDaGw&m5+#k=sj?%{`ky{)7(~<3L zZWxOx_GYY1pl9?(UowA~&d3iwyAIR#?b^{k_`;%Hccee-D&v**>x(42@rj7C zRDuo*(R+*4T9uj&*4Ob#Sm!ZMD~$xF>s=Tgh=^nl-TUW`cCM-vsGcFr4iDGHsY#_h zb*Q#>>>WN;sB>OyPDg83+vYe~&dSH$Tz(%GHd22M?$dlK1E!!^Wj&s+mbFr?ATO;k zMk(V-yttV-gyj~`9F!Hkr`|DH4dJh}Qll%;w*5fD^kfm|K+t=Asagh|4BC8Ud4wft zXlv&>G5N|m&X(C(%=;f#n2%n2uixZz*h?ORW_wPf4v`_*`@BfI<#x8J{9!5Xp0~In z&`Hh#B0t?bnE|+YbGk{ZkH;@{Fjl$%*;{DCrx-4fMHEkyiMmi#2@173kN>F!fHFB( z2|~GCS|l;5_e1TsOn?08+a?(`OpBT<7`bqD*00NmR^=8g& zDdOor^UoKNQ?;p^&0AMb51A;RG{w_fsZCT}E^6n*eXC%Mc0g}ud@I@MN#M1dx`&vm zZDJZd$ao^;dKU20v_Z4XgEcz0FT;u4?q`ntDXYrGBoM4z9V{RsA&Fy5?N&cca^2K+ z-(A8}VNhHefSqG$)EbdPftsZ;qPTEZd!RHjt1Fh7)M6-GHu5a$6AF><9TZL_BlRB$WKgvqZxz6sm?5NtEBbU@U_vSp-7%|1RzdDkPoUZ#U z`QhL7e8p0gNtMZ22C*}pn3Na^Zi|Y_Q8~w2aD`n*Zkg%z8X97k>f%$Nu3TnKzFW7P zY8cUw!1l5PU*)S&#qE0<%}hwlVa~s0kqf(u;i%3uH>z2%j29y5vFmZ!yG@KQ4;dA5VxkBi5SqItJ$K5$$lurE?n<^2t z(6jEEB5@+9D9Fz+>$^>kR;zMqX8=}|u$tl~Wu(P4c3 z=`nYXy!<|SQv}dDFYLWWRO1wUM^8_+MENdQ(>qL>AK0cn3`|V+t50BV^H-3y)Oh%w zSrtXP{-q zYHjUxpjc%*9z`T858t!+2E;E_tfeY{x#}0N)*!+t?p$gl4UN!p<;L(bdWF@w`@=m} zDQh_bcnPlez`Z|C{p{gFyi=U07dA$3t=e{473T@j=4?k^Wb4{kHnVmW>XYdP-~OpS zEg`kY$GIusNGoi|Q+A1&eipjpH=c%ugcvVv8xoN7`G;v&8(Ukqpu#8}Pxcu}ShQNs z-h~JPxz(O{w%7d_eM&@sn&JG4s+TinErpvu(@A=y7K=bxW99Nx2d5^pQoncjp2 zUM1*^eD(>><#47!NG&C{$ zI7F-I<_&irg=Y<#0|`ovC^Wm^P6`yUvfL9d6yQ!B43zaAloxNAv|`*WXVcW;hW#`|2w;RKS13TXmq=9ix6%}>^~H-(N?cAp|0g5eXy-{_P3LXDe?c(@4BI=O0&oR;_c zxT!KYILM;?HDTs*L-vh6ew3&uVI6uiOg^W#P_t3S0)4opjYCND0g9Yj>NJ$?8MUeL z68w8G0XzQ8!5J!1q~L+$;kY0uBsk>z!=TP({RP;7#z6!?5hj(dUvI`+RaLcrtS_FD z0#zwhGMt*4j`i5sUt1f^BGoK6ZS9**UFWrQ6#N@j(vtSP26)-qw|7o0sYOcD&6=u} zaJ;e}(BT1B1pc`16PW(tL#WA|(rIoSFuVR5XHTGi?IkF@cT^?w$L|ku)%aiHa)>!Kj!&1F_GlB z%&b(Q;ZS8e@f}g9Rh#nhhe{(AC|!w&s%)kURrpMI zB|&uB^M zb+W{n$OXavp_wD_`im-Aa>6Q$=xKhn-7J?~zx5$AF%Y1}%oLTjRt^IbSJc>;2Enac&i&p%!8VZ_a$()n6^uJK zlyUp@7d1$$ka&A2OVzwFqfgr9i#^1|QbawIZq8)qA8UioYId0-^>dWXJeEIM zx}f6cPZP4UO+TUb%5xQi!@}Cy8KPgA0Y#mUhIHm5IjjZh#Tm;e`E9UEDjT;OnwuY0 zpB%EhilLrdj29EPHxPdwLi~u2FAi9!ay5(yZ0nzZfHoG;7Iiooewk|e10?mfnO-w> z!6azKOj^durP1wLYa}^W7frcT74#C<4+Ih zIJx;R9gV+rc79AqNbnV4{uh1INmOVpEby4~X#KdTj&~+(aJf~aCQCR;h1KAlye&SY zRYcMnad>gYZ9B3HoBSzdPoX&1mfV~GKnK;4f@aC0ddu*xkyqg zs|R#+cf*e9LF_WWI^Qan#7FJviCdw?TC70mkxok)eKeB^EKN246=O#Z1A|8g0TF)d zgwQ!;^5LTy&$zfap!rLc9vEgZT7!MJJ;HQ9!9ghCJec!XP9JoK)yF4Z0bl~$$g768 zr0wnPZX~QNAmk5zeoqi)JZCf$I0tQMLdon@b^EC4S7=ry;!v z<{(adez?~}WngC3KfG36L-p6Umg{?YTKOW2401WZyJMv{p>s||5ok{)Z4E7kyq-8# zVNs8R%$Gy6`C9o`lKE}tswbQ;)Mnp_hH&_7>H`_?z{QU6pN$Z9qZycKe_`U=pdg2? z%Lf601lJc(1+L?c`|DZtCDl8SnS!TRPn7dzVkP5wtL0L)AU`HsTB7*v^d6DR{-PAl zG*VJhYJJXy+;>+-7}X0#f-g?@yO)`3YHEB+_Wy;8lEV%T6bs-HanZWi2!=C}J14Sd z5YID62TMRu_^$m+*Wh74*?4<5^~;&`^OHSz4W9Mn*F;QIxoozwBI(WL=6ZU#)f5Xk zq#A!2%R~%HGw8Cy!ur*XxV7%?`H<{(^pK|ux%;p4`nJx9`FunVohtxr?~qjU(0HXY z@+z=fHebgkHr#8E(cHCieZ4n4`Tfv}99&!v6lc6dd=ClUHwE@!`(atuswD=+#9f>e;CEcnp2Z zY`ycI+1CZF1nt#^$+EICA(WgEI96C}Ya5!%5lm8~#chXV!EzkCX!N{H%g-nO>$2y{ z%dU@{bmLGH1kl~~t+#swfv~W$YL;0ut`!X#Lm&~+P}|<#K8-pzPBk^P?#(rwTF2Y> z$X*17k~ z%XN=xv@S=)mys`*0pxf)D5%>Ok4L4|$DbBAM4c@4lA*$Pkop&C(cUhf{LxJMf?p>d zj#o9PKh@Knjx;$(k2d(2`V+D$uJPQd@%*V+n=Wsu{$dSi00Q|={`|#w&hYg4!&*(- zOTNh4x8F`R4fG{9V^pVCpRL};vb9BG;;fIS=t0X$022MOf{4zG8v6QJ^Hi$E00x4fkkgp2 zX~QSgsB$Ws;k4#5eU|;I%zJ}Gufgpp2rClHO_m+M(eqH;GBmU!+k?LVa5V<{)ugZc zAY((P-s5#GECPVV`Js&a#!?XrQ?=!o&-;wG=yo)Rec%N{imUVS@rm5Lb^Zlmd4G9_TOk+ufpg=Ks0Of%w^~%Fba)o3ryaFCI9@{VVo7-?0e&xpKBETFWq$j(N zd1An4%vGJD#K+L{VeX5qPdXGglfww^Y)fYMP?5P41Ml}|Fnaq|n8O_wX1NZGY z>;T+Dgoo1K0I8UO3kya*KLbkk7ZkkynXS@BhLQGFjzHcVXg=SU2n?0cTx|{dd}$(8 z^$QjqIgF2w@2xM(vK^oLmTm1AOJjG&iJpq5#{HFUYHHEHbU(EgYIJMhYL$cAv=dY8 z;n{95qsi$-^tEddB z6r=DQqJm;cM&b{a@*2f0*;=SMu-X65JvHR=|ly&d~9(#chs5f0W6pQ}Bjg4)_O1 zu$lEIc6{G4-bocF0$VU3eCWCm=lLLDAR{M_Y~_0doXe9l>z^P!zrD}~bzG@XnP5PW z7wf=M0JSldBHkNg3qpfw&%=u^uFd`ZX^cZ=91bmR4B@mP$@RFPMcZefpY4Hw7fG|@ z9HL|`N{lo#volr6?U>Z_zYIS*3~vkzH#-~S6mk2@KR=%l3~Vm?@&tP);K%&@d~bqS z?2jO#E_377&Ozh-IutE8A7}H-ebV@|bH;6}r&vH!olN|YokrXzG&1wHLVv$pIxjA% zI^6DOHDvG;W*PrPnK?_G_1ZR#6vRCBd7rMiRqw`#q1k+(7q9Moel_+y*GN&BM~Ya;esATP3Dot}CH8E!qB zz74r1?jJc6_u1*@gX>@kfAXH)VNCrc%KY6m`)ij)(QAtlvb>S+7IV!-L5xX13bym^ zZRwv0w6x49eRWgL8Au5O@Rcz&{OF}zBF`I@M~Yva+P<*!U%U(>6M74R?cM}Y()X9w zh6S5nDBVbE4`GV4tQq<3JC3vs@)%Cm~GREdd*vkOnNa1)^ zB3jXG)y94iul>;Jo<~4wm<9_cG__+)lljilM83O?5KqDL_I-<5k43^uO5WsvM{JJ| z7~1pQ+)ahUgo&~oigsi6du1g}?iG228J=F;Eld!54`J6ED!Y`#@_A|Xyfe}HUh!yL zh`Q~na}i;cW&(c|(eV`3P7_5hEDK?-)JiE`66hfsO(OPsb+(rAu+8g-WhE9_F4w|E zqI1QXXdDpEG&DE(R;pKIu2UeA&)O&Gd~s73M}8h0@xZDPT3OmWbaz_ik1Q@)H;TSb zElim5Ngl;1DfN6K7L&Wcya`uPC&Qw9}Ur$;-N8QV-og}c3rs4lL&;X&Lv*6^35 zwq9k?u7v8kU6CYsNpF?+BlDp=p}|4BL=IQtyNKe^wH`5P5;l}}s7jZV5bBzr`n<@d zmKe6*YBi_Ea&dw=jM}&4c|8MfR~kJX5Z5)@^%7rUnfyE~JZ5G%d^z#zCpRsKvWy{Y zgJqWwpFLZABz3QMvG?s8YCwq3we`SzbzzBMMKTS1>k<<#mqx3mZ8YB{%~P+e=!dd` zG+E%Gb+9a(_OoZ{95(Ypsiz0@|BtS>j*GJE+J-?CL<9s>Qcw{Pq`Og3kQNY-?(Xgq z>5|R?m69B~8M;dvB!+Gny5rlUx7T$)&+~r%;SUA&oaf$auQ=AR)*^H~EjGKfXzRHs z{9sp79YZuw^MEIK*l=>5rPk?@$iR()tR~fxL$sj%4Y=^?|%a7UZg}Uw5%S z7CU6kTq524dDnsUi`_X=hT8KA(Tn<5r9Vbg9)Nrz-3JQD<2PL;g@x$`y()QXu+8pJ zU#BdMOLR4y$^!+7*VlKSK5d#PcBTwXbo94hF#J`(t2X^;>5p^ zlq5r0B5`PMnMoQVETB#_1meH?D~EB~Pm;>BHI`nb#OH8dgu0q(^JfZ!@@9q4rtkXu zB5N5?Sy^x_a6VYZm@<{x@xv%+)TqCuD%S{JnmJR1%DKrciM~CY@Q zh@pTnWKt#74~&Nl=~G62?akX0dD!|6K1|UbXcSvOUA!7ZLF5-R%~N!-_u#L z0_{-z!D$b&sKcq|_Irc=QR)uG`h8wXTQ~=orZ~+mW#1)>E?iPQR~O$(Zq{Yb@UM+P z!S!pMC1)Vwa=mp*SNe6xOH8lND1SI9DWOnz%}I`!Shh+`Mto$grHBnxukQp4#UQgS zFNyC{F4y+^A10(Ocax-#IR$xLXBkt5!^gDo?q|=0Wn*0!!QUKLRr4A4`&@LGo8$xyqP=rKku6+#lHtWs2Hh!pEx1cZZF3 zX&Ba(o($EP;sLOrr9SwZ_pjSAci2_1S?6DPu&cWsq^m65Nfz=9b2~k_7KNQ4iaVnN z!yq-R1_#fV89&AkuDRLT8uX?c70q{%w}^(5EpJcrNhWYo`mz!Hh95jdckwmuGtI>S zcQ_(_Gl9+OdQNxAseRBo`uTmKU{2u~6TKoa8AumZ5z}(oCgv~wpL!`LmQPY^(pXPO zh#&O=Efx?wWHo!@ye;JRTF_CnV5Sn8JFnA0`2otkq%>OAg2zzC-B(Lz#s=$c<3Cp5xt6Md6A@c_+{nX3SzL!{t<`^oOP|_{gd?<~MukGf! z^5yZ^uaHR1^I?+P^$Bw`ANBquzx( zqP-QB3z0ch`KT#oqk>km_?`yBAQ|mHiT&rt$D?)rJu20K)b@161{UXzi zK3!OZC1c%wYAa$Ye!ojN6^|{3(_cn?aXyB0%5^6mJfij4JO>!GBpgQ12@K9=F5(-~ z|MZYFL5o2JXhEomk0K=+Y`$H`*tpZXxm~YN=@}9cyo&LuLs73e*1Jfj?XoVKry8#^ ztnWGd?YrK4?G_u8!87-&CI;#ONqn~979;-F&Mw4eYTI*Rm0Rm6I{I#ITNU5rH@WOe zXR`;gjjn-rX1a58`QGX4z3U4%=<^fwkTz3Gwz;6@|752ai{jGmgc$aH(OHN6F-tNZIwr6CHEd&#%@$>zc@tou85p&Ph>dH zR_Mfv5%;yGqs(z4Y(z|d{r1fpm8W?8-n|p;uV;X3#_w@<^5Fu0UEx&Ob(z+tt)A?98obSF!687-b4{gC`Yzx}sGNKlaK1is zvw4y`~V?XMtTM0wHVDiFTZYRzak z^b|2(x^a6*)Go_PkkCUci6mb!NvnLH&|;}Z&7PEsOF&q7I+d2h-R1&0*muOG^>Wa4 zrw**%znnf|0x+~8TG#sFllHUlgd{CaXB!6Pny6hgzP*(W<&)tZgEijEquEOlXv%N- zV_uIRCjud<38nBb`q`!KA1vh$pu*2i!r3Yg&)bK>tHT4W!Nk#?oaidv zWl0Zm%ccqURrazMap{UwOq>Wo@q@{egmFOQnR4H`4UQ|r9oQVbLh0__8r;a~u@$}E z=#)}~0TWs!&&1ln?w&o-@-oG?Qh5(CeoKd$ZazWtNN4OUU$wK}+c!6~Od{zfcz|HH zfjX02y6A%v+}pKpJsd@QdL{AmabX0X>dYVZNDB2t9$J+v6>yyNp@HwbyOtoyn3+*@ zjJ0_=%Mj#A?H{h+8!gx=;K;Ql7!(ol1fn_&a*MGKNRQVa?8|GS`g1NvT(-`3p4Nesaa9XgMPamMdo>mKZ61YwcK`W-{>|#VC+MQln<;F^u3$ zZYK9JPl^8b*PXBP5_vukKRh#kwa=ils@pP5bpe&v^?)j2)@&xw$~A;qqw&tF*Luyc z^qpYHWf}>xe$1kZiFl%}IwqlrvvT7TH{rdOmRAs~;(qC};?^Is-<)iiZlToYpJ%IA zJyWO+22imFq}sWgYpBSX0mQM-Dui(|u@NHgRtX#^c=r|Dsaju}H?%bFjtw?t-N^`A z)V=D;7r!LFercja7Z~yF3Gq-?nleNjQ|E_*36)6HuLtUjsj+{#06zfB!7LUN?MIsh`Om|-P@5Ydzas7VDz$Rzl>SoK;19dAqV5!Wjk8*43_d{nb zm(k8{-)sP59? z{8`vyWy@QjcQ;0Yrf_&V7Uo|9&v!MpgU`;aS(3AlB4)Mh&D(nY-q_2#YZIRY{QGx6 z3BBHQ@NwT6h8)zy*sNsY3yXWTCFl8X&I3G-q>QBbg9s4`acAORDhqHHpL)lSf6QUu zY8@Dgi|5F}5asGgABS$UuklMNt5lh%7H#sl`Bmw<*lNcyEnqkx6&R#Wy?znV_8g(` zeuA(}Yi0^Oqxb~YN!^457pqe(lfWeB?7W3$tjwc#K+{&*AAg&1W>l>Y7S6h;DmBE* zD(}&U50tp1o@)#-HW!sLFC2_kAq^2vH|L8I+bG@cl!f%N;y1Y?#fViNNHs0iXtCZF z<8tU$ZzqFop|t5+NI6XEH^A?mKxKt$drX35$?Z!BA`5E+#VWPp^CW~`uzhRb{U&`({jg) z?2_di0bmE9x#CVocEF>HKK`mygD###96ZKmH~-qD!m`6x9o9oW9YsUIU`bAn_tsZL z04Tpg_cd-DXi}Kt?hQbiDi|KKVDp-)GUKVUXC%O|*9n4BU@2M3>#%RJCVz5Hu5vVC zfGu3N?_s;z70eBmB@LTR#6|kr^;|%8brsFV8U6$q4ev7)zl|8pJnH%a{pX>FCf)@FtTg+ zypCbi+>=?m|5pnJK$q9IBL-=I8x*9z^d`zd0S>~tP^qV-Z2xOo$fv(A5nktK_3Q)wh-W{fWOH`8pugSNnn+dNeIq&${~mcqFXm6QLR0gD$WC-l5-a_3I1z zyC4;Hu>3W+km7p!$OGH34YgPmGB$w5D6>+W~0?5Urf zbGh1S6O_?8Qz?5Mr&IiK$&yz24vW%fLZc&xR~}Q9S$veLN`2)Y`&W=|lqr%5)ewF` z{bwRA7#7(u9p&+6W?XnwaxJD9dtVg)LG5vgkCo0+i6hW%t5P zB_E)-sEtb8uf+hv(tUqwMk4ChC*)IEIf@rcsU`bmY&h&5OmutF3tcjmUuMBW zJ$^!WV18;OT|!qZWeNvC5!aON z`O^+NC5H|?tow^=62N>>PZ%tgQo(ui^@0OKGZdipa=h5PffRGozYqE(b{JuJnDc?| zeYPC;qkqq5mr|v~Ug$6<26eU~h-#vC5D zs9atV)^5A6~jcjxNG18Gn%jB3=mVVfB0NR4n5Bp|utwL1#SbqnVJTI@SR)fM$6G)^P!f z@EovM0Bi>$+B=Jh70vlC65_F&NEf%;;`myV#Ga&UTR01q`F(C+XmHwAs;)KDWQfBx zspxqohw+;H1FtVXX^@LVLD5lKO|HHz0#7p@e-a=n?2Ivyo97b8SPcLQ15WW#tGm&# zF_BL-2Tg@=7?TEJL+IoawMrYGUojGN`fG#fZQX3RrsZuyd?5ZD?S0fZLhAVZLm9S! zpH!ABY3j}M&e0q-e7J&YXLLQf#27;7XjOxV=oz9tDAePHXxXxRhhpKwevMj#KFzvF zd%*?@DN|Ony{7=134gfr=(=7Ha-HGWJk|60kwkk`S4TjXl#5)BG)));^RaE4W;Exc z#1S2<@P}ZRKDj+m`DxtnjMcDIalO8EMQe0bqjIr0!=M{>|9T4-pg)bjc$!(*nSXBZ z5<;iN*1n$>b?!Vt_;Ga4dvXw6=Qg6GUsGXw_I~U;x}+fw-n>@p-+U78mR3>TSzyBKYMBCSA-xGR#q-*@Y#_1?t;^w89BnZx4ra%Qxz z&X-+zaO;4Wq$8W9GxKVkl*G+f&6e46#xf73H?!Erv35AAV*$)%v(s{GdkR;-e~vA0 z!o~|wwJ#0aH*D)so~ES{^O@cPIb9qwq5eyMnU0n1AC5vEsz>s+? zsdX3Il{Ygp+w30k`+~4PZ`$Dtk}zIgwEY$Sjev06@qmmZG!|&VNZJJ^y)z?bSqfNg zxecOGcc!gnZ!ARLiIC|_o^mcq@aU#icZx0&`GC%`J(p|1HuT@@4BF+9+W64YGaT>t z$lt0>=nFuhm>ov%NNd(+madIeVWwp<=+CWh-GpOm!v}1;n8@6M`@I1kgG5_~3MjeV zcS*)9r?a}hc5?sHA3C2%<@NL>tw1cu*M-O_)>m^$jBUw`nF*tQE~?L?u$`@+Lt-dh#r zFkaErMmvj%32H_|=ft#?INZ?GbC7fh?Z3Qn+x;SWypntAM9S&rS|0u3wqfrmn$u!= zdm|?nN*SHYT*aZ+-X;jo=awNDZ{B!}2Txq9Fdy+0ueMYj&+ht@H9hq{nP}>?Mgjnc zEn7Wl#SpKCq^@J7PZnt-CNZw343#`fi+P@p=kR0$M?oY*(W_zaPTqZD+U5 zkRIQ1kwVwr5Kw-PL1@Gi#X?kLH_b>gN{`V1C6^vw>gWjyb&Wpzv08!hMzmhxXg(~+ zBRD&-XvY1|7HY>2V*abI0z5~Pz=%^NlWZ~}_p9~X`Kj7-uOs(%+ntkJkiBDqJA&jl zuc8%msi-*>v*@X*83RYJ>0|DAn2y8&7obpUDmB`4Txue`^8c@J0$zB{1ZM)={HVpM zvr4e(LxfNycn08e$?Wf^M7+)s(s@ivC|||WrEF*-h=@EshK+Z;cQl@Fv3Z|+kaU?Z zdIs;UI3ojQHmWZ_NTZ*c7O73FjzNjoa!ZzovI9AHYm^~Vy;DjLHa=1%OY^e1Eg@|G zv8n-{6reOfYe#))V=exGZvo-7yN8X;Fi52qRq`&Si;_}g^s&{y5S2MEu}4_zFXtl5Hdy|YZTx`4 za=^$F5BC=ysta-U1&RekAOSNpQO|iIefy|fnVId9Id`aeA|=U@!fl8QWeOswmb+1d zfFJL#+Y>!prZ9LMnq@9>z=EO`P?g_i$k86})fMh^KvObE?l}ctY=?o|&@&Z^ zvlHTeO;}s*7t!C+aqpfJmOO#(oz)_@l8h>1KqXk^uRlh@Kr;XaQptLHm=imy+{eSy zblrA|WP7(9r}>@01*0+`_FDp0Az=c3&o!s7xgtT&-4g2!@|jx9>zsJdkT6X*{0W?U z$dmBe%k(Y@OG147I1|^OdK%;^xN}#{G@JZRK`fWQqTsy|pfZFA81USR&4rPg)U+PW zsu*4c@j0!eTcFol>LZe@lm0Yvei!kIC-TJOTaJ6x+$i_#Hpnfc9RM7M_OdP~V|TA7 zYIX|X^x)w|4)YW3g?2=eG2q(yr^yZssP zHh4LpQmBqJ8NC6t601Ys@Q@0U(bWJziNe=?Qr?#PJWlm-#fZ2;L5w;#fADfj@`!DO8OLq6j^fF+s- zr#8E3kTb{UYveuo$IsF7z4nBWk8d*hS=u~l$2Co5@z4sifyDyl@KNVa;71hHqt+Jg2f>#Pg~rEteP)p6P|6qCiZE_qdZ=71vb>{y z$ildB`^;yTVz$!79tp|YIw3~i+(ImYf1{A?C5Z!Q7DOVW=ipj_ayMiF4`Y>?@_DD1 zrPG`HWs`RwJ2I+DTSAcTX8im{d(%juCIZf)yNm93Y|&d3S^`c?Vq-=(x*C*_5%FuI zzR1FTy86>bPBoFhY2V@#5nG&@mQlYVs64{*imkg6|7p-r>HOmZ9pjdA3xvS5u$Ud= zz?G|s^81gUKQMq5E@yhwK4(9)%c$Y?lcry&I_&T+r1Hzm7O4#YMnHCNu~Sqc{d&3| z_2s0X?u6~hUEB79u$r@9rRUG_A_jn^dY=%HqQ+(6|I=_$k{V|n z`GG{kb*DXLvA;Q}nCM8+397T?d1J1lL2Ql;9)Xj)ax&o+EiH<)GM$+trwh$oDnHvip(7@! z41Oy4)G*16NCCG)Eo}>tX_c6GeqFpcs78BpFL6LU6ayy}beU!22R+(zhacXjpMABo zM-@eOf7GO`N3+)N{K>b2)nR-I3ERv*m5?H9x?k+a1IB#d1@0``risK9qa0B1dc$*K zR{EyzNvG7kla!>FuCf^{w6OnV3D=(tL*sWoOV;!d6CMfD@7Rb?rJ3<=rr~i~yw9Ww zqt+EM%~7E9G2K=ZcfbBd0H#gcc!Em~+MM5dn)bcJEDE`B`wSx=iY{oVvt4&mrzo8Q zyWOzkJ^fBMh6JcbGJcmt3|tC40s@KA9?s!x<%m3GGpB z56jz}vJEio*NEiIe=w5~^uDL0K}pE+A1en8AGIGk`p4@?zi$F6z?Vt6dxR`Hyhb%S ztf7J^(7goFSFn#dj%0{Dp4~#ZT)Fe42B+DCRO7|=#X!yzu%yju2Pj|Im0;~lJe#d>HSXAOIH4lN9a~d#xZ0uF7c1_8fD1=~q3kS?@R))mkSGgmshI8V8 zYl3PtQOc-XGX7W5JenX?)L%7*x-fb?6;|9t z)e7^2E|-A}illQygl0Zl+pYBDP??SD1r1IO*6!fD* z*6y+Y!X5H#UCI7HmzO8^!so}_T*Rh;Q}Ue|svjR<&rqbp96l;5vs%uXSirFxIb9z@ zh$bB=<`)x!?M@dQ^E}1Q6`bP}5(e{R8J4&g=O}T=1jXWn5+k~29-<_Li~`w>;Byq- zv9hJ6I|KdV$=hl^;MGbzK%K`Z^s$`Q2Y&kaQXaHLLSOGq((+-9K+4d^41IVV4&J)e(c7^!&->5LLQkwm2V#IH)=e^D4DN`9!3><=+Y# zVEij~gI!~yrRRi}#uHFLQd^!E8!3=(q9zY^C9q7(RP-v9JOP!T_;#KBv7oiJb!8Rr zTIsHp{p);1>&vu+26S|jzGPgj$-c|dt2)7n5`(jKGO|sZRkAF=@{73xY3yZJ%$Chn zsP!NqPu{qDhTP6JKqK;ElPyJ{5runmmYBJ?mNecy z2b0)j9O$vI*k)>zAQwekmQBp8>@6J~tClPO8>4LL7suX3(>IA(H*LecwoR#bYE8uE z18Nji$q?hQ2c|wHrSJt>!CL8Iy&HC@NRrl?zNmllhl2M(lAOdJ3tPg+$8k$E=))y#rl$J7tW@?hze$9&PjS=jenkoH%kN1qB>v_(cD7#k)b|5{DvpGrc+Ewm8!u z-mNzo?=aTtguU+N9L!+iyR342`BLqA9gvrYS@`Yk!Lf5nonC)W?S3B*7@wTf*~1fl z>o%ry(`m5Mc**r`ivq^dvtrnx8xI&XmoKNRm_Hek*7?~r_U=@zvwzISMMuoOZj#}; z;L@ztBIu+=w7c*u7CQ5;u0IE5fFSuCms}TdmA2R!6ABau=wFaHUSaHU3p8u_K!@lw zN$ur#A(I@XCk8{VrmEd>m5@cUFNm_7jODVl;NEFq(x%@{Of|72>Ia>X)XQLmiCVpN zQo5Mnd{aiQ*}?l_K0KBQdvX zq%)QxJXLG&k8Yn^-sx4f(|pYX4OIzuS5&*0+4&u@nhz zB@>tal;^LHC zf*H|gZanrkYGB|281|v)j&^MAv5n zpWY_@)2*aKmH9mG>NENY9?5L`aD;&7M@OUZ(YzFvrh>{9M~3u3#|)x&NBT#i#||pA zSAwgXM?`lR9(lR@lf1oox?uPe(X8S zCvV1*IB2A`bvoFT3(?|82lj9eJ^rppvnC%8>D}GL-+jf9T}&=YK*p-rxE-}ChQ4E* zSR%h&h&CA`$_H(O6XCqz&ZrKWnd#o8;5x_Fdx}URxFR%y8``;LJwYxgO^l6BNfhEW z*B|%0Aqx1bLvz$(MruvRnT3b@V|WaMvX?MTpUuLkItt80ISy?j(+1JPTkuG&u~b$- zY)`g{`)~-6YcOhVkXn&pn;Ir{o4+uG)L&^ZS9pPF3AXQ1+U7J9+XqQ>wKdpK+fG$$ zFNmp^%XIQcvH=~5UZY+7P|c@*k%_%>)oFi|{G&*WO)F}=kO#_wpF`QGOd>blH&l4PIoMLlqU8jZQ zR~kn}Siy1^EW^%R9llM5!XLa;qH#=UzBaYn&6~WF^!8^0cJdT|FlVUguV};G=-AdM zblZ(p6AN34 z@TXv2%u2YQJ({@Q>+*#|p4WqXic0$O?&T>L5L+S+<5zi0WpuIM4gK5P*qr!NN3Vl) zZt=fMpbwOS+zExX0TI3wm2M|Vvri+jGgb&M@M)7Pw2|;otxZ{y_isN_8*iLeVKwb^ zVZEO(vBXquy?-Q7(>|ZV!eCHx>sSukXv+9DS~Vw);b_R{p0d#Kf|wBzm1&t_PqeRf z%7JQ;2L^2Dp-H)FxPMk7tAj2@f+ZYAjC+lvI;yHzNcj&4uvZ!}Q$bvWjF;P2ay8!?ee{XoH)^Pgi{U5`hq%S?6N_FXt?%lLt z%u8h>0gbzJIM+lbsv+a{vp0?9sBbm&jwI;I`&k1&DM-<>nM=5B-#!VQv%djyD6jd6 z-2eS|1HLwC&DZDDRG_!J#K_SA@ig7TlX3kI2-n7#d1!b5AAC}^& z^?G=)9WnPq4FAeYmt4)2%!5mhJA$f5R&!nU)V<1`jk<<95G&P67q)J<^8M%BpBD`K zY*$;9YtEhVAGUP_?gs|3me?O_7iiQ=dGk-8Jdfuiy=7~dwqGG+ySI5O_SDRY{(0AQ>7Ck^gzmxLTOy`o> zS}{I=CjEHEZ{Q^+O}d-7-?NBfYwm07jN?$HSrXftnc zG>Cm-HX$6`zvU`eT6gAP0j4F{##eRtdr5ek%{T{m3rSbRa^s}=b zItE4%tdv}@5~G+X(1n7jx$5XwpMWZlEtqWE%pf&7e|tbT*W_Fh)ld0C6PKhrTZpmP zsP|zk6mAhE3^JMt^*RLd%lXTIrf4=^9v*0`IFN3kU(?QFcq$^;mmKz~Dh-jvP8%g# zZ6vr%KdqHtq6?P|OW|#gF|8P{-M@Dpo&vy0Q9Vi0eO%Jtb}8#0gB0Oe^#+sRp4;fy z**fU;oUEI7I4M;nq@?EZu)95U(vinzJ-O^+Najwl{y_f}e{s-H6rtr%(gqAnHTXEu zW0#RlFyJH~!K7Z-m^OQ_W|Br?505sAMteD4aCFO4813S@Iz2_gU{;u{Cwy*P33GCx zE#DPj*vfFBJ2+3ozOOPAlo*Ih7=7gSRI4;$5SsIR(&tXEQR2(1z|TT-7mPBN>&?9> zF=}z^dxdRZJm&+Ni+ZbqaHkECl zNLHBCDHp}!561z~c+@;;nk|!xp8u0AAzJ=Yd;iVxmX0V&EC!MfB~{megDRf+Q88Yq z|1imMqIUmrs9>WViPomdZ?s;JmCn zp2g#M;nsAqiw1vlruZI3)hrr1Hw;OC6TN1+whFUpndnWw+GorJEu+n3nk?PLUceB77oRd5&`yD}z zTC?Yv`+2$S0>%149MV=D1Zv3;4P!FYxEq}pJ>pZ(D5#!Uf5+Xl@LZWevzV@uS$pcN znSGr_jxIp$J*k-+$CfTeoOJ{QDF_UTpfHp+6o`GHx?H)k`M(6zD_& za1dk@zgN0#Q9Ik{6^+V7(6a#3uzay(YQ4Sjb}&O)dR|D032m`2r8P4g<5jrWPLB!V zz*w#&Ac9(fHHoOI*zoCWqoejgM%I>XhC|Se;QGdJK;JdNtywpRaF;*8%4?LjrP9)jy@a zR6`&tN&skxt(2^I-%CHX=pUQ^w6=U-f26fm; zR!8Q7xuLO-I2}0a_}m-g4s*Xy36lVJbMKF|2y`+m4&`zu3{x88w`k`AM;E-j$Q zBEx}jcYh-=Bxd_cFfq;cKJ9{L7*IK+SyEJr9k6B;y5INaJ_{Z*E22%}wd8n|H1#w5cB1EC+#Xv*(Bx-Q-Trg`hE=dp?ygODzzK9#S^4hOz zL3Q0Ke~0{&n3y40usuDv^ho{nYFecbxY|HWDY9&Lhk=e6hH8XKuE|HRI!AJqpQ!;w zJi{;~WNsSms6CeAz6<&EAIG}G)o^QhIxqR?5#U>w2@>A_u9WAnDdY!lJ7{cd>{x0@ zy5M)m6t1ZV!_%Fy(G-8s8I1VE;x@Z1e(3-&?sB97W9#_2mvrU1*nxijZa6Ky$>$ct zk>s%3eL!WVet{MKDYek4_hA9N)-+#ppyYP0K}aEtDN=|=xVqvg&~|TlUZ61>_lZm5 z;Mkc?ekl^Jwp!U1_7Jj4#)^YZx|1(6!rx6q-r|O>ae+0u`-ceSk$%P`8vCWm^C6K# zo$Ft;WPFbr7OQfzz^SojmvzVDXURuD!#?C?1!FX)$4bbHU$TYUSY!nUHPD_mN2yP)Wia zwAgQ)e||8tCS*fLNz;d+)s(jc4%nsCvZeBydX>xNLm?Se9diOQeDRDnIP-T$KDXtN z8(L%D3-tRF77WK0L#eWte1)D{_sRL)TA0{knQaGnO+zv@vGu!f1u8+v01SxkOpw%Y z&dHeG)h^pg_H;2W++!p}y0;D!xEB#op3E*bQx#4rb!L?Lq$65aK~mNh=O3#=A+8KA&rw&VIk9(8t;STXh3it_(yBL=9R2GX=t`4*wC%fPh;2nC^#Z z9|mgOPP|Ed_w=%yFX?(TPuE{?EY&xIkw5grgFkB)2zxZ=ayyajI~#9$_F-IOR5(2R zi+u#*BK7QwG(-%-O6<*L!8TX1)T25_3ODX_{VLJza&VqQ%y;xi|7Se$E+hteqai&le9`MtwuLAi!d@czFB|1%5e*_DyRf7;-Ce&RM;>lso{E=&5`r1Q^%ceu9d zvD_1wFh#}sHTusCrQayRqPsS`4tUL!!;z=|vuSC>v47{ggAdRNoklIY0EFA`AOGjC z7HR6>TVQAcbsAn&uC3e3|7j<$jT$xJeG?P^rITCM|N7<;Ya$uhyV-T|d0e5EMx&7b zyLQ`63yWvs(f2?%n;wJzvASi$yqM3avDV5;Y=y-KAK;9Ez?i$neFjTc;efuWd1wP} z7X-}%4!CCGeogGOfX|_uANolIi+YYy&^`#z?g9Lw_fG21i~XFNsfT5>h(GW~U0^g) z)HIvoSDSII?d_iolKHlN|Hn(jD~e%Jr%MXV%Yx$7O}09k6p@V7qjhKD1S8n5c0n88 z(BK-vt@98M<7t3FFk4n3BsMPNPBGMwA)Q((r+Ys46Ped*yhilxeK!kNX2oFS{M*?2 zC(BL`yG4z>C_vPz68?Z;_7(WLs#qUgtNVLuKKwyNc)r1TWYGsY`C;n5u#AQH6ZHzm z#2RFP64BY(N?gJd`QyjC27LJGUkU9H>H*%^bHy|Ulp4j0E)YN<1Ca{gbgc9&sskLQ zu^>>}*?kT#;)2)I_waJfHg29JX{@Bjkk6;B=dpJ#7Pe`eVdvtL=(9XDQ5i@uVi=tH zl|qQ@^6j4G+hidR@1hI;*KuDngQds>?E84d2!Kfgzp(&PJ}5{jP9nVO*_Eodc51f! z#a__qs~$WK)1${Es6_naTO>|=vH6j%)b5Btj)R-lcBq2RuBzWcwTXK)N}0{v63WBKJtQO@B>m1 zI=0e=XT9J7UVchV#y*Bc!3BFETig--GJt3X@F$`>u2!UtrvX<-R=ds{CGLT@z zo)~2{G6<(*-xLpJa+Tw@bnqbi$s(eO?&Ga3pfXehCz2z~d)s~`1hnYenwd0!Yw1k& z=mX!+2i!aG0(PXVGuzhm$~7@28dRXqdog*gd~4K}Yq-^h^g+HmUla+>&!4qbUbsx}397&qI3VJ&eICPWy*1G%R1lGq+qSY~^-Da{rVw~nG3$xQ!IXv-hQcz{HXp<|}d#B6LkBEqQ zAn#vdj*tx+Gm@Atzhof^9o+*#F5Brjc}Qwi@@oZ^VxvQY<*;+$gI*;L|6fca3J&b! zSBYE~yGQJ?pJG(^Cg%_7Q+cPhS5`G@oH6R*xIa%y?u_b!;h)2KAA)!!xITuz6%mom zSC*+2fAG{j@&2&MK=8v!qxdZ?yzm8a@Q8j_?T96nCXFb;VQySA0B3#{ z?oW2?L8-O#yh!Ixh+S>2Qtj=r5D9G}ZbNhkV} z-m{Q_C_)`h)p5^7cGB{#G==7MlynJ5GTl?FhV{r(h{69@Y2 zBt(1rmYYH@ezRZRyHy}o`sy$&^~k^w3QD>z$+!JaUmh&(8O8`G*E-~uNpFa75OGnu z$ekWkN!V?2`GpwE%g*(4qR2Eg5%E|H%E}s)ZwvN}fYQe=G^)uq&I6~#V*^7gC)QoB z!92m&sd!PCxZz)C*m6ZRl?u!fvK5N%_tu}{fJh3n@_xrB1&@pJ@phFg0Op-+@xQC5 z$g~1L)e(h&Fp$u^rF@c6t@9bmkZW^d5Ri2h7M1McR!VlG59l%^bMc+>7w;W@ElNIH zcp5xvrhR(0#p!&oF%=Di%QPBxlQXJS^`-N?;Bnf#3rOH)uJk2w7GEvOY`A$6QGUo? z5i~V5?M@VrsTj7yK+48G3_t)y&MQyAhc{pPhj+w}!UC7LTFqF7>}Q#hc^nf!lsXGA zAO=Aw`Wt90PIy3icSBLKfTyod`{mks^L^M4d6qVu@PdNA((NmOxPqD4S3h+DxD=jW zqcjSz!B72X_;v1p2{?TWBF^GKz!=QCwb7rkqY@J zt{G9Ik1eU!e*4eZr(Akkm!Rf)XqHpu%F~Y9I*+%B)0935s^hr~UVkdP0D?hA7NRGf z$}8e|9+vE~pzF1|m8*2Voi07XigLd*HR=OxWTDO_&SMw86>yT)P1m($y)n#tuzdFsXc~a0YJF|%3w3QP{p>4hwXHMDwuCyG8bx&)5ZxKYY%58zaWn)F z_Grdfrcu`wXT{U)79;leRc0(GB%_S|KpH@9L1hD&mVsmE_(MY_!j*Vb_;*vTZ7W10 z<;Ho`6=CPzN?inv=tCrAMYF=G+~3*;tkC+r*>vm$El{xhZuc)n_tdI(9Rb=Y3>kHw zuw8w2IO*99j#OjjJ=pg77Cm-euf~_4!;7r!@=4$CCi_UAY^G4O@yY$X!NIeuzB+$I z9>UNunk|9Mtcxtw`Py#jTdR(iL8Sw3%$e+ZpuN-nyzwsvT$5hvzE@VC@q zyyCRih|QcJ+dnq*)KouZW#ZKw;2EdZM(E(U_F1ddTJZZc?lcjBA*dZ4&y#ck+`_UR zbF|%YMVY0^6aKT%DmHIgJguLuaK8bwD~_?}D}~|s2xnN_k?%~4{d6TjSSsc`=vE)l zxKcjVO}Vb`x=MWPxwFFpz@pj32`m6~6|Ign0_^-(CerP#71T}V3Gxpox7})Ec%4#P zcm3_3=JvbIX63UKRug9+t2!-pBKSgmeUY<2ycZ&X1&Zd-9?!}htoKgw6o2gAU$$#E zE4Nx(59K~2cu4M@)_Kt7Yyoh}fPm+8E)VBQx-yh&4T8()S?Pkh$1EaO68PnxNk|6i z1?KBI%WK%dP{?lzP`|pNv~m6i{CMGNu+bkzO)ycMUXikq^~oo-cJIyzz&ot$tuw7) zWK2J7Q$XMivSqV!UwcnKuPWrMFbULg6+|@j`YwtI701>Xo|(q%L0oYw?NOTC-dX?_!?P=DIunik5*?B!=~Fyw6axwlV1K0C6a0tu-lp z3uAt`zq@wT4V8?0IovUZl{--~T{7jffqgDOp_mL6t4nj*+Y^RZYL!UI9z9at>)8)L z1(1xyU`rq}RR&PlC)zhEh^$jqfPCdmo$w8b9HoQI5E2{#IM^xh!Av2D_Wst5sMmM5 zMT$+gBX=nIBVkrV{mjXPl3j^5D>F$sNgyg2@-5G@M8ylab2>`hz@bz2mea7Quga zb&slD8iW7X`4_mgfh9^m_dP?c9BfL-WiDi2Zya|IDdpU^KDPi))hU!s@Q%kDs}4%~ zH~7TFS9=ftYV^I-NM3!`qk@!{nUN?fD`t?b)J6VFiDA8!wh!}qe+qW)1$jZu{Ixp{ zcws5PVfxrTc|`JdHk9wAkD~b(9JbPtZR;jrWR|=S0YLub5t;t^pfvz!ngay4=E-z- ze=&gkVxSZs&d%f2BB=?cp*U91nISW5vvGzaN-UNe&wldAb768Aw&{jVCIA6&y_GW@ z|DiNd$M=yW-IkA)UE!>)`?gxsALwFe#eJ@^16Wc3V7bFxld*c75T4KwU65SFAE2?lBIU8zaX`J~pELC9vEtW5Rrn_A$F zO?80;1vZh{`HQjjF_51dDmXUc<%BlRVGkL<&*hh@x!Wo^6Hu`ls#qq&D(_RD}9jsX;S97{<*Ve76i3lx4o-3Kc3Zspjg? z{+57trj6PnH4yt=Vck^@)++~apceDXMP0VB8y2ldoTV(k^iOd4&P^=30dR3=z6W~` z)W>zqP3%x{EV&Q;!Bu1i*3IYnVvaxcDP5dezZA8pG)y-c+TMjAhtFMP{oyKLef;iO z{*m76mhO1e`w$`)ttPF2$s^9cvIekSbPA7Ik=;*KMk*DoLl5%;5q3!PwrRks)wrm2 zBQ4^28V_v$FP4Ib=e+XpiZ=k?*M`kD0vBY^+8ue3i#f3A^+k>9STTDIyfb>w?d{oe zS@qB|vfS=JFifD(U;Jb-wc&~ZBK0bqVqtdGYhcxjYW>j)?Y|F%{0iE0pM*S6IGUJ7 z6b;8f_rKKTpPzGJb)Q}K^XWtdOaj>_D)awy(99l;xvIMQ(}352PNNxfyQAR$TwI3+ z46nHnEPPPnj_vnf79IK8;KlV=iLkke?#ADhCQ2il=cD-d)sbHnMRoS}5{qJBBunCa z{@Aqef4{%x^BI$whsYWwg+Ju~0pheh|9(3-V0Jf(=Cg>2FEXh6{ioJ>D`|8&9?^3m zy&$B2b%Gi~`ilcLqy-}K_)Cdv!ck&?ew>d=qR(Cw_#SNUwAQ@a6580Cq58ur5hXx~ z??U>7`a&qq0mRvVA`K`jEf#H{p&4i<6c7;fc+f2DU({!jVj27@KTk!VU3Qdecz!%* zGQf4#KkSCI_sq8g&!6RN5-0iG9TmjE3-Jg^zhe^uxN+SW@K1FYq5CLA%r3m3dMJD) zX3otX+phD&5u#$JR~ZiJgFMa9ySYUauoKq32;?JZdm1W$b@#_?0&@ z$6B|(M8u|#CnhNV4wkI!j8F0qZrmEY+g$%d=7=5{L;z;%uJ!W4@N-R8*pLfUfXq7N zFBf2o*Q)7kA0#yASqQ-4L>z|?{C{-41z6Nw*F6j>qEgZg($d|fq9Uy#-7Vc9t)d_; z-5`P>QUWq`caDg33^;T%#4y0XcSaxY_j&L4|KW8xz%ai$`<%1)+H3EHiH)gV7V!Tw zYz7hIPC0>58ra9hZq(Y&Q(=>5WK}J5cu-9|CI#?=#x!hm#&BirS#zYKI$bNi%@xv7GeePjUjDu8~4ZC%aSqA0ubbvOp@*}HLmFlQU ztrh?;zY+9f8o>Ei0YRGB5`eoZ{MQAx8BF>CK6Y$tYBOV)S+ca>O=Q}&IyZ3sNgm)W z;i3->3D)MqE2mdtnH-fj%K6uyE&fcJyplQDG8`rRS*tujE!`eBc?2XmAiUK5TNXu= z;M|~JXtZXQvtKdDQo@0G2A!9Rrd7tX04!~}vMF^P($yV zb%YwKgLroDSc0_5;3(&(%>{gU>y#%`hAcifxJte5C+BUD<)j((+ncSC#6PRUk*u_i z9M(yHC|ct!|8B;3ut&3r+K({n%B}xD`otua;8kz?UXVlTef*6tv3a#?a2ok?_4*25 z$@;M8cikJ>PQA_%c+F5zh~h% z|De9nv{>>z5;!M9rz_`TE8NYB+S;o0Ly$&APUBo&u=966|2A0YbXbv5{~}Rn4#N$R zh=1r&y}SjUL!F+yi{vgln_X3Vy;{(XrQR-Nz|?fdXU!^nVTw{V&sO~by{2JyU`HqU zY}o+L0brCH_yE@1eQO&8QkF{IUGnXhZvZ@07-Hnl<8o2bVNV3eIa>63r}Z+>z%BrLzqd0a^C{f7Fd7DnW|UxdEZ< zEtwmH3&*MZ0PLZ78JL;=19{2`K)v?2+~cVtHf*>tnPHx7TRu}r>cJJ!MzHh2pdfPB5^u@!TeRxAn;!BE6U>#0t!Uya5G-0_JUoPYYC)*U6M# zt!h;Pd>asWl0aKGm)#oqfS{B%z=N79emdKzt)UrfHnjlPxa@p%6z_?|A?E?(3nltE0){c2GlHm#lyJ;v& zDhH@#6~4XLR)td#L$aR)#Lr?UCw{Rn={g_){>W49+B7-Y2Q*k#)T#nN(K@pf3a$Yt z2e5h^rrqDD=s05%t{}EoM*VoZMH4E!i5_Ss^y{+Q@x%fBOY=REJGCB%SBYLTVBmhN zD0`jxx!_w@BeRAk_jRa5tgnJ}a)qru6xkL3Rp6m|hQ_mm)RKB4_rsGdaW6h#KE_>F zDDbJ?38jnvmoQ}l0L1~x(JVmTf0HL9DwBRi0yH&QUR>6T%q%C1SSs7f*k9~<4Y&

FJR6``a1>eWLH80%_nA4p#%%uL&NG{5qzzk5)F|Bw;R+sXzUH~0bCKU&n zl|r-9>yg1&j{rdi6O+kER_wYidjRKz^I<(%FNuN91C!dL@x}4nZVdYffT2C<`z%5Q`ohIuO-oNUqk8zi_VM5v@!ON?)0KH&lsP zM;r|!KoWfcaARc4VLP~6G{OHp&bt6JXjg0%T(7lJZpSc_V74Ik1NcPo(ovxEOpRwu zk4<3n`E3c-u^n;Xqg1zEq4@ezlB;hy=<|PswLx;J9Z;EWXxrKb0HR5|PPqFyLKHIx zA+w6+39{D-Sd_Ny_|MQ!EiDH+uLhaC#l1<^pEsb14oqqLtb}Krw$ZK_lWm|qRS&n< zc=Q%Ttb_SRn4#L~8f*t79P3B8c08gz0nhjbLO1trXyJYtyPvCIs2*m0U7?!T{ zpk-u8jpHXe>i$bHHc(X8)@dPN5#m{-Sk&g18&y-*f(=Y#I6^5bJ;#0{EvM0$l zCyS&zGAbgGbjC?5^;8>QqMC&RC&tOR=kNaLU^Fk+-9@{P9%&xUwU^J*0t6U9(*-Vb zo1igXdUif<7YNq@VF9`=Uwyd@z`gCh-*S3&6ecP*ZZc`KQ30nHBn(~|a0e-k8&CIFH8 zi(ZYg`!o3(%;M>kPSZ&*1Yzq?+T3Vd+EUQ~m=4G?m(2h;4|fKTy?#6}mVM{|x*OjA zo@*+1)-veJg8{v`9|OgbHdO!kX0%>|DIXvv^u%heyn7ef0g}-J)K8~>f|MTykZN?B z<2d7gEP(6=l{d|9_I{p(?GC3<*1WuXrFGg^2oHY$Bfs8VtX;lC@nNh_JU*wBL{Du<-!cv*?ubIX28zo zOi*N1V0{VqkgVJgnSF70tA>lG&$;AvyqK0@%Wzj2zHHP==hyE3t`qiB`<734gbFl( z+P5s+q^KV@h718NP`c$e-CJBjuK`)}e|S`}68pfye|S!(>{&1Z1dqx6L8^WfS$Y+EeLi5U+txtAeI1_=77oL0sP3izqEZ!itr(B7yjmbFC_kdQFQ80CH&60vdMY@ zN9PT2aTjE#=a+w(Yp$H`x$m9i-3+d;VpSZ&Uqtrwf#llsYZF#&xf#bN%84?jAG>0?(z745|@o?b(yY$qU>JrW+GF~>xWhr0i@%e+ioU8pEMq9DSyKLthW$P74&kKy-6J7VX)^;IA&GEz5U=#yU*7zT}iYnD6PLjy#93fTot^KG9nnQi01d7~fU3+<((plsJ1b z_w(brYu)EZXXBI@Cjf9`J{U}g&>d#BHk8BS0Dp_mu<0Dp6*P5limmT&oakApSP{7W z{Kn!r)y^1N!sn=LB`|AO9=cUeG*N4Q>2jUF5^%64J?G!d1{|OQNkCH3y&1al2FA0E zEBouaYf!qBqIzboSCL!-_mh{6MI4oOUDr1D^|$s|MIyP>>VPC;@01?PWTP81hMRwI zAX#tG5Dqe-Sb+FPh=pOwdNnG7PIL5x&ME4_`b)M`R=3ZwlVQ5qJ8s2bH)jWwVO<^y z0JB^E9V*1DbnYhUkJaHvv*nC7930VEXO~~$n}P-1FwCCf)- zudw${O`iTAhK-@I@fvU4e=%&vhyNS;`OTE~asFGBqOiIE?QEckj3r(GY*#=vKe*}h zPZW&#CKmZ_P3gt$s}aO3FaL*Z{X5RNKS$ejKaA8&O#fZmN1I~|g7o{VAzx6F!dCh> z-NnZy(sqQ6?e0CD0Sdei7couD}PW}lU1d1HE|7D23-$gJ8N=eYTp0-fO z$7AFFMS}jE8AJOw>oD(dC^zjYrvE4M`p;#tbbY>kjUb|f4u>joFEi%vb^Upr=%u2z zZ8aBr*^4a#`xgc@C-5L7)B9>{boab zgOZa3Rv7mCs6Fx-f~-JDP$TQ6Rdo1{;UZ2GtyqF{ok#SJ$S*a}YgxC-93{Q6vjuJhO`$t;mLHE8jNKO#RilJ{bD2fJ>aMnp{ux|H_2^VpJN9v zG*@+aPml4wuykLUe}xw8^YuEViE-ElKXU|aXJEvTK=G%3|Ayaq7r0Iz*^2%4cMH(1 zT!*!|F$o;Ri^o;wK7n+Hmtz>^eQ6a=y7j8P2;^g^(Nm5MT+eP99ML%oRZ#(9h7g-x zb0Cbfu)h9qP`^qkiD#0#vqG0g^~CcMd1GH3zYbxa|I>`<3;XVpba9x=SQ$sa3I5N| zTGCA;FL;4A(Q-sccDKRBh5dL)7-`q#;rK4}=~4c(J?2GdW_-A@6}8O#^o#y29|Yy? zJG~mpjbDehrmH#izTI3om%zIZ8zER9HQQ^$*8PR^xx*tFUUiv&(#N5FM6kq<0w*{;^!B^$mjPwl~*v zE5qiy&Gs^((p8pw_nv-IAN=(IkMo(tvX~w@w^qI%bWXIB4(?_`SeGfk)Pbzt^!um+T4Dk1#gOcGG{zHV(UYzWq(p8Q2TTP z#!SMYgvkF9zydz3IDK>hSW?FQV}pUFDXRTFy)^FEyyevh+$Ikx~rZ^1q zk=s}2%W8??a6hIuS09)XUXCATI!E|+0|B~r2(Q5^kQJj9FOKo-EGbH-1)`ZOibEOS zo{y%5Cvw48>IH`a*wiypzODUOh~=iNk}GNtAGLS&ay1)RjUAH$;~hyQm+*rv{OK)c zzBDnXp2B#JY+CoWn(}7|uI@%ZWQ{+Hgkf^Vkv$323-0wS4-K;@zFg(CNC$uW5oe!M z^UD>S{iS@B0>YU_zvS}(Kh1BZfifx-7MoBDhZ9M+V*y}Y<)!MzmA;8po3;Z>D#?!* zMuf-)lGE9vXl~wgA$-XI^ROCR*TR@PIMdp3vlrG(y?0F3Y}4|H(5Kre{Ne-~e(<2> z1H9?80NQyVRN4u>G=i?Aj9K`ZRFu7H!C}neA9P|()76Ik2*>}A3Zppe< z$xim0H=r4SbaxDWZ4idXOEKfI=DT`rS;*?9ENFplZ>om+{E*vY10hm5A}p?<`)mfC12>xutiWj?Jdes zLjzsgIC*b%EDGKf=m%`Hq{r$l@aQ=81*Bj=b7ka%G5w9@{y~n;8zZHjD)+Kwuy4u8 zWIU0N{GeJ$Le>MvTyAZ^Mw00Hnr6XnsZsDH9~sO&19R{4jly0Y$m+E5Y;g7Rx;hU8 zTSU%&;VCB`b+G90acPy_8{tnk*l7Ojtf;7%#AkdT<(4HVr=rQOwzyxHtp^9|SS*K) zSO@`wr7XnaR4kmVN72%f6$|J}=D49WINx^%cV&-PqU2Cc6OZdW)=i_($c?!|g@cu$ zdgB0~TWN}>!^p}caB7w#=$*>=zzje*SAio5*$jc)x{qVD-*`!P@}R*K9rqIiDKiW6 zF&sLpvzXl}YoQN%wsy_J?Q3iNh(T&JGQFs>O2$6_8-_>?a9*44iamUQuGv&WE0b(M zW))Me=d(ldddOiOpvC~j_y1%_Qd9e0Ov?>Z&ERMFdjf(=kPsPsrqv;f*V}T;LLxFv z`#v_>JO;|ZatifJq&VXWOt;oY`5obliw6(0JU2Ig-GlR|%~yIw9ZsYSvrIO5a?3~2 zL;FNGdQ3iG4W^4hQs4R7O~!Q&qzgxI3R}mq5^_I`0s2up&CWI_&XuWh?qZ>Y4D*#V zS{NOxe(lnHjSFnm41qZ*C4XLl_u7N$PrB7+c~18KMp{U+-}t`I`%`@mW%Em6uRN2f`fl5YC_ zLFs}~%35D40&^JyPKoBn_bevsZNzK$7h6Y1qrf!17>ejrY4a7r9voB zBmWf+j_qaCUVvDFLJKRgGo)x+lrG%KIQ1iemLm2|asXj!4=SY{Tx`yIdyr|-cJJ*t zh{-a2`|h`Mi}zrz=m+uI=%v@pjXIp+;W*^R@8|A^-@bMGR-?kT_utb!uB~|@(JWuT zzKOeavjw)2L6?&1w6KNB%wMjq3fi3|5`|QDh-q&l*?M-yjzCX1&n6~89BeY9UU!mP({Kl_YusJ5H__wQ0heKrx z4a%^CoTl0~QFw*pADDn%CsriAY@Db4xPaY&1jWS}-mGs!gm;<;-%Cm@Y0a~7 zK68If$ZB=0wp}46*B;3LSqbQmp3Qp{+ji98=jW%H_vp#kg)9G>QKPlmSeeRM6hCH` zm^;r-iF$1QV4FM1PUbTk8=&4B^IrX_w_?W61Q5Z%blF&U%Cg50SE4j8T4m71Dn($` z$RKsngpf&wInFH#X4MxH@uE5t{Y|RyDJ#5X0WPv8mBK7KE$ldSW7%Ia;jFfTT`H>@ zR@~cLf>)@;d4Aja&+I%A0{$u~IfJ^c%WdKuVkLSgUZukt35{5|ik*nVObWQ1K+DOm zUmt5<)P;-M2NtN$o~doq~8am0y8p4<0-abou_+ZF%59x%k|Nhl5i!wYB?!P@-NS zC+oRB#-g(=1DS)UB=dZH5k`X9jDhs2W~H`cUt(FydLsAM6rGqk849t&VL#>oq=E?K zo7-ce+J}c@f&3ddh4$0DM|a`XX*X}a-<2Nq-kN!JQEuU?kiCQv*+fyDuHBD5MwL77 zFc{PV(ZRhv4s>stC@qjn%H2zMUhqC%D5pO<{Nxh*F=p1;e9C@u-SNw_lCE@u4Pl3# zTZE@4Q;yl(CM!Q2Ak-&Xkj4uRSQBM6$0`TX*=I8H( z#j#BS|NN#nk!S43&fEIMRKS$3v}DcJ-(G?T2L~&>&T0?U`v!X3@*B^?1JPI$jrJTX z&`g`2uf%yu=}GtA;_Z8-LxA#UoA%0773j()lwl`o_w=)iSzFsZ6qs9b+vC}naPZ=I z4ZK34sls|KD@K(b)rVPC>0igg>u%k=gIMhCO%xI--v8~Sb2$L$GM)>yz@P7dNXJHG~)9rm2XUn za!cX<=Ha2uZU>`Jff6r%`-c}fGGzP-p~me^9sKhm{eiFn{$}S2dkbW%MP#N_sBGw& zr2Dy${E*4pi$eEj+$PLn(aM-8>Atb(^2F!o_;dn1R|S(&@}gJX{u!U_TqksmrAm93 zGh*;(*{;0T&(h?jFXa8Gt#PgUii+^9EwvpvM$NLo;84g~(B|#IIXedfW1xzRgGcUb ziSHd+EQ%itbmfTY>D5~Az1`{~<1$Ray0CyO*^ieFS3^UA^kpRT1IFwOe<~nh`opHj z)Zl3M00cjqURE-)GS>(QaBkhY^%6KVQz2&nK*q~`n#cvQvZ16DvKsO)YqAkyZfg$< z3u|={lNX5wI&}N9)h3nBP=;ub3_685c<{94q7FHZA4s?EK@ChQ^(j z@@y)JS8wT*&QOJzamVwdQZlvf`AJ+dZ1N8S8oKgc&0)4s2Qgu{1Km20jiFy}@m6PY zcoVsF%+5M`QwFVp0<%&&WQ(!34441xg|F|FuT2uCL9}Rd*;P|`SMzP1rb~i?f(|G@ z;Xwn4IkME~XDMy+SCt-js-1Em-wWkX`_*68+&VZYTS^}k1jq!1&xX3S`M9`fDp7L+ zyFl-ejMvNg+G+$P-%VOtl~=EkbGQr)S$P^kJEAG?y-527@Yw^7Brl%^wSfV#9nT>J zD@%K8>#O~hAyRsJ^u%Id=_!LBaKkc;3>l_`j}V_!@{}{DoKm($Y)6D_&hH&<&9(y{ zz0jckYJl9jN6o&;_k2HEW05czY{?jy(IGslwI6MSl+ zuNJ3X({A89Ft|*ttXDKN2H_Zt0r4#(BQxw8QTO1i?A;}L`axh|@++TN%Wtgo-vxZv zYx3oCa}dy|`~KM)=SP9s+exNvp53o#>FD>z;8=mJTw>6Q#DO#d3oxlS5}ps%)<^EMu8_dSz-e8F@r-1s(E!v zj5EO+-`?IH57y7gLskFBM|6^UtDHp<9^mk3Ksbs2bHoEL!rmIIADRpRYci_9Gv zW!sa#1KSu*}595MajZUmin5xL@iBivQ#zC#WZ(+e3U zpTv}-?Y<02JjS3O*^n)%?;o5TwM%q|4Aj!GC)i@(Tm6T_rwC5XBq+PuEwGPmO+ye* zU>ZQz_E)GajF^Vz^-fMOKBMG~M-%SH9~KmFHLC*y`jWVvtK}T)JO&I*VWj8h$TyWE z?JMtmcO~cLu@KSyJWZJ{TwkaZ01q_ZfhPiOBd#1(nt;NS>)4{1Oa zaw@F{!z&~30-HiN`%v_9szZjgj{T!wv}{^FFaZJf&_G5c6FYmU;?b;e$^tQRnLyV4 zM753KeRof$v^e(pIc9qV@%iNW_Kw~uD|>velkx2P_omSdlJ`Q@jU4uggf`XAxmtEL>;Dcz3;VqIlzFCb+lkA;rh^ zM*;UrLi^MC8G$kLq=-}Q{G40tiH&bSA>hl~T{DxFdk91Y+d0W8-8o|a>7`3&sJv!$ zXLv@fo9kg8Iet6P!aT2aW=sI$r>gAnj_+LF(Ox>sj-Vu+DFyoM#KcGY3t6)6T~3ph zLb4uCjymGvb50{kOGSZj5dLmXRmH2O3R{S!XP=ZeXQvmXJF3qrasroO)NW~cF#W<8 zIDSc;JMS0`#GF66joML#++F%II#FfMF+ZU~s8ruA0!$YI4abe5 z6%N1mApFM%v)mWcuN7WztnOjAWp6TXuEV4Q*JqYFRgi$N?hFA_YigMor-Fe9a@Z3 zo*vp1;8*)%;gX5JT&l{&nF4Uo;8o(56E2r7Uq-D*K(QZXN{IrL2fo4D?9@v#*(@RQ6|qPM`MXgr<{F?$RS zuR_6}r(9(RImB$Rt!K3fN1PT0$tf$lz!y}dl1~C6;+-3{>%f_kbYIHXC?k^i8YB<= zM~i+~I^$`et2gok5c*Til6VE8FSqjhW8P_|rZqn*2;1f4fO8p| zZc&{bnJVNeGcVB{&9DRm zl{+&&h+o^wU47*Jh5Dk~KF~NeZrg^DuV=|t5R@Obl*f7-RE0v==7?t~TVCQ94RJlVz7Q)>rPlN%evsTiFxLx|sj{GP*+ zG~49JjRgccedf%1SvF-CH6pHRfhPU*wvC!oPLPax2YMiYG;rZ7@hNh6AE0nZg@H3X4Kt5J$>sck}fDMAy675KEoh%={u-0 zs&QGPp*Q%+5is=(aDaJ?Q?;Xt;LWxSqFf37gfV}L-&w=D^PG1GxhyM4@N~;fU+%3M zCzeHk{WjmKs2V=Vzp=2O1n+V#_t^V*rD~*N(qI$T9K+b0-364B84bLCyx9W?dTP>O zx{&iW9ZmD-n+Ga^?0OY`@%?{S!hzgUhlnac`}gwD3Izj74$51z@zMnYgK{ z>`kX;SNVp9zS)f>Xb+}=es6sVg)o`JatbcPE5NhQt~(C~yUMY{k1JE(obJ|(l}tiB z@nEW_uP))hLrm?b8gLko&fhsVrz+?AdQwTfxCJnKb(d4CzC<|iI-iwj&q7L{e&RB0 zbi>IOvU1!Y*{3@{+TeQq`t|DECsG{5;x{y?l`|JhPnFx}5VG#OA5)t7{O1Qg((V`* zF0S=*S3+9JaDNnHxZH?#&S^5zVX{)Q@uAxE5l2-zCYmB->|Kp*FMOO&rf~IO1q4Qu zTe-ebY0thGrb3*nKl;Si_Od3S39R?EdP~csh+D1EG+X||5 zZWp+{r5Um@UOGuoZB(l~TC>u)*|^fEy(JZi_Fz__H6_Ru;UT z-;V>5>FHh$ur5E@x^kb5BgLV9F2o0K{p!4LF+`2NK?y%|WGKO&U7-I7bbUG#2G94> z2iIWVhS5AudMQu!U#q{5PjvTg_1biScwu8B>cdK?Wlsw6OL+I?xqSc?om-Bd`4Pv?T z3Vn*%s+`4a(>h`?IluO5O{j1GgYO3XjwXVfSTgYb9ql1r_Oc?Bo}+riC&8F zrjM)+RzIIS*Fvm$dqVN`+Sz8Qnr{VCBKP9*J~5hS@#27o-q!c->m!C zi?6tT$8#5qMJ3~)1$5`5q`uK`@J|2?>K|_uTqcT0^FNiui&kb;rz>XHO}?5pO)rfL zs8Z4VyLAD%nW>O;YHKStKAYcPiY(@OfXz5{W%~HT5%t#I8r~m2T7aOoljIZ1;?KK( z|2L+&>K)<&L3c+_w)c~AUlklKe=~Q(uXXrO>h(`n7Z6cKgba$c4QC8pkZv88qHLZr ze@6Q6{|McyRN7x@QgV5o=zg?t6|OfI;_x*6`|h7tbMZI(79pNuz|74*=7xE=+!E7v z|DVM6?^89L{qjYnfu18&?7~U9c;)5gO7w~UxriQnCg&lZ`x!H)r~PT1vn>5}64J!3 zZkIp7Ztq@VA@iwlmj=r7?T+bV>gz6;`#YbGd~t!@V%gS$WuEv?yBr_uGmWfvHXF|y z+V;qfit=)bWj=%ML)usTwp=nF#(y)wv=z)u%XbPeEZQY+3Uj;ahowh3Ld>OyfQ~5X(RU;9*4B9Uti@-J>Q){Af$r6m+k)I3Jii->jpocVO?Lca1x@uArTUQY24GR0LzWj5CjBFy(TZbV0M2E-4}UA#X!x6 z83gwB8j}XKW`l^cavyQP4$6Hpi14}&Yn7cQreL@m&len4EBtiU*yQ4cW5(&qjdKp@ zLJ)!u0CmOb7m_$`HWtmWy@K$yyRf12PD}(-?%yTRpvk83-IZhCC07f+?!hRK3Yyhj z5?Gk7#eZ=@|1eN)#LGb=j@|P{6U`x$D0dR`n7J9a{{x0|w(4L7N2{)b4Gg}mTjxu9 zdCplO?I-61q&pdGJW3tJ^7_#{)F}crxN@C0-p};M!waCoM@5r7rvbuPC9vYw0qE7K zK3G5_qm*yl4}!YMG5Kv#|8ban&|qCN^1V!|v~#l_DQG^}bOs}NsFr%D8jV>@7870g zq4ov>dgbO-`sL?36^(yqG(T~2#;B6O78a&OC#Oowkvo0L^jncw-p3I_pmLT zeM_6(Z%+mc4``i#Zg(iMG+VnsAtGfaou!#|S^>AGKjS{I_sTObY-eH2Qs8e>|vwWPJgH1x+OnQ2%&b>B&grwW`s}?1S<@ z#@*{9?@JG!(o)vU^<=C#5rKE3ibxt_IFu5Zsc{Jz3zRU$yOUYA?%Dz?{W*)!MDmw7 z{p0YsN-17nd=?R&OW>)w_Ug^@O{RYz7r0YhP3yL=ee>;?>H?Rjqs@s8q8u)ivUtAi#K#Ms{)Fm^K27N1;4%khZJpzZHj(br6H8G!>N&M!h9m-ZD zKGmm|0eSiUtINH%w#l!a{A>}6RinLWob)=SvzGna3Sd8av0v3Rl1K4mSnz;BaMTO^ z96-T(d(C?XG)GIq_4&`L3|&DddI^`sE1)N8p8DE@y?Z_r-V#`q!I#1O!1O_eAabyS zu)adav%}Tk98x0%YMo!_=xeB{BC{{nY)IfnU@P9;C$a$LlCG<(N_I_X;_~vOE2D?% zsdO(l#4n>P&Q}Z@iF>~G3jcz9QdS3$w1xwVrmyq5Hm|~=cH<;C+slRQLDQjRg*9Pw zuDeWTkP1+n?}4^_U9z$>J68>D+YavDG>!qNbZ7n6T%JCPgih8~?5-p0fhfMq*#Syaa0o{@T;&q-1ncs&Qr-=;q=8R@NBa`T)I?jfWtfcR20IlqFr@ z80(%60`s!QZ7bhVGD4%WgML1MW|Rwh!s`cOYC!2N_pIh8uurssEnwlZl+w1N_ji+= zzDFUantMSjrHQKj?lVp-fVxQpoRfe~9n2CUk#7(PkCp63WC$sPxF^IYj@Wd=$;6+= zi^W39`D)-Up{62od2lG0B;l;dj|U_pgemz*>1aZ7a}^rg2<#FphO1c|`#q*jTKdZd7Hj>}A zdDEMYVVm!|6H88+*~?5KY6Qk5U6kKY|1pkl&C_8{#V)|M$#?(HrUaZUAN(hydmvHO^Eunk(l_L8IQEjhn83-cc5PyICS72C3Gwp;LW;g_r)29#>|hW(zL( z*`$PLuJGxucBV2Gz%TMG7gvPCqQe#tqqLUFJB~$gN|!Wyai?zkBKwOlItl*_d-2QJ zc6z?;6e-R+s#2w0;dW{Mp>@-)DUSrXDsR`_@TX5}js$ z{HQV9?I5rA_Q!*)FI%T?LmqrZ#FY5UtOL#Z6xBvMD=-w3M^73aJAo3g>g@9wpIcyQtv<9is`e2FlzP9}ks7C%OLCX5Z0bijn>GpF2ohD1OOTqUfJdYTs z>%dx3FVWV<;y4X-LayD(@t1Vi0A13;I?b0h-}Xb#bQSKkyLyIQoF#J_zxQb_hPT9$ z-tX?1U;m|g#IpuZjED^Ha)^dSP-o5B|DJ5kOy{*QY>#( z+X*@P!(KQ#8l2N}TSsdA6uczzMe7x4>Hqa~UeEyHiiY{scr0CwvP;A@JsWrLO&Lmm z0E@!-Ps$X%DsP{@C6x{R8lTJZ0B^D4v_Fy8;`O?3UA>@v->tNv7`Nuq6LE0hnG!P@oC|Tu6Y`?4yaikq7<0j@1 zzxiU(8%vBoQ@Nv;pg0XxSTgX6h2uqK|E(`c0l}F?fu>6X8m_KQ;|3GR3C_7qnRk71 z47W5f9?x2KPG-#uD~px*!s)P`nt z9FdQ#PL^}x#$+9f6Gdf)i1x{PNGvvkE;vsHZ(wD}1%<8i%6Ie*$C~8FSk0bsg4J`c zb)GY9N(W4jO~b>+Ss3tY*grcx^AORFNOVQlmj||zi;0HWZ zwSpg^c}`vN_wxxYddq?Y?fM4pgU;^Q@wG2dQb9Z^ZR^?WE&!O7qmdMS;>h~*d+&%K z{$<#qysK9?NrTKRHkHVNAAb9MM-mR*oItw4-PXQ!P*Y*saJwL6$(gD&1$ko{h!W5?sOcXILw7i#<7OVVPYDhkx6 z?))(hV`A&CuSZ)fFBSEEKZE?o-HWr_9{OADblpM>9~Zy9#X-z0#Ufsc;qSWt=T+%e zYrUd>P43U@;wMut0ZCIa)fy>j&_XNo=O3&avx@%ydUPq34*#-- z29eB+tYGTT_P_Na|M|3**%1QK0eZe&zAO;;|2TDeIyZZJi+Q=}?SFHR`vj;%UX9wR ztxNpx3u28`)s7(N)-KjABEj@k{jaaGo0W+*tj>l%#KUs`_f5uL5w^I*Z901Pk30P5 zV`ZS=)XY?uH>Fq`U%}{~-r0Z7XiU!DF3@7vX;<}}@Lx>^b>2y`bA?Rk;%P@b_&)*h zJynVboZ_qO@zj^q7XSCqBfba#5Rq=c+T7gy`t|E->o5LwbFT)pi|#&ue(mnvyZ0YH zWdC>29(QMXx;pq8{tZ?sA(A33g};>S{|rV0*MPY5EUOULjd*PB!N24GpC^Rq695Tf zGphW&=>J&p-*c1nI=H!D6=7f1C9r?m{ZD=6pU+*l6iZb#t$J-{`s5$~>(2)l6U~HD zTLfBKS_DKw|0%-%eJMRfZIKIDgr;FQ5u_tlZNBksX8@upsqeNE$qjR8lyV@i16V;G95q-_sW> z&HMmK`&rcW>M+8^#RcnDi8t4|u1HiH%3T&>TqM5n)p_>PwA;On-ze^vx!Vabmp3RU zm-p+7?qtzz8p?)BYIgtHJlG`dM$hfEtk-Jpxp@06J4W=tapnl~@75dBN%_jmK`sZL zi#$g%y{Zl-o!xHo#7o&j?b;BV%M@7$bs|zVvs9*;5gv6A+ct0=xAnf=X>d&JBU=HZ z^vzbE|2ngZetc+92Y4^57o~}&A(#9bNbLC~$?s}xZ-jN%CHA80Mb~+Be{U(Z?L~T| zGkwWb29*0yw%18z9g-$Jha=rs5?sy~0^D46Lu zTPFVJLXUlq0~I^I0!ITgGe2$F81Ju=`iVkX35oY!n?2xqs}WX?*R97%I$e2z-g%Bi z6$zsIYDR^X+WMnK@@g-**qkFQL)j|4(rLu2-cgi0*$Rp+Ukbzb{{nHw#Th~667v^l z0rT%E>H|I)RM9_DM~FzuUt+Tm+MH$CHZGjHdpNN20|NeJ2DD>PJ*6N(xy}jkP@JlV zu(yBktG6C7tPz?UM3&Wu%XNyP-^%D%b5j7n6KrQi4=`)BvG!f=KsJwkil-jyFI940 zLk_WPZ_FE42~h`~4MF%2tAayf4)?wo@5Fx@KgG)6(TgU_oPukQg>oxAyy>|vl1e$$ z`ssP>mFicc%JZ8(SNIH74{G-%Sob@s?z{d7Iz%a05Tf__`I@Hjp!%YZE|zS-O6lZ( zNYDySyS%PN_cX6%De7b1d5yUGWF_`ZPXyUGyDGc?I0M!UR|3o6`&TI=pV*cWH)iWLV*>+g_!VO^2=;_(&p68)cuQz(ZcUFEJo8JIkxEa3@N`? zUX3A_zUM2+>Wh}D(d;|}>J+hMHhh--Lug1qslhRQd~>>5R)(IfVf_t;ZKn*0fGke= zfm-3_B#c4q3+H)L-dKUE!D6%BH#?~79VaU-7u)%qH7lND)6vmMkhp~JtngTkpSMGV zz`VOJweu`83&Fy2a&*fEqH5So+*91it=Hg|X;e!?9s5+VHC=!Z;hR{aAnT}>v(q$MN-Y@a(f z#Q6x>5BE`$sN8ERlAWEUl5pa(!1ceg$BaUGjhP4PH^hOpaSu5Za6l*1I%YhVF{yii zzLGy^-1lu##lcZ#?X)Q%;$Z_!u+$y;aR)wi>ex;JwAF9Op!PqFrh6XOC>r#MJ@4k& zffU>wRNmZ|wWFLygF<5rS0XuP$O8rFAk&3%JdCMJc!R^ zsT*v`j_pYWehAj#f%4&U-4cpoL5gAu7L2zQ8~Tm_e{pI;!*w7b_E~_hoTqe-0mOA9 zsM2L9nFxA<5-89}{(Lgtr8Yk{Fj+&!cRzfH{#~Odo;k0nP$xI7>-?>YgA=OiIJQT~ z$twb>HK;@HnKNse-s!4V$soCp{D!O!{bFDmW8GTrBOj`ExXh0G^w5{c-UDB}`Sevp zW_`Tp5|oOMFVDYBI@veijY{mjywx!rtWc4;ywwRps8p51X)_Asi!VpRGvrNPPc0A4 z6pc;j4pl!7c3)`A^KZr_4)woojFtw!6!J%Rj>v2xNDS&-X^mjEuZtpt7l>WGlg5e{ zgGbHH+LLM)GD@_$-y)V5k@D4U#}n6u^7gHFLyg{rMOm%BaVGf&s$3NVQ$((SV%LX( zVo}qrOg~GXMl)=s%R{ovsQe}C7{Syx{ZU<6<0+j|>X;^gu3TssU1O=wfrbS9i~=@I zC4U$M#OUx|ZabzAe;PDU%`C@~zlg^irtBdyS2LT~i(?rrzxr-x7#?|QcNHYiJe;Q^ zG5*L-X4ab!+ZVPNuM*%V`q>Ywiog>707$L&I~jy{%$*%9J*T5nJwu#k16{|b1$I99 zYE%QK!ClivUk5T-xHY?vR$|nokL@>{XvT^=J{V_Sk9lV~TBk-d>kUB9)Wgx+AVoi7 z&EM(Z^`U>-dGD|W``hLmtW@zS*c>=@DsCHiG0t}l-Z7{^_6wqcb%pefSjV&2vxBR_ z6aaSxh_-82o6gbsOXf3fh&io5OX@%C72;>=H}(Q(MYqO(P&n}ZgT+9=eEM0aA02Nq zROz<$@M(ea-B1bwrIp!GirG`_$G|^tq8Z5sAOx6FH{yFu??9tLMX)P;%+bIg3^hQ7 z>a90yrtbMjZm+bxq!bZSl_FHZA2k(pY#35Z=`#s#9x>PA>M!hc%Or9=;v$o_u8D4z z2oxL4(Mm-3^n6}nP`uY%RB1ibG7i5wk7>aZHJxQwv&0bqW0WFkS*Abz{A4&3te8vL zAXT-}Cwglkn?KrGm^AbtUpJ@WtjZH<;mi!`B(d1zTW3Bs6O+@c6^upg_!Ay3uOFsk zMbb{hb1f-Xcp|Zn=%tinFZp1mcD)ygm26pK;T}4e^a#bO)2j_C#pE zPT6#ySc%Eyb^+a5FBW3Zc>4LX2*Jy8^Bt-GA75_)71y>T3^&kd2s9QTxVs0};BLX) z3GNVrOQ3Oghv4qsKyZf;T!Rzb9lpMAX70S1|IWYG>0YP%Y^$@YYFE{+U3Ce}6v)^g zRKuLKg>C}Bw=oK<6_r;Fh3aPLE_N&8CJt+qtJ@^d5N%Kj{oU@KV9^JP@49r)KO8XV z>Zx43bfnV*kICU0t;oa z&WvhY@1k>n-*zYzwQ@KyU~z|*iH#)c;qwG*b6OA&_xouXk8C| z73zQU=^;wAgWss)IDa>6W>2eqga0p#elqlJPEyF=!y$S^ZGHwhdbku`E<3P$4OfpD zTrdE<(1{AQdO8|x*1DO06F?8dOZC#2wsQ0j&K`1W^Vq@OJDWo_iUMRIMJS2I1=Fin zkUC(G$U%KXNBv$I)@~Fl*C^A9+gFEZE|Z@J99+7JJm$IFkqx0t0g~1T#kj!8wz#^O^!OdxT@h7ZpXpv149H$3~E34*)AC~=vJw*@!b$xco;WY?#%^% z`!>_L{y8vk%l^lut49HJk$+Zrkl zT;{?LGCD)r9z(51?mpEi|C;SW?P-xt1lv%EL*FwUR$ zdi&;p>`Aa^yj&Y855o)6>1t zRB;oXVR7`al0=TzyjFQ4gUocG=bi6_D&&!_O6n3SRA})YzTs=MwoTztf(qVD?YGTD zy4|Jqe<^N1`%&nAKL(}}nxIC0CPk>IO&`=0-!{i;vP1khn!L4G0&|i?|5V;IwpJ>$ zR&@Po_U(E*x{2wzt=8%Euz`On9<#d-Ztr4R3Kp#8WH07> zYfVn?J$w0+lNM~cNGe8DIW0V9iA~I=I4R6z*E%4gi)Xh{rt=>8Y$%C<`Z6(R*)kLV z-f$2VCD7)Jc%VtF=HNFu&A%iosNe|L$fAdrc(dC` zs*No|Zb6> z=e`8Zi?{jb7gwZ8(Ts#=Z%C=B=QLiYrnh*Y$_q5M@Z*E-X;utW{o7rN(*05_dmbz$ zy?x!dmrLS>_8{20!Qtrl18!qQI0Z)fH;zYTzR_AH)NQ=h^t5v_odTxVHY~Rt^D?d0 z=aj5Hcn(V5Fw&K`olk>M3)p#2uF|>S*G!+#=$|fA#gpGHPybx|armsUw|5~{Z&BW~ ze_c|N%i&w}nxFAqr`f$UKbb7gNj>^@m*cZ{>U~4i>~pgN*tB=7UGot9yw%i+-uI3> zYc0AH(zIZ|0u^N84_S-i0y~X|9XmZ;Z4wn8|FDdS5 zKIBLk?-ge;~`EB4S5_8~hzYJne`b)fW?zJpH zz}cNBz{_3a-9M{h+WOM3`Tb}qE%DU7y*?&GOH_g>?fbkbz!;qLt1?lMG; zRzI?#^wZ}4KDa!>C4V9VDhWd65!$r}-I!FkyDDshY-k{qddqQv_G{{du!xlErOI}G z%1Qm<1S&YAxs-yVIf4*l0?2~_;Z5zTAXkD+^_PFi92ymiLubS5=l9^4QjNS1*JYYD z8C&Bsy;k%xD+-I$Us2cO$vv1`xtRL_v@z=!4a zqssJjhwx_ss0`KDCy>#4=y(4-`6Y(}YFQ|DPjYVB>GRcmb>TFgCnE94+P3OC#qvn(b`&HzwGlp@#p7{9ak4exdp>h4<#3uRp(hzH5M zP}bP>B&0i2h-i4tHh6gSO=!vI_TP!8&eBj1h>Utkups$srMXGflm z-ZBRk$;J^z%*tvl^hzDH5@ClIEXto6Cv4eyoo(&~LD@mrZq}oB8kd(<$Acw{UY+hs zvtWq$_JKEF3GR+8?$)w)#A4GUfGqEKgTu6c(Y4LO2y{smcDXKb&|`c$FCY7R z#KHDz%vEzr@{2mKz@N!V{CYk0HZAG_>=OplGPFc9Cn$gFB=&a@#goo)X)%({*q$dw54IsCXS-=vkmF z6r%JpVeggXOqJUB8K>*jvwBeGPhuEB^uXjR_UVU8rMRb7Ue~J@JD>9(_awRwP$G1- zoyDV}k!m*vVr_230rK+;pq?m#1SEL>@?_jLcj7qXGVRKo_-^cj_p_a$GgJYZX$#T| zwcEv96o%JAWnj{(X2nHJ3FuC>Xa|NYeWGtrKf^psELj#e)O&|~V_UmDc>MW>@T$Ok zYY7@=hw4Fq;mnbcpdFS@_(Z2=9Dd&>wZuUv zhi9j^92s;&kk)%wvYS~|9%ZEoqP6Qc7Hfoh$~9adZv0SNRWByCc<{OkJ4-52_4u~k zGN{doqxpsV&29LOQ@L{VD9P=hqx%4_pMiXpJ+S&k(Eioj8z6meuNmm4+xyKu>)d(` zdoU6o-072X=7V^4vW~m=h$2sO$0Vz4G#fg zI_Y6-F`%%)ri)`HYy{n*Y;xvP#vMj{aUg~1N2HCT#2i;fyd#A>!(gRP1zm+ZVu<0H zfN4XzCB7e=xcJ6&&XuKKzOa>BS3cXkN1xn6zT}V;yFG38^O`S9=Ui7OuG zMdIxW-kS8IT)XyJkAa4IcbZv$Ugo(+@A@?`?f3M|_SA}~x9r7FQv0;&_u%$aFev;^ zd)vN$x*76}ems9S{d-!_l*W>WC>(}4)WvO{n%I{(CY`3`sClpavVB>`($k1!t z&k8y0wr}_V-}mmGWnkWK*3@xyNAAn<;X0DVz_ZYU5D%|lZ-l`E!|4nMPxKb_@-DgC zd3~aP3VpqM-H1bfymD{6?0PQE>7gKb!M{5>y$k*FTh1W5{?f(!#qeI8e32j=H2IjR)a%l<$A7kIc!%@k z=Xb}f$0zh7h~&=lyu$BNpyOcN@62HEseDli|Nf>WtlV^hSY})T(?aSsC#P!s&>v`P|z3VAl^LM3#7vjmQ#U` zV3y|D+2j+p_Xy4LI>HSW%U3#~)B0D;?CV6D-|Nqhh9PB}4&G~)&7bU&(A6w?qA!2% z!8OiSe?2}tpMUvdIKb`qthqT`?FC1C<^Q;K`gA?%)iroow9X-T{=NDUrDNN?y6@gT z6u0wAQ)vHT$FJj<=uR%@DeNx3>z=mbqzi(9{Z1UmP zE79c3-g@AC=Wma*ZlyaO?~9;Ybn1>LO~a^p$V=2;fMMsH)!z0J_}$*t5+SU-POjiq z-&b;fu|H74i^Eo~D>!%|f8{^5xd$h4XHAl*jiM#p$`v>1AZ` z7E{jaw=aX-egs0hRKh{WVnX;HPj{D&*Xv!_fGNL~!A&LM%XX(TD~+?LTL|~b?I!NV zjpYlV>gj0mW0jsn%g#Gnk_S+qu$!*ex|i^A>6blWANrHKX%eZH9Sg$eq|o12!pjGv z9(_+dkK8XlPd}6d z5ZhPLSYBu6H!`v>e7?+m%61(;?IMu!K7PHQJZDn6lNGqm=t7%GJo}l_g}MIFK+^pe z;+>qIisP)`DP;##KVNi3v3OolI4yVD56mWf>iF%k7MapT?maZ-1~gO%2ju>bZx4Cx$t-Sfw-w@_{`@$o{$}m z`*L>MI1fgGyevboVqU%c-o)HxDh*N)-yHA=3J&@`b_#c&zP#wJS9>}NxlZkPt$y#@ zVRoj1#_sfbSd)TIrsa5s&>G>Z@MC+IPnOi?Q+0Ra$PA6oiK!4_uM^>(ShqvxQE~Mx z2s-QbNNX2O9$aWfQus7s5gJ`DJ=~{$TOf8|!$$%?_P>t)po;-GOMFxQ&{3T-^(ULxuj-lH|wn zMqlQ2-*#;2`H|-;!(*eULe{qa!n(h&DmdZi`Yv$J%c3C=(D8>#IJ)a)N2!Ck7;5MP zS1n8NM_&@(4dcGT8r%euJZu@>5q~+kG`Ran9JR$mV(mT2KXFY%4^R()-RIFeJ^v5( z|DWIUX_kVw_jijV&o8$J4X3xs<>*9%PXC&C?Ma`PYvK@S6V(6FL?E(}B&q-Ko4>fw z-xtY2h0-J6fBw9r$yj&`LkOz|Bm1>;@ZU;7pU?LtWM7OO3IhKVu+|etLRe8$(x%gM zx4$9%_ZxdutvqQ@ptOkmyqCb={r&sR1Se)1K0WYTU|99-mw&JN_kE@fWf?3Pdn%Il zldR=m9e(ztAG0Yzajkh9_MAv&`4oJi~;?Q{~Nyl zDyB!_wC{BV4K33vmT8z(^?wg+&2>frFND}f*hnDl|7ZNfBt$`}q~yx8hl0fah7*5- zNVxYt%%8j%RsA}!`hULh{}|E4TOdOX{ngKF!iax*9DOMS3d4`X55U*=@ckD|F1_bP zF@77@#DV{x@+5hz9MB_Yt{E_!ntc4xTY4NBN>6X*y^tneO`xHW1@~cYUs)sjoHEh5 zARbUW`g@R>=s0m{j!pc7Cr^Z$ReG)eLhx4Omh}h&$Ij3VZ{Wq#p1|{0^q&8&@~^u0 zSmGU*(fm%(njfN5iw?fV{9B`cw@x_ND!G}Iz|U$aF##K3cyRPjljl+ZD$dN61?ZpV z{nO(up3^rK+errh)P5!b#*JL&zr*u)*Y@&vU(vh&*Qo#Fr{^m;08iF^V&1{S{qOSs zcGKzvCWocX-68p>E(!Mr{5yvZ|7oNyravLQDd7J^=>OeyCIJ}F6cM1T0vdKB{x6*T zpUt>bvT_88kdgy@`{w_5^}oiqCmDeALiInW{O^Xi$t(WA8~)RXGYR58UmL)C{{H7S zL&)i2lwpuaUs3*#+6ZVyv9RPQ!rT80^j3E|mN-y+o5uT}=Yf=`*!J}YstIHQ%Etd` zd{sD#yg_uNA!wkknZT#0Bd#<*@#mJ+kT9qn-?1e50RiA{ab*no ztw;g$*yNm~`En%izMuhaWf@?0lCFRE;+4Mbi5m-yCyxqya$}%TP7PXKXXl^=D1RIJ z(|DbxoSo7r@HSWH6>*~*Defa7fEq|mAUSAcVTJ)lLJAgg=UKQ?hF6@Jh}&HmP!^iX z#t6@3-{nn-$>X9W2dM3(jAXJ*Hg>ps8hD{+gf(%A$9|9f-Xv0fyCH%^m`iSi(6&Hk z*^_BOi;WEj`mwfxX}kKpf~<0Yj9wW7{5b)O9J0)#%Mkz`R?#Q{M^y^+ejBv0ks;NU zWA{`}a!2W`YWz&ZmL%20Nrjczc9bikd}cjYUZUQr8-)X43p(t=YGjj!`iPPNj0}9y zQ^z8Z#BsID+1)TIZ452bhkT1r)Jf$+z$RWb{hg;i942ZVk2mEl&N~&yQ4h^uYn8-U zUW$_un`-BrmhR-&(9zIpR_!rFY3JMJbZNc?ra8HPjb634eZ1M!QS-FQS#SE#xL%s7 zJm*$vGu{!;Ob(_OMFO*>>fve|Te#}iT&uxgG}FCPP{sj+oKcjKNzF^xi?l(38)va> zwxtKGI>P~F&u35GeTxT3II!T+bfjDqi$H5GPk&hR3`0FjFGVj%H!6tC1_5j87A|Dm zA0(EBm_Y#BO}6x~9qGjV`{{^qMgR_wibMu98&-h)(E(bpE_d8K`>)!ETBTzIKI`R~ zuPT5{z({$B=Lp(Hd`*$<$CN51)Vc+rcb>+iK&Bi^ztNsKC%zn~ugb)pLr@xX6<+`x#ek!+Fqczc@_jtz zR6YR}jaL^VS6805#RLc=W7HUq+I})uZ8yC9bE>@=npe|LvurYL)=4a$U}}N@v1u#| zvAIWeD${gKO1U`XrPKa0KC8yrQo+l{ytdExWm|t*>=aX84JM6|dUho_#FcH?(=+F9 zd;U1cdl)nr772WR-&*HKxjfmHH@IsA7u~Vo2=83y_NNUD!V{M$I`qOM)sC(Iz;7sA zEu=I{R~DYhvFju{vUtO_Xn>9JJ#lHB`6Z%LNfwzreB7e@_ir+un#H_7!WB2JJ~0pV z2?Q_&{)U#az{HPwLz@7)yLr z<|nt`^X^C(iVL3fz1&sgXMz*4+N#8k@}ILc*A`?$4m((qTNhlasvBEvn>t6*nE7PY zBi=R%((T}n;lh|~Z)&LNiYq9FlctZWd@B>wZET$to?@3mflsjtg1t;+jloj$ud0YE zN!4I%Tf9mX)W4=5D?$+wnZMm{hI=puNQID!)!qBb7vY*^VuZ(N>-U?RRv%N6S^G$Sni|2O!b$D60~FW+Slb;}PeUPV#XOUXy# z@#}J{f6oN9^iGikO0$jc4e_=^EN%$du(bZ-z8xWe`WlY&CwK3e-OmyJ}M_3EEEWi`=gU|55VAYN783}>{{Thdk4IC@& zPg7T-06L-qIHYmCM(ylxO$WS8;;fi2^N<2C!kO#wCR~}qvowe07ze05`exf;$|NM~ zQag2zvoe8J^p}*>%X(LYPFmhM9#K8L;a_LLpcwi^6-?M+cQ(xeZ#%&Is1_{t@<;2K|q9 z`z7?RR81S!EIPL8uHPAR=;*0#>dtB9t96-=1rH$)p6WF7F*M|#-#zlRGRiR*-tjYK zx6o>iky>nLo|08*{W!mlO?T+Ft!sVJo)$a2?I_6zkZ9J(Q5(&)zRuHK5#!8iX4D`U zdN3>(E`DU87cM^~Bj0@!T60@>tyTU~$`utJ-FT;(ahk8Q*8F5|7pk*T7mkbV)(K6l zG%HZO-PBih%)ugbv`X!tOgKVMTzSbC<1%dS3c@&=aF0!t9cwtkhmWl%bteir2ABkP zd!JDe)7NQUwA8I>x?v^OV$hi=U+FVCDGek73MJ5&GOGu4U9G%M>bOg&QI~wHx$+g3 zh!0z7HpxE)W-=1XxX^q4Dnqn63aKmlWujmaAuEoPp@3*1n*M3DJPj3Vz{&Q}(_y`o zbg!R_%MhhI6Vo|9X7jko+Pv>T6TSh)|06bTU74`pgIrhRDL|LhWvA&N*1A3(@+2 z1?wERjbG-e#?7n!>a-wDhkOyH zKRb$PGCBv#xPEO)Yu~?mXl}z^5`-EDC35Uq!74v@kmHJPu)j;3{LbE}dWn1)nTeST zjE2#lr%<41h|DU_>O@paUI~j@+g0!1M2}E;*WS^mJzD=uPiFPfZZQ=jRaYQ!7kTD` zjxE8D{4TkPz?yw(45oXZdc(e725|bDHq578O*9c>jISoOft~qFCYuqLqT?RA)~bhH zEG`B|KI4-GLSk7svx1LW#bwVP84gV6^MZ?==6-W4<$vN2?fJ|&5r#FSP}xrUL&v8} z9w1MvIvy-GmTmIk27ex5R9qz|V8&q1S(|cg^jFH!Axj9mi0ovl-5;W3YpKNmlKwx! z35={@Zq_!L87w0PlO4+#=-qlm#g7inmO>JJZgXjGVS0-O1(Zf@WI?5Fak865%p#J^ zum*4DZ_Gweh{?G^3Hr#i0^m@ilNWNRD0YH{fGgeycp2mV%j-VyDjwivVp$V-Q`QT! zVU7TQ_FUxH21+yAfHCDj*?3F~M>xb^!F}YPe{GA38=vg5llUN!)<(%BcLtV_4iJ-x zXX^9z@F*e?6_CKvB2dD%G>pLVWR*6EQT`UW^5qYOwsGlKL7tsFW2(zxuNMr#!$u^Shl0ynRiIb}?#X z=>55snLL;h?=3Ue+``dBNV$TPF=@!vvLgV~RCqQMXJ3_=KIWBCVW?ZP~u5<*)l~&D?kYlgFdcNi;>(vc@MB#icOOj8M2a zAS}W0Rw3+woYn~9fyiTj+REr4bKz!+*hc>mfV~`>S}`W}qD*&ktZ2EPBVHyW#oe)y z;aOOd?7klkPI&c13nzLok{M>?Jdek~Q?7N|!Tj(BlQiOJp0bEu1XYf(2k5(C?{skC zM2C$7Pn0Zb9tjf<4^`It4;IzUvM?S$M*|XY_*7-8Z1fS~~EB?I0({g(aDK#8gk?zG{vW# zcY#sKCEXARJRlB}XOJ)Pc{_zF35O7g7tW;)D7+93Y1Fbu!wiT};1=|%-PdXeLh4rk zh7o++YN=w|&V=T`$0}E4-5>X-fvteK=AEH9j5MaaOJJm_jH?zxtgJtlSYJ=iy8wL4 zV$0MC8ndjP>F{#0K582EcQ&y2I~==-A|D-H8~S%LSPDoG%o;_rJ6}Xqzu)oa@pWX0 z#yYw;!5PW;z>})ouw|^h^#R0j;!!Prgt6t;wM8S}>;`A}ANLsb7-eYIO^UpkUGmk< zHZoL3(n-hF_{NL1`VJI^Lg~;QFx?NP9FF(V4<=1%HpslbuAg^9C-a9DF}4b>7n~?$ zH9poN5C33}gw2*}NWXZc&)oBQefdk}ooYgo8myz2D29Z14bavOmbTxxPy%6m4?8&C zKYP-0{{S`EpBcebBE-_zOC0JB5=J_VDhh~8q^6Sq6QQw?{JyBRD z_+(T)$T3$iWH70H?VErUp`p-^n|*+6c&6pD9Iu%4)Ved)gKtD85S7%PKUe{gm=7o} zuc?%GfGW1&?>f!Et1C(#tQi-z zBWmg%20P6aS+Y+N6I-tNs=Dk}DE*IQrvn42SR|Vx|NDyog`5bay5vB$xTxd>l^J+d zERlTa;myocK2m@s4gXnFZ%?5Z2%~KwPgn@{x=4=F@{-J%*(qWi=u$%-L|)9sU;?d zBJ&QrYwH^)xYiqMwB3TK*jp&?%SI}Oh2H!!MfJM*5K@KHIM>8%S=)*WUrHX_pZcq% z^p6~x?P(5Bo1$$3vv7`bP_|V)j^<# zd{W3}Qx5;5;9=?C&?nXJdR6m-%F-)&d>R39aB#m#7m4GGkgp86AJKy~9P1=Xyq8RC?YAriwF~RuB{MRqpwkvPL8ogv98djYGG_^VuXVz>PzrTK z0EQTF$QHYvlTrb~cA}6iveP;v|yJd@mLDNaW#>sk{4?4Lu z%|_IY+fBYhyIrALPe>Tbk-0ySqVo^I$S%Wgj&WNKDOLp0mFFv7e2Jx|q~*Nf{rPQ} zO{$W->JM5gjF0&Hss`=3Vd;_Bs^THPE^zbBz9lrW$f6b@u~N*#j>!{*>nv5<0I2xt_>Xn62Bf6us%xX>cbmVI2a zoCP}~ou4YfYAm{s)Z5fM<*}O+OWKE4Ov8WVPJtHkHrgHnWF@nyd!9heH##7Dvl>SQ zV+0I$FDaIRiM@>M#$Q%I9}ag?lP~=cGjjo;k^lhQKNoR{r1;RQ-!@rRdifH?=qJWK zuP^%6UXuf?(pirsGc)xh(myTIyxS|{r6@!ekA#?B9>P*UEd{|A}Ma>y}4Mz7dsB)myU>6(Gz)nT+% zj4cBa7ZTJ^DUjAm{}_0z5`d`X%V+s9WjniRPNs)}|kiVR;= z>!a>J=6#r>VrZ^#{ao&Z)4sSZKm9(IWhAF{eEO*pL`r9xExG)5hZP*|FDl-=*l@=} zN(vI&4ZghmB)_+p>H(Cs7)--?4iRA!;Q*P4a9@FI#mX}dHbWK-xL&pEQ;Df;{IiPj z)A5$a{TDpkhm47tZb?k(+~)}OwQtl>^F*u`7{+mVO;?aVSX}v7z8%CK(W~6dUc6A1 zVQ+)fQ|~fk`{*W?!d`wb&9=M}`>aqd@r4oM$I`0AtPqPkZ?T$dGX5aaSdAL-ZPzN~ zduya$>8n~-1sC}uS;4RHHI1|ETW^>jKOG+jIV0&Bj+5RC7kx0zEGj&E1E8AtZj_@- zpfg6D%L!@B=T=V0(fHdBv;dCvr7 z|JW>pHLh{?O@j!wP<`5?QTkZh{6I7!Zu(lE!9B2rYFi}`-9nOE{Hha&`#UA~NXKG* z;%liKWuew5VfAIa5iObHU<`)3cY|id%CZ1BHrUX?(ESh?&8qC*M^}U>_5oiMk?E<7 z6C*s!CW&m`DzZ71VbNnwGqM{vgxkgT^U3S~L+$ z{bTiPrfZn*c0goMVji9G96mV}NTaSb&zX;y6F*>fz>xQsT%Y}65>8p5@xJ3IQ;O4l zk(m4?_;NLPCcy- z`A=G~cr9Jobc$U@%Fk1bXc-kNpR3S58{Y5OUfRNM>;#Jo))t_Auj@=x=u#uXHj$Am z3mgiMRISKKo`H;^M5E9ncP!AMdHtxoT{7X&!U_y0ohj>%1GYPb@}IV#sEe+!{7;KQl-EPOMP1Lo$M3{13iUI%=&zisBjY=$m~?&CXO;K zY$YEQv9k)A{Gmrrl~GYWJ! zyFiThMr}$ugDqK!WYWj-JJw)0Yz>jA%ww~+M?M3q!0C?L>{*X;G&%aM1U>$)U#@zK z{g1~Va9bZ8-erZqtC`!YespotvrcJ)?PIcjQbnR(CJ8JzFAGy_GvYp$J@s%?n>z__32{cs(-L!y!8@C(f!^pCz8flVl*-0O6>*WgJ5uebYa%WJ-BUXCJOfOscU>UtMQ;hv_e{Ks;pd01^={?&vVl(A zq7u{n{>lR^Itc;6zDB4S#7>k)?u&}XRv{n|7m@w_r{>=q7i1tj(`-_+90DFd+_*4l z-EJ4NNqj9fne1jWS9p&tlIv`R1Q2D8*0_nUd2a&%^&oTKLj9IV9y`n$(IlDL9qDNq z7Cv4y=w1)Q!MbPmP=}3Xg1V1@5XfoZ<|Dp>29S~-!BeUtUv-1cX38U_Yo>&omL*Yt z&5-w~cT>{g`Zk;GL&b4(%V}!VR+6w*5mRG;u+uekVfmKv6iWGmW z=uHddC8>GUqCHQZ3Y%PAf}vW5=&$!3L-EFQ4FgmMBKxMmf)A}F`EM|=kM`)pd1C-m zt|i~`^);1bzwgd0;q|YD!iG%Y3Kk$O6LLQ3 zg4?ZzLI*ksI>*aaFdKBNXpNq*v}PE za_~EG&;1j!blfi#vw*SF&2A*3pw@S8azQSb!e+`TLZpDp!8 zkH)nuzO)$e&l6VK>QNh7uf-3ZXuQGFr^@@cc{o1Po70TQm#MXjwxFPXemzBQYvx+J z>#e!A^7lWDd|MN5<13PX9r2Uun!?wSPI6jR?Q{EBSu0D+f*N<(mS5+Nevk#`b5if_ zPA*Du%x?O09*5>hbJnVGXdkPQ%jTgs`p=~2AopRcEYdlX{}50py#ELiwN;>qh-vN< za!2_PR9asImfjE5@^xU#v8;cqXKMX%AGz09 zJlX%e0()}kg6Ul-dt!v3xd@XZokGRj6)~TUg?v3}7(hpfGQ(Ro%wtA?+D=W)6P`km4?Z> z)49j#7yaCkFO_)gqj<|rsfuni$B{cOie7lr*#NwV!g8ta&X>R5#~dWG@%-8S<8>0)F1Q%dg%V@SUu24_ zrAs&Ti(NO4*5^i*3h6Sj>OZYozsJ?Mn9dfdZ2eAX*C3z_Ktn@7)sJBg$tPe}<8Vgc z%0O$s!K>ljj6u_w{G9c?@9n&sO33W6^i)7;6z~X-6?Qw zm^t(}CoYui$dkTqX*Eu(AC*5Pb(QhfbsluXr+u=Sl9OoKbnl*a4|>TRykA6Px71qe zbxywgrM(sih)za)V-{-e-j3hhu%x7wwZgzQQ+7s0Kld4p{w53b2p)F_cwq4yu|^|X zrIW=UPvcd7X_+{USd#Gt>_4Kdfr&Z4w&oWCaC}?)UxGYSMoO>rb}wM%(u*Q_ zb+Kpw;gJi=3b@w{3~6wp`(z)sT)9m$IUeGr6c?W&2q{9=>>1MbhV8d1Zj$8cb$}sj zXn|l`nA%R>6UI~4@m-gREwzi)2nSJH-akLbfqj57n#@Xq_l>bcLz{%rk+c}}Fu?!~ zkx!qUJJy!PHICl0iHI%E;1_;w;3LzyUMYi^ai=p$Fsd*7hSS9#m78~~WWx)0SaNN0J#q!C&*N2bs7E@WMl{-MGpaT zXl#88)*v}Z)xxhN5~=d8`W3=TgXV$oHm90hO&efSCLdfsBFk4Y>~-1E(7u~wZlzC7 zv`F$N+9+Z=^FF*bciXh`1l^d^#>q;}tfX%m4TvT4R&T|`NtkLf2K7HB0_)0G8j|TX zCNP#|%H5Y5k<jOutd666I2cgJj8@!gq+n)qf9U^QSPwcL%azyfL9o{8hEk z)`vG*T2R<4D^6+}IKcr7B+YXhD`Q53R}RmurCc6q6uy42$B}cM1O->s&y2I)iyZ(e z!c5zXlny7X4%_{T$t&5!s&pI z6+uBv(J?WV{#BgA>eaGHq^WRM$--aWC@M~XL`CKoXT8a0YH$p)9sOMUrW7P({mGw+2VjE5&SoRZE;d6-q2FIT$x(v<`aU2X9d)@C%$_QJc-BdN ze|F||Zw_Wd2r@R_W$H&pIZa32b8*?@Kja8v-O7ysx!quG9BdphVNyxhnTK%hcJ>;f zr@G__=9(Ezd^&R^;PNrlP^GM-6DGS%;eMR#7QUP5#22;GkQh}Jq9nhYC@muk%-0!M zfFjcQiVRb!Mycz=WQLa=&9;=-uZe_bE2c`O93%$ zkXU!kK>%Qkm*TU+ilwVDt!b5}t%}@xWf?rcf>#w4so1pT&blUh>jJG8Nr2mSzQ9aA zqNcMOnWIj;5*00C_!i^7m}dOzQaZCVGWIc$IzDTki5r2e7*zu5XK|Hb6fg}OtFORx z6|oE41kkD?VeU zqu!6`#77A5yf~4?d$A0b`>jDEwlas9f=j;IRFp<1U1w>uGq_92#bqKt7X>BeKbS zP(UHo?Z@xmY?N^AR-sec7coQeg$0z`W-|2!CrDy=u`|I?)Qv01+BJuts4|c^K_nz1 zSz3uMxL>5AmE>*ho#xv`k8Z*dw|ELE4heS zvB;kTkw*f1P3iL8pRp?GW*En9eCmBe{^=*X&Xqh8%;^ep1zE?X@{PzHT(lWJp^yK2>4DSqnFn_a>;;rzrnt6!t-yZe%Eby!hD1sTtd8P&xel4X zC_v)zD{7u|d8nCfTNEcM8$~g`YC0RZ@k3k{dwFS&rP4cG+Fwl|YSWRkn(p*R$ z4KFzgL6ou&;;j!&fI^${jt3?b)3P`HB$m;=IS3B9mIk`DBaVdSZb>1sQv^$oh@+Ef z?jAZ~@Rn#%;ZxxT>o|pbJ2D$8lCh1uD3C5?U@l%b%m)zW|A2%tT}5T?U&c`9Jizks zhe_&(+$|#AO$5ZGX|-yt`W!2L#bq3>^w^_Pb2>=JMVsMH)|w{WuIpqEg?4If@USpqPoj)E!d$7xOkkc*I3uSjDIadzHmdc z$s#D9Y%29QX@8Zam>EvlNENOcO|iIeZeo2Z$xK9 zX&}>3wJJ#kUKl4j9o>40fWA4UOLC5D%JRf&wmfB&w~I%7PX0eG_<42Z^Aj;>n=&nZ zrsk$13*$;365U9a4_gn!a!+2l1er9do2O=}OIsIGeCs7}5i_&0jEN`Z4788MD|Dj2 zc_y*!0nA1@M3`PJE>mLRjQ8b;^Y^bA-HpPAAe;Wm_V^Lqg+th7bLlY3o;|oDWQgP2IzU3 zT{=^aAQf*UG@RqaL_)r-;Nf5YEe+Q#GO`C6-bmYEuHWDDDk>_mol4puWd6SZuK`g0%U1xDg90dxn0B3X2M!%1+QEiAodY?8 zy7Jyir53CRAdtk8rwWU})ZBlytt(lx)0y?kYTnZewSa1;lIzL$MR#b)fpEF4L#X(e zA(R|!X}rh^WkM)ELv7++D}{Bb%9;s^UPn1G4Qr@l)PqKg@~H7Mij3B;eF)J`o{A`B znjxC4))JQH6jdu4hY+lJUeRtcY`U!K^ZK!DImWr3q7VDB*XErGq3^7KpK?1CX1Ar4 zLujG;b_A88KSgnJc7oHZCmMrAqe2#fQH&416?3~a3v zRmE3jtEYNf*S>uez~V}x5_2tL(XNT+yRS|2A+*Ldt0vPj1}UFWzcxur4!a#Zu@|&v zf%EfojN=Yn$q8R<=C%3bR zJI1}|J%7Hx--d?K^p?e1wW?;#niZp_B8P!Wf(i!*hoK-ZtpNvzx&sG?B!Geh{KbAw z&~?lIXXF5u(_GLT39%`Sv$Ey5W2+R z;Hcmfq~B?JXCJM3d6UhzAf0-()ys51*;{m+A(#WfOh4$bZG$Bw8K_5;Ul7X62TOEI zNK%EM!AqiHw=y9aI776wAsr47D3(mEcAGGFiuODN;^Tcfo}DQuEG%p{*?B>pxpI6R z8vXwq)}d-jttRzt64K8{G10BHSMdLH!oS~Giwq~0?9Szzg-a- z9AfZa&Zo(zHu?X>Bh(T+k*$wx-nN+3`h~LV42N7=U!hz_N7D-#dHt{Xc%E0UxSOMB z9J_^dl*ZdhwiW>^z5Z(G?yn}>)8&Ng+%ao3J|5JQf{RJ++{J2% z3vcM^4}#Tmy#|wSk6lc?bE&5|2RQLMQXMB#3QSN6N%M5>{qtB$nav8)It2DQLD8wT zMq}rDuL_m!fj zsv^zvXV`*k`q0ZW+cMl&>OZgH2?Xv%?KPVsuv-7dvA*q{G~Vl`int-%^ul;ge%Ww6 zroJZVPNFCO|C*yg@&%^hySjFta}SPe(75 z#*Z0gl$zjWHb?&t_Py)2XnIQQ^;w4d^{sj8qc}M9avFuGHtM!J47N#>Rqs^VEvJUM z4-u~ybx$W=aoaAFTl2O}nYs2H!`C02TyO|#L>vk5o^SDHq>@DrI}dDlBIV8>^)f`Y zRyWMWNqO*THV95Ry7U}eN-{y#trSy9mTH*CC+18ok}1&KE|VfoMb|%A^h6=Iof>Ao zDw@FL@f0-m@Xga0#xD3k#j6;fEx`LZrI(YJ4jm)s*VJ)4XvR|b$t@RG|NR7`V|_tm zAN-d!goySwj<&WbOITMbqQ7+-?pB_CHzO;;*it+F;4?Z5!Ht`@+ zMZql$#W%7)t2yOj>wZX^DLj>&8O4ROebykY73x!d^zoj%9-Kg|;VG z(lQS9_7#beBIZ!}rL%YY`a6i~=xrK7g{*eD@6PFzyHsB2+Dx6=Ulz;w1r3C z$+<*9Y9BVeoL)T%;wzHu?-hMZAJ7@)(MeAOg;*WQO6yP?GrtogL|1o%5&g>8ZZ;$c zftBBUAWm)$uy_c*|Hpm*Ush{A`}3tMIXj0otVOzd0^_~eS)b3_o67Mx@qqPcDAcQ$ zHt8*@&WOv&CCbCe1K!S{-J7d|A8R4w#^eO{7x!oy&XCNQl*V*d2sMu7^*Tz&(pK?fB*L@*8ahIg)P(Q^RxM2A zHB{=oTFXj7vb%wh1fn?Ub$a@cD5~|9>K>Y3*%#J|$>6D-f!smK#FxXl`Gj?N=HarT zmOC3z%Mo=@ezW6D2uDRL8{gKI9(+hRK;uu;dwZ3mQuw%)Wb%#Qad>c`t^lciZ6J|g zyRCL(s2=vbY9>n{6%@ydkcJUp8D1u%c?v4~V6B>K>*U#BZOg#|QW6)vub4sY zoWx_O=p7EgcJ%hqCw*!tBOfBMhllPuw@h2O71S>!R20#RT>Idn;`W`+?b_%XenM%+ zjInEKKI@jd@-}s2VZ~JK<|8NI2Mhv_fBE!Q-CX{fW%r@g&f^7zVfq2L(OmK~>H9faw=)tjjv8e))0cyk71x$SLmIahy&LP)J@Ay0%Y8a)VfVr1pw8(ybKyazj*>-Fw5wjDBMK zcW-MhT6%6S!^-*re~8o(ZZ=Cd1RE5A9QD5kCF>M(2nB znEPn!2O?nd@g|)d$>)4A(+RQs=YqBCNL3BL5^Nd8tJ1e2H??cWFMBdj=n4mhjshM; zz%PI)3mKakFJB9}D(m3vg}6_L@096O$jRjK+1AY7*x7pLucV{0=IO}YL{PUM|DH)& ze`z6bZ^DNnJko^lAGLqf06WUQcej};ZAMU^KIl#vQrVb4tgH5Hy&O%~V4awaed&r! zKn7NKjO?Q$^ES-lKb1JqPDZ8(b@6L&zA~N<)8kJv?lO+rk;kw6h>ct8pyF;!#=X^U zr6@BQ`{AQhIxY(Z$2%AEjnWB(hRtXkG)kty!M5`xf(nZB>v2quzWeU!^J$6wZqT&O2Y2rXFg5tw1ECo15#4nK9KPKJBt;OPVm_F z!0qJM2;cz)@R%aBz@1JFVWjlM6o2-E8AcJz z{>Baavgim*hY&gT2WZPKG2Vnt=kuXsXpZYeOIqp6@B1|l`nrr7Ad@x?3 z!40%*TUKG7Jk6C@o8WIv{#0-w3jVk!mSWbix07*HVfAlX!1<44{|p{WSXcpYluh3B zsyD`hQoKaA(W@_OVJc;$74(EEJS*xmpD53hjyN10WWK03o4J*%#DG{6`$i=ZGzzqm z#y0n z?xaalr&GU`i~)w!tK|y7F*P>V@lf?q3;6_1YC1*4L_z>Z<;^l1O*hoehlDj~E4{~{ zoC}m&`C!buT~dVn?2*(G~V|?hsq(P=d!*o=Gz8$J%D^=&rZ+)81o4`U|;7 z&aWhK6HaZBdu47V&oes}>5Lb4R?=pkkpypr5SJ$$kIHH`9v^e^(-tdKu)eSVjvHcE z!O&{@&&+Ti@9htSmbXH5!0dD{6DKn&&H*qGBTX{W9E0y6;62MzV~Y%r_a_(c(+MTDz^8KlmxC&xVxTfOKhHziXmXTRW z9%6(QH~+UsE~@oSLryY5!Xd$cSzse(=386oNEWJe1ioTILv8+LHun0AHEX_BHSpj5 zc6-?3{Q`x}{D(d**9Yf7^j}%8Lx^oQqoa`52Ac@yX9x=I;_P`B@YCh*i@} znk0sO2F+n=OrNvI>Q=@=2)9ov43=zU-lsC zZeu7K@NlDAsl;@TN_Kz|UV-sQUFP3w<(pc6 z2eEiiv3C8z#h=#~%@{kF{NHAQ;QrYd>bk{qv%w(9sE8WKu1`j>^Ki$RB@=p*=Lu^W zvF6KJ-P7XGMrkxQ{M4<5W){W{T7#@YeM1)C_;*z>&TY>h)+Q0 zNa{jXAs~Wy!m3~4ikmR3Wx-6n@sT+*n-B_}hYm@1ePgoYEbNd~a1JQc?T5@u13q!N zs9Qmyae1^Mj`a%MwS^{zadWPuw!h)Te8t{~{r8i~gHFE`P@9#ilHXM&-$w`_By&mo zJGLW%*1yJP3&exD;x&-sHDYvgUN6Cag<1ex>_lvnv)llw-R%RPrPa$or&L#B3L$aC zGzZLfdTdn0V4cRMZ7jk&WGa3#9IPipE(TPrO8m-v)-UjP)jeQm7Kg@dlM1csiMz2G zMDP$}#S2yA?~#Z>tOTpSyez&ZA-bmT{C$~D>flIL-talFvoRG#XT~tKjMSa#H0r|a zbiZ|jpE@0%==8iHQ}_1f)wF{{vnb)))^1~bk|K1kN<|5aGK51JW_?H%P8E7U>9VF7 zK?Prh#_;Jc<)u(l1GuTu-6Z7q(^v)E^rZej241uv#*i4e0I+2Ko1)TByb{ds#ASoR z{JT_KBBzOUF1~c@?bM`hlwt{6vieiU&k4@0IxVo*Z|*%g0X$yKV;p6Hh{QTP{Wk8I ztdN#|6SB4$zBV1RaIJDAs2K+p2giX7JaAmOG-TWCqRIVq<0jQ)xJ2W{dk23NUzR&Awz{&lZ zWIp{X;BTC+RH&evgQsWsk$0==cx!2fS@sW|H7BjIK(k-<0&3F`^eQLm zG;7c5FbTwY30IqOOtX1-yQC-2b}7hhDDcy}P^^CM-Yl89<(o_?n9p5MeVKK&coTEy zMfU^Q*=bX%L}hA{t1_~aB{J=9E41%+3k#(5>HdwTZm0Fvdc_;UUvaMka^H!|VtLY1p#h|ILXqxi51{lel-l5J^y1ZR@r{kU&1v4%++}`Gq~C`my7| znwjo2^}lm@vx<~9PKPH_&TRt_&_Bp=x`ggjU}sw%SU-R~aW1F6Ii2MzMt)9Xr4{^Y zJ=*mRKLyJ&;i4OTZ9>6%6xHj$D@q!xE>&x{wPn0UgtLRj$g2D)c6IGg`_rw@#q&NyHoE)N99b8g6)#IR!Wt{Uy#oAU%I~&v2T~Z*~ zOUNB-`idGAKk(IV-gSHe4{HolOFiZ0ZKFWpnp$=WS>)ZXjl30t57ywY80jOolGHII zcZZDVYb~^>uXSeg@@Y5Zlto%5dbZ6QQm@VKak+%0Vx8xkgVz7;Bm39iQ)h*b zUE5p=n_s}ZFKFw%Nc{FFMYJRTEMWEzDf)5Nb;%SfOQ}1`LM{s*%HKgV2Ps;VA{)vG zZ^vU}6Ud6zr*yqeN+WJIV%a)okrUHQ2MgQPk8t7}>53=2SO3b$$HmGjX};{`A!%N7 zOkJGY9^e<3H8g+kr2lO#=eE!jhDbx{SGLqUT$WDx_>3s?zY9+4CBs4pYmf?$mCU(P9|;)z|AZ zLJp&W#`=NH3zCDvcFR}P6KagOCD^1D_!PdK95rtFYg=ERXL<)MineU!ncAZgmA4pY zqX}6B!uC(RKG>!bPqZ;^#cPBXv&BXBZ+=QfZiAsh$%jU=aYCOKJI;oW&+_xNZip0G zD6Z2;t8mbF_=pWTmsdH%6}mA0@ki>`O!%lupw!qyc2VRY-zQ_Sv4nIj1C@N zP_wWR!&Un~l_x>d1~D_0B0cQB0^Fx{_VAcu7@rbCY{k9NRo=Em!743@!xsdRLh5uD z^`x8x4=awoyY%(5kCsh|6I=ZM&{aIX^wL!P;_4#NvyOrdk?|w(AJC9o*C;qz?H#2f z6Dz9KzkL)CVA6i&L8Ujbg)hu)E=jm`QjglzSZ{q5-1}Lhx9t(iw9AY222VtnqRM+< z&bUJ-3V0EwJZ2u{JwB)^V9J%NFnNnKrDnO@uJ!=Y=TD+i+7{!hJgX>S@1o;Q8tKqj zBMt!0_tkkV70}5peHhp0u`<8n#hecGy$YkafT-BBzfHoX$_1e z7^5BMKtJP zcOrkD{NLEd7E*7(-WT9y5bM+g8LF9K=4on_s?eYod`sX~OlUgaE2vfy3cECESgLV3 zq&O1S3%&cpmocIJQ&SOeVSq98ZO#5L*D(5F0s>Ngk>-={Q2~F}{4Vg}r93_2*>3!2 zRmfN>B>jqUREp7r9Ei;FX_8WiqAqt{j)O!Ir<0LZAE&sjZG;8Q7T9zQqkXs;?j78q zJ=@*~15JL#1+*A97XeKe2MtrFABJ}`G?LTGfipU5r3Bb(V3656AL)_Chs^P3tih@l>|V({*$3TC`U^;hK4gIYP=A|RY=u-sNh`@HD^w; zbMxIeM~Q;bNd7kdqAXHKJo@Od6h7G#g49)54>|B!fA2Fv>!RYWYk=)jCdI5mx%@sy z35oUB>?V+ny<4$odb@evG97rqhKY5prT?-?TqDFFKHRzdgBcaS(i`{Xx{5QRVMDFL z=Mo3TSYwd^ba2MQm&aY9*^#&xN&B6yq94=!KWTsdW^vM(>69ISZ;o=TYLF<|DoQI~ zVTs++D3&2T<$4)eGJ8^rtP2~e&tg{_`ZPcqFStJV!5(hVoN~E_eI1(+0Au)RXW#Q9 z2if_)A>HJz(4fnc4xiV1D}vv&_J+WK^J6*i{d`I#!jMVBa&p?&xZZ4ckc6X+g+upa zy7v5CxC`xN>pP5wlQVA@@HXr;bI-Ze8Nd$=qjsmq*N@H6A#sUM;V{uk++AMp^MNK4 zp4)Xwx0bc)0(;Jf4iXlT7UMWT_h& zV!_FOPJHKH2#>gABNnon@;NIQ_!&4PChq5b!lb^h1j=3{1tNgdfCWNjp+n8m*$x=o z4{RLJEqhZNlpA(@9dNUr($c&Y%KZ?U1Mn8h_oUUED>;EHjt&rMJ3j_ba)HSFcBNI{ ztJYxCMF&5u?b}7MQy=d<$X(ub9at10YPQKlX3}o05sGrswyh^ENAj>hdQe01)4WJ4 z@cw`&s|IHM>Y9?Rr#fIO?IXbS?4x%~vqokLC5v~YWo*tl0553JHmztL2hl`M`JNn<`PxGAbS!C&1^;V|h2%oO< zzz+a27rAa)d<0JPZ`#8)3h?T4cE=i0EIU0H2Hi!tAp8{^L|pnScJZDC0c39R2;>M$ z#9>Et@u@Zuf@05r0K=Q~(Aa;4An0t;0K1qHHJwiF7a($HNQ@cUKCU=j)={vC zpL93leg85dvd!mNOX z(_DiB)paIM^DZIqswZ7P-~|*I`@>%BgqTD9rfEhtD54}{DRAByi!l8jQ40LDW7j3d zg6G;VE7zMldzZ6FYq}Rwz^QNl_y^-y7b88f^A6Kdbt9CSuMI)<;Ss}rxd!aCv^2Jd z;kEdWGqxr}Jr+1A=s&=&3M|vS0lOq=OuK};g;AR)J1Z4x4v{I8!a>x7G}aH3P9}+4 zA4_B;zap%qr!v=N1wv|47wyqD?J#ATD3^qT`*4PHGAm`IGiXfq3HCcZ?Kzq@{J!`{ z?JjH3kPYLb-OcpV9CHh*bVW-_k9y5ZRDm>>pPE!^{oF~x!PJ_g_7 z_sq6xseW9}hgUBwv^oPQ6(d&1CiNqTzg#2{5h8q93SER6tqG4*JQ71l@W3dA39t$RPF6T*QJUR=dZ)7t(D{Zv&Rb^tX9yYN9MS|dXJV2vh@UdXHjm%nF zfHDCKCM5^-uau?j>yyq+E@@eJu$`xnp|?{Xz5mUwwhgj$C;;}5Wm+<$;}gQyHoI3S zgW{jbC_^AZsT*iVeEfjsyN7Y5iy^BSPLck-?KQwgVcSdncag2FxcrC{E#{@X;)vu}jzq;Xl4y*#MWu!R+g6F$`?ql-J=TRcRh8Y&}tE z2RM}^!de0$C#PR@RqDnFTC0C*vjyHoxdtU~qW0_>B9Kvt>SAkJgEWll-iB8RW>n*d zK_h9CSkmFq+&n@Z_@HQD-}dfC*G=l%ulPhS(`Wl>c3Z9L6Ia#T%#(jN;3j#Bl3D*> zAYl83>neM!9Caf|YloQ$J)J!%h;!Swcy2(}ku?6lKuC73fG?|mq zzVC2X1*I+42KJP%j%$w0GjPwQ`1iKK`G#3Zc-@p&)(lwPwy+SI4fHNW$4yDmBYff_ z1^^S_KdG3vcEZ*WmpX?E3u_mwT02XM_?1xIk-z%&)`qzZ*3KrU5FtlMCJdv9I^I0# zbul-kH83O^D)?YzKSnmgHf5}?BVFK47Uo`Li@Bw!exs$s4?8iZO5=?WEWml(KX-cz z09VM=1!@EtQU^ha!dXY2RVMoI*kwhofu7ciQ|m7)Ar2P&a~yUhi7@T}jmpW(opr$%kQ>Q3Ew`;{i5Wnd}zfXTGJflkw9t=K)_xgjUEEstTK0EB$4hWNmF z!yxA#sBd4hgjbPO$3oN0i5i=bgV5`({5-YcJPfQp=wfB0?6DtZXJ<(RbTUssJ1iNS zG+xH7m|AECuEij-e&^+?|1M(S@g0)8pUC}rTcD`{kd?(QvJUa4mlJDr{o8wOWntsH z+O6c|JJ7s%X$ORQ+=*=-6s?6VYyaSih#y%Ie$a$R&K9UR@AC{Zb^0rv z-0wMg0}n@2=;F-+PTr-z*jc8wXZsA_r8_ZQVeC+pHspVx@&-6N$?Gf||D=)DFwpVW zjXfE|s2cfE}US*;O&L`cKraFrrl}Yw`DZmaH{;_zBs;-9%Lq>cCh~YUi)V8PG@UMiRfICpR~a{~)CPvE&IHa15;Lg{OX*Ze?0r*G3;60YA#neSVs*}K*6R+x5vQjjio}Px}kb(3ShO~o4&e0cP#g6~6?B4&tFDGT>6M!(! z>=v6w`QY4%Cpv;EOPsDhe$B=vHF>lK{Z-i>x&QSj^=ELg%F=TQ> zhI``A=J?Fd*`7k&g`g+!Z;3hBl4d>j&Y-rCiFcmA=t4&R#}1}n@WwqM;$hxmQ~N@v7- z<(#8jAFuhbhS{D8qjPolEWdmpF}ZrlWZWCdVge7BOOk-J7mxF#BIPJO0qtz&Fp*eT~lCBjITA4MC+z zM?(u5BVUw64G4m=t~aQcx8RMMRHFUm2KQ5=QOqO$q0I7=KQ%^!4?oAo^cL-v6DF;)|N9 zh-grG;)k9i%ble!?AzxMATQ#%eb|+6A`@W)}4^@PmSpiLFr`%QYMwG#-yLP$v*%TF{<48G9_(pBppUx8VD9Y5{ zN5`MP+R;1igi_2i!@!BZjNXDw4YE#u>2Z;Q+MR>CEx!EfL>wBmefR^r`#N^IajbJQ z!LRQyHQCNHXZYqBWRhF}EDN-aYm<5do{CM8+&QpZC4}DmRL#Uff1kNFA=ODW!_@0l z>g$(DxEui8Ia6ykFQ7sBAe+93=I=5d9cv|r=)j#65VPc5h$c~LEzCsE5QSh(XkP~u zm;{sBN~8r=OOnRalJ@-yghcg3!rMDUE>*LUQ^<<}f{DTb#gIrSg9WBety@C?7wD(* zS_LQ#7%brCHVBBor++)9I4Wy2bF}oDUwOiJyVuVW7fJKCv45Yaz1b|$z5eIYBxqvf z!de8oEST*9W7kO|MV2#3e{oaVCzgE4WovQLvH(pEvC|69#MRY0aEJC^xH^AoL`8M5 zV$lfQ;pX(|8ym+g)W}5DV&x}_D8MwE^5nD=vZaqDeMz1XcBolC?f$}%SE6-8VZs>_ zYK2-K( z*c2$fQHwCd!fAf&kkWKDTHv)g+AxN|?gzbqI8UomUVnqtQ5uHJ1$xHs1i*FgdWn7J z7h8W*ax5{KCP=szBN~NRs(5t?`*XQgMn%yuW9xk~|t1zT_02~dK5BZq`Z^W){KgKGg@JJLCf+s8r6X+8}+x`-IK1(4|IRPCtWy(ow;>L3aJq^g8(FUve46_bYrn=4l1A}f2=3cuL);n0eS&C%T$e|dXTqsH_p1H?v_ zvbtQ%e6ql`S$$C(y4lhqZ>}E_et5RxCnUWRM@Le0YRpmoPV%Tnz9q1;MSuCNuX)o= zV*Z7+*y6vr$_D@*Z<*zDI{o?daGB-N3`wvH)7HW$+LuQ#D+nm7*Iw|{8L0SK0?h<{ zPeF;l+X>hMFyA%WHp!*lGoSj*Eeo;`qC}3ph)}JQ(sfR=6CflHf#oP!sG0a7x$ z%e7+}`2*#h@#Fn6Khe+WoAoFNW!&*5DyO&-t#(kIh_knooPz^c{w;{WIBWzHD$ zq5mJNBD!}K1RMzx=0o+pWT3xcasy!ssJ9!kx(6+ojCf)9G3?A+pG>2k7BTiXwNlAT zpKS@Z)d)UViN0^wPKR1pv;`_2w%+uD6DQtSwf$0TIW+DQX9p*m73+688(|v-muCBk zl;E*;BaRbem~Xemg%zISp*1C%B|e5XdCAxDOxBL$Ri?fLEMW8H$C$0^3e)QUbfo_$D=G82Id?V-0m?>r^ngVuK1{P{-CQ;r;3=Zip=N?;4V3ZW#Kdj;|GdT}*n6d;*Z~Ri z?b(H^&Yyy1$Ir4Pzb=wAlshGz0O}uDftra!913X5^mrHD?rc_lM~?o-^p9(>Fcmiy47W zia(D;38ZcCt38pr7SbBf%kLgaX%Hyxn%@C6&-jVvKy}uw%O05Rtc}O}JHNhBxW#{G z`Xols)tdk%mQfrhffwhs8q>?`OTva9XM>5qoU0if`>9q2@vZ^&La|xml9-#T3Z46K zPk@Y-@JoV=<{O9Qt^EM18}jHhgrADH&HWdJ4X?q~);=Dh?E$4Kp9gN5hlkoS=^3d=deT74Ijwd03zeu6Qnt68r^%SB z$?RWh9^^D)P+0s1wUUz3&Glu^6DTo(ownTw{cqEkP0l%UeA^20&aQ%ph+C-B^s0?6 zkJobb5hz+#Cw(MT&e)p}3ml-;y(`}KL}UNEUB_M6%bSHodK? zoV7YAI}9SyD@XdzUx1Se7gr2RE&<7oy}(R_<@Txe1^VFenHiv-Rt=aBU-VQY#dP@C z>Ac}q&&mO$8e!I2TjGHW(O7`KP%d`6no2JANEd^q7e5f+bfBDZDi+DLY?&!MF5hq<$bD|NP?2 z?X-dX*txm=rZ0jiB{CmU)wdfs6)H^0}=@vsvf_7z$A@k`7&PcmT=Np_M;|NtaW}j)kdUDZ1BDiYf1F#t2T+MWf@P%2%t(#s} za&o7mwKM*Ob=w}zpX@o0Q+j<5R;}SkKkX0FjV(P77r280# zDi0eGs68ekaME`8|5GK&*#Z*5ngB@h`rpr4CsER4rT%5P*I0&GL&3Ve3uese86Vf8q=EZc10n5ub+6^l6;b^}oFH%d?p49mhdH>`(Tnd$)1 zH&^HlcEG!Lq!ks!sl}#8!`%*m$N(3S3Fw7>{7@9}9@UNObctWsx7bf|QglAr4{wJv zNti;JWAqqf2Z+k~c^|!{+xnZWyL>WBVur_3o`?aY^<3kFxNC;PkNufQ?F@{AK;Qu1 zjL&;DtfKn0Jw6%x8D^6k($DeTB=lzx9fG^okQ492iwX+R8BKnFx9-)2jYc(JWL*F` z+TSMot6t&^K_=w;gs+H(;xoAe80p_}oHK{E2ObZN(VAJg>EK7so)*d8*3s|LC>2Cb zh*gI&XvkOi`YqS{ha-Cjhdg6;|M(?|lWAYlP6114y;Rg!NOXW5o_e>kES!|qZooS2 z2K?^(rDEW!ElXj>g?{oSc=~H6-K7jFR7{c)aYVfBa9QyxfaEuHUPa1b&CMcumIbHa z0}WTZaPy+6OCF$zFHpYYl>VU6tDeeJZ(G$zx1QVIOD5Wwic}@Aye;2>;nkrQ4&~HK8DFV}Zdxyd~ zy4S_Hy4txzfSN6ZMypytL}1!_sO?@zjYVy(ap(x0?T;lAW`jx^){}2H_tqy zrjIL6V62!}N}gD8e1MkA5omD$wo69V>x9QH;!ab8KNg1oS#9ElsFJ+sC6xRq9yLvO zPHZS7D|J5iNUpXYqW&b_tE`AAWm&Gr!>Bj&X=r9hg-TQ}zJCAYP_k?(p1uG# zfoczIJ(BRjJV^NzyKWK9;65m=847NY|E!q@o3w?jWrxLOeBt-l;o4}GskwP%01!~q z*DTK4pv0|Jo8*jdB{Fd;F`lt#ex|yP8J&-QK}}3A?9K$8L1$_%g(z?rV);Y;W-hA$gX^dEI?|@S;4uucYz6qS&T+d zhQVC)TF3$FBw{ntY3c=cv)4xIJch*~VekHil~36AAWKc}m$`f z|1jd>+lcv12m)h2a>C*L;6I_ARtktYrwFO@NQO8#Yn%LQu;C-L0=Fw+%>QR zKc5BI%)74EFdMZ~|3k?rTLXAStxU^VpcT^B zSnsj*#P9@Px4RRztB&K_e^sWGiAQ;e8@Lv5D)4lZu7d;coE>#&_`Dc_S`&>&V&Rz| z&ebz!4H3NnAOe!8Ts#~YB5m5-j$e7W^Eu1f6>z$u0r~iRv=Q6v?CLth(OV9H#jkhO zLQGa~V&wqV^j)52Zo%w6ZvC;#a-2d(5GK~F$x}JgjpxwQx{us@W|#YbAX!&QvTC|+ z&RadjM(3}N>43tGB!>}7_~7^UavtkGo({-fvGIM-$(^u+Y_jV7&ge4I!(9zwu69|j zdfCRA_lBpRiI;$%RBjjSHojv%PZcCctnWp6Uj5XB5+9>={+Do&cfWx#RW~Nvy4=mueSX{A7YeUX5Yuy(u5?;TxMUsSlbgz|x42fqtZb`!N=W06-CbP_`qL*F+ z*&ZP0750l@iB!S+SYvC@rnZc|S+I*-EVCVwcpy_IgPF=JA+ODj5a^=)I`F|(OCGxG z?zj1@UcCqTsTyTP$|U0T@hb86K6gVPa);?eBrGtW_W4YE2iDcwcJ=*@9B}bIy7)mI zH6DTPMMVhrb>}Z4pnUnnW#U4C&{ACcEq!3~j3X=ZxRrC}>mO1$6rDQ!8HW z?~V3PtAfF!`v_NuybAKMf1LkO_emEEMHnPx$KjE&lpN*g7#Tul>8CgkpEVB`zYxSO z60(0{uj*K(zlusoha$O7>iUv&{%!|6)ag$RIA4Um0Q^6N+dxgjxAQC;fcSw&!Nc4Ng6Ca^*nsgdAuj#C1uIS%y=pr6Wh6!kb_7E{9Fy!n z`6J!Mz1YWCc+ovR;sa+N z9U{HDi0qx2{jm|z#P`yWJ$G1m7x2$?g+*@=kfqK#6p$W{;-t?a|6u{#6^F-^@D09GQn?G-DT@73 z!lj7REx3k3YxO*89V6cr4>&9u#c{^pAQW7~!8c00+w6RCB|P`}oXh2LckgZ@aq94N zOuzE7jCB>Hv_P)Z={<37`WL+Oz-r*R&O98tc(!kWg}sF<9Em7MHWMfUFhx!h$AH|W z`LXqVF2=09(a^Er?MeucxT{uvEPS=#C&LgW#p@+&G&2>uXc-8 z3aI4lzh<{$>?949}Ij>Iu5F4 z&mfKg8VLp_*GtkgT}*OiX_DHg^pT4U`1TKeyw@d9hZAuRMCBv+=A1hyv}{PsRb&t; ztTV7p2w8~X$IKlg5J+PA0$=sWh_)xLAIXtO95o|D`TqRM`~C;nOGaCje-^r!v1ZD` z$Z}&>yu+7V4BU>Z??o)%d~6CQs9 zLDiNd%al()Pm>uN7e6F4+np68j<)o7g!-=)r=9lrQ0fD#e~k|zpy4Yh7(+=P!>Hgx zcbQHGJdKR6A`RDU%EQ70A%-Y-lJIwB7Id=I*IY~-xQP!31kYDtQgBF_yOEaj3Gh4t70pIURiVjA+Vj-T zq$K5hkIO~}hf;E7qBlL9N{(l0M*}jn+}a=T05Q6J%K4^WI**Y9*D@Bv*l9($&>R;P zP){J>Q~Y>V+Zf8aK>~q-e^Po*Bw*#3_YINJNc5tDn8nIta{fwh%nHz}b&stNdGZQt zG21ZHx;HPY48%17(1;~=kMuogzc_I0a+&kt=DhAKs;gs77;;qP##uq->{6(+z7m}> zdKWwfXL2$p@-sCgNO*mnA*n3@b{6cAvR#mznG!tO+JkH&zS@kN)-ch0R?8g#kZtr- zY)qKE7;Ny1`ds{{VU$5PD=W>=NRMGfe2x@ZzLSt-r%CzCygN?(ST>@;6gkO&w^VQJ~* z^neOg5;RS>4Q~aYnHoox^)DUxs~=xMZ+jX>7?tKW8u@KQwZl?vW%4KhIxAvF{x3dL zm4GOTWgBTzhdTHER4KI*ym`{bs>EswGyIt^ouh99310}*h7;H|WwXO?0eLMsen`+h zHuoHA8_!$oc~^f=eTrXxKk(X+e8@FeERx`>qc*YxHN7fTx`Cc&f6q@FJsNj0OForiPcOd;LlCRg? z40~9mi2$ClVizR`UZU3D0Hd8YvH$c>DLnm-FbluoDMT0!4xmpCoj}3U{^w#+@1lG2 zprrN3UAf}G#B|d z7Zb(6ZLE@2QX2l_!A%N%ss|nnLNlB{Cp+I&4MbS6J-^76pt+ii)n+}c<+_}9YKI8j zfPm_)ljW&m%c4=MrP@kPHi+(T#;WgxkirV-Q4QCAJwl+<%okjw2hr(mj;<~%wL_eE zD=W6lcvYijfNNK<0*9Jg@KS?|HS)TZ(?JpXfz?P~E<$0V13;hYwv*@P=HB|?Ngo~c zao>B`)9bG0GqWAb8}Vqj6|KF^GeYno1_IbEVB?@!C7l$od!&70ju*>^RJoN2bTS1auxgafS1s9s^dG=e_15a!W!4@pq5!B7K3F*%7SJ7IU2$nAX%>#!CBTAXfu;OTyZn+G9Qj3qz3;whXX_VC z%-}7yAq^H2<1Uv-D?7e$(8p*rD_P06-7}4@#LnxN^8Q{<)Zg3x4|{JN*JS$z4x^%i zD5ywDs)RHu-GWGm(k;^6j2Z}nD5${bmX@4!4*}^OF<>w{MvWLuM!h%B^9`T(`~Ls_ z@%vq$v5n8Y`-*d&KIb|&*B7&YrRFC`0c_U4wbs{I7(%}AvP_O;fY=dJ{dMH(eiR zT`V0V_6C_=hlx7<$`qw7MAGq1N@#RhD)2piA|Y^-^TsVbA+a8|+M~gZr)I8%&~2K0 zvVhtIsku>NTiIM(Bkk zPw4#od*S;Xd0Gdc(!?-OX<}iA$%sWZRtM;f0-mMa6@mE1^y+=pwj+{kS7NH_6d#k6pK@L|0S#C2)ud#$AM=|V4U$zxj zL}3{em>z^OM}@H6mQiH+MR-%NzoX-8(PwUuz7EDS*Ac@gU*1Ehh|(@QJvBm@+)qmq zarg2H=fj;@fr?CKky$-f(Df<*Lg)P+yXd=Vg3Eb{TdMt^M~aOStX7kUFqK@ZKU&*- z*hwXJV2XIu*paWRZp3(erHx^dVc5E;Hga8CKEc#0MNUyIg*8uv|5<0jvm4|Gs3Z3G zA3le@ReT<7Qty}NrCWbcQ=)1R_)Xids6lIZ>6KrCDNmRj&@VUpM?~GT7?1u1{^k6n z9cM$p0Bt5e`O*br&ATP>I5lHsNLGk)%}{q`qpGRIpdw!`MOjP>7}mH*_Y1w`WJw;x zMkZCej-7Nle@fs9_drPLzA;CSyRF;H=_twf>&H|#eH`8&ZH9`}zcsVdIDVEwd$3<6 zV1`H$YsuYQ$}|l(CN1)B7Cqx21{)j2(pA8+BrxZ{GuKMRIyZtv%8=K~7JlesbCumZ zaaSjO1LP}AP%~MMmh_@ph};e@sDA*v#Bd&ZQmq7#Ub*|49;o6R^UTqN?esfkPd(lm z{SM3tU)~+tH`#6u$bxyhmZqbozX{>0?2cd6tRoxk)_1xYqn_T~S`kfN9BozHH4qgs z>CL;zJqN30dOjHNHo4HS5g0WFH9ecR;8vrw(J(qOubGeF&7Ub8^-f{6{#9TTtjU?r zg5C>d?@^{XOQ3%1GXPX+A|T*{2e)QvveAQvuY?>9z+_JYG9(=LCTly4GI>wy6>g(A50KNH1sq_%A&GP!fZD1dw;latbT)4xI$cHus%76qlJ3u|Nyoj=3h(7_ZJAVg;w{S*cp9`PyS*rK#Q1ro z0`#;A!yaU2;-3 zi59`U;|1@fJmFZ{hjX|J-PSNy7PL{};=|A0VcLj{_`D5uT9nkwTWo|<25yk8`u#?S z86T6wj|YL`ILE&Lt!8zlEvtekqC<;`DUMDU4*hbYj)36ifKvr}_gE5SWH!wpWaL{t z?l6%VmSIE@^W?}s0KAyVcCdOKcAFn+^D=0=7X7*j1F4WHJzlHeEvOXVJ10vOeZpq( zT^l0kL`J&gG;NZV0`=C_I9{k5xrYglsDHY(et-v~tOm&^`L7xuRwXWhR- zK=8AhgkB;UA4+ZgA-Ee zD_pN$z63tC4!j}4t3|B~3D_SE)Y8!xvzg_j3?p5N*F|jDXd7!B#~WW?+QrM@C>~6U zX+fQ*SU}b;aWn4m{UpPbMh`&!hGI*&>sbufFQ#rYtpjK_V?73$pK zzvfObr&VShc>ZGz3rrX3V9uW$GqQaec6=)7H?{QSJ~40|cOd2rpJ8mY>+0og+~cVN zd3>Gw*eYf|%+;SP`sBOBZKAavb>OT!j&2ObT(}>;wqgPwC!~-O-y;If4-{Skp7&^n-E5a)K6{gdS z4QecFP~er;fUPTSHAf;e$vU@B2;coh%s_#-cQF(}Mg-Ik><=qnqz3YgxdKQBG``C` z;(kfMpS}v7BUwZ{@^p#w33|iA4Y7sza&VjArpt`q;D{$i!nru?(&zeO>^;le{F^>L zMJygwh+&uQy`u-n*{OQA$3WeR#RGJAU{fA+)<<)wQBNy^e$8I$G$#GLA92lidtM6q zT28g?TW@>ALZywGS(guO4dzw@s$+{K6F7eFJ6MEpymezKUC_Dy?xL~XhKn*}z?i}4 z38J`xo7EhcsW8p%2{QrprL%X~DOeYU+pIu@G=MMvYHGJ4+6Xm;wx+3Eo9J1>WUJNF z63Gt|ui;>q-cIEEM;J%^Tk z&1B_UMdzz1_xP*V-IROnD{(G9qeuWTg!S(LXmRI9Zl&>;E!fB2RM}9Ye-BQO`fx>! zmuS*N8$s>b^dWCZ&L!2Av@X^4Riynl=oxnR<9^`oul>TpFXAf;60v+c$B3 zVG-VC?Wd#(dT=G{Und30pyKi_YZ%m~1C znTAd4*6wU>U$L~a-5_c}rN5US8-~R$ZPWJs_@|kVV`nsQQG^qe?P6DQf04@I{(yPd4SvYb3Yo>n#;+>{~(rbT}<9%=NgQCU` z8GTE~uEPPINFWz5Yqy%60G<-ibpeJnTO4=}B zqQe}~ewUy1FOC=e>H!tO+rAC5wfNb-$sP?W5j&7ucM}ll1Ip8o(4}h0x?z!WuGAb$+ zR=HBBD*eBQ*8>Y#8x$SC0*uuU@S4buZgqE?mtWmuUjiKTU+r^KeD&9;EdXGW8G#ef zM{!lzC!`;&+ZT3%rq_0<(bZKfRc>aJ6+@;LkafE&P?cW2+DNC=)(Td6DmI$G7B z2X^dVEk6-Bv7(xhN;P^GGkY$ZaXydfc=O_seLG|##7Y)NpYj6(Y{o(K2Jbq;>x_mZ zI3CzZU(ZFr0Zx7)p#)ijj1t;7W})$)+w(5H`PKA0Y0mlc-)#M2i2U*eaIWaH7nTSO zN49!z-BikccDk}Nb8Rqg`2a~lL}*c__mBrSK0X7Gcc(=Pa0}bB4L!1dP4BOd)amLi zN$T>`;*pj0j@|*9<>Al8%OqAkP8DDD&g=ATIZ|V3J*5N=RHtC8L*IH!Olr8-9f7S$ zz0r{)^IvuV(5q*$ucP~fkNVjX3BKz9Gdycz0ELI&2RL$%Q%$#11@P*jS=CT_9Sk8~ zjDy5}19;o%$?mGQ+uGV=*!#=~troBKBgV1$z4ZqN?gQmMzFVI#VWh^U^9r_thu zJs`W^>+BmhIoXdQX~K(m#WhO|GZ^;vBG1iBB##bE0nQJs=|k8bY>I$@`qeS1uFYxu zj6oT*hu#6e^gZT#enXrrWQmt6zEGKMqK{SIn7 zC(IA(OYqZSP*Snx+!9%Ug?{lBlQpZ*kE6!i-`nG{o+kPVF#9*Zi_Ine1gp#5F zT;G(m^LL4q*Gksp1Ei1xFO7~A{Wj0mguC!kBZabzvw5uvQmYuy5;jk&XuY~N_S-EC zfo|Bu{;h%h)hDp?*cBa#lcmB$?DCK6fND>cN3p~%#L2zXSW~^t;1vke%OReG*{EgS zT}W%&cK&wwRjp+9Zh#Rlbe8f!5a>jWViCuA!PWoW=5qE5oF$9D4)DylA8WrlSo{$= zSlbrf?%q0p{Ndr|{get3fnK#I@oVs&0F!#0W6tta#c-jiINTU* z);1%6s#;GZ&t@5O*{*nl3t^2m+7*mOuv4q<|5gSg$snwGX>_E#MQ`e(Ef zz;3=CXaMN@?jzB^^rOFeQsW@}i{E?}{C|GKob2i;KkQ0=?l*MkM{BMAKdcq zD@-^3?)H!0y?cE7|918tc>JFXv%@k501jmq4dxNd=qVOk-<8GC#XR2sz~h zY6>9U*GX;zOK|;<%oaJAIxfnsZ7@&T> zg&V9(Hr*%skleuIabrKvoJQY?Q+jsjc>Dt7>4x6%GRX+DB7>pFuhWdqMznDQ-0$vV0V6ys+ZDbN>jm1QvHI=;^i*cOGRz*nq)abVqMhRv`d^4Hq7|4}v6x0u6e ze9?K#UemULBN>n>ShD&7Qz;SdrQOE-o|4%{lYHI7$~6UWf`Qm6fHSsg>B^X-lw$St zl-$oR&ba=oU;@(QRrCn~pIvLH+bpWu5OVF-GDAu6@JgEBy&at5$(;@fo(tkmI5*)b z2vm@aH(4wF%BiS(lj!kEzDQ*b)AMs~M@)?ovy@-%OWfJk_xi?D@{E$SOI2QY&&uI! z&*Lz`YP~}Ncq!g8Cx}qXU^W+y=Q*`h&V~gX5rVhMyH;fs;|wdBt2gxY>Y?kD&_Y9l zs_GnVfWHipfK(HD@8BnXqY9P4r*$`ut`pCF&C}Z|QgfCTIy?M!R@cPNx`@BHx^Eh{ zM>?S|z-=;CS-F1DR8oJQYbS9uEMsiM@2x@oCp9gS0n}QM8?$(TX|Pg&!0>}^j*`=* zFY>hq{rwGw%ImtThZz`NN_S~E{S0v{(J5kGviM*G*cNKe&d3t!cYNEQ-j1n}Td64j zKo_GwJ>TawjLJHXuij9QO$Y~g53iJ@gJ~dY^qXHgyV&6|%l>PR$zUy21<$SxlJB`A z`Q_Il549T(esz5KxEO9}`l#RT$)d8Weq79^hEupP%_pxqIvoHvJw1*NrcgQ(uuKyG zD@#^6J(gSVaq}n;A+6ud&C1z8Eeo|7e1egIL{t>?@60xl{Z8r zfGrmXEk21E8|ysOHVKzylw#AgzQ@Y(WT3E+5_+aNT`cAFT~{+q9dTmUjH(A!Q>xtv z{8Lvac;o*tD&k38oQ0Imt(}$x)wyw}Dvbv_%v3zF4XztJX>}IqZWYh)+@`OL^S>B^ z0IUqE1RWjVVSJ!g~ORqa8=4_}b$BZzX)cJ32 za+RFC`qX&#?(7GQ$ASqbb}pD<*w|Jm1mja4sYp9rfhNX(r%lMUov#5EWp!tFq6!fp z=m1$=lU{f`tkCXoEm~-uS&@Xb!+wU!`l>duq_Yl$hev665*PRQc2xR=29!48s&hjn zY(tM4G#N|Sw1cKmQeQh?hHR)SkKF2oAE3ex3r1*%sLp-0c>R4le#`=q$^W(voz09_ zqy(~jp0Cs6`%+jAx>t`*FEv$pCKTGOM^8NkcXO=H^u`#tyTzp4&)yUT4_>o{RfdaRs7SmX!a92XY5u3?<5 z)KZxX+7`Mca@yOjAUt5DhPqti?%iKS*FN z<`dtftG**+A8dN*(1{^pLifA2yAiD(@ji z?_(tt56f?PISmR(EjfoXn9fb?R_8DU3_a=ZL6`71*3`QXE&r(;@WDdV6)*jKoMgcF z98#I-6fRC+f3DYE+1eoI>Q`lG zk`l?9)b(L+TAbD$DR8%D4K?-(EGfuKS*qk1o;>$1wAuUKYk#@fRZzLPr!}*-scC*r zW6bNHiv?^dJ{}eBL?(T%sqzZur4yEY>sK_O#EWoPffPNBM;*Y=NhZ_pJByV{Z3rdqjdM016qc7Is` z#C|JA_b`;G8s!;KeYV>D$juY_H%Q6Ab--Y18?<#AH!i^~o$ycqq z%}7wI)soM317lacix0H}l4TKT@p;yQLUxOpf@$Y5V0^}YIlt6wE)e9YDluuQuhGUe z>47)PJrGAC&rg59kMJkcfB7&l{m*r$+9>!FP*ah{Y1=68qN4U2O)`?Kqw~~~`Fb9S zxf=7a>BCI9iA6AB=LPT!^+wUo*CiT~T2?@foZkiFmyVrHXC&?Y&x58zgo~1AB&$Gj z(JpjBu$OI!^dezOzSH?C@`Iy@;P)Bk^D(Pdwj0r2r-xre>225G`58BiE%hNhX$e`* zrb&!$=_4rGuC2Y7R9%2*_5HolEo!tn+#%~|P}8ivaai-gXuvKS<~vE)1PV|ZYWyX+ zIx0c6w05?^#(?{WA;5Qbr>nhon7sFf_Lng>k-2D2i4_hc`4EWj26gI%P*|#%R`6l#+4CMCAjy#;QE0c@wMvF9 zDik#;+qCCztSyp*@IUF#95fb|1Q;*_%(DD4guy3UO;N3gPB0>QCV=Iaz5wup5!TL) z4ojMPhvzPORq|OQUJmsIZB$-$nID&7fXa#f!rM36>WmrRR;qbQzO|0UFCP-dZkF2_ zR9^%@*AIbt8QsQH52|gSk{4Bv(T@FptaRQjk-!RwKA*iS5dRo6n^~^pI3vLH*}h`E zuU!t31NfRCvk2OrnRsuS0EeA=#(|%6Y?@SU-3LB2%6M0h3c0;ts zNC5XRx@90=uhc`Wy0PV3HlSR?{k_FVKYw8DIaQ#e$WSforCJLbYs4?B8uh><=WJ$l z5G^aZjq_R9jC_C{CgXwSE#pp!_~;4U4YEpG;C@Kuc0>jLqfU|H15G1ARTcL&fRd4s zUN5AW{^a|g?aO>#irl_}CeC}ECB+mc#1P0w!uD0xGH&X%(Zd7waEB@bkClao%U0Hp zg~Vj7d3YdI&Z1&Wj_f?cndLphjC|J)WXgz_C{c;g)9%v`X0>bct+n}} zFjv1NE9*56nL4%*@L1ZE=?J@Gy^Yh}kMXSr;MpGy5RW!E)_g?D#JGgstnkZtjn6?u zmB5`Ea)75K&)5xP9mol1w1+c|DYk#~#tV29^xAVM3W0RP>22F7nvMs&QUg_gi4}`F zmJ=&Nk+X%jt|Mi55DSNBUFdjW?lY_(?I-Zqh&=z;l(PZKuMxa-t`vDS@lOumvR6h1 zBjOW9Nr<5*u=yDrBZk+f__>ijTsH+o9+jHb60?EU1hq$sW5lS5f$f)J1nHuHX zGW24buMODuExDUk{eatV)knWv zpWFAm+ym^aoqKW#4G%lq;7nMtd-+wlpI%bC#=EklSQfhNI3@iY3FxkXiteD(ZCmk}1(jEj>=)2SEZ#wv@2w+dbCJBLZZD+NzW64Sp| zdZ(m%6&1(7TUadaQK__7vP#`Fd)=VRr81^J5`$ei({U7?F4Z?h=B6a%+rN6=2uTyH zYYG4;X>8aspc-^U5rv&8+6&tu{*xBoh(Cyma5X;~ePLY9BsYk$i3cJ>4NmL$A+zzZmd3wxyW zr5kWD3a9=p@~D&kk{E5&(lGvtqumyEW7Vt>!NaaF6#r=JFVy?6Sae=Yy;q(g%%&+= zBzNxTT6)%0p>G&jSp@iwKqqL0uH_MOz`xA$oVUrmFhZ&_?`2VVO4VwL+!GqV$Bg37 zWG_tJ+yi6Z%vyckdqQDG18<`*^yxI9cx&~ur@RcsYPeTKo^0osDlmchqIi~_?d)F^3eW|gv`l_5y@oOV1 z>z=VNn<7t`HgD5NmT8kg_Ls1!xM;ren%@`xi|jAy&l5-pb5z5Sp2v)&MdjVuyp8$i zuB(7UYr)#;!mh$5aNpwK0TpG=u;tHWwQ}X_s40&g11TUUlZrh@CtrUAP3vtJ0cs^# zqme`oN4Ha?>BUa^f+9>{)*lA$-|p#GthR4EAAm2?-p3-iZ%z5;0NDyAKK_>g6Fj%p zp+~8llefL}6PmPtfWEG< zA{9do?(32)304>;gQtSd6rM-$+j1cAnTe}-s8QX~Z(-NhR73(!Ms^edJ@w(PH{1vGHjE+#WNR_{$r*XjFWqPV2(u*TZ37X=$yf zaSZXP_(0zgmlJ$KcjPbW$c{oHsiUelxuR#RMskSX>mskZ_?E`sBxN@9yl2^ zjk@yl*h7{Ehh(vqygG8DDW6K&z-bLAATryRow$?lNlmpelmnLB#e^X_Qqz)h2yR6Z zgAS*v$B%|fKfh>*S5+LHg6IGqFu37$+t7qhYOJRoil9jS^(x%Dh={n2h2lxlUih|I3S>Ru16L|J+>F_4Eu_0!PiC&vQPSca0(eqyQO6iWYvm_}|bgkht>O zYWK)r+=vE9q4@;xQ|x(-a$G-yA{=lV)}K}K_YZiow_C>bb9j1R<^Ys^+GB$Q>`I4u zoJXMl>5Ccg^8r25Kn=sMmG(zC+~eDP6g5!&)VzolR(rcV%};6(moF9Mjz9rH4< z=uil8-j3STi9r2sRpHK1`j5uYaRoVD)agrf0q2go{z&k1h=nVwoKb0Au3Q*dLSbID z&eqlzBqt<<(9+t{wkNh*Nl{Jk^sg9H+ip*~j`8u%rK(!6tO08I2e7xxXjFu|ythT! zZZ=gBcDXr$%;2;}9`G?WAJ5$bQUJxvul(DYd6VYvc-MOxuBZ*%aaDzP0x5%Nj?0s~ z5jm}`1<9sbFD_zaH%%RjbR(U=BLMu{Dne@k&a^G#03YxrK(7USa6_9$`2!hg#ei4d z{%x{(ahNz4MyvK<33}_lM zjR*gp4xZ^RZvBQY`f^=Bv+0JAla{LLRusNxVBq1Od|bHh?*JTMqC(L0mYCQ2&rI32 z^+-3TKT#F<{w`-Fo|2xK($mv- zRx$ifj8Gba*pMha_(wSMuR&h@y`Vp*^#ZUg|NI~Le*5Y_Ld6$XrSJX!&{>NlkXiBH zHWzDArjSCV=&ED8OW94!w2!OY%QH=?i74f=SL{Rpo@twelQjI#5j2cV&Vu1 z(4Z7=9$`E#3)!=Y^YE$14&sL=8Psm_3MwV!CSUfUiDR)hwtuF zx~A31;Zky`C_mSFEtDb??nQOJY&|~h%rTS)9n`vp|FRMgqWRB|b%%`lPPMa3_uFWz zI%d;17KNqsH}ZDifjmaTfRgAcsdoM+6lBH>iOTy^En70gcf9)oEb988*v_4lkJPdYv z^%J~*(u%H*w43eOhZ=(%HoKR3Q#;ZiRlZ0E=RKu-=a@}OG+6%vr}*<@-wMS=W)#Q4 zjPJuT_Fw1Hmglr9TA7af<(yY51{OvOR)?5ahim$}!jfRy^xd3j^Ex<9_v>V1yPah4 zZc0z)R>TM-C#53Cvio(stleSKB9`$0?(PW*BsyMP@IbHMv^C43d5`3!UymIZREk6- zJ_#)se&uVY_B%kzPudsu;N*m4B*#>ROac>kwZ)OvFbApBic7%6It@k-s7AB?O8Vws zfD|u0*}bo+EeaWl$(0&-I-s0PH zK~K}?O_>V=@XBw%O~weog&xwG4ks?fI(5enC`PlkD+)$vZA4dBDyxqv&;o^nu5{v~ zjock_CvpmT&~dD2L|hxKacqN;E|(!OnPYy%I1D!^C#;=u-8mrCbn9MS@tdc`_pIpZs^SL zF7VfbU79ZlN`*RCcw|pswPZS5S_bQ~NS~*TbpzJBs*<&@Y`Ibi+2AfD#hnm9V`X~! zrqDw*Z*(ngV1m*|#hO`}aX4vK4u8M;-?TL#)R$Y5EFxxfp}>asucl>K(5?_U2TE7p9YLduP9#T(!} z`019NAikoUb6uvHr%b8wwh04DPoOCkxnhSYb8otEW^n<6s-ht23DIt=!_E`Jk@NgR z<#YO=s5D+CPb_iwR0$;8&(z~L%dH7e+MUB?fh4#Pt8%F%**CxdNw6_t?24AGGo2b1 ztSrl&QqkC*>O0$_JRo~~{W9Eq3|^C$_-2(N2|gk)e+)L&!C)C5aZ!D-Z@`7R|7@$> zPh0WSug3`hi!OKO+O2HfTYAEAwi%4 zL%^xJYSeZQM(XR$u*%j4B?{4{gAmEOLBg?X&*E2)8%A;%sgmElHT7{_@dTa&6Df*T z4(s>1qkQQ=YLF`)wV%@~)wq>AnQN++5YKwxJQ(pTv$^+KPQG2Pb9~1cSbO@6%t{H}-pOLP5lY_z!hDQ3P>$vQs~fho#ijQz4n%}hSmZ1q#Xy<8Lj z=4%}k{OyEE>lMw?zFX~!LQTj|H>-WZiPw%<`HX2JB3 z$^tpOV;u2HZ856~R?3HU^k7Ue&uv(5`Q+Z9AN&14P;CHGr1+AGK8VAKRUZCx9%6>gd=BWBT*%!%M9&rpQ+ zH8qNZW7l!6I^hK`IFc6eR21+P!I93SZaCXs@RgGJlkY=DV$H8O9MNYg@hpnx&sqqZ zFZ~3!=VN1J+<8T& zEDNihY-2=E^WbK}!t$~zRL|r zFm#&zRP%I-cVBWll__^h_3E7QR$dlbp`LZbVRe|pol(6y#jZ!lD#@?A?O9(HnE6a6 z{4jty$$t9Lv)nAgeb9{gSl(ra_XzAkw2`L3>E6wPVXFEpuOLnQsmlJOMV&McBK# z4u4k&@iI(I)tCLy)I0kh$*I}%rwxAjn8Y_Sy3NJ>nI9Q8sFJ_+%8BJ3y3+mHiZ**j zp?j>eGc#+}%Anr&G;@LkuKK&yM|$U}*1Iyx#IYf#wbEqWadxmxMnT`i;yXiwSuP17 zLE@o$9;D08@Ww$d(ds+g9k-H|3nezOO-0PI2iO*1^U#OCh97D5P;0bdqi6NB;Ry zb5p;Tj=x>Ci0*aG^?1o@==s50KR|B|BknZdf{)R(bPn?;5R)mh&Yg@&w$zA1i6IPI z5J{n7!rlP|!Hj)ChWa-@Z3_WT70LRkek+mpNx;60n9PtPhC2e1jIyBoP_K>!d2!t^ zcctm@`+E#O(%fDa=rRqwjY%=+lQ`qNx}q#CWDyFzN&7`_I?}24$!aF^j9=~fk;&E*3`Sm4 z)%$G4!QHfkZl^sOdM|OqKSjOX_NVo0l&xe;^T3nNA?yA3SL(`Yn@wY<4BLI*2wQDeJ5p?4}{F#8@p&p!GdYzUldEx08AE+jS z8pu617?}nhD1acZVvVwoBla$K{(5?-S-%k?wF9KR{+$aDMZdMq*s z+V?0?zBR+X&%8TqeQ{>;i-78Bo2Z2UrTxe2`>$2s?9LQq%0@!4`BOt?GgS9;gi=&< z;SnP_P(8fV{o`>u@_YMNbB@1$Ak~vFklSClP-(L~qDI%^=$}4nu%qy5Ym!;iA z@wPKX8SckOa;71-)@g-716uX@C?R=i>iX0983jNq9i$^VSJ(?m{~j%wY%eofV+EW9 zLPc2yFu0{?j4ODTzr=&y7pzg+neuz*daA+!eZa$d=Ol~J)(fQFo^K};wu|#nC`wUL z@Z*~my(`+-44VwW=GFPirh~!!h>(sA2{@=HcvTsWDO6G5=N-_Rr&FSK;2OZiZqJpo z-NuWr?(iZum{0u?u16Q2LrOB3&x$vt6tkNL+uayULYhN(lpKBKP zy_?|o>K6_l)L?CLJqBN}&)OCiIuW}%hQ}R89+E8{dN)qdk!hyp)o&^gx|z@CZ8L4I zj1R3gSe&WVag0n;4XOxIc=#=KDz187|IJuLdYa_%JLh_@>Q!U`PlcLKhK4iOHU%o*@#%WaN-=$@yQ{JHGFn)!UKF-FaDtMjxqvW!S5Hv(70D`>?lhJ2H{X z+N#lquF8S~0jO7w9FvOh*4t*K4AC4Euu+?U4rGr06`9AJ^_;U!sA;LLXG88Ymo}$` zZ9f#9HwtDH1al^J>Sn~e{fdM6UqZ9V_gk0ev7dN#yjK5MHpW&Gt|0-%WKZd`lA$o! z+OlMeN-O)@#BX72#ywux45?=(2BToE6Vv`K?E?Rzb}ggNT4wc`#|CpZTuFHp*VE4Y z5~Y)wZ9gu8DQt_OsnO6cJNB)8!)Ax_ktifN}k6>kD1n3_M zvl(~s_m8bAL0-tV0HRf_`eIynAbteLbfbXJ1v%L)&6OnHk*MjD3f@3wcK&~lH& zzkcOAZskRP+4fU-6)Zy4kwWYWU)nZ5S?<{B9rIJMJVq+@9aKY?yPI&s3gE_Jhw@&`SGQ9% zDues9u@PjV?m11Ffvw>ilQReGQxDG%#1oXlxr9X`Ue{t65n^Cw8EP&{Um26bON&ZX zNjH`t9^iPNTdejUS10vSF;M=qz{71Z@$&NR^WT1~mT*6$L;qnekuoOuF-f_HQ8er0 zV7(t^mzFMF{U!e+^Wn$GO3n}EUNBtEQAj9vF!w8;grNMa0s{R9Px35SlbD|+ZEml6 z8oOJ1^(1L-A4`Ts3?89eKxx{E61fu`Auxok`7Dxt$Ifp_X)>n!^EYrA`v=$6Uov7J zMA#|gXK7fn!K|(Ek|Y`pMjFw-4kp$^#x;$rrK(xH{b@>UpPSFd-x=R3c`PJO$eZnz zXz4-v5@!35VHF3Ije5aQ(CWj*s!0podLLN*6CzWz)*udx&}GsE4%PqBn1>k*39k;^ zTVz#4Z?)9iJQ^F*IZ%1HK^Nja{xhjvkQ_n6tCZ?I0 zwOnzZ>+&yR_8apMF1;<;Ea-EofBrX4zVe+dU!Vqi^raT5?H|A+q>{I4@>Aw&FOvxS z1o^F#Fk>^CbpD;Z*OK5z})e!*4BdhQ`W`s znW#mwsWAG;PmP0FkAJ5M5+mhy>I6>iyKwb(sndXe2>k^@L*c(cNS~io8|W1-{Q7^< zku-pJ=cLrf#fHJ(w<`1!!HQ+8rr$*DVy_OHH9hF+t0d%K}gL`$>ST1B9`B3ar?Nr+EU(CXL|!c-yb#3Ia>Br`Dg zE)Pe|&fJluOXuORW7~`G=qjb`5%D=z-^Vr|*ls67zdq0t(c!Jqj~nqxa#8zq)lF(y z1$Syh;-L6uXnHw#KeeYe&^9>5PQLl`98e4}>rkcn&NmNrdyQDWNnGn51o zZ}rrBg9$O(029k**F_bQtwWXa9Y56}SYq_0%9rPx{?^mB4DSvVsT=8_7nrD>D#zv-h7KKjghCX>$A2{S16* zC*yD!inKW?7&v2yA_-e=Z4t?YvMB}JxF@n@w#B!oxx#lRrzTh?pN&fHJXI{{NnQYB z<9us528j)=+b8b*Kn=LD5wAP**F)~RCEr-08ogbC$+H4J!o`lhu&Q_zojbo;PW zLegdV)yaKbWJh&C_WW$TUdib8Q&$8}$ysGY4gxIT5vcT@-&;kNo$0(&JoPN~fajs_+j1Bo&*O_0pwc#K3ph zEXOUzpq-8c}YFoka^ApxPM*A^gtxvUfzR}E8XJ%od z>8)Fpac$X~&E|Xa{HxybH!MoFs^2~SDUz!}li9j((l_5`wYw8We<&n&HQ*_y@4-M! z_*~FcomWp$3&XPwjeO7A@Kfy+(MUGJ4#{^bgt)5uGij!$;{n%#T&S7D;Z!KpGv10rV8z9$E?fjA+YTt^!aTD)h;;g{x zX^x68W!Dznyb0X1=^u}Z4O{?{i4>fg!Dn-9y#VZVIX% z9e#7MROJ;%5#`@Aq~_~%d|p!}LCKu79JJpvKWB7&(st_;GJdz-F-7~GQQ}q8qDn6} zKq2_v>(M4TNhx}!P_268A1KQ-N4@>Ss3`Sl!?BvTe8$B;Gt~2Ep%kj#aSbQARz52Z zy*cnWXj-e*T+Cs!?9CLr+>V?zO;N)f*&P|KK>O-9!^Jmi1M;+&{R?UA{J5Dbbp`zk zTEA8dQW5~(3w{`mRIg`nUe*akTCIeY6<-?F+Ssw&+3_wdBvXyw~?zPd#_ydZdZA1`j@+ z&zSHw4&CUa)EmObPwpUCk@*y8omZ}k&)?wjS_$;C13w7XBJJnXeWEgMka52=bqqcC zGVosiVN{#*_BThv?v4_zxR!IAtyD4@8FwW|ImRQHEHT9lleQMJB54v8^+U%9e+;c@ zjkMA?t#!UM4V$UXcIR_3f~|!to{czV!d|Q&v?`bAgdVT?*IHdW$-OgmjeAr?s_pQ6 z<;Ov718F>E>;J>rc}F$1ZU3I$La!oC0Y#|_NG}2^hzKaX_fF`&N>@=36p$`*1nE75 z-UO5uiqrr}1Ob7NP!kB{?Q_q)@Ao^$JI4FxF&J!G_TE`pS#!?s{LHxu=Gj#W^6d~F z8_nZ{^&z`519JR%7<}L!!2}dB&$$(Kn=8uPV|_b-W8~{I%jPPF_Q#n3B9>0UARb@n z71ONHvlSQThlEdU=MiD|t2E+riBhG_yBp-#q7=Dy=Io~JA3d#loo8`5oO2@1A9YTS zZ9~s!?mgX(2rz!pVY38cxG&c=xMIni>U8QxnP=#Fc2;T>#9infyGCp=>TiJ}T{w(Vadh{7&D2x(-;@=;j4)-kn7S(g|IT zjYWmEV~+!U;M|~_R)$QU`MEsDDOJm3e>u0ZZ?-!n>R zuO2w+k=9#^g7(P}Cil4Ht?Cc4-~Mx!b&FXA=)@=*HEU^nMftr97yw2X!{w-V5IiG5}wZ4hbq# zjy?NuStg16=Sif`L>M$sMs%#s_UIbZz$;CzDjwZr9ol}aH%$5fe*9Us z_xJ|ydU}XxF~ViNA2C|jz2TH`M1`}}IFRXV;ZVU{J$0@o{}ip{vEdTd!M^x9NM|5C ziW0x}pbh2nB$NE-nO$gCw6tao$uCipc2GP)?=#GRKhJ1@{fDgc9PACOR)TuQHT|{ar`NLTrIcMlZ2E z`^gq}qYNRW*hrJErjx_-kwhMZMpqmnoS!TSRy=8!VLRR8@$p{5ZZUc5$+KBWR6pxz z0H~T@O=lirhxt)Rhr5ikw{w=m=}<##J32@pE7tf zeZ{++jk`M^7^-Vx26K?x%%CrspVSIr#fe zN!&xIqD}0*?9=GirF6X9T#=Z32OU}jB}o)qr-y&DX+8U zzVgIQ_N(oMTC+2A@0%;XlpmES5CS7p$saDo8&9WX0e&L!OkiLC7Bc-N_KC~s*5$_W zHLF1EB-Q$Kg-o9!4}@Xe$&?KZj>JY(B!uc+x(cN>j>HY#!P@7(RtJvNf`s$!;+#l9%03XBgRT$2c!D0B)cYgbo@`+_(RDC}ReFkM`!KR>kRI&B$q zrhoqDf|E&X3K>Z0|8^fjPpX2ig$s|W%#dN$Eq?B!W&{err@x%>j!dFs5C~`4-Z`27 zaYWkYgXI6jNq-%;^DIHSx<|s#btB{mEC};cUq0D-tM}S1t+;YRdZbXQMO7gJBG(;oTg#LZ89^deMwuNOH(guS9cii^qrA-0db{ z-^_XW$GGkf46Pm5!XP<^z{O~Fw%?v#kaKRhT@U=5HRwh2iiu!2-95)(|L=Q_H8EO0 zlqMWg$(|-y{@um->!&nd{eK2$e~p+U_ivWtuSalF{+H+b=VJ!cV*YCzE#q22+@V-}>fAgb$w!Qnr3;$58 zeJ66bAE#83V^z-$WtsA$d zNMSopu&ypnUN5bklWosVSvql1zLQq2_gQYynv$w4JMTd%NYIuo7>6zFf|7LJxpP8D z>SCZfyM2lkM-Db18|~rCeF(jy1*&eTaCIXJz<0{3d~~#+bzk8$+&etV>dvBpD&(iA zjpzEl7VqaIk8;hfk%^Q@$@Y-E)O!y;{3b(4j$rQw(Nu2I99{NHavvbde#LDA1s=&ej;DE4@QjfP#8pKSxsbD^q^@X(VgUP?xfUL6!Q=S zTXzdmgFf9hW!C=Zd`ol0QhLW}@Q8Daz@DiU3ZuS_c?Tt)S;2WOM_sOZt?aWPe^j^A{RR8%51MP)86I0r~$z!eS&xL=RRDJ5vSDHn7J*dl5!e^D_q#4dFDKUY) z93r+Ql$$50F&^yf1N@P+Tqn`wVr@If>vLkD@fQqO{Or-x6339-0bmjZlD7R1W z9xIwWPTC(%?6m$BbBDkXc{Xc-GJ*3;4AbT5QweeOEzj$}A+fTa8z+S|_bLaDtH_;3 z?LtwplBVX4MH?!GM&g~#DhGI4A))@GKHr2}LZtOe_N3Pj$)-DpMI`|DUl{#uN`Ho9$U@@oH|qL40! zk|{%t-rZ=vijdSu2Q;Qm4npLWO;;u!Qo$o`PPw%FweYnjVNsE5Ogw?q|AP`8MGQJp z#(B}AaLyeq3yXdG5|v<#9}1HzrPURW7hbo777eD1MjlS!)-^zOg`R-JB5ulcELF-u zc``DY(dRuCz+h=koV2dyd%2Oen~MiaK-WqR?Dv>{3Ex%}Jw7ieEp*poaOj%j#=d}awxfv71;s4kP~$*8}p zzP+B0Pi4iiQ>`i>$o^S)XwqI z=^q(byXLdC`A@Yb?5w4+FsHMX)r^TODT%4-Z2IA*Ls!09nhC&pj|SYrA7Ihh!k$xt z)Yxw;Wi}NI<3!x(lSaZP#4%6G%yL)hx~lXQ*-_Hjky`zM_L1%_K*5OwAz4I3p&X)8 zGvK5TR>s!aRpQlQ(SwBP7R^p6!M_h zpCzVuJ@|xNk6M~0NKLP~vCn{(cW9AF%kWdh#P0C|Gb~&lg6;tppXW;9d1fRWHE}7m zK3LniPOU(T&-8hW)^iZtgLw`wr2G0MibwwQkkR3Iy{vAW%r)`xg*#NdCP)OQmrsi) z7lEI9Hs+xmkgAx;F^A4Y!O;WD_ z%2e_!5C9DnM@Cgm_Lhp9Y-|~E9^nnCPhCNa7P77AOI1Sw(BPQY^F2pH^@F?QeUxuk zetxioM!0{-5jOQX`=V}(14lBn1;1oOet1H)0%j1Br2QAreK zPHtxB@Zf%{awh9SXS==s>h1_#M09IHV;ozlx#XrCd|`6Mge{ZrLjn~LV{NPWHefp)tJA_HA7aga!GFi<7n@HZ_gz$?F+CM^P1`m$pm9j<9V`kh5ioiriYUCF!*EETK(T zq#hyhD9*;X=V3)6g{!4F0UXVU;TwhU1fCfaA2c`_D|^X>mKje}3y!A1B_O>O=y7>h zwU*=|F~{a;`iNj*ODmp}vvmtQL@?=vO7r(vej=gjXA74|4LD55dauEx`}l&p2dpa? zLje85>7{a)Z)QSdIg9@MozpqxhSH|8tOaCxV4ax5W7)h`;e)1fTE!WbGC8($C7^9K zIu2V=g@v($lEuejFpnF8j=H3ZN+_3kidwf_n-~%y$)VZU@4QE+Iqnrc@|Wdr&ditu z_Z4p1Mm8sW21cswp?}Y7DfFepr0FAA441Q6m(2uuvu6TB>$YOJ%e>reiK*CXOmOep z$3=)#ljzi>-IT}`G^S5}l3J&1}8N@fg?Vx_%vBD_2;s--tG z`cS&9=xXN6w+?qyr^c=Y&-O@(vBz4!q0Ta#3#VK)m)kENePKaa>wp+%P=(W6pljWW zl75=I$}9GteBBgRRM};(sl$}J#oXHQufiswgT&vb(?0^C+o88WUWKGCmAv8C)=@h9 z-LUd)^HK<`+`4Ouy2Cn`8VF&GnegxIKL;%{;5t6s+DWb|#n5E`hXueYx+uOh5W5!^ z)grcn^G8ipBvBj>hO1o0TsrM!DHqdf`tVuxwB5z{${!K7)mHxa(ctR)%M4pJFXXyx zr1~Ib{*2bH4ccu)*UD;d4&k~??XE^W%Yq|i;g!PP4|A#zfFg0UWa%U;DA*fPqiVNt zF8UlJEd1sl;e;fUN{0gWbn+(qWoTeqg3hV+*>e^W0#PfoDK!>Rti-YZ~$`W$$}!!R+s;x3Co!Sk#wT=ZTLjHJRR>;d&@ zyUh6(Bg2xlX-2mj$|0~n03;9;iZZCssJL`qJYPZ;?aly-uu-8KvwGVe`1*b#JoeG- zEZJkBWe0QI8gjzK!$M&k$lLvTr<>3Ub(!%Y$uJ23N|Jdb(Z-mgL0D zWqm%63gJCxpQ)|vNJQ0S`NKgArGd_l zdXlR%NnA*R8u40UR7Gn$gwpFhb#i@W`i24ZMvV}M*(DBSZxj2%0epc{qPZ^)WSc4~ zSMxnKzb8Wn_ceAuzk7A+F?RHE436uh%I3J)0VWFlz`gUFv0bNRhWPWZgkQX%ECOi@ zrTnyS8)cQc*R6|Dwc$RJ7GQqCh8r0#*m9HjJWicm<_=lAH4ckpxuoe$wOSwyop+|a z92MkdXJnUu_?~fgs$yPZgj+Sw|94#R=l5Tx?On`wkmU(dQkC{U7k0iR`r5gYj|2(5 zn&4$O$0kYlmX>uv7td7?mqQf})c8(o449;($W>(2Gv@1DIpc?A=2p&cOqEemzFu>r zjl7U9eQBG@5!C_SAgB~3L?-PUYuYL=zhqR|Jti^GDs2=J{K*t!IxBJZ`Qn%_`Uk%ytn5 zVdD+n8s_5H(^ys_y6{zRf7=0m9lZVMUbL#l_z$CCIBmgZXvDRI*2g zY2!x zS&~Ix5j-xt*NLss3=OlNu`}@tQ2X#@36V5kQ$wD>iW{RL`*^)L%I2W#7cf7~9h_-c zA3SI7VAr_RFi+k1VAG{7Jp_k~tVcoQAqWW0EO0Pw;Ys_#Iv3j5>HrXpZ-v>Mjoa>! z9_l9)E&-C3fo)%0)f1RIC{teHO^n`|Dd{ zJBzL;Et%hvsnIz&@@UzYeC9$1*ZYbV^wS$nN4F}pc^b7&f9d({SDSu4w{>d|TZ}he zPwG)bV1tD6-h0hP?y{$D!Ax=MayNckfYZvAfMfw*fZ3sHS7bi6H~cNIN0;K~$?eBR zN0%P@n*W#)k|GB@fZDI^Iv~~oW||Qn%HE_qzVAsQwH5NrJPoEzLMu-k%RN>x{cnfK z`6QmLfIK(%>I1$8%x^KbA!W{cm+K-+1!KSw{0ApjSU}_V_tQM(nyA>YPfgQqEi zHGu@A!4xXkA52Rc(mG#0og!$B2C|Hz$W}S7>h}~j`6S-KrazCG6}Ceg8FBaElP+-m zf-h0*zzY68o~_PG{ByueMNqu|f>zPqZdf(>PIcV=5b~Wp5QNRjV1mrs!kTy#ipdfU zEcJiIi_50g@>H~uz+6JE+gzEo`4v>e^401cUCT}EQxDt3_&C4H1x!S#jRfX$EBEt@ zW97}qT1=~@bF}nCE}3%_1w=_Yeu zc`g72KluP=#Hx9fCnPYJ$xR>i+n3gV;K(&^4Z5O#=%>3@ZPO#oyEk}?r^AJVzN7?- zT=+FJc4kibp_QXGPv0tGZ~?h<#riDL+Igc(;zsj_AIVjH(Gu3^27kseGl!lZuy+fl z#}g6Z&v;e_FQXvn7Zrb8t{8|SG9<-+0yX)eVm9S7Dx$T@3m$$#qrHk#D z^@9;O%(i%0En_*%Whzf~kt(-JH_k5iR_kc{*p&H-Wnbl>+D=?@(b)==m>`UALt0t zg(r1{5Y*4>8x@?1dl~(n?CPq|l6Bhy^EYlW^Kp4tG$7vp5m_^3ox2uue16v}-i$dt zG71B7$Ea2$Bwc=RuFK!5)n2XIhg(m_SMdv8eN%Dk?-0&5eS}J(dJD4;HauoMc(lQ7 zOtnMdmeX##P6*)LxQJTh=LNo+hJ0{qD-B1ErmR*DPV$3R!eWwV`evRa_J_5P%h?XU zS4i1xTF)?(^EP0JaMJKA2`S8S1JfW|FNd`I{+P8h`B9joBGE5wH*-XHacq@6OujCk z;d?PjCOdsSI5J(V;H;yFZ|s~=2G<=d+f&tWRe~)_d2ozj=?OFVg?r(DXINCaq}ZqO zZij`(gAWn$X$43w(-QK0A;{z2+dba<^XXJ;>OG!w zxg;*@NNsoyz6*GtcKg&Xu0n@_!(OihrzrMDQI+%v28n|7P^Wh;+r=!B`q_GwSivf( zD&8n^j$!D|*oPhmTQngYjYd)i4_*E^YmuV#i|d1)FzEe#S{of-AU*@*IuWY_8mpu( z-)75e~r1tc6E1PyqZFHoIJ zo#p-Nv;%NA&-{>*E}W_hBz%cH7KO0b7J#6**}eKZvNw3M!sr6|m`gJm)| zoi~zG{xg#;#E zFT<2dT9xg5nL7j%SSo?ZCT~zOMysB_f1J1<-o*fzT!B3R+`{_`Hws>T$MtW6s56(5 z*$e$!Dx$uP>OA^m&V57mcO_=fs@B=qKcddv5>50b-{{pw@hw_;!#G^}vP$lq=W*c+ ze_@NWk(^fxYWt}T*-Ff{Zm^?uF9|A=AH8N|AJ(ly&|4S!q$=2@08|9prv*9rl4+(- zJ_T@NxKDDji4m2w=4;qw!Ucf@`MI4*W!om{gY5{4sdL4zN48|46@MW%(J{qDb#7(o zg@S19Jw@&u`*^wim@TVDobY~G7XMKM=b|cj;BH|Xb2Rl5eXK+u&-zetjX?s7ANU3H_N%PPgS*p1wq@c_`y6E)iJm4^ z@QKK%Nr}bJX&<&N{cMcjkA3$42LGVylL}7Rt+UsF=BC z=(0R9f((0{A;*=V(B83{G($4<`daN-s9yfrY(Q*s)ZX{=(?01jN)wI zpd5Pr^-*^?V4%lw8xbB`!vdD1x|#a~zMwh8HY@&{s8;fxB5?bpphSkRsYXiGs+tRh zzPF0l{M79Jp7xkmhFXdz_&R-d&G6w+PFxXNG^817nNL;VGFF~RJ*9wV#qJywl&bZa)X@xK$IE|`=oXOP!@%| zT-ct0+Rc|HUa?6W<{Nusq1aM|kdI6d96UI6Bu?U;MrdnO!(cAIiD?S3y?pz38a|O) z?93ghO1(z91;{9@7Sb+1M%?yquw+gKA<1>V;0SKyUlKMHzeyF}{nV<@WG%k#5ciFL z`Aqpe2Y%*3h-X^De5WFvanSvO%*b|hL&{pEb}k%xHiS=s3GC^QeS6BqLqyfP<$0qzrppmy!|??6x#Qz} zT`rE(l>v_YT&wdbmByhnN~@s9zSf+1Pe@wIdR&GjI!dFPl{>C#a5Fd#JLJB>;*N*eKjzne>o z@E2IT!@%y;Gsz!LM$q(M1@E^tFP9(iWH5v~_KY^DBQQq`VR#Ygv7>JP2@cH~4zD@; z;co$b8B+=tw*z$Ajn# z#VMqsT}^&1i3}M!RWGBvx#WS(z|y|P#nL!KQWxLJ0+0jSPQq5mv%9u`R`SajWy{AN zzJ5Wsa9x_d=-vT4#$ zq07dCv_l1?jY)G_(F3l38sTBz3%zx|1=AwzH{q*4{xigoyxG{)+z{%2=a7yrAaK61 z!_3U=UFN%6{%f>*e#JV&9a3hOu7+5=cb}eiCwy>7*Nx+OXrP+cHKQ&Gh&FfXdktNA zYTarJ!FBppTisuWNkCzhzaZ}34N{ep&ih1_m^z~J-0|{S+p87Lik|Mc{`ogqG>=J* zV|HMHSZkpWOXHR*32nJgPDGhiF`yw&#gcGQ{XM&8qlAb`>Sb6eZ{uZb&$TV&0W;|C zpHOTe`~=(q@NN(XyTk-X$zoBVIRjnt$z%~vnj;3T|n!7ps*&h&tcBchxTlcKK0WL|1g)vFtjoO#_^EdSoE*bX1GJFNBF%(VqyK%&1h4dMA0-vi;vkCO>f zT9!M-vDj5QUpsL8&PQB;ucc_1ZwI zMsi&`LEMav+$*~+=1tpd_YdvvOA>JEY1w7lKABO&{wZC?FNOwEBv$HdX!MIundHKb^PW-CipKqdcRxldvx!CCT9RY{>vH<;U zc5VLJoIdULZ{U2oy?@}H&f5_%O3(7@6x`-tH~Z?h;6I%;@Q}{o+$&PUfqV9^h21gY z>DvyHzmH;l_~yIKq*EDa|VWpP6i}r?j-Rua4W!R`7pCVp{Dt z|0&=6b#6)ee-6jLNAy+PKcD))Z)W8;w&AZweEnS^`hQ(Q!@b_*?mrCLJ?2U|w)&?Z zoQM`E-*(9Sd5X3?YKGNT@zC&((NF*O--0*Wo6%X@MvQ4oW)Cl0Dv;~mXuMl(11D-< zpw9wpEw}#pDsI~^ezPY2Ti^sxCF#TD7fT!}a|}BtDNVnXO*~=ah#3Cbf6MC?5v&rX6&3Plsc)##OUZ&NLD}f8tVDYcm(@~ z`F^+<8Pft7k;*ZN28W|n-fva|rk0AN%T}}|u=no~gk4ein2Czy?Jkbd3$)Xg@9_3& z_2ACxYy-G3I+}I%Cd-n_iXCEm+@lCP_#(l60qE%K9e$x_57rpElZM^%rAtl4K2DmVxYj{fZU7I3aOC~}ZR&Y^9zd-S}4XA*~qjAYv z*pG%RK+|41ZEud)nEk5p@xsNx`ETg!CMN%$UH>_}eWe=G zCM;Una%1?sy5Je(`t4)(H@_HY$XuYPxzjHfN7dW&>~fuq5h{31=3WgcrP}Be<>=46 zQHCrhQ3Tz~+C0grjy)#A=wqA9!OM5Oo|xMzx)TQ2OI{C3204X0_w|Z$F%-ILFG~(= zj`7qs`gnE`5@-Mla`1BS>+WK~v9kL?4udbpCYIzHr6907OFof?} zM6wtd-H|1yAC2R%Ag$qf>zx6oh16$$AkskB z2_6l(JA8L9^R}^SO;eH_L72-CBhX%O2(XCrkgd4@t$Ht%;pnU1V0DSdTJFA=|Z26+gSxzt*@8nq0 zEq@ItZWC^na?>xV-D~51oMmx$AgBDwU#&Znx8r-tH|w;eokf< z7t@a0e^fOD4@gbOt_ZKv{#m&7!Qs~0lB7Gq8Avo0cU_FqVVlzYmkopw~ z(k)O_<*WROgv18pM_(l8v6>o_46>Q`BRpjrY0aB@yY9@l-UIgOZ6}J7655k2gokf< zcsKTi@(lzp34HVGOZbWX#{WLk3mjm?v1q_>@qAnbh|otP1thix%#Ns%e1!M~P7S-wWueQNR zqTIfLNyYVErsK4%wmQlbo7<<}s-0Bq&UBGyjrQU3iWrS8k-qGm7zx9R-gpev(v!)?e!chgxG0_3=2MFsA;p5S`jfWW=gB4`bal=tJ; z=jSMlrb>-wy&McG`KMLFV3iX4k7Rxbm_>C*T_Qgldl2G8s!)E4en&4CH4_fy(CgUrBht&oIu}uf zDyNl0u|83pV<+fr^1_=5$uqq<)Kv1RCThYF-Z|v5aia&OcX4=iQ^*2IbPpi>^RT99 z`_B84fj;AVdv60WW|J3^FeT>70vJ$wSi|7_C!b#@X&O!|OjTgE(q5*}Be@1Lacfy= zPvuJxiKk03N8i!py+`*kWQL@bI!W*~Q+=2OsoafO-e#{j8!x)El+jp`Y-*b0_YY{Rz>PZfUw*pfHx<@Hj8PmtTjmYcX@$-X3N z>KeA=adDTmQpcCf3ujHwnB_m&A>!?~JSQjCW=8-TC~nSirXXN_T_ZYG{Ws?Eg}$t< z+QVl$va6rWk%G`6OW(_Xv{stusCvHrtglf%Ec~^=fZ`F2=$p32@#XN=P}dtWrk^Nx za=bGL3KU{G_z01MW7|Se{D9&6eBxPHBRbiTSb7nV%QI+CM4?SZl&$UT`a^-5^n5(; z9n=O{v&bJtwN495I=7-&$gxe@Hy*_)uJr<_oXG)K#s9Wy#Wpkb%%Hlnriqf2>aC=k zzkGDdj3mV$HFWQp%qB%)dMLv2`KDB=xnLN~%z;hEVfQaG1Sp}Yt()zARLaqJ{1d=N z{sn}HQE_{RmSNjkAbgikP#hMh>7Whn#+PFp85T&-3vT?5Ayh%sXFoz@o8W~+^i0R; zSrRu1kd3mSgp6ipYpN216{^w?h~=?AZ?X$_H1?JsSJ5cwqT`C-w0TTh*N|uOdW3X}A>scI~fv>+(ibOo0 zoWtmX7t~1vh~fs1f!Zri8rBkX#&Eazx*O9@4qMCfGtEGiw&vw+=Xb(D!632bx&_v+ z+e5bfp5(NH!{`<|sBegEYWuL97V7ub2xj$^D$B^c>+D|4*_amK9P4{MmS|`Cq+Ro8 zVc&{!)|cV`#q$meM60AHi;&nYy5ykOl3sT}^iqZzZbPq3mlsH2>N!d5QGPv~x?dGC zWr%L6PA#l21!8rQ6IwVNd#|w_Efco{Ilzo^9T1&$T0zl#iNA#pEC4A)3X{kuv8e&1 zIg5=6%yg<8aW;eKs~oLgULay%;uqeCheIfPCG})2J~g;@s*d(TBdv3V!<_WrVCPlv zdWuR=#x>_|2AA$+aMAP*e|DBz(L(ZUU&*EN#!oHC=nBzSZ6$Ew!6PzsgX;FPUem zI9>%ZT_l!JnMUT78I_P09$rgZG`9UIeiTwPOtrpm7Tw~P*Ha^y0Lu8X^j~wUadM6RrQI7LX+@DP@h!Y!pgIddo0D^j2BX%@mz&MT41&eWVxe zF`D^|=dEDKs~?8%*^2z41q=Pg7*b_Y7G;Gr2zjFG=>suEZ08I^FHYxORkjvy?1#0z z<~%<`C=dnXOmo{@VvL?E7n4OhMTx573|x6hcIni8s6d|?B3xsAXQ{Vp zSW!%eMdc^N=F_0C6N%Cc>!0|`rTDEpcYpFSV>+OphBaujpLu{>u8yiiVM^boPG0)e z7EV`4X(j%_>2$PELzYFc$!x?T_0vz#%F9;m`4-MGy=r`mhFtPKhgxyu+1=`IUto=s z9{-A(Pwe&vO1Vi4`~cb~Kx+Q1_PXCC^t23UMD5CR*=*(6%fQ9q-${cNP}|z6My+(~ z3?GgNwvXc97#DJQRX4rC_0bvM58?jDOSZ z^rAo_uQ^~l9y&j7{m;@9;L}f#q71Db^`5Q;XBZ$z*S6y?j(o|3&MEM|;8iaDnIOuA zK@^j4f5AGyHXL-5K3SLuoQ}!8JtmfXnvE6y0_3BlBWT_It#Mx%`SSAZX2q;4!w6%x zCh}Q-Kr4S>ow$$yv9!J>t7x0#FVLO$#B(rP_u5X^ok0~Y4Xfx?;f*D0=yJ=Be@o>@ zKmKdLD|PpGi@54%W(yv7L78-&<<(9qG6^qVQ_o@PJTMVeTBg=hTH+2-P1o@A@19&Rs7J2DA1(gO9-!b3z)unR)pNNHoZNf626pe9`5|$3agx16PQbW zqF-u{cmy`Clg<&!KYCK&#r9?e-RD*D9hbWHl~}cwvBhRhmof4MD?4uAgi&;n^Lh(! z$q=$ZEM}c>kIMR_6sq?px?1k4#A32Q;ZTSe-&08wgNpeM9V`?GF>RRKN6dq%v zbH!YBo5CDks(6)2#tsrN{7O4gR5f$oy*WKfDFh{e+Bb8E7%t@%mk>pbw18gPM>+A>!J*&jvK>v z=bSkZbbS}FMYG>TEkn~Evq|o4zaa*#r9g$L%Y=oqbLnK(Xkf( zLsx(L`-@eEf}L$R1ACuY+i{GpV!Z<3#DYZ={GwqgTjFg(xGI;Tm~ zlTKA8Q_6ADpi$dkz zQL5G!I|Et=?282BG+Cj3;Yp#VLd8J?<`JIUUSpuMJe5S!n}mg{7vK1`lt+{qRA^S`5!*#C4fBrG(gqg zJUZQU4+(wm9=?KN2s|$xB~g~YX}mPT$Nthd{?1@%@vLG1&9)DZuH;QwVm7P&LB`Op z@Bd)Kri&?V;J@QEFSz3qyZl&K70rxkO!OLR8SiGzE;zxjAR7>`udRx)l)^mDlx4~5 zKOO-6Q;-S9&{}T#ZwY69+q*4(74;`I?D#_ns^ac|fv+(4isAE!09H2s!G>2OA0nq3 z-!604Hn{WFo)u<1+kX~K3+7z8JxcA)L08NfCv@daxK2#deo53;vEo~+pO#PaXu7gV zlk>|PthYnH)6dO;ZVCAZ%*vgY4>F|sZYP&axOL4x>|EA%jOL5^&Ah)b&ZZ}~yGT}< zqRVEAy>d;>sGphh${~l*7S2q|%Z*8CNofyvY9y+>lUA{RtfBpaiuPFKN#{5X0?rB# z4w~77zF@b^Zgh;l@z5tkmTB;?n;VY`s5rq{CO_Ui_tJEo{+7yND);buYJlu2Uc*vSM z8*Ct9+ZGu^vYWy*CiigTsqt>@)wsP8tmZAE+yPW)Qzsq$Of=|+1Ry@w^Vbs93{8KyRIes^>uL)SDR9H@x`r-8}Q)HTk9@xQpz}<5w7AY8!11b~<8>QM{3N!uiPYNbap$tuXexQE zNz-+PtyTJB8mC8=pQXIxr$tI*@jjbAN70pVt+lHDj(z25*Kq*}vD2%)qshosw-;R( zo-CHlH%B;}x?|O1QN@9_Q6XQ#Eo2wvduh@H+*YO`%R`yp21wLR!Tg7oLM&$?xGG;G zm5R4y??8zm)oUdi1jR?;>xGx??yMT}deGL8*A2nG)>! zUp@ibxE;))00yJq(I%Rg40H<^dU%4Pezkqdy@g2sCaJn(jrV)$@MiNgHR~;V!E+*j z!4trk@Yf7)o#FZn9+PHa#AgXtXjirWGnfz4rJo2(+L=3l7QKA2u~#riTk{@|?5?fy zj-#|!`!F>`NW34m`bUq8OTuw}zJtL;RTms`s8UTBlE0<=5bEG7zSzRLY$$gWIhVg^ z&SKp#iA?8wF)Lrqnj*Ss6%94IlJv3k$IAKfi#U0If8>hq8JB1?RHa%Q@ubbir>#Ul z$(s8?CtopmrS{_&J9N1yUf<}w4V(gY(3W~9IB6xwl*v**L&?yDEtn2-$^It{XVQy) zgoN)Gd0t|mQSIPwUpAmT6sTmBPnY@l1Rp8dPDmt?D+xg=B>ckm45b~q{Sj9ER+d%A z^MYvsM0%SA9QN~gsT@M79V+>9z?{ zw_rUQ2BF@}_Nx!rSaOhrI#g9lHJ*)j*glXsb*8p#Z zpo+d$ksQ?E3M&O+ieB#X6(zru%zit?E%PElQhJHlsbK;|y|#hjegY#=Ihslhe^Ef3 z{{(NLK}BoilIXEFXwge3tE}SUU7+^98B?5$+LOoTqV*AMu~EtX>QMK`F9-coA+Psz zpkV3<4`rogvZW^>2E>*MB6$Kti23(&pCd;f;D@YH=6Im7+u54FT3wllrGU`8-h?`R z4C1ow3L~$SiYldeF3%cnm?7q?$PE2?M|JpuilYp1i<~rs!L;OFZGn%Il(!zkVp;ZOONDRU0AvY2!FPZ)(ESI9n$HF>TjQ zRK5JZ-Q2xBxm?4CNgcskopk4>aBOo>U)F3-@LB?*(}DwN<&j8m_cF)Fy-BX<<4cha z?7_*2>%>iBYP^=NuPFbo>5cm_o*=V&lPl4?XDwpb}HcQlS4Aig$j2r+3NaUEkJ9 zby~XGj}N8&y~|zmD)opCX=D-zNytSO@Sx_z#^}~@Tn^Fr0Qk)EOW1D7&|$&GDYpiN z-?jg{5uDPld+3hZ*Pz;b{Uv>o@u|+5K?Bm@OhwTyH00Hh;r{gDRnb6aa&8OelJf#^ zEXXG2$XC1e95JJxfctE3n!`adyKCNxDiJH16zo3rgsR>T2QT?dpN#8znR`EzS|(LQ z{k$2XbV3-Qkb~Ybl#TGd|Ncj$n^@(%LKL`toSRqb9DV#E%ce{I_%LcP=*Dn->gcn` zJ>;e!SP4N}Xr3R&7j{tdPX7C|X~mKROtp91;N_&F{5nquO(9FXu;~$I_sQ&&Men**68!xb@lbRuZu#vd-r9Jqv!)!5946{xhh9H=-7Tq zg!1#~9pK*Ezyw6d%ho*Q+m&74sdn1sVj7tl_h9fC8(2E13SZiYk^@xWYHBRn2z)I- z1?pgSFj{ywUpHy-g}d!k%#(e%+}$M;z5JRRvg2qM^;Y*TNt@Rr*ro2u{29nh_V5a* zNn}**Yk znsyw|4j79`J6v!nJ5A=|8I|ZCWu`NPj(oKhjeC;YE}+HL?rxoO?pKH2-XML3EQA~{ zUtjtQ9v4IoJ*@a!8!J&*DTS^$**(Flceah{HIFo5o2XR*ExL*pVl11`%H2*SpIsz} zFpJFORooNR32c#agf9*vPQT5~#Z%!=on$!^3YbuOL(zt8QlGTu7z=B00im{wtc zjUC>rC9st(bf=iir|;zRls|iJOkvte=2%oorvi0EU+0Wh*DA5O4Atfdjw^d^il>7} z#?_5WT@So(x;7C6{R`qNXCDv>#H;H)RNlxpWKX4Y`4-)1o6USE7Mq2%Ol4{@260|D zmD@&+wbE7`HTIq4l+%3>i2^NONklCd(lvzJr)%rO+8bMaY@ruD(`1VNK~_Z&aVdce zCZKf1l83oZ3G{59#2fw=X*SbPy(r=ts&T8OIi< zA~OzJ-y|Z=C>)`61s7S`@Ku_M~Y6!bDXvYb{Mzm>b|++H*c)0jVv$Kw39i-`4$A zcaQJGi+lN0tm&|~5O41SrWj~-BV-7wh1Yj8>P%*)>$Bvg(RRIK%9N(ivD02K+$C+- zWS9Im_YQ1_^ICjXqfn#u1n0D>CoiiVDBEA?8Lig*3$KU2O@vix zK8dD3=@)tN^Pit|{U$Q=SIj@23NtR7_}y(XR&ve7C##j|BnGelq)g z#=uXs*#FogU~li;`hRL_%$7A0AG_LoG|+pRw$QlztT(~VJHc~4lE+N}IR1gNGrEZH zB?Yn_9lN;^t!^C_Xs*1zZ>D4S`Qe{_KY(#9i`!lV>G}x+$2MaD+$#iRX9$YK@#MHR z4{@6c1EKp1AAWxzZIEb9Rb!J$e^f**{n)^2aR8A_O{b{#7BrcQp(<4rE;do4XSg73 zclGWc555^^Yr))hF!2#a8rP)IjioBTbQWLIu(jXGdfzVDQJge(6^MyOV@J*-Uf}xt zocZ^|6$FSU^UnAk(19U`&k3Qj&rX6I+6Na$7^1Rr#dIf~z1)yIl$=_~{jih-So6&GdaBgYU5b2Emk(D=- zl-@*opzR;8NHcfK>o>mb0j9*I zjrHhN$RG5oVjsgSalwKQk*V5rIT?4Z~9YHxnVIDnP zCBxPRfjBWvOJ(Iwo0Ysmpgl~(#1qq>y!Q8>J!zsfl5d9;r6FYJ^lI77mQrdJPK?^K z9vXUyUI&+rx!Ml z^t4h(at9rkgY;-@mceNY*^BSo)BE6tpU1|s)$B}sv&WQ=#_x{|tsmFAHhoWdDt&!H z?7x2Pq&gS$>oSxQ>Kp{((;@6}nWNNdY3L6%{Y0RxHbY=12SZEtnah0Z#d)UkbjIc0 zb#`sd_lcu-T}tU+-u9XpCE53B&q|9_ZJ6|`%5M)lpLRBofM{u?3>4!gfqs0Ga}}5X zpJDn{&)8(;mkanj^|A9HLF1jNJJ_T==7P>XwKSv_cv>U6N}Rtd!Q@HX zSgFvFw$66C(HYv>?&UscSPDZ9vP*G802YL)4S9{vPD`2jMU9MYl3v%x5C6a`XIQ#i zb6IGDNBA}fdp-xIXnu5bHWpNB1{|Vp=7U71n9N1Qmj?2fm%pk+(R;fyn%14*8z^}7y!6haJD_ecw}EGIRiB#P ze(E^BGxoz_CvI$i?Hsr9VAke?x^c$93{>i^Aya97Q-B%xH;tOWx_AClo@i=Z^Et=4 zWQf02W0VNE;VUTQj~o+n_l$a4&*W#g4oJmkG)^ z$Rg7cJC$3#*sq?zg5dkc$fCy)nA2juFPSUT$+ypVTHOI2 zV_lb4{DnmT)nuF;vKW{U@zQU104PBwG2e9cngK22tk+J9+9r0PL3pyhL)bJeS-Pa* zTX!=dXN_jX#pJxTfrQ-Mg~v&lGg5Zf7HG|%5Jy3iBzlZ4a{_JJ0i@~KGHa+`A~V3L z<{7^YSriTX_c$&~bR7NGR*z2mzf!I?Wa=@Spp8%5`DFi-qPeT%o$O4W40=ekd~%$h zL+>mbFGC+9%}B)Uv6<G*Vx=!;aSv-e)WSZj_E_$XCeXS%Ms=t25VttcYZ8e{8j3zb@p$-g|j zJbQHK3qyoocID>l`Vq$>hr)vPL~de+$w{y03CW|Mu4`WmpD#`U{e^_RLyVd&B@(lQ z`Qp>5Xe7U+D>}JtzG`RxeZ2+kQsVIvlYGvk@=daW1kffI!kKn266I1iQBON^FWyR~ zAAVbQ81f$UbH?D$7(Y)Em|kL}P;oMTzmb2mHgCNQnj%bGV)%Uk zL2RNNlkfX>VDm-B?6WmWt6H8%(1zN!`&t2QYvu9_@GI+$ z=f)ZMot4?M?*yYIlAN4~E{sg76l~^x@&5syc%C8kAYNh|U`OS^dgnOO^#*r$w*4({ly<5~~Rw@hNV<$rQ>#WK~y}-;Z`&tEvy%)$IY!{vq&YSb}Leou}b|T+{0YevJw-2Vw3Rdc`3j+{0xN z6}lNGz=2uWye`6C$&fG9Fo|!r*nKlnUOAFo7lf}*GeFUOG*oMv&O4YY4qJjs*RR%- z9VV+~b?w-!tGdShW84?YnI9L4jeTa=3?y1iOB4RuqbzvfZg~=#k#C=GyU*B%uU_ud z2YY^vh_3D-V5O_u0@eaH20G&&GjQ9@ce=D<7P9DWLp9**)wgF|rVY<0zR2p!;%Glk zr5BgU{zOd;oY2`ka#Y%#_SyhC?2=t#IWZdhdbT{zo>u$};1cj|I7h*{4PtEQ1a`vi zh3FrOadg?f!$Ry@JKjI^lto0K^}|NKTMv_n#>5w~;(&iBl2yw%!ZnOaY-^hjFJd@= z9`nHNu>hQSly1$62){V|w@ z>L#lZJgMAiQrN>4VRE)+U2qUqy8&9+m6UcLN~>OuFu#B>2|s8NOmrjRW)YBr=;Nxb zmW64;FFb;l?EhiK=PgY#()45Zw!Ya@2yFL!wy==ozq8Cu-{|r+emcO}k`UMU7$Z4T zy{B6FZ4u9CUaiF7Nw2Doqw_kvG!5+MBNb#grRd8F38L2@1&F2Qx=hlu!9C_Ei%3P+ z>%CjhA&1P>h38MxLxGFyV+~*8Wtrf7ORiv@r^dqMz{a^MAlGZH{UjD>iC2FY)O9Uy z9)0@y{gGpljes4sv>17M;{VV?p3=-!cNp5MM|Tnz69Ow|-MrOut*S)l@ei^}$dgL>|L}l*8mPZ8lO2Y!5Vb02 zRI{q++Sa@Jm$H=p7S@OB3X+%$;*rpO>dnskKtX;_u*F{gc|(hM8+}Cv-9}sh$#h+e z@dDHot?xtlnO6tePKk=QUOfI-fQgz$lbORPHS8-KJ2)AQaN~e|kt-Sw=P`5QytHCpZ1(U*9(;|C zVBKT;-C-|?oET&lAs)S#zMHkHA6SK-`;{+f`N!lANk z-%Zl?z%g;BC4|}4>9IqJ7yvP<`6%vSyPDVKp%B%GT6ENFP&@68ygJO`W2l)h^Av6^ zr2oJjq1ksPeF~jITm;C?26=kU2Aa@v4TN2nMYeo^Fh_K|c!4dMm0HL-e@(08!I~_A z+cdnL-s6I&ak7w%u(PjJqSZH1>JrVKf|5Wm9hHfgz9E`(v%Q{Nn60Q&f`u+NPJ6tq z(Al4(w0#z%u=NYF)<+DH=_7xE3Xm|*ZYAS0iYKgO-Lmw>TBawYLzSZ&G(TD1G#-)i z0QuYDX+w=g=Gx}!AK!u17yEsO4k(4uQ9;Tai}r#`MIhbBU#KE_#6Vx8)tydCnyM-o zP+$2@u27vnsu+TS$W;qn_i;u#4!detoR;iM9HSPrq?< zQ{e5waVww&I!DH)(#qsW5VH6K&;R3%_8R9Eai%h&p}tyiXJsz{0{;%|rBHNI#IYb)v5eMnl@DXdM!VBQ>I~@ia>2IN-ya}r-G&VV$=>yo|9Qx-fyXZZ1k!Nm$i8oYwI)p&b|5OjK$1Uz>JRm+9AVr_vV?cPbT)J{z*1kkYKN|}rEM572 zr>H;lyaE9}r;F5x5f-=+yQwr`_R`tABcFlME||$>i@21{b)=U}YeYFrfb-lLS@vd` z3|gO#6Nub+4ALXNEW-g}ychf;boSya3Wh6Q3$SsZ#|i$6g09*T(3F99lgIZ9VJ+lT z7j9vcrT%;LWBiK3tcUxF#KmKAU!&PO(+OZestJ|1Dc^qpebZfk-7I-;DA<-&i&g6E zY;BL8TB7k}jFeKMCJy-mgFO=&Bd z$`rvaQhH3Wel^vvI@mK0DXwzL*3)cxuUW~TVpI&D01>J_V`&fkz zj;`LnfnO`URZz>-_e#AaM?Hnv- zst~Wmkd`2M+~sJIo|FuuyYhoVY4?*{Sr`p>FLBX+`-sa z9QLCl_!D+kpg9Auo8LFM%nT9fe)y+1u*IjR10Tp@hod{ilFTzZc8R9k6UEq0mKbYm zfDE2F5p~b;4nht{$stbG2Qa_0c(?!^dl*ALy^$*tUtZiL+rR?zJ_dkou{J?HTZpMP zU(URfSMieS>FGGobf#FP*3chh-vf*pfzYG$A%Ub=_!p$&UOIKJg|7~D3^|BDk-Cmp z_W&ZN#S6uw;bWtbVHd`n7aI{8VI`z=J_iN$0rKJ>DJ|Q=^xD#_@P$W znNxJVZ9(jp-fl%Vj4~-Xma{ZzLfd9|gEe)DhzP77trSFF0uI;@;HRkcxUSVhGj zf9=V+V{7Au$9-9Ca43yF;uw(rl&Goq;7kYM2=y0_*)oi9yd1+43nP$dGK%U9BFn>$r{4^` z%b4qqQuSd+K4PG`(j4FYm-(OrqI;vkjmhB$w90Bikq5j(cvF!VxUO-p33H&j$>5l3 z+A;6sG5nmh0v_*=jMIG_gCA_d?HgbF`|7ydLdNbPcFJLr75(9jNu53u-C}`zq3YVr z6{c0lo)79t!pi{9jkb1OELc7fUThUz6rgPZ^pZSZixffSSeUYPl2nBy;cXs8cqT^GkjZlW?!4T7BoAX6w0Ev&9-C$3l) zJ@u9PCjZ$9A5wMXDu?Fx(g@GLEUcH?m`~5z(^p4y41HgP+#pV5@u%pH|IN%|o3Cu_ z+MJ10h?K`mly0qUO!$78p?)73%TK~_;&o+xdJ?&e?gb^Ny$Z1Q#ETR5>fYis^Dv57Z}AGR)@!)QAplFPUD>6k zXgqS)6s3;iA~7EWDytloKx%NkBKeipD<%B;%(NYDWsA)rHk--rVSD>%-g;X@H0uyu z8YGAJ1Zqkh3Rj?vdfId#yKQNKK9g*4BRh)EbCt$L!&&r0wm#;ud=Wtg<5qcrpN$iq zAhKu+FX@e`eMsqMl={BX1P+eAVKXd3!=xiSoe}_JErCXr1K_yGx^5`#O2geMK6b72 zz^Zn5{ViU0;!$6IqgpAQ2B7R82-(hTds%^X@lH{YAh{fWqT-JB^PRjJzCa&4gcika zCf$a>9g69;naizWv*r;cKOJ<-+o6zUcO_cdg))7#THpuUO7P|K7y$iMSxS z3)IN3I|oCj*+@1;JR{ubKeAF0scxK)1ayO?(wcqa=A?Z-?HpCGv2%x`I-020p2+1x zk!_*~gS2~vAG#zg`VgEukSm1*K~|k#vm|zqyLhW|cuCSmOc3?TF}2oFy{+hza#~s! zOS;xYS`Ob>FJSk+LIJJNyk%if}k?;2G4MUMunSf zrXo`w4f!ms){o?@W;c`w@>KJ%n-EJrFq4)~6w=4`MUSNPN$!X9ju0OW+543mC?`aI z{w=SiIdHC5RLLh5j-Sp}EDq~EA-hpJn31tZYOPatXRFs!F==68lCc1FhdhPc!Ls{y z(qmJ5rOUI7jO8<3TszChZg^{|LqysJbe4Vf;uSU9&Ez_wnM^ZrxF>Y;UW2$|6+ou4 z8@V4K^L`twspKaDROSW{F<*NSBYL*S+;?FfmWJQ#EBT~X@pDS{K>_F5rvtfU?rnA& zcvrwZ$7_3{kd+sk8+u##8JJ~CF9V-^LRbiB-R#cTUE9gO!ITEaSAmbJ-Xl)>;x++0 zz&SlF4U1~-n@Es6?ZW7f?$lHP&7}?Oyk*_X?JeH#_#bx{NVUClVrV<^Nj&X1cCdtX zwf-2`k>@z84xEbNtI9~k*?RZ2UV}_T_@IybT`$<_W^Vv5>eftb6;lt3=##lHEXHix z@J)-5DVua(&f)#1z8ot&gTzzO6L^%a==;hV5$=+`Zh3$}kjRSK5$@XX1Tw^-OWB#k zUOW+gCb*kAv8KWGoAfR_s>VxHANfB-^Je5Cql<4#CkEJyy(sJ^73pr`OpJONrK#Z%?i-jlc*D}Uta zeiE=WC0Ruwo}2S+lfMVyuMEG14ELa*sXU-BK34_%TBdAlcIHHYKGS!K>OAC z2qw-x=|^*JnO23z<+~Y*V`5qMnNr4=vySj^W!-L;XPk+5 zbG>?WTYR|s)syb_k-Y9eM{QFF7XNbCOhUAn3TvYFnpvUkUpmSr)y zKh$4(b>CvB&Ej9uCbSav?6N!tz2K)e#?Y=lDBlV1)6}|T02WGEYS8`Ts60L$hk7LV zs4yyczbOewjaM%%H#aPw0XoOu4M2>phtJeI4b03kx*ux z=#f_uz7%upyjtI|PIW^ApJB)KU?gF0F-NBiHzgqo0|0kpU_msm$_0A?)h@h~!C5a_^yqG#Dhmm+xdo3$Nc-8$$_#rI`B z#q;=3^~Y2zyb_vGbA1kyQ9EsvprborJB@GQYRV%1mH{rorynn?;oX)oZC$%so2Mbz zZ6TW-BGCadp47+2h^Jgt8Qbk1istak#QTudPw!|#n1-VQj^sLk!*w9iR35keErD&9 zdza7zJ$8+Gv0>CnM?Q6N1@fhWYK;KcD5`U>tluvke%fw(9?v@ zZ}|dpJ<7q^Q$LKUVjwP!5oaPdJNbJsfk+UEO(9;S^c0?2&uGk1A(Hs0hw~|E*P52o z@s?r7jPch1j~s}LjzJN|{EKH=( zT#yfmyI%$Uq2E3Hs|4ML$?g(-=HBL-jMzjDR2?lu%m46Xh(OQ z-fEzhbLGcjmA@4smoizn@f^mOU>E8Puz$b5f&iGm`OSY}{v@I~Qkg0U;&M8i=p3D+ z^z}g|l=O^*x0jn3OrDaBbBqKZ0<@$3xh*?;f{qL4do*Nwx_xKtC*F{GK8vG1m0a)r zf|tI$?sv<$Y3I{J@zYUBZ)3*A=3DJ8~0||hlwvx>3gsPxLYl(bqi#{ z6@2x!yiIn@Tf`ARWa#kODGCGpQed%>V!oxj-B=IX?=GHPZ_Dl!Sudwz6ccx7_H-vx zL-$53h-=vhiz$t<*YXL~WxH^+9fy?c;y(VfwT-;4-QD)=k=K5vNkWK4?|LC4!q<*F z!G(14*t&R|BR>UGj0oeZm{HIo`DjO*>&jqL)ot7ld%?s`<{2i*q)f#GGb(}vUaWYK z*dA|_CLS#}ZpEl97g+lkA+CCN3X&TLJ^?VSm3mg28~f9Ug|)P#YUxh~!ZH-`z5zgQ5y!~$o3M6j!<8jY zIkTfz5cPrj98N4umnB*b-7J0n)71sQcfzg=S4VUtM{K9ty(4QqUpo1sQ=^X1I(%D> zu$A|Azk)sHlM=vE1a4xr>_85CZ?4X1GP~+?XK0Y%u0`=XZH3yT!My4beS7g7-TDjY z@BngE9>6>9l5S$=GhV<~6FxcNPqIk|z<%99I$iudIiard?3bl9&hzx=sT}cyIpPTX zq3*!eHY}>m$n9do1#>ITMSa3+7lk4{N!Dt0Bo?J4g9vgzSlJT&@M1d>)yB^>My?0N zxkkx}HUb9MrVaq71WL_LpgZvn}@;sPtkV*$uzq$g&R z<$9Jlph?B`#qrC7OG1US0s1W3@Ah5VKusRN>qzXhs6*Q&rJ`AN?_RG_Rl zz>9q!AffdAYGKVh-Z?ZVJ;IL4hzcyqw7281Y+P37qf$RW47Oz}E+u~g8mf@o!`qwj z>`YVvT7)71CliV-T7))Q8XiWF!$%CnokM(2VQk(C_l<<<8tS?=#tNKQ+tv}ia`(o< z&w2E|()Yqf_r6FeGND>%dD74&Bw#9P@=vf-d80H3%>spQT7@56_6UP5oS<;Vc+y60 zrR9@8-7Y3CB54w-ClXoO`XE&+(Z-DzvQKCo;lV&haNPwMEK?pn^q(NIxqpR`$Pc(O z0AP{*joby_jg|$EjfR#5lGYn1P#4s4tbEfR=uW=a=<*=6kX;tFq5-|oNC9$rgeH-_ z7418ZLOy`U?vVGtKK|4u@e;Ubyy$+~Yvk<*AkPbJy72Wua`zXXW9pVi*(P|7rITc* z(VTy^)bT7D^nHH+vX`Y z8-HNL@0vb%K(%`I;l}B-WdDwrv$j>l7Wnz;mFMYjS`Ncb=#O?d;RHqHPawl@M5U6l zsti-Ee)9>4hWXLKQa8x3q*}>%Dk8_D$?&9JiaFZCFRpTleukrC0Q4e|nu5}OEGDE{ z1FqP>QY^gX(fxhd{M${1W+Hh+S4`XB)a#I%d~?)cJ#b@0ej!e9<>E-5a@u+2+8zKL zGyf3hrIr@PB;mnJG7$0VR7uBeIM}#z`lF1`bOBvv7E4V~RtF0}aUYegINdG2IFNa1 zzKH7uAx<~}zuezEQZa|8CM0Vp!Zi>}op< zrKA<%Lgj5k!VTTs#Gr*`^Tp9(JoN7`l05w$eF7o_d;nqG&u6{1{}ude`Bzwta3au2 z{%5`{i96@c{Z8@-%w(BmJnBk?@)Src8tY_dKUmJqRb6)F+P;eFvfqUI6EyO%u15H++OaLFGnmMqA!;9XSp(m8(Lv8jk!%; zfvUo-i)p@B&7+e;ee-%is_n`Hq)eQli4W%pqbTeGI<{1@0mXw+%VdxhK!np${|3=c z!#mr8)jPk>=@;NwIjX(QsdLrPB!T6<(-M5|rgiwrmiK)|*~#05rh1|x6>yf~$$5bf zXoeEcD;I8wEJtYavGG#@fw@5sM5pTMio0kX83_m8gwI3{3qeptn1gWF;D@ir`oOT5 z&$@!_{#HNoX^xDew9sZ_T)W1RpKJr}Prl3H)lM@jUTxsb~$bc8|(o^ma6}V>ow7!09 zK?^^2nWNnx9R_Yuv77J`pF$i@2Ny#wnrpB>0C{z!c4zc%2-GwI*M(PQISvRpIOxzC zJzzNy?@NNbd)&4Ym&bA7P51V|ai63QRdomakps(}qIhsS6Z%!C4%OCi!`T!Annh|Q z{R*I+`!v6+rtqIWb~7K4K?Zxg#C!YUMd!5*y#3Q^$$ouYkhb-tUozJ~4Y$Z*j8pX1 zl36EN!k2CpJl61su8HyKYs)jNtW8b8Rc!(+jGVi5Db^UD&EELABv|RUA;rgSt(RpQ z1{Kq221*)yq#Z^Mzuxyd$#63p$vVn_DpfDn6nAjYE%v4#Z$Q1@7Ju}! zqURzAJIY;Y*+LxBD|!IEs7{OM3BSO?Rbs5qTkq*5qaSrY10Vgs1M{OlkP5fDRws#C z82-^#j3~7$*mimL(dT-KAF=2NzE55e9g)f$ws2}!jNktR8*)^;QhN~3fZ-+&J5t&> z!oGMVwCfVa-XhnL`R_u7746;`B*pr)`5%-?kus${C_vh`_!a>PeU#}Azv$;#~PWnNw8$X8|R;mRn=Z-jh3@AtB zfBLfZV|mnen1tV4-(^1?14*3Hc#gKVaE@Ypdvzwq{aJs-p_q^TW+4BFTM$V@S3qCn zrC#UC(-!lRi=TyBzs3AfErDVy)t=(XmC>CH8hj-x&HKV*ICQkbhg4CUPAx_t8%85K z(wW|_GP0_3*(L^IVTfgtIuyG$jJcCkE|UD?aAQ{?Nw?H}(39}u!TBv9qAlrPN%BxZ^78!&u<53czWkknN$euWPb0p2tpNOEIS9&-7vGl%EOk8 z&lY1RX-t23daxUJ<%Ec%)nsVQqd*yn31@2qb$Hfpu5G$Dv8@@}j4hm=oe@_T{JW^^ zzbnNS%g!jpWTuOtuTbAyc0mp8m@;U$I8+*~zCJvJm5Cl?Y-~&;h)`xpT&wYk)9AAMm;vSZtfK3zxs=sXqf+~!1?0a2yukS zCO{2iLmeqZ)l>pko~xgam46lwdV%G?X#exLe*HX9b$%AykLE2&$5S*khdfo1NiY>? zb`4BJX*dXQX@6b7f4;ju(EKm0qi_B(^?&gq4fY?~_pcgDPySo$XpKJ#CI0Jy7ylQB zz{}Vr`MK0zKWLyJoU)iOYI|5nE^zg4c7Q0faU*r>nkT$t=9zO)?@%tEw{rt>{W_Jj za!So8=;y51;{T{k+W#8X?2UI2HTId|x}lN1OILFx_j@%wxxe@}&zDP)!>OAo6ykGj z!0w2x7s>sru=3y2$hgH=9xlX>7;9dIp1d6(W5DB`f-DeQLPcl{R3*x!CWB0L_#`ug z#ID|ia|QYN~e4l{P0C z8E-GfJOguisl`ONPn#a$Vj3FtV|ib)S!4A{bQh6M)6$PU{Fh?_&jSOi*l?zMAsKwN zy!LxlZP;1mkxtypjR8T@topFRy9ihA#dk!T3i35QS_ex|95wB(4mw=Xo2#bQ1~X-Tx4k&d1Z~CX_WJ#!e8Jg-worB{O7~v*96+ zu^5QuIv<64#zM(}*OBfFsoqa0XG65IP5-#Qc)ToMg;uDLg65E6D9P5(H2OxcvO^1^ z_O#XIdXt9DXlZrvo;TORFyRk@qX%ItJ9cIVVW!EX&X!y!HtrwAP}d?;KROgzv3cTz zHiwNBU{~mysc%u6q1jAWUM|qBA8l}euGYYRmIkMQqb%@vcVyr#nr1$q5e*&Eh1XC+ zs7Iw|OV-vk>w@SnTzFmq=?~5OUdpw0@E;(s1a>Zl%BwT8bTJ#r;=RyoNu0n=(g$X$_nr|( z#-*?1Jg11gGA~H=GQM1SxUaW2woB&CM|jczSxo}fVdi44Ky2Lt^)FZYQb8zb&45OQ zT1=|FeduVZ+sKdRJDM8$zy|h4Uw`>a3H&V!UcHL0{zf7?Iek4PNrFCh;Q3O^^zKZD zPM6df!kmKME-FX_613JeB#*^ZsSH%A556E+iR!VwnCF>YCdwX)h*_FagR4eX1)~y%i$2#ie(I^iE%2@MJD#rwxD6dKW&jq$UA7PY zw71a~WPl;VDYV0?w=%2(&u8rfONVSoS!Y}?=A)fV+^d<9IA^vum3B{!ZThvHn>R?Bfr1}e>dyxpcuglKT6ABZCqE4JR zPo~7l+wh!a)y9AoMk=pt=k4uu5?8{L*mabnXUdy##sqY#Y7sJrmY6 z7Fxz2gqU3gdt6U_X}nDHK2_1bUUz80%y#jr6j4{}Z!E$jsq=;ReV_tMQauP$QE##% zDy1#dzc}fUk<>ca`??k!qXK$NRQ3k(^<&%>N(a+lYUCL&QJ66|%XW>fWs{6V##MLM zzJ1FxGl|YIM_yp|iBJBp5#GJSJBdo!|Ni)8U;lgx)uPCi*#{ruyQ2@hO_B*siXtQu z&7HU|8(Mk4q?v^zy|X@VvWH#)7Jo*5_l{qNl_O>ojq^pW*{drb@CcTxB{vx(8h77Z zT!LzC(BHC}BM zzp0c!qB(!Y!)VG>wSAf9B;S`)v-`SA<}qNx$^9wI9^7zpX8w{w{)A6FBVa;g^I?|L zcPDYi<5bF#DuuD#F&_OaJ^m_-?u?X{eJ4$1KT=z!Y1& zpFYv$$6EzBfO-GjwM)6a{o)-X)*Q3C48*?UllE={?}N~gC-9w7BL3@XFWDo!(6VA3 z#7>3aZXi+b;C~icJl*!IyaB#vT+X*}CPb=&Zd&+xQO+NIx_zhfNE{Wo+z6e*C|?R0 zA7hPfm!YG}$(`7Z8p<_yDoeet#Gzn3*$87ha!I4qc^uo$#G@P-sviVTB(SDfOWKL&D|Vm^Cg3ftXR?9CxM#!36%16Sl99Bq zZZ=Kq<0B5^tt8&JwAQh?=lCn^cJ%}$_ZjL4y#2uxNw(2m;b&HKgb{jpGl1{lG-7sz%M9J8h_ed z_bQ-(*7IzZ^nl9SS@^OHtD!M;0(+<%W~h0)K;pp>hz4x5yl|_ydN$j#yc<8A78YtN z%1bb9l@hS9#@Dr;+O=WCvwI5~_>;PF|1_2W4@W$Ma@}X{{cUd#=WCzJnXZ{Q9~XG4 zJ(z=PBN9SGzOlYPa(;lnhH<&c5BN|U;b~R2YG!qPk-lKT-iwnx)zdi1Q>zcf?|to} zH;?~v&7pug98?8(kork_M|LHR$#?gFa;1dDY;#E2H7|oAvdVgh2n;#xOe1x``VrH`6Zi*Elucb)^5Omz1>rBiZ!57(t=ssUbu%-Cy-u&#>X!1;+a|WA~2x&ieQ3G)3QWC5)}`Iv_11MQukDTz18HZ> zQM<`K%U^BgnVqwcUf3}I0XT*G{b3TCD~pPnIgKOc7$b4IT?H=*Y+EGA0b=*3^WWxM zOtg^O;SVX;cGYL!b&klC4{rnH<7ZBpWCzLZebVV8;lRK^iUUu8AAb2Hs{a2t=Hy}n zZ8A&=Wd(A3B7|%$BEYk*q4Niy8-uIq3QxhuPXT-A&rf9TKXt*sxUc`-A5De-HJJwl z|E()c=pTO4zn=I+COXGJ_PY-R2q%Hf-Sk~XV6=YrKmEObO(OcgzVeSEp#S%0{l7m% z2ykKP-D}W_ExAi;N6e?Yly!CWtM1Ld$xCh%+GTot4o1t!%#jwK-TWYQ#K=O0)j`JA z>Y;Qt77z8M-wvbjp6Ej*E8;x{2JkrvOUHGPDf0s^_e1e}(gEO|+t^mxMm4Vd_|+P~ zrQn~NNfVJRb8tg~WCI;BbA5$_j%uFK{q1~1j6_V0keu_53|AY*9q05Fk}f^*3+=-! zf*Sw90-T_PvjUx1(2xNrajMZl+Blv;yj|&xG5NTTFTAZ=qfjUuJnwgw8TV2&Gmove z+7-6T|2>DO&&{QM>^#P>l?RF3Aw*xh`M&B}kr|CTtNPXVS5+_J**}2)A0|fwcU+cN zmBlZm8evBNOBJn6>ZbR-;GPNJEZD#b6q_?@l{QCN-Dr~Moo!f#<%x?d z@K_svq!Ji*xbpQ*!|n)kM_%am`4dNmOwkP0vXGGQa4d34s;AGiuwGYdu=YL?aCyR} znXuYdF4HZREIsQHKbYpr_2FR!Z7=*MBLE-v804mW0_F4!48lA&|;RG%;pFsy)QvUw`Yd1}tnOS#Q#p?OY)=(Sl zeeF#AlDwLT@N2@FONxx?SdmDByY>iYmxTBrj{y;jvd@wz#pH@wWla_h^9C)+LridV zF1GBpvIS$7*vOHCC;G>-9gxO}*Xv=qMaROee)SG00_xgwc`Z0Tr|}#sL4%`d8#Lee zF;B1yEWWI*G8t_7J;7<%95|h8Oa)IZ-14rg3N_x%2GoarTSON4U7{wujkM(~@8-;V`xm9-f*H zGqX}sq3K?9|Fi3v{=iH(qDsHjq~vej4*(UCW|=E5EKAl0DWw?qU-=?TWlfuMj~GVP zSFiGH#=kt$(6;r&6A-zq;pq;_lvJJZ*PaaT?hYJ@+jr6wHNp&-v^Kq`Cs^No|+>cU2H8; z4RCA$V!fxQr-`CGOm~%*(HhF33&uj~P~RoA$`BdRnlxx<^HAYJzBve2SX`)`k`TU6hr^8rApX&TT^XZgw{0<9p3|+ zub0(ND{mv)*i!QKnA3fuwH>_;p+FER@f_e;2F)2JHQ(F4>^>2{$?hruJ zQBL0&fw^z9AE(AFy+nv!MV>?{K|-l^Cnc?Q@2cHN59Y#?K2fX&-O^U^Pc-nHO)n~^ z$H95S(~|bmyj8hMNwIJO{L0r1FT-tavS3HlFIji%lpNpA(w`{+SN!>Qzh4j|k*+U$ zZo(bLk;I+W)^dHg?4&d$QJShdV6}t%E3g+bTs z(1jaRtM!!ufm5w)l*}v~=Ne$J*OAxyZ%Ch(<^7!zmx$KX1DHW;*ke}LuHP%a5)O5S z8k1a}ZOmC}YHZxJ&?Z}6w^k4xh+*?HbgFShJ~57mEey4KHd0WPb}YzZwAV_fFWf^5 zws?ORQ~Se~qHv){QF59!WR`o&2~F~NuWt@h-@U8wTSAxSoBa(@(4kJRYvLO@tD8g4 zI}GZRs29az598Z+tY0ytye-+edB*I4I}Dy{IcZDFf6ZHTrSiIUV0CzbB{W z$72U?ti|mDb{b`fjep2Ys#`UMK^o9w)u%qH>&cobik9qCSI=2jF9=njVGxp0_wQM3 z7mHcFe2G;-v+%O0bX|u)6uZ5KEUn+voXr$4_aB-ip3;9jtnmb(0 z<-so+nj6FSF~cKuKD;+_<5grULA$&mp(YcXLc?v(+l47^jb3GE`b`b{GYO|Mba|4{M{X`ut zRrLX^v^7$GM0c$s?IhW~c7JfSeeC)BSC(Has)(K%hIarazgTS7aXfl0Xiphfq&o5C zVZg+Fnw*>%Usfugdavt956)FwU5g88Nq^I&HZwcaq;pYz_>OLK%BkALape%E{Kbwi zYBlSZv~1*4O2zk5tYpQSE9dr2aW&`7O{N^d5l>XrX5Lvf;mI35Bg&%ttSD!EytiGf zEt25l)8W5iAa;(e1K+$zf&X6Tz}E)tqnnpsbjB@Sv;fFT<48^ibO%TfBhb{2KPXeUxB_ zLg#WA-daqEa2KA>_xk%WpKpZl_^9wPSF`Ar*29=TlB{1&b{DzV**EC!38g9ncW$cY z6ss{aHaS0ilSXm-6_>!&-5r~(RP&F$wb1x++KtN*XxW)91f~FQB*5P!J6$dH2fY0F z?Be^Tl9-ieEMr7QLwyRHLxEt=@DxlhsB(CS(O@gp#TLzv{OtMAJ6X>7vz!TA_CkyZ zm6!7%u`^~sPUyR(Pfu@J|A6)26*rKKw(!8J>)^?jG##rS$OgW6I*p+_Pz!Ka|9>ElXK0b}v}i)j=Vw({4+ zr6Iu_o02gJN2XuJZ!IZOxmPG$U6F=xc*|0VS4)4CS9OCa?R}4e$r*=s*_TnsdJ|`g zoR0QU{+tk+Q8N$G0{OYa+?2>lVVn=bZv|X=K9(HSX)$u{l$smplHvhXS2sSfRXAT< z7J9wB2p1tAgwoRAG_P+b3)GAMC?i1XXtyxha8_Rp zEtSYfzl|l>Al}U;JL3phnfm*OPYBY=9nDS@e3fy06EvW{3~&dZ^Fvo~*2M03Q<0r`E9%1(ejY z{1j<$Yj~q{m!sE`d=9-uRIvAQcw*P0$_ZCn9XcrmQN;mZk=y3d@FJv(B7;my`LS}T zcf!DYhs%|d;B`3g{45-N$fi*>xnEI>3b?NxP=;IFw6jjzRmnb|_JYmhIE~|J*(QWv zwm(NV56v%oSZ+*U(s#r3(0D*DA;DBEvEiwyRr#njA?&@GJx7Duz|nHb#nF04r)2&h zncFq?t>i}xfT|H%80QVzY900do>QMFX%os+)Gej1P3$JUxj`Cxt?L4f@>_micEOGr zd=i4G$9k}8Cm^W)5ok^|RPEKB#J?}lE`R8`cMh4K7Z%Xg9T{75;Im!my>nT5XZ`6{ zWQOU@{R@$sts6i`u5>}oqZxpzox;fY40r#0-d-eMJl>vazUpw+cZZn(z-x6}Exl_8 z;f3?QcUHclNFMGEWuWPKDZixvJ6BwISyqr&SnB(0_7B}caefIbg+O%8UPNW#_b=I| zl*=!0Iv~zLpD7bF@0_OyyN$;7y0{E!xf#$ik!JxQ;zq(JLUPi1j!2v%ZUX-8h9a9U z*|k~UN^TqwI$eK}&D~pl*y=dHe|wQMGwZd|muV^rZICarbOSAjk&Y&fXn>ldGwJ-w zM_Z3+df&gY7q~Il6JD;!;U_Yp5ujL)^-0{v1rQ7fppx%|j`bai?c-~Ykq?);4Pk?085!4RRU z%4Pp6*D7R+CI#m6k7T&iBI$Tm1d_)qyT>gwgM3fyXPzYS z0ZhF;Gl0WKLO7VZQqFUqpMKCU4#fEZWPYqczB9YQ4@n4UtMnXu1K-F}n;4w?6U^L} z7`AY6QV^m}M7-C~7{P(Cm>Gg``Q;y;zv%pmO~61e@W{##DZX7IS$ko&kt5;FRk!1O z)8+ap=qTi&kwo6mXNJ#%or>>YSEVhbz9~VsC8Ta3jfYjTl}vC;jSu zyJjZ<0F2coHV@{KLeqtN-TT`Jq*jNn|1r;SxkT;Bc`z3&ch={F!W);K%hK-rE zsB_ivq)(iW^FcU?hT{@}jv?Lva)70aMYzo+y$uQ+pB|IbH+l&IEi1~Wgu(c&pFd{} zz)@$Vnl|6F2bN#fV9{sLwC4((XYMe6hMWDo^XL>+Cpay>)_EsIJKxGWx3QF{D46p= zhjxF176d_(knj;_*%~#zsCLZml-l0g$s<+vf_LsuC(FS_b!zr+rU2+V6Lzht+df&5n6e$c3B#(o%ERCrEzsvMmBo>er;Hn>0YL^4x zl#ozD5%L0v*yI7MQG=%_ay%gHc{g1{1I_C-(7)Gc!|A8%P$wN3+JU=%PE0)QHOBh2 z?dY&DA5!nSX^b?Y$*J>CBIoMYpMr24*JgV=dzWW3#U90Q;TVqduw0a|DdW{@a`K^f z%5;pcQ~7i-5#W)z?WxZ>WnE-aa^FB;6;n=0l%=K3`UA}!CY#NcvEp0JM|m0XitY|5 zSsm(BN@O5?@W6;L;y0W`FvGL zJp*!WZzE2gt0;Fs{cs2AVhoQ{C;nXHS{xvJ^pg6&%-%8SrEz7_@&YzLOe%Qc(nSYn z&&r?n%GI*B+K{9e&9#-{zL)Kf_JS!&?9a5LFdmYxdPK-N$v1UGE0{CR5gs!@e|?%=!z!!dPXL5^ zdoVX+Cy*vmbFX&~ljlEUj|d5;XBUcoU1ynf%%!4_8v91>TLc}$G8*sQ-K`x`lu=gi z)G{KvdjexWed^r0bNl3W?_0vG)1NQ!z&THK);|UXvzvah`inkYtMsh&i4U!(?yo-* zUzb$5UhuGMR(yScr!ZN3vE5AKUtTX}07vZl?X`(5Pw8M?j3^t7%*iXCw)kS!hAX9e zfJqEHvmPM5=L(9Hp0F)mveJ!;g!^tFiu$ndd&uh0W>@3x6*q5`LS}Ajg^RwrcJ$2M zGIv{f^I@+~Qj*0Tdn*BtuoZS$OB(o>9IHOP1~b1GZZqtbA{|bbF_d`Ve0ZBC4jAy2 z1ZYD{U-|E4H-MIuQ~b(MR~~TPLu#BIz8;K<;5TB14pL2gu#nAuG7xBsu~=be(MeX< zxRk@}?#odcfFBlJuMpd5{@bMr!6LF8+HPIpZQa0e9HM~ zD8C->=QvFlQAq_5f<7WAe|fw4(;Juy8Qg?_K}izYeK`^XxJ2uv1RM#O_s^kC>)Zjs zL1#KJYo+yhoY4($TDNonEY;EqbawoZ9!g7Jtyzl0F+VK`(TIvB6#g=&27`yfz%Ahn z!47j;@^kjTKfQO~neqnbo0DpaK7-CV|{ZWMj^9y1Yex>xOv1R&Q2ADUdKprXhp)d zyba6FuOMfqUk8uTbB7?-^-<>XZ%B!Sto#FKX;VgQvP7vkqRcXLS3ZyAe*G)fW98~s z9*CB*&P=!EkJ8g@r1FbQhP(vFbV*H6ph#`(hqOKWQ4{#y1pz>)v-d8MVo&t)_AdJ# z=%#tI0FZ$S1ilSM{s}+<(pOKvwChniDpVkXWvaR9oJpZQXy2wJjhKS5?%oMA(DeX64<)V+oW{fNA(yi&k|`xsF>seX%#~2|Dh$2y z9V0B<6|jch?2U_Z-1ur?DQM$}OEqe{dYhaE=;)!&mcHOov42!ST)0coQtI(Mk&j^x zIHW>cUeSoo81NyrS1tewXD-M`Ug1ti6J=JIdjSw9HDsk|3Y!`Gn9U-7Jt5KWPiX*k ze1W}=V!ezb=D#%#_l`Z+>N@qKvwL;?<`w z)QOv1H=nof=Ihi-~SSja$ zU0Ri+J}9xez7r1Lt{CSw!>Hfi!NCNY>jng&9XAwlI4q371-?wJH2@3xTQpweA#}M- zG>jqmwTnAOovs@)^8FT5Hh@Gfk25l0Beb{42=oP5g0SZ7*HrifWM7qE|Hp$V%QvEi z@;YB;&fU1PbIj!2-LBj+bKlwifJtyjB;Yt#CvT(ENX3-ktD=*wfWI-O3Lf?12IF|? zV-v)6wqXJj(ki56fTEMUjvH8hRhMFeojkks#j%@5aal?#C%Y>YhSa1z%!R7y=tr8N zMQ(I&W8Y4BzB~gapw1v)g@`KqF4M#fCQf=Ugz>Lk zt-F}JWiBAAHa3)7F9ezsqn630OY)D811VL%O%gx-@NQt!U< z`nSK3Htn5)bzOD0tfy{vA#^{SZN z-h<~Ls&ic!qu%|V-0kQ#b3u9qptP?wCq!PkbPN^vV11t9;|aTj$UYb0Nv!_m+Wx8U zJSR`cHgc*{4VE$HVdU)%zx8#WPl}3K81fHZI9P*!K8D9mID#K z8MK+QS$yk-_Zj?SD*NwWptmUBXzpF4S!Sl2ra21-pZ1zjt>4GSG_Q?8f++`UF$%4$ z4_fAI4$g2R_`zZ5MGTQggd|^WY-pEe-RtqGdDk=Zk2nEgUjr`z#<4{?{7=J6r<~WS z#1-1j5wPHOgwtCugM=d-=FNgngXG~O<+j==r?xvvgXRZ~+qHg;*;;Y3gfg61rt)vs zHg6Cy%G+Ogu?Hw(Khs)KGne0@OIX8)OJ=&?jC?#SV`%RY!Mfh> zKSG7xs1b>dp<|#CQm?K*ja5g91mO3V@=gW>cuM%&gZ*;NtC*?KJ+4VhYs=V8%ZZJR#_z}jJZutdZmviN1QHgi9~)t0xY~7% zrBOj!(_Z`G0c{J^eM+!DEGmkVR|wAiM6Oo2*ArBYhVdFClRI-xI-ET15i@g;dduZ@ z$XaKwEq(r{wJXe22Q^OpTn%UneSZ5mp<-?3F3p{_RhgiBdQMK!zu++sgW$4>(}u5m zPZjTZ*sPGO{#7qvo@bfC;Ih1m4Le1-?=S=~LNK3Y(8hRq4K}0s*j7qeVWEA%Rt|Ec zdj{TkT|9MTGJ5CqAHwWqbyK4J(y@U*s)FlDj$3f zUM+EBOr`u|lu5az9-C_vkg@q$bwQ7ge-AB8E5L;|CYdfgc+m6}J?h)g6;EP7wu#El z_AL{O<0aVj8xjHh{x#K)7)aL0oH4um00tQQJxjq3{sC`o_4wrC`!`?~AU$X@fB1Xl znb5u-KvKLZr6eU*;0NEAU^z^f$KqU_{8$PJfp6`f3s}D8i zDU$1XOG)$j7`vIdqLGXYHu*~|1x3Z365PxG?wKREKxCYmU{C9G1+U@Z z5#RRGY;CQ?jpix(?l9`p3Af+P2?+^mf0UF~6vb0yw{it*eHU z@;cDwU5|5bIW-L7MIq8|I<91-#JDT=tZvOf?4u;kmIAmmjG=n5ww%r>+O|}+3G$hcm6o^zwAKm!L!dpKwY^@^(Al+;-*i);(NqkuzLYnX`El zt@Ir$pcxLt*8!f~G?Zjzxhtb2Esyx8}~bSt=b`{;fIt#C~VhP&6Xh zQ6Pxs@tLk>r3+rGNomUuj#&8l!_Dc_bKCNZ@YX^J_1)ijc~j#qQ47;twf$DF|6L1k z@?DDQdpi;sS48cnOpvS>J+C~`X(h6CvQCqRvZ4l0&kRUiRG zI%{fN_thX7=ir+^)i6yotsrw`coeMKX2f2 zARytW1XL6N?DwY`UVOKSg%68esp+a!)T0;}?zHmZ@jzNbOEr(vYUgojgB?RebGa{p3w6$qiGOf*>2BH6 zQ#cjJf1!Y%Y30vw$7Nhi%)*ue97^sZpWvRG2#^ldCCyAs0p-vxd7b-mjF}!*&u<&D zK}#R&Dy(<uGdAsrV*iaEU9^gV2F!;LYQ(HCEvw$ zLUNjc!fxV6VDr9T=^sEA4SE^L`T3!ja_rgBt_k?*RWrAxyh5g*q!-S2zPZ8z$hi6 z@jv>#vc9~PIsvP&?AOJoX4^9KB0~Qe_gL+dD)b8qh9aAd^}M~0qA z1N_F&K(dsS!ec-z?|Nn)&X3js-49n8jp(AswY!Cc!g`~pi2KM&TLP#t!wq+L^6Y>V$GZ*FUl{ieDn| zURR#Pfqmoco+*Moz|V_8WGc-yGPpPR08*0a;R>If3=Qq_6zZZoI#ggmGs9L?O1aA( z@y)OfTRh@^ML$Bai_49+?!7`9w9fE;rNG#Ej1ht zAO&-MXU5Y?ZVy;Z^&Eo7AMtmyUaXB^5B7KAJ2abXw%#&V-q+(0=sR-~=q0?S-R&0& zuc{iq%DhLqV%T&Pq-vS^4ySpEq@cE#&ME~kcU4un2s`Zo#?b^HIJAGtVk^zxwguU3 zu8a?8FE3kn*2~!g527TLGBJ*W^Sz5XE|kvx2MkmJfpA~lupr-#M5#yM^jP>zPi2X( zUoivhXM7OjdKzF0Z+mX+KQWbXlNuAOUIp?)i>|;OjS^;Jif`1nbS_Rx3Id z==yA$-C39ipIFy-&fzkU+MBo)~<7mOpdx^8xsXSRgLt;Yn%QP#?*~>S4;n11TD;SWEzRUqOYtZpx=CKXiA5nd)TyK2hCnTt@oF(ELOA+x zD3M5>*%55W1O@|17KJz9-OP}x^w4vAD!HkWIW5&oLm2X&9zK9t5|ff-fI^%=(=FR& zH}2OrCE`F;7LbgL()l0-R0IK#yg9pa+0wWw7axD)K=|Wt9oAhSPWHfC4-Y0;y+yzw zLA9C%A;FKD7>S3zgRoJmX=mC)!MFMv%uB)qHp8 zXw!A9VK}#NhZd5UZ&xZ{&e~aT!rdCO#~)9<4BH{cyt)Hnt)@ZsrC$zOeGmrH@ zxYXCTw3tX;kDp#B!G3ETGw#&kA z3zy|s>19Eq^z98QN4M6OkcNWA9TYRP6jKdH4XGApigYSMY)Hv+fN35^7Xi1CJ7=>t z!B1*NRuK-|gZF${20%Ig5#cN(o47R8cP{IwiuJU$Y+4dR_8F}M56eyuZtj*#5gw*` z36`;gB2@%?!`oDRA-*d#an4^(?B0}!9|dn8?K-#?(IiuIas$uq`cAwU5*k%|V*y*S zS#lCEQhfnDmbgKg88+s-rK#slhjX%@b9j3PXeCV=7 z>5U+MWb#v4Ape3N98*~+1O%=kykkWpGmc0k4=u&T0;jn&BtWOwBC`oX|1J53yM6M4}PS!_GUU}O#f6FPIYbm8Lt zAw|7S08LYgsV^Qf)~#>e>+t}kK)?1wopext(w~JbU=N0u2`S_)DWweS=D!aQA$Lr( zq3^NuB(ts|CZm=FQbFCe>z@qXH}y(Zs6;WT1?naYO1r@)ARO z@s!?elRr4kHU%})IsR{OK|W49sQ7c-YR%B=>8-Q-!=~)KqS`bo?F{&UBM6^tG5Qhk z?DxzBX4%B1U+^GCuzg1We_NzEO8y*OuBD~&<|h|?vfKLEPbbuU2d`~zEgG@3mSZgS zQAIUS2_Abqu>Lq7rz*ep(61HhX9tt%IhR4msjxmhK)eFmXE(n`F+q#9;UpJ z7TR01_Ao4I*LT77?C9P~!ivy5>1XIC-d<$7qx{-kq< zo|`{v$NEdh_G7G5hh~IbRRV?zbED)9_tC##AoAhow=vI`67ofcsD*3KGyaJpFtM)H z(LCZ9(W9f7fzPb0{3QBkk&6NJa&ES0NIWr2&{_*BWnM9UedxkXSP zHJE_TU9~tbz_$iJbPxb6oFo#;?Vac{6(6~c8!_b*N$c1GW<*jlce>UHM7hFOYimoH zayVfk*qV|Shc5vDTp-#Jn_*)u+JTG;lJLY+v!uZ9y)O=gTMMu6*DqN-4$I+>{CpN( zX#-7ue@v?tIbZFT&(Et{C6r7}pIhBbXxB~GTB=dyYmy1rJbf{KY{o1Aac{CXWg!{VQ%EBntY3w|nm-MN`|J zdbJ8YDkh!6lw7&J&eT4T4p}8D^7nFanNmEO>b8?*XD!CwDxx&fS0l`9F}AP^Z8Da| zOKoBnz$l5>J+XAnMKaSkXui92k+eIY9Sv6F?MP&yG?ILBd+07;K{K@UZ2>e|6?h~k zZKq%!+sUHd3$&$qNGpzP@>ddFdvCbIqo0`br8c#R>WYtQOXPzXkPUCE}$$$PFr6+=7 zU`Uzl_-b5@hc{5O)(ll5I4%vdy0GVL3>G5X9A|H$N`hWu3)NXdol11c+m(%`-)pf=osrhj<7X_USM4XyNL#hEU~6r;whFs{?*OfMQD=oK zTvTQw=qiOjv7Dj^d4uZhajn+sGPeDzyT@^!{nhJeFRg8W*^NxmcxS6`6zsCj{E96v ztAc3u0y-gjb#FWFweAX1A~f^5?dHFl<7fX;cVeRlL5*m;G}CP2`0ggJar(QejCYh4 zawKLmP0n4+kaIK8lu-`P&)Qcn(W|h1QMJXkf01}y=l%fSUW=nT{aI@=Z>(_#4MKEN zahe;H?)V|9VcYaavFa+$&V;`+?mX++vulN!gUj*K9zqd4LJ{Xl{fs@=g>PWz=KX2Q zy8NtYjh;_UjijN6hp5g|5uu5xU2w=+(6dxFx#%;45s3qQA?r4K zk*git?}M*gFT@X{(xT>98WE0u^5?)FR32f9BOjYqLR>d!m!kn7?732ry*qjR9WzO5Y@ zr*pi?sTt7yoP?7i8)n$(HfQSWslcPR9MK8x`7>Kj=imlfJgD7mDW_G>~(doA?S z_!6^`PSXG>NzRj^JesMAriHBIAHfI#4v?}tHF)UHx$EK8cpsQ4^;^HoqqS4T(&2d? zjT`4^+ZFN?HQw9X(Fkzgua>9Wo`n71uz2`*RScjKHhQ8?c)+zxscPvB&h;u{QyQ4- zyY8YcXEc2kOS1U<^Jipy^jimGk&3agPg9d0KWUFJ;lxMP35ujA685g%1bh3WM#r{q z%X)t^H}KB*UTA4sf1|><&mYg#g%K55faTUnmDFVV`0iPnhQ^K7;3n22pj(JKe ztER|yIIJZB{P!aW_n9R)aQ@NC*$)DX3ERD+j-lkb*pmTE{p5SP?w^uQKe4Dk38qAH zrzT~v8!z>s=tEr8Pi<_43#UEXXH|an_Iyy)7zGrCh=gRgV;%f8JUqL&GC4c?HED@% z@0wbJQQZ*4eZJ{e&s%PzGtRYj=RNh>rk!hGbm;s<@mzVq)nU){6Ht?-@rWHC>EkLd zRU$y`w`1lm!ilb=e~MgmQhv_Mi%w5oyyZ8w)ko$Q*Hh3p`k+G3$CwaTOS?$aX6U2njLWnVElJ*BFmrYNn3rEcoI)$cVMTXmjx)fJhEz51^H>-ckJiavEr zQ0Tt6GyS>@z7g;aR-G!}-TNb?;QcoKE{roeG4^<%U;MP~?5`UzSuN0dUNGRUCwy;Y zb+5Lq?Tj>I$UsKj9eewwTnZGGF%sAZ1;@u>ii(fp)XNR8lFJ9$0PD1H;PDd>uBi0r zw{mU_U{ZD%%-cQGpDC1%jp5sTqr1Z?PEwn-;%Uva9*GRWdjIf5gxCYd;B;{w$V`YR zO7f9_uxMPDc3`^8)Pv2xXEEl8M))pLKYsG0|64F^draAoVRvI#@t+O8P>poR^S1k4 z@%+M4)BZx;_~HQ@mlnX@&@=q1GG3C|*`aj(Jg{4=pE0TiORwg3Hfd6z;!YhL6-w_l zaEXL+7BtGfPan8^oy*_h~N5pIT9DLC=~3y+UMpXC6UPeXNiZT8KDO>50I zX-V0Xcgt&3;Q7c$JrS1Tkqg((zjSJAoWx5Q7=PJcX))PBC&~bssdZCu2*S(BuTJfZ zb~p)nU%y-NQWvsnLABg%*|tCTWCj>UHlDsUq3)tEXFhbaZ`(GSxO!`D_Mv-of`LWw z{`cK{F`)Kc)o?RVRmSAT+tP-!AtjdPi_ZqauU_yb(L(NY4?On-3k$7YmKB>__h!^J z*?Q_)Yd(XAn&6v`WIq9RL|MhcO|xctI+}QmTrfvGgF_3w9XKGj%h>ya=KI3(bNB1J zCEkSee(DGjfR<^9jnz0g35^iebr~v`)CF&A=^c2OYh@U`^HPxmn{Jc}97IAI&O+Dc z^+-vmyW?P~eM=GI%7BwAnub+bLcD}`rMWYeF|7C;@0Y_sfUKXP!&*~_{g+CkQHgmJ9qWA7lF8D;rHlA`4dov&oa&e{prWopvc} zm3!h*;(RYCE=BeuP`@!ZN4P&KkG|H=IgIcPcIQ`Ibm7q3Q3eG!Fk=RrmbAT=prRt( z$7teYkYH2QTN#<7w6fHJD9mv49;Q>R%2x@M-``vA?tTmZ{v1&IjR4p2kI{V!@^paq z#pdkeG$_rxu=amD-gtsR+eaD~ud1gitEfk<5~Y$u&%gpj!4CqY{7Li<$kbTQqhJIg6#g zHp_JpD1CuXr3}1VKlzwTUIX?~OYe=fBhPk0Kkh-o@GO!49B7dlSv#N9jBGOcDnBMJi8)3!Ipm%C`I4XJ0>pdPvn2Y zMQ1KR0uCY~p&o|Gs~=xug0*VRM1keE=^2|iJd7qGx$JgfUyDJPzq&kSU^Qs+1gS9QJFaFy)XD~L<|qdZts%^fl^~FR_%)TwMy(AN=i971q3G9<2FMJ z-scY|5YzefW3+8-A9C5jV9x2(!zy;|$%PQfBG9v!bm2qQpJed1p=Nh~D-baecA!*~ z@f#gJk_utZ`F|8^-1cB6nkySYUsyRX!_vm|i1u@ex*IoVn1yEt4!bgz9-$`H9W$%HNEy#+c_{#$kb zrNDCIG{xqJL>&L~6XK6&(#Jp4I^F=^?lAt;rTl&A}$?stN)msj6sE_=Awd4Qi z=#BsPsQXF0u@+IJfBrf-4HV$C=v@4#y<-8}|D&^8DDyKS=PC!(F-a*&fg%tMgReWk z9qc3j+j{~xmZR^iKyemflccY`bY6Qy-=R{_arWct!}RRwI%0mMGx)ELkMk2P>L^U+ z63l25?`zBU#l9Ua`F5OD1^)ANnczb{j-#a#RgtT z0`%xKl&A#ZLC10}q7=aI3I_k0?KqzPxsBe{!Mb;_Ob=N#L|EU;Q|K0&f0584Sg{YL zjqCa;-^f=hEF+PTXxIp1O>NDz+6RuCqi^=t&`>8mM6ju|_2UH{{zR}EjA5srg1Wb z&#WasN&A4B}Efby?P`sZ!`&jfMaeoB#T;+skfKR)7AWPkNumlL+t(;GaC zDp=axEr0B4j4Kk2N)ppJgP0FnjUx^JYb(duAJbyJS?kQ8oVRTCX5F9<;4n}_JGYDh3+({ZgqW6zL+Vq@q?E5F9g4lqF?09*%tyObXMZegNTTbzp1dD z$}OKECWaeO-Jicg9P@u(jj*53>y2LyvHE|P`GPB{^V50g(y#RLWcVx3)WW(yxb z_j+CzScDGni50{#*xx0t}pPV;sMe;8BuMV;~50-D% zSK2oWuL~6I2Ir49H^Z8|6oj91W3&o$CXSSFBQ~rW^V{Cv#!_@K|1y4?U)}>mg}7+^ z%D*NB?dV~tuuY`w0Dqkq?Uw0O#_0O>_A-;|U?ebinFbg*{!!pBhhZ_(m_xA0Q+;PT z8fpcM)~2Sqa_hY_?P)iKtXw)iCB{6b(^SPNOK3N_`Y=|%e@rjifj(zvEc2m+|0VHz z3L~Q@3T%F`kW8-0T0P6hp3Md~kb5uJquF`=jB3b1K}9);7!dctgjy(6P>bzOQ6EXZ zXu$w$jaBz$!@Dg=oAOI5mOq9Yh z*-(wGSr5e%VIO=F$H$Svh(|VrWw( zQfVqgl21N8@=M7o=`5RCU=DWwOtC14@=;rDE)27W2_vHH!nY{Ca}6J*c%5W*Sw&K_ zrl$DIrGw>>00(7jL$M7Z@7qhSw{InGx9;+-EX98{712v~N<&tH=m<%OT3Ioe_nr|h zEUhOIVtG@LpG{~xJXUyzOG5?^EK2Cw`(C;)@9^o;^SeD6u&p=89FPBP767TLwi4AM z6sZ+pLp`7(S1@RPx~1k+lHnh-TK2%BT;~qGB6VbH=vcv?%_{nq4k`) z@BHMK%Y`p};l6<3@DLqh4IYqr8i%BD?r$=_(*F6f|5?3-qU+6x%q+-u&{GMex!Q&E zZjkrLdi8=jA)QB%`>C?YBeU4f?-co#*o9NMZ)<5u5o>?hzY@=Rz#VvW#@JWlFUBR= zy~J`YDZ{hKjjfbUz@V2Odt*&Um4LBMY^09fth?A^0)U-rlD`$mK!l6PZsF@Qk;Zxo zcFo71W|r2nL=shzAD&WvYHMkxy|sY2(#CN60S)X3G&*HB*#^zxFpVaIWxH}d39#UJ zwXr{{@gmxwN6VTAu>)LcS{an2m-`jUNI!P20jnRSdJXGfS@4xwc@D(^4S9fr@@PQs zsW7dMim0cPJ!}_P-t+9fWt#sU2r%v}%tnIIjWHpvLrp`oWUR!{to>L)dE`rzr#iZ) zxAak>+Oo47Gny*DhDlgh0G+)k_k~_oDOPK1wUv?XpQLqiS}gmNAIvPmvjbTv1|MEy}9V(Gn1XS zHl7!EM$$)MO_3a#Kn|UccoX0KWn}|FA(Yy=B&`x$A!H%X>PmNa;lGZHt#J!iP&`XG zsG_imh*o!bf>uU!>qW_yU+rIC0>^d+{{sL$;yq}*!wU;nQX(<;h2wt^EVU)b{^!)& zI2NBhkHBB3SjEb%Y$}a2i!1g|QH@udSrcQiU#vajrO19UUkaE0I6vZLE3ZsFno;Z* z49-->6^TT3bK)!_-coPJ+?0HzjUaFl(=3}NTOvezbF+z&TEYEV|Lv&u6RWAeiu|fm zUA^!Vvzsvdy3|};h{ZQ)gP$Dqj6vv8!F}Cs!FoeAg_0hU##vxhRi-ygDYz|l?+c$=@KXfL2-S*K60%>I~c`z)xcMy4ZC!_Y*P{CS_|LDZw*zz^j|Lv@ELWOXGAk0ID|l1h6jbbg zN?lTOUvsTBmsUKw>}7oSHQ*3Gpy(PMd1>&v^N!NP76BJp^2r{eV{(?&wA8wqyII^l zp8oq3z*hfiGVK_Ztgv(42|wq0Eq2+Eox9FyEA?sSrpQ8V-^pX%rVz&q|LeYM+Q$AL zknGv7L6!+mn77s7#Cv+cufXzIJq^Gw6L3PjR%Tm2k< zJMJaIZzEJCrlYW&D@9BK&?b(Ac~oF#4LyORUjdhVkW|4}tSUxm1sxvA5FB zsj6j#rK?eS24?eT5t@yb)TWzp08zq~X+YYAN$||YL^2_Ktaz04__Au^(r(1_1pB*% zC3aL&)PR_YtV0i$!PXE-#4{nw-erYN+r?j~51vumv?HcVL7s(HmU4=6W@S-t1n&ni z9ggRiqTG-@xa#YBK<%GP87>uyr-6?-ARo zMUI59E1%S60!q9Op?P+|7td&KPfxko7Prkc#A?g>Ui92X?8*~C_vQm3uqZ>)*b5Bs zo)P9z&8ZRtuV95@Q%PBO@L|2LYPeXei`aE+aC+*%?%}ZULkrk-HEW@^!Qj8-=Z!LH zJO2%)Q62OJ=8mKQTC@Ki!@;AYOIdNV!@K42g{}oa zc7Lf`+Q6JnZ zhAZ*h(5?Ge3;}6!y(~y@I~$?wA9%N0JvyBZaT1!jy;cUY6~Uqgnz{ow8J;7EFNm_p z=nI$SzWepwYKw;x9qy|UJeLnTWcRs+`8lCL5t1OF__vrz-5j)8nx!6I0lWM&5h!fc_g|YE7maZ_rCkpZzzy{` z@9h+&G?K9(tfqd9llK{bf&LOOQ^-8VI|H^L)Mz?k3>sQgg3YdZigyt~T_0C(_nt{K zO3Mt@_I_GGJB;nD*tT<|xOMnK_@2!wK#Yr%k!G32f2wA6KbN#C0s~#m>5vAw4%Rtt z`7YECHD-0dOY$bIfGHd{x%O;QScJw)7+0pdOaA}x^&L=6bNJ|NGv5Ey7x`a?ajo z&di=?W}ZF!+dC7=o%ceVYk#{K6eIoDsby-`3C!fcw@3 z2pd{53kyThrp~p%*%g49Fr*(33wjMjNqco)TrHG`a=RTXUH2~@tbEH`dcL!b4s%3* z{50|WzRwf1n5ekhnwUf#`C?vv9_{T%4n~jn+%p7?2fzxg3HL$g=}}RMW#VI_qwbTS zAT)Oj%k}G8*4EbfD<07ba_8IPR?~nna^3B!@`B4#$F|p9y@J<9ZBP5i=*+mgC!G=> z!?p-o{fE=6tkpEsZp(UGm+5b~Pl_RJyO3A$G1Z@zJ(B<}LQ71~a`&;Y zu&BV{gju@dhZT1|uN4C6N8RTJL(_%T>CdVyTj)Kmy*0?C%9u$l4*6616aT1 z+V-Cr>p$=Mrf^KXE$^<=WVOz}RexnMGe!D;U5#4PX9mj9->9+(lB_8UD*TA*D)Vd8 z)p^)G9p@0i{Eqhy<=!u8Rb5IN$=Sa<6>7^oq?z5c(G2Pf57oPMmjZ}qWR1@bm|w76 zPKtb^#%*yc_QfN;N#@jI3nctTU5lNZ{uyOyd{?27sxH_Cu5{>b`8d`HL7 zo*ZbiM6_+un6TgRe42D3)WYp%B!}pG;X9G<(m!aLD+znc9diw~NN4+|MWzQ7J|S$- zY1t?7CFY;gXHj@Xq|m%eaLAIO;;8CSpZXl zJm^D7_lYe%w^ReY(D3GySsq1NXSnBSWUAYK7C*dMI&G=QJ!R#HN#e`Z#VCkT!jF+w zf3<(6{7rA!85`d?#NHbjt=`i?kY$(dLxjB8k@!NGvy=cnUmu9{dD-KH*LRH5lTVh* zPysQ{+ zUY-3Mwz8V0CHDmQ?S8ziNj-?o@N|$hNjdmMh^Hxwc_>bwfQLKS z(^*PVX#P5LF#daaXH}$3d@!C#Dy%7R2Tqe(&p@l6aJhHqYFRK|_Ih6u7?&TJzP!u< z&mOMm?EdEVoAXR~t&N-&zIrKBt?(af#q~jY60n`%2IZ5Sj(3t#F~PB(I0swZaL*0( zQWMdzd6VAx)Xhwa4Rdl@7JQa<4EDLtJwdYGxY)=7vZt%cv>t!x5@f9kcr;qCW9$o@ zLJmBI>gZk>dNp%2c;aFM%PpSkvejj>%L_!F?Pk77TJ@RmJ2W6EZ${)4Z zafs>UbMx%>!I5|6#O^w$_3i6NfVSrDVAJ8YetY}Dtw!hAv5hxx92)i`sn-Vy>n_3w zb($(0PPatLG(nWVTXCoU{ll&m6|!FAgKKjob&_G&sGJrNVsQB(gtmI04Un)@;-8#g|eGMcNn^>wM}#2Hh$d~(%vVhmhf?JEy3 z7kUTeK9A3(eRC2CSv>A)s`^6M02Dl%rxA26w5u2R@87pe#YaWm5|K-Al|sp|Y3O|3 zoszKv`)(r-c&yGoC4T4}L>`IVd|>n=WqXihe$vnmm$Fg1jx$b^^txea3S<5luMqPo zr!%dI@ZTEH2yqnFys+s;uZ*Lx4ei$cV)$1AWbAAWZbsd`Q&o*5r6vs*)+Yr4Xshv- zMp#T^rM6w8yDa{?3QkiAw@Utv8aA|$zV_!h7oLiUE6DHjAKekeq73{dGkl9tF){Pi z)*z?!vSNglN}yHz!Ca#;wjz>af?FRwj9ms2pR(|U_ZAeCi;(xpw1X9qY!k8yXL~q> z-zJe}@iOOa+=<9Gu2XCL~T_ewF!1;8TDJf>Xv#~rO)?>mjHcuuTb znR?M!$nE){>i;bf0LbUC+lEiiJO#?7C=!t6B;wY+2Klnc*88=Ds?;nu#4`+aJKF*$ zXSV8ETVHo9{8~Oqy{6*j*tGD=O}*Cya#T_B7L^@Yx48%4i}ekbs5fu&5RDNbUlU#G zX!;=WwnfIRQj*Xeiq@;%CbSv!Wc{Fjm_A_?TRL33od|PrF*A#V*U?~VY354@s6iFl ztTG4<^vq|2l9>tFw5tBSo2|~Hjj>cLBgoL2f9LrB_=R;}5;t#=&kp=xiz0-Rp9`zQ zeKo5+@Mw+PFQ~1jPn)QiRAH!?f1a7|WAMcJ*cpB61F2>gTY6y8wrU3l$Lx;?xcEEe zF46Z7_ZqHL26(R29e#hhVN5?imbD1@+jPIRerU`0L0slx6E0}yAUl4 z#q{==u>Co~OL!v6&99b)2QVmcDx%2vH!Z<}Zv+85c%l@vOx9L`myGUG zp+=(+k&7-!H#WZ3>fF1dqZtMA58OaBnI()MGWN9Pz96Rqurvq5khwSf-FAvd=jG<} zpI$X{ejL5Le#jo@jg26a#ru39PX0r~dr*j%!7KZ(@o0c&-by!9qiDLVN!l@FI;`zd zH#aNQKYZo8V$ICVf-ct6GwC)Fv6C3woqv-;?Q{gq&XgVk-vk;%4ar{pV%a{Jn5Z3VWQJO~8bxlf30ajbuL1C( z!Wn#~v}!nen&~Tjhd)3E^X=ALU=8z^s;sgf@X{?`5 z4)&WF@&Z7_qlwGFZ3gdf>|8`ML906odn2JbOl45IFqgVb_~RioeHMWE<7G|ZzR`w% zYRSOjkryPHG&g-AR5a$vS}C_ypz4(2j47fujGE*#!g~!O*+Ky(1x@M% zU2vNC#hpO-xJt2EhK{c-Js^f%;596DDNK*&?l||h8H^^*U0Tv`445f87!l_#B>=EX zOi*SqOfWJ$3<*bJ`%Id@`nG;We399@Vkkq(6rD7P)HwnP#Q%69ze@k4_9w1ueLkcC zGG;28nxYlLL;bJ&#s*{#>?0uHwY_>2h)Z6ewn2JhSZ{7&tq|(z^q@On$scW+4wT62 z1mvqs&=XUJ+6r-3@Kpzj=+N?2KtzGA-GtcEv!7Un#Sv?6&!U-=d^S`|P)5hE1Sfo- ztx+aTU_>LPLcIR0QGV_?wo&e|fHf%|_qpqWKs7#|C*Cr@dHW87nToMG9S|bixRDUSR+ZD~6A1fuA}9Y> zS?k}zm9`F_HrKb9`w3w@N>(F<_3E^aE}sCu zmvX=6ZUTN`ItYEh#l!8)mU3!^O(g@bU>3u%Px9WK-M_inPvX%$$)S#3`q!v}K*IpY!(^bIO+~;5do( z^$pbWpzIErfZR%s02KPf%xypoAav9=6_=K#H#R1^&H%!a+`@%+jNRuivsujhT5g^A z;nVj!-qYWM4Mx5H?%Jln#Q+LCJ^I0QSL#jdNjQ)#q2=Jvm@B3N0s_<|58Ds&C#=&} z1&8as1Dtl9wCuj8^ztV4F&`@30RF@eCgHGb9_-*B?f8*ou3_{T+=P8X#nc8|qzM=Z z5O4v0;kgm`F~H$@v$JFKD(4|&Unox6CTKwJz#ibMc=ZTNZnnK?KAN`h#aReGyg)S+ z8`r&m`<8cM;pJLN!oW|Z3q~MEwx|l)e(!}MJ+eC;4#H#zHn%&8$iHm=kZ>c(0Po%B z^p0cUJCcAY*W>mVquw}NjW3)J$60NsVy2He_xe)h;+sQW(k;AXnh;F6;EBQf&Zfb{ z2VIb62$~OJ0zsQe{To;HDM6YiAVH+q$H%>fdd3Dy9v-5=3(d*n61GuPa8spvwU1Mx znu!zg0L%<@xs$J%a(PWh2mWz#FX_3yscIB$;g2^t+&sdW(3?Om4fu9DtM~D1m(%0L z*ejH4BnLqFGPmA3&jmc^$Mi29^Z0P7^Z7Td{uB7Ad;Kg;vUzcF?HZt~*G=pJA3(1L z^ULc$egA%sA9hy4iLCyN6`E( zP&?ZL0-C!bay2H4|5oKc3x>m!$6-@^X${w%CpC4z(2K8=SD(tNIFYo$fAF!wG|W>l z{@P;Kbu0|(f8(h)N#k!(nI## zk-z!H1p3bDwutrZ{b=eqY`lSI>t!-geUNBaF!Vua?x>7^SW~3PLrnagkhLF_Ue3rP zjS!x0ujcb9dZ8Mhv$Gk!K{Z3F=+JR)qG1IKY8{6CEgvsCnT^v=(pG;XCKT4$K0=|S zgam}oPXa4oZVysZ@u8pEJo&O33%$DvwwO{F!#eQ>dW7CJ$w+cjpLW-3vRrP$)32*p zSpH}39$*~kz2uUWlqOq@P{wU5`(%-+vsgZ5H67(R)CpPqg&BB{OS5f}dx?!A2IIW$ z$3#U28Be;^;f&R2y+GlX#%j>`ty(9?4nRnPoiZx$W*zS4lU{I?M88@8^w{~z@-%21 zCC4&l0qt!NbO=_FpE*pXQG3mIO5A-yP2XBCfG8>&4pJ#J5CYhFcnA|GDu!XM29&mgo zH_u>Efo;l8ydX6M1#?hQ9UerC;)dJHb)MszcHFK3{2Yc?s9boKjwbH(Y=yerDYcsA z?~IHQ6Yg9hgu;Uc;Z zr9Y1)q|qX0KXL}P;;=RN;RQe~kKrjI)|StyG}WmIP;=%tH{I<%d=1e>!?UfFUmjN$ zMBPfBN_VfEH&h9QnK%(HhIBhH;aTR$>9NB=GllAq`ZZ#&C!K1Cs%ulyi(?)q)=^4l^w5i!aEA1s4UYC-kn+!zW zCM?XP78{gyHXXJamTC+k1uggam@lQJ$so0fY}ZYzcx>7<9^*cO*{)i*Qf{1=+IEL2 zC~(oV(lIm#&eqbf_d}6zF5DjHwDG|HzqkM}*ST728CfwO(-G3vDp|71Ivya0{e!%t z+NAS3Q65O`^_m$Oy~e%R_nH?eCGvp;QG%Mq{Y@AD4M!@9)-jh4dEt|Z*}Se zeJjmDWl4%~vO^sj1Qkt8I69(ziaFV2($xaAL`3fz)WH2hkeA?4hl+RX)gzSmDXQpO zdve_&_EO1HCD^-n{z{yPUbD(NL})4;9s*m#-kDG7m7XhGjYT0Z#@LM00eE0KEKw$cXrukpPYQdd1d3x-o`IwA|vG?rRS3vLlLIwf17?b$MTb|%S@Lz2u;@O7;=%E%EStgMdQ$dr4dy( zBNQZVvu`n1xObsHTMuUza{}Z8D_@v1NIhbkCb-)E*bix`U~zA~x(FgA!#4r!`c@*I z__UgNdoO&lef!Mf3CdwFlpwH6*8}h~tMMjT|05xJ_^=T6s4{rbO~suD1-t8xT|iE$2vETN|Ip4lz=g=aLx;OnW#d-btLH;3P1Lfw2EpsOr|3d~eV54P&d z&i(2G9B4JsF9U692jH(vX<23NT)(Ub(|Xzj(0UR3I9{I~;XO8(pd|`$-O~CZS#@Kv={vZzrY3yQA-c={O(;0_?E;-dpEt1X8>$da0@N|4$Vl>5x~}9 z`+~MBd>+X4c8ydeU=L5_tqut)0l|| zZ?p{>M$REFKfcW@%b=oxTm`;xMDwPu9FTX^K{6L?{`WyR6~LD?vH=0 z<2FQ)@)Jk}sz{Nl5XJQi7PNtNi|bR`t`g_4GKi=4*f`0`@5zdGr|B9(G>O}hc3AHz z(Xb#xdrgt?fRU2ic_7<^67tf)oi{LFq$O)f+PksmCY#maqfxH=M%}(c6&|wa zrml)(yg6QV#)-`o)J^mHkN7!^e44i|XN>h=oW1UY z)LNQn95@DgMRad|s*i?Ga z%F*LQj?x-f^`R=caMBYxER8U_Y9Mb#5?tCnKC814gajW+L~1{Av5VSRXjQU(LWUrM zvLQCqk|3qE4PQwv!9OphCCVJgk>!g#C%A`*fk-6aNA|tcA-9P#Wd2jXsH7F2LfgoX@4ltvRp+q3I zH0xGsgJiGLK}AlXYd=2AcvH>njP@%{=KGAm*_)rqFfL~xJ2gT{R<f!&iYd~-y716=tE;c7~x+Lc%~jbS}Bo^h28ByXw8xwxpZN^H3BTkY@Q9oXrry1 zON&_-&vOncoN^1rZ&iEny(45E#U2B9L2%swUYW$n_E|V1&;RzCbKx-O8=4@NlSJI| z=BF+JT!9Gna8_h))6Cf{J42nwQR0AOK)eBp1wvF3FdfDzk&h569U>bXN2T=Zj@g}k zp0nu?15O{`Zq-b-Ypgl59xX4Osl$5ap?N<^Jcmt4)2{Xk0VlQ|ULuq=9uHzx&vkcx zvF60dXnxgh$ES5L#`te8uf4c=Bew3#>>)Optg&S3#>P^mm0TQS$x6HV2IhK;sbNWe zNnP*pqxDeyT2Is=MDjL4sb)2io1nJtRp7)+mgAcXw64kL>g4}Jk7<=P6^qcAw_KjR zyVt*BHmo|*@$+t#!k?j-hh4_9YiQYp&RxbYavcdGrx0kS&_)@Og=k4RWc|Yir6X{Eucjz*oGAZk;dFHbYusO!Oa?zdLs@b zxrzPRzmKwv%BoX}mlUCr>0bFl%xs$m@%lq~0~GFeR&7h9+=G|bFl=D9ecy593CJ=% zs-d1=>T-4YLVLN;-8lSr^ZhSte)(cUhF__U)8$8;lvS{&d9$6h}B!D@_Yzz`R%x8bbtvz^g)9!3GPXMgtpW_NFA*dkf zUe`wGrv6nrZEoT-!vRsa_hPVh&DyrsqU2qYuho+DLVde(&rU6!GU|*@D=6vapX*uF z7G9_D>nbx-K7LQ+7XJUNXMg_e(m>*~mjO+v-iFBhG7S=+L!5r?;$^KX(U@Up)i3b2 z`m~41uEF)_*Z1hO_gsw>1>LE}!QwX7(^fiB8^ijK)hsr|z#!rmzi-$3s>e`7zTOBn zc}{ySVsSyu77B9`-aoBB-F#{;HnRXXW=!3_{pqaNBTAfj+Z=*}vyjB#-WGmXIwz|i z{kF@5H=RTt)DuCg(D_~-@(lb4e@oN5)!FO=*&9?CC(oC~uW6AIdZCyu{e$MO9A47o z0$)@bqpkJtp(pE;I;C2-`UJTP5s1T5Z3B7}e0fJ#sOci+fcs!u_*tBlNma^oU`yY$ zF3|CEq--rxEKlgH=Ki~-9OV)N!n)i-j0(^rv(&iU*NmDbI3rgEimH?Z6VIIcW}CI0 zU|$_TeS-H6G_zlGiZ$h#Hm&_G$xtkdg6e0mRA5t_tr#=KOdj`}_&Xh&lrhxrWO z#PZ)43G3pALjni`f_+BIp8}Q=QX>@$6;i!7uiN{d`RQ^ZX^PN&$X|H9iGT&k)sKs?*5ve7#%_%Rn0BhM{8eJnSW~=lrl)S~##^q@pb%pn zbu8~N!FdH;T-@^n2a6Pvc>SVF=Qc7C6sFq&=8gKv!$fM3WO8!hRh8F%at6bUN^O$Puni6GE?r_yX}FGyS-EdYe!rXusXAv!mw6 z`bja_y-n~Orc@$DKUwP6NRYt+%FtyC1RT~{+Zv6E_+JbaaJt@!ZFd@Yg&HNN=vr&W z>~t{*yLGlXzO_)NqasALy0{;P=aeVW&`l~Dj()mY?L&fNuS-Un0}Aki=#U(9zCq_wyQ7Y z_I;JQba?Ozq+igMIT?HnaxWr(SKl9^4F>r`C5n)f7Jk&Q3;g3JrMVP^Rq8ofgt#KN zxk%Uk^g?iZCncS}{e@bSZBcWj0UH9gRK+%vnDys(U3swf%)usa!9Qox1@rO+ zyM!&nIM{;i_Q00=aUKWdbzgrR_&uKmDNKWOfIf0-k#4LC!%*FJGsC^#gJ9miAYZx% zvB1om8b|j>q&}zPc_(y4>shMSQ=n4_k6vZeG?o%LFK@_8PH!oPk%9Ouz1J`$-1P(d z{`-#Ei^O*?g@(qwT_@ftmj1(X+Udh0+M%N{kF~FV@Qhe!ksu3B%j=2oTafA3EpnHO zn~~$y^>DbI%1)_=(mxniWxH|E9?6eWE3&?8Xz_~$14_U_D9>*_BbNLas%WQQ7hy4u z4;58u;84-2k(LbNFik3kd`xE}@YAp9Nhrb1kc5x+j4 zYRsbz^kJl$Y(&vkAz&&Gp?)PY=y}WgtJF_Q3AW&r;rSeUa7ERVGUXIO@wTZrOyrf8 zl=H^(jk6niV#~&C0W+l?&4;g{b}_0x1<$pHH$GTt*RPALd*B|YFzXa?tQ3}sQn%d= zhgpSCRA^Jz6!WA=V}fGKbDfS|oi`#xyij8I%ehp+hSWm^Jt!yX`6ZH?;)bsh9T)Tn z>Fp&on0^jocDlq6Y&!=v7;VHBZ5TVTglSNYHcLvF*I4}|JM#zUPI{YI+Qn>SA{*FR zH$x3;JB)S^4-ZNq^h8G^TkHqWc%^XnaLF)-7*#vZe)!)5=KQ8m4`K`DR?(qH@&ADqAHXQd~&DrX9OCO%totph2_>=P7$ zFuruWbKd&0*@P=BmS6CK4mT6{Hc~9-pStl}fS59E(#&`P8YBAwT}3X8rZm z03Knoz_hINpdk`l_#&E}vrBQ_N5ZmM?qYvO(&EpH?;WqIIUnH8^>?}O=t2~sVaxc8 zqH*5Qe+`EB&qGDMff%uxCQg2Sns4f&RL4~}>aY1=d70-8ZK?I+|oFOl=sj;2~Rgn(L@f=$tihPR6E z)p4!e?Y;5c`<+%DXR~T<>bSt4!uP z@qywW72^80$`?MprOIm|WKTit8HX`rD=siqR>oMIQOXL+;zrr!DARl%p{@gXveH#i zZo1;@wTCL1^$dr8&vFeXKCG>^)TLOuL}Hx)xE!CV|N5|V@1R_kM&6!j#-|h0Z_%4i z8%h4pFIn?O_hXe$H>D2}#|MPNpC71#A0JshpCV=0+zUKz);)keD|2BS*UP9YjKooY zPM>vR*9SRuKZ*-%jt3V-(q?1Imh_@fkJ@}B6#vPJG7+&P4)dQFd!3A95nm|F8=L~B z#L_#e*XO$0F$z3?6iIj>NBJMU+#{T)%;gI=4pzLkOlR|__S6?~D7I_(e0fcQSEY2v z^`6JB0TQ5>X`M#eaj!e>uvuKWNHtH|oK0yJ;`Y=^k=B27hq0CI)idLIUMB7M*L}KV zqly=J#oJ+q%=$~S7$Q8ouJ#6UAs&L4H9xI`Kgf$AEnLb=A~pp%@f{mpu!D>^GetUD z*^i-jZtPPj6bt6(*Zrk=DrM|(6EykV?Vt~q28>}OifJ?kHSJXgKeui-Uqq|HtPu!N zIrpNyK~0K?vgLvmWSQ-dvEL6qE4|st?aW-5f-o7m?~&*;5GTp$J4_y2ake2(nbpZw`NAE%*M@}6_l1N9$Uu& z-J|@PQ$)DsuNx&$;lnf%IUNg(V5VBbvJfl0jM@;dFpS{S zVA4u`#i0i`lIgS9$GK4a-^z>7Cpcqjpo{ZBTooMdSMT>ATCZI@XnjZ}s%!V^Cm#Ka zVHTwot{m~z?w^amgYa4qQ+T<~H#LzZ%` z!UJZh2^r=$O1#Aqcl&mY@0AOw%Nf+2Z8yRBHH$(TlDMW?)7cPXX?t|@hzs52m3LOb zBQY8lO46=_6x3ajKwb#faU<#{qI^oh(aJ@J ziom@CGayPo-6U~+on&5wCn1QV7p$bzaxJ|uG~OiBiuPA1Cd8*+n(0I6JVyg;Kz`f` zHT2Vden(b=cDu@e9^%Xx9AjB8&ZO=3%we>TVR$$Rux&9c!p|jE8?4&$kX$?Vb{t&q|6z z`Hvt5dP#xB*UZO9HexMQ1#gF-VoH0ren%9%JNO}t*k%%K3r&b~c`8IamtF0cj(h>K zs4jwC6~n;y55ule9C8tL^y-1h>h(ZZ#jgdY^lj%(-otbvjGe7u=mh9cvYi zUnn^P7Ro`t<*#}+oabuBv#kP;HkyEjK1<0bkLK$>mx5qgP9wN4ao-nzFWKx=nLru0m+M_-y84TKR#X!CrQR&{CdPQXhb7T` z`n1!|Q&dn|s3MUGxm#g5>s*T5{q-#N2(}I#bD8cNcar!y{p+oHS*d07e#p`T`K@GE z$YlFs|B?Kw{?qOHg@rxIOGchLI=Va3FUA|*{M<_Or&wLzT3#jI`|0?Emu-GJ{3F-c zzqkPH$0qVYTMrIzY}yTvVN>0^92RF-Nta#LGGqn;OYpZ?{?# z>UznlZH%7s-MC0#y>~x5-;j;*?c11noudoKR1Su&A|_AhX+@ONVy$WTlxf*?uQ`T*>m~R zuNll6)^?G4bJCKM-~IU%?9K+{JUqMrJHK9wJo$zNsCTjM8{F*Bqq1gn8&cux<4m;x=|!V3>a(a&mc9tgV$j{>nMyzcGUJRWTp(hyHM@3CM7>j=FVp zAN7UC$4>fpc!$|q-0SHdS>@kv5CkA-(#t7yyr?=d{6}OP@0bz$$H#_1vC3twFu$1G z-PK-d+>;_j>t})i!}uUu)CqZMHzs;*O#>?4eg!V*`I>nd=ZQ_^&GgLzG85=P8YX!? z(s%=tON$Z8A{l)=KZjz9<^d{0jF*M`&4TUyOlGJ(-gHJ`I>Ub3(i!+Mq-w!@VuBp1 z6^X;Em!jU{t7Gflgw_Aje{;~!eOxknrbURL^M01GF7hg@$gzf_W+HB}hl{?8*r%Mp z+^L$adzld7c+{}7-Xw4DN`<YDIDjxgRVNPFsF(-;%FFy=SE9|J3BdO0( zG#jxzG%EUXlcQfB|J1^!4IEzDy%ZZr*gQ*Amsg0l_x^o(Ztsq}U3Xz1`N-*J-?~?? z$AdM!VM#usR_D+b!CE2}J; zZLNV`P9a?RpfJa;x4k_L7h7jO7$h{tTkm`e=tub*P}1yHrBV+m{WTI2pTpcMpx1!f zOJ&(7{TaQ__EsKB3EE9yXz~v%xd8U{AERStPWe9A&;BK1j3;QTc?Ew9j>EV*FSTQJ zH=}8iY!@uo_-dW!h}(+S^tv1FwjN9-75y3XMV)Ka@R41Aa)fF&=FCMVQrnzTnEmo- z>}+$oDt>rc#U$oL7yB$2b{G zPzsI|twd*Y@{Al_EbSnS?-rVk#2>GBHD26zZ?8C7{{kjqr96`D8rA3 z;R15!*x_P>#JuGd-F(F>Y z#~BF^&?U=|-u#$r$1gXEsR5emT^@G2+i0n;)TWf~op@g!KQYW62eIpqVmntmySsPy z&=4-sP92t?%JsVD&mKd8{WBkb)t|+gM09X=z|SZ~6WVz)V5|&j{>zees;mPxXYDe6 zE$JZ_q(ALNHB&xF%=RVC81c5hqfODJN|b?9PO zM0@emx9;~}Qe}4|pWIh;x|HG3#`)ZSf9d%WZCC(N3BZB`UTr<-#`6D#Ff)ERTJBxj zf*01Hho(0Vg0m&67F%hMx;5|Od^Aa`TucAKj}8ixFA%)#vZFx@}CH7S`9d+AW3NeMt5B9`4#5 zea_Arm=k|}aY=VJL)2n~R+5I^?IYcSnmS`jk0gHHi8y=EO1t9e_?!M|QnsEm;lI)x z0>mkY?efrYmgl2;yMYtdjgOm(6d{TCM+_#nrMbv-$I5u;B8U`gXIy%QHR(BuJn8m( z$`OG^a+<59CS@H_DDvSB;vE=JS{nIAd@2~=Bq*u~=P0mUgz4ITv3O=2_0yQQD6WP% z?aN%D(&FC59bv&mF=^OyD*vY?+H#u?qKSx~qjw&doTcd}lYFmid|K-q=K6oj?W5mF zE!XPW&TM4|5o~jPuF&L13jN~@%=)(^bP1F0wqG{@C-;xK${gUfvfPi1IBCTGWOt%e zlFiG+l|w@>U`=7Du)v?P)I6(kzwQAiWYV(V~BFX+TC(`j`d<+w2a={ka8{krj zxW~*c6!_Y7Z=WV3^K5C^b{f4TBdQ2y+a&~VCgZieI46kg+UaKfLC=sO@iN70 zo8Jc8rKPVw2Fy`ISC`hcVhHF9;yOd0M9b{haC=)(jcKkJt!VU^-fTvWh=k+=BS&|t z(XiA(=OQ^}O-su(_g+JD&WcifSXlU2BLlk?11gaUUu(USae=?fva2(^7-w$ z>sEO@St8*xqgplFDnI5j(FeeFdx(olKFcjpuCUeBrwfZOjf9{y-4Bvi+!~P=?K}Zh z5Y*4BD*&&HZ(p6)vbgYu?H?Rex$YU%ZcS*JsoY^pGYg9h7xr`$=pB@deZ zF*aqg+LqLlI(GHI?`3v&vakzaaPjS?`w<4Ngx_*T&b#K$LeBB%-U51UUIe569kZ zh(lg|li{e`|8)J$n>R1f19JM~BUvnrw}2Ma4OOqo111Yc#w03TRv>TR_7*^$mCMGj zb1BVbxW>$^?B_`FL@>GA^@(74p|Qt`9LQ3rAhx`0ETGrWsg=!dyOyQQcIs0= zhrhsii83=4@{Vx|`B+u&5Yx zaSh0Ac%)bXPYWoppVtP3CN&((UqcWKZQPXgU09 zDrSQNB-e(z^7*npC5;CJT=f7xi<=xc4o|ob-lLKF z%V~2HlC*Wf!Q!{3mYJMIU{xH@X#^N>2ybZU8PFBB;ymWAI7&jS4)<*xI%%P=Y4U`J zF}Abwk%*W=(y+Gt>zqgEk5(!d9fdrA>JJ{8`4_j$EC%Q89eknelZ=J7R$)n@Q)IIx3S(V}vI&zHo$H<~K)dF= zGGs;+P6${hC9%J+fB(?~o0NA-7_GsxvDI|*DJyIUFB^wsW)>s^&yLrjtP&Ob=1=GF zVQuqAUU}FfMkAm+&Vq-$D zJR@<;Yu`@}09!!62G`A@J*ms&JCSU466o6{F4%w;FTw-rSfCsJFtCzZ1R;$LemysG z+r7Qqm%6nNO_r95|9F$%W;hWG>|*;hGpzE+hf#0WU1}v}n2e0fviH#J#!Y%XupV%! z0x*PThV*Cm0m;~8`z8}H4El2BqsuN&I{bYH;axm^gVBloH@%6eox8Rg)0eXm!~Z3a z1n}8wiI>{j*OT1X*NZThI1*f5TV0c0`f<7c=|@9Ycz7J+_XC?&-%1N?53myY0&x^< zVTZEe_jwiDY|zO;-DI;TX*a7ck)egx|KaPc!=ikfuwg>FMUX~BL6I)$R1l? z&*&^-H$m#cZfup#gnjD?HU}$sY_L=ow+5Z$l+Jp@ublbl{m#}#ZUYWs;`pM&{k_Za z+hxw%FA+qsB8qpWxaC%Z(Bqwzwbhyjktk-{4dQyh2zhdH;yk=h_xP#c*Tw5=_qN6x z&*MwvxK6+;?YG=TP&?Dk^^(7?=prX=qS6`1lNHhj_P2cri~IX_>^8uYneB!tfN2F| zFj)Ag97gM>gM&;f(OHu%fTMmVa_^__{(TRTR>BGU(K#nIKR_cS@5qR0Oo;71^AYMT ze;XV3EJEQEj|`rjeyElS8r&dmQsnvGM_C&~J**QgjLly)(JXA=gqN!KjnY%*7a>7Gl6@>i=O>X4(=9GU9`o*5ov5OL8wOga z60WLGC^rizqGebLt!dU{`IY;@3Ete>%RG<(BNMpzA+P%1K<232=fei?VPW05oDaq# zMwyxTgoMsNt5XqT$SB~wW6?18YDp$gk+R4Oe1hmfY35-mX{o>a(9xOs*YBMuN8f+# zq!SrP{oW0p{+xw93*aNI@x1%@jRo^5jXb`1pF*fnKSf3}i1EjRz9RrE%~bk5d}>B^ zy~wd&E(kZ{rSjTagHAU?zWmL9le@Y>e4j?%&5qXQrR|-gy}mw6krAOZGUuf5{9BO+ zLOft-@ws3_tOAKB<&78v}ke>&N z!Jc!K5)b41z{JIGy>>5BWQh^buWyOyLpMM37D>4zkvS>PmmS(&S z&mhd{cQMiT)mP5kJb!n#+yxzc1r_wYciHX`kc0#Z<))Qsb{-d}z#9(_BH(VSt7~WO z;Q$}*b<(?$U*hnHmGyhmj(l)Ph?SL{*+#nG&a6(G*~9eCUms;riOERX?>49?|5r{; z^!1!=%9l8qETi@6=irb6?iaLCo+#DDB8ZK;HMb;@r8 zr5{0BTQiayFu%p!4~vJ6vM!RTO5 z!D5w$%4P*^&3aEc%yz^B zYWH}3yLaG?$9ej2>xUaDOH1tDh=|aSVRbv`^IA+27%_cCg$m4wEYQPFhMM>e=Yr$% zE4McNjzopz$Qk`J1_6P@)!&|=c_CoN&9-CacV37{v?_+T8$J?YjmrLgPf98nK%w=`_#_ags@Stsgl*Zg=$jq8_|cg^vLP+{j2i!}`K!Tt#Ir`79jWU`NRtmRDbtS&>Af zUiugu*dmTbM@!0M(?)|c<{OB(;1mos{hBbyqcyE%mN2klx6`j#e6#<*{urPm2?K?= z8J;{YpLO08==FR;!*Z|C+9vX3lbNHNc5mpV5~4`2cX$xh1xoy{b%^&|_Vgm3wkV$Oy*7+N( zwf;hI2Fx0H|3STXPOJ9ehX;G&hFGpW4sukpzP zQ3Wd4T=R#04|^s6(fG;9h_?f9(>fiE4fBmPeg2xnIFt;9pG%91HPt^A+TtjWT3qS> zORFrsuZTfcG^LfUgnP#RrBOuxBR)YJL6`El`0^t$s72tqXn4kNkL}`pfH$?ssb9tWm+$h9j1$87nwh?{DlV8NTe98Rfk#vWg?a zt!_l_sH*4}x)BSNtQVa&B*V=X)l8^ltJT%!O6WGcYHOv{`qJ)WYA_W_>^+UxYA&0d zXd;!8*S!DdG|23o;&S%up4rfhE$U>?^TWKE3Lg%;UD{4{bUvzR-;>P*OI|AbdL)av zV#e}85{N>|q?N(H1K8FB{F2My+QS)Lj9YN0MyBUFF#3m=00l>ora8Ik+H^9jvoojC zmVBBLwvZzBGy_DeD!STxC#&NN9goq_&=UD)ymB5?4VAKs@!kvqbj2V`f`SJxvPF-;-0G_Mn7S1<65`^sH+%VAZS`dkxO&k~NwMJAWq;Dzj4v~4lunVcA zrA>IonKqopPc`oEtQsQQmJWo`@8BNz2`#YJdI(%c2(bGJ85yD`R1aAVWSqaP@qm%e z*Ea^B5<{hDNECy{>vw7<;?6vRLkj*v?zr@)0KgW5ge}xXo zC2D)Uk=_ePaS}?SdcB_7G@tX~q8FMsyD}-HEbkPxe}9W37mVsOoxk@UyXU;ukm7+PgKZZbL>q39m!_+#t@`HoRLRn z(#NmLpvQfmJ%C@H^B;GU?;WP4$^{PQ4w#os6>t2#I1Xc>X!uZmi;@Dydvl4!z#Li@ zn3N}Hr-sBcyn^;2yQ_Dfx%>j+k;MI$MHw%%$q^Bn2o~# zwuA5hHMso1P271zSJwyPx4qGd=;r9?wUBDf(^GBhZR$iG7a{1)l5vU-9XVOT(Zq4t z!4Oskr^A^%Fokl8Z&$(Qtxb~cAI!(^rn(>D45SDqGh1;N9Mg_}GcZ`9HN^8(q`xEtA1Htf!2KYi>JNrGne3G z|8*6LPxpS@pTOpHKFCiMEv*JGe%jsRG)VUFYupd3Dw<~G5LWT6J>E9IZKYuQroycq zfL?$P^v+dE8vsax+hogBN@}7#WxK5D`*4e{0tnE1XsZHAV?<{+dBHgVzDXGbZ7MF2 zu%J1{*u>7tr_5iIZ3Pco0p)e;f5F$Hd&34+Xk^zK!6>+2oWrW^`M}61KCTi#B@yIF zfM%-|-raiby2Gw^`uPCN`I->dMF7=>pBQ6!cvZ4}OG|3+Y;A;YdaC<1$KT~OfdNRh zSCW-|?cDWxgUe)gHFHhpC1)GyaLXG&r(M*~+$}NyAp~q8^P-|6N9Q~f6O&b~bra@3 zGa5IIFJY@-GhYD@+=w9i_J#PRvA9zm)h_ah=VD&{-8Jd^3>hWBcbtE^0jutc+x4Hx zs6IGFu4+19-G%&D9@rwcyC;+Gfi)n2^s5)gY1!`Vu@1ODw@Al-TupSc;U6h}H3qM1 zRJ=H%2od$zNXfgJECrb=68eYl6!g$fzdIV8Y zQ2cDDjrn~p@GEVOvMuh0P~-pWyN=C=4FQ^&yWNll&~K%%pWQV-W^2g7Uf-U7`=woG zbyEk!7ae6)5!a|D!+;9uPfgiP#+EeZSu?S>Adh#K`vW`-fH)@k2FE?#yS>OC9IXMx zwe=DuIvK^6VZdwcU2K*-Vb%(>vbS1OiWQT4XCrLEDrjXXbiSO}aF-jiS0^G>tb$aK z4!u(jsvI|lAMMW;6;J!54h!`E334XVNwoDoHyzaJi zx{Zt!dYk}$J7Hw`pZh!Le|YQ?PPg>JojQFr@OyIhg^jdmQtzX`*M@OsX|*wMD@miN zn!OLCosZdnsZD$J7SEl|Hp!bKV)i)JRJ%r8t>@M zy|7;7_;I2owXxCNxy@eKLkM;7gP}rF&V1Mvf_n<}0^Ez6CQt(Ygk}9&I)A1~VdbTV z&6OGLd#l0q>$#U8A(pwyH_{{?7b<}1DnG*=p#I-0|Dy#UnS;S(J(P$*S1HBLx}Ww$ z8+*M1HsFIAi=GJ!3u5fLEd%R;>fjR~@P7JII8H@LWWoHpy}dovBVK3*!1nY^sD-@B zE=C)R|@vagZ0QugWFzIeK6ST|jdcqLroN>RFedlK`AC zNT89UEIPn8UC*;(5?36lj{vG$A4-Q$T_3)(cP9s6^yK7hY;qSV^Ml#WmKP&3Mw@eZ zGe}w)E@qJYJ>A+x3iZ*GC#HXYOUP+`9P|MsDHDia`q@Q#)>orIvKDv@Qfkt{J-@5b zXvbgB*@zwvSAirRAbtSsua%{3ZV{}D@XL?DKopR|CCDfB9Rlvdt**oiG^}z_fIJ!O zOEh&kdhkftVO&LyTG!CD9z1JkXe=nL znQwo_SE4iZLq*rg;zG=LNZ#LLUys$G_BT`1_TYZIr;W8$4!FMgf3Vp_HlmC=>)1-{ zKuYUA{X-j04C!H;-Zy?TytZyCWGlRGYQ_on z6zq6^pXJ`P{iSIANwA9yP&h2wMxsbVd`lc${Ux4pF{A_3KEoQ&E-5L^5CrCZIahMq z#p)_$DCh_HW1o&T?9o`c3c`j@JC${O$QcQWvCw zQ=oXCCmenot2ovgw(iy%dYSQgH!mAdLC&`;V#k5qLhVAcb0x(Y+m4|>V>+b4Px8zC-XcpB|^QumuMSGdZ{`j(1 z8e^u|Z|)aMA=+FLp`;==Zo(6(U;D$1@&bG}<=w8jH?t4aw5HSV%E2V<^9zM^9XybY zpS9Ik&XdFjxSJ{Cc-cXO`zA%iaNUiM}n)XBc-80w%DA~0S% zAFg=DQ`}k6pGrfIM;K^O@8yyDrbJr_| z@q|{3yPIa?ro$q~I@IK1%2MpMgY9z7R>B@knp^w=ReKZg9y2@t(97!=DsT#@N1F52 z4LKPvrsoqSHVq8X(vWefPdL(O_5P-%3nOD&%Y8g?U%nWEzE!$b`Ss)zQfz(*(QodUn8SNV;ok0IPF{ z=tK}qX~bKqOap`%FePJC3z8NISIlhlY2xYJSpJxpG6AoftN3LS6(56U&7bu5m$!a# zeM{b&76UYan*wdzm`d7$zkJpx=W|iAkah`aljD5Y7jtXrqLkxN?tnQWboA^*dxGhO zP2ZJn8f|O48r>XiU29yGbwP2t?^cDZM$Iwx##%(FvHjQHKQ>)RC1*!?EB=AGpB!uG z05Lu?Gs$PHwcbaUy>4iy!Ypg-bZ_W2#RylyD%Z(rL_y1j0ttEIMb(DK46*S{Un z%4mIYR-NJ8twk-W7jQkOWnk3eX6LUDmXVvefcA2>0iGatyepB0(KyhWC+vR36q@lp zF;Kn8O_NRr7GPmkC*TPWavWb=ETg^wRm3T^7_!M{EniF;c5S7zuHddV&CP!QncgXv~tP_DNKOu&^5Fahhm$j@b0yj6W$+G01(e85BM zdbc~LAev?Xec$`_!acy**a55V@*mhG++9qBFb)_K_dA!Y7T?@hV*Ot}2a5zFP- z3B8((FVD7ftOf}gkZFleZ=e7aZ03BI)_Pygg&?Cro%P_1e>hLeLYS-j&OpZXJjB~u zcg)~wW$%srCuSj`&tURyO0Bx88c1XGS3mcXPfL|mQsN*}U$o<-09+mulThDUrM*M; z&3V)bZ(hKyW+`;&tnAulhr4I7kSB^ZBKRXr|Jq!@nb6$xo{4|210WStQ+ey3*WAw zYaLvX4C#Et%!d{0h!=Mj7qrLh3*#YU)OCNZAf9NYG56!u_;EmcUoQs~hth@M9yjw7 zu)hgheZ;r-dh}pSRiNEkq+m%<{MJZ(0)Hx>6>C}v)t8W^NlZZ{HRfkE=n z*a2qi%gb;gamyO*7(r(`YJR)5QRWPj58Al(Gg?5H#K`=jGxu|5Bl6~G+mg53A%F`c zxOBaGF9(+>0jgRsQSSUdmJQ2@Z2-4_^jPaINtNv*P*p6$2BA4jP2Y?X?!!b}jk* zpz(IXg37wH~0UjqRWdHw|Xbo)GaoIeT}ef?l}^KHj5%fNN?m zK`m1Y#m9`I(SV9bX~8MZ%h*oKqfq&HUqdo)^iO}UF-Q!8Nw@fFjcjGbzskxota3k_ z-^J<=ew431QSB5##Bv1r9ToIa4ard(?vl_*=ve_cgHkIi;P{O$6qYM+l5TU z;Oo1tn>$;%hPS9&)G0v2kv)DQJZ8GZ=-2*VBRD!XD+73<3}0l;xKW|?L`2J1f7yYa zx}73gR2q*Hw9lX4c_FftF3jgK@0OA4d314<+^VUWr|u2#3dH18Z#6t#%49kHHQj#o zw{;L=OiM#^BPZ*^S5krP^jfySYJAsxQp#t2cd(9vh%nWweX{n`sAV=#!yomrXwS|n zYJCL7=%mE{43enJT`G0hSUU6J0~kJyUwA zJ>{Pml_K({H=>1hY3m=Tv`29zHg^MZpJ(uuR?+3>7Jffl5jwu}375(LF_i1LkR0{N zn^SL5thar=gF{b%40&!x9+3H&(CzTt){A4W`aQim>vdaEmu@KR%TP?(MO^EZx>D@B zOPhc>J+B!paHzt;S8=XX{aDli1}x<&40T%a9sxDya}i~E_uN89eLbC6#XOUVCxc=CG8?Ej87#+Bud%;WEMjg{ibkRpNC)ZsD0U?WbV;U z#)40wEAK6PAd|G!@X;Z$YIC+~3o=5|>Z>`-(uie+cegsq1~-IT(5@w9wJenE0A$ z{LBw1EA`3>?LbqK7JA6LJ(iCT^YT%)k33Jy&$M2!Qm_BwHIP>_m>oe)cv=|VtW7(o zy+iSZ|H`f&H$w(XXoxhB*+y-I-!b&3r(8y1wy$}r_cUyZ08w9O@|h!dW1k0p?_tj| zx0I^q#B3k=xmLl74VN|_?Yd0J_#B1bRzpN04A^ay4xL)A(gFFE@?<>+-A z4KTdNL)3ESs8d&K&Rjc{-erzQAKOp;=<7sR{h`CW!KQcV5Qm!-elH*Q?~v5`KXt?m zgxrA0WjqdAZg2nkB2U*JUcYK?R^bIB>|-g+FD#(;=3o$u0fKt`d8$#`#xrt!Q6d~d z8R{j^F$s&pZ|*;{qtH9&Vg``pt{}&m2`0GveZ&&*hkun`VPP)s~BHdX!MJ(X?9+&9U9fJjLF-G~iq+ zE9eVPNkj95lk*FZTzOwzCccEZ%l6XuLm;hKD^`Xhyh=5U4t-J8NX^!bULjMheNiI8 zQdnIQAR#04%b0~&zST`@g5~-%@P_%(qd?~(>%J^_addjAIC8zPjFST2{yGM~RX+K} z%Grq!-EUza^Z1qZSPOFK1B}`X$YClkJ|L&+TfVi}Z|Q`w4By7Kni1@an)DogBDMI| zj!lgH1tsYIGoRu3(Xp}iGM}T}?C}ub#;%8JVfM5vm`LkkgkevsK#iH{H28=L>2cFACypokA2qQ_+ z@gsZnAVIbQR8I^w78wKgIaDU&6+Z7vdkxLWgcK8j(E4ZA_{ zSWF9=B|7NNK85?!C}GwTWnA8n7}UeMgZ<`~T@0vF^&Z8dT~LRJqxtEk#eb83^-5sv z$7D$R=uw}wJk$8n?%wgS^YiCLKLJB7B5MZy+-Lom@$nl4cb5(~{Jj|AIh+%*>_)$8 zLp<}vt?m79?Lu^jsT~@!KWs($RQRjp4-$+=wt=~ay8Zka%i0c)I;!-QWIf}a z`h%#I^WM4Ad0GREGf00gY~!ucyQe_FF?%Va@3lg!sN?mRYxKP<;-qpdOR1osgc;mN z*8~>m_~y$yplSS}X#y?7y_4X1p|(Y`BnIh==mY=oLK#8zF9Vp@*=V)y?UTKn;<^~5 zMbQU}Sl19#WYX1I!Kb>sheLwc(7cXh%|G}bl?f)2Cb+#T<=Ci|=<>t$M7NGL$qS@@ z+L61#E|^mc4a$=B^(hj4v9~S?JJAvzc0@mSlnnN!CvPlVxHOI|)NK$a$CvGmt_{%3 zVfm?_lr7b5L`C-7uMC~eIafGVu1*4jUqeRvm%bfoxHo*${QM_rsXSfb+by|B zN_#f7%%#ZtYCnZup|7DISQjP7=P4h!9_jMzIGzBfAW^9QQRW@y(mdg*_b^5OxOI4j zdVcxeHMw%$4{YQ9FLw4rG+;}E>XQ)9G4rq@Jb3V{8vh|8`dM{%1b&SZE0#CBsq_%^=;t5Wg+7p#Hd}VgWTfkq>x-OwZ^73G5Es8)w~{oRrwE zSxI@_>mWlAPIigL*Co&yqXXZ_1{4Wwu3foD9^9Uz8DXKJj$=6ef}5dh)3*HD+AvV2 zxZ!BTCG4@k0>HyB7CbBENhgrVBWG?Y=A8X5-M@qn6@og$jazHu|Tt+u@%Q%Jn5-m8AjX*)U&iq;boId8wwyMer;FEtFj833VgJ1yjO z@CF`gFD|%%{JOn8M4!}(7%U^g4f1UVU;xEzTy5HFpLc3XpWAZ!|gjaKb$gaZbMoZu~d351htA+GRnv6afo9~xrD_7 z0%{o+TiyU<<+WJ@;iNe6-Cj?@DmoBoKI(2n#akt$T#zxS&FJNBDjPAX(7w2u_fW7* z2Iw3lDOt(!(9vZ&I;6sz)5R_LFI*;m+yGcTF~z5>t3K3|vAf(ns1p%|ZE;%oqows> z!p3;!t^K|-q%{UtqU*y(iKO0QBv1avbJJCh4LR)qB{8BiQn9eL>$L{LR^*uvNbk6S zGg80P;T9rkj*`{;dn#7^G(c?SOpqP+0p$wub3YDmxam3>$28+?SI7QQz>uxjY(?CL z!9v@m2LD0a{=8VRPK=>OQ!PXJRqer zkd($#M=(5;{@O_kgQGQQ-*d4TYIwaGVgi1CUSDlW4mz4 zl>+e>*{K0q9Q&rr%J&bm6j~Sm$&8bnok=0t_rq=!XU;oSso@@UEOOr4CHx3A1JoA% zWiJtfg-FPd;OdnC5nsOSBUdfBf!h{5R;h8aGcLkkeSv$XTc14=;Ys)MOFxftx3+AL zik&LM2PH+im5!PWjl%Hps=+OIqy+15MXj{K527|by21@pqnprdU0Xj2W=#w%~_v^V}FV=JD7?vsUE-3j#?2_c=c%o%TI|} z^)t<6hL+X>W{#IBRYL+lgj?Ns7#J8HJV=P~2}TWLnZ-C-eLt||%@;&l zg7f$9&ae8K=<4sLib6(SBZX&Pon9{l0vv3%Slm;sFr29a4kjCD*=-hR65Ji%y@qzG? zC>^CQBTG?$T!>{OUPItTC4L$)&eY}ZK0@;6`S?RY2Rn-L{jc^L{0|cS{fgaw75~C5 zn(T9W7fb1O-+?6xaufB`)9>{I{*>sw^azY^clsKft+&w2?h2yh6=M@kfdKZ0>5zCE z_D14B#@8+TKG6>bkgycH9`h=K1*ETx_2=PZih>-48_Okc>ah`JGS@v1l?YF%W9PZE z$;Dmn+4nQ~%`Qg>xzFz=kjobvseG(|_-4>%T9wYk>Jt+sPOX^B1Y%|cwRm~?tE~EE zJN1t}S`A{D^Pq>Tug=heokVbgU_=Mdhm}Mbt1EI8w-mkfaei~$`UX_wg)9-6*7TN5 zb}X7b43bUPLV1N`r{ zPS2GdcVf@V0!^%Wb{>f}r}BE8L_>Bp8dx5Y9tX~!!RLUBD?f4vw034@W@lj$=C*)8 zcdZSxM~?>T&93t|L_If;dHJ${Tjpg$jg4mGIxqWqpO)`Ru1)=Rp2xSiwe{LgcBZ40 zyL8@NIfp!M31-VmUEB=Jj>VQWRDk8pBgC^W-}8f?4C%bNcnt7m|uPagBmH4MO$R6nS*?E%!&4RtFaX(0M8Gj+69UHT_NGTlS5`G}!5@XbA23 zi!c4ZNrCuZswr#Hb#9E8g*zA|A%uh){~kDg7^DnLOM+i<?iGDsQU% zygY_$%MUZ0qz@d3a_#8sc=qgle{OLl6`*=^-}waB_+MT55kEtoyyh93h^VOiyybM& zh~INnbWnaHu>{Gin8MjW{BbRQv}u1u`R?Efm!tHE-a~tfr^Lqc#5)xv+}c|G%0`cg z^lxdm>e6f-$~NrsS}G`uCf@>M0H&yj4Vz@6hvT76S_nS<-Gg@ShPPiKfbNa7PXLGI zjYARg|EvI=Uz>0R);}^)n%AY|>IviE$|kY6`SBH|QbldeHx#*gc*38+OWp z6(@%nS@5YpLwz*YEgY;)>PB?48-F~m`BgM^`2}Hl1 zv;Ek?v9663XXIf_tFciunV;oLb-OHJO%;c3;92|LDCqsWTL@FvOA878#D&}1MxFJ}xyf-q|F zlTFj^>uV8|m?sw+l1US( z)Gledobo}TX*B%`-KBpALPo0Su;f{9h{lPqQU{ID2i~okyOI)GaWn)*-P_c-8DmQF zV)xUT(&iHc(U>2H(FE4@Xr$Xz=m&+$}+fo<*YcM&Jy{D`f#U!v^z+ z^7exIug4zoO)EMpQt$CB?O1FXCJ5Zk}c)r3Ba(J)mR?$_rT1{DZ%ZVD)SD-%f znUc@Q6CbNp63hCTA6j0nOwRF#{@Mpf@IZ#Uy1FKI3)a}+b3ReQvCWn;*qzHp|6W&H z(bIE!$v;n=oI}~~GP0~$PAO2Dz~r#H)v{^^6Z$%9^ubA7GwIACy;UWm_oGAbOkPgz zlM44!7Jy+nT8_HQfiiJFVWqb~I3545f8fJKX(aZlf1r5FC%aKLh$-a)?&A%K6UF?v%?jt?* z_pgDkAt8YexQ5C~V*Fuz-0_^1of6+qxW@^13Scr@s0oNOosn_P!;>?U3ZVKzX#Tu4 zC}e*dKu*N{e>n&2GPCgZh|z3UTe*6?pZ1h5X=QsgAH_&To1fXtD8aCL;~Y zv*m==TRafAfpkBB)aG%NSu?MEZCN1;o;8cd2fslRmF4N2opWEJ0Ax?dz+iuub{QyfC zHC-J8Kopr;Q4~a58Fhj)DuWWN%kBJTn`&uJP#@?rkhT) z+WEI#g)XnIHg~r-z8w#neP!hJ-2AxVbla(PG`8(<2$vP6`EklS@sfY^pKc!;V|c?U zBUcp2bdfUB3m0cOImKVKEnge=eF6uPHUYA+vbW2rC@^#MYPr~By1cv+9PSsJ*FoBf zr{60o6EKJSt`85cym^n)+K9+7H8UqBqm1aXrrddPiG_LIi)e{3N_F#vH`Rl)DEvU! zUVQ5W2po@R_WZ!8WnyYt1tg4K503tAT0)$HrzQo6 zt*)0n5O>=rgWkg?8aA#dNMd+UTjXM~;hp}4T1f;U4y5{@K1bc#0p*EfAba%Y4Yr1^ ztJobr3^S--7Fh7~ASFT~tYo|Pm9=5QmUcGukXX;NE{%xj2+1;N!SK(_h!!NW-HVb* z`Qz5kWYM(G0ViNGua6LjZ(NMgpb8E%iV1L&nhlny8yP;ii{l8>$zJAziA$<_rgy}5ama@+fa1Z=WZ}3~pw=$Nwz0u@Jz&-1vx)mEBNFr83 zrp|zgT}Ln<M<_sw2LOWZOk!q$bNw05hj$Q z<1om)7sGbSzWuMvf+T?K_4Pu95PB%Py4QXS2d_m)Ac2X#PEp84i7 zh9z%uJCu)#z{S~RI^Zw1L-Q>vr|bI~mGYRCkP5vkXJ4{E7a(N#_q=Q{eb8xNoc^&G zJ7$_bI#D9X#*bp7*^jm9BthFoTx zRYlTw}QwIOK34sZ3noWju7R5p{8#-+DZ-KluwMx;V6GrU?pL}`V ztpG*iv~VZ%@ZUCHfHg$}4GcgyKPRnm_$Yu?egafYo-ZLU72nD~dd?LTKULcvhu@;k zan+|~aaZsJ2#sI0r9sP;xUSl40BVCm5%{GrbW808xR&OynBn}w(wy8)|nSlJ36(XXxB{AIIpN`das8yb=c~K z2ItG+#t{V|Z`9EB6{EMk0;QIO4c^`nk3?vDc~2%ZI3TSDLW)SNDvQ{<>VoZcVvEkp{ zZ4+=)c=;iq@cR)1J7Lx+ujj8$t*#!er=}O*UUw>@w2wr{TI9gyQb&y@3`-V~{`B{P zTm43x>b-n#&&uv%*zX$ZMC>q7eRY3%1yhMGq=9UUXumF6L8n$lSG^rBrFQt7N$4|a zj9y<-URno!&u$sIQL)=y0O+vjjLzZU84jk6y6+1MP>hIOgqmnIcrpMUV{oGp;gnte zWGP5Dpf;o8URK$iNZfg4(zkAx^v(e&*ol%C{ZI}G0+{UXAPgi1y|nSPetREO%kQKok}m`Qd~&>_U0qetqGCSZElsM^mYnHu9}VC2Op!+B zxYfnUaWg3OFvbElQ?uFnDM&6Kjcc?45y%W~SYl$tBFkhNSiR3(#%rCiV(>Rc zT!4pp^0eD!Zp=ip!4nmj0s6QM(_d-C=;Au_|d%~2q&DeJ?%W{d5e zU==~Nm(h0r`jMWej}sHDt>-e z0t%9_PX5VP+(At2WLNa*KupG_XLrRUCQhKlUN+0*o*3EONTT zh~UKjfjHE+@Ap|tVZ+%3)Bn{OwuL)M{(5ttXl!A$cMz&4xPzuz)g|@r9rd=sf`rxU zryHqW-fbMN8dl$Ce$d&Bk+fHO%3p990f$jF|_{X>gYv)Xy)d>`>(c~yNe!5 zKXUAO?p*s${te(~fS~ZYNmtN|1$^UAR-4(RF(9HSx7lwmu-kpx6PDqAkaV%W8#iX>fnn*WrRnihEGn@4e4D$Z|2*ODD<-6X zhPI0!U@R!HdBpcLBJ{kjz&_^g+utoyRw#|qzZNur^-qTMTj%>Vr_tA2L;;`*Htx?K z>~h%V&R!;{*$hHu1fi*OpB%Hi+dpla{#m}mr;I_ma7gg4`v4cr8^_mE==pxD<%lZs9@|Lu}|XqHt0 z+db<|{OST~Da^Ue|LI8j&wu!zUsM!_;#e9zY|$l1srYvG%j`W(q{f>MuHEc!Tdw;I zlq?(m{em1VdP>*C*mF*A|Ad0B%>Vg*|9Q^;U8cnUzrMeT|Bq(8|Jp(>)P@54!2j{+ z-w7YWQ29C3hcj%07d2uqgN<{MOPVzhswAI9#M0 z9r9hm={7VOTSEO=6XcEP?dzva)7*zvieU%Dp1$m>AKUdN%QM{ybxyjf+_j_AN7tT2F>j};*~G| zyXCD)=F~me%ZXzi;~x42!KhJ8oyK5jse}+C`4~QD=hD2-_2U%KV$&G(VdeBM)M1pE z8s2;(M#}K}y*$hRY>X`bBRY*!9F1Gr$X(#OcRpspWLv@L)Q@!&zL zXbKStX+GjiA1jrV$X&Pz##M1fyGw{@4^R6-ia9K2)^8;_rF2Vn*7;F3?3Rrgf3H7j z+I5YGB#5~9ROOS?n@1Y|y-WYuP>`N2Y+5Ar7*HM_{&Y(7N0cAen1(AhS`xQ_tRV?9 zDOO<>4+^?uyXp7(+blz1Z*v>SI(`&qAh#g|YUhMcF63W5x@U9qz?g=#E>!M+JYGuv zjgh!2_2lt*Pn~Gv@zgHAp^L>x%D?cYFC*Fi9J!G@)=gOVoGf0pkfly9eza2nOh0YR z9Nh8J?tcvLGZkRK{YGF|AstQP?%Js`s4PgFia;sny+1X4e0`Z_c3|G!qs2iy#IOchzAFiT|V@fbh3e@NNwLw ziKuA=SEsq|3xhTuG`CHw;tM6F5tSuxXV3hBD(M5Ce8W9!uLrtm_dq}8Z*&dCg~Q$@ z1pL*7ku2T!KeZ4UD%K?r^^R^e{)GKvNAYS_DDhaS>7?K2>NIefJZ_!p2%zewLw*%3 z45*zoI+e8KY~STsYTVpvMi$@q=O&GbP=$5t*d63)*Ky;Nz6&yK-U_(YD!UY5$VL5s zGG+!0_VBT$htuOZzIPvCx;dbItk>azDd}~K_wsJdG_x3i(z5G8 zo9$gc=EZS*mU0L?>J+5yR;@r8ra3P7k`DP@)HmtLCj14Cqk0qWjyEn_m<@bb%UVFA z08;?^GxtUnJPUJ2QkxER<`tCnb1z+go!>KiKAM4Wb=R%Nm1S=D4Uv)t&7)5}i%IrM zar}i_(hGwdOU*xa5CCNYny$gU*ZTL~=Y9A^NH?I;uAm|3T{DzUR(3f_ui?3%pYW>C zj!jPddOs=C@%1y^WbA;#Am-$`SbDVU$E2lll=HPexVD_!xP7Z8j$e}n{k@X-sJ;J2 z!_N8bNT-~)z;jGcALQ^ozufUr^Ej$Fr(}cV$8~zElR1t-&U`bp1N%nYm4>%GZ7VKn z2lS6vU$MbfvW!amkCNy!#UR^}A_k@mzn^^jpI!EUtIm#R6)H1rExEo7n&VjxOLsU? z#yFU&&g9$^-enokuve8FP~$q-rQEupuYya^t5Txhis4?tI~Y4}<4G|QYo6i+(U{1u z!Vli~K=d#aQw9qAcEOrx?@W&i@ZjD0qen6>32$0oLi5^?`qP}o zUJp+@BTQ5u@P)PoY~)*4@h|OZBRci8Q5cfp0Y3Z&YL8CC6w$#X&gD0J8F?v7Ipj5^ ztDzl(R)xm9WO9ZT?GD}84~KCyjHYgy4?G#aQ!yyw*(^_RPueUIX*qVIa>inhd;~MM z)PAtqwecuy@mTRlD+>5>(8k1mAbUYQaPUV!jqAp(CknhRT+A~c^)2Sa6}ZsxAu=mo z*Am4ULDfR)YMm{4G8i~^ZBFm4b)qK=z98XZYNNb~pdReltNOiKVDwbM=K&2S$tK3X z-U|$BnY<%the?0=3dgpBvB{9WzvR>c?I8J9exhopl-u`zcH*|WsU!*UJfKTK|Em4B zx@~dWNQYTd*{>UD40jyQwQ{w47TsLlcPi<2)aeLMUTWE^-duJ?I5uaY9Wr`3zHa}! z%S!A=-}Z7$^`lncuAXB+bK&E(Y>h<{4W=ToqXn9}n%~=9J7h(Arz+yf1yc1zD@%Sv z4+C|-@jjsNA5(DK7DxlL8CByheSrX(g<_aMBjYfV?F%&~!nCM-FGmh^WE=l~Oa#dN zMld}G)QRndnrb)`HHAx*F~sWc#Z`T<#}<~bgZ*X+7GKa8eweii%EO%4ZOs_cAQRw_ z3%(KweZ%}~G1tCCjKrdgP%VU3tG%|4UTi10v1+1ZQ?y>}HAZs-tE0*20n3+Drs)}U z2XI)kF>)ew`cv)E`i!m6GvF1e;q$!SG z0L9fHmn`V_cCI4=dZ)DFo*N!Wt7g_FplBj#!Ooj|8yKm%)0->)>nr` z)vsNHARw(swUdp z`L1jJ*cUUinZ5Tf?t9&9ty`kU*>o}-?}xdQK?MHFovS)0^u^RiO(ZhI25pst|4nL^ zw}ED7NB~S#3!FF#t+4%RTfoC31K)o>SxPLnk?Bq;M4$9PlXg~z?>MiXMIvir zDC9oi)NU14^y1j3-gr9@%bzl3DUo|=MU&vF0pCgyb<3|&2YKzXC{xT+)mCd(u;!uo zIpscZGPT)RMk*oMenG!dMuQPkt;B{xjmtAg2YXS!=sfn z#jgrwB}ov_URXd4_e(G#4)|blb3LkQwSd*LYI0Uo0==cdhY=$-QFILWQ@!M!)!Xs) zkeb7ek0!vFc!FI^MCKUJg4bBoeSL9H23#!TPnH|jnqa3A-}5pgdd`RSS`)38?wLXV zz01+nHUjEkT@BB)o;z#jsV>M80NMcL8j-wOfH*@hq$~vBNUK?rqlK>Q7l#e#^8Ae$ zJC3WN1JSgHx$FcnRs6CgGZ@Nsh0z37It`@>gDp)nV&3O&V%!;c^toa+q;YT9S3L^> zC$)vSOA@C_^MmUd`;6^%1+U*eDQiX~l`aQ&T72i?)#uVI;R`1g0A5t==YeI7Nb3R$ z@`01mLlkp*?b)(%Gl(2%nV*WkDxZS_#kD%)C?q8t6Us6v$V~CF*KW;}UDf|9Js1tp z#1c>R6y9Zo2B|ZTY^~Ul7k?UqM$|RZkz*-GQR6?dJ0|^EJw3M|?eooz;2RB-Hx0sG zZyk@(cT)6W6^&_{RknCj0eW&D4-#@-#u*(Im^q*^6nVMC7C#@eQ$!flpeSCzl$noT zXrKueJ!*2-rrz_VQVEccYZT;$I(;86tqG&rLm}3KNvc;$YKB+D;)x30WdS=OtCP$4 zQn>EEHji$9na`&o;iUMFK(Vi;1%bIRq%xHFssYAC^Yofwf`Ar!;hd0rr^FCz-Ll5p zoa%jo$@T1NwjVaRO7r(Ocb$r4HK;*Sx*?X`sa>bsb)|14kyOLN>8o`XAM_~4>W3yU zpwkDA!%)US0`+*Kbk^xJOF^0OF=0ppi4KBFdiknr94xvCK1`MDo}!`IL=HU`l6z8pw`Dmq^%LEI5J|EtuHek)W+i#4;Ek@eSg&-gFVwL~ISOYauuP&Eyip)hJX%oZ zdQD|KTF5(^r)E1KVtY9&6FcKdQ*EM~{YWSY2+iBPKNb+FAtD#iT%e7h`Hj+o&Vgo|2^u!)f8Vvrfh2x zPEBUtsdw%Ghm3i~L1PKZ%AI!|$y^<7ZOEnWg6Ap*2&)sadkZSzK1F!qQ;+nal{Fqv z(yhBdOT6CTJ_9>~1xwX3WNvs5j^y(b4_S+DMk(!S{fXv6n=rP|+_p42)e|sF zbopLg^ulgm&31+D-5lhRxgHVG@>#n{6niXfAvk;1oQ`}Q=)j6;A4im7e{cROBf8;TM5i-Df7)P`c^Yp)Ni1c}x`rHFUWZemR z=_VT*PTO49bFt*RugUZi&VITn;5KvHMjScMIi$-LPn^An z?V#WK+7$s|vI6(awvqMHU7n88ngiT}nGD0p83K8hrIc^kFZT1ow-<H*U%*U*ApPpZ5d(VXM3&-(dTE%du?Q zk#d}vziTkKlJ zvLdfW#W|NXVM=vF?T>G$OJAt(Lkhj$n6foVJaBrzA*39ln`j!hztONHM&viaQ{=NL zKx40$P9}9cTipu~ms%*&QzlCPj|*_5@>H0uztOf@;3s)LqrJxMAaNL3?oyq__;Y`@ z)F5$t=I=ifS1axhoid7b03~N(^z8|c{rl@aTAW+I_Ih*23F>^}n+3B<$IUnQ#m{zg z0SWr)sS=?77Z5OW7)%*WN=@8xlLClYfEOD8!&VbgMFBWhT%1rO0IG-V>IgJj?fm9* z08Fc^Rj=AgpKc}m2zd+Jowh7QoTxxLP^Ww3_v5M-IoWfOC|qW@M>8n4q9HX?omi6T zEeq&kL5)W<{cqH@yod;?&fm{;?}GGSILp%l<$nOGs}L}En(ifMSkMBDy8x!=D*zI0 z_PO4y(gpMf;h$XmUe6iboR9*9!K>}=1r||0sS^n=61sKq+PNQTQ=)J~are4d zTXCseXhU?%jW6IrdEm(RnDvMA3OLcYcIJE-cFQYrweN#F)r?$Ryxjn5v8So9GbOZ;C)yA*azwrS(^jlqBq?3J}N^q%Ytla}J03N)&gLz;-?# zIqL&_xrq{kl~J!G8)~5MpwIWE#9?h4x0}k`I5rS+`AyutxN#-f;%MhXmh-J`Y_sU6 z>9^<&0~_}J+^n8gKD8myzO<}G>Bm&`8v`+`kd4O=7^N=U@Z$H(ZtCiz&LS@h_NuZl zAFx!fKH28eYi?E8?aklOX@#Y3z|z|TJX!4Nw(`n)f@QIs32jRbG!&Q7D+NH+0gGb+ap6=HiuZr{?*)alK2OE~ zQqloZE;9#^1twDqh`9AU`tpG6cis6+5`}k3%y7`q3@~Cr^AHeFq$Eromj&eEfWzd& z_^$_TEXqy=SwHvO!9vwnH$1n?$&^NU4d0^y*F9;O@x;S6|Ie-Sx4gd#*nrI(pzErz z@RcebR^0`;1p7%|VKe$%oEKQ`PkZ^dUSF!7(o0Ccau^G9Drl7TNRMi<#U(NjW=yu%W@1Hi_ z;}(-?$nS!x)HGVc!p}=j86tWBNwa< zg!-6Qi2HA%$2ugZGB}=QW?~F&zzKQS?^p|=Diz#47_OWWE?qmxis&<(I8!TE!lW|U z0)J`U<5TqB;#eI_Np4p}=npog)~FzU{d~*D`J3Q=CgQCoErBp{y*E|KKP=*=vgal~ z)Osbx=+_Xrm+9RVpQz6(;tiO)!CJ4Swk!*0-A07~8+M`=O%1g!tQe`zi$o*y;j4O! zYP%MuIe>U3AbNma3u0DooE!YD>-jyadufqn4)e3BE4v_#7aAWQ1IgfXPJcqw4ektJ zB>v$5sN=eyuoJ%8$c$a_Hjiqgcs!nl5nM8q=+LTK^(vfx-cYf}=z~ z$=&fwYGpu`Lpwhe3=n{S6EVeK+>YFtNPaXEw!jl@~q3i8d=Jj3RA7;nDyPx zJPd$Nf*;veHnSJBgZ;t-Oaz>GcDGn{<)VRso@={-bGJw!hbZ8+rOeJSOQu`Jk^_$x zchvglKDBTcZ_$}ORQG`G)m1vh{_L;*B4OgauT5^bm-Jt2q&OmP)Ot=2eNV@!b-qYd zu^cxeQY`i=o%$lQ_gkOdz5a`1p~F{q_sFZk^fhOzh`?tZN13^`B3!S!&2TZ@%i>u- zReUY3NCwT4Gy9q8^P8Q4D-$o=M0x>@1GNK>Ieaa;8yesp+qW7= zyBT(+1`P1}qtLLrlIL~yfLqm2)M5g8dGSEZ<7r1ylbY%Jn{ym#X+fJ7uAotK5^zDO zg|PF4jL?;Wh0H-Y5D~gv9Z4Q`xYwf%z#rV6o`7lO=6wz-_!(MhY$*iMOuf8sPP$0pe~B zd%Ge}&k@&^ArDE_@Lmf2VRPUPj*?Usvg70P36}L0JMLMJnA4u&jHw z>9Ko&c1A!_7g>~pZ<8+Q_DgO}qwsXrT+Vk_Fu(q`JI|1i%=urvRT!Ga0o z(!B0CN%CG9)14MktZ2w_&)HaXskU#KvMm`RukFcO(vqMs+Oei(S1S)+`27m5&7j+c zd*76*kXS-D1Ow2N6U%Z`hXfkZyiL1XVCw9_pSFS5l|e21FzIA9O{DJSTtIrrXO&6V z`ces{9?%54ci3-&%J@ixG8wzWWoEuJu`5w3cBcp+R613d5nZMNcDe)5c<-yNQq_13 z(2Wfxuq8)Ml+Xhk84z#x0kP&}^%+K|DS3aYz)aEeVo}>C%*-+iDF7MtXh<{;u$%hL ztX6mCc-8}lebNPpAqWGHdpOsd9M)0`jg0>C+#(QdD$4f&jXhe=jZhqr=mGrDH1Cdb z47z8W-vK8C59cG<5J#-N#id8ZnjG>J1B?QnXbAy=DxeflQ`d@_`tTA)JN*$q;vFDP zPHS2gsqwA~0_a(0-$@L@)%LY1)3ObM+S5Fo^h)~UfKk-16t1*(b}W`|!U zDZzsh2}2xT(nGFXTnL?*2@P??1oVQ@nJwcT=3uPJT^ULZsYW^a z$G0C8m&*V-rCD0EQF`*vlObVLf5yHlpv9zz^nd6qE>rdMYs^aQbrS#?r1NrqB8a7j zZG`1NahSQK@z{D%``x?bf-lSfFom7g7LQ21y3AKR1@))xnlx% zRlp|>9}9Nl&ohb`GiX6Bjjs8PP>r?$OT#*RD$m2*WK{0wQAuo5mOD<61o(>cd*5LE zG%=ZcC1j0PY4APNj1?H{W>!FBw^}A7J2@qw@dV;VwF|iyn?WN`b%nWqv>e^E@JxNr zNoaV@vIahohk8+JHDqhK%{OwZJMKlC;7dEJamR0n8Y;bQcV3&c)Eyr{vLbe!Z+MrC z=Us5;XNTLr(i9zA@wGQTNx_J*?XC&GviJaf$&H-nT5mFO-1}rqr%Teeom(HP0~Kz`02j{*h5KA<$Z^`wgz=_@SW3<|rGm^Ui{a zWE=5udHzy~Z;`8*1W$T30gvv-Uj+9b`4s!lnS>%pC9wj7$OZ1mM3L;yTR%1GT?rKy%c}29QcCD!z52 z?b_Sf$uDUR0>nEH$Yvpv08eXovOYCs`l7uRtTBEE*iPwMXLd^(aKK7FgEl;F4na)9 zUKEX|3|Y_yH(q_~%BiQ^9BhCrfPyEjJ0ZqRMO&YrGgeQtu;quj`H+*i0YsuiZnOts zXu;I6=HG5tt3G3yUDx@k$IATRlL|wFOTisySWj1r7)!T#=zZGf7xFr}0eM^5O&&j_ zfix;_YXw)9jLzuvnp-Q++c38SmOm6tB|JupccezBQI%SVtl&5Q@!AciB(&)<7B20l zF^JC3zrY52`?@R`MNV)zC1QVddcOsOm7Bin$>jaSfzyZ^zWl~nzWHpNQ7Yt{f0p?9 zYytWJ2%rxLdwSfUbGhpld1uq`IZVK=ol+ch+hK_*OC`kQ^UgRsBSb2;gi4oef0JiJ zoh-_W^affd@4%|sZ?uPu5uRlF?ysW!+?wzmbydgN7p%g}Q#9~|2R`S%5yIeR9*JGd zbUxKhr7qwht9YV@=~ zIM<4DpV9M0HuAD+f>I^TKIweboda=tpgTO!T}+(`((r66OizBXhT1{*6LfOQ9GpGS zo%()8B);6w@Sc~a#@$`fXsiAcR&l($R~b4ec3c}*-7m80@+f# z_617Z(5~^&K`&E&I?6n#@R=?cJcZB&SMPrYqR$kIg$;8GQ5mF;=l8tJ1} z60iVcV?Y9mI`v|#qlbN03em^KVa+IoXafEL2RH9>2f3@&DQH*fzj@f$^p_c9PK%Eb z`>9C>&N$vF%-3qptec$78tS7rXR0l(u;Pu?0}Q}{1P&mR0p*5l#MaZN+$IB-`55fq zbalYL6>>dq!%Y-@sg!qyT`EeN7FMiVr8qukmb`6SR7t~3TkG(V;Y?+{%!caTpKBcd#Ojj1vq#0Y z_O%}PigwZK7+Fz^6IQ#&Adg(CYZ0w(jV2ZCGDO=;gYLF_H65Uxad>)=kAq41CE~do z_PURPi-*{hzn0!OTnkjF5_8}_s@Z4&-lWsH=U&k~zFz-s3n4ENL;3SWKqaLgHN%cB zVFd6__HXAoVYV0b>r3Q`2F>%|8I)$k$KjN}V~;C^;uTI3`~Q^;!_p&RK_~MqDu(4_ z${)9Sov$7V$f}Jir`&JhwkFZmyi}|be$6HsW|e2gQgJ$WY13^Xa{1$8-^CvW3Z`h} zDF(G8P`OA<^^HsFqNw&&!leW-q3itJ*LfKI>2Z;U`7CT+6hJ>kKuHgPd4O2{n1rwl zNC+}FHtZx*lp_4nWDG}8L)Sq6G1TNBcSBT-F;FpOkYlQD8tBiILY2wvl3G&HoV6>9 zo$p&KCKbDl+3|?l!1oU_0-)O?Liu^m5&$j_F*)o-zMZ zs(4;&`}liQ``3(wcYyK%XxR|t$ML@g0M4u!=N|O{)S;@Y`r6l!+cciNNnG4KVd3b6 z>x*c$ue;}+7{B>Wc&6K7p8#1n0V95=7(Bn|=+UIhi~{Vt)`Zo1BTVSN@vpM$1cm4! zI$!Z{#-?Ej_Shol{t+Pzaq6zr)SVsU3(|{z%}*5KOBcgS+HvF2bI~)1u4Vl$J^P{6 zu{4LwF7p2ny8d(YXc6GVsLN?unBZzCToE5iD?sAZ-yJ^98ZLN|IzTb0*Uk-?kgT?4*V_4qnq8F|PiD&VtAn0cI$7<*Ckt9`PePv*Ro2%}? zy;)~IS&Yjn_vOqVKsNY~5hXKvJYx+ zm=Mfk?=iA!Yk9Ip2i_=SWtG)&W{uMKe0&Z#mICfR#%5iFu>Ol&U9 zI(?7bAP+3}5W}kzlGK!aC>n7aao^cr+N6|)N z&G_B>CqnaknOmxUeIGTZkCx;97#7e;3@ZJ)UAHU`xL6X0haX@78hn5tj`e)bw3`$A zJzSg?mtztqW$J@5fZ%WLAb%_Nf#@c)3sQ41F1*nBftn%d51pnx3K>bcidD9ATM1b( z{-Oam{7WNuEI3yk^QTgh7)$?0478ZUh%l_mA`3|udc3)RQ_;Q6g5uniqa zrmuSHwUKPM=QbT@DZ=Iy7=B*Mg}%t~(NTB=*m|&$EToH?WJ3qgFwI&)mbJ-8OPp+>^J zHhZm_UsH1+1HHM~f$3=_jBUNk(s353QxZ6>J=7pw|LF1tF6KX$7-Q{R|c#7K1Qd)X&zxJI*h9CX<8E(VqBCwQ2en4&(a^Y+W*f4?l1 z`+Gw7pH`i=8Ko}Tax7*W#LaP7cI-|$51$!FQueb6vxQaf2p^vF7y#BwfT#rMkQsIm zifFbP+hcG;1<=*G@bQ%D4C;_YTmWHLm$}s8%Zd+R&#pVDyExuMNiHCOt2Kq6o>!=Ry7`i_6^SydodU;dQpCX#RyK7@*wev-D`mXy_ zHm>6>jKS<=`s4~Rek(uTPhC}0qiUcoZ>_g%B>j+_!r}M7LbP5>)?T6WXU`U8G!haq zf6Y$6b9N@ky!naSGt`I0#KxA|Nw5J72eHzN?b;+mRas9@u~Cj*(c3-yYY1AHChA6< zNg~a|**r`Ib;RMXqElzpb?kcy=s#l36Jd+%GsrvdRg0nf?%{V78zEsQbzjPW&KiPy z^8@?qfxef*wN<~Wyw0+Ixw88lPO1&o+tMPWY9h~?a+2N@x9x4rYjpYaL5_;Z2l~%P zbfYs;WqdVhxacLTTx2cxH;t9vvYr`f-)%dPKNQJ&6lq>teN+LnUtFtnwy;4OyDH-H z?C+u>cV~GdG~^BBNwm^6WIbv0y>##19<12v-|W!Xc~pF^&!e`1B0nhF;?BW0{JZD$ zh`E0c7LUacGYb9YXsv<1JWigdh6IM2mh$+7!Ke9*Ux$FtP_>kc2t@MNEeG>Uou$$! zowrjErzQ^sS|+=kyt3TFTWM^}4YO~~`?8X_8a0|9_n*P`7B044-?JYe=Z*!1A4W?6BA0Zo?=g)bT%!c;37AZ2vuFRrfwh3pF)l-odDMuGL*#GnW{w_PvqY}IAGmm)i8~bU&b^p#tjL8NcTnqvr zi8^Dmm#m8IToY=ls|+$~ne5-fUBlvS=1p%k5=-QfRO^Om2_A(Bm0&#ln9s+>6E)SD zOs72s;pQJ@k?=mSk-B*yoMyr0p?Z^Of}y3_6#^k+=Kd|31^d4yGxoevbQ^k0z98Xns{yeQsOP_~_rO z=)Vq5F{$I`FfDU@c5j>QD;k;p@h-FG&-g!2`K7DvMd?5OB#86-BvG^Dw z7pF}6zrXP3c~cZxLDKBj2llvyxD7N!(nnPhXRbJ36-P z=A6g@GJxvdg>9_%9WCxU6(9q(ZmeBw=`u(lT=F*;-4h)_ji*g>wO`xGo!^^s=zEi0 zuKXVtpbmf9Qx*XT_AJ)XH&#vS`D)e?2FO2u%t*^tnRlIwnRdhoTcfZEM4zw!XJE39 zu|eFBGyh2%AJO6H(qDJ96U3*QKdWtg9YOh=?)UcW_l)r+>|B2x`3mXAum9U-^)_zn z+M0=D{TvG zHwCsc5@1y;w{cwxCSb?ac34B8gfS0h()+ zl0*tptO$YPb=7x0l~Z?#-~9b5fMYKKj@5U6``ccLp&43Ga zgywnG6RG{Vc!%?}C6GBxya-+&0dbd_t>!%EW7H!c*{9LDG!bR{*JxbYR$RKj)%_6O z$i5US@l!d-HXRj)gPwOQ*rID-OujGDNT-yEBkv4ffVi|7r7W(~mlgVa%rxh$7+vgm zCt^#}KM)#iQ4n~(Vx`TeAk?ps5jUKYNJPT;U}E9)kqag=l^Dhu{Dp9GoP2%btQHP^ zJYH*LgbmUL-amLC5x;tMmT?*8)^2JYclM0PUC%?LR^F*&0Z|Rda&?$d+Wf={ax3P} zz+}vfzdAukiC;DCf|H0hv^wr}^0MJNJu1s3yP19{C0B9qNtg$hy8zEbLXzOGj!-xE zD&|>%?a(cG_WewgIeGn;?9#*&)b=Cvuo7BJ!27*yot>Lohobmmi!OTAMx-8_e{`{)0(~f} zoxbWTl`JL9HfxUy?F~&dlybj>)O5JcJg9YbVV;EZ#KS+}3QyL!J32b|i=0r82zFhIwN-{2Y5O(fu~=L&rBW z8>V6Yqdj>J`}mU+pV4TKDU@I2d)0maJyB!PMndidJd&~fb91`F!+ugiy$6UeI_ad7 z_z-68CSeb`*La2bau+pVvkvOf#jk2;bOY&kdS%P|=)p(s>ThrNaMwcC2J#%1*eB=G z(dfcu)AJ>co@T(H!!T=I;O%`P!V-LMd~Qs%>N`@?|h z`~m}W@CBKu2+u4$-~433FaZ`2&vAlfOOF)4SCMsB%|k z73Xn%5nd9C^|l3?rD?A0l*PpL5L@#^HdqcsN%X25(+(C|LeK1dG>GqR!l&^u^u^#7 zPq0<_0skXZP^W{1)GTuSUGLKY#PHiZ<+L)38X`J1%CFyd9x=f zS}PHJy#XE46xjOVj&N2tED^*XH(PT~RJSwIz|AG=AC^u51+}gEa$ZXl%Gtz4UvUoF(pfw|d;Iuj zkhr*wQ7l#>j3i!HnLVTrnk9mz^z@#IRJ^yXv$m&?m+|IN4YA1n`EadQ=Pa*sO5;*_ zm&!SPmIT%WTb}Ma*==*w-(a`#Aebw zPZqVooA@Jx{~t>XdYM(5fq;L$39E&I;GVCC^Fr=~Ulmzt8g1a`Da&6OSsn9pLd*)I zdbSQ=j;s1?Sj1dMn#!}Y49xaCh-NS^bsLy=DSEpFVI{WIGoGz%t`G##3~k$f6PPIP zw4|rECFhu()_RFP-3=|cr{LPx^v!UQV;bRcedS;O)$^pJi+U2S4h{yDtq#znSC2Bla zecUF>A-!3OkZD{zU`4OJWFET=pK`d7H@Tb*Pg9xI@;H_gU+QxV=mM88e{~yZQgM8q ztdSO{;aPrnzP{qt9W+OmV9!N3&Il4DlWO+$zC38&L!H!FzXx06fqlK0)3hH1#^bKF z6RhyMRT~(GLtI`i`^25krnPunGIGfLtVc|^p-ot38#!k$r8I>^VpHRAwEFMuaOf^J z#a|aWlv)xwUzztwTU=ZVEVVvAwr3$nSh268r^uN<5ugfBt~oRj&)XZdLfKooDd0~8 zq(QibNE6q-=wH5OkFQ7tWaHB8l7Fdl}Qf;1AWJ3^_jmrNXa$ zv&u8#H1v@xoF_t%Kh`OV*IO)lUBFm-hPY4ZYq_n|#K73p6YbUS(?kn->`QpAReMZ- zyAF6e8<7%}m)a7Le;_+w?rK3zoX3ZsQEv`zlm1L8;I;F_E}ebIz;)ZH7~Z|yGgrn! zkz-I5#$0N>-aevzx35SzjCa)i?V9MhGklTM4R&er5_*hB7dvxXt)t_xT~+2gH*sS; zYe;0^liiq$j{|xjNj}I<;#YIh26=#em7`iG)j2NJJ)>;(AdK0sk^?&rQ;GfFxK?-H z{yu3E<5L=_S($+pm;R=Um z7wKM>W+EtveI@_r`E-`Q%WbvaWbE1-rw@VsVE?rKJ*;=D@YG%12z9-;w$#G^OLQ&! zkptwRZ`#KuF&u2^)DH_ridcin$TQtjLzHADJBOak`1a>uN6edYac?%mn&$@)O+kE; zuE1>_%j|8JN0;rQ<$q)p)1W-L#U8j^4RSnHTHCrc_Az>Tn#j*CSXenIaqY~{R#Vdm zW5Zl1T&5T!s=V7IQ#VEAYr@YnR*}b3^omz+E&|+KLl!Oe8L&g=g;_KRLP!TM4@3qF zH8SJ6n4$0Y|ML3g?dW-ni00bjphoX7cby#6#Uipjd;&H!L?1mjXSBw{TnuJ?dYsPQ zGx)5{eh0uSnFZ?wA>PnY>4L*FPR`b9dd=Dpt28VmwR)#&2=nB-2z4`=}%Dmm*|K%gM zGm(ypKhLf>J$Q1B?Af|6!lAi#201a#upFALV$pA8sjd*>l$jzI-Z)+La%41N`kgoa z`^8czO7VqL0qONaybYL=J`*Hl(YnJA?wF49XERA^Ow#qXp=Mr%zmg{1U40<(n1sEO zNqB^EenuU}5g0RozcVBh#@@7IDKXUZLejClG+>;Qvg>4}Tt;rf5Scry{)CO_oe5u| z;^kX+dv*OR57`OyU8k_hY8Grs^Ka<1@4dTqR<(Mecmcu?IN4jM&RI=)HJ0ZCAn_Qo_;f zrw`wKh}(3ye4!%z784n+DZZ$i&e^<@E*#;(d;f6d0u1W)SeWUuh*9pWPKgjTl!$n0 zJSY;v*O-$Xh?X;N9}Zz2Yi8HXKAAm4Z5&d#Tb-esT5-f{@3ipJR(v>%OUNMQwco|b zQAxsdu4Jo@R1XNy|Ig$5@;FMtTj)nZ-3v=+eT-t8B$0RC7wH!58eLy6!FS$YlE#aun?lp#qP0(EyX-^`&Og(SepxPa zlAkqapHp5|JJ|4EbeCl-%Q3YF>3-j=o~J{=mXC+QtNXUOAHQa={7=xh=XkVwmH6Iu z2G#BIDr~{LYQG?Wq@VEY7euoyp4Qk?v*0-~ilt~pDJd6!5h|K3eU*FSutMx^2Dy#+ z)twm3Sh2godayzA?_miXOc(V>NTxKGH~Pies_VB2-W=?Na}E&s?Qi1;APUXi+PTvS zw^0hWD?@R^9M67?A1(S%nzwigT(R_+Ak}SwYbq)CeV7;auB5Rc)M#3r?x*cez_j+J zTwB3E9NIEH68-PeTaQ&IkbT;9oon^B;*z5 z)%s!?AzfuFlGu;pTiCmto~9yxI=`8bn;CW2l4#dxP;(>Cd+}t1Rg<1u=%TqHO`66X z^Te<{$k>Yw5zUQss3-imKDW3_Lbn-lF#UW}iGQDLE?>h!-UmAQCqQ(O#>aJVDsO%& ziGLk{9e>Y0CPb0sXNW*taIcik-Ph&MS(hDGQda`Qx*taECVj8#?rweF&i5J5+l8XP zZ|l3FK9SffXVY$$XOS`K3lgU4*y}mW;sOn$3 zREZ^KETw6Zd=SvL+$B0JX~I4^P3-q6L~lWoex0>|JCz|o-mD`qjZ|%(FYCjpOyfn@ z(P$++h7t$*lkmvzCGoC;ilaC=Vq1H|-Ta|l5%G@PDw`da^fIb-J$QQ|Tx#b9c`|A* z#NmwJ-Fyvo**)_MCuThCBxZ;h{7F35!Tcnnx)Qc|t;8|lFLTJc@8ea($C$uadLFR8 zcI>l&xy#jRJDGOTJ4gM@UiI%2hD8{J%fB+haS+1^>kocXe|=`O@Vq4+lcz8+g0n7H zOrpbERuk`S23e6p9hBTRnMofqqXfV##DgR+OF~2)>}}nv&;YcCbP?gAIBm{t;Q1z+ zkzpCyFi6VTRE6J=gF<{)adb3eOtelup{8b#mA7 zUATF2Z&|pqVv&|WCKgssAk~QJ^e9%~)!p{*87=S9Ndx_yae}c{;DG`ap_#P6kk)UJ z3O>LeS^EA21y4ss>Q2s62b#io0?!n~wsf*DHm_ZMFv~Q~Wn>B_E~j%)^&A3Ar8EW6 zQJszKWVmH3dCO_vMy&CFLlNn=Wl#W>TU;F>WeDLlhb=ru*I5V#3-hEf1U6=7Vv$U| zG$H9946KcBf1AgG?7lP)cC0JHseuGPpBHC2CRq%aZU=iZ3$5s++%Fw>CwKHSN*X8(pMT^o79Oix@I3KSIAZph`S=K3)p(m)n-nW>`!m zSn{iFi_rWT5$q@a@Oy|yoK@@8T{((i>%E#hha;uQF^ZO3L-mI@KCzUPgWU8lll%nL z9GknnzA+ePOmoxx0qdqH03j|E8%)iNEzLu#;&b?QZK-^CWz9Ycb$VDvSXF{0RmFP1 zQUr|CVVXK$WA~;@;1-%@d08z*l4)?&G~>23QJ1DOc6>}6qHY>8A!4?n@axZ?fS*K4 zGwtM18;74IcKw?Fe3us_j%~lvy=oBe^KveS5Xd{=XD8s>?V^f%%y)pKvF zwweHE6JRN?wngp7JIv*f)-_vrYUAk66Ef-~Uhvw%VoC@wC$NsB>kg_g$FmrxgN*clNz5kMAuLUIz2OWwwAZ82$v4)%)M4y8Sy5_6K{wk-lc(npM&_G zBy-(m(c^euKQLv-Wo9awbiObbaM97kbvCx{tpRHPT0Lt|+q^X4wG_e5erlG>*VbZ7 zqqLzUE7Euo-5gXe!E^4)g6)SCA|jgi-5x=U;A4&R%%1?P)4}jH9)X{;@hxIUteY+N za>dHs;69x?o%A+h5P9oqO>*^KZo$XL__;*Nh26JR&zRb#CqmZ||A_8qLE^=6}nb}sV&7&C4M94d69b2Rc?V-tsz}kP zrEATajyXViB<5a2RdLG8E20Aw*w|}Y?8Tazn1b7O8l($uLic2FvGhC_L5BF<8TvF( zF^H_O;;#Nx9nB4-9pzK76O#<o|Zm*(v2?gng4*5p9; zIxWHp(xA89#6KGd+mYF<%;xZ*J!olV@y-XT0hiWtl!5y5ba(2N_ZSjM*9_Ns6;W!| zb&1^l0iWKW`MOhTP*`z-7g|2bA*D~7{DhjS>E?AQ0#$3&DGHX2$Qsjd$abs1=m;fyW5b&bye_8 zj07@*ubN{oaqw9f&j7&=n^b09VD7gbVIEorsmH~BzA|_^?=CBP70`3cvFQ}-grF+x z3a@WIKh;53k7FBdm8Sf1fBt8s{sH*E{qn7FEj}bW zP`r&xJWE`x{`zz1XTB-=*uSL~zzK6Wu_)F$a_G=wyDCmDuC%kNl2ej#p{9T4AYUFU zwg5GO+{%j^!_j+;x>)I&-Q#2C|NSAT&0n(F*|ZF{{xG{xgMXF!U;X*J_K<)fP2{&i zV6M`k#y*}&(|~TPnK?%cpW0T4|D&Y!cyHj(FaN&TCh!0GZ{N~j{gFld{?rH+)gQ~| z?|b+Et%m)HU;>}|#`h;s{ri4J{Uf9Y{$xqW&)SIf`?UY}x~#U|fNzKy<(=sQR~q9Wa}`P!Wl)}WV zx6X1eG{5M2Ks4dxEEXnNlJt=p7jMYD9n7?EcRlNB-InLQzTLP#RTv7ywOS(E30v^v z?^X}@Q2LVkKh+9QE9QPF^$k_GGZHfT!QH@d837=5J$+|Q13+5g`iyfhfI~RM>$_UV zpM@`Vu&)?h8VO^{y;e~wC9d>c2F0e82xD1_{(k(OxV7Cw(hp+7Z{0l~eKO_jZmORBWRHwRAAD`^7CvBmB*Uu^~O-d;=Y-edz4X9vbU-ayB z12u~(HT3JbpQj+NyWd`4*kATw#tMgCc$iQ}S|&TZ1#2&iVDi-Lo?jZZ5{Y>(##Juu z5G?L-WC=8E>?x3|o7(N|sqxi%dMK&&9n4-D)ZfFeIbCo&w-IS@IJRy1btgusEs(Cx z1Uo)K=pVTD_rQ#&yW88Xwpx@n7C|7vHXh=@4i|I>orvSZn1Xq|66>H!!?az)HsP9J z({G0FP!{NYzEG|F4(+S=xWMA}dds+QkLD(+(2D(2{>4$+w}h4Yvzaj|cRls9$!Qy8 zz!{7|kM^AfA*lZI|Ba^KV>ozn8gpTaVq#;ht^GW1hH-BJK)71%CmZ2)UmoWrk^c$4 z(c>KP>w^`+t>)#HgMH9PoT^9m4%<(8FmNkFeott=Q`f|~*Gn4a8015;rr*zUa- zuEabxs5BIOkG+-HMeSLdC=qdA*cU>Joq&@)ly)&A76;~;m;~d#ZbH*sOi2hXgy{CB z8K|k|Y%P7>tE`X)8QO#}A_-%hl-Iv^q8gTez<_%Z$Cf31pxvGGls-d3;=uY=0K|z! zkJ30ieJ8MJ5RdBmkd#WMCMT4Rav=ct^M3a4eE%P7Zy6S4+jRj;BdthC3W6Zg-6#kM zA~{1hBGLm$cPkPKB3&XiboWrwCDIHr1JX6*4E$fa=p0uM&?w^blw0OEv0#>4?PSGcx#6Tk6v zQduytPM+bV(>9;Fjc4Z)$ks9iWPBe6u!O#KLAWo*cHG=a^xbo0_g4t7ZVie5j(+da z#YZG*cSR#(tQpxD3ztuzBNk90&Ev#+^SYeuSH`Z7g(F+A)332h97wNxmGKzj39Ro^ z#Dq!s^bq&M@9(0uTG$(rEiL){#^tX}a){3PwgBaA<38+z%E|nlPl?|>wgDv3-IEj7 z_C_`xj2}1A6*<+u%zzoakD8O`91J_>_4;<(X&#G@L`cJJ93eA~9M0qC5bf2gY1e>u z)t<$5b&cPW{j=#e19vo%ItCBB+9G+46C17o31=Zx-IwL8&A?~fChGp*!r>hK51RCLs3NS{SiZL!+)-~-du6c+ISOItz=sg0@V7=73cP8PJ|UIwO)hoYXDttAG9*ca_nFpo_^iBDC zyL==Jpqe$;33L@!2m?@6^-ubPbX1W~jxLs*0rGEn91-@5KQmBGQ16MLLZ8pGd9*7T zi=Y2HmKIq4jlWCFkI~Uy9eB;(NQm#P9Y}Bg?KH{rHV;3QLUV$gkZrNLPNCsXRKY7z z$SNqTVmgKIQJETM&6dRr7Zsj|mhqSEBZ_@F)~d;w(AYob^W*0HA-* zZsyk=dGX$)cHe?X)#7PBBJi7S0^A}~JJPF<^$!SOmF7RXj-8c%M-p|2?FK2+XIB!F z4H0KqnW`67oom|{4v76sOv^U6zi~_&B@52^AUIX|b}OPQYxCkF-WaF~EUuzrAp3-& z5I~WMP|UGJPLW~Gsl6;c2@4ogY1XFV=P57&b@!PH=?$8Fw|=GgTg=lKA}-(-?(|>2 zN7{XJ=3{2yj!7D56rlzxRe$biI90fjXZt=~b}a$f2r1Z&AcBm5YcPnJhjiLXN6fgM zDnO5U?cxp|DrGhYdtYy@Bfk#9NBfq0+84Su<&~ZgE|K%g-ogiS&~e10IZY*>d{m{N zxEic2kZDErAq@4_nHHU60?{Mg*$JC9K&x8<3_%hZj)#R)x#NnwfW?3y%b+_8$h34-s~_2g!+bde(EEfFs}Fqru%zDi`flCo$hVRTJrpN>lA*7>;fSSh0rn z&a>DgCBgx8gv-i0W`0L=?A)=aTwkiM{p`Ob*8HYr63j+P1*{e4no4gNpscQao%GF? z@Yl;W%!>8_A!z>nE2m ztUVKIrbK@Os>_;3xDQv@iMZnwAT}?G7(P}uR0xLAH|MfIsBbX)j*O_^PF^Skg{zOv zDhAgT*b)9ho#)lVkZaYqacNl^dlBn~h{2=ydI50Hk%CY*r!Lmv!)-);^SPia1g)A>u`)d@zDrB5a$r8mT%rS zBaMrx_~yXX<5r^1N!FoGYwYL)h+H|QLgXV1tR*s22Ro!Q0S#OrdzhWhjcQ-3&jo5a z0%q>eazH!E-UtY5v!uvgsxFmo^jK#)iV+JnZikUKRy>(2qmTvQ1#=cv=dW^ZlBHUm zv6rQx^)dPJ?pl&SvR9GKp~3 z*AqFu*POL}S8x8$EHBQf$~+q{qH^csw`0xzLzp$oZ*1h9!-HqZ2`?|0h65Jre#8w2 z6j3?N-kAbCCr57h`#SfEx9jq91I5dy^F12g5YIO-W~xz04ybJVhMhFwf;m~jNZaaV zYCd!JC8`G6?fj8=W~h2@%TsKND6YWcT1^y{#Ixc=j>%U}=O(E_yl;K1>MbBIcoiD0 z@80X|ybJunNwt1ncM*3C#U&0#&+P`N`K#po!RxNIO*s#C=hF_Efb%?eGpP`{5GbT&J(!K4Gib1S_? zzOCYW0X8A3eJdiFPmGXV_R7>f;S+w$Cc-kfzT1+>muZysE=RGbhxdcVRh6geTMcwP zfks@2uN_w|N674!j&d}e(yI!YL?uDF-oC$KTHBj1Ou-!F%(E~(=MZMHJMk~W zHw{p~1{2yA?~`76y?y$Af3gxXvFC(w4+%0WH=8(-`F1T5o|Ed-!jXzVNQ*-$c+<(` zikKKCnyV$fFNPO#wh$fO$g#;$(XOmC`M!KT&wDT!yElE&L@KAiy`$cSibdqv)lJ#8 zY-Iq(-=kX|A+d7LSWZyx(qR1l8c1+V3*?vng4p#Uqyo)OD0I4Yf7y+}=$BrIOX2p_ zL4%8=FuBLO<3RtC=?hS85n}*Y?(j-SB-6_MxkIen6a{wi?N{xWi?g@mrXua~oq0mD z$de0f)QDHWjBw}d1G>>P50bLivR^6#m=#$e#xDASH7o~lw;mjC7QGP{AtoDS_P#mQ z1+-|KOA08yr*cv zX>*Ze)g{j47O6YJ$w}Gqo9=J~DujaM0&tkTd*elNA~cMOTd?qNs2D1k?&5hVFS5kU zeVe5?P`FE|S>cwwbqG;$f`y)**F9e+pF&I_lJP6KjXH50LskMK*V}yMM{BJ%JtJdZ zV~d!Z7zc)iU?;C~ODJ0T%bHHCB4c-w4~IJ706V6k7-Qlqs;mt>p3e!?Q1`Blbw#cP zAeA>NQ-wu+Gg|Jfa{d68*e(4o_0ucH=GUh~ik?G%P&(PT<&|W!GF9Fs6dJ$VoQR($_a z#l4saXz;A9X7U5UU-P8Ou2Y3Wa~HDXTb|QwvL0N~HszIm%v5p90bh4LRkRy*UdP703E2C) z9;c%7OqeJpmvB?0H}<~DgDNphtyKTTJ7r{9YQ-0uPGFKO6&^%Q0AwAm4A0UgqA4M< z$bU}Pj7T%;s^TXw1=Dizz+mE_wX1ms@ydJGZs5b-AdRqJ`XXIlRd%`-5m!R;v|@BX z&~9s{o+2-txNMX_l?@zhD>$R--|@vs*7lfq=3a3#RwB%;#L_XBeX%N{y*e(f`@7l_ znYokkA>N-=$2c!*@MQ&_fV!{u>MC}J^xfy>#E#2T>4Bk%HZ5ZT%tajdJxUj8*m@QJ5sl-O9Cf4^3~p6dv&8()$!?rQj&0nchsW>S zE6As0DkOf%hFy@@nY7k%%#G*_G?Ad*I^`!`$ zdH)=z!jYMjE?=Gvo8|}C%Ayg08C+1}YUUSKG)UPnl}f3xcG^Nr{T0iIC?ID_-YD;y5{FO%;%%mWNL4F1Jd01SpRp!8#^ zIT>U5RA5Vw^Zd619k*`gKI1{Q<14s_8T}lD=|X(SccXT*Ki7d9?(v zx<)>Vgu)om03$24o87#=^nxJlDw%6;IexD3p`U}Ni=^5|@LkhMKq1TNk)+C;XS^=y z1JE-25}yq4N!sF*UCrtHQ=`dWfe*;`n$cZMjh51y$o*lx>4)c2xd5MyIcu=w zR1=J_r4(-i5(4tPB0%?kOAhBeF<@fcr;leA0|TjkNjXEyi`8REq7qlN#8>i-Mt6@} zp+u&@5JP!vMtO?DWp_5(Dz_FX6+XvS|-bv}nzz zyq*&G%JLr@8KDrw5r6Yu)4pYjX(N{LXpXIyL5~63mp>r5gJAnyJ_{(VhH&@Y)V&K~ z;)#m6kU$gtK<{U?&A~+DNSVZbxR;NZ^a8^aUn*caRckQ=5Jug-5e*8-m)$2!&cbf? z&==ia`JFPg$k7&I%+H~Ya%EOj$NiO~#r}B%#%t*!+>!StD{{q~%^Ylk;2t5WC1tUF z!oanHF1>XQ*#50_S<*de^Nml12-r-kbD>0lZOHCH=7-@@D7Uz92RYuG*WuntLoe3X zX=xY!ZFdLs-n812_QW&Zw-P&*pV~{F*zT6dAwTd*;~t@%?}=4^8|};O!_|u||8!S_ z6xDNAypFaknHW7KZ{=Ai-7L%zRx4J6mRqaD2V9zjb$~OC5IpG~ftJe?4mYx2Zc~;7Cu> zpNpgfJ!PN6B^2si&U_kt4GM9+$M0g0>KH{HhyAc$(U7u5F~)qGaKzk|yG87&>OWpF zasG(J{cYeSGt+g_wu(~6mkotA+sS+Rn2G}0uQw-5588Y5As@9815`Vz4&+^Wn7h zUa_MC5ol2R_T9@DEQ_Jd2+C@C_C06bAp82TtzGX;q%zr!gv`8Kgdik9HnB>B@F^Qz zOg@GzQGXx)96wY4-vsEK^4SeAWKs5-;}+{I-c{Wax}C3gVlSm2>nr5q^SX&ZzDM3| z&s{(9RuYeQ?E<4Qund5?iIVt~_&c~CaE|6o`ctjp1LQ&ZaAbmNWI&eLM2F232U*p~ zNCZ7KDH;05c5LTl8sc=Tqnz>22?F}_D*{Pt@0+N$HW{|Cp8_b>^bD$clcB1NeZw;l317WR7VePZ^5!poLK5V_^4kL$3}}J z&L)*Mj-4~TLR6}Ph$(g?EU^!esz;{R#Yo6{V|y6_J=u+AIZAGFuy{>nsyuWAGL>l} zj)+jflcR41-Px?WiJyg%=IaZsHLEl0!EJ?1r%p8*GdoE zZ!#>y|I^9x-M?eh4zd4=<>|@!H%-z?DY{O-wo>xMiwLOv%py)wY54TLPWS+D;DU2B zh!8NDhP0q3!l1$Z4o;EPrX+D|x z?tufGkkD)HJTv}+BV-A_U0{Q?LeaO&f~#;dL%3f^==S8{U1;ldK9kcT*)$JH@O;tU z<{R-7JWM-@cpV{EmAuGopm0ZwlziUy;!~$8hMglG7Bz1t@8qSIZVHn_Td|s(r@@k# zlQIg;muytizAa-zrA4nxR#J%mQpk{oQdWkA9sp?p@G!}kKMI-GXh@>f$&n;xrbH8b zT6PE2yDLKVR~TN_RpTF>`+64}ejW!d_WS2zn#Lbn~Mo&&U5I+r~c{IDsR?nh_a^ zs8spF0iwwVVxH~Hbik<|bDQ(Q?{QOt5r|6VxTtC9#_41i^KLVx|2#PmlLSRDGhWd{JS!ubE+RjmJC1-1uP zf7kH7yFgZr#j8p7io*Gv7?#ijFGCCB2)BXyS>j3j{>4={D#B8K8lQuYc`2Z1RG=GT zD$&BttSV^kDb_NB-L{B_o_yvz`WmfC$GrZf3phk@LYWmwy4%Gp^cg)`^!wjBn#ViG z`5IbNy>v|N*diJr%BS)w#0kpgamj(sSk4#Fzm&O(T!6QCs`3@8B~8zYE2#7S&;1h5 zw)=5}mz*WvZSc{lKlxy!*rVH4w##`~W+~)iyb)rFPrV<#elE|6o>YWPN;jaNCMOBa z$}HS4d?imBA$h5F{u-@x@M!zG=*QR94&)i&QL_1}?&19Xd&z%!(wl4v(sha23ezy? zYY5dP?9R8bj&j9EFsX~$Czgq_Sb#6W$fI-310er}3c{zU*V{`!B6;}at{W z*m3c1i{=+>gWjl9@IG*f8zn*k!JCx z-QK+2S^pUq?1rXU*K5xpXrHETuNgWBY>OKr3UqoKSuDn0rhj>4h_Tnv541N}c6+1} zA7TBs#3Sq-%N>N)?fe|BnT#(bg{)L+u%K^gyvLh`11LVp>i~zyL%9gX0`N_`!$x#x zj|av?=JGAaj=FZre(D)S_rA0?IiOm9bVJD5wA&Nsa8qtIBR)K8a8dR$K81Y!-5LJZ zHtq|_=k+QQkv_cqqtUEk;9nz@edLVElge&qZHEv6CF~pPXHInQj@tphOu6TY-043= zuiY|0^hzRMx-mU+?Yw}&2=i^Q#wa%YYOtJ&0drPPTwv4v*go<&>cBx^K*Mb(dr0U< z{k^Mk6kzTkn?~JmGaauV#G}UIab$NVk?cSoH0WXMgE)RwHv>eZLyNhT|=6263cLiZb;Lh`Y~YiMz!a ziuJO!ciUF*(`mDI6a{MwrPuZbO0CG8hRa8g!IEzG_7uy$o1Hwo@a*avk2u6g=%Up^ zg>(=r>X;6!1~$eK)e!kypVpyoUsrX8Vf8#g^lpgel&zC9BmcOSR=Gv3ygJH2%Nht6 zKYjU}q)Obp{C=i`c9sqjR73JEz%E91oTUD2R?J_5m5ldA=&HacI=nYhJ3?LCj$22z z->uX+=lJcA@t|66Vv_9f!qHrfrU{oP$)oY?0uXC_2Bw18wiw-$#>=M^@CLY7T$WYN zSUdfZd4!h#R2dJpTTp0cJgt{g8C^ir{eTt2>6~jna?1a6zLBM?9|ulAW^N~)Q=<=9 z@py=BW8DJ%ezc9V|P>e2VEmYy+3KBrM~DW?~^b*qB;5_xLr!AdpV@fXSELa3)b)8U3GmoCydO{y$8NCi8@(z8H zE&3XEfz3VWri~CgGe^zok+z4>o-}YX!aQ$9sa?ZSU$euPG;}V)#7KWKA(ANvtd{h7 z;=%(*8Cp!fH^gppaCEL?#p>z2sw2xx&z1kMNUc=d`}hN7^13~^NAtyW$4j@#%8^&h zIUz;LKVoF>N!_oZYmhN>3|;)j3a0h9PAAGT^M4v{)HNB=X4NAc>SLTtRIgXetd4Or zkevS_<|Q{cS-h^H5#b}ZzsvKbcXSLQi5z>>(E9WWfgHN$#ru@vlHPRi+=Y21eECQw zn(fp7>QM#sv;j^6Nnf(+k=D;5vQ8?xze9UUV?&Dt!Fcsgb$@hT34zS>e_;ngLwRJN z@jEIXP+bmS_G39AWVFmRjzx7es#ku-Hbj{Yn8U!Tw#OB;66L4YabcS8 z!>8HN8#q;b{avXjdnDWzqR&0AQz-BAFvSTKHW;M_Os$wZ2WMA5EuUlB5}Twj62mm6 zxqNRLw?DaEaG`wYY0Mjxs&@3|)+ z%EG5ke&18k6P#}=i#%labtm`U(1L4wR_;z5UMi9S!wB)l2^(D7h+ddv+_qsajtY_S zXsEiE>IhM&o9of-DT2g#f@i+G@N%dlLcfC}7bU^Zey)XCSE2@usnVO9Z$Wt~WZwT= zDKquTQ3MB+Rdxo_D`&ouo)2bk)&a{h788QRFE_lvo5%f+yy_Hp>%)~WT6J?Ye6J$$ z=`Y2e*7isdJuoCjPj)q_^GkrjXZLN2q9TK+lblRm3jIJ8E0Eui0#ZL&>I|)nk znw=DD>n_V%A%0O~@kDXHDA3&`u1 za~2$uYuLR!t==Jf!N{9J^FmE#IpytD(G!Eu40&957sS8mYPW>$P6(_9#f_F71i&Iw z{&#;&plgx9!Mw#huavQ-v^alV*Y^;<(P6N~9kXx35YHTrt2#L2a8Awr<-Y86=Opfn-42yc3u?pRV4}s4eqIzUm3}>#B=#ar)?^aS$yHVx21V33k0l*D5hD$)CBVdK4v+1w#Xggh0^Z)fE{hS;3cZU?1Lf| zl#kH{yg@|IzqdjXls6?~+6(h6MWxuAWdOYuz2r9OE@z2@+xT{ci}u+^N3<+-%{tvL z8DeA!q{qK;*^S2NKD*+P-3x*E#Gl`xD6~r9Te=_39g2!d&1zR6n|6Kv8HBr!*x z*HN^gy2tZ^Ttq(9{da&@a~>;(--$Cly^w1f>oUi~>j5E%a|dslr#6n{o9pi-yGg;} zpG8I%&9>NKP*HR{sr6Rntg_eWW|)|9u#`y{QTUnViDAkjQhpy{SulO%Q%?9QR^8Do zn``CkMd6G2*>Y%02vl19SogP1aEFM7F7u!fP0rf*w1OC$`aAcCb9C-VhlR0NGv%I# zhfDl6*NiCW&srE2Eg`{_& z?SAj1)r6wwoj%+T(5D6t*mQdC(8myhg6Jp6B^HmgOlk(n;=+rf?8Sv=@grRphR7Pm zseGp1f-pkqQ=X*2e{w%5-X#NdAB#K$F=uk`ji#GMu49BJj(E1*NI_H>&HB%!Xa;gK zJ9>s5_wC9q#k%m9)M)0HL}>B13ya5p5R{6 zV}oT91-xm0F2VHM2k^=AxjS_q@48{;P-UM??q`!0P)7N(@N`rMHd`~l zUP@9rgixj@L1UAa)ItL%yiMKodUxx(Uh?Dw?%!q&HvT^v^Qm!rPWG8b-V8)NRH0S) z-9fQzmuR)wg}Wpv@m8SB&Wn+S5aDHmTYQcPr*3#aS~jFvU&8db-s>6NCD$}1+pc>d z1tiHtgo#E%y5^qhZL30(!mMomwYS2JT)aK@lU2uM*sXa4YYqpOGIDgLsRa=aTh^@A zE&!KZH)v*Q;gRn}w7X*#&qLg|8S3BzL*|_Gd#XCCGwUWQjXWgCj-tZJTC-lYLmL&} zHlp8TrEg@YXjv!X-kR@Z+2*|MYArvNz}B0=+i+pbT8Z$xe$LFglr*n8jIyO+xKB=# z-+6Tcjj!XyhGmxYc*7Kj_n)c$ziiY!BMW8a!cSBB@{jgxW%t6&baBOA6&AO86ENHu z6OZC)jX6T!sHv4%C(uT~K}*xOYzhjwzAg0=GW40;A+BF9+6rU#Xb+^b@Et|0di*Iu zl{PLm-?+0!HSa(U%Mke~QOF#k@~G&K-@t^^%rQOa3N-Aj)N;o8{+WNNMd6+_)v0GP z9lXHT?A2}7Q>xv$EMKxQt1NUt(lOPC4)*4?@!wX#>aQ(M*!02|i@bKK#ibK>d+#cd zg6a4C!OS_Gjlri~v~m}A`z(k4{qQbevQ`>39tTH9nj^&Zo8br<;=>xM6^)CDV)*di zeP{n59qS421rG@$g4JhXml4oqA*VY(#I}i$Q&`PZPCh4}T(`T(sNG%| z+O(!mno+YzG+NVcy$SI?N1Vt_f=$3R1mKeY2hK&Pjz{1WUYtp|$n%ecm&g5)xeRW#~%v;<8i6(swWw>ZT z4;wH1KDPL_+63hj!-(@X2JU>DEL3i&8=c_P$h$a)wXdk-7w9kwxt@Gt6!CTh`SPUs z$?R;N$n9~5p4Z#;9hMxNUzlIRemnXnLBB{15+;3zKHU@3p0sE7Ajw=0{duqCKF|Mt zBJUMaJ^4{3uWwfHxPLgA*3LU;}*0i?z`}qs$_uJq6k*RU|rBLjxQR_|A zDYlp2>Bd}O_OtMA%Nnk*mC<*4oJB*+a%yi#6sXLcvpl>b_+Ak2`-bZzF-|qEt=rW z^}+;+Ynrelf@NRU1P{0}KL?6L=(k&NwJtN~I`4?;OWZG3q4OirSeD@hzK%w4>@YQs zgbN`@aC*Uc2_O0%bhIXGH4GNR=OZoWBq7#)b3ACtGF}UlWv(iBB0Id$ejaop0*=jE zWOCHLVPYb%Up5B=l`y#_Fp=$FsqJ5rAb$Md66tc%OWueV?wcZKws8_p{~~X zUC95H@4%2s?Rttc1e#RPb>xN|9cQt|mXAhHKoM`#sjmeW&^~y{7AO*5KAkj5CeH;~ zKLZluq*dQ@Ld3K;L@)RTO&eEK)fVYgn-{BuH^sgWwXc@0H$vy-G6(38qSbV;5^2^u{YgEAGO8rc)mFS&ha0>oOYV$V)aGhSXT#b=m54?0>28(D(~=gZv77w?bNX z;qKMJEJ~9SWCX$+5jlYVD)zi3U>jY3m$`qK3f0yKEhit*249#uhU3$-DMGX7JcT9> z`=*K@pQTDRN8jPhrx!%fbQj(_W&|TQ+u&H$M61`VdSDhmYo^Oqrqd><;o1iB2W~^V zdoya`(To+)gXHQ2;?P3Wf5T6|MmH(ivh=Mkh8>tcMna`sD~Z^o)(GMT ztAyJpKG`T69!9SGKW4(P=v< zIKQJ6kQ>qaO5#$Ar3t<^K)yj-sn_!GMn~*hcM3BZclVDC&-;d7tnOv``BpW%X=2P*JeYhoWo|jOEE|6vP7?suI33q^YQvdx z9GUNR{Zd<4%2_~w0CF`m(##wV6THQAwh;Fr>Wc~Zuink?L&L{!OGORN7-*}zDDq@1 zJo51w4#LkhjU3B@E3Wd-Fa-7n(cnrE@56%YP22*+>*N)Ipa>zp^fDYV4q)8yscl)qQq<+%Uia`KGZB+ z0E0=hqbh3@W?WM))|}D2QpdbB@xr#f<@viqD}d|w>K5|kEHulvnl!*z_OcO|XFk3F z+k||CZc#Uv%84^nm3b0(Aswdr`y2E|X8t?2$+h$>iE?+>9BwW5eu^l@y&C5l4%Cj= zYSUej*J2ld?AFEjCGKNO(M(o6} zcjdkVslU=DcWx^>1l2HZDAy7tXQpA>G%+av?I-q`HLLcm?|&M@g1m|^UHF5Qx^?PEY zw2Pq=UIsu&OD%{bjDgnGcj5BYMBGsKdFUmt<%u?kgTtxEbKAGVnq+5w;*HkIThltx zGuvs16}L~XZbFxBl)ezv?AEtSF>amY1P_mSHQeESr9-9Yzv!0;5i1I)~_2Oh^JvbHTD^E8C*dZrjbPL z_>}jUuy~!Gr9Cw3AEZYd96rwYZPYMP$ch|#KA8ARUNO- z6Ak6xi_FML-$qqPO-i>c=EttQw3;~Nhg;b2wanu?*N~MxWsDV#QbW})Y*p`nXG_l4 zOAMiR*z!7kG2VC4SIq@^P{*$(s`~KpgHrj&Z%abfEYzE<%OIA<~GgJghDbFraJ&(`nfR6V<%ojSu0 zV(x=rV*%dY68#@r>|5V*O_@ddTT@b9f9dGAzUHl8x)Jt>3gj&roNrc{s27 zWXLiaALhR1;#XOnZ2FSfxpav;c>cDaj99|b%?8n)?;2^;6T5~@=Q#d{dJ6$g-JP=u z^HTo=hgR`-i=2x0KFZ32zu^>$6LJmy6~5kowiSVdZu1^F*A_j!Vv)ygv@~X|HDryM z>)-47B38hkwAq*f1U3{hNlJYE$0Y5$rvAOJ|EMHbpD*6{New%0ovKwAtfH!&vy?%v zQR}Lo4JFEnBF6aLM{-Fd8GFkOJGZxC-%Ij?RjZ(|d1T zjdF68-a=F}`p#-;%krB>KO2o%l68*vdHg>Mjg|8#7dbYIy261uf4*E$d*MM9;dAq# zL8R`lE1{jOHQ*o5<|>z?{YG@G6E;t-^ZvH$`5e`)!Y$eJ^urQ8Pr4_7G(JS z`Zs%HxT2r92d2bvLm^q~o!k$9D0ebEoR24v>jSM&r6FtU`ge=}ae2+Q z_~NYU{_D-A3um$GMi$QdzfYh1_%831yu(wxHty)lSyYl&4G){O?9QJ4OiR->6yh+& zozmNBfcLO&eUaCHL$o{$8jVQ$g(e~{p5D-Ki z;0h{=qyX01AtR_1P$H@p68G!ijx~gtBP`!OxEQdXsc;tqnvK6ZPTttA&Y4!e16;x9 z_!pqp8=f(VAJ;ym*2I22Q^>s!cNI(Fxt9pigiojf7azm3n>^%yY{;F= zqx+4u_B&gTkf#q*0h2qefo;DmyvW{Z#Re@+*xtxdhWwICX0;OQ?*R7=iaLMPp}CEv39@N1w7J3a(I8#k)Zv3CNx1G# zBAIT&`$zpo<&B@b$B!VA8GZ(!&Zc3-dx^ThBl;mDW-8$zOXMcla1=3kd0GtY8uzrQ zKkK8kIt|$LO?@x!nyhDSKK{T^>le^|G-}Sq@uSjij6oI-OB!x|Y3sDjAZ|lfs<0_N zx(BJS*me@#=gRw5_Q6SqZ|*(e-DS%Z@TcLiK^okXK-OzuElHnl5%{$fy)W#0k#Aj~ zqc#2GBq_c7&d2rWMw5TWjs!%k-HX^T%Dcz`k`r3HHoUS0a*y>NXpO%hcvw&Q5u(p) zbP28oSaDdCup3$4)Xrko$DJ#@JvS?+)!q<4st%va*PU|YvILfzao|BpD74XQTkzyC zN!cv_d)1V)kq9ZzErvGN{_LlF=x`Qpwp30`JVz067k7Lw|d?OPk0wV0L%cC{yNOG3^SwtD>)(?C`O-k8PqB2G(X z0Hv6z3-4zC2iXg&dMPhNp!30IolKYMwg`I6eviIk*r8DI`CH7~=g5QK+stD#b0a`| z9evrrwd6Tyq5bk=f$7mj)52DET~XqnJ8_=vj^mR`>#ioosXJ5D5^xTvy8UrdbmJ_b zIRlWH?dXlpUc22{Pj86e`=~0eDbw=n6R8v_&#rJyO?AK^Z&@2gO_%pDP~e@ii^PrJ zxx3n%!R++~xF^`3azCIh#yQ>Zo|)YB`=Ea=y((a5laTNwe`Y>BRXA&Hgf+%wT`mRM z+HKRG8tQ5A`T9U-+_IxaJ$F{}i(yD~Z&Z$?@==|)-s91htJ^2TR^=Wm5OMG0M6`F{ z%Be-UK}lWk5tS+npOE`}u(776!kNQ`DFYeDACT&t;WD2*CjlBcN`*_Ftvuw@gwIHp zFut^xiYeW7m}yF*BDQf`2rtO_cz6Y@A<(4QQ9XxgPEKA%di1?Nch;o#X73zb?J!@d z@h|4qrDD^q-JJkY=q1j9NA@v%f|Fm$yzTy?UF5o9`*QM5=0CF0LEls`&Rbx}Wo>60 zefG`Ii;hHGSA`w3QJ4fpPfUy`y>gUugaj{@-& zl&|ECNn8Y!-f3w)SG04%2G(K=`b?DDUpGpX%WJ>dG2L~-g2jyK#%rrK*!z84%$t+= z#_t>)cdaI@w(H03H*>4u&wcgChj&dv<+~TJuYVT<;pkS7?d)cWjNcuJ&Bt$R?+Dkr zqt0Ueq4AnlPdw!?(wYOJhBG zvLmZWb-3y>AJyH0xh??W;i7Sy_fYWsj|N)m;Y=lYHQ_%a<9{ew32%%k+I@(M{ysP{ zn54)KB$gh#?e*aG#pUw0mPZIjw*{J)LfY~A;zC*J(IAp@&bekaze+b|@X4@#iD+hk z+d{iAP$>_kWh$G#p~LsTXCkxZKWIk>5l{b9+i+*Rgj zsg(oHp(CFb*7` z^|wysZI_GLw+hCxt@?N5zm8i&mryFB>o{Ne(! zLe=t)_Xo(p#X$Q4790IUM5T&lu_kd<;%~)_K98|pz_XunehYzqpIs)i}@ai z`am>K-%>;NZrfw70<&^~*bhYXSzuqEDL^?Lmpp@7t)XmghOXFRChl1GA3xN)=h}># zsC^jg_Pfe^{<2=#MLgZF$x)*Zr?EDs6enj2U@4rMPc2E#$IR|sSlS%4hcB+^@~#cI zX(;86k+jG<`!Mw~z~0}qR%a&3&A(81DYfs{6kZ)mZ+ssLg{8#7=CPg{M}Iamal0dN zAIA4}pQo7Y<%8+BKV9Yr*jvu}ADw;$|4A7&JI7k}2??22eFNZc!&BCQPmoU-o6Xfu_oQj*BA5cf(FvfpFXM^y$qN_!LnS2xc+P& zAS0@2l!x;)qk;Q63+-`{M7Ht4LKpTP^t?q(+4Hi=*`vBq)@}uEm(aY+bLP15F~{Z2 z`YD%*!?WD7Ot!xs{_}>~I$vJuJPwYqk_CvLb8L*L>#RXU zp)eihfd{-kAPAMfjfL}%wnML^$q|j7Q{-VT&g|S0k4fGLUT0+$F3}fH15laGb|y}Vfh6C?=|9)dUrCmb zMV{TVN(#bx_Ij`^82JPi&{@G>W>lj!x@smjX5WO|+y{a`JuU3Agi?vBhg28X#6m|C zisf4oYoF@P#%Bci{r>Dmq803xi&@=U+ILqPmUk!#Og2tD_EeO~Kr<%w-qRJ+)6NSq z02O`SsS|fV-$Poj6Dv*P7&dnTU^R)7efOP#Zk(=%r7PY-hyM?4Zy6T#y8RCm(j@{z zg9RwvU4noL62j0a-9sbYptPtUDJTLn(lNl$jl@XD5Hr#Z(*6Is_c`Zx_TJ~^^L$@$ z&0No~e*iW}`KDRJd?! zAxt}g1;hzaeHyp0Nu`Sm9UfkuJ;xmk|1*Y2X&ts@rW0j2xZ^0sG@k)nhbrMd70?U@ zlXwW~ZxWY}i`EQVuQQ9P7Y+_J@MN3xn8-DRsY38-@)H&rt{@PA5zi+z2lV;i!&I` zH)mlCA5&cxg!B9KUmxH8>#_@&-s&OCZ6wf9LPbo{0nrPY_;&vVHvqq}C-qEaHV-es zURaMA4{&J}+goP|jGCEY#d2Sq{mp_rCA+-^Dkg?i+#>6Lz#aBxLTIh4DJi)>e&)m# zsj3v zP{MQbWze;FQ)__bJ!AHP!O}k{f2J>YANuu52tP`dYa?vC^v_kL>U>#AM!J!QGas`| z8yu9T8nma9LlHYBX*bh*HYbgO8Ls`<+0T_$+4ugHZXJZ%-RhpBf=d-NSTNM`P=%FT z-ouE)=;&S4R^!+8S995y-~)rPCNy8%#)p(-g>+cDr#;wiaDVwZazSq%VfUly?~9fU zn76wi*!vF&>R9eV+I!l!?UDc#jAb}2MPTAveTV{p3lm+p$#W5=1}=Ju%!H(xtoP}{ z{1<2Sd_{$h3|@@yy`JNOodF?G4nhhe{r${tdx~cQ=m|S1=Y4|d%K1?-)snCtO&)-^ zj%DXTHOE7beM{%}z;1<|8+dABe9Z>apIuVcE4le$g$Xk%M|!uXw<7TmA^YO6uG(p@IHEwg$jtNB>nx?HbsYK=0r-4 zaC?!@Z2er=twqQH(#NB3o`sD|BVm8h0UC{WIV`uOoO-DeB)Ny)|Y06>k~ za#7$=G2X5xI$y58H)8T)-z+{_MSb&nkT)^o8jDw}a#wTgy{fsW#%)$s z)Y;bL*;Y!$;9vFgj>1zQ-gvpauTwjwgr^rcCKY18mp*si_Q56Yy)ln27hl8qLssYM z*HbTs;Jrv#HaU;Qx-kDQgT ztw3ahz;cssDQmc?*s{06+CeoJp!ACH-u?pA5oG3j=jZewz^-Te+sd57*4szhF*9(E zYLrUJ*UhFhV0l=cKwMJ*a@aU{;_}XB?!RlSVqCPWEQ6 ziL`e9wj$&#fXRw>n-hGoPt z?3bU(?j`=|)H`mdK8<0dbFtqcH9({sHcp*q_G0LmhDrZeF$8n}>9g97Zsp%_=yy!Z z=MD1Mv+sUOy_n@nezf0E&g)~M^G>JxuPO14JCA;g&<}sk-Gg{Y>4342#}it3 zDf2$;Wn5G!v50e)$>;69!JofEF|q10U9NOKg7(4;fU*BgnE=rQn^itLwx%IiwRFlO zqwjAogTfhf zJYNR-s{N@l3wmiO0{jgt^5CB7tT*!+ie3pIayNnXhK7QPIImm5F&|Ts1$Qm`D4HfI zb>vR~Kp(q*7MxsEHSn(#&A&B7jhbjN3W#Iwv1!eIt*S3)E3^kfb?hhVF|0aw#9qMI zcphSh07h%mI~uumxkr9x^W}bm!*uVb38iw#xUl@}Rn_Ni;oWqf{37VtvOu$nf>Xb| zSN3|;2e(-pk$0Y2$(gl&53!_FzZ2BFmY><6y*)x>B|Euj^#z9$GB@J*adGa?B^Ho< z_<9fMwTG)YGO3_sqW$Fm=4D{Ne$lfQ0X_TiExcSZaEllVAW(9greuDeM0dP0t+z!L zW-c!A{cB1;Z~sE8J&^4`Uf9A*nMJ%#`OGML?f;?ORuz3(xBJ-%r~&fkqX;t72rX8{ ze3UR3k693`j4yMc3}_&89FLi%I`C|A+%qKU8e86`QRbzk>Bm)WJ7tA2;q+fT}r6r1Jo97yH?2+ zE)W|7EGBLXtx_jov)jLtMJeNs7}NG3)EWUN#G>M=xUneGhrfJUOqQX-B==&&KvsJx z@4{}t&3Rv)BcRE0=l-$s9}5+;C*?485sE1=y(UChddht}u;vVMCI8bve#UN^G?0ER z6N)E9(t~`l^2xPyUixRE0!8G0L!Ie09AJ2g${YV90t6z(_%H5SXptIc;JNlk&o73X zzGSiV))nlqvoPT9&x*Lc0j7rpf-=Pi+Z?*tEEqUn{;tiCE$}d^gVYoh>&bm7D!#WGWL3aMK^m;3^V3HfAg8ujkUYu*p!rKO z_}K^VrUx%*RW0N2-%|a=HyyE)?ki}ljP5qQ#EQ0bT5?X*7xXbdDc6(xG%>v5(a<&S zEjwFdtF|KmA}Sa7W&q`#bDgZW?J)AUDexcP0o)fsa(rj5`3wR)2F0~Mi&uKJMb&Iy~>X`k{Z00@`t zP1ENk&Eu_V7*0V6viMXz-x1Rwa#hV6F{1lt_C82 zFFIYjzDyPATh>l`AN8oT{bjY5$$Y;p>evsuppLWz(pl}(GES}BfHQxgJ0h=bL?DM) zxdWuN2IFSbUVe@T@Rpw+&%r_Zn!v}p-BHUY&tmY*58wXw7KEA>bAv8afP9ysm;p}7 z-fqp@)qnYU(kTM^#J!>1}Vn^V8=#=mS8t-@7B4 zzHLeZpiIDrm#@gvFwX*T3lOvDuuV^0?o1iYA%}|J4s?2&rr{R`=wr(>_-Xl>qk890=Wzm1F1-}IvMGq`b2)BZMx$dEbCstO z0Lzy4G3PlzBNRU20l~;BJD&m9I0IZLkYzk~_JIDW&V`-b%KOzKeXl$&Z2-)7F|UXe z0+LSvMgHVXBAdeJ+-|4bZmX{a6K(7H9tOgWhLdNNHfz$^f#*~JV)fl?)Oh;*&9T%r z;MWKsn4<38Xo72kmgelhlteL_a?kC9P}Vs^=SzKOQJ|Y|8c!folli#3h~2-%+3eAn zY>?BmjMsLL&_lniA9JNqMoyXzQ7c9m1pV#^6VQ69c`!VKlf62FAm2x7birKDCDdb) zTnU(ZhYnEN!V0*raL!45K_NLu&80C`lQXZYgC5m)I^)9tIWeFidYa|!{fJzy{=g}x z)LwWurEd^JL2;Fs-UT|_@&-71>-~}!ISV;{2N>MYnaE0FahIi+vS;obHCI8VzB}4E zBLIg8)S~ocfipBv}S>VCyhOn(#rT>2w- zeRMjr-xCW6JP>0nEK$f(OpZf4J)%rDMOM8oPKGN_0b%?B5TdI7w0uq1Q)Tud3_X2n zIX~95>pm6%c%*0W?XOSJebZNiy%$GU1*;;*S}(LzpDGn2_XJ zFQ_Pa4I4Z+EVQ*49h6&pU?^2T1>}Le5#h+1ou$gHPz?rk>6bwZOhbi^BzDZ&66du z;H7?TuY0&_MYXxk{L1jo*9x%P?j?7b1R8k=UH=_LyWLEYcZum#W;{KtrmeKrc$o19 zAo5K#3W{ifyhFID3P8OI{i-x5hk&97aw6H~?@WJ*(BD2AS_-If<}*6lENG|+Wl8x6 zXf!~k0v7zs{f^}9w@;j^+$I<1>QZ=%r@R8kBd-6fCOx?&| zTuLNJm?f2#KWS(d|3D6oB`!8y0MQ+?~U8tzQY@}7$N?G zY5|~;6K2Z(#DOVx%BCQnIfw)*7AW{KRtJ)hK*S0J51Hy5L-;bv;pCqmX#fGv$A^DZ ze7#SPkaakzo7B0SV}g2AX~vE^)Lp%;6vxDH0$E^1duyOaHhVvaODj3Kqm%CG)0lfa z5}{$62W7`A5nxr{({SWk<+So2ZV*=-K((O3^se(9SIgroPD3dKztK0ldv|}V-31ov zNlg5mhq504{>Em}`nh-Nzca*4oFBT|I*TB_Okb2Ar7|BKwsAS{8ghwWs2xY!L)3`_ zeqc{9hkV4Z6{Jdt3xD@ubv2p~fsu{p)B$YFyfa z);Ib+F*s5`%p>DxcdaU+Gg5Ew{X~Ze>$7|we?3Kh-oNX|*f2>fYKvYgMTW6jDcZ_? zo54jVG5LI3(ge#bpaXR6*! z28-bmE#=j8F}<gcjKoi$q>>Q%1T3y$h=NermnXiW1;m>{!)xa{dMHPZrj5SW!E~IuXuWQZ_+Yn`p1&QLSW`@1TlXyT-Q}r;sBy;Yd1A{; z^;(!RcBCjv^lEowAa%n)ly@Abn8&uG6^*xWAvojl^KL~=|$GGxWaU< zqudGHcVNdikb(9Ut$633WLx~aM(oT{w~+2dm2GZH_cUl7nz=Ml>&)QY$NL@4&A=(* zr`1bCIoP>U8p*`}>+F=c_~kHH-1*Z2sJ`JG!NX*T3$gKsT!r}SETZ|Dm1fQj?t2&I zH@(x*$;#qC2woe~kT*%2fIl|E#P_n_Vxw}=u4qSToGIJ@iHta#{Szg%Fuk{(l3s|ByNtyQg%sw_gkPY8+~>?BJodDEp{&xM+>)t zwc?=EmyfBW=W&WJH4CF*f|$u0CpMf1Qs^UxYiE-rD3rN*hM2D!>MX5Fkou)4kWGfz zWiWh$B5sDSfNHxWlC@4@!e`=!oW^emLe2I+PYN*wEUUCz+dG^Lh@L!+EO_Y@OBQ5? zn-2nGdpr_0PR72r-<{QM(2W##E!N3Zf&+)Yi_I3HoVAWWEoPHA>p0koTDV#)pYKYQ z%3Bs0M83Gz`~>}$pm&*sRpN8|_^UL{hb^xbv7;i+cHrb`dzXuEU=#84xipe_hFf%a zwJl@a>9QwBSFP`j`?z;s(Kd)`fJGXG1ATA%SX6P`299(7@^mbJl-ygXzO2;#``9L` zXJ4kTkP{>OgWo-bR%f!RI(XNE3s)za%*vI|_yrC-Vx`WR{qO|k`9rDj<~|>1*Lcuv zn`po5z1sWFBi(>zv|$B}(3YA>^N}DLWjQW`VuT(lAiDZdq?>Dr&iNaok9a^K`?+nK z8xceSr^Akbk1sgeg=K~nz=1z+uPn%t{0U|M+iFDI)SiJ4k2&vbsh?ODbHr_I0TqsG zG&=c)!S!3a8SB7dNw}V&O#A-l=;m$mX+x&n#4}8(RMxHrD>6|jQIBAu!J%wv6@6eO z65u+E1`-gqax*LI-GD{@LB`54H)d1p1)-ZLuBW)tgoO=c1n6`(_Eg9DGhcCK%g*P8 zeaCYA8IUM6Dl`DyX^n7G+$sXiV}{`<@J$-D<7?=xEgjDy;Cz}*sI6f@qKC?RTbAbc z+s(yfS>Zs%?#%gXU0jbi%Z=ZaNN!0f@+E(I(!WfTToz_RqcP$0C~NH6x3n4-Eab^Q zg7(jpjo!iHEPMvrzHQgweX^lyJflJMF+Ly6Wp(-{YB6gO> zRj;GyO`9ZZ`CHp`OtvAI%(oEimhD}StMlaYsf4j14#l}$dn&<&j%YSvQ`nr#j#puD zykVLQo?@YdWX}i;vto3CR83`;^^S~9B)$1|o48D!(K#D)gZ2D35wu5hQ{vZyzl{7} zB#3s5F78yxCktycwA=BaU)26#*}Tf(Wb$Ozx=gh0qxfO@H(Y*NG754EcgDGHqqbG%)ZHMj_n<9PPWy5!q~yR=$>Qu52kR=R8xhKt2iX|i(ql$dr5BBfKfd&mr&70{ zK7?p7^v6b7-WtW#!9%ASVy^J*SOuG-2sLh2TE4Rw3~H z!H*3JBM(z*bAFG&jM6OGRsMf$o4D0vmZobYH}fJRPNG!bqRI<~f7b%6(wD67%gyOe zWi*n`Us_!R9EPyH-@iETV^&|GJGe}jFzHYdg%~waG&5Tt8w=tAr-R@KgM7z1R6B1jA$>jFGun_1k z{bg+9!q)F4?IHlnZ-!*rVzTm~};+WiM)@e1_2rTvAF!c4O zz8}$E*^cSNIVq&85uQ8}7boJ~#tqE-f!Mz2)A$h5 zQfTis_+50zq#zGNmZ(dB#O)!R&xuP@H8B*GNVoTnPGh3&RIiwi*I>nEK4FI&y%xJx zEQ@1CH@%;bQVUm=sxwmIK zuk5is(S=3)ibpWY4l~>P5u)>Ewt=TGtWWn*pa7)cDWG0P+AWi~}GdShU zbxk?54I;QZ)NPH7JXq^}>xSa464H{RIB?p-@(j2V7&6O%=sjkH?b)B=o#+&S4TY25e%<^Vu0(GZllcYF7b4*Lk19C^va(*&Cn|B#Wco;Gv zL!7=ZWAG4s12q|NpIGO4XFhU*j!3x75&24NOw8v0(kty0s%>KmZB_1f2)!`y%VLKx zYZ2YO!|+>1yzkyHV&3IL9({;(BY13d)BUMPgBIaF6a$-eni}-Xr=OfQr_pIHEkl+M zYvAemkidA7UislOeZ;x zI_*pSB@zS7sN-P(w;?Jrd9Cjmi;y*}PBljKh*5%M`k=i^cXvYgZ-r{Mc#kB0aM zXg)OsGB=ovR$eCmsPnm*nU1YJ-p&;%Gs_4VgTdtnU#go8*9C=hh`&l^%oCrEXhpRU z!mg&*&c_qp6?xF#AK29VhcTpFOYkRXZLhnz1~db6zX9mqvDj#shsLT_+ z;?i)KUVC`Bg%!87WYwkMK+C-hv|K(4;q&_|6mP5wF#huw{_rYm_m}8DoBZMrrj8vQ9WZH1s5u)ax(0rnsLmD>M)bnZlEbZu z_1sp7g5=^vyDR9x)75X>o*sg{jR+o9(AS&Tlk_2rc)GUhBA{l#I(>D?z!nMgb!wmV zec&4LTJ?5mQ-S~3eo0TLE{~_&oM@dNnbF!PZHcUqeN(Mvky$G8xWmbAcWn6}{tfTNE0|*34GgcJhvCL-v7Gd{I03aoxktDm5R><{*%eg)0yH+i=2)UcwH?+6HoXI zoo{2I|0UJlk&~?2lgPwpHG#9Sm3P>1=J=xc;P}n1Qg5K_wGcLG5$dDo5q%!$@&V>j zxKQCV5v-OM7W!0GI;Sr_RK*=Jv7Hggf15#ftmS7`!`;oQV!#gq)xM|d(#J7o#EWnK zwvU^uqNCNpC3!{u&f_BO`CN#Js2I6Kr-}?ujptOx6}OI5BiK2_nLwZ!gKBD`lFj7{ z_&un76x&#SA@D}cH_8&XCQnzJoNX?H2y@vR)Z&Fgw zC+l{4*psR8gdV@i&84D|Mxd0P#53PppxiY{A4{04$^__<^U<7?aBey~NgGcR96gKp z0_iD@F6~1X@noUMvFrh=hMg(-Won=+r0q=d#2t2M=@0$|K>ZclR_xbF^wy!B)*`!F zujBWZ$;Wr7@KUYY?>wyudPUU_4JnW+=gDTqCty1da(>RkRQX`{j5Q%j%MIu?@Nm{; zZqUFbaK951LR7^6kW9H76~yBblEdkoi7X+Vp$&m~prK8gJaOx)kVoD=)Iu=Jkv)Z@~QA_`Lm5 zxKwv!Zq!h;T4~;x7ts9(=v(9?@!XXdbV{*o|NO5@xl^x>7|vG1N)w3HX|3ov(eC_WR{5ku9Sd?ht~xNAmq^*R^g z`)uWm2y*Fg@?~_t&TVgZxzO3DJEtT&aV9bMsjB%aG5|EHt4H4vsEOB|XysrVS65l- z%ob4@IwQV#uQFEKT+gU(Q=DC0U6B?wf5=+H@F8PH#%! zr|Z?R=i*2 z3ob*AqH1G?9Ltjs)yKw#1m4>6wqZA}_#PIX>tHz{?(1F{`DB(Xp&YeHTI-M7V6u2! znVEqHCoOByj=dT>y4bT%T3KnFy=13n8LT!pjHT1N_Kpu162#=ufa1vVx!lp~P1!kY zJhzS#BQ8^%jLd3=6>6F`ld&`?_Ai*$C_x{jIPrp3txk$y4(U9blXu6*64^OM&&7E! znV}CUL8B<4*8S7X2Wd$*aIsi4--Z;eUmOLz>_ofWsRTm1UG~Yfkn~NBfUNNN#wi^l zE1eu(5}g>UI1z3B)Ga>$oB)+MarfS>1l7ur4H_64p{|2{RfLn>fis>(gFhqiW0}S$ znVh78BC-1B;(#MA0l#HCPnv)F#Ei%TeBSR-R3n(prLu92GFm_6X(6Jk3swGsa_#gY z#O}nTDjs<*))tG`G@+3Y5=>TI*KP8$wpvDX?r361&y#6$D^3%nL*8{tc$?#v3!^!< z-p-LveC7VYj^0TQ!f!pGs;ujbdadl{o;&>L_-R#+KZh^Advv!x9sFxA&gAyXc1-Id zQNG#@D!gvxDdS)6*fR*qOzh=7V2@()_Un)L8Xo=w5=g-*%Ry-WIxJa~0}ZK4S6lwn z(X{Dn$T?Q6vx(igfb1M+k4%OuSig_a!jsAPqjP9U??=$PS3L5Ov)kfc4QY%%3waJ~jXkdsKWIUei_t0BcjY;;i#$SK$W!HqK?RXseu< zkw~W>M_hck+(D)051DZ8kh8kPklE0upa2|L{jo1ge^G_}P|#~p(FWYKxg+&5d4t+^ zPRFZ2q5h(XNq%ubypk;vAlB;VhheSqk)ljetx^8i{SV;Cijwg#cUzn3+G!zdmhX|O zx;18Uvovw4r10-ie2eX=)|#_ccS`yyFrU7(1lBs@-gi0**dD)fw)mEyX1aXpyR1** z7Nqm?PVZn0q@_99Ab-H-Tm7<>lI9Fy-4G~E`uEnLJF9*3%gKpqm)s9IIM^YOBq8-?o1$y7J|5i|bo7lnHSS zZ!P;Y&H3ic!!Qaj+U#M(z#-_CG#3@QYE=Id5}WL@$;xMih-_KbMxz@eeKI*xcLq2k zea1uVe1mH7#`_pBIj{H|`xQzpf1;TE#i1M!le{3V6WeeS?3I^D-4PLRXvvGq~an|ZILBgMH znAg%LuJk%0?LX*h1-rYtf=c*c4V(8CXHr%^r?cyW9Rr!@CqO-9KKgh8cEP-K+h;Fd zsHVY{=yq3cii`Iqr09`ss#3F&={`TJZ#ptS_EwZ1?qJc(B&u%(RIfPyGj#098P~5Z z?R>+4h&$uD$K(6zS$$*}4qkbE-&#bUo?le%hY5Y(l}0U)d;M3w2JoU>{}^)<^rv%Q z{*X^>W#6}O@EKy3hhKLTiv((}#4{t+6V}!JwQck*8t&#FOd>ZX)-KT}!{;SeJja`Q zwfuk%Wcl8=nd|sl6Y*}r)lp>wk-FLPD~Y{RFeu8;!^$XM*EN~ER&D}ErOyF;H)YCbpZhF0z$9UIK7Uzp>6;o*%|6q}V(LRuLo3p<`5r`^ zm1bkP`}yr4o zpb80;=XWeF>n#IU&5Tb;XU~A)ck1iYIT@6BG$FKwc;ZNQyQ{NlT4K4-4NJNoPm`=_ zIZ?}}oN}nj!q#PEGc)ry4I*Dq9_`Vc)16!%^XOnG&qe?G_lMX1eKIli(eF zthFI&L=J;RZq?i>sa|C7x($N5j&Fy$+Qjq%i*-y30A2HTu*XEZL9cC3ij=IW)ZDfv z-VwsCR$WrXVNZy5ZE|<`*8r8ewSnBT|AF*+^~-4d74TdA#bHR}1s8>wu5qP6?g;QO z*73QFh>%_OHi9j8HJS5*s()hK2>s#%Zy*s+6jV1IY#?Jee4{j_3 zECSM+Z2{EvK6j=GQaKk__G>@2YvR(E8s3U!66oGMCE6V0T@$6j8E!CF7{P(XG=ob>-XbA<^#6O?a@IEOtTL zCFYrlGkB65%ZTwri2mfHiK{p(&n{)pEb7p}i1Yr=!qJq<3E?7nqH{*K+##i*Yk7Um zmiV4*LES!$8hKbuQq>;}#eao1zZ}cUSp@IqYFHr;bE}4MOv*9dMQ3we7(1AIZBck% zA>T2TABi#}?hI6~gycum2vHyOju1V*AGpD@bi6h_Q;^-J^adtfK*zj);V!W#GIKwSIJIX#KjXv3}ap*@) zD{JH=;;ik6+By;Q2kVMV(emNECW}rP-i*a-w=7l&ux*Do8IRDCyG3f7afTe@24e0K zhPlbEa~~7W&UHWiy>`XrSWdcMz&O0F5i(TV;^+ArB=`Ig3d_BeN%Z#bV`saQ&S#Fz zOJ*haC2EBJ0mC2TJoE+|#_nK9C{slZ<$DolCayQBY(gc<`r?mu7>P=tL0$u)Fd`hC zdgub19~j4Js%dQC3ijRmejQ12=Jt(&u(4>nQrX(X>bJL}Dr?|3;DN@YtxIdOxV5jd z2p3&kdrb6zPZZ%%LVn{u!Bt7@;OJ?a70L$ABgG%$==1|?W;Mjv7lJv~Wj<<4#r+UB{%#FB}PNd7ogAHFTOMqq6+~{sdwV!Hovlv&`Q>f$F z2r$AIE8UurZ2hK8==?|_BwDQ1NQt?0;Zke1+i;znNeJo=dzmrUx&on~KC0p8m2Y$$ ze&`zZ8RYGfrP)u9^4KP+ZeB6eEX(Uncn{{z)p|Hv0or*G9?~cWbu&%_(s(W4Su!W@wQ4+nnYcv z59k1sM#v4+PxO#^;91*(r;#7ugL-B;%C|^vkU*s;eB@|z8cB7>y)Uv4QNelBp~!dt zrBi>rL_G?gVEY0;slD)y=em7syUeIiL6$!G<_1(hl@>ibA=9~5^-25MZWYz3`k3Hz zJa7eyjkz#)$x-trWMZjw!rvJg?~-_~+?uW)5!A3WW|ZHIDc2n;=b#qRe;~$5>TX#- zPI259i7h5^Z2T^b1u?h|+@4yfD^{O|Y%P!|{S@;hG=88&# zjx;LHwMAQ^J9GU@gGww58;Tsq-0tk27K%Yw6EE}XK|NVXHWo8B=sa*)9pg$v2jn*$ zZn}|m^I>Y3VP*Y=_oJU zUqWi{gMg-vmjDTzzdUPzMmr*`j%J`orL^^U{_YnyKva^ih}I{u1QHgsQQJteo9k;& zg-kGMfmAZEI6wafw6Z7~mv!0;Q5#*uGFtSa=k-RSMu^kI)md)aes#`_f-Kd@1)LIO z9t@b$oXb3P%l+%V$QR+2Je!_6#9usfUFO#fA9&-{;yB0dZUq?ZGQc^zvdVKycplK% z8Fxgr-zm8~RD3mYPWx;gakz2NpS_{NztWT~eE;j#)pv&LKD_iCse6*&oO#n$7L14K znX?l8!VO$Jb}f3ZQW@RFC6{Zs%Me_pbI?@zbwmM&xuJ=`)&Bo3E5+%c9TSFgx`FA|E&^=;FN9L#+} zZ$usm$uhaDZuox;q{7tdz$VvWx6FM|lllbn^)<*M`fLjXNWcP;;h6JIq^2~cF7GRk zxTh}rLA=X+SIlIKMWtBmG_On$Qhs%TqfGoRNOrE1cZ8W3xr9QVKuEqSoe>RYC*ixs zIkA58l*C-#MKs&uFs&~LaYVIGp(N<)%bSWdvdEU2UYN@PG3$LfOl`)Q!dtG|ix-cM z&*(TkxKM3rK;~zmHT4U`_toRoqvyZZUI(KqFsi3Ngb9&52!ABtoQS(eYuqeJ@WRA$ z!;*F7EofGP^$Lv*)`1oH6z(#|(&3Vh6DoJ52;Bcwk4328}b=YD)T zrn}KyvIpXHAd0-QtlUv;KaP*`Ek!?7jhuQCZ33M(QPMtF&8CR8XBBm{7nH~gWIQDU zmDrbm`i@g=Yt?3803r-%x+yxU;CG)Xg*es9h|Up6Jnh`m1jUJNPht6U=z9%LD7OI_ zhzvml=~0?E$;1}Owr{Q)8=8TFyUnxvTGs|{!WGW=;V7=y)bma;1D7DT8%63q--Y+?jz91fMB-%6aC!f` z79dOADJLg;N;mX0hT3E@miqw;yy;(T}5p=xnu~a;AB3Nz`@Xc|4|z z>ZVWj?w9^(n<}L7ri@=NG!cE)hsS?sETO2GykcpNt0w9Elif)mYZ{tZyUBFYpDPJx zrXDoMVr_Xbh1q?H9iT&M#K3*<3UbSMraR0h@H4vo7V2v&b$?wc$3RhqKoX^W&OHgH zD?N)bNe@f(0V&mulUR%*4zmR0Kj?}JToy<9p;C+6_B%b$RejZNlOawNpks3s1vz-c)S zuZcZ2kC}2;8`r&QPDej~X(Uc2C3#u}i|NCIfXmof?#2BjT|}IRoE#0xl(Xzp3Lla@ zJRC>I>G0@ZX=IWvBXm*aw&A?)P>oV8!0A$-{F?FL!h8pN*EyJl4RxjY0<5KNQol*~ zNZ1Qk>a!qbv=2RGMSdd@{+&I|%o#It;de5CGw+=Fj@*ZgG{Al{Q5BtV=>6(Qlh6k| zF3r(*Ef}xvYbA8y59E`(J5Y40M*>}0>Wm1LdWA+6o~mat+hGE-vz-wJKaleR=LQdr z5%rh*_Q|^)HxZ8;28PSb@$rw66gqZuT>$#AGy!O3P@Kb9_Yp~ z7z5(|cZ6)q!YDq!CEi&C4M2d>^P z9)}RQ;&6KFY^1G9Yp@Aw|4>0(B1^&}5i9KYn))B9s^l!A=R%p~{m^#i)OG05S_If@ z*CiP*3MX>^!&pnNDv!LUc^=rk*sg+qhAUE+%+>wtwfT$K{4q$MA;~z90+-MN85-(1 zKdLJ2!zrC-6qeW$QsXKA{&wM~v;Sx<&NtR~EgYTRy@#4L<)4TXOmD1M8ESe$s=zO2 zhs`ndw8Z8n&LQ|^mrb=@oblW5?Z#+GHY}7Sq(8cj=~Aqshv#-^QRi71)?ihF$BJp~ z(B?r{#jfoGPRe>m_sGUMzEB|{?v8gfM2G5#hKo3NUzqsrk-jEgH(yj=CFX|}49jqc zuvy0_2HrabKtmRX41i09Sd%j?N$RF&f!Yj>Epr9Uo-v^Nt$|bmPUN&8tF#e%zwq~~EuaqVHXBQ!0kB{^L>6E|veShTZIN8l_-ld6hM`7a=*C!Jk zexIUeeU`Q;;6YLC$l4lJ=YFGxit6}H8IE6_2U9Gi&1bE`i4!DmRKtf3O-sM!eP8g9 zJ6`6Hnawv{+jQJYjz{s+hyGeu>Pb`WBM6Xsa>t>jMWr!?!59}ndH90X&V0$%xh@9S+W zlwNg5k9@@~J72Z<+p_&%#>=nnRji)i>36B3lA_tKhrpd@ilg_EojumwqF?B05w!&Q zZ%(&2t~ExjkfUd`6YK+-7^!B%8~-cdNOsQscRj`vzVVsO#V&u=W5R_aWbe13!8RrfnMsdiQMgH^jI>bdR=O^$Y4u)*k>Hy}*p zD*wHuekprIyOTF-ZE-IOstWw?-L25p`gd`~7ut-ov1@6T`M}G_M??!(!od&unvW%f zR(S6=7rtAz;jk}yx+&{GNR=oZLzO6*7PGtSy%8^Wg!7B|4R$T$*9~$xa}C+EU;Z{o zqqeRFg|;@PMXUV%jKFTU0lb1?xJJ~xEO3jZ>`8zmtJ--2usbgrsxu3F2+yp(luvAb z7Iz#@-joWO@ZKn%O6tB!;dKtYxR`fcnp8ZpJp1-a8W7fi(@TxGd24Z286P>U*bk)^ zM;H0r2IU{vxW-@T7F^QJ)>g)uYB2gsja@nny zm4Pmd$6En=^c?(4U9kpr-uI9VR|2f+8Li{Lh(!ne<}F#hy!^eDJt|Wu3Z4VEEHqnQ z-Ex$Y=8lu4wgvecsWL>)G_d4oJ#v- zpvf}u2v%P7y0q!~bz;*=b`CACt)(e8#=_!YU=ZEX=)F==sbQrlH-9dgq$iiwMW)T- z7$_Y)9cz_eP-EoMnNB8szRYoPvVT`}1t>|cf6(0vC_Uf zeAdV5d$px;xPs66Qz&Y&q0do=EBav+e+~eOl3F z8cnc?s{0F^%L<{j9j}>Fs!f5QGa8@W+5T5pOddT=4ZFvv3tp-J$JTp5HSw+8!}Q)1 z=}kpJkt#?piUpOX^j@VC2m}bd7Zn9jkq!dVdkqje(wo!(p^AW%5NZMhl5g~P?|t9z zz5lFr!dh8jGIQq4)6U-eS?`0~7M`VPPu$2D;z6XlW8FiNp@c&bB6wWiT7rt@u&HjF zbFkG?E@C<3P44DVqjE*`D~jVmdrWg)AbvpuSak!%-dwluz)*6o;1I1W@U4wZ zf8iDDVzB5Ri!;6|YQ#WWf(q7$Y#`LBVjwkFxeFbm*$y6#D_z18t5U6mTOgnCRzWyhsaa z+xLJY4h~}b2E~3J5=MTW!j#v#W8C?brU+u8Ss~lZnL)PB@D0O?rJ*fA#sfU(m9I=7 zdPsTf0@E;l%(8)B;k6$z|Fs|Z@S*MYnY-piDqu5Haqf-bmEwd%D>hN{;ZI^Mqosc8 zfvv$y%oTfpX;-#%DRr}%Ej|`Dt;>Yv2X|8vTI0>588JAEjN=(v^Z}yRGN*C&Flo_r z@Xm~hMMt<@i67>D(fnbrx-4PRmb6|Ucy{hV@exqvi+u9{k?=;P7JYq$C!QXAH)vXM zv>p(jtgm#N_@V`yGDpmxK81q-L)QaS8CgT}Z5;F)s_ab$h1|HC6O^o&{H4rf)EF@j zbg)}1k*N$krm!IF(Pjqi*)ynsE55d2Y0>8~$lZ{)`SznK6iJDOItCW~#olQrHfOG) za)*!Ntw4qdoZGshX!EAKo}PX{DdLBb=3{;D?HT!?PHV;UjglaWQj`S=c<`qBb;t-9GEV4B&j~qCHHf5AFH~>bSiz$EZxp znrrd*xDHO157ECrrHs72$2BK1@xy3%{_$W6+)=J(U1X&{zD`fW5#EN?a3SSj#%K^81p4fb~ zHut_P9?Fw|EI-?*KWp1qa$@Tley)8JdOuF>!*0Q;dgFP03`zZ(824OGZE1Mh`Kn)5 zg}MJBDQ`#9>pd_9W_zMMXLk@CG(u1!__SkBagy#Q^s6K{z6TgwiF-#SD4`tpjciot z>ssQ}`6-%!@fE#&EpzhMqwD<0)(P%QyjsqlIlaS5L}z1ck_{VUY)bXouU?UHIQ8?Q zq@?e894=-40#+Htc_2Cj!vj1K^2->8b5Qt}d=;zF_IRU9uvm zA;W*w67a}|i+HL$JC+9^>_*gJ<1s#@j&|zoG9TLn>R8%Ubh&vOy-&3o9VPcvTT?(( zy2rK!cyxv%2>xZ}0VUI*pVg*(z~SG&eLJ6jDtyKEe7OY~UI$!*u+dKicEunAq}Wbw z&h^<*ZI;Ej9tS_Wx>50R7*+*Wz98`rlvN>_@$JeeSNmpU8s&Y$@66q?IP{NK08B6a z7F=xH^eBJzqJs3=J(9)S;n-LhI-o!eC^GqQ@gVjOvYl5EyPv&qvl+`l;&Z>>>PlXf zrqj}1!gz~q*{=S4{dpOy9&A2-edPs0*3Us)iu1Xw9P`fap*>_m>rqc<5Pulxh$8E z5YF4r-h8`plZlyU>dfSU$8EL+FH4uN*boTo3uE(#s_9X_Sq)eUBGHz$2g>QvJfT2r zc^8!!6NKs5^zuaKiq$D=y^dX50enPN%&zvUN3zGq^nvG7*m?0a3FmF$ud-`dV!lTR zK(wf15gz}uy#?w(Q1Wr1{~qle5U$@I-qB5p_X;Uf|^97CErh*T;qCwQkc@76m61mVno>*OEWf$;JNaP`a!@_uZ1sy|HyAX z8wUYCpc_SL1JQJy_wi@IECP{av#C{m$+ptb(KavS$NQx8j++h{PXUDqKwAQ^=ANhw zg4J-eB2lLArjn=}BuC8-6{3ul22LKh*I8h8m?ebQc(Vuyxd6{?)apay}>ZW zz7%vM{*ih0c1a_7K%{}jD@7ZB`IilmO=YkxgY3`F-; zj;AK&ZMc{5&&T2KxjWye@qF(Hh|jas5}>Dl-;C*CQv^=4Y_J(S8**Xr^DluUf#8 zLSpzD*q~+s%7*h8C{b!^+MkRl7>;h3wp%teBTJE2N}7~7%3>~s9lY6|!}@r@o>Mfwkz_7k{Jsz~*?ZsW<&8^DPHF?Sm5 ziiAxcQPv>z)kwG+7g= zjpW411zG?+P}P=a>4SR#D2)`ri!AY@tNRaOmi?C~QEU5t6xh*x?I+GLAo4DHHf{Uy zF-n;7$W!(8T`o}@$O8!=bK?y?&(UEOHt(J>kB%zkyQqI(&kbFCU$z~1)J-QUd*Rz2N6>D=XM1NXJYiVjgIXXt zzxc>(fNL`cicr_9?<|-Ksn!K`GQ8F!Qe)gdLIuy zU@NZN|JA33N2;5XUw}S9x;$)GOM4fM|CLXZI2V1LyMFg>wJB;i71nT!2NKZrOFf{V z_}Ac`cbwyA4U$QQSf6DJcz~h>%pf`lq+Ii zjmYj(Wm(UU0M6^c*UZ##!=XR!q8Z%S`)6u@LmF2ZRjw}k@5Y@CE1N+&ij=z=n9fm~ zZi^oi%di0HL~b31^LB1Qp-P{r`72s9Ih)5H<+^9lVP-(DwpUqPq$$c!Q`^$IhD*|d z>48J;51ST&rBzt$hSO=Mwy>@5=7qn%+AFfRtNg{V0{O_!TXTE0pP3P@v-a~voCj8@ z76_rTvpWtMFC8Y8erv8qF?zRo;5;8Vpd{UDdslNl-pv|B$ppiuaoaL$?uWR46;ArJ zoY7?Ln?mb99ws@msf>(7$~@_eXfz;hD6#3ZQcYbzZz(f8;kw>3dqT#}N$Wkl*Y8tK zgnGjAmwW-tvwx9M#bAz%l+=lFHN>DCgu|S6+Lbh}kA$30Knm2w7FjA?=-zr)KmczQEdT`^B23)o==lH zKO?)`_+xw(7e8B0K2!?Jj=)JAveC9}u#uyag41XfRVH4~kLY{sZuz^kgdgorL0ag! zCgT+m(onv^?Pk?H+b8s>$pAR*@t@eXKGa zcrMLhpRxf?m25(K>CrUK`}i1$kePW{)*!}z>l&vlXKr*yZ^9|1J1M)t&!o9iNoEra zrXbdJ`mN_Z*rfB<3=yZRD7=bH7jtkh0=#4;dwW5Me^)^aoCRR=m#|?T`%G*Urkpz$ zSpyM2nG6iL*%;m94hUz*B`cqF2o-QzQh~fK>P=Q74F=e#GVJoAP&E47RU7(d1?uN*#ek3b>CowJ4Et~3D19+pG^ z@E@|&sp;Su)fpW|!(Z)nL8zL=CI+`%MtCo>YTt=^zKvSIp*D$uT%H5vTy(^FN3M^PED^I9Bob7WFxnX z|3e5tN~~%J%9>45#yzV$c22W?M&E2gG*Leh2tb)f`fE`?1Zlu?cw7@50Eqv{fM-|( z157`_h32lJWJTR7tM;E<8!A6)S)}crQK*s;2DMG3 zak@d0mP7y6`Vb z`7f!ps0+s``-i-+MZ%ROyeyjobi6)enb%6|`8zD!%qTe`@GeB(^&GLR^p2GwHnZoe!$XBwIg_0?f8vmq$piuI^Qc46@r_v`1dPbEM-)fQul2)rh+~SAbxVuowJ3k4 zNO`k^K<`BGi_@yR2<|Q(33`yL@R!w)*=y{@zLVq#lc8A|InG9P{nBVCQ+ed~e*dM1 zj{-k)xiLy*KK-&aWIL1k&kofr+Y^Cr9chpEl8*852@gN5n86@61jh!**9_W)Q3&OY zP8a@_zQ?SYyHCxMgR+U1QJG~#W&cwgN@V9#4>Z$odF^rtbeB@$@9Z)q_1H~v#ZLbg zBx8MQ@4qEoLF!A!WLm81Q^#nf4~6HH=DdBzwxALG(v&6Uq=7w}Zb!}D zLm)41nhd_mV;2&UK+kZDarHq$Tk7ORYZ+ywWniHBJ@BZdXtez2g`Mfvu1igz>G|%_ zv8iK{vUT?~>3acqVzE+M>uHpP19vTUxA|}rMl_VHl$9o`z#MvZMghb=<4yDKn0?)< zJm&d`W;`YgE3vK&{mY{2)B08U>Xv)$^LWWS!mnxp(qbZM|0RPCPmel%Df&FX90g?# z!)PksTr#-i?n&{jDZIQ_tonyurO5x{Ybh)}`PL;=wtLwj`zsr*@O^_hN09jpWpJA7 zN_Ls1!PF1rKbZ9fz)=3dtkZFZNqB%kaps)3X<`GV8AFz_w1omk|IUA70XiF&5<4aU z@<9eUg|=1<#GK_dL5VIHHd*|!2_h@}X!^3wS@UG47CF5^_ffMjj+>`Z7%4PFGIT4Z z_t46`jC_1#sP@BjCiUJ6QM2mmiL^#t06Lg)6n`Od;%7t?xKhx$f13jowvrU6m!k2e z^2gjDd3^})P~C^s*G9-*ceaiX?7mi&5CuJ#Zw@$IS0=d8qw8qvWR8g*He_l(NF*chd9T4)`5Ddd3Y^ zS9aIpm|kgQeW6SA%PO!_98Za0ewRODo5$FQ9?ja}QB+yA*!kOBLVS*-TC1RrZA<#@ z^%ZJEcGwv8U&4d*5}MORAEJ$UnK!*)&ULlJg==AMiDWTDVs@LxSh9C+pYW1;zPTO( zs(nfY^Ye0gKg?X>yfa9pRxo$Ywi((+53mx>7;qGWC%$Q`S;H{r+O_wXwXi!iBHt9` zCPqRk$O{2k#NKb6mS!wzhLi0CP&B|7&SHET>EgL_j-M1yuI!5=g+vl3>0N-}#F@6@rZV*v_ZVp=Swj;1i4N9KKJj`c`pdn zpmeu;v4Fof-{cnbAqtrf*JznG}Ba8E{|2nce?eR7cg$m;;dXaqFmRreN+d7-m@8pDD`aqz4ecjUKb zN2t4b>lT?>0{MLe>nqG6!gNp`+xxA&JZV`!8(y08k@(fAS$$~^>Z98mx9!GwzR-i` zDoMe#RslmClxWHNdmnIzopySN$;&_jx^t>tR8|5tb;Evbt@tMt*4Eb)_iH4NHW4n5 zMh~o@UK(&5F$S%yjxPry5m_lL;Qi;cxpgN+BnF615b2H%vcTb_f)2@ZZ#c7~tz1@c zu(N?E#DtO$PL8AD+&NSdpXu}ls4_QaT1u)GrQ5@w>uZ9e5z4b>4!BvGg6u7NtrizvzJHGfDl=(&7o)&iNR5H zd?Q+ExF*5sO7fTIK+DG_W3uO=t27V50$Oka6e{1(3=*OgR=ZY8>6XIg#h0%bdUuiQ ziz9l`(?Y4G2R4#E9EYRoB3`C*j>w74T9l`2@dCwTnENWizS)%g_dRcO7u%pR9yE)a zWqGD0xw>Y{2a`8JJ*Cy^9K4ex9xU=g2EsPSX0Xv{0SZUL*X&27X|I9pF;mJ;cRZ5;DByj zMHcT8;@f_;VB=PAjNJGH2!bo@5YaP9XYc4gH~m_B-}FS)>6FC;BN`Cd(kaUSf#}+e zSLp8^JKqD)WlMZ&^*2lpKG+RDTO93u$mlX3;N|7L+o*NknnfGmbRttVMHA2F6|^|U z(!cB;R&9TR6GaRv8aguG$l97^scF(*aAq_aes?!9N+FHKu1C5()=lV9y-9|crsb5g z`;rH)-f~gV_qWAiCGl=R~>2e5XI`o`&rt%e|{E=Jkm`kgHk#LDTGfv+`@RuB8FL=o_)=tg7iLJ0$8 z_yjp_HA z(mcGNanwB#auiMDjWiy0pw?YQO8vUg)s~Y0E&JDUa@q9074eC6l%fBL`ybAv+cHA@ z0}&6!WXa`lHV3jey9WUMFaBeyg{~|zp+I7B1J_aOZr)n>wj@4X$EfpTI6EYL9z3T4hggS*| zyjrMJIJ8*Y6yj%nN@QI5+xqZX>2bDxJB2G+xOp|ppruuu&-#0b)}Rfy-4N#oy{L_; zv~&w?b*-zCKr@v6pLQ;;Duz(S4feTz1avrz7WBMvohvscoJhI3i=hxzPp-=Em=J#E zuA#ivnAFLux*$f4ZYAhI>Pn}Gct~s!-ET+#Z`2c*$)1lwHTZLp7h^xq=QK?1klp(E zo%ss1pfK34tL&?RdC75G1+hY?YZIbP9FnZG+{~ce5c5s>SM>Rut2CxJyNXDq>Md?b zg_(%!dnza(F=if;fhN-8K{H%8XH6R%c}KvAz;I371RwZcaW| zY@pl7V;192IiQH#w|!=ZaKiPL>2-^JlTAOq2}1@pkhS8{dU^gN?e)AwHJnP_3kNv7TA zw1OhAVhfO;FJrvsmlD!OZ^|ro4IG=wtNMtPmFZ1QzIZUIPTP7wTeF$Twe5Unn zjI#h%@!+~;Agpxt_{+3`^4S(8{^BS+&aNkpbL4v!zY_i(X`@nnreEm9>K*sSq{r%p zK6(W6#$ej`<~`}G5ZKTv9{bqI@1~~aFi(8!^TE^JT(SM>-X$-^Bnjc!+kp(?pqwDS zGp99*%)qsvw}V0eNXBkE&dkCO4Z&m34gm}CJ^A(rwCaULB?a~6VHt2*-?f&}#@|q= zf(SzH#S$Me9?uO)zQ7s5n%(C45I2vR|fKkfx;&7)Pa~?5J#kjXrkm7@jQ`q218)YWHOvUT1IeDL5 z(d90J$OQ=9w^%9iH#=T{~Qe2{8? z3seaYs!IBK!=F*_1kZ+jcEG{>Lc4h>xSx;n2uc3RwZi%T>aEXEZ)f@j7fqDry1JKtxL3s3Gy}z zRa!YB{|AJW5cH+nW`(fePw!yi9iS%bgIX7MYgp}2hTU5YeKRC$by=m%j4`=5f$d^f zv^^4Irax?Uw9cuJo%7EsZUPm2ce7pXU2gRK0S$;OXkck4+My7?C9iLVA25^r3r#|0n5RNUIoPJf1KctoXm5Y6+MK3piY6_b54${4dwk^5 z!d0Od4|Imh%+I$kH2`|-os(dd@pt#D#wMp^Ug+y?)b84Cj9ioJIIaF-m>H5f5umg` zfKvoU(8*+kqyx7^kdRpG#cd)N8IZ$Sk)do|z^``~xXH}Fad}^;qjN;6^y{M-alWXo zcD*m4jltlCRrd64v%2YAX~hQ4gw?a|;oT(CLJvok@oPP+4WL2AbM7(T@8SLsKd`ov zC6!=LDoRp@*P@R6>gYR}?BaZBY?3P5X8ht%R>-+9EHxM_JCKdm@DyKwHcsoDeDjY`yLDJzZAuUp4QVeaU7>+P8tt#hAz$*eQ%q1PuXHC-6aiu^-~9)&P6n1@Pw0JX?(M_L4t|; z_sGb|n0Pp}^j^t!>3-r+5Xz9?k4caaw!5!93Rv!givaC|oo!mt+Z(@Q1qmLKqZ%Be3R%K7rWjEZQ`0x^<7~{5LZ%8f@ekuSDg${828eTU(^}hdk!e1b1 zeMGfxe#izx2klMn1Jkc#V)4w_?wy>7t3>cKr1a3b2X~GqZUcK$dD+=-UhlmCw(Z$dG6#|`b)~D;UKpbrx)|3B7_-(- zWt7+9b|w7-{kg?WUzV5eUtYD5bsQiYkzaF+Q`)%?3u;AUmc#?5JDSh%Y^5e`iEoRY z0i*p)ThnIx=r(u2Ojx?#6lx)OH!M@q24riES}zr?;PL32REGV7XSsWIJpAj$tHHpH zJ9|GSDas7?V07npun7>secTn*sFNwS<1-`e#A|Veta@+#AgH1i>3nbLrSpfwyjF9L zZ7_**To-j8J?O=pO{aEOIJ_Leb#vI>mF%>mkV!Xe3}JCAl2X#ztFTCQE_{=#UA5aDVQ@#KQUJ^PoF{hE8rf(YIIj+HbM*(h<0=!{PL#OzB=;Uql>F zv^JOPR%Eex0kR>xnscORJS)V7=j+9tYd?64N6{v)bC!JWb-sHF(Wo|RpX(h>*cKPP zs~Y+oI~Z5PGcjQL)jyQ9@mUx+66G#=F{|CI@t=Z|(jzM?B8O4A=$Z}gi3%UUb2aSD z%bEG?rYl##4<gK<=TcSNuenlF&!SOc0_^EtsJ-MexV-PsAy+(R|(TK@uGz%D; zcT0kw79TbOW1*FonWf)c#=HXe}r39sQ`_8m+Qpb z>xJWG8&L|Q-N^i5tDxKCaDZ;JSlYm1y;^|&v2KkRRbX@~S0H!4Pp}AJ3I$e+z)0)sdg(*H2{qp8Hl#NY1in|qV7UTZ;WCh)jRnK&^Aq;) zpo_#9{Io6CUxQkml!gM6r(uM00D zbe%8nkFDe3d3)Bzh-1WbC-doEd;${-QSQU}QQAfD{RZkXnfjE0v52WBKDk9YJZw}2 zy&cG_f%bF-QxBz zB?Z}!`Ejgm{#GKOG5N38Odxh*D^9$;EsHOPN3pwC>GGd=G9hSS=oa(hj_^&Y@>=u$ zTLqV<8>n__V}{~h`|#MOagf*8!j;hj!(AHsQzPqwvtou92{G5II`;hEoccZeMqS(F zssFY}OF@XN-izko*S$_?z4%zgr)yo0qfA0*&9a=Q8TTVPwZf2wZ-+*&s+>Gb-BwO# zcj>G~4MNLJW-Ru_h8WA$QBAGgBnS*Rs$|2pqX-;wf_RE$`K%oqf#^;9VXS>F0!D&; zp(N+`x{i%J3Z`hpkoCjVRT%U}cg`a0nor!y_)A^`9ZYnNeZYM}U*T>NPocD8hRXJw z)uY$OgyJjM?9nSRLAlLIi7Fu(WbWFbgjaJLBa5;MW9R2NB*lt!V*%sQQ#5=t>zIh^ zL;XY%voaf;fj>l&|8wZ8Q*wi1TIb%@&vK*S7-h8LEvDgWrGxzDQw3 z`%>Ad7#%uInU^~)0@<>XkaxZjZZGIf`b@2}^sgry{Q61u5o0@d@*&wt-Z6#>-d#yi)vdaBjVSJYSnTBh%X-k0 z8^Y|2+HA?iWiRo2C9<-ktik1y)HQkY6}cPKWV!xtS_yH#aH zSOp?G+SEFdnV7GNx=VmEvZxMSv+N#7?0{eDA7z>)^E!1p(Drm)z*lfWhsw-d%X50V zPE5;|aJa=lpm_#$=7{#)?Cd@w-~9GwL)XyROvH?8ecINt9NS8s`<>x{k+sl^@9y4`MOcsX(*!7#g-}8QqMqoe7^i03_gmA34^cUaZBVO`?+&&GPoS}%l zGi(O&lA2GjE*>_hOZ~dkz$D2EZ7LMsDw95w3{g&XC|-)Ak3#fx>5|*?6@l)p{`_Us z(8IcQkv->%&3qM|ye!}T87xVd&zLy$w+_Y(%(}yq9RhMyK#KZS#fH6P?fkjJ&Bt~( zrRqC_SHR|PPhA(D(MIoSQKo~DcwWcNrYwD!>H}uCAbsm~WaNEcn|CQ)2Wc87k`t^~ zd0xLQHQlz>6w#oM;Tj(@t8DH8dbf2hk3W*6#6)-7oZ-!~PZg)i>=%~uQ&Hr5Ru%}` zH+K*PbK3UFoDAy4Rt_>#Ra|q+vv#T+)( z?|WWK=X5zckH2IOZ!>jP{mvggEU`5yTeA~xQ$wKpwt2}OU+x|ekMj-xP_ne z)%?`V>rKfBPbJr^EWA9TzSGDj#+uT;)+KuOa-0s~Dznl!A`qE+KV1R#txF^$Q^8N^ zl^ofd=CLO=ETT&k+VRpW*}#01)yOEhjKyNX>G0B#F>4Z85Qer&GSJl%RbO`)!eDb2*K!- z59SUc2FwOKx8Kn+O&5_s#KJYToJ};J?tOf9c#>!XKHP5^;IehOWnw~q7;gO}(jDiq z>tx*Vf|;NMX&N8^KxO{1x4HPre!PIZ3icVt zd3GAA=_|WdyyPJwJ7InOcg;Z<^)Hfhy8`OUC*g#8sH~8$ua7djCMDN!5Dj4$;C*c-l*jJ`o^@vCDDkt z){hw<)Fsw|$K@MjIqcQawu(Dgb^T7@Ld;(WQ29FcB`mvr5>tMo>X8xr8ow**r}Ppp zzFt`r+ityX^O!chW;T$mpf^Ri*2r4Dh1$KvkisQrIBx>J-Ma)Cu4cQD?ELy!*pFBD z5|xwmI@0nM42`^wo;6aR^Dw#ftSj)Ei30ZQ)EKeu$MQl#`IaP07M4*4@&uargi^-W0Ay7JPFwtEubCZh6Z0BdKYP3f6>xREhP>%3L$w+0T6_Rz_v%wzv5(RD90Jm=+=p)Y{e59@u;+(ra#>3ykx~#@yev zy7IxzF(MY|(xNl`hQ8=QK8fcuN!P-dsG!mhb8KnbD?^$BpB3+n53Nj3AY){ne+>S0UWSmI(MU>yg1uQ5Z{NOq zHCdSO3e~qe;SY4VpHPCi&n@-XY+j@POSAd2L`Zh}h8@=DOB8rjPUBVXV!!hT&hXD7 zm1?Z6g|rYjh=AaErrMGC!Gkd6-9*6E?Q8;S&#Os!vBZ^R3Wn%_kQKEHXXvg|K~o^U z{c!iUA-p=Clgqhc4!SGAjOWzv)aCj&7C?AOQzGfDg%OR61LGp@?MZky3EvLo>O;-1 zs9kPLtfQl^?1Y|zg^rVuBDNbyueY)p*E^U`NhjK}o!wJa)M7dXnKiqA+agk#g#yQ( zXp3q_s}!W+V#*gKwZ=cR^q#%}J5aomX@9egTbO^#MxgS#fYRJgn;M8$xp?H^f!5-F zrlIlwbLF8xvc1y~@|*b6m7c%*0JBMt$&v@&SrwCD>aXX#K62G6rCv2D+w)AQ2v{|} zglBS8a1yNK6GWfGi144N*#uLaE02SkBjI%Pfctjj{aowI`|bD%*FN!!In6$wC*Mwu z$4FQ>UGDZ3n+~({MKTwh3$xnudQxpmyIS?exx&b^MObN5a-ZCF`uXU8n6IxKIqxYZ zhO_XUHE~rl`W>&doi_c$1i7oHsL&Hk2p_J@>464anoYYw)>&3RkZNg=OcR5vj(O6t zGIrs9SiP%2&TvmPntfim|f++pBCP0OGqw6pUK_}S%iBl6gizy&g&WMMEkim&Ob1jAO&KVPQiAg?1Cw&fA^5oa_84cb#=8!! zQ`hpE2c}oV;ABEezn8orFbz95;1bSNz1%;xx98a4eCND$YjIqSR^8f{$t;Vew>#O? zLBDJ-M!3(3`yBs<&Lg<>zgWP)^3IE{TzP0fDpi|OJZ-wY(iSD|pd|c~-2Rf`e~T=CPl_|!281N&(isPb zG%0$=otg7XL5JSj6fx_gVF^=2(2bKOw(9}^Pwq2@_3?1)ZrJNS<^E9w57S?t{(s(P zKmGSq{du;pk2C%s%I&|?j-&s@RQ~(Tf4^P)XItmrU;XFrQU$?@Y0JCPSl>)X6lYT{;ir#PzFle8r~Lx;%k8#OTEPHB$&B?!fHey-rznW)kRnXXp5C(vk}I zV)8Qnn5$-a)f0^wOWNh5F6e$}&CK06jR3gB9)KDNdnJjXTSVFMf>?+?&Aimm#dgi~ z{bx0X@R>V;-`gWn^5xweiXJeP8GU~JT0KaqRlQ=f?;p?l@A(3JtY`@BybR6ycX<^) zE+Wa?Aym$z279hw_fGTU0TsfbNLS+Z9-+z_n5+P&PWTQsfCgwnDM1XRrS^m}x2Twd z4ySao49+-adLNI(o{i zXl6!Em?zg~U{O~i>tg#fd{HBB-#dRZQDGzA8t8^$SMQ#Dr86ljM_kz7{YKuU;yHY?CH|fC)O*30 z6rY2%736c@Vxs4%aCC1ixIuCDUE-~fTdsFmjI*{L=KUh&Uk)dmc%ph$udXv+{*Z$e zBaS(9A%J~t!*K}rq44-Y%1Tm;18{z$Mu0;$zVh^I`KXw1R9cNWY;Ci3>o=?j9F$u0 zEvV0#s3^sKF-br@WS+oyIzg~b(c-;Kq4a%dtT+Bh;1NC#QN#_i<>1=sXcn& z|A7N`bGWjaVewXUR9-2_zZx}&nn8x|weG6Ij?mBkTE>KIr$R!2&ZFoL53i#TEEc;0 zR1>>E6``J(Ie$l3fQXlmp7JrUH+h+?peF^%b#pI7ZZ|?thCbq*6>jyJ_1=tQq02oK zQRHby%D%vmWJv6`kLXjW?E4|H7meTU%PKKw#YLt0v~N6A43)c0m&s1w|6pXam$H53 z<+`*Oarqp@y#+nB_tc?4fK~Z5_fm(zvX_om2#%Y_D%iti+GsK-=q{)~#FfOJw7j zoVFxMapxieCmU~J7^tN>ofPrp%WIeoRq?~^YYE^-Z)Tq;HHxwXr>!?vbdz@u-DiFa zm^FkeM2S$pjm9fqpBYlfeW;+sXXAGGbETe}8MFJ|G2~?9=^>ANwUyRKaJMPMG9-h8 z5o(_dF3YX8f}}CKgcoCfF%01lFgY|LyIx|_IZA-7-xX>Na^FGsK2o5xnTS}4qmzWj zd$Zq(dEDu;x^i+XP>3!BRA~E$=N;-)BVrjBb=m7xfZ~_o69kisRcKIF+to|ub8g`~ z<-WG>0&MXBXdwx+yNaDw=KH^m9TI|GIDfss$MF{P8q_ybw6a-+5#qvbuLxW@dVZ~T!_8=X;^OV$~>8)Qv`gTEcyER@&QQTJ5bQ0{_*5A?f$@;X?6pL+tY|u8;##L z`Pn_qj&P-9GZu{6tjSv+t%C(#ORMzjMZiP86KqNAUh=>`@2G{A zq`8CPE!#~sIU07V;?}dh2iA|vW}{=CbWYtiCr!?{n7#H6XP#H|qB(brEPmu&OzbC3 zawKqV5E*)n56%#!p@rY)^My>lR-ds;E>|x+Vh&dcgQ16)HD7=T`YkS9ra0#fX-jsO za6iBI_NA=S4?mDclXsoTBewlqLa;YgmJ>7r*s+J6%x=QY(ia(7j_bLZW}isf)FrV= zdMQC5hlp9I*i)&c!v~kZgj>wxkOCE4Kp;`G)JWuMvFS>J;z@Pq&L_%8$zR<~n9kcS zeLxbGI0xX(ps$iWULt8?i>;DSICZK}SGJ`*nT=Mw>@AXA4yV?oWA8mMZ)u4nWa+cG zq-bw+>W8gV6C+T7}2R*kpjaL?C-yM=*agBc$Z8|Z0n5(*6 z@2abW{ccoaojxU(XMln}Ys zr*|zg>y;3f%014JxygIKcFH6cmriRA@w;}oz^jH1egA5kA^2}=0aT2Y%t{}=%27$A z5Yvzf;|qm*T0N+`sQYMt;>R^FGeGu4RO4>gbwlfN2O8^Vd5r}0g1uj;1FgnW`ehYA z0V|UHrnHjK#UA+va4dC0t*Nn#8>3z7mOmn|Gpib24sUGThD3Ncd8rljq*gMt^ZCe9 zW+xeTz2)=`epi$#C$nf4*EFK(_dW7{14yuWl__q(ITT&8+%F+;BB?N^w^xdiqQJkR zHP^4}luOGH({IaXZ7qwG=|SF+@sXCG6V;N!s@#s?s?mJ>P<-`g7JSIA9?fB0j5Gg8 zH+tpBnfdrxP#OpG&z7LNnyT!*7rcu4KX4b_rZ~7551&hC@sGNujcI@888|d@R(qkJ zPNG9DR3-rzj({YZV! zB3Vj2%*-9Q^LS8R&_XH2gxeGGKz(BLOz}=W$y zvX}y@B2lVq&IBg`Y7^H@AmnOgb(`8Yw;eicTwIK-2DI_`TQg}}|J@4sU!gw7brK$- z?qfkO`6bpD{m!8Xbu%#tG){@g=jF$3J8rQq6#Jql9a`3c0)CiRfow4tzvoJ^XWU4g zPn^zfTTIFDc+h1zS{P!wd)?QeuCsS-J@^A39pi432K;8?$cmyG-%Pk3o|S!R^YSrs z*Uo6m%N_0>5Dbu%D)k~PvfT{pw&|G;f}^a>)ZCM1R94R)VL@-8zAl!ionsqc#WwfD z*MBUzGvl0eZAb2@xh2d*vktjymf(u%_z$L%id=IYUsSb=Jn#zPV8{L_z89P*G7yrKP32 zyQD!<>6Y&9?vjq789+*M$QfXWvw6R_&iT$C#p}YE=h=I&d#!b^weLmr`H0ck6Xje7 zW9U1#vQ}R}XCS?rkfU@0Jb8Mj;Ry4-R%ik|#oP==!gl(Lp7VP{IWaNdc4L8Q?Zs~cS~65=GO7lv^1hW$r# z>0ima!SdwZgR!GJ7nNrM4BcK5O+kYL)`dJ7>Gdyz4}+4dP}$I)&CtJ$Bj)8rYuNwn zr>ouE;Bc0&8;pBsrMz4#x7?P+8?+POAm)Fdc~ti@i4Cu|>d{)J*1K}l1~fxD1mwH6 z%FCr>^e=Q!G7)>_SB(Oh*Tejn3GupCVy112o;r?oZN|c3;cpe)X0)v@SJ|@{qkYnl zZsul!L*YD3&+!NYIonDXtnw+o_ic)~x_@DXul+fosWq1O(Ky^EcdlvUI6Khz->D*! zrjOZz=q4>7?+Fz%TO4nb4nc~f_z!X1^*G^EE(>hcKO#&-H%V6P>iC<)a~HC;xCtu3 zc$}*cAL7l!)`LPPC#FR`&4&m>&F8&5y6|dG$Nc+_vuTDjnDSX-GP@lecgqpPTb+QTRI4E$w7>(V-YsS5MYhQKB z^Y)7*wOYEILe4n7rq|1Lu8jqn)hAAb(YP%6<_fn|YC3U%D;jw@lrE`vfL1Tuxs5N3>ssc6`N4UG+(QuGv6}K{EYeAklm5}H@!;H;>wOo~hO-LDfJMQFo8qAun+wbh zts0n!{R4MOS%TH!_Irg-7o#&O+uZft2{2TEFBT)8Kozq#ejax8YIZs3@a+GcPx%J( zz3ctrVlKpJumC-gvr%7CdQT968K)rwoyu*cmu~g?H`L1 z$h1`iQHIzX0_mjT(P}!x;G0wWS~ZwLO|wAY@0){?{q6jg*S9Yt14g_m_ltO*q!!^i zJKa7%w;;Z;$CcwbuV4Zsr8U(yYBeQH~{Ai^JZ7m5R*tpiO1!>`c{SG@LM? z!OB;{TgLCX#_Zm+N0u&=FKlzU^^B$7bc}=IyfJBOfy@l$J}GWqprn7O?nv;1damIc z7dl){tCFCa+V2C87+)ua;{IBDy*g`xu&j;@{ht!GpdOml4z6XQO zr$x-yy|qA*A=ve%bvJ)iaq;+oP@q95cR1Kz@vCf)xhm;$P$xNT{{~7ZE?o2SUoiX6 zzq|WDH(BRrK{gsI3e3kHhaN-^d0%OM!x_+w{u;NWgvCMXY`M1aM39e+F`!H0T>`ER zEG`Mx2XLm927(Y3L&sMYV%XdY1fl+qdONc&%4_a*Uaw@U)kDd`%uTAWeuz+#Ow@d~ zafiPUZby%&Cgqom?K0eyywY{aJ2VUIT8sHrYH1*l@G)^;oFxd2fsTI6e>siCcM(%j z?4s!BAM_^4GX5d9bxeZUXqWHm#2dlpI)xUrS4&(BTx^^w8P?I+&ZMHO6L zzDg9+{L2R5%-rIR`4Z{%*bL&4J!~wV8zN=u>kQ$7uf6%!gU)L%Vi{T|J&c2ObnoyD zqo^Xbt8CN*UFI5{nAtk+OdaKRhlN_#uVIfFE@T;Hk{_eK9oAx5BnY@((pacEsXY(h zpFPrLymA)+7Xs<-8~DG>PQOS=Jwu$g)=pdGosg_{J|$7`Zk-JqKYw}R-mCm#)Bjhv zEYcR@wq`E2&=^aeD0E zu!+?+QyldBh;YlCpOzAhl+9Fk5<=iR1Ep8?@df9u+D}p*=v$?hlmwVBhOt>6_Bz`+ z`Qj8eog52p^*tNrG?z_p5?%?MZ*3Gf_ati;1Sy$Zcoi1a0$VBftL}rv#QWhYB--iZ zn2}*177Zn(>8DKKWKTG{*=5^one-jHvI__;+}<@`MTj)h_6B6|AeK_i3xDTgB`fTQ zq;6h={sQ~(mcre?5A4GnPPKC8B1gUpKx~YiD9|uu8S~w=Ig0Q(o`W*kkdqMa#3Gfa z3Y0HOL<#O}Z6PnUySsAswQ4^Qd{}8#rO}Mf;tkF6f`oKAZOUV7IRoM0w;QXme20_* zebpJ_l@HGL^z%x?VEtu&NOW>natT$jXbeSdKE`ZLlnPwRzw;C=qC z?IT9sYMuOoMb&B4wy6Y#!HJ!Y3sKs*jy9)cvk0uW3BTe);OGFWqeZe7^|#NA0xIHLCBk>HU-%9Clf5 zy~WjzTtZ6Aj1Gw7A;h4nxT&<}%POoPH**sMC-;xlXF6VW`m*soYwNhqk$Y)P(~v~Y zOCcN^4?N(sAs<7NWonKB3=d5k60Yw7s1@l1+G`N(@BwhrmhRT@m z_NcV*3Srw2(Y1Ky;TWeyqv%^g)K8LSFt+k=8!=xtO^#tcvgC@@lMnWpqBE&VI=l^Z zJ6Wpdeh9Y8QeMh=GfBT+2q*X0`dd#}_&&Z-@%cS8+X$&5QmbM9zG{17-CG-bnIh`| zKF3WLxNQLvLBp(1m4ZObK`rOM)_lP-WVG_8l-`=?`wx46_mlezpjvxwxcwD{wS!1* zw5{zh%d18NQLU&Y?!DsbdH*nrhH#Yffre>)7c?UJyB4wELa+lGCS?>f&FTnrp$ z4ClXLId$c2_$`0}4(-47oc_xR8pxj}5_Xk_GOyO3*?f9JMT(y#N!O3s!&Y7l273FR zIkxVm2lvzcds3|dHn{5m?lI{6Q;!vV6#S_OrQQ{;4&wD2_}f^vL$%h1kl?*F_{GbE zDvq|1!WzoU>Je}igTc0fOZ0Xp`Kr>5dPe8Myf@PElhac8!olSu2p^xQ11$CY;^M4k zP#oMt!wvm-j=Uy}7UBl?jhzF^ni$-<NvM~v#MY6EVJJHn5eV^jnnr8x55;KzHZW^ z!L=HaH4IGLcdsKa4uaAJy`g1-dr^MiGsPmj+MrFM$m8AW+FILHA>#)`G@H8zE;4=V z8Ef9lteai(w|#T=TQ=)@JRVEb|Fs)GS|$L^C@U+MnLFLU>n5qs(B!m5LP614J{7~h zi;li`k}TU@vOg!{dU#|kWHWET-f~E#F- zuCuH2yl>g+$WiqToLt0d^SHO^{ylO5#%Q4ait_mKFqfDi0JanbfJG!a5*6TD(-AIGZ2>g{l3k7r>;m>-9Yo zGqXQIhAgv*P033a7(hQkQAbri8S)V*!#&>a5*7eOyvQPoJ5ZsD39kzJz8=@OojUH!WN8TS0N#$Ad=Kiznp| zD$`n7h+yNenO4Z+MCT+&b8jx&0t!%_W#FPu`~LeQzXkMn;IM{zlOFSwj78eG zl3yhy;p#jD2WquBHL=d(R}Up5B);lrhI|jB<6@84j3fL0@uOOm7lZk<^}4UCeWGi> zkK8^VFF$J3&y@G?ZORuA;St~WMj8LFa_`*M{)vyK4!JlhWJc?-q5T`mJ0m=VqksWz z6gjQbSC5pkCVJ0onCzwGn(<)+aw)g6k>cAY22I+NGp!JpNUt_{NucUg^EB5;#k zIbL(cAtzQ=qweIY$hy*FgMu-PdN|CF&}KnSLxWO+UBjoXO(ICH4$HjjwdBPDTN{Ho zd+p!=VM$4e$LWQtM}r9tt=FXlL8{j`#lLkK9q4x6o;P#Zd5$fpVgGiGcR#rFwQ6K4 zziG~_sfh(P@efN5{52h?g5v9o>bXcl^uuQos31Ep-=eo0K1$tv*o%?C>BPI0?kJ3+ z<_ldn;|Coqor-wv%H)>DKDND6{TxtX8vOPw8>RppX6mc z9F75m?v#{g&Kv)yxA~uNUl|FSKRBM3<*$d9wdpVQ4#&jAeNtV1Y2oltkx70X93gta z=l!M^{{;|o-U>^t`b>A$ytw45q@ql+0+Ux$dv43c)!o-)GrgS$G^KZJCDJ`F992q| z+FvkH4G#2CFCBSkX^GuxR44H53VhPm_URdo%=Q-~NDxlck4X5S`wM4$Z#Hqzo5nqG z02#iuBhBG(K~pqix!%UXwo)!h@aM|4&2AySGn4qn>$b}vVrYeMMr-`Y1MCZnO34PW zndi*x8M(C)E5ASisWT)rgpt9MJTKkOqb|LwIrFDA+3kD1Ph36Ea=_Jvv9a0rFJGc; z7rYn}cOz3|l(U&jx7Ftsg7~fwc+U)29glMsjHd!xJY7_w0n0;0U+BP>~nR>>EYa@rQ#+jxyvT zN%uF0H{wKY#w+$Xie`?$BTz>oC|%{Vf(bZN4Vw;Sj92;L{0CFvd0om zymzLW_~?;C^9^`u*R`bp>PUHs3zuGlh|}L{uwi#!;ytS0gDi(9Ck)SoeqU~kLk#hUB99vd8SZZ~8JfZRI3`_!%jhAkyXlNnfAy35F zrpyw?fIu*7j{7D*LfLDkm>I!PmG@4%zdE+1S zLr39_x+?|hc#>U=D+lNk?w(>9Rlh=`6tG?co^Z3j%LrxDc@=<5Kd|8!W%=lIyiXGn{+j&x zsxNr(S3QgzdJUsY8-k>@I_qp{0+SwXE8YZlPtVa771;aE*UvXNBm{VYl7-P{{~dx~ z=e;a_)O)~^MEkUJ3W4|9+ch4)8n6&0Gh93I`?>9Yb|b45nkzkhE# zM_Ua5^j{q$4IUy8#s=?%_4G2p#6G{cI5Je!MuPP4l1(gAWHm^ z7WdKZ3-d4=+tl>*k0z1y%H!`ew}(2)TEi0?Z4W4jUz@zg9v}bY?~ksirPT!vpFvAP zmvw1$b>JV$i|@LXMHHN@ZxLI3x?dp7`R{uEia8TXB7 zdU@|}X!%xJT3TM6`1GL!M~3SS>-Wm34T`G|ecOMU5R z>D@bja0^h%X@tEN0GA_@z{~SSG(H`+6p((jkB~MsH}3*Yw%gz33hnAHdNecNoo!|d zolP*wla9&DYiLbz)$u$!b4CF#9vu_)(&Rm7L(_?Rg&7-gD_3Wc0uGegVIdKJ+D)Th zJZEJr`xO;-s`s>e0qyyVfe>xV-4@p}Ckb|B00zwC8^r9H7+b)P$J@LDby2BJp`)#u z-GzL+4M&$ONYdYD2AW?=RMK2c@9hd$b$qReN{M+Xn2%{AHUYPX7$zbd7>+}L}ZEInQ@;h)(rU=?Qm3)?&Vy5=x z^cT^49knRlx9o$6vxKpD*Ls0V;mETsclR5Jz`fw`5To_rRbF1+a+b1h0?Wu?5Pty* zNBHXM3ZOK-y#b~&A0NQQVd=6qN#LVF#JoNQRbBQPMbdi9Dd^H=y)y#$IbVHH7Xt3b zU_Ve+(`mdxCb?Ostk$otHc|w{3e4_^#?I7eRm04vcW!Oj3IZdu3KHFDp@ z?FzPA(HU)9%f^!2cZ(zjXV^c`pY!WEr>~!%30Q*W%EC3`zol;igX~wT2ktyqakKAu z*1HGPq;p4ZTWe~@I-X7b2#Fh1PW$bIp&#H|J}r;E_j*M{)^;%CoF}n%Jr}=>LdVSQ zds_VvT;vvNI$k_jxQl)WB`#=ve0*e*IOFpB-vbAv)@I5gD=V9w`?O-Yz5*RlbvZ>d3TgH1 zx0T?MJt`do8|1*AmjZv=^aa)EU>=y|VnkQhS`l*P`x*#RmH4KNfGe=SDn2a5JbG-} zvUiY1gNlZl(i%q|F0zHCS{Avuf4fgjEqZ}?)Gv}#3ISIWaqi<|{HkvD?Mu7F!t`ql zdB(toQKBO4>?}}XxesLcdFo$-i_vRQjtn1P0C)H1vqXe9c%7H z7i3H1mXeq%E0eq}T zDkffD|J%!hI!mwjmb?^FT5?}LauZ%Ji}BMUb$1D%ZU{8+F~(Kb8T1{R&KqvIvZ-NZ zLjI=U5%-6OEtYHIQ=1S+$|nw05zUvq3uv^&W$Fzcx=l$kjN(@YOxBh+-|)-YhP{_P zk-;;$PoLRsbbv3a4H!+(4CxI zcR0?JetfwAQ^&BAPZjTK^^*#Y2wOQ2v8tJ$mK|ohx+uF{sgjgZ=QN%UzL{NK9-XFc zO5hd>%?aJ)aW8Jx4s1YB5N#o^Pj_Y1 z+cV;4rCmgtU{CWL&t9uI*v7m6iIBMT|Gh&oq9HhAguyL;>S#OznVah|x3+v&1hLzy zv#KmKvEZe+xLfe`^AEKi&8aNx>T5Pg!9Q|sqH)gONtonGh^dBBmm5Q3o+3MTlv&~` z&3Yz?Bw#Su*7nv-Pl#fkkj?q?N30^FC2-jF-UA@jvTk5#hb$5JW6a=Uxkp`$Ju@@Y zcb}3!bKC?(*&4;ZY~ixQR~y?~=PpQgvZ2Jcm3|0A97<|&Ctx!-S#WdJQJm7St`QqY zD#}4GjY<=mT@|gDZ(L^EM_FStM1(~eZVJzalEu0TKktF{nycT|5}#}6V~*0$QtZ=! zdA8I)dDHaR05_j{m=G&bh=FNwE)U#X{N zqtQnGJ?HzXr5U1*S~rFOjL9_gB{16q5f2m^-LJm`HhlCzo|Hx(xnkW?L~n)IZ!|!2L<{%jV&kme!Jk zgA*|gnHf(Qn%PHfV+lIy-v-=Ae~QW`A&_Cn?#!0}bYWo;ArIC_U??i=I$vu%0OFL^ zzX{+ZpcdmgJSh+=^mM&226Cf~xe>XWWD|d)mdb@W#7nXG{MOJi-UDiO6&(Cw?YVf9O(7j{0#VJ zkL-U8-P`S=9ux`a(A94YNH%pXuIlw3SXb6j zw;<-oeq94ko<@M}JtMhfVa`$+uu`PG7;3Es^sVCJ594F?xf3zHTFsa5T_TYUX4msX zYZL3mV2n?HPDzWOZ&i<6%`%O=C9OM1srplknT;c-m;3B)oHsOAbrS%pogwvdpT3f}zcl{aXEM*uuMO;)Ft7%F3%y07K$y3`}#49W5@lp(=#aMx- z2>u?XYo~%KCME_(Ik=ps;+a>a?xt0}eTKrCBI4fdBJ4cvaOx)3W4NKRS{_27*w-1` z$~$de!E&u%%sufrBn&&Rswfm5L6E1j^_y?XMKj*}hXW%2dwJKWYnOT{B|sf1(P@BV zY1g2@e`Yv-HRlu$j^jv{yr{_GS#r>AH|*vdJ$#rAIGLPc%~peMb2m4<>gwv_K`fe8 z$jtI4*kusj{#oDV*_&;NWV*dUmA_tl>lU;)YY^GA6;yFEV!`$0HZtV0C5-vDLehBGs9n(qto5u2v8eUYepOqA5kYPR2vmdt+QEDq7`JSpx6=Zx8(%d+P(; zOekO#?veW2zbQjV=1q=I%)hfWZID_h_ngr_zK@&8@5n73q`b+>&X!kJ7FitTkX#lX z9@05F8o84+?~^Xe7Zi4UEFbC8x?$WPR4e&53kMeuU5WfxNy}1+VHhK)g6DfH-iRB$ z6NMi{t04OcZ{)c5o0<7uLd*{%MA!6(Z8PD8%HxlD3!Kk1ERlsf^Pkd$-sesJNKGu& zR^=hTd{Lw@xnpFQJ?D|Sv9+Lj?>@55eWaOl*Nin8P z=^CiLl6`{Km5y>Y##B!6ENck?O-MFz73xT~5=#b}$!&)>Qc@E$Gsb7DPWy)YnjTjxNRJ(3_&r-&2wc-F^GJYy|d%6ufJjC zUFT>)iD&j0-s$Rd!yGdMf$ZCfXz9Tk`*f*tJn!9rhf=o;wYQXU3}o>f&;Y3IO=}a| zG*ewW+Zad@xqHk(Jm_^usgmdvNZ4A7X;vFlgAuEpiAQ$nm}3NJE*saM`QtmDr~$HKLJbM`hCa@R4!Sn*1;Ny2h(h94>nEerPbt6Ghv zI!r$o+&hmIK@wMbD9kSD+nkH0%Jp@+R?W7+=psdL@PIbHL3Ykhkk*0mfncHsdl_PpvHNTg845?OZoe^j9nKQC>EV z&zoGhhTh*#Hi<)79J>)Fy94W*>RN*0NiX-;fYr;bDY1Ox$h9@Ss@+ztL{s(1f_%h; z*RJqa)bBzHz}T4b(Yl8Z>k~d1PUcG`tUFjatPu5bT88zH$S^&7@gpYt4L8qcoWr_O zl|=*XEgwlKAw@OOuddWug~D2@b;g%NCKjnAi;si)I-!D_+t)?~C??g4rlZ8XJCAGG zKqL*bs-VVXE>qHLIIx0Ykf%~_vCYqm2s&Qk@j0GVSJx(v@>xy^%%*+!5d60V?COsFu02?$#)0)Kyi5#!d61 zUR{?IuB4mm7xHLsOGAYpE$q;i<`WGGK8gXxJ&UndS*ihQ(T-m z!HoM%#6!F6BJfG7)jBPz)4?2Jd*umPn2SaJVv5Dh)tD#REsTpizof)?aGIJ*+{yRn zgq_!A77WlIqK7FWRt@8um0*s8dW8em_@^JDXNX60Rksh~bv%A_ow;9Lt^9R1l1JR0 zkPYShDi5An_KLI=agI(+lmqE|!N7;?JVy63%!jHo`y&Ypvs0)q9kQ=%zx)es1@lgm z-+7NT?9~clk97{PpWEQ2BecjdkG%YrA33<@dj2_q&6^xT+Rr{6nvV_zvUERs9YeVI z>wDp$-u)CRA!OQv&b{OJ*b^Nox(UQ6K}#%7e_s&ypFJ52G8>V(zJL^QFfs7OUI#^h z`D}8ohG*^ipMDS(>ol3^&g&Ud4T|s`wm?S-Q=Qg>LNWa=$4-XkzK#ecpnACEidA0<2ZY=rHn>y^lhkwB zoO31cH_Y|5vT8o%O=gUnh<K*GgufATiMX&Lrw;0y56oCg5P&Cd zxa`5IsAVVwwUL;0Z{;I>Zf?B9XKTAwE5&NqENq=put-zfKr#qGn&^%kauKAbf0g}| zDHCD_Bq43gQq#n57lc*oCr86tHn}7PZsNa>goPX&zq>0Pmb@-Z(i)Sy;s!d3A@x2{>#28|>=E%XGL!&YPCha~Ct-bFrV zM29MCZ|dIEcaf~+3G}XT_`cUUPrI;B!1Y77>v`l?7lFWcjLHn^WbaQtPxg8mB|?)@ zzby;WTWDuPN}Ub+_4W0X052F3`&QfQ9+Hq|HJzjForTOpVBK;h#}!zxw?&ZS#kQMa zpRT^UeQ0&sCsi4(@CbI>PKqto@bsCqHa3$ZqxGzeZoZmCqwkqC{{DA=-|%;sW?mug zJPAl+dWtw!{y-k-@=}1=v{~8BzJ5{>iVAAoB;M{m$b$>6)>e2Ijde>?K;?I4kc-Ff zmTF2oc#m;LzX8{BU$UYNYZdXt%+0K!ZT`y_B<|svDuEvUj)5^6N9U0rdz@)OkeAx- z+OA)RNp@Y`%x3N0?ylmlU54if1zxl3ZoK^HlHty9t9VSL-*zY)>-E5=WoIku(lcoZ z9UbBA%(}Wq5?H(Zi87+M$KEF9)?0z*Wd=vSLMjVe=K~&*GK64G?(msv3D#81Fi?kk z7#maJe*21mO8gx#6%i|C8WD+JW#+W-Fs`Ca`?M~b&ED)@)8JQTI=PWz6ED>^u4Zs^#Z7ikx>v2u?c7jJUKNiNHXOZ zvI-TM0p51iV}G7yw%nG4qvi54xDQNzt2etAE=o_W(l10SJ$+V|9;($Wda*b52~I62 z1N?iP_ZsHwAmsx#b{2#hopY2UgP1MIkM$CNbbkJ^NHe$=x1}MdK|Mnh{!Y?Lj=v{o zgMIm1KE&*32C2t;>$MU*GeRiYm@a_ymV-aFt7N(d1e-p-HRQuE4xO!mp=gLh0V#{Z z5-&o))5N3F)M(}0tC@O{@)hPR`fnaha0~*w_!ZrIg%#;EdQ;-AWXNyCWlp)pKl^zK zUp4%?>h%%EsY$>kak_jOxkL*W=6(7RSr91I@fMZY`=i^9zWP!U2MBh6j)?;9m_Py6 z<9M4!j`X20b$>m^WA(t1C<=F9xnd?QNr zrj4R^+dg4F9|gWwYpa8+?Yyh8$vaafm(sGxTK2rlA#!-gKShip zyjRcLHmGT>JWrAWFB^3EKlE2K4iqj z%(4Okb%NIv@)djD@@4MLNcWGQQA0OJ^#=PE8XSf{hPAZ(J@b0n+ruR!GP%k3J;%&Q zweG}uzrlT}$^>fRw0|82n1nbs?Qb0>PX(VxRmVJ?P*i-k==e^SF{Iw z|68l}`X)=&rN)SpV*Bsj>mms8!-szl8`f;S$jfeMX~;ghs6C&|m16`Pp>eu*00@Vr z@YfsvdHfc?p?EhoHkn#kGW7PsT>c&5C(v!ZCRh1KFcU_Jv+hLz6jxFFCRG}rJQWNs zV%Hj!zV-4`~0GFVKY; z*x(nI%o>02nCR7Az@n4_cSy|hP0fE19X+&AQ{R1qb^La-j}_VexKAz()yC9J*KfRk zo9C?wFU8Mj%$e92axg1_?d>x|en3xGk9LmAd%j#6H@!vM2@d8oGut&av!Z_@I<(>F z;%jKO8bN?`)^;fb$EY;B+XdzOM`_EzZXf_@VqwO}%iF#GE3@gEn~Oc}_&YNwqko{_ zs=1^ad^l99Vgru>eG#W_5{-?G+c20^-Xy-o4B*>0N0P)h9sgcm{oOgB!8UgH{l`f< z^`c~c!IcKIkdN<=aC?XOJhk5CUshPz-?2aVS7I1fK0Eh^I}+|{43Z60o80^a(m^tJ zi-xtOW#r}MY=t>3n2cGhRnu88qc##!a~3WquK_!7ls9z+$RQ2Lp%>;V?6hYWX*7V} z8zJBOs6!EHf25G5#i8Dt7}A*L*c}V<#L&eTb0#%kz++6zPKjosvbO^U*3{IJf&0ng zPSVcGk2MD;#|npWkJHUxc}*h^V^JQE3fWyp>`A!zgSZErNK7x)YGct6LXz=Ywl)$W zFgMY-*y$fBAkI<69joP1tA^U}uS3$^(0*L!qRPD9DvV)-(Q%+spVJPvFO2}IAw{s6 ztyexld4^v0%rX_WlW^rvJLdJta$T)@0;Hn^zW9oJWov!LtEr60NQrp-t$@yx8k=mi zRuV!}w|u_NWwVuV%=2^uwMPW4Uj(Od5b>RlMKCgcp4sT*rO@IIc>S7u*+N9%Sooq8 z;a2dVCydTzxS87P3tpK>!W^?QA#K7f!RhX2mx>YiNhR7!oSGUjDwo&TbW!fDSJ5ZS z`0<@Di>WBf(*AMUYA)y=yf#|AnvXFO-LTJm#7UYp%jWe$+sImp@y!{O+RL+Z@>5Td{+X= z)gIv4wvGjv^`-H<6pX-UsSEwCt1LNSb=#mfLO}>?uZ~^~YeuRo2|HoEECRAAuAF+B z`p&WVbWTX6PA=$;n5Y8gZE?Vco{c@L4589s0e2_Urnri=Lo-|NyhKfV50Q;)%zWvp z@ZY_ls-^N84DDj->&-{E1MF!p4DU4ZckB=jB-Ubu2((EQW;d6Oyal8;G;SV&K5~RR<>@)BSJJ7smM|MR^$&A=%yM zTo?~!7^9a6&sYizUvR2^{2m(OR8KXCmBb{MR(t8{?JbeB`J&t14UeYG!IX%E^n=}3 zQAhl6k4pQ|;6CR)s1z6|24(_w_s*W@^aN)9{4BoMNb(KC-bm<-Lf@K$lHV#5FoysE zL9-$jO)`%n{uBrS#J@JqfGhxddrpD^AZ2x`G4T6$Y^khq1?^9Ub(xAu4HIh-OUPm` zD^7|z_m#tXf04|gS9OXQ0jFnk5<>2ocZl}5LFoMa+-7C0!bhR_t&R?@wFMNly_pOB z7vObya%C};bP9?~E1ItI-`6aIJ_b_?6|P}jUV>&P*4Q86EiFz62yh|WJ3EZR++XS5 zbL*QC2&YE0U=a{1@zaFn=VODEL&)`VC?VdEE6#S7q*uR9$Q-0qC>Cz8E}!4ft-`g&#`5Qv=lCw2PS!7$q5trjpzQqGgVl0>zq#Q8Eodz}Z$mCIOfGNj zZ-^qO*)8f1Qp0YbfO#}looTOL8!1=PgtoxGL8^~HP!2qIcBb7rNA7_(LJ5*Dv3Vh= zt~`^O7TiH1 z0CKXC)Vl?`3m*Au&Qv1Pg*1kw%UTKAckaiji`CjAyikB=Ua_GD#RJd_G)EQb?(Xi2 z=(0=^_QVW-*A=!{pb{A$qdYb)bR7ALF**b-C=x)LJBsE?x9kJpW)D^FXaYsvkDf2kK=#*r}KQxHN-SA9v zIFnReUWtF3K5)4e$6+0a&w=MBVUXXRm9Bze?j2j`J1EedkD?bWhe3ZEi>Aka1NC%# zXfYCC-CMAM{&%X9_{_!>T~y++*FlbYdxT?qNJNK|pk2hx6Vw_a1K@&0qA z^qyn>5qpTzwZ+Bro*vN#`9(*2)@JUv7};4KN|Zm(cDAfHUI$*Q+hDO0`ms%}jG#NF zoSQ=`_}CtJMPb9_{HU1Xc*b)vI*|>`E-iHUo>B8bZd}G>{*4d|wpRjn za$bSgE}nB=tBKC}=)-ecVi|r~h74iS;A_QP#0W#};sZ3wynJ1ou(J8widGxf?0H&q zhUR6=63iQJ9IxoyTD>T_R2_RX<#cx;VF1ED_|eQDV>Eq*}w z8EB>*ogHNW>^S~y2CCy9!XhcLSsK>NXEaBwXO7c*{91tJ5WU$uX-0Oa z!1pBHe|=5$C7jH!1H_r#x}4m`o7F_IOLq23W?rMlST6*N#G^)2Q}&&ZFELcTY;U{J zu`q~e$X+WbJfH{DxZWN zcdFmGIWqR!#Sf z9Dbc9%PkrZ3u52Lc?F6Nvr}(C8Uf77F!WJWY@*ePW82MjIw13zINNFcI^Nr=3xPT; zItHfQQn}-B3V*WDaL2mi-qg1>1KzqXZpQ=F`DgB*F);$(ik|-^>F(DsRjqPU>sH}y}M-;`BZzw41LEgdR^~c zOZtN54Iqo3-g@H&T228;{4Q(UW*{jRZIlonfAwc5yTPP8?eY4uHr)&Q2+(kUd5PpA zpE{q`|GPRr$U)EKe)_$S$1YDnMSEa!^g6UY!Q|8pasy^rleTdweROoDg8LuMT8|_N zSu!g!8QUJ8KK42}O#dML;fdh$U}!7U=NbZ88kYBVVe-;8^Q*F}>oq5*YQK@cUoo{!3t5Yc>(j3fk}>{mO=Phye;KF>mku+eb;#_+I)pnYwE zj`$%KX#NI%Pvsu3$SXbPGWQ9^pX1vO9zb`Z=b0hs`vTM+NO) z3E}b-^VCd1KYDXGyeM;a*xtB?&=sItplkXn4bh#K|D+}5Qd=jApyBm-q`RPM78$mpcD={Fs$0_MaIUJ817oRE#p$C3O3^QEWfsV=0)XtQ&;k*cpg)ZvCKJwVe5 z{{%y<;?*yObdrfvD2E7&pfJ1ZI#W)OEAx#%ZJF2ZGWF?WD)=3xbzMlj*2gwx;;-a= zZWe>vzlmAs={ea?dC*XY=Nm-*2=TP5GirRn;%G9agL4f|28qa|A)RUx#a6F;X3nsLkf3ilvdub5|d)tVBA@47+`)n z2gQn1F5D@=BpJf>r+xM+w+;6}ExceS9cuF-8`liY!>F{{qfr_|a4V?Yd5s=Q==GzR zIgy}*6FQAmMM!ufA%X%OQC=Vl=Ar!gK7^kedsWz{0>KUrR%yvz>fIM=Pq=#)E<+V^n9wVv;`SIv7# zCeQbL^9mss{0c?Pua^yI>OftP)Lpt+4PSUlRK?0P(0fKQ_EqXyD^Z@+&qN}0L|z9W zmC`JA=nCK zNqSiD0@SlvJ$`mBtllvc2W}WlYdPFYhF(XhF1sYd7B3x9Dwzxq*I>}zxJYLkz*~Ss zVQkw0B>UJn1W!a+W3VX|OW#SoB?gTgo|0=X1C*toeR94y|EtF9O#sTuyu5s$G{Ar| z9a>119G?{WYO_u?B#c8C}_=Jq{_-b4|N*YZAbAI78b^0*2Ta) z=K+2Lbk_)`^or57ryu`j2Kak8zKu;ts1JNsajS0PaCx_-fM+Z~C;OE{TVTn5x4C}J zAb-Rpv^UR9N|j7(^vmirB!R}eAm7ff%!OvyxOjBD28U1FKEI>5qeI0PYoovKn1SU4 z^D7LY#oMgvyy~PI26R9c%EEe%2 zlCB6bB)G5ftGN=FmX9o>NGhEu;m$~^47o$!HP?%TORX|= zO47$2dygBY_;>*Y^5(7b=*xP8&FX?;wZ`B9^+c7jJHG--eRo|JV9G(E+0NnF(JNRP z6YJB2*}u#Q4m zEJd8as&f5iDg3*?D+$}myVOv7{^A2pm^HrMf`c&iG7>H@TfZ#^t|SP$tP6q~8=!wG z3|2)!(@yWfHP*%63X$Aqx-EIXBjTU^W&DPAWDehZy1e6veBt$?!KvL%xA7S#~kCne*@SPK#&Ar{zJ_mKq4oZ;yv9 zD}WH_p@;ynX8@8w5aKbL|JDc5S?{3nRE%i^H081OtaGN8BMo&|B@jq~%-%zTv+U}y zL~eUr32=cR#CxY!JzyY1pz>74JPR~6XSMmW*kCn!NZ?sv5cxKf5M!W z_ywE_;YK;Rf995?-GwP3Y}IzKvtRE~l8r|C49=0DxOyeSdqF&U)jWF+_Jil=C#yG( zZqXdecV6qxxnM7Tm;_ub-YVlcf99r!V~gig<`n;(1oOkz`!iXZbMmTCMs>x2ZJyYu z5rXgzq@dV3JqO#X-b3h;Uv47qxa>_YlN1VN6*pTA81KE-iFtHU+sQLNVQLwAF8$h3 zJ`=SGX>XmFbt^pF0EM*J-16aIxGj$f2kq0gF_aB_3>ce%VGq)w>L6;x0b>7*-*p-6BU6^ zijy>Peg!R@KWi_73q5o(^J_2K&#$KDVc!BxU;!kM`ak$u7`KeV{?@0BE7$T<5EZy4 zV&L4Wmb?Pes@j@D*`4}XYrjbv(KUpS*RqeWsvDtkP60CU&a;jQucnr}gn6%IZwTrA zZ`YNn_XT|TMvXd-^k#_#7yVz#r$ALmg^Wcx`&wLdYVWe>%lV0?e!k?el34zF&bV~_ z={K#qToF=w;pN`k;$wwa)Qb{S`ShM}oq5}$yY~ZH{w|MF^J-oRsJX7zrkKnw%P4$Y z?{bR~C;>e24Uaso0h_iMFyFk02u z>n|P=jdKn~n5%?sBD$Y+j{=35%%MAW7_x`s(a5MtHSS{8NHJKLD|ObXr%F`YfgCc~ zW04QWC!*%c6T#~jvDr{ui3pn=eK-cz?;E8B>F>9~Vz)7+#BNERv)5yF(@S8nEXmqBv}C&Tv8^8Jjw1Pt;zMqVzJd{?*phhX?6|~3Z%HAEjYnCH9m`O z7VjZdT2kHrl^k}C45iF-Xx?dqr{{kIj#0wsCy0<{v0e1_SOl|2Tp%TdNx3*O>A(X^T1 zW;TAliP&hEe*{;4CZmX98i)c5ZnQz1JUja()QhDwSb5eo zo-_6Odv?_tjx}wy`wC7ioR9Cn-J_qFURhc7#jgb4zdYa}^t&rE*GIs8{RK;HP?YD8 zsj`)?m-T`#0g1j-LD~I^Wqwj&{8lH#d1@ZcAP3RoGv24W1uSq;-KxF9da6a`N!Ya(7s$ZfGKH2 z%H{C`oH=5dR30RykalKr{#dj)rboXD8VncaVL+A#LELQgGc#&aHvhSSNiC(xr`yPlkCeU4ey=X*zpe>Rqs zON4@lLoA&shxhgoKafD(KEZ3?*2a_{Mz<-^@T`{Sno8{?_1%N3R1|1(sT)V2F7c_a zsuNB_pb53h;fgmp>Rw;An3a;#4jg=3m})xee))LD{!-a4+f7+opec!epT*R?`ZjOp zm)N@G>CM}Na& zVda}K-1ecIsO#a~JB(}>&6YHwXuD!aAqXhzT7|xJ9c;pnBXl~i{b{a^nyruBXHeID z&Tp(7NF43=ll1sKYO7~3*B@gp2j+4WG+uwKyyg(h^_gAzV_Ko5QCDGPb(^;7Up|71 z?}r}#l8nvO0FM$Xh~I(ae6>5=lpkG5T}LJ46nAD1YSqIgN3xz(#{di6*q`Nrm>N{@ z_Ta$81lzND>Cjf{ZmWP{j>&Nn|G%o*52K%E``&luw*(&c=P}`5_;%};wMVy%oD(He zo{*pRf=&j6e%rqa$=KP#-OS@LDTX-Cw1|sa#BdMvA9)$NwzKjOg%wCbk60D5*Bo>5 zQHKKOCKYxX=YGu%ceP>tTMO_}!lB5H2;%(wS61(dtqev21s~){le2ClYij3xQK^${ zS{;RTpOLJAg#}E?R+$Teb#?^&~G0TH^}cQJ9wZB z&o;iZa5<~SP^TqE^ZkDBf9Vzt)_?2{6}hNgi;K=)=`x!uoZH(X-+CZsc58AcKuFlh z$DL{cX?qr0O7pIDpjHIAbrP?^suRn!|K`gPddgzRjj@pQc)Az;z9?G>f_U%&1$F%# zn+>x(L1`EA+EL@lf>KTnE=nD%5gtHy`B8IfpyyQIiSwi`X{uyR5O0n*n*E zfY2~+T&E({8psNlvK(>I2+hz^eY@b}`VMpR15yPAMO*^nFZv>vA{^pROQZfVxOnwk zv%tb3F9+#lB6IQst^hz4XxGokE=~bi8gQVJkojUb>x|ah?EaZx2s+-JR_?m|5q0=Q zRPs-+R!tc#PXUauFCec!4m>*F4MILiOA^8^p8dC(-xc?VbJ*!F+e*9%H9JA-xR&VB z5%C39;m_;S7j;}yH|EZ@&kjE+KI*eyrHdrkM1%$w^lIf--f?$EzMiMVJ2tu7-Xjve z7@{?5T+QtUtfB(`CT2o>|Gd)r_G5i!UNyv4CfL3UPk>)ehIlYH28LR-E2o)#$$qr- zsSsi{-SM9E_SoMYw8_QR3dt+Y_TeV`+OOJR^$)E)*Fc0xuc)p*AQI^9EB(z+L+>ap*V1Eo3c9g%x_yN?ANm)oaO8UfT`ePc%mq{l!85cmZQH>7odnn@}x z@%^DW?*EP0g@TwEKKJz4quLkQ|iVHMnG=dR-fncP=;Lv1v>i`3N8E?v+krLs4M4`H?5)*2f=lNor187BsYC z9^u@+o?Je$twclya7n9`6ZKh|P2nY_46+yY^PVMq5M+t5!UKE8a|Wdtj9L7Am%hC! z_yXXPp4hdP&8;9W-l56K&rH8G7dTpbdTyEWe7NrU6T1yCylK@~9-hu` zcomIroK;cW-Hhnpq08M_8^3j%+nr?(k83_Cz^M_-e0+5AxZc)>e2KT^(BjmM2h{Fi zL+@qyWifLD!}zG9QMXdbP?bd57hd-c5EK1Ex6;`k`4AXB;xLc3-cZ5o=#=59x+JcY zcE?;&yNuFiWM0Ppm=WC-h^LD+vU*SE!o~=UB-8u>o@)!~QyS3(wYZbLe&h+|B6_?35mFAQ$|a%@OM@ zy>Sh@=8!F!*pTXkM?2YG<@~mBGg-ic#?+(C9f=jk9aqIk%aN~OF_Y$$-oA} z%+JD(Mrg+0S2Ko~xLU+~gvcbnwa^4)6qjqyI+8F_EyYvhNGXBHgM&15GFBEuwAxVF zYB4+n6lDt|lFDuz!jzZ#H`L)DJTFfo*L#UO(?I-^uh;U_O=C~P z#H#N@D7DS&P_euVE(o&ZAxOHn%?+Iks3Z?^B_bz%4ID`O;mU&ai6F zS4Rp*2RX_>av|ill3;@85Ps}UPqE6g#XOTQec4D*gP6>7v(b)P&D7zxGD&i2OGUCT z>%B=u4)(8gy3wI#E6bO>$t4#@cEDSX0q!u;rNjAGau$l2%VXk*Azb}neLZf>-LxJmLIX@n>3HL9Czs3 zll-(VT(|r5R-M4y-B;8P_mPw%sNsVA@ljWy_4Uc8<7pE}|Ab88#U=*JRE%b4^9%3W zEKzf4_SP@^qEgh#>6heRO2e^SIXs*?e_%T?65oH#zE+IHpAv0@4eDt*3h>IY{j~>+ z1Hm$W?)5l4r;R6UbPlWE!|Kb=hV*t7$1d>k!p%gv(RV9JCk5^ZNkn3bJ4hoWN6+~S zJh9l$uHTMp@%3g*XAR>DFKQv92`Nmj$JwrguGj9-J=;M2&tLx9fUzWkS-dX%1RjSD zx11SayKldX6VEjG}csa1~1M^DLmrRLX_VFpzKuZT+(+D;nRX?Zn72D)1YjtNP;pry}cX4(( zU>KrnBQglzZDN&tJ+ijMiubOGR`DQ2K!)flSreC6bth$orY*su?)2R)xdue`*7^H2 zQAs|*A)P{c`zi1A?^Rk??qCrZkCYl^~na^DuaQ5qIG2k+&M^O8=*tTBJO| zWy{|Rt$$;+eipQ?&ONQ`yEPb43!~fMPh3_)4?wmIlG75t)1v)3p#tB}=7vzYILGfM zVdbg`EKOpKOra~PkARc5bTiL1m>6639ccv$R8!xUqt?UvvzB_N^(NTU^fOs2a&PM- z{IzqDJFX?p*(Pqjl=!Rk>S_@WVtGT&&1zFU*bHM~p>F6aCzAHjlG0v8jTYalJ=~O% zh_J*81KexWAPLQ!Lhcxjd59jydQAvm0!)i`dQ#15^`J!;!?i5^vc-!%75^YE^I}98 z<=<0ztN-V%*LngRlZ38|NplOm;{1pBTFj*!g8q+MNONk0_usQ$nqr)-b4KnN zFWw!WkDCzfv8_g~pxjYU<}{VqI&z!H#<-R8KCA8ONPG(EFT;XRS=!<@DHJ|dKiMj9 zvG(waL#!9W1!6YK-p>BvcG^YpaU)EemZhg0B86oNMNEWJbT6ta@ifi7aIgXs1LtQS z1Cl-S{&(5xJ0H8zvC^8o8hkutGiysJN6EBL{wPp%&jfMSnaeNSVm?e4cO$e3ph9an_xoZiYpn!gsxL6{=!@(L0= z>DN<3fNo_D*GfJVwIgQ_;?y{ox3p|qy|hfmcXxbOX_BOcivjlUIg}5A8cZaIUhs*+ z3(j>j4s~19mb70MK|#lIA5SHHRi{1@>q(S8JLE)E67QUpqjTHI^`^_@7K3YM`kcz& ze$2I2&vqyR^0u@*AH;*>Fy(mMtb$68i-P-0x8mJ27jV=xKVD;5UO=0M7M}KRM(q;r zu;rtc!Aq3Z+s2q7&C~NsCVqi*6YMDjMRbVZg-Lp;1rBbupN)VJMXT9C!>_={{KH3` zTJE$~1r*Od!e)$fvASmL7Mx-WlZ1`Zp3n>nr_4v1MW^?K`_BTowHK}HxG?dZ9L9*E z`#&(MwN(&>WpA|p$L{3T-Ve?C-Ok5@FuLtq>~TL`+on%8!+c*hZVNk zm?r!)+D(2BWIP59*Y}>E6`m?PO?Z3WV=@1Qy>JW@{-E~XG9v$)hlI53)Gk7r^#2M# zQmOx+W+*NN0~?;B35uy#)z23);2`zS7ccxTPX=tN&``TLt+<4Qj}j6=xk;4&dUuOx z!T;QRgPy&2pZlPzn~?%K$w_?}x3O)Wq4?Lgvr2hl)~+ zE-~@w*hC=-iM}Vb3jesmAnUJx5V=sO8}K@iaQf~@<{I<}kbR@r=;Jc4ek@$o17G{) z^|jUN)o1Dk+W&Ue_~-C2J;QjW(^F-PyNLept4VOkAbzbbuPN8v^W{iR;p;{Av-QUS z8DX%V0|VZ-wC$Y#yg~oE1m!5ydg%h-kK@3C2LqXchuyR}?o_zOjl#2Cm2ule&7NVt zn^|Cdcwlkd%|TL45|xG$xWaIAr7MqCbO4INB_rv5hk&L_46vh|b~d(jXPs3ATMR!f zB{g4fASf{7-zpr(#>>;wtVo^553t@mTd}rCv3<2L*EhmGeF~-5yIT5l9BdK(pJV!u z%VQCw+emDNkI^jL!9DuHm!WB(bx4q+1{V8AZB?|hxC=xhMCLa#Nr}E^ z3k^)+m)K;A1}LiTL!W_W<^9QUKW53b5!LdQ%#a9&{Qoi@m+D|R(kOu&qsq}P5}V-j zw{LwS97gI$C`b=>P!(q?@F(C6m9mTGj|1=icWru2{B}X#$LONwcyZeFYA+Rk3W{9m zVKVxpO7?&IklTNJNG>YsBf$7bn+cGLEDHUA07`oxE2hOugt5@V8Onnn_~`gg`_waw zsQ+bPPOiwk7e=0c#y$^`C9P>}44kTQh|`RYibWN)HcsG3eB*UqUqE+wV$%7f7GMUe z8`E}cmVzw;{+GAII!@R|ma596k^Va|9FEaqZT zA#cu52ryl2T*h5`=NMrRrBfW1;m!}~52;1m_L%6?Y8*gLm#gq0ZqchD;? zX?t^0z>;}_{Dhf{-uHY@5tsBOi!R^dA|H5zkWA;?yh2N0SBm@fOAx4Ufc(f9Ut-2D<5yT9UwuuQ|`*yKQZ0M0}nE{$NV?@6FGnCL;&vZeR0=aJa+nC|~hFOjo=k zh_5cCXsQp~pIjNo$NYj`z((>(EAEWa8a9ln~kh_l$Tr9b!&E~fX3=bX-f`7yNW;iP?sZjor!v%*! zt~A?WhNDw{BT<{hWUE?pQ*H*{mS*4RFVvFrQg&za+po&fA;05eidK7}BG&y?%n`OT z2gh^X7Me@*-BHN6e2DBqldOLzAo0Z)EL!3^mBF+T3KgszevNTre@#Ae@D!p~ozDhg zM%h|OKZQGfd?(3uyC;j47IS8sXW@1Dh}b$ERZ#|KFZw+7i+=4`&-y%%6V!<*yVx)k zpQk(>6+hdw-qrXGy{&LljsZmTY1(4yZz$E>!*`4bxpuz&!Fi}k^vtW<5L&;e(bUkI z6g@;OrN~43TyknF@b7rcSeBUEdXnk0|L;fe`&i4S4tiFhkp-1;aF^17ee7)Fg|1$J zUtaJtYm0d$#p%EM^zhejM8wsl(8p%wKGary{i+BICTy@}ca;48V2c~Kmh;a`9&o)0 zIy_K02E4klxuy1~bs8?0jL4$}D>k6ld&!cbvB-A@BbKF&0c6g);=+>RbpZ1MPVVO~ z(`o1_G3wRB$G&AX<~|^a0C{4cyl?S((*gk~1p&9`!H1OCfQ*Vsn%z{9sC9e!N`Y>2 zN{Y&YTYMz5btw0hneBj{#O^bh_1^^eq~jpP7*{oU4HJiGIs zyxy1eaOWHM4I8d!*5$yMtVhBuC$BWZL*^!As>TC;L7zs4*`7~0qV-O7S;2C2)at#_ zG>f{m%WV}KVq@ybKb$Mis2FTqPZPh*WBZ#M68O6yy|;t@rXgs8E@-s>(-eL1=x^iw z@`}ukwzwE%{(6R()4vPdh453w_nwQB!9tj5f2y*!V+aQwb{iQKs&0;`8|$mmhO+Pc z3N|;o3*w{lR%GuGh%sTua&lzu)I9h}DQ{DJnw0T$h`4S{LT}AIIgsoTNv?H}ZDvPL z8p7CPZ?hBEzfe=y+r;YcK7|bAnQ@$6lxr?=Ee%x0QCZ!nJbz_uyi;wn`q|!1c?Lz$ zPf_~2u)b+!r-5gw(ReUFPG?L}-`MkLo)e>|iG zmYqIYxR{{Us(a#*dA7t{_fX?AB@fIRF&x*s1B>l)%Y_Z=_;_T$-`5d~+S8sM$JzQ^ zFVe<~hG0hGBvmI^r_3j5sg-cG5=Y!9{J7XtAUiMDS#Oj|V}0f?w0hbEkRS*EeTtqs z-A|KLtHYY0+-$?OH&ygk*|K)Ne3q9~CRe84=&pec%t*|8c4i>_gkR$Tdk_hiW*>k# zAy2zE81R7EH3-14Nu`aCt5x~xO0tT4j5J-s!j3%pigx6mq1h9tPO*I$oA}eC@=p+t zO$96RqHb>@oHZfTua3}UkJ#AUlq~u+!OB`S)OyON-Y?J}bE_9jo(`y5>qaq*AGP2$ z><^k!CGZZ}aUZN$#!OZN+vLFhf?C^d%s_AQ;dna=X8HEM{?Ll0VPT48>sXLFquwbg zZBgG#y7}Lj@1X)(1A6n^bvh-fT(r8a{>G}@9w~e0Bv_Wl&|I>rzh}eJ93KydB@w}7 z`t(z}9qO2c`O5Ut<35tGWaEk+M>&biN0NM3v~_mad1SJz@ONLuJJN`v5Ivnle4}dP zz1oW7ev@!^^s?-#Gzg=yo6~2W-Xtk?R))~&($8-c_%@twMO6e$wTjjQkJxQzLz#7j z7xzx10v>%=m0G9}9I1uwaPfQ&{F8p+ZY@KQBz#=fHF8Vap=`&x;{5 zH(5PMioR>`_QXT0Yn)4Qx1yI}!^;tZJr5uiU+Q7P~Qel-k ze+|UJhxMmCB4XR_n(NA-i8JD_%0kz{n<8$bonMy(A|C2Z7rYmwyh8G}^g|5huSz<- zf5aqgQTHJANy$7|@E>Sc9Y0tjnz-aIZ|*Jb8w%0t(GRVxo$kuYA__3y3uwGNczAZ` z*OPVIjQaH<>U-C!USW~Fu)VGAs~wc$7wkz39-epFSO@}|&)IU;L;aHp@d#uv>~9!E zsMaqkDP|#)5~^80M0XB1@o+O%wys<}uB?e03qmb?)QyPXZl99Dg=>pSKb;;KJN?_j zxWqp-P#m(bXJS$G9dHSvh*oF!`5PN?i@)|%#?jP~DpC8Um4t33XrwebR>XN!reMby zk;X;->%qxqHeVkIZ@O#Ix>>NAbip4=>!gR@a-d+6t%C+r6rO%Y?W?!@)1FzmwQ)4B zJo*l}Xb7Jq=E#2mBh>1C_Nn6i_|+=Rl8?bSzR!k`-qZbxO?7_msypHcX=N-oRhUuf zI1_#{7`+v%SmRM2xK?4)(BMMIoG@zg;afEkAQ4Lhg;24OhgXiMGOuZ`mJ%5Wak*>E zs96O~vzzJfWL$wVI2BNW{5=aPWpy{x}W}*iZw5eiBX9HVdPm>n&Tz#pe z`T-EZG0Z!TO)Ys(njozdobM^uIIS8>&niU-u7BxBiQ3gNcBVS=xTLi|4~rjML%auD zaQ)_WVb*Qjr6jh*GIprzoV

u-}cnBlU0RGOg;oq96bznb-ke~))D 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

kvm}b|i%w0n3 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¦d)66?s*lI0$2aSv~g!nbq{Td$h9FT3yNo z5#KzsNKXZL5gE2Mva3rCA3d%}xCY29bPVrtyrmM=u|>v1wQdR7>YK%Km0bHBde)H>>_&iDG_ma=DCP~E#uX=KzeyT24)?cX}b2P4SV zTZRsk=ljYVgV=;z9$kMuYGjn|F_nZ5(VYXXA8iyzyjk!t5<07OZt=Il@$V$aP4Cu7+pR1e)3>oLic$_;-Ip^7GS%nk}%y7S-~TXTNat3%def0yG?HJ z@-C|xWz5~K!V|7*xxLN{!gr_{DFScmeY`V{>)c#&8xtKGE9|vRyC7-xZZ{33a1Ggy zfywa|+E!3+wF zntqe%UaG>bS$Bu<P~5DU>PEs$lsbjF(yuuMT*V=bD!2!HiVbNqDq+ zn}3zy8+NA_KikByF+Z|2sAoc;_fE4@;bOGT@t-pj8)eZUuHypN&- z*E<`8{9758JgQ-9uh1*IMPF!&7-!e^914xZzMXI1Z;PCnjLV5Il(Lv{Qrx2#*8A*F zh4z0Zpm)>v;F61FoxEo9(WF$5<(!*;<;&iAVuNG!#HTlVQ3am6v0~Od(Ix9p1nnnj z)?wxNQ6pZegz^gb{l>1v8ResH-=CPbe~X2G2M(U#Y0TR#Hu!ga3)@?wdi9mHeyEZc zc!K$8yJHfhdtk~Y)=VtIOq%6{q_3tS>E52&x7XJvl4xUIMHV=zIwymteOOjfRItzQ z?Bo##KAqoPu=!5iiDX%BG<_elYC;H}_5?-bJRy?#*u~_zL&E3}dCv&xsQ38TGY*MY z-XB%2s$q*irXR^6;9QzE_uKx>-$@e_!u-emWO3EA3m26X znP1sjbgWf)jYQ@;i>%Azs~*EIC8koU_SuV|V?-$-gX`bZ^!#3_LfR&)Cu`HXO5*b^ zC&l_c_}BNlJIT-T(4mJT32Uv>yj#moL%wxlreW$-dzCaqD~VTI8MwRfjZw!Ml6QOg zUPH>S#E(RD^PdxQ1RMX$s8JpYd@=e>7_f_T8CBSo%}3I}eAcRo$6((NgvJ;E8oqLcEdOcJOZ# zCtiM$5QE8Vkc1qsC0+%6+e;$XJu|q8MzL;h6tes0%b&Q=SqJqfnSQ^r5qFI*lPtJ8 z=d}HI>Y>lEK4yYfK4Foh^;>gRT>RMbAw9NE@T9@(ei{Mt_UE;}Mnjg?>zJY#kRVZAQiC8iVN=##I}?i2)|=uuHyW4%%WjYTtRSI#j??}# z+o&jCnP{@jDeo>(AKwFiD{FQ$L;P+?lP9oD*X%bWH7lqN%r%~0F(9y*v~DCVy*3PD zN`W7DGp@@xP%O09@1tXjW~)tS@R`b)k58CEEHdRfUI7&TFWEom=GvsV;)_#qsmam8 z-^IoKq~}#mukcNcq(T?qeXu$Zk!lV2Ph)-2S_UGAF z1`e&EdvRmWGk0q#^2S+nn3^v_o*6|TDdR@ZYEBHQcK6paP@O{Hxi8QJo`I9&Oxrv< zsh%8ma{bTpcaSBYA=h{g{g0L_V~?=eyerEgPefSXum#H?Ia6wF7nw$ci77EYzXJT< zit%5B){EEExbj4tYD;AEsYO$p?8&x-PbYsq-sGpK#Iac25+(@kys9mYtiH?%n!Dwr zKH3Xn^5KQKhGzc}w{D$?WfRCBHtgOOw z&LDx7h^ia(CJ0eNsQDH&hY4Hh1il|-uC?%~oQY3Ikjz){C9(HnvgEuaveMbXr?LG! z)K#)k@_Aqv&Jq0SM9TO?lu_LKK?xDZ<(rWwIXZnDA52^vD%le5*A$FSc?*Aw?DTc- zy+pag+tLPO=~DC9 zrc93hDigCjRxtx7j(ZBf6JW45SN_xCdRg9nJuEQ);OlYsw7tZfypaga2z$)f-ef&v zWL_$PLN>)icK=pp1FC1NwsP`3171FfcsqWB3p3D3ihS^!WA<%m@m9mprDz4i#-xt4 zAVbUGqp8*7Xm;)Q@v{H1#3o{A$1n1{2Mek2{NH}P+K0GCh$ZX3gkD%`K~4q#U7;U`*^ILD`m1AbD4|=N()}ilyy- z)*?H3PZ^wDTFS3F0e7BFB{38#yfJs>`N#fF11&*(Y=YVLzVNqMGndW!F@pzu*>c@I zQ8Ttvs%dBtg*fpJ?HXvp?X{p<#5}trjR~Gh(OvAQ6WG7_=UOmgc{de%v;i@$@^G|3 zHjB{;uv7vMaNAg0dZIH!L>A$jM7uLo#3yhx7jJV5;kgMCbL1jZ?(FLR_9(DrCj5(e zyLb_Lu;JdbfLHqUZA(uCB?Kl(W4;+(02tX#5iuI>EeX_(npy|bqA@B)GHNes3Q3_l zjtml*fjW7&?fTIc^_HjvqzCcF$`<*2wY>Cb&&En~)yF}3^;DYpfe6dtI-ieXct{hu z7O(EdB`t0mJE_*aRw@*(dkta@0^RYw`jc*&r)5+Xi+8JZHjQRR_aoQe9muBagn2}V zuU<^z4c>P#Z=o3hMXlyl?z8AX8oLSLpDX~7z0ol5F5{4VB6xUSnsHlUvBX;83CNr) z{XW+eTiv6vR(m6(x$Q7hey+TmnMMFE&rTT7*%>4m2@bk7vu@x5D}hPp9R#`!Q*D1I zPUxM^(&-3JZDG$M^_tj;rADb>*>HleXxrk z#O?Z==&$~i7a`9!Ae+&jJ>!y(KH?%%mmb!R_;_$#pA^>`3^Fsa(Lb(O#8WpHN@_PH zIdyL^*O}M!yHtT7qoH~Ba<>}ms15o_IWxs_U7rmfB2TErR|Q^C9{3BIH7}h_%rPY!y#qHzI}5``3%fR-@JUVkbm2d-=l})sxPz1nE z&Zm~5H>}-)s@a8%MZsA=>9J?7ps@#ZWSvwji!<#v63PQ()|)yS+L_Mv+)@ni-RFrg zl(cA4Q0S5@7p>6F{;c)_e?hJZnW1JZlw=wWYcxD62bxgIC*&k)#RD70l@aXv8JGqx zyncFi>MiUN0nDqtC=9v|msVbXOw7m*ar0}v$eBXvbl`1NY=RN4piY&8hx|bv<$?7` zBg8GX+=c!<2{h~)$I+S6%dCIRqP-kKQdOsjtc~quoC{8Vy*vDz=K-@RKVtV_L?g<< zc_n81M4ls|S(=}L-P{W9C!v7Aqv`pv|8Xsl5H-SLNo0fBPv#9F|7Y>ruLZ5IO28u~ zDa|-)G@_<#!qf}asiIyg7#Z;VGCd{jB(|6#{*;K3$@u9I^DTo6uuG%)^)nj%DtYR( zhuX?Mi{N!nNhn_YXyaDV+(QGo{Y6F)e#f{h)UD-t0o%rd{6RaOfU=gYE$UM6cVdg6%ABaJt<~1bLL*cp}po%6IXq!q7%Wsh8DuyPqpC1N_%Q(f@ThQ!a>|HVWhS>GtExl zQ^E(HC5S32flle>JP!x2@JTk0DHR_~!uG36Dk|@qd|W+YH+ti&I9_KRWW78my^RDt z5@(ZdFU2$Y+W4aeI?2~1^r^;2E|);D$tEW_`azUI za4RSCJfT4~x?kGA!WUJ~{bYJH0kQmDd&etCYKBkI0sF26WDwmmYq{-4`8sBFzD)XP zL!^u&hGJDIsAofYvm08B8s(O(?dy5)wwEuaV+;@D7KN}k=A6-#J+aXw&8`_LIoQi% zFqYwKb(IT|c!ZUMUs(LNPMIheCu#hz6dRHJJOR@5O!`$_eqgK~?#y z>VdiP{}}ni{=(}F?AZ?a3+FXSR?Y)sIJE-+h{Ln>nx1pX>dIizfp#!1(0hfD&8z+u zknb4HyZd#pn;)yxNmvc>c!EfF5f4*Vw)vO8D3!i$Ly{ICdWmlWEBSby!uR{do9xGs z%3Nw5M%ZdScsF{y-mONu{8B|}6;3sXa$AO{LGGo%^r}~2?*0!?C44h6DucSN83QHN zedR{A2GwdT%QcIQf-66@zPJAO6jR$-G`dW_dR|Qte@2A%r;)#aE_Ogx$8bh(-0?Ft zII`23kZA6jb-bWp1|VL&qQ{OZcHR>SDq=MG9{2>V+^Bp*=^*&s>cO=x(m?yp@VXx% z7YDH`Uv;oLd)N*?f!$o|yw$HdeP~T@mm6Ao*M3#}|MSmIBqNs~&|w~EmcJ4WSwXB@ z8w8%#QCT=eW_&_D9v(vod&JNwY~yB!^qPFuQA@&!VrbZmA?$4cSmj#V7raU_P4Cj4 z-c>PFB_!{tDM+%?-xb&H$09HkQMBFDz%f_dZ5y=Lcd$6jHFaB%*r2hiXm|DE9LXED zaKr!obbL438ROklJhXT5kulS^YGClM!TO!O11>e^YV(EX>UYfK9Ehpn>N$G19c7I8 zjualBLc{LlX?gSaSh^)FW}}B$aS)G1SBb>x7coh-TO0amo5}ndAYabk#dDcL4y}51YtrzlgVsHS#!=T`>)e@(1Z-jpI(iXA zlC6gq;t}dm87=h*Y(dVNOibKAHb&?n*0qROo|M#2kZUEY$lg0&Se2m)ay4aQJsF4f zD$LWJK5=f9GovzeyAsTzYU_SA$c=(Eo%jL7aj#n4LcyF=ds=B9EAF7I#UHuN_f8Hk zu#LuYBtkUSD($Y?QRlP}Hjkvqh2<`~X`hR6b+R9ntwUDC*twvG3wGm?)g@Igc_$;8 zsx8|TxB-Jp?Twc2h8D;(pF{a{te;(GeM{91;UwFZDZhI7*14EPg)I0&z(|iM@aaA4 z8n&XRyC~Nj^GA?kDC$>&pPf!4^YmT=jdSbDE@Kw|g*$T#@Nuj?IcuuhYU?d4mu_>@ zm?}fOy6FV3;bCikbLL-&9FLj7z*V+%5mkfO8uH#m9{fFQ;{n%zofA6rx zkm9Qq)a6_u=^#?OE<$~jV(HO?2NZffUF`_hcuNCn)itFWCVA(GZ3$RO{A@^}GF@!_ ze%}~&L5|Qf>0JTSG?0Z-HE4ZNHTDzY4dc*=gCZm3BQvcb;{~5-0G7clXD{YP z$;!Bizt|&UOp$Lm@g^aM!Y7#fnV^NW7ff(q%ILN?sY*^EscHs^Sde1N8kXAup zs1d;>hN`6+k8lcn+G*~^IrwC_g|jZ2H4#)vLn}mCsuqSEZm@FA>($-$b;dvSCj{c@ zAyno1l}H5xxERBm9HL$ZSV064JjXWV<)ClO224u#dPiCjOn-7$a>ysBfv|QNevDev zejhW-6H#3e>|}u*7Lcs7#FL*SZ7l@$b-m>)|J?5i{Kxo-jnJtx_XkW?=}ky0TL!82 zR42nW=|~cK3A#}Sp2FO_)M7Sb8Idz#^Gt|&_gHRheB*Gnd7>G-0FU)9F{|BKlwQ#q|i92YPB4n1NROZ@@1AbqnR`sP3 zDh4oCwYpOIL@jQyGk!S2)PC-)Hnpp_t86H6O9bRDEhiab^^R`|YD|C>ti@G|!*@-s zf@7lc0RHCj`cek?Km&Asqh*ppu(-bNDqpL>khj6*pgW|m-U=>zFBFZ@^_GOs}jOQ@b9BHO_zD+=CmlwsSSm_#r)a#6K zd$UqI3VwL&+f8_mm(>bS)!fa;xTK$IS1@ZTO&+EC0XBI*%U~iJiOQWT?46op;6yS6)X19wZp?sF&5H>d`@zR0;01?PSI4@!a1@blo+@- z8+Zep{sx@zKwx&3H59?O@{z>U6g?Elk#awS1M&o)MP~VIdIfU;mNh0t^4D6e8b^&2 zHap3K0wadkrgjM%Gcs-Ty^yXAmo^#J(AXh8><{VE!smAEW;!HN4^eAo+Xwx;j4sHv zwZz+dtM#Z2=Pb~JeuL_x1)D4$zoCYKFH~op!wEC6j?5EzUo-h^L)p{OC%FWTLv>)( zx)9dwX4?!!PJ0z6m5@M`oX8G{oJDC=CI{NKzwZGVQL5ISfhSB;b+A=Sr@cm>o+qf3 zzF}W4vk!4i78@8=9`&n2otb-;?K`)u%%q^Z!=^){B1eTAz-PekcdXasna#h&bLn?z z*29NzP%O-=*f%ZT&tU{rnpwDq6%*F3gseWkDZ!Z98oAbko0zQC5%ecz{OJ|_+&OT$ zgo@GT1g?iwqTWe+st8p^Z(PN(t~}}nvKXD+6~1@Co72($z_ab=9%U-73bCA{zChSb z-A(ALhi#8+?xk69@HeV|l1O+LZd1Zkk!g=ftA}p_Y;>;KBDKfeE?bbmJ&5(K)0q<} zj?9pRScY4{N7izZile@BfEvWTpX|Se#gyxSQVD`Q1W&btzcsJzGS&rxA;_(&GxIycodIs`;CT_F?c%CaoA#sbTA8k7 zJFK--cDw8eRHdMniM^tFs{k}17>S8jub;9#5V%c+x|f23o;Ti^NN|xZODHOWAz1_- zQ&c&}9yut|4ynD|b$Cc$ZG;PAmu!aZDd;+ctyh(}V?X@DPL&SEyqKmSqlx{dFX-7} zCnRL*U5sZCH0l{X6gr_)Wu0PHoG&%5P{o$Ze=F(k9%F31 z@D$4?N8>YmgPXXKaxlhV_8V<-Le$Pl+#BkZQj4!S`dEOjMvLuoq$37X_~0zd^ZihY;j zP3FE;0K^csEjR{m74nenN0!6`vZ%ZpOA>Di2ZGR-*(Y?g``GJ{sK8LBVkc6cZFMq! zd|m+oX&_l1=7nojp$@(>pz^j!fVJJp%r8RW7E zP>+h^&LZHolRFdpc-qsnQ&v+-G=p(Bpyyk(->Cw-E@vVHsTJXXhS^C0R?gKY^U2I& zWY(t9>xB|*+0mBPSBhEbgYlu##MJ!_!7{|*2DfnQ!>9yFeU}h^Jwd5CLJ0#Sv88hh zmm2YfHmQ>hwsNC9b?%?1xx5F#4_ftCgR7V1(kUPB7nfx>toG=btF-<*2m061XFX2G zsgt)~ACrS?`hGkpd6)Z3(xm66Y1h1tpf4FoUyGo${7|#yU%FF+_w->n+99C$tL;<6 z!`oM2sY0zs8$a$DJ91>j6jQXkUp)J<`6&^%9X;DyBQ7aE+T&F?%12L_EX`-=&id46 z!Z_ZytpM7M$zk+wmx8)1`sb;C4S;BWIHqoh&N0CQ z5Ze$vErK|)l}euiSJe^T_$QCD3B33bZ^{i&xpVDbEmo>2Ye;hbtU~M01$o?B024W|19(c&Ey{y5OL3qY3((vla zc6U_><4%fGqgQOc3>kpck?z&#o_Razv>OvamU={nsfbgOtQpgmGCoPgzDMDkw|)fd z@4om=oUO5)VE958d+>I-(KT8%=83*n;OH@fBp)-HMlgN@D?s+(#XL9fCD~-~V=2Gn zu$A~FHHN|Q$Rj)xwlrJeD>fX=@xIbs%_Fwi5(B>8Q6wt5c=1?&Ksa{bM4!7c_6a_U z=K8sOEG>C`253=eWWv^g$rZ3^M~fZ7D*1QC`KJh~adw^8q#h>{C}i08ZndS1G51#g za86pB2tuFZ>^sBe06l;;h4dm3gft}-7W<42=9z51@njt*p8+1eTPl9;Nx0BHTp}cc z+){4_<922{Fup3krR8&X>SNyC08~VRN8h!IGu=Tt$L+U88MXqWA;W0*5+p>Nn8cu$ zZS;pRdx>+?M}Elu9mXta>kffdvzA^$_+|8i+m3nVvcv-_0aBQ_cxXm0#a$JouSMor z****FtrvfJ0mAHipDpgpsy2ss?-o<;av>ZT{3NtdcW{PD`cgSrBn}KFoR~VLz`ZpR z8DEhm|B7H2=^eC{*oT0X_ac%VvjnLd8ey%CJ$vo%o&G6Pl27U^_fUX#eLvq;md+Tt z`BDVQq+MO_XHIHXrxGGebzRX#@V^uC&&KtuH3uJ`bUw={DC@h$H3R5;COhYso8QRv zZx4O+FR$T+k(LwYC9GjJD59P(0%C~%UHm0KC)MlzqIZQv?x%x+(^%n#>#hDYN>J9f4TEy^yY5-*t3({GkZWtU-9~!8UNjS z;qF;G(Qlx*FMfboURK0!`2ZqpW+4yRz1-xHbvA^83p?ENOt$*^>==bQ{jNBrOe>h| z`|Q@YsBoLnFH}MDsjH%sq)0&)Y*Q~`TCxhn&jlEgYI&WtpFcf8q8P(u*AxYZLM43+ zY=fhuArBDJ!qhE8qkIzjYlB_EpLSaA(%;U>BjHgYU$ZcJXZ?zFVN#NHuz( z8|vU}{Qw7>S-Yud?TPGt#o96YD2^x=|9N;-L%}}!>8&^8!fH$vI$1l+l0un;(>+!3 z7ESgA=If9dZzE}%^Hy4U_lUcd#A?E~qHGlENR}m12o-u&%Y7+JeXb)Vxg7>+67_X>uzrK@IyXFQ&R5b zMvr$wd8aNldc&po7fP!;XL~n}7{Jc?N6((}uXVpF{pZpzc+At%@`4 z<ZJI=Euy@T4?&N(e=$hZeAT= z;8EeQ)Vf$0CJ4p@l-^U)>C}}0?Px>a`mJt2w3+QSs20mq7^)BWVbji5Th$>@1v{`6 zLnR$0_FB$%6Lg);i~*{X^5xk2N?BrvLZDUE_^nHkK!YVSVNTz(07dek${~5(yLk<8 z;?j5XAK%vlrU&*+8kwS2g$pG)z>^81;+ssd2$pGe{ zR(k4znnxMK_@D-X^5~GeotqC5OA=^9!Z^(u$N7?TjUA`7i*DRE98>xTa1sUeRr2_y zW-ZOm5yX_*!jU->*QRV07dpgX=BD{hZyrTgU(FL+1jC)NkMfC!?2E!@Y*PsH%Ibq3 zfD*Xh#+0nY{h{d$7-hTWkL$CcY$D{4B5ENd;oxrRQnj|?F#;Qa<75w|K`j3v>R3fR zDr#|;^paw=#OvMY(sE)qK94bTilRGarKi-O2dROj}*MKncOM0>K)?wR~s`=gL@M9+n$KCo% zyDXZInVz1#Isz7eTu!ql3N4{J;k!fHgdL;}-d+5026K&2QpOJ^m!#c@EcY_({+naJ zp>=riL50EdfnCgM*&CMf&QE=Io_6e~_Nl}eYMkTulA`O^$vLMPJpC4UYyLZDc=6(O z+$gY`&Yg8k-+Ik|T}I${Iszy<^aivOFP&>wA_GggTg0wkr{i{d|97w5e}oc5BJ-!m zZz*HeVFBIfS=)MmJ^$RGu53r}JCO-|staQ|x%_UYZ-2kOv!3OTx%lVy-^sPSOO=(mlYhg_*RNL}Zd`4BsbQcREHW;5>GDI#rT-xr{ThTmw8n36 z^#6Q6z{|I07;v@^QWhisy2*SyUEGH6==XH2f$r^G@a>vgPi!L`2%uW-> zK<PQB46tX%bc@#?TKz7G(4rejB>8B<75%HNzwf3scD>9y3U;;U zTaXr&-%VoEg@~Bx*<&R9;0|tdh+LzlKb4_BPrKYFTf76X$eJ1~+^g7Z0pPx3>y@wM zRim8g%&I8%vfZZI0otg4@iQ1XTdwDT#1!&iA{5n^gcYGQcgE z8xqiX0xmHQ+snfBV{G0bi!?=@5|219Mdl!VkoF}U7E8l>maX`y2CBI@Z(&rxa;uA# z#no&Rynu&56of#@8+_r~MR0lJv8$mWV(_@Ecb|IC+TY57ov*Q`dEnI1MtRU_N`Rh< zdm>~E@x)({B+Mj49b>M^kdFvQb9v=|p~+Fi)={17JxxpA7elsHLh|uy3urb#To0TemK+9+3vNx%!=8V_JuvkQx4f}R9|U*Dozs8 z#tzY=Zgnv7*#aCHOj#?3N=CB8uimaLDt67+7shwcVK zG)ZNRK{N&kEQfIl^Be_=q|mcz|6=5zZ@XmGubva1-fXaKHoBmfrwCzWQc%6 zp5Ceo+7C;(XqY(Zier+Lrim90T@>M*A$4n?X1Z{U{HQM;jmvUf6?LsUkV_Q_t|}hu zf$!+`p_J~!_^K5Q9k#)BKbT{^<_kbOvOk~G1-X61iLV?{S*;XRO9`XXtPpyG2Jj34(r+2PX%?ZPe{s(UkNaCW zbOzIUSNPpN6xBug=ZRcq@bk+%S>z8O-^n`*wfqa1Q}wz|;<1hRDj^V>tiGekTe9rP zE8|5R|HJB?1eelX2I^93K>XU(y$QoHg60t&OR-V>xkcd_DJ{`C}^j@7t_s8 zvR81O7$U)9Uvv~GI|b+=umlMsHK|Mijv?)c)^+72CSa=wvE4jkKi9B}iXB`FC!;6D zfj_61w^i$NRmSrH&2Slez)Kj+A^gJ>=4veuq!kK?+w%D}<9t7Wq|?|RRHiVJX|u8w z5N}(j+Y-FwWiWel9mjvrmA7vCeavabyOk{kv{6|DtIRUOI7H7Vp&Ey4z*$L1(9~Jy zS93VjwrjsWfQeEmMm?(_YSr`YGNyL7J*OsUS|V?-s`>fe05nWJJ$qG@@gTU&_hF+r zJq{;t@rH=h0kQi5PbLRY!k^Jjd^~~~F zmVP7E0ejyLj5xn&KB*~3%3uPA{n_b+!E4@G30nQ^=~?!TmGqqn)7=<#fan2iENVq68ljLO&HdQGIh|>2<-X#&b3s7j4`!67}PfD9F}udyWIIU?AnKO$Tzap z^VRl`LBNyk|RW=OF=-95Rong6(t1(Mt3t9-9uVhL_k_Z0jZIrTR?JjjT(rP z7z~jd@!WpT^F6{=CG$BA7!28bc4yLi?+ZNVe{^Ko|KzBqq;+C1muvnuh>W z7QW$9|8cNbXgkvey+EC?kw)?i*Ded95F=YgsFZx2VGoxREmLv&A7m5TI!zg5WmueC(EhzS^IQPzJlE+ z!)4(CG61#cg**qsPwhL}qzRZzrBJ!nXa68 zxn_S|gES8yk>h1MG+1hop6#&{z~Jp|_+}+ND7kVh}TRXaa;aE-LPPn~52^XI|GvXI~4Puygi+or9&KBK_ zFqMQbmwJW!o0it8hAT8xlXSwsGbvfO}_&2^R<`w${02R0{KdW`~&6ZYy7ry zo7w;(>GaZHM3VGRV|9tsfD{s=L}Z=Sp{Ge;XC$i$k>wC~Deo*>MR9aXdohg+O(BC~ zP+~mNe1yM&BipVn=IsxBV_;d(R7DCFcSs7BUh3JsO~Rm!<#di!4o*FR2sT3Lo5v(S z2r<`6eP&o8tGBvyIz^Z2vJt|Hau#g(IN13fZ`a|ZUg@g*0g#&xAC4NnWBd%Xb*ROq za;u$tS4U{=jm#ljOKp;ehZU{B z`b!%K!uyji`mJKU7!BqPIBSV-;6&=u&Pe8ehVoB4=cE?+1Bqm{u^cetMH*r1D|%7^ zF(gXF4?&TnCY>sYli<5l=5C|y7$mve)D);~=05HiC$AUD-@zdnx>3YExkmn2Oe(Zu zm_KItrE?6oqUa=TZzNH3o$diOM#?PUpQMn?nX}T;Atk<^S}*Fv5)=0W&KcXCM=+T| z<6GYol<6b^rq`%&dtF5I5VRT@k!a)be#e*k&?}}lNI`cY2HHP%M)u+rBewy(Gj}s!NX#-)h3DHO^`W|5e z;%OI81&Ip)G3y{6Oc<|!)qNaPRhp~x{LjD^JDZc9gx93;{(SUM@hMsO!7iM)Xe*|5 zL3AH?ECBjA^sH9plLbD4NYYh|*7WSxSgp4o)<5mFBbTIrg!aldTMeq8}dSHjJEjCM$0xx1{X!xM_iORhHKwxt<2Y=&^-~)F|QQ z7|Ilcs>#3jsEBaI)iRXc+kPth+@`MM3;x}uP$lFfR3_$ZmzB{-k-&BH``!bCTeqqgKQ)$*-|Jl)DJ*ymm3;j+&889;h%V$a}x6h6t~9YBf|iNvrKDW%P1zCLVHZ0$p#)bG80#FH$9^N=x!% z&OdK_ZER7g5BGRm--oufOq3~k?N#jhUSA_)pWD((<{!4a->$K~8*uSx9r-9@2S88z-ElHg zzXVP4-aCv;&Hu&lJbEJ<^VF(2^jkDkjq;6id1MLtkjQJHqJgYY5pz20u)7%stm~^b zt%?6dr-`tGlwcM3%)J$jafHnDqJkUuR{hTV%3Qln2LkJxThjJKz3 zr{kpE5rgEDEA|?dt&8EebJAWssS^H{W=NHY@otdtS?m{yewqsw6PH z128(h9hZjL{s$@h$2;cgIwP*bL}X%Xw$JN#Us;C^_LfV(@@y@zW!ou~G+F4jE$?LJ zd2gjn)^(Z$OCZA;y+Z~HXadXUwD#c>JLe~ZTE>>Jo2E`N^JXuuEgiB5*{zM$00j!- zvy-6cK9bQo)!+P0`}C&zXdQ}fD}#giVyE^XNJtAWDk~l-BSc^u5qgLX0XUYVE!O~! zT;N8#dac!!e=TF4CiL0sMkPF}*=Kx$AWgIlY-N$=)j5McKfswWIstRgR;u-8b+O!u zw}V?kNW%VK6f@g@TQWwoG@KEgVRrNn4f@+50I0y|@nOfxA?55>02*(zjbckDBePRR z&>nzp$-RL5_F9GA!p{hU68gf@KL_2}ifq{-f5?$8gY#=+6cSE6m$F2+q&{WZJGFGG z&UEG!NGG#PRC)z3W^GhD3;ID$!!AI1794_zN;`dhM8-o-g~2 zEcCIx^F9%BntGm>4)5`o)yq0$1#M5G%RYqb;9w@sMdCWB>64bCRNg_5tD;)p1M08* z*k;}inT~l;KT%okzcLlWDPT{PkI=GNucXf^#V$0n-kKf>cT2?+@Kr1wL1)dgf}A z8$1Iv6JV6Z!{Vzy(V3qR*edaQB+soqt&#}uKNt`W7}On@Gq9w-pyqsNFdy6$N0#KUe*L;)KsQG(--M_&FFdQAg$(P z_u<%Fb_)*v1te zJNh^@6>Bn%9^_)3wrEg#G>ACdO()+wi}0VhbCoh#@F>76r7XMQ8Pr@H$f4I0q~2n* z`(zm~`IrrKln!u?!tH=U1P~LA!wx`lWxBhpJAr2%I&%IIQXGPsOSA1rqweE#r=Rd3R@rqow4J+H6Z?Wku;3=sPiNm@j$X zH|)EC>2PaLZdkU%`~rTbTlokgyQ^aH@0{;VrZa`leuweFgv-zR*wPMBo4-nW)`G0B z05&uZgS%DJY-iCXtT}>>JMdck zl2F7>s=-s&Hd-zepkX5{r_RQ$C2}WTI5)YsCbNFxZ$jMR$utM}$?O6J|&8 z=vrQU=a6YS0GkELzd{;EcOT0oO(6kK&_!Ykp2oFAc1iL)MRu)abxZF0rOrj0w2H&U zx7zQ+4)kw9@@%d(zKfgSW_wbd$+nSR z*#j{>qXCP1IUXN>$Rk7iI625~ZU@Bh|52na@T#mSb?m%epIe%7iMjqHp$7|^lU^^~ z1@0n*#e&)=ozUHeAWiHWtCStXz=|)_NC0=NU5K&{Bs`jQ%=)Ki4bw1tR>C0c|Ctw#<^lwJu2#aT-!sJd(*(n zZp8z|UtNCANH^DYPOaCdfu4Bl?>4vPlvPrWE^*r8ai!N}C{~ks>#I9^v~Rseu?8{c z=6N?S*`qdE{q)YJ*DE$=bL+rRQRWmkrO1A1zc#uAQ|peUmc2XyYQvz45o%4{j)8rs zVx?{|DJTW5s%S4u*L#>()xwwbpO5NhG>lK|FQ7Y2=*0~Q(+GPyy5p(z!<~VUFF~5m zEMJ)ZeV+X5>$gnJ|AnuB{V#5ykDPyCOaF*n*2(@G#{+!X$qlcH|HA6Ld68Cz02GZk zpOMPGW+lHwdLsC*r7{0`mv4HcX8u{M^WOrd*$ism2;-isY?B+=4c5c8vQ^2B;C}{yi zX>ukGnw$M%tZCXl&}E^2yleAxaIC{6{_D%}LcxCX z=nB3M{;F99Fpy`o(Y>pJA&h4@o`lWv@Uy|{rq+S)nSdGs;&&zX8$VE^-B_Oy$>XM0*1&Yb7ekBv>69P`%T z-QH}*L&$f%_3zZ;5UgHphnpF-_Z@@_4GARq$*RsHgynF@pDwYRS|yx9CM2LRUEN@j zEBEM`lU!els-i1DLsxxExU$p|9&Di&T6v|^e-H38fK2`8tp4kbHSTR;mw`=%D@WY3 zs26+_zRPo^8BtxmcU>5$lIdH+0;>~0Z43h~?_9M) z?v*i{?BMGuh7IRD0zMoQL03uZgR4jw69qyGi>(yuZcz^l)gt1DD_V_FG_Dg}#3>{5 zu>4OQxzmb9cH3!`G==Uic9^39>VA9cEj5qB@<(NPy zGkAqdnb?2QzTibPkSzUKok$0#tkECNp2rTu5p*vQ; z&WZa9)-O4(=Lvfc)Sl6_YsESP^}StD=iUa-vnUD41U$M%V;gg)rz@RkWbaST$?S>Z zo;WKprgkBfJ13p6z6>iWAxLj>jtd5Z%n#UHTE4XQK{ga0P#18V!S`eTNtMJCyY}w2 z3LlPZg%4X8i(Vl9R*x=Z{HjBJ1u^)Y%d6eC)#aF zR+0Jepxs_KsIf@10c~38%V+7h7WWw$2}|eu9VYZGtgL73xxhBo#(8i$0sm83%gjc` z&~Daa^iEvcuTedUp>t0RS0c7RW(zcAQ{XdvdiUm4P#Z9Fe4InuAaQ4Np)cyKxVEy! zYpInPW`FsL88;z(^0K$Cff5&``iQ_u+H4HJ;=h3a_3zC|3Wtu0Tomo27P|o9u9(We znM)}gw^Xa!4N4zu`}{=1S8qu01e)>Ql^ZA+S3!r`FtkQ@uZ0`&%>;6-eFO(Pr`dEA zsp_>Cx`htkrm1(K$^wrapVv&_q~%(!2^ka8v&#wlAg+4%hoE?88l&HChZmcMhvEBE zEIa0tKcw0?^BO;QK^KXpb#5Sr6Ulza3b7?XbysPEcX}+j)RCdVYT*{^**lzR4&$GB zpbOHz_cXrBSo^XVOU)65kM8B>*sOj(wP`VG&3Ze0F{~ba*8K6ujn|v6PFPhR@}IiD z&3<~>!8ww|(~iEgFV;dwxX0IQ-zPx$S@r7+Ykkc0PL9*KOp9#Z2l$nS3)ym}a^~>{ ze_!C&qJWlK%OB_~-hc9e3}{v^pYC>N@A!-~UA@wpAiOZe=s*K%5RM0%HLcApnRrN( zx%1i0!Md^4P{*74l=G5P8aH3v7htDRjq0LAcc|1`$X#k&A75}sS0#zJy&k(S`QfrH z{Y>TAaYn14him-PsHnnDn%V3fTJ}U+`gW3muvMM})yS?y<(WR>8;>0->{zza?Rtx2 zQ+k+S|J+SU7mKJsp$%CTdBiSD0jSE$mQLhBFC?2kLFjr06pbksikS?UiL@ zO}mD4<$RRxB&?0c;vQao;ajTCEoyG@f)xl^DT{B|rAC&(I4Va@c(sTKk4k5Wq(rNl zhh*M)646z!Io+PDi=g`Cpf~jM z)Z#f4)kCDAJ^k(n6DfYSo}dzd_Mj>OYNV|tMd)ey88XaE(P@C^J$yYBc~70*M9?tS z04Lb<&Du&4@vc;{IkC;_e2#->{x2lw54^HoSay7fDmJ%@iijM(6+ygLW_B(zTI}#d zuh#je7YAdq32p`9jo+x%yHPKZT3^Nw`M8_TFt|}h#|*u=R`OtGs~U<&QR`87MF||u zKHXg1?45h}qnvAhr$xbX2fZogL6C2$m|(UW!yU0q?Jx@7(HyHmxt zdO?AFo!8O?d&5$2jxD-lIUAvzZ&6lF-#T^k(fwkTX2Dtw5D)>78tr5{2i$&E9W?p* zleZ#LeHGogCRbM|+?)UCX!aG9$w%wXsgtOHYuJYusHhz6F+ZT4+lLd&Dv%2styxX` z89k7rP-;83`Dmn*3}?-~z!2v+7Dc$Zf311|33s3p)`8 z-UgU9*BG;PX9#Oxa6<%>QmcIke4gRGyX5lBhw_klQI)QaiOs3be7Z^E5;sGkVnB9&krs5dZZ) z=xvS+l}kKjX@O+tf;uNSGNIQH|+HRsFT+G??(^~A*7UFv<>ph9)X>z!F-OHaMB0Y}JY1l@0F4Y(Mo@~ts zTKOr_N;u~cP(%4!)SXy`=M)l;vMMSDAvY!z5+bbf`M*3-`Es-cr{XharP?ibscwBm z#R+_hlcd*IBL-5(D6r|*3aqRrExI8PHB0*K*Cb^OceB5TGKL;PGHq6Sfh~1^W)N5D zt#bD%yUFh17j2LX(W#|a^JThoxI?H%>Kp|<9@CZBkF95R4b%%*{@CrUMr$x*IXTCf z>Bv`MEZte0$2(46vUS8>HAw9`)up6^ednQA$qt`>f<5H3He_O5j^;-tMosu)zrCVn z$L%FC$S=uF_o(=sxXW(9$L`B8lWtXyrmJGV6~0c)*g9WIj8#Z{bnw_T276d;Xq7kj z+HXkQww%cZvUmsXl!67S{@q+x&$IZ?WZ_Fc$h33rD!D#Q+ypu*Q@q_IQ*h+nqB_BL zqgQ3u8_xTY!rkm8Tw4Ym%NSsg1vHp``Z#r2B!~{I)ZG}f($ypMEQ)aJ;Li$;7#ZWX z|U8NZ$nUd{onv(D7_R%wo zi6Fg7m%T1*W}`d@c{@9?S@ut-OkI1l{Y#X1cll|{7wSWjJ9l?7$yVK)DnDdRy+Nb}OOUNoS8{#vb1weZ0Ty@bkG+*J6;`i=FE2_oX?NnIz}qE1*m|f9 zMu?DPy;HDb22YJt6;0soUZH5G$qtQZqO#}du%Q+RY5?gtk?hS6xMS`CWwwIwRZ{)h z{qc&+h^E3kC?F1dww{4=|MKQ*tNl*{`V*$1nW`OP&|78IZ%1lZ{z%NNmxJb=gU8vt zXE!>T7>|S6MuB>skXP*2DWd6lK@_^pu{jrCJ(;pC>T-({%!2Afd>hzI-@5kG8L$UOyR22Ip4`5e1V}M8FLzOT)OFeQ~*i-tFrphaX9kf{- zzns!|gp8%~I{5zRWdMJ>%*%nc>rbxxOq=$PraO4L3n4ub(X-ijuw9Y? zcd0wGjl9}(U>Vm-eVeb(vW~=jV60TzE1%JOxYB%uwd3+ydB=zYtQec`Bv*0c1OG<& ztJRhGRmjFOH^ZelRs*Rz*%sHmr{VkTdN=&Q6Yk#%XGA!czg)@m*B*;)Wr|zX@~bdm zl|DIG?AwU-4J1VEJmw@Lbq_oU`$PYDPqN(1Zjv6!N*eI3Q$tETTY*ZJ(6@R~D57=C zDO@<<&d)2elQ~DouwlaadDBboQB~-UWgYbwV1YJTx;KMNHi~HtXxw8cjG0Z}`C$q7 znBWK%!$x4y6^_pvhI04DnQ1tuT)Tr#y&fgB2w+A)-=2`xH2mf?zU#l9*vIJ~RcbGeCwi$b8M!4~b#T;*LuaV8>AG*91o;vlA|>S9%9D5O~mnUX+R% z6;NO{>PEfK-;Hek?92PK$lnx9C|qwIT|o-cb-Z2S zSh+e&hpsM@0($Q%;eHN*J_zY>7T=U@0y-Eq`s~G&Cp4|Wgy*Y93niHU7(0=IcKD zm&HL5qq0gh_dJ5@4yRtBB8-j^EG(;X>}1#3oY{)40v|rQKFv(U1q1dY1xLh#ZI_1E zbb$hkZUoDNJQdAln8U3ft4y5y_|^~0{;tuEO4cODZ7whQiUV?{FV9C1qp`Jc)W-Am z*buhdvx<}*y8nP!zOi;-!+cnsEr|!eMrQUJiM1)j)sDCr5nbijSF%3 z5Z(xbZBY5~91-AhG`8%KA+3P;+;!q#HIOQ*rH7dP^)w}dDfm8-5R)z80+3IY51}!n zL{kY`%y%u9g+=9VJt3V|&UgKx+e-qT=4h4UC1$AY3Euv;y!K@p(HlHGRoY?KQR8Wc zQ7!Dfcl+q*d%||E1o)(>rS7<_-`kBpZt!U!o^-6yyJS$FpE&Ca?UjT+a(xO@RP6O- z^CPbMAPu*N5AVvdQGSEXU!sc2uFjJiIX=FT$l5>A%yzsIU@si-Es5(TsGds*Q@cd{tUY6Kf|MkT6_4*dAU}vaicn1{6@63BIoid;j)jT4IS3w_$8gj*=G^r#TYA&#STf7;* z))fjZgy0$V5ruTbK;&5t5tuN-lB11C3KGnWz(cVHM9PeX)zf@q95W!ooOG zI6#jduJk;1Ep?5W?ZADH=Bd2XWh;&DH=k+h03oM6gEXqLbVxPT!`d_|9LxF+d~w=X z?t7(k9yLJtD>fGjX(f=Ija6-;jRfLlO|of^)T=_wi~DX-#6m)vY5@Ty!gyrb=KCqD zx?owZgI#-PQsc|UsfVm(8;8$p3fNg%5Q|R=y7=fi&@^o%7kt)pHF@04^EYw`WSQp4 zcHXfEw1o1|1k13%6sCFtWiixYbRs=dG_w`KtqZV{8x4~ks^eBs&vn>wCCjh@+GaK@ z&Oq0Q-@jWSF_yDap_rT_ld=mB4iTRw*OA(rGRa24 z|5ye_WhjZxo!(iVan5u~9~T6rm!Ldog+q^=k%ag;kY~g{BR7=?JLsMi*cm~s6nSNJ ztkUc_G6^xXVccOB{mLbcdLycl$AS!R_*JT*?taV8lfhNL!96$5vfO_yX{Xz{UIW%^uozHj< zj)0_Trpvtsk8UBAtY{B)2J-95xgXWVQ9AboZ`JcU%Jg~8eQM#3k3RD8^PjdcSYV*J zATn;F@g54vx`xtoT_kXon6cThv+h7XG5qwbLS%x)70Npku6DF<-z3M463Rbss_hFx z>TfKEbItHA9cWsKE~8b7es&(2Kb4qZ^l?V0%qwYeAr5_5oCmSlcKH6P`=Ap&lEYlP zw0+|s3A$BLZD4gnV4JZ_1K&3soTuSF)H$lV6cG3a_&_$LLKLy9lvv1=%^1m!^3nxxS8KrL}3gc zk9(A&YqcP}l)A>5>Fj)|LZyo@t&^_9u?-Mvno)~+nbwyO!6fHHOA|FBf?Xo%AMU^-E#H<9K?xRK@ z#2p6bF~F{Jzn%IXwIf)E8@Eo=ecOEfN$?2~4)29lT~x*|NP`GD%&3$}3hi^nx@h&o zOU`-bcAgmhxRIxNrr#F`S#i0B4CGTLEkLB=^-A!`+q4T#E0KzaYUb*SfOjz%?IzqJ?c^Z^VvX&@Nb(QIy zqm~V1R9Xzt0!D!#3z{{AUtK*BqUI`95+BA2m_;NIK>qq!a_S(3a~=C zb9HeVa$=?};HPuEZl_EW)xl8pMv6w1Ztz)icW2*d%02Ef*QnLjs&m=Wk(27XlcCj{ zGRyh4CAa1lc$R{G6Z)G`$*ShIh={rc`J)e$JzrGCc1teNis{2^`3DPA!BCNLi-+^m zn-Es}t+ll|eMAREY+2PRM*|wRFk_MOP(j@iXa5ky)_8fCKSGJp!Z=cwc44b>*FBi0 z^qG5w&>TR@y{Of-HeRxzzfPuDO)CVZsis^Gzw&N7bpA!rZabek;B*NT!QB96*v^6J zPDFBAdxH()f-T!3r1_JJZ`B+>I5>%Ro!EEwsC8Q*w-^yqg}H?PAiHqz*l7;kw$E_a zc>~ZpzEiYBqTb1w+mDjDnke!rP0(k(#34cTOEb+vC0~O z3e&*kH3HPqM0yRu8r-s4qBwjTe1P#~F1+f&$!8ut3-NA?&Am^CMw)Q7It(e>E=J@U z(2QkO^ch>ogX__`hFyxTtI#h77XN-uE!{oIo(Mca2M|c!b0__F<}JOyLFmUxmsGF8 zAF>&iV%>&c8-W+!=K87bJ}y~OZaPZ1WN>$;Y*uBpv8V3K8|I5`!emzt zj*BSY&aWL zXSe+8KK|p+EdO!Hj&PI=U*{vnQ(LN2-k!a4BeGzy!blmu=TBX z0IMm@Q3798Bm9L0>>~=D1YX}cEBI#@&wpy)pK{3=K$2g*qG}${L*2A!eVL$6-2T7I z5dNzTm5XbP_K#@rAK&on&&2f~kNE6QtHobeJXQD;|NZNV|DRv+k;eN!wTCx5n?%jQ z(#_9_)5NS|K|l*K4Gilng77+TT%3#AJy!C zb+p|fE2JJXFzYRR_3G)BKc5WoPKMX(>dL*KHjYWLueZZi@oUdtQzEB+$>ZLAujua` zuf{HUuq^kn0Gp@5?YkxILLO4)(8NUEf&|lvMaL85ebz1)W#g>U}&E293cF)pyGbQ!hmZ_I?vSYkG z{H0|{aHkemjbUvHN*E`UVy5Z2_OW8%$9;|Y#cuTYJ*ecBX_{I8A%n>d)`2;~dV8dE zzsFU{2LZSdS&0FsX6pj!qqPtzIr%mT{Ox~PjY+0P(~JA9yi4tMN>?yn-awfSw<+u0 zf-t=p@eUbk==9C6?wwv%=(pX(OBzWXFIH=BkGaTQm;z07m2$7V4cjWA6qab79h~># zNYx9VxU{0+)kFomT)n{hzDnwWjR)Bde0#ZIRxmL5P{2h-C^7EEC#vK% zU>qC{NhNLl3y2!DWaT9>mHr%OrJJ+KnJmQ4j?S3LZtVQN)*ZO<^GBxN+v9bD30P1> zfeo_*X_+m*hl^dgV0UDl#92nI3GLb>RU%z~uy0F{ups1NPTY{&=m&WwbDZ7+`gcW~ zr&C)X9<>r?B>n|991xFFWCw(2qSY23Kzg1!Jo;CJ7bx`OLYWP47RhCIF3crV0I%+5 z;mw)rCH4n}aM&4aT9vyj3*@8J%6V?;`(rh@s!ZWSeuY9^eT#vkvDdCM;> z6E2r08h&=&+xub=@ys>zY0XmWR1Hs@(XzYyZjOPoglx(+vOwMSwOq~`?a^-5LLVFY-q0{3_*1G7)|LWyu5JzdNEs-?@4TSEd@vYB#*f}(s4rsc zv3>A~Z2NP?w5dF$E&YRxs|+=r)J_(DMyEFGs=*0rQFXR6SgW?sPcD+5E+q&@Qlu|m z(nEBq)=ueZ#@YD6Sl^{i?w_y5Kw`Y7#>%mMAk*WzQAWI+qUq;|1&>Y$Es6V{_HuH1 zrP*GToA~2QY2kBxT>nc^6^kWVrWBgnG(`vPc4atU`oL?23UD@RyELzs;76navkjYP zb*|wkaj#a_C7^C?)q;Ew#h_EdnW?L*-Cj@`4Xo)>c`rl9!7Q-pKw#hnn(9q- z9)HnZPcWorH5NUn-PEEa9ym(`pFTX_Khpy8vJ``h|Emsi#{2yi2YrE=aP`u&sjj+aYYeKTk(g(l2W8BLaf5_-tGe5JxLYckcU0NHcJ;Cp~cjz1xwTTerKk zfReISd7_OvP_OwFbMG{S;IoD<(|O}u3*q@W3`79zLf_A7!YR6MXXkkIna(=<=+Ns9 z!8pzahn5nC@<&o;R6dfa4=;bgHZ2KBNE}OHM*U6A<}|WV$Y-<@)yq{^bW>ByLJxHQ zB{-sZz4DT^w~J0IBB8)$*3Zp!ilL^yx$u6(D&SLsuw*J}p$_xCk?%I5n1wM;SiG zzsRBtz|4C3-!^XU3@zJ@`>lB}loT2BHV_};e+fzrlhLR;e0e%dIIP7C1>|@;eRL5O zK+>;V(0K!tcZ2^ydeJ#sj%~=8Nq+fjNkEPQ=!}jB8cAsuU{K{aMtz)wz8QhErGQUq zIe3y(2J^s=MGYAlAy|nz(j#uJeZP4|C|%cqemS^&eFt|abd%XVP{dfYVDsQUS62Zy zrC?TIS7SLGOYZ5S+&GR{c+ehNG5UtN*;5KVMS)lZ#4h2z7-k!2ALY?~jUN(*8knW= zKKA!VBOxTXwB6VAwHp275b2uBIq(p(vS-6bmr$gDdH_-KwEJ^~W{x^vYJ0>$-YjDP z2Z09JygVIE3_mFXlByoX*x4}9n5!HdKU86p&ZO(?>Rh1C$Iu0zo_j_Coc7m&!_e9a zq~rT*@F+z(3M0jwlh%PoSwq+EsGpvz<8huCGQnrG-wvkwWUQ-d_|uk}9qkz8?jp+` zxNv^6ktT?kKe5y;ODyol--VsV4GIBeRjSzd3U_|2xbD<0?{|Hm6b?vK-TB#UeFy3F zGj|U(yNO@{c2Wz2+O#Hl$2H{uyTengy{R*HlD*UOQX-iQyx7 za$ZM8Abch}wjVu4=N+KI4Ww_nGlI{m34VP3#1PZ$&>YdvHR*@0^)D&#HBM>~*Q@ui zmfpH@O1)Xhq#Kak4!K&||B2JL{t5>iF|z5)cl^JOl|X1d?&}KlG`C+C7I(olt%J{91gt-`vu7@6liKeZ z(T{M_)Y;5(PxthNrDU7=Y`hu1IJYM&`ErtLc(k^0w8OZb#9yM9vGOv2*PweEuEW#N zM<$Aix{#YC5q5E^gPVeozwUwSJ!t0d4xe~g+?j8rYjv*O$P=w{mID+6uTEkaO6*zI zd-la6=A}EPmI`Pjmj@PwHMxvMers78Npni8`lmiQK%stJ13I>O2)OuZ$iZ2r)Th0LG$LkE)CM7Qj)o|yF(-jOfIMmK*xi~-|QobX3F*Z zjDtTzz)KI>1zFKyy!N{WMf;%^4CPBwWaUg0Z3d{JW^I8uKpiS;0I{;Nmd+9#3_TRB zD(gJ@wD3Z1J8|WOuXzkfdS)OL^~5)S@xV>yd%LjmY&2;w3utrB9F_%be)a0+3(El| z6>Sqg=x{23250&D_raEjP&5ZxrBSI2@+OcPLioLO$|} zbE?ZVlyGj{0J>eVjq&N`H%e$wM*#Q%pe_^qN&!_AiHp|B+Q=sLt)bLIbO6#6ao_YK ziA}*r4b4NHNU@HJZ}mmTH>(sxvjLI)5$XvDE$D%gmi3}|K@yBqC@8|W{wRqkgJKOq zevAd3VLHyzm0!-~o(~IEKT^wQ9Hu@nsqIxv1|*^es$H90jg3E_zgej;mjc@#O_vCM zFVo@l+f0j9sY&)qW#D5*PaWSh6F3#q8=;^)n+ozT!G zkSwXeT)ld-@>LNledFD|z7$ue7 zCreh{D8{9jKmVuc8mVBi9oJrM~c$7rbd7f1mTKG19`;$F=k??jO(kyi6n>d^}-!bk+g;lM-F)R!-MYbEd>$wV1k_U5AgvC4r^_ysPq?E{VR7=8XUYq zX>InL&zJBPBKWwS21@Kf@Mp^oUg3O@HaK8%`l3pQgRaKJh%@+95Kt3|Bkod|9koRU z^%jcO-cRAtHT~}Tt0J$X_v`5lL}h}BgthQ@JW>*iIu6WFo6}QZZzbrS)p)}A@owI& z2nUiKqK%yAmX(rZa?dFzo#SP8lG3#y7a~K zJitOk7&h4>3Yt5zkB{1?mM0=)O5L*O8Kq> z=T_6B4q0_2vH69Ewbm5@zRBr`3y&XRV(f!PI~H!A(z;XR#l=tTp=9><)m{ca-0xZW zvJ_(9^))nECtcZR-vyEzHg6w{Xdvqxk;vg~KIhy%9lI#u=xeSD^bo(=wBVqb{-!%J zVBO99VJx5MY?%3^rW%sOW3X985AO?n8e#UnPiS%kY z>R~}!n0X^YySIkm&990jb1V)n$s~{XYz)Q5!SrfMAww9)_kvGkgsIM9yWUD$19<>a zRJaeYIwpqa?Wg6sPw|_B_dwX+s`SX26c_;CskAqJGyJ+!E}3F;M^4W{Gy{;uz$1DK zW&xPi{zkJsyH?P|H{d0y~-4WTc3I2TEfz?U9 zPe=V)cLhO!5_`Q-L~r!CL&X;^;mbzZP67g@fO3=g*J_l)fA zFGkED{aO~M8m@xUXmtHLILYJy#s#n-sk53Rmt7~IyE6&Vo06#); znB3m=1&Vx8fq72VY9!HU<@epFedyCxtZ2e5O0xK?Hr9qFr8F{l%yGqH_@ij4WFzg(WgF)b6JF82X}5xp=SnaK4+r;1p}F{;(Mp z0e}f`iQ2uBG4FG^x)jDX{YQFP%Rl>BIF;vh23GpZ)0~SO4|FECFv(sVE`IQcJGA}l z*RUs$a2W3f{kySQN3fLRR+F5t2w^17+Dqc>E2Q4o%e z1(pJeR&zC0ox>D7qoHK<@^o-`pfazcj^~k7OQ88l8()-K-^^GPXZbF)^S}i4wn&8X zu1|JU{!WRFj@9(V-Ou(vbwA#egAxKFp{O8@h;&O1LrAHV(lLNYDV;;N(lAQH05d}kHO!C$4Dp=)ulstg z%lm!5ydU1Rh_%kxd!KtB`8$q%Y$VG1l#~lDV7FLxTHUbSd${pm+qGV6PVpUrJ!&ad zet<&5e^4gB3vZ$YopqnSP~E&Q94t+;Ym9pTc1mg3bt=xVBPqA^-J;iqoMA6Cjb`y( zxPI2Ev3^*e5LHpg^MV*#n+!omt@K)+-yyS#q2mywW6iyc?Ph)3kXfrWMip~To@T~! zc*ni?h-B+G(2t#`pI6VKX)kCLfnN0Lcp2@(CuFR@wJEv0TV(3W34ek1DmSHy2X-`! z_UPa@BrAlpE{xDMO}DD7zdKEo4HFicTd00iKU$4~iWQeA7JlFL-M@$`XS-A$)3Wa_ z4wa@JVaG>SG8&gg9dn$VKFo->`Hm>qQiJu44^81OmEf$Wr(B3>eL_>*mu0`6Qgu$M z1>JslaraX%*79NUpX?tplnG1kDe~hRbBpUr!360<;(F&LCDUor;7Kma@()^vB(xH> z6h_Y-xj;SF^Qi6Gi+DM+!`n&vJ*=fSmnb%T-9JN8=iT$3SI@pNy7yg|qS&ED;ov1( zxv;bClkk+6KI1#n=SgqbXd$-h6uK0fKuQsWH&49v?!_RId5gJ@-0X(!BQ$oI;{+MR zdW5-bHtDXd5gfWzV&zq#SD0Mj(LeaOAUS{Gk*EInrtNSMEoV0JVWe=o*ST}S-GRP* zqW4+Fv(a_TH?ZS(N}+RD*HhWRhj(~(p1S4B+U=8nbKI}~-q+K8Nx9eovee|yRiG3k z%|z6z(ckz@7+=_)7CS%qRJQ1Z*cr~)n~saQ#W^{7ykCw6r<(YLpnO3 ziha>EJSu8NcK5S?mSSDSKmgAvKJ60Y^DyP$6&tx!Ny*Tzx=P_C00Lk!`_$R!&m|l* zK1>to#kCo5RE%dT=^{Qs@1(1G%AB3a0lXi$V@h_eRBJh49d)l6x?{i{~M3OC$XoScqgT90?)?Qu!zi$;H6vXuiM%&{i2XHvxN<7)xQ zR_r;JZdx$FmawhZ{U-6TnnR-IqAx^CzFYuS>Atv`ELhGrD-1Vy^QLODe(C{U4HpS43b51tfH`B>e9=icaXpMdQi&6ac>~Bqz$9+A({?{!`}9LWY+iraPYzQ4~z?=%RyDi%s|L_iOuij{H51FaEsv? z&IsnuDV-M*M$%+EyS1!Mg6oof@Y&(8E!Xt9P5{vbdV@M#_>V%qsoH@@xiYiKHPQul zCuEbVcbroxSN-pk>0^5_M{i#<(qJ6blgyKxt`(nm%52OcmsBkn}@`ObWWAb&*QIpUjLw7I(Q9<++VJ^b;2n6>6C@##$z3iDAAAlqc)DR7;suhTtf?by5SzAA_my9v4ciqWdt{ zSENl)RfWN8`r9vBo@*!-Q^)ebKBBYh+D{mP{kB{ZFG>7vQ0qlriz>akbx7T-t#fh! z81|$M%UbicgIT|uCV$8?0)V~>WP`K;C*-_PdK)c%U**9}YlH_+SABc(7gsTr2D%~7 z(XCp#9tz#9*7eooMLT8{Lm% z_h@qW-cA0pDBDzDk6C&rl;Yjy7AGKtL=FV{jOk+zJjaW5{=DgTW!#V}8wtA|4Fp}`pGn()AXj4Ao0fq4B!?u$Qm z^7r3J8xD2Kiyor}?CcWXaUrvduz{r>;%iR?l#w%aK3zafom+Q(|>$?lJUScFjZ zfXC@uq*Iw+%Lhjb*GqssKv~C`0WYy<$vog7QNCP8$X2i=B8f`wJ=9Bgtd-w(Sv8o} zYcSrPHtRWLpm<%qD>zpFf{NM5BMRXaTJCe z(5|0)()e;Zlb43L#qQ~$xfieJ?O(G7$;!o@-pN~hZ%jzp$`~s3G_HR;(CBKD^83Ra z#eWrAxb^G>o{%$B_S4w^b{n1Yw(XCj(z4&S5Bjb>DtTvr_fy77a93!!0%z0{j=FMe z?_<2H!L$I?$c2CB0$gc3f8n>FOt(3*!`%Rh)*2&6@^s@=PNl9Ni%%CRGIj^lj}+yd zy-K`Del9_)YYaUkXuG#d=AxHI@DLhvAP803v8|tV;it(1r#ESAv=-!;ln(cw`dKdH z<#8aFLLjJ}^9a}oSOlZBnJf>TrjfdI&>NoV;UpKt>`RJ&qd42jckqGagNFy-$(!qW z6m`oll%3WqAU7`{G@`Zc7u=}HhCk{Y2k#O^;4U9;eR!|A;B+xt;41%%+CzZ1a=Yre zv08`0qhp*XAJ?$ZA1RwjVeto$XSf5;X)5$b;8?uX^&Kbz3Di6R^ai#E<8^r~+;n%& zbnCP}Nhc<7i#RpsOuv;vvGk*~$QPCOR%n_(Dg)`<0l-TFPMG+XDmg_=NW;N}vi9XA z*y2tTIjQO!YQ5!;WYtH@+By<-6uxgBuwk}X&AY=hx-7PY5J9UYDM4_W>}5ZMyPsKS zJ@-W+-a4)nIA`4pS3fhKkXhBjH+T$>=X9X&$uE=@!srGQYW%h{z=|&hFsO9wsrX8+<36Qn_a5hvfxg>d8`o*&)~2dl#IjBvOP9ekH~`R7oqCLXu?IY~m>e-++~ck$%ncVoPW%*}72#pdSx$|n0sH)~+U z5ZER?cyDTW5O(kThrLh_D)URE2Z4GM?d#tHTRbG7X30~8nCqG-*QyxvdYfFGYhr?f zjgGXN8Fbd-PA^+cKuD7bKLr|fPgZA-{3)@`WHRt_$DTmya}W?v)-&v6+y4-RGxJ0> z{${-CTgz?gx zMv42-Qe0IwM#$#X77X_kSuX#^>1y%TMc!E5zA|u~;~?rJeUVEA>G!6*!kc!$t4c50 zA?LFP9M5w(ZL0pq6u#o0?d(1Kr88mtKZ7y7}$#YVp^zotU z?a9;0qP|!@O)K2{<)J<|5klc@1^+h>Qbe|{5XQvT=#rp^_o3&SnpM&7&zao7a&%d0 zvA+TILW-Op&nd!}IRY)Up3Kf(vvf%F8rfOjYRk*ZZy(NeGA%3FUWl6UqMit}D|bgb z+t`n{lUu7kTtWD|5H2-Fm%mPJx!GJwxUMk#$kT208Dhn7^4Q1(Nf6Gl=W~+1BUFB{ zzqW4vAF8`a_C^)&1N{tXzUffQ%ihnCec5Y1t1!YPF!!+eB4e$w47UDi6Yh^4V(NTi zi7a@J%zbFPSH|(7^?Hjiy-QCj=f|&)WADDHmO8_w%&{_@D0+Hcr3|AEKYJW@x`Uo$ zIfu_fditI)1+brQV)xSr%;eS-uV2W2AO3YjP3^w=N1BR_+*iVM2N7{*l{Y`WyZZ%n z^9JeDJVJcfr?5SLtun$KCJt%tjdLNa&zq?z;U*m|q#H8RPO+PVZaol;JlcJ>z7^BL zbK6N)dLUowGYFbu*WKbmVOj;0NA{7Z$zxYOdU?WzElU0sL986d7xAJeO*#p5{2bH4 z?l4K8PP1D49F5!YQyEW|5=R=rIVALQI1k zny;p}>f~RFaHkcWOznF)m2nZdUa=Z4mQ1t2<}M`c`a|xlZ7TCM$1!<(7dSg|L|457 zY1~$+Johh4ilxrDC0Qb$cz^5swD2?GBtJP~LPoq>{b&He|MK+c!|Z;?Jt2jgH9Jx@ z-A9MWjc<-?r&*lFlf(V#x;tXe^J6O}66eIqHSSAf5LZV8`@A?5yqvmDLdO}ty12v< z5K2lsqOKa$u)X>!zmj29asGsjmlpDk=LWZUmw|)8^f@n^5uE}hSn{?8E*Qk`Dku&z zBFnI|GgoX8nx;uYTJg93{5*vzjM2C1_J*bqwtbL~mv3U-eMKr`7kfJD1!k`k*3|~K z>=#u%alb#v516+I?ux}p-XhC!O%pj0r5->1&@|XuCEzsrShtAUqOO*%1Oh80`;R)KMXXQf{Y^67Jvo-m)N>C8L9%h&`UcMD)@gzluz_BMcC zo9|iPMUPPvyA5L8)(S+-vJgS~;0hvdn70)uXXS0(R76Nncf;pFz;ycAH`(t^6mM_g zn=VjXgK}%lNRu^)?CEbgYj4zJjv~yFT;D~uZu>~>>?1lihQ5FFSUg(f8)hS#3>6wH z@TFL^<-coEHcEo|Rr51bqFv}W9Oa1td9c9=7`37i!%)cgWi&;8diR#HrnAoF4X;|w zgWFd__?Bfq*fhnhm4rrlBdg9}45gcdaY6Q@Tx`Gz&gN@O3-2M zIMh#{TlPxthjwA4X@_krRnKA23z+*J++iyIYI2!tOts+lOQE#H@bf34)d7evvCIk;uuP=l z?4b17T>JS+X>6T&WrDR(snxa*%>8sU7o3Ef_^~b7AP^bydbTi$m+&)-xM}&EF>cm7 z`5!Wizr|O4R>{M%NzDG9bGfQe+ECSt3q3M$)j9R{lf&VXy$urIF5kmZmDCYEHXPDX zh54=jg@9Mapfp8Oq>o#zBCX*q(x%A7c8Y?$Y+;H+VL=X~)$Q=)*P6%s zN%-!fz1<`YwCV?VvH0!RS;G?t6%Z10#rDS!Jq1``0qPMpv8BP%x4Wf3DZ6+%NA=Ir z|KfaK>ztEzT_sp4lTKGFB68F|Cj4~g`EuXEde%oz6%dQ%7oP%w-VouT;0?wO-olsw z|8IPk#HqT#e(Ic&Rx?=l3~djeyv;^r>Az{_hls5AVcqSbQ!-J zapvb-kO&)AWGfD5zhodC;fCMbesXp?Uo;oe^xJK-Ibc{R?=IG}*yrs|Oi-k=sI_V0 zE*<=Y%+~A?_O!upt6v7Gxk}kDRpUhm9xs$=rZ~YTH<>p*Dsm(iJd`k0b35=u~VbT=GM_y?ZeH<($$RF2dlY2I>aXO;)1)@f+X=~dNc-u@q1 z$akCJ8e3V&)0R!8`$2Rn>6zsnRm8qbji)10vR&U<_gg)22jvUiqb%PI(6-}*XkBgw zKLxec{zMgFb1sOFkCEP8+xBUVSJM;{Cfx;}v^2I}lPXNSpg4Eke7E_7+e693<<4@c zuJvSkXuzVcufF?Ou}llPtzjOxGi|mC!?tzOmGc_ zv|)oeu-tgRr?;UZv2%6lLos2eWtDNtnrC1`5S;YHlJ*37$!LQ5=t}Ankd3UB>GuWq zde|NEJ8|EGg&))9oHR0TrqJ0w3vc(eII9#VHv-CgOumVjm}2wkjF|XU0=|Daz|w;` zXmW$*$J%o|Oik1C{Hkx&WtVB$3Y*AvUN$sab*DRIS>^EOirc)y=HoyiTn78fsjH%s z6V}s9bw=5B{&M7<tUWND=>URD_D#@ zNyc_opA4RFZ(lZug`m|P1_;p3Ex{3vZ8vl6{RXDa$``ER$iYaYGYylGlMCHIYZ1E; z^g3&C;Y!!Oe0<1jt&#WBg=7uCeC|r8UqerYqm|=xIl51eAUXj{u4sx-zww6I?X&IN zd8dZgPlcG+KP%a>#dTR^yI8Fy)4IHz@6TnMk$r1?%%%3KtM_3H*I?$z4bV5+EsqTeFy(niP)>1zPdIj076fa zX`>1~n}A$YS#ok)!nSmcaB1j-FX*cfUj!E%tEi{J-r81)6LCpVcBTUkDk67~M;mC9Y|@z{g;5Yymn7wV4QaCNk= zqU$RH=G=rUUOv*+4#>psID$u39G={)xAgGc8)J!dEuq3rkp13u{h}DU&4ZpvcSCn* z6m~8w%p)oWs&(++$Jes8B@<6~;}9y=2gUrI9>~n`)1wvU6Mt>c6S6_RV1#({Sy3`Q ztI~Hd1%LmND`!5=$2Le)8m4?%_*;Ob2tlr{k%kJ>#C_zpsm!_F5S{fFt51}EB zX7SO;-DwP2!zbB9Vm4;IFY2M4eO!zKGr^EfVmoBR;ewF}cM1Y2on;T6a$e!NayTZM z-@LJokD97;aYex~`E4G>xAHG;<8Wn5G}@QATG@+^)xfV`J|N&7?fX+N`Ga>0)HYt( zb7A8m9}g^kO0@LQ)_`hEMt<6Y;~ZaUL!v1rV7r;}tcS;1EP-E!-;JDfAX{7b@}F1L z+>p0IUt?l$n-0}csI1J4@ydLx)1ZE;GtfEir0#bmHdFfW{^mr)5?xfnz_F6jyqA$^ zlDaH(Khn&pEbfnO<&9i8`<8Z;%NV=0c2?WRuSl0ZbNUuK1gXhGG+t61bP+6f2HVfL z3&2&U_Yf2rK9TOoxA(aXv*cqtXZMJ%TlZZ`6V&rBUh$UlQBK*jxiu{NFPl967M9^v zyRCU})4EE9oBI7Y01Ks0!OuOXWjdt8XmCK_x*XdU>QYoCb>FJvaX@TP# z94{HoSJqt4vZEF(2|`?9eMs?2L%tcJ4l>P>Q>v+Zu@a$=n|V?1WeDP%@ZM`H%UO@^ z`ss-7RvW+#JW^dPue_El9qB#MhFxtN&y{6-m*<)d;x&wT_;jJ7ilJYp&~-Qg*<9s`oipw9;_efpE6tH~Rg{iZ9c2YJWuM_#a|Gb&K9d z%WvwP4ec-xKbFV*!S8-}n@+H+5XfZBt?Y=l8tn5#1*kcP@jE8Q@Z?1uELyzTNt=1# zYo}X?$`h^!%UCQvD+xcbPQRID!kixVqOKk3fTBY@JcDk(y$0QTJjH7vEmY&5qGn~n zR-(CSeLl-FUw6y?8FQ~r@4x)o#%T?KXz-EhP%|Ojc){IBhC4-m-r{HC&XfA9_Mln1*c`JL`4O%Zk?!n!R*`=e485qL4Zv`mbQjJT?(0ekE@ATDicJC)%9?$Z= z&wbu(so;8orFAe_7=wjjJ%)4CAwtqmS&b7AU+xNz2=>xU&uJ7JD8ap&E(ML7xCe%5 z-fDj6Jg~~qH7)T1lM|vTh~L_@wW|}*n@?Uw6eikGFVY^=R&N9KU#i$AuQ4fD>=)>vSe5AeN~)*Kf&jdKP5^BIP1ljyh^hAW|q z>i|lU1b!Y)XRNm)DgFL^T^`+&(aDopm?0Jvxb|bwZ5f7Vj_%ey?C8d8VseX7xu+$$ zik$DzlP+Adj4twuSX^u)^;5`a|iSfK6G$K zLhL_u;OZhGZ`luG)3o5C9w+f0vFRo=xBwo8?v{nmZ-&ozg#eO}5KWO+uE0dNU)cGI z-_F$zcKiI>XG`-uYCc}8@6*;bHjTAMil{S5Y?G@&5Nc`5s^{mm1Z#f>PjK6Y@ypQ% z+6y0ZekK4BZ402K@N1n_-yhU;+~bO0TZ8z~ zb19&}J+I)sRfdwm6{SWI8?!i9_9@t-q>Kb=zj9=)ZTL$H2LP}j`+Pi2@Nx3Vl)rf; z)kN~d(V@}2>APSnF+lbifLwri1rRgmQh|4tXC=mVi~habeod*+XI?1JAGd{zvDhA_8h;p)v?XbX}^+)++39grRl((H&7Yp zy5^b0klc@doFmBFwvS7VXVq0P&NQKP<=Azl@ zVs_P00*vo-D}_|Y5ZKy!#kQ_{=PVT zj$wp|m5D7BH#gpNTl#89HLVb-rK&S8*O7@?Tb&J8*#M{0LVr&uFqi%+|;uHxZM zw+U`;P-8A%ccE(uoO#vs`DkCAD;>HI5Ke_0A~hsy7Fl*yKM#I^{C*`i2d?P4KKN?o zGafrUx6!}k9C;m^b+)=+EAbixm8$DGTHW{RTc#CyB#+e3tQT=2HYUpu%3R3eog1j` zEQu95*ga?#r@i-DC4eR$3XKg<*Oaz@HSZDt~u-c#vdDc zJ$s_!yUP;70%tPXz1=oj2`=Fk5I{-pg6qg_!CZ=`?f91DSQ*^et`IBY5|bw6XGsMd z=KbSntwqNkvlbnGW92?ul*XtLH1bl>M*XFFKR-t<&xiu7(4@j=**#+L-OW7xM{%BLP!GM(JbWgrAdVBRch+E)3B)>5zB9ho-q@WmrJ3iJ(+L2Rd&%wkxZVB${{5};yoIE$rTY+=cDfSFcx*62%u)&h@@<&8*!Px{*AZft)mCwo3MiLhuY}NJ9&A@wQ--5p2?-10YpOrQ@P*GWS~&LC$c2mz`379L_m%|$CjZNS~MzHJ{_%z%rhNj{;;br)%>z90H6v zGQd^dmg8yflj@!CLVY>4Ji`F;QwF}rGE;VM7(Lo!W#}m!18e&(f{vGHD>C=v@On2^Ke)3priQNN)R(!g^V z*g`=Bz;NHqf*ifQ5Byz9Vt)ADWdjV3pOZ=3AJ{sNl;>a&_~)O`7?<&Y-)`!rCfXMG z;Aa-0M0!N`nI-xd1gEU-NHSjqb|WXkCz2 zLOjye2=JMz8+c%_bBP_8zr#Z@nADHMBZyT%it-qA+f=bup`Qk0SU~eh`@a)HsOi%Zft;pS3-)|M@C8PoG!<_JZOfwlLq#la_V<9R({W*C)*Dg3< zGOf>+E6!L5kY-xalNG(y)~%ui_N^mJhDqho&RV@%JZi=pn4fR1F;8B6>H;8>*woKG zYZQz--KQEWux%hxS5XlR!1RiVhVfkJanA^@yUM5SD!Qi6+L2i<=!xZ0h1&0-`?Z;4 zb=`o@3SI?R*VX80yKE$5{v5B;PXE<{MD+$6KYk0PKs&41Ry9w}O+?Q4aVbUQ#IKOv zZl#&!)P|#y<5}`RcZ+L(f?W9~@>9RB7XpL+D#8vHzn42$u6v#x;o8<3or_u8&7jEe zb#o?eNuj2Bcckug1Z^x$7@eF<$hZme}eqYjfrE7sKjKY!|P%_%|_yPA_%0F~8ep^;xZlr^- z<**csF?ngh7E8=J+c|i2h8uoZ=2sQYfRMLy(c3bK)WLzX*ZFv_&LjydRHY)7rUqMt zYbsp~d7IL$udk>xTO@V?D#Lx@D=FaYUs3ntaU1#kZwbX3t=CM?3DDq(i2A~ISw>-8 zNmNgR0>Bdw288~#>ef1?%T>pmVABzmExYMLZI!#pkNmSEjmGmif$jy;F(JM?~ ziqYNu_U|VC#S1(`_sjC0?8e!e_~>QVOx-X0>-O5ujz70ON2}<2=Yl+hfY4))uf%_I zQT#2N$PiPl+*dX_ynyXVf?86CEk63|33CPNrAMp`=SDMC;NzvA;np%&{|7AppU0{O z{&cbpjN!sv;b{EFmq*qLtpDqg9^jEHlVhA1<>DC<-??|BJ7298Zv3x@?)sEa+@R^s z9_Hu)ex)b6e%)ZesM{S)ELCzw{Pkg4Je?7y|MhnFqbIbcEg()==6QX|iQGR+CZTr8 zotFj3=_n-aijrYK`{pW@5M~>9<#1o@972w*42utt(UF!H-_7*AG zWZCm{v;q;t4KxMY4XKIHKW`pz{yjoLJ&voLaERv%-@O|A z=a86Hq;XR}6-0pj{35Qj=aurX z>AY!BCgjhgFrSeN{%6=DcCwx+S$BU4uwjoavOPWc}>JVWvKH`WNaZk@KEB@k~0V!eG4JC&T_Kz}uptnIhG z|1&<|67VA?`icKPgZSqzP3T|K`R6%%=D$AepI5sqZy5fs)>to*{pHXAw?{;n|C)c- zv8&p;OzJ%@?0??%jBc{nun3y!Z!Ub6cdHny1Zl zx7!L!8gj#W`_{NyZZwo#;c1%e&!s#ok^jGmVk!23%4N3Ry~g6{ zzgF|l-|ioYdkJ9_fFGWi*--6SLN>tpE*YfHaajekiPxPr%waYVncI zq4F47TN6!I@xMRm`EqAuVOY9I9jxk>x5_qH~h}9#naVTFHJ%A}tgVRnQS~Tc0uf9eb)diEC*D zTS`02a~|;tA+9XaN#O`-!^la&-jD^T+iY79|M4Ke~Ko-TQPip(Q14*rX#W- zVr}fk!u(2+bIwqWvb_95Z+78iEC8cOb!66xG|`vMC{5(Dq#_(tzxexK7!-V$#4=-% zd&T$pO{YVozugvli)d`EiBHFeBmg}TZ0h!x0M}{W3UH352}tW?KU`LrDkt%->7tYB zRP_4A8hJ4st*|%p^zitx(c~q%3EQAq95hh@sW<^ro@GvtkMckzZsSAx^gmN6XHb;~ zF-q0#w+-hwQE6EZ|HT6%Q9sLQjU*}S-b|uuyHPFhxc$4AFc$KvyS!lslaE7YQ<7Eu zZbrOCC^0@VnF!I|o$ESBAkaA&6i(Yxmpj0_ zZ8PY_q6a$Ys?{ub9o5P3DLtpw}LkuR6czdR(~Q>C^uUMdBeS=(OFuLD+)!r>RdYVzt;P;sVUKOtiJCuN$D81 zf9Fi1oKD93OhthfXLk8qD@?e$Me)K4QwLC`>4}X9H`ltn%Kbf@JjzvaE!367hn>WL z3dOd8@-ab=GvE(CxZM{`Txu^k5ZSVDqNPcPq(SL0I@E|a50#cy?(4`a{00S;g@BJi z*-BoZCEL}0;;2-;uQRfI4#+VwxQDLUuBgA|w2|)ZThCpB$%z;o@a9lGpTEduba|H& zebR^jDE6(Ns%Ii}A73np_SM3`%Bur^CFy# z*TaKc?L)yE=qkZ9IExvra40`x*qXEgn@X&PVf*y8PK-$s)wZVHEyexm!3|mNN=3SR zmuU(GMSXJ^wq`E|OyF&BLUT@vN6AjVvFNdty?Q`xJ*1bywJUW36L1rD}U?y@(&MD{NgGiLeI@zK+PQH zjHE8Omn@wgYnv9-DZ}AfM{{k;#UcvBMG@sCp>0lFX@p<-0<5fbL9)VOyiM2XNqaPs z!`pFm(%u$Ax}Y0AAJo2xT*-2Z3de8iC#tE|A2IE!+!uK+arIrInN(eevQH=9qUwE* z7u?Oi;{E1q@1))Nw1Nw5N( zqJxw6>xcNUEkYn?Hia-eG$kbxLV&HIRGfYudum+6=>qMh}E1+(RR( zRc^FudvQV)IL!@NNSl1}FEgL>U+Il`h#Ft!uE=(H^8n;YIy<3p-|x)>8QVeZZ+*FH zV2(=O!Ary09K_0bo~uicw=}UnZBpxH|0dXfIcLX^U`G^;iCEkZekEi3YKk%L;0m6- z%qdg3aH#`R*kz@75O*5YwFuDs76TbVSvz;`+>B928L2rlbt%P#)z{M7|AAP2`kIVT zZ^(IC{0SlY9Xh76kjwR*g|jY{Ox)}?$ur(p{wCtl)rB1{R9ay2zf3@^qf(oNSTqBLxM zu#hH9Q^yr}PM`dG58gKRZ5Ab`pyQ*BsZDCYpY^%z4sUf79P7#)ZZEZAm^xy#JNJG% zs;c7k0SU5mWCdX}LAUx(jd0Eg7c#VqD;jGGBUn|E0Iyv9LTgse=N-J7B@-$RQN=|v z_nVffl-4@?Imlv)PO0tA(aG%1!_7UBQ#GCdS5?Atb%P>On&r&aA+@!THn8#XL`@ie zb^02rk7Dl`rBRFoA);8X5;b`dyp6Y?8k(9GAb@pUu&~lkigQrg^QQ&IT zU{6)Hlh-^76QEL2qi5u}%&Rj`kwzCCufYj#SHyY&Yj!?~3QQ3o-WStejscW&4$UE* z2|69CKYF2>3iYnf?Xf!OkNG@NK$?iD^m$4;8=BPomyn-5f_idg+l7@>1Kp7@m+Q2xM4L*vIBSeyaMT)V{N#no5-f{NNEt0r6mQMR!$LT%J#P z6GL*o&Qp`+P=Qbx;r!c-CB~Os(gb0nEHp2hxwu9avRbKA1wify2+@|NE0XzIObLhe z&Af7(_ndR}3UXvSsZ*MrfB?bdg_hznAB2OHvvZ_R8K}+(xAWKI8>`HM@gMelIVkK0P;p&t;_i*aoDs#@mDcNxRXQ0>$9D#~*On{HS4Rgaq zNY&f1vYTDdNbDfnUz>cMNs(=GO(nwYMQuBf<+khR=5(>S;ARc0^ug3hVJsbv31!Bw za-)8rTdKa0v&gwC5Ub4#$}Ds@IAO=$0ELWaZWyDuL08`nFS>@)xY@n5^#ufgkw zZja9)8Y?#({QzPSF1d`J7mAYz^Md%d(LYiwY6kC$h8?*g84fxO4a3^O>qHr;D{hc7 zmI)hBXP~z~Xi@4XYG}aHtN)H$t`J7a>(1mm<4c z(*@uz+QV6@J`4;NS#jbygb$VFP9#Qbw}h4qi5kuDJX1EBRtRETX-6b?RV8|r*hMsL zpps9!Y>&Goa6Fm53hct!CZp%g;E%2GuCCuG5#=(xVQWChe{EKiiz?<5{4o{LLY4Q# zog_OvuVsQnxZ(d|Lx2$_OzE0I-wKQuu>s_v4js_1lgbp804FI^q3YF0aOLuik$sI4 zZ#xaIJ?MA;V2RK?-kI65niT>_v;POt=&4whwdQ`Ib55nl7xVz~4ym!t6B)rF*uA*U z?GKD2Y~Fh=*vDQ6z0jhy_y~4WT7t}n zFQ#*#F7le`BTT&|m(-PosyE3quWU5`|A?Sir#BhFt+R)`3N;T;~_yqDxc zO;Wc-`QR9k=I0G`hA?ar#el%dClLdU0C+!l?q6OQrMo@(c${9`9lP!bD&0YME6S&O+lK%FA~H| z*B*br7(9grauEu<)#=ZW%lsM07VH=bA_^HLfX*|;a|pWtrE`l1BV*i}UQyTEdD-O( z!ovqJU5INB;L0vEAwNG~{csB??_91EMCA{{Hpkscx1?L=v75sL{?3AyX?ju-DcCwE zn?V7dZ|ojp*XA4P`%kwb2CX@Y?2kkgf4>bFI+({cnXSvAhZ{xaCfz4k2iP@B)-)q} z21cEzK&7Q-9mp~`2nFO3cmGC+ZL;-5Yu`ycYY^XM#_8G1DY=nwk06~`ObtA(ZS6WP z`u6+~Ina!|;bqI-nsWFU_YK<;i|#)-sxJ5Rom9$VyF64ueAl4vHuUuuzNMOMzWS=r zOXd1E>rQfCsaqAqA0z9@%1YP3fm+~}){jm9g_ey(Y26|ly0V98~m&tk70(vvV6GZVKNG-tdM}RHRDR+ z?iv%SZWjP*PW+Xe>_a2j(AyF8py9Xk1IfP?f(jz^#UW+FcYucalJu{KM{b}Og~Q-J zB?9*%vWIDM&U#qUo{rrv0`U)rlst|?|I3^DD#FX6G%NW-#LE8bgKEhMA9j@?$?BNZB(SEO0fT}!~%A41VS86F-KO<<5%J(i5eEBq-m86OMV%Q zIJQgBnY=%n{q73or!u>Uglw9Q{UK)&KIO19Wn~T*Bhorfde$6`d+qB-;!RJ*r){69 zKDZv($}-=2)05dpq_khP*5X0^mmC2~cwIX&3mzB+%TtX1D|G$LpgUE1hx9#d`1KxWrubZA`Jqlo9# z`Jy)RhWnl+$$8{bK>oPAzR!dTSV1C?)8qnNO4a6-6Qt!F_Tz%Z)($#Y z8BdMoxuvxoPO(ZL09IZUoOY2L3J$OVS=-91rN!(P#y_po(b2FwXsr`EZ8k%np1u3k z^*o6xWr$7?&NhRZ~Mc&&}w$a^zI|}+zoLFpkjd5^*~8w z@}|1FuBNPk*)je#^}fHr3}QUR)s6<9{zhrXgT1+Fx7{;*pM6UTj`Dt{d6M6e>LV+U zz|_|AR>Cd<(KY$~C~fkI+{em@pBU8NiWcr6TLUY-4FmPZvMgS#A0lA(b$ari^G zC3PVCSOx5DW^31NW}Rw0Gx;~@Y~e8u!`I%TWYW=5hF`I9^RThw!%h#^w=!%!Cf@{v zV_g95y9fo~s-%`-gEvOQw76WUEi9gYR;oDK@$l8LImhvu0EW!{yY0mT8aOX-qm$#I zoFJD{7D&~?B%yiyRFgRJHr3=hX>ztNcg@%N=4(K9W>%XWYx8T82S0&?wt=fO`Ty*! z8KmiVWu^-iBkNZo;@KWOByew%poa-vFv-75mpsMd~f`RG{W?R4vJ4R#*$ujf8sbh-lX+;W@h62H!8h2|DtW?=+#r@*0@CEj7 zn$S3JV8=~*=`KdouSc!^&6NOG+GjCOZUk18X+tw&Stug&WTn-4@L5_`{(j;D&g(&$ zfO)U+e~5d_uqeCtU6}5altxrKq#FSNl@b8~X^@f{x&}~EkWjiqO6ks_5u{U)oEa&p znE`~M**DKGp2xla@3(g!+haa(9N^sRUh7&{oacG1f;aI95Xd`Cey!npme_$#AgpDmPVNm8mJ5wo5e3m8Z1kMnAdDEm(PQu=2e-|h9 zs9x{yag20Ieg#G%vkakaj=heox|nq1H;~jcJWST`8GVMlTI)V){=RQD3z;DC;(a`m z2k-K1R9u9)=2JEICT3SXqza^O>s<^MQxxtVd_O|fPEqJxc02j53V+`D2Dt*3Bwz>d za!QHYlQgJJmHepV8r65$heW*|RoY<<<}xmzMZ3J9TFQ3bMHQrOM;&1@exswzOChVf@P?AHLOfjY!s_?O(kZFINBR#h?h0%fpcuk_ziy-Tz%N6D}pxKCmyw zu?|f<3<$0itiRj4^&uNr{WM*I+)S2Ya=y3O%&6}T1&0g0`vcB^L>2@=zY7147Qp3f z{i0e9SrN+245z<9=}B@?&Rov6zO6V^*6j(-W#bFbW-fOal)c`x3-eI2W0F6|Dt98h zb{;KEoNW81H1&BwUBKqUKLW4O;difRAE;c?uOj*iN(LBUp}YZ+;_UUZ9UizQ(h_03 zox*i!*}Z)V**0#?JUUqA0)?+k0Z%3X6zHN)GC*xsg=sm{G@sAUAgsraxTlW3cNd!y?Q%6HDiIh${ zOUC++FI+RmMYD5|?e+1_HJ>Htx0zyJ$r}{DT*l&*7pbm!yigY7&n7W-IK=ulSK|Ni zfb7$PwO7N*ax?bIb5i`&FqEYSr|djV@FM2*XTrVmblL9&oU+)Pns4Uxd&;rCy$|aj z26oCpMW6%`7C1LWMkm61IHz~DAk1{mR! zI`(Y1zQt0ao~n0H=Q;!!bn9UhMmkyqNAi~2578Cb52@(=&Qa@TMP00%uR9IBRUJ03oAMm@y7aC1as>^=V0 ze=4$=;}YW77TgmnL8kSgq zN_{`Y(RqINLpxOWIKjp3?^OlJ%dUE`ueyF3qAc(Q;G6@f{{Z2h1ccb*bcholcvv{f zELB^Vs{y;T5Oaum2lGbc@So4#G#Ss^0~6l?9LZ8XFj9sw@1A($D)8H>H-GTUPZ)S7 z34oqQB3&1E@F{I`zU^-R%@-<){J|QEz9`;MW&-f|!%@(dZL{B|Vf+m{9{TDJ+SsAI z+%Y_qm2pQ07>Yxh`&q8af5!9gfjz(f|AwIalaiT-8`sV?F@@DHESJLo$|9Y98+;W&w{{AnmzyIg4i~=XA?CCdbj4-Qvt5Z<7R1+zn z9w$KifH=YwZm(vb;q!?82ic)zjK)|UGWYsGMj`oQ{0!eL{8*DXshNc zXz-Eb7o7X5?Af83*{H|FCY@BXJ|qyRb7aq_PalskQE@aVLv`d%Ey2Z3+D9aLH7crm zF8LAc=WEHfTN_{VB}rm$`*tv2JtuGaP7ape;uC7ZB_dQna?U@z=)hPAWftW2M|t}jL1?UM-+ z>rYN}11HS9$;ak>HhOk=LQgfww1V-rrvfGbafbgFzn`tz7zJqgA`88je;{%Kx&^4r zaFC}PbX|=ace(}W^x}Dpc(UzA9`;sngd`;Alt@{T!XpR^2urzU_`wdpI)jCY2O%Jb zPi?hM_wh}!WBkx6QfCNOB1Oo#Vz23ZckefBDF{JjI)37(z*Ga8uHoU3txvCgkv#Ux z{1lnX&P-u!lX7u-WK$fHDJ-t#A%bJOa%68LLB4K6?R9u7oeVk7jPq{EYOtL;c+WD= zP{f-E#h&siF7mUj2Xc4@-sYR9Q7h{uDR|#so3~SE;Mwnl>cV<;&*jhkl-RSL)8hmS zmPVkfLN+Y1`sJP;Fhqy7BI#~+tHbX<>W?jpdNxWNnJOrzk2qfbw{SurgS1#CEJB^$ zMztJWqT3s2S?m#QyBCD0>-({gYqS=EbaiDOqjQPOQ6~Qr+h>ITX_Cd&PF?8hQbzAG zf`Gw;jw)6;=^t0xM~d%!B>8VkZhTppJ57FFwS>`G1-w%daAXbn+wGn_9+Xd0S1-Tf zy#+tQW~b*A&*eIBV8OQdhmJC^ZGMy< z<0ECoYXc3^g{$x2W|-d(N#IHxu)!F~n7T0@!j+7N4qK0|t5xwhmo`+;<&By#EXMt0 znMteo#9i?H;RF<}U%~dXYWKvZNM6P9oJvDXKf#_UD z@}5=<3FI!LMWs5v<<_Vvs>T7>jF56s$woMzL%4y0M6EU8LKlePaEU*5iRw5UaUu zcpWB4+6@*Z5$T5+j*SxIURyXqg`RjaInQcb!~ucEuMVg{DOoXGFCKo$4JfSe|CyjA6kct& z@~+Xw>v%1cVx7QcB^%qYTxmaRcW;P#dKsu@r@lGCG+}N6TD;)I)9ed!v&Vc+dm$Sn zA3~=>Rwi~0xuS3s93u%QHryvt2(em<@GV{yf(84j11OhRfiRQ@!npGK2jH7<+(x+k zF{E+#2XOVLlp=l8J#6Sa3E(>3E`ghviQY%|7hg}hTM+_WY+flcFcwv}hthMT5JI@U zP@#}#;dM@j*?lLlVpCa$FVBwrh_!R|TF!R z*fH$XA@N$FM*Aysz4J4sgXoilcH(u!W8AmT-iYAQPg}ec?jA3Q&VTg=wpT8BF*ma^ z$03;{=dFf4QxbAYuFZUMV)qqRJJ@~kbA#<6n61@2097Z61|OB2N1C zZ6TW_lyx*TleQaIzd%?I7$Z0+`5&2fVWc7hav$6YkKu&^nM%uMf| zjmoR@7qkz(ETJ}3hi2ok_=~?EZ(2B;Vf>B~|E!7YZ1R9+h(qz~Y#iT6RPWdCKs-er zb9_nicjd@3yjAZv$_^TR@nZqk2DjVSyATH7=td()dayN7LqsP{?#=G^FFMFFM7nGE z-{C9H9%Toj+v+gmb`a<@T+klbj~|pVr!&I79$wHlPU|k4&Z3^L;O`mX=N_SsCv7UI z>`_Ip)t+Y*LRUZP^FmyV@jB`)e-8+~q?PC$m4W|^0$ke?gsVA4eSr<1=@$8Hdu7`K z(uf9h83$jy{GsQo?{fqLF7)Z%fUzV2d-~oV8K^Y9SV?GUZEhN^Mq5B3?v>qi*Lg>a zG=VSK#u;v)`CKuq-p=3L#}=Nr6B1pt4|>+pP~z_x|8?{O0lwwj{DXI4Y>AAJaR3eP(br zf8!sXxh9Tve>YYIE~MicDl=muRCMBdN~4}o82YE2luUJy58@>SslzifCahb1NcO^~ zr=kI*yElRPBe0?Qwpk}1L21qlGO_T9oVP_!ngN1!lEAf;sHY7>x1ieX9h-w1?Merh zyeRHiJP>Bo+U5E&r}9w_vc%!nd5Pei(0_mA^7MlR+f#4ix3mRg~HGp6XY( z6OZ|N2glz4iwlA|%?PTlU+vnrd#gt4S34Iw?ofc^5i7 zwhjFvr*@ZQeV>BZkw`L7D+!%t*tb;rEiK;B&M^fl@Z_K=IU9IhaU;LFu|Zr2=-rgz zJ38yC0gjkovBE4GSQFqI>r}~JMz-P%o z`LjtZGsSc^nvDV89kHsE?sPIa`-i3;c)eIs?3VNSQEg7YMOOxVC>!>mUYs+(>4miy z9kjJG)-~6>KT?aAq3*%u8r)lcf7AA*w8!PFmyP>O!{%ql@!Hx(A3r16J{j%DG4p8{ z3$5

uzy20{5%A^m|!S5>IvNC2&n>k(z5RuSX7w+Cot-DtDaN&=^T$N`V0>1LCjz zfQfXyE{JVnN`wu#@)X>8AfFuP>MJ~GIxNE-A8-Cgw0n~9d&-K`0mP8aCe~-?5-v~kW$Qtu0s5TADLn-{nkrZmzla)4b@NjI?%jU`(L~H z>xY7_hln8HvP`9y9n$GPF?*s<6TUDZ+l!(Ya~=a$Ifrm&K6>Z^n1}Y#O6|@O-MGMd zT@_EhkZ|epZbNKry6IubSR7*DqrGw0%X)Q=}x z1*E51beM1PqM%3Ud=%6p4=DCTPSl2Jjh?Nia>|}x{%8WF-rh15UMiUSYwf@0NSDqu)N*Y$&5fb1ZR6ScJqBa^>ubolgI^JP zxn8X873uLSvrDeIb_((zTl6V!yoBC;f;-T&$|1%00$^8<(lsRxE0(i80w(<<7t@7F z_I|H4i{YY*${mf%VC_59+j6Yr<$FI*_Z-ZAe6%!G&M1BrR~*OZY%2BC%92(i2DPB# zRw>#3Zb)%u1X9g0nh#wf>`JyvMSZPP$Mp3Lq*Dki%r?&1%4-lAnB_f>uVYVN&xl+& z-675{FW1zC<`ms!u(h=b6WLTfg*mA3Wl3ILKQcM4y;BKk3pXLVx&U(;bXuaEr;VDg zqP(wAPMqrEB|qjPJP`OyTAWAyO7dyx_%53yAoZVIrXA{X`M@{a3bx^f9Fvho0 zdN{1=?|=4VCJ9~=U+*y7-v~UB$k)X< zL%+e{^` z@@#<1ioZsPZ`41F!~obX(FtNHPa1(Jev}U;k%uZ2)4RMBJvqC6i5=`fe;IUBS57M4 z{uXHO#p@%uQ<2hImA@pDD!%_MLmXpjo~dMvF%x5zRQvAy1U-(8c^jA36DQAJuaXgg zC9&&*$b}Ph;w=rXg{A?G3*=AntIoEU7+f)3nek6S{YzY8MV8XfrC!Y1HlJ?YRc|UX zGRoXYR;aX_=e&O`1!$f0du%vq+y;oVFJRp;+2F0L=UN#$KT4|nzAIWBwYhSYJV;*; z&)zcCcZ2#orKDqGK}vMYCwI%2jK=~Sn|jf>w!Bo6oPnq#K*g?eE)>^2cPZ=6ys6j8 z@0LmV9kL2;7^K%~Ch5^W^8^;q``ZG?KjAgED(3W zu2^;HlWpkBCq8yg#2lcFC3?HD_s>86lFKEpLjFAJEayyq>#O(4zLtQ9hPih|78T&12beO1~jJ=QS0=2sJc;J8BC2e__yOH zyF-JEYMB35^}C3L7VC+lPI_daO7c>z>IcxMKJ|WCk?z~&W;89r7zlP=+8?}Km0M0N zO)Ly1eCm~3uF;JV9Wz(xm3H+`2DxK(Z0)q49z|^ zoDx8y2~VYS8!CrM1J>lTOb!iXYewK&MnKds$g=giOp)0_YvQT7FGh?jU11v~GCyV$ z)?Inqe3$bJjPIc%$s6`cXD-T`^iX3|5gq?HP{1L+y%ozpXX(6%6ciAMY>n^~iVa_X z(hNK87~bfEZ%bKE=K`zBHQ#hlBB+#Za%~e|?yx#mq#3X@3uq--vbQj$Z@fSl6l_G!sie)Ua-n5V;(dk=&4J zxY%UPY&qQ`YZSLro0&!Ck}4HquqxEO>Jk!oD2ZdxnIBV%cn#?cx+6uTR%>S_&-wJT zjBBf}^W2+7zQr6{4_ykZOPGV=*B?cTQ%(*nCyc@G=Z+$Lw9_7-YRHT3(*8`a4#~3- zr~56IgiA$yGTmu#@Oz;2wCjt?Wlu8(kl`)p`yH26aqrRf?>#8E)3Z5Fq%;{j$OlOJ ztm6kd1rK;dn!JxM17GirxGk@C%en7Q?gs%cUK2tA?aY&Cz8W6rM|QOC+O*Sz=PqY3 z932NB!lUk4_BQ{$Y5Mz@ASDwkO`GY_?I|NYhkJn~4Xfwr4Zy^%NdDqk>#(xq{-O~V z`J(CA=nC+!L_O?d(w?u9?eK|LbLOAe)%-^bAYBz^z{kgI5f3-L92aL<7V`D2x36A2Jo zQwf8Mn`ob%nNbg##hxRPv~;7x@y)YW+Tly7qda#R=G(Swr-uT@6_wq8vHd=c{3>}} zoj-oKHyk3t4W}^iUz$)HJ0yF*pAW@9B(G9;+Y+J)RMX`{nisz+b!9_$=x5h^;SR63 zfhm=xoStKP+<#{NhJ{d2sSu^s_)1qa*yd zb$_q3gg{Ri+Zmg#6j+4kRiOeOh(X7eiod+k&k&(yA#=Uq?$^iQ!#vBSoW=nqYvEyT zh0p79oV0F7j6+Ec~}E$B1*%pZ#mH#Qw8 zpc~vz9lnAOA;LsH!{f(#R&Br;=cCJM_P|LGwfO@R0Fa0CUeU_<& zQAJpQnLg(Fem*icordyOI6F{a@H!6s(%}gGHL~M^K7T#9v64KX$$HiC(onZ+;fw_M zEt1pY!F)yN!teA%RI)@k4ah-QUWc?k zxY#{D_Xs#2PJP#PuzD`o*-j?k;R0)XdI#htmSswK`12W4M8C$fy<@>6kntsI(?hhc z7nQONYu?}taTB$Jg?l#_PzISZF1admlXRKNZU=_ec_?`%<>3G)=d>yjdFjw z^2!XZvnBb&yr1(va`53Achx@JZ4_l>5O#7Mt**FtQ_wEH6n1iAT0X4qU?(U_=~r@k z%^;uml8F?nMU#0oKyIPc|9nx-e!+tTgPA)*F0KcWStXKPAd=1TLP)y%JOAkIoTVgN z&A<%jQKQBt+xeASCY}7F){Ix}Kw-SpD0-qD>ADQV}0rK$SU1}Wb+r1B6>;yhX zEOIcAorQM{A2zXmg9G|)*|hpayLEkB)IqI9>t}|QHlmjUsJib)4^B?OX}5RUAhj3( zf?nM8qBpoaWI?fVu-p*Dcjz7PX}8>0$W#wEcUkD_`}=!OrZBhiNY{FDBHagsV`S0{ z72g4M;l>LZw@Dp0tur%bpz@T3$P;`u^LMg3QB|G%eL#SeX76s(dJLR9B4CDo@1G&# zesN&F2i~Un%9r*dK)u29df$|q*$6{8xGiPulH%KF*{gHdLZ$rMCH%Q!`yHaV&2rps z@0*yP+}TiDAU3RP{G3Uq0yK9_UO|r4@=*w=;)2;EQbSo4mc{@8X@S#1dNxBQ#M;;0 zBl@=a$^(~6#20?e_POBa4$v7tkCpZZ$eq<-5_IM6nn$oRe3Fy{oG6PoCd1b+2z}md zhp@LbR!=$Bi)%~qai2R_aW$Jw3X}5DiMjSQq7;Ni@{Im>S*OzckZUVKh-^~S@LqKz z6%P?CMz|ULROtF>9-yL~=s(@sYB&si^DCJV_N9^SvA>hfvzo?Q3_$+&%i7N!c1d@a z4ItOC5l$qfO9C2Q=lAh3b*=u|+Ho6G1b=4krvzlt^9}1RB z%lh|wz*ptBRxaCMIt=KFT?X_+myXo&sDm02_2z?0T6d|F^U|9oW@(|6x3MZ*j7`2x zLusq8Y6$&cx!+nTzk@KMgw%ZDCiGZaWAhCd+Et1!UblCTTmp-xa?zmWRu|bu8_3%T`w|Jn>VPCLRjl!zm#CiZQDtbix&~Q-RAN zJ9B9xZU?||YhSA1kn=tqR|Wa*%QE2nvQmMZrL3Rx6%OJ)1|%z!8S8WLoTo>tPi~Um zImj1q8ts2E-9oqH$_&_M0YBrNr-+7QYLgGO~>|$i9>F zmP`(SR7TvbFHt?-xD(u#fT>iz3Xf^gsSLg|*ePE8YiRAAw?fb=0x?ujmBGp}BUf*K zw{Od%Ugq@BxZ%a)B<_LxsbQB`q6pwwQp&UYOS>Fr4BPl{062 z3g`gF79zT!TTII3CA&7b-d}H#h5w7jvu?T&iamDy!0U9Lu{Mc}PHDfcu0z9buizX_ zVjqVUEpcv2D6LF6(E2=`cMROx>VP^d^y#SGD6(S11e&uxNy_bFKHDwGqB)g3xW5{? z*n;{dS!G7S_(|-)`IZBdiW2H;Z1+V*+*@AB%QBiqpYB4g5yp+WNGAsA)q{%RGkk?uls(eJU9A9p%|M){T~e*Kc#OoBb_x;y3OOEtG(48d;q z0fudDD5RAFEs z0~|y=+~;6y^=3wHd7R;kBh4mTb|8TVG+#p_+y;935?~oKjj`PlBx-{Svz}8+lv#O+ zwzRkA_sqXUeQhUJU6u4lB*HtA&UPEAjWa{9R=|2z6GDh9@qDfkN7}C^li}+ZsGgPJ zf~&J0dWDX^72OL|=_b!?epg21-P*HYXjN{EviwP^OjEzGvaEVa;Y@Obd66LgnN(h6 zBkigs1T*$-{rU6yJM#gi_~(*M?1GYVOJ2*y+6{_!XbgD~X0j;Y-ce;vlLo1@7kjkL zmrccnx2FTr{Ow&X^ct@H z_(DaGz4pTmC4<>cOI{m8JgqFMp>UNEm~_pYK17s3Wm}N(0$+Bo z`fbGLnw}maKKadWwKihs$sQ3D9$ZnrJ3k`+uODExFC~KY zbi@N3d`)1W_{HkuW;b?7traYA7=5RXf^nd$=I#?|w$s#~7GAfjFw>h2QCtZR#$ya)AWzw zT;}pJ1YiNPITZnXbU8stiyi+j^F49u5CfK5dZX=jDxB$jvaRetu6|>du43^G$!Isp ziuiJgXNQxLwqs6iP`)^29%77-q1x%Ve+@O|muhZ_DJLPe=YKhGkW6CO z?E~+_ip!=An{@Rnww^=wt-SnTu-C{*BKtu_tbK0p*oIkoMcZ-vpwf8YiV(Tsj%o-9 zC<|m2`|4_aqu>4OvxRZECk1jMtbYYlX9S4(kS&M}2u|ExkHFv-70o|C>~Rxl{r$<~ zMx;XWE&|@6>bv7E8AO;25ENII9&AC6=Tb{lWF-g2pEw80+;uhfJSolDJ;Ve z6}5GV-r2s&YLdd{RFJFP@@ZK0F#!sxH?Kzf6o2Emvc6=-S?DhnM%W?k;db$jB5lGw zJsDWG2C7`|Be~y4a>a)KdfJN+K7M)B_X)z>rGsb@Ep@0TkUwi19GHoPQacy)W9f~UD zhHIc-)&bBkOIqfsms{GHXPlVV?VxKXd~GM9kbHd=OZlUrZeD6+6o|mg?Xl-vOTavO zTM}7K|8;Vu9$7SS?@YfP2)RiLvU7?+sqDG}9oi^{L2|_u#4Qx;_}?A0l_bbE@sIkj z+7}dwG?it)&GIpf0mA+47*l5e&l89cfx!Tg(yr5JZ4GxXwqq-Bq~Ba+BSr_vju;>x z%)}H_x6Fd-DvR%q+;Aw4=*H(jyzN7Ncc0WD)XHQoDwTXBjXmfYcU;K?(6m5y9&yZM z?&~#J`Lruw6`-{P#{%Mkw~CFu4Mga{=&5uaQ>o38BMiu4zv>M~ zF~`DS_tGzoVj^doCD%;G|je$3`81fg9wk$@uRxbKsAT-GCg=+Kf zA2`#)99iNrLqEMt%U!>rh8(v~Cmd967Q%77rs7`j4NTG5npiQ~?%H$1;Xarq@>`{J zD^7|X^I_`MhbX-PW?f1X*O)=G=*|gy`izkjkm#-K# zqI(SNy0>gV^LLv|Fmqn-EC;Ehy#(Gr)S(v-SO&^B6v-MHyTTh8T1%5Rz+4F%8Jecf z)8sHd<-%c=uSl!vZ1kKNsBINcHVsGtfNpK)+w<}wJa;ZOoN1UOoMGFU205lfakG3k z#d(}(ocSg1VAYivNM#y;)?BWGll4fS(RjHA0=fTH7erI{p6Pvf8zl7A6oph!%W5cHj|^UVIGwn(H2%{ zyPxU{5i7?Qa~`I1o+K>&nlUc>HJF!ZzO>unHcw7AFlhXmd~o&Cue~3k&VD3xyj}V_ zih^@@UjWj*?NMt5TOb?xWXI-1Z%xy;w_hh=fI2A_xB+B(;zWmiUj10f$Zz3j+R;JV z>{CSQsY!ZyC;8+)>-(tNzfn6{6$cuY;Wg4vwbgfyI3m3*E@5*+k8-DTWRL1Fkv^!o zJ5n=EBz0XaNyo~}sUzv@F3c3-xS}@}oMqA{$f{oJYf8t+C?a~lu8&w*<8hdj|7-S5 zf$04lDk|m11_`Znn)O`P(w~{ZuIu?;rZbH;+ys$ndJMLJ_#+t`;wJ-OB}FyQa<}UT zv;_;TK1leB@ZK4z60opwc9nF0YLwQZAKDq^yGcm6p{LReL?z&II~8SN^-n^5NmB%o z+5#}3elYW~j{)FoK$CIMj=#_x=)ei+K$50NK@urov% zi<6wrNgbYU!eIN-FU%;Jvh@AHhNeq7TVG*<5Mb>PTb-CDCaTR3+aH&qtg;R7>NeC) zCzbb>no1L6V~qf8VaJ%7R41LF@^Ge>02pwVq%~|pvg^9NF2NNF?dKo&tgaQ;6izO< zLm9&x+{tmD4z;FMcDm4B0U())75ujW3>&ZyzEW;j(tLPUolyUmx=*j%QSa3jTlT-) z9d~-7+Yvv<54|_gpZ<*6%FC2uW@RP`SVeV5gSZ~hyX~Jsz^nhdYUg42-tl*NsWX{i z0N$tyi>U-67YqdQpCsR|Uou0;CqitAB?jBAi@)O9f*S#-*ThH_f zBoJW=EHM2r%$KdiADQ(@?orw=R|w7jTTBSF$gk$Z{8G;J=!bon9GIslw)XXdHYV&YX<$%{PF_dZ&+_sR->Xl5XLG|QTmd!{4Aj{Mvt6U@_Z+NIi3lJ?pUqNfL z&w0@v2!0s2*j!E2Aup2_JUW%fv-2>>jQ|2+GP94A*q!ayuY+HdT6Ay_EBqkxk-+Jm z!X<3BBFdV$#90KGbUF!=APwM@xKy7=&3IF+z4?z>QQf9;_+~QfY2$0K7`uFNvET9q zTk0b4gs2ZAT@SQlopOD?ciGwD91btQ7nrMSumOnYMrSF7%OTS{(jn)c2iV>`Pz{}8gJPSyk#m!gc&=+ zix+B$vB@{oj6-=U^l=p@ygcSkjyol$qH-uawi!t^%V zw7M2Jye_g+9A^MH?Uc+v-(+0md4F2G)!%w|&+2`TsjkF$S&W#K0*gqGrF#Z(>I(jZ z&9B9?%yAdn0CPg4?E!-qjr)f-@P9kj7SJXA-_-^_IsZB^hYN_&6YAs3|LAnP*@}DE zf2fde(&Q=m|MM8l|DXRXG~`kax1X?YQck?J{Rj?KHn}M{oWq00E?S)t|Wt!m&)A`GN4=JLStH zVgi=Qn*BJP5FsHH8ayOQH%G=Yi2W&nH)BX?=)Kew;v|!pMIa}46-2B-;3q=Chgv5K z{T(~T!q(HsgS#duFx1B5C+H}vW=s1o(fJ=bzjjeiTXp zNFl9Ewteg@A$#1upK&Xpn7oOh$n)JA#S<^K&P7547y47l4Nlmy80a;(MvRg=LkcHc z`v^7ADn~qHW{B&WOFzPDN;2Niy&M}b(Z%9_{^+D<-{I1;;WQbs%paheYX0{^(Kz5d?)Oj5gw5}@qwiyHkdc^ zeHlFM7T5cSfkZh@p-@EFz{~zCdcZIhd;jRJSx|@*hyVoZ+dUn_c6~7Z2hE>}I%)_j z7augPp1^L7zGI77u)b+|A}C1$XfD*1KF|Qe_WDU7a%bv6oL!;&hY?2OyEBY>h;K>) zb3W&5Y+FAMumFj>WMv`pVCpfb0(gKrXHRDplQdU*)h)}DD-+2A2=X9-fJuj1!?o-! zd1VBrF}?!_7BmC5s&cmt{G8g1id1O;=zXtp*$xf@mg|4(J`ugL?SrKr=1XE}I-IP$ z@XaHf>iVdH%GI?n!;+W5ZY+XTMqD|Y{Kg7X4otoDW~U~7F6P7b&n_gISsxsBI54bx zz)e@TnqQMae7=8MxCms1lroX=hYT3Q<1qW>Gh9kZi&?75!jL1R8_-6k97k3o8G~`c zp5}C>i&u;nMJ(QhmanN-Br#WXu*Jer?NXqt!)|YDxbAd7Z!-|*ulK@6O@(SG#!BA= z=i(&eDyE$;6-_i77cB{)LR&!oM$hI?BxFJkb#p_c2v5H0N!Hwz%yH&EIc=a=YG;GA(*N9toK^WY2#O=Ft@G*Y%A?Pua7BBHea6Rdjk2#OVJ2#&T%ca{RC6J}QP;h`8(CCG1W#%?qAOjkTmRl6L z&=-V?MT=lMO%g!#kZXe9G}IB7l}DbpDNV{1I9e_J`{V`J!{u zgy>rHk~xcT3%DzST1Gtkwd-3wZr=uUu3=PYcN>V4LPi@FEsYI?g3Z={#ls&?rUC8? zXF65}Z)IcrsQvKpr?p6&FTK^WTS@~nwyTGa^|NlY-J*rA-SrVNoBHA+K=-B>N`tIp zGO(SB(%0s+BiS2dH8c$^rfBC4 z+XI5-CsH%I@PcSH9}@h8g_$n>cZXtYrlBYF-`_Y6z?Z(vnt?Q@=aglSi;vs*vh~3miS#7}FDPq1>1Fomu2m#PH2S%K$pr z6+G>R9uEF$t2fa@avK}^h|Ae53kI$4iXc;9v2ZTGBO61rkC=W7og00hKj{(pGesgu{k#PAfgya#eu*1v|1$AaxdmP}+W?cZyd?qmSP!ZhasKb;%DY_AoGUrpsK9hQi>lI={kUtu01 zu-&I8!Myn*t}&;FuI6NA(hbS!$5czF+Ki*7n$V>;=iMIAsoqWN4lRqveEbuQE~ghiNVfE zJfJsaPBQyB{v6OaoL$ei9ZI%sp9Ni1$((0s9LIi04kRAB(~Mz-OT#5#{#u`!->Yn= zpy9a8`Ri-rGX0&G6)#mBY4nyHCUb|iagvx{Q4)NRV-FA>yjvH1Eg3cV%Jx=|rhDSZ z;i+%dfSkwJCV1>TD?lWDT?|Q#ar2MK(`7m7x9iT+v!%)2c$tQKr%BB82VmZ}XxrENbyNa0pNFGQ5CMIi#s z2ZH5wWW^0QS##27QX*J<_J6Ep4&2qvdBxS-!PBz+ZLQTh(MMB8bn5orqBM?#0q0=` zKGL;P>&l@&E*?E6=5>6}F7|1T98Zhq(u8$JX~N`UPxnp$K4J%<-O*TTsL&wgcbJsF z`T6MqdiuR%sRDHl8wSimqURd&pCNvJ7i^N1wUSZ)f)grv|8%ZsP?Pcf!}Wd5!OY^j zB~8@U3J}q)JyzL)rHI0M^>^L@jqaYB?s}_Tf!dy&i~-(Y@O1y$g1!ppcMnz0IhM?e z^Mkd@(I?l9r-GRuAody$uKb(_=UyOA7tDkOPN$uhjkN8x5POeZ44XDrdA2xr5+$?* z5Sw-zcXQ1@E!HL!KmvLZVbiHk=7V%r|9kkoHzv`Gs zKFTCpTvtVaFzfXGCDjpNLP^g&MBGn3JXZNK32gmcV3C$H`*Lud>OC8(WP>E9tVH4T zq?VJeUo)DlQpQmpN4i>m;v?AIkJ5tKJQLz`)^!PtkS_PJnOHtS|Cj^4>_AQIpx6Le za9pSSozorD#&+1%T1|zF{K`V=#r(yZhetHP$R@tGF=)RWRN&Wgab<1=RQ!pCPtO0o0+I1Hn@feq6tL^MS2NEYDj>9 zh2BAGnn>snqy`d_e2e|;$NjwTIpZB?jPso_&W|r+Ag-0knsd#0-`9QJ*PLt3PVwni z_qKfFI^U(`AXnh!6f_cEQE^6)LL8Z-QbrQQ`n?V0gunrxMa&Q$^LqS&{31^)z-Hmc zI6m+u(isfeH0Z8|hmMik82Z)UV{^@LSIcdxk4$(cCN+XS^JYV9WoA|5+#GPjJho69 zX1N%H%1GoSorg|TIdRbw|Nb*R1*fh={S@G+<(GRF3%~w-8u<0?UQmk$#W+KK>w4D7 zf1Q4R0jOKXcE1qU6P|xt1#ool&{La#71{syQq*<1e~uDwoD=xxsO#KM3;<3#{nl~t z=XX!89;WxMct^Qd4X>=_V(rC^v`&{~ zaz=V_JZXA=>)&JI^RTzbB*O1;C2NQaktr6bEu~hi?1s`C-4bhdGhsR09ux|MmcSby z8v1qCQ}Sl>%G4L;4bI}z_8#9_x0j(2CTc3BLss%AFC5?tTY8|#bw)g;86?iGmczj8 zhO9I8Rz6X{sF=)LbA7qf2pe@3wQ@Bfi;U6*V=r=IxW9!TzF?}KjY7cn0y|?;#K^!4 z&m#Q%?7&wsDnR%kjNP|smseS4slzE>XDKtM;ELApBY}D*kyUxs^;!1dq{{^CoLU`n zOhDqC{*+jq&xJ+n2u*{iXZ@;;Fa&CSh^cqlFX%>ArJznkmJ_d8Dn>IF(! z5iB}So$(s}7jL`B8q21HXY-rcbL-Me(6wPwYN zR_84+T(nfyP7%gnN^?BX`o~P9=lD*+4chr0b*@N^N~FZfKC6q|4fgwt%}x-pMTC19 zuh%3$#e-1@v$WSUK+!R+tKsv$H$B&Db6@{h2s*CU=PH}*Qem8if<_+qRPJ<{6Eh*_ z$9D#H-gbCBlQz=H5D;%-e(v|ThOE0F5WX6%YKthiOPqAFyw2Nj*Uo`<%lyOrxW}Jb zR%-Jv^n{o@tV>QKnyudK1;1lpP|3FC4S~G0NA~mcMvKr;StWD6M{^`r9^}ujZv9ti z8{*S&RQzQsxvyYUp!;>37yy2I(-Ay^%`o@%g3eauWe>|+m3vuh0J!SmaDF>#Bu(*< zrLRv{qqOQ&)KDsF5cBn_wNBwVNnzS=np_;)D9*DTE34#Qf#kofvZZ5vXst6B4DTFsSvAk6IrdsbCRrdp>o274&9f0?A5 zs)oN7J#!|yOn<$2LgQ1tYN^b#YMBPa#U(_y&SM1jp;d$ zNP>*zunnxvoxDQ%-5BD5>scD=6XRw9T};m~1+trLC%EAEsp&Ce{j>9zusPJlEd=zr zFB@umf&^=VIHd^mjM34i;UPsqwHDD_)?)EL_`2PT)`nAdO?mNE>D7htp zO?&=*7vt-&9=&Vg6<>%JV_&Ndj#yp2tBonGPo6aOGc{YUE53bwcjOczOjT0n%=ZW? zxBMCKb2kKKdz->-BF5`2b+fIoRw7aXbJ&wjJaPNs-spMtZJe*)iA5v0y|qCB zCax|RXRn=IPm0V)YGmn=L^&Qd51juutQMtnX~03+=^muwhB;g0>zPy42yDrPuRGL( zoC!$$8%=-nO4bBlXJN|9IJ#1DcP>81VIE%~;eQ$d#7I@oGuPTh zdJ(wuy92Q~QL8?7YT1XUB|3F3>*Ffj+i@erPR|WQLXWgM3+MOvL_t&7#(=*k)yR(J zbK)L}`ZS&b5=MB7AY)66NovZwQ&`8bXxEC=2b!!pt&sLl-dohpdFY8#IL)J64NdoH*z~TeC#@PIr{q+Qf#bTpXD_e4}*llX|npsLE@2W zvT7~?e$J4!Jx&fj-xf|xzAg9%=f5oUOhIGRCCwx3rqG9i&<3_G=zwdMnl$FUY>2ni z!o&jkE1g8~OyFBW^Pal7H#jNsv`y`J6ek8BRR?CkP2@$x!y_XH-v&UR61vd`ABp1A z!u_`f9JD`NQi}{2vdL(4f9yw_zLmh(jeh!wu)^|& zo?A5*1sDDMJ&|xp>^>}})2Axte0~6=Y-WV<+BTa{{~I?Y%Ckck<*zRkw^#1_j>S z0TE$aKgOymRd;9VuKZ90$7IPjsEwJ7u09~!(fX9VngtS$otP(jF_^BJJ<}JO-Q=mQ zr zSI0+vcPX>k?EumE^2_Q^%J3uaGIg?28zUF;-r>i)wna*-!|Na4@9*;{Nr9?TS@G$* zRtbKnb}c>LW4sdgkk@|?cQIt}ouh~6kZFd;=^Xzh>g5ILUz_tyuVRAc74l8j8|x^a z>L_0d93R^bJ&>+T_ygd-De*?eo>I?-jVx}rPjJqdbt6J#JBxce*;*GumJ%uPMx8_? z0 zUb>`5rz1*C{cMH@{8cSiAJ}UcLJ3-K6K?S%#Lo!^hYtCGvu>V4qvR*Pg3jR0wSw98 zY2WSACr!f%DUP1ds+z)UDtfa@RC4?WuGfpEej}Tdsv{b8p8HHuLIh7`Q0O90mzhrf z-s@d4@RT?MR=~|QYfYDcN{@<#1_*$~g5$kvdUteQOfKrS_;Yh`Dg0y_-@euOKdj32 z{)QV=?riRtZPUbx?~Yed#)J`N8garF83YyYc?^2__di88exE*tgdV+5l_E?un*AB% z{kdMx6qHos!EF$9Q#Utq8!nAmgyH$^NDs@%)6P7|>4J?z=tWy&8Tj}Mr??r8t()+D+E`CX}eKl=E zR8BvivhJDTTLDIfJGwb7O-w9ODKU`O`F~NIaGyI@i{*A3E+S+^g|5}1Dh@yHcNZkw z5a75rKX1YNcPKoQo{6{A^r9M_C0+F)16bv2u=?W>p=~i6?G0@&_`cRSsJC>*0iyp| zw7Fi<3M+et0r&l!04X)@Bl5p%a+;<>PWSERLQBa_A>VK-vNK1c!w5i4(HZw+< z0CSWfqw^ozSC%0%2!KUNDhd4ZZQ^)mAOsEs%vkzk((5*UhvrIY3}oYne_Vx8xthxE zJe;!Kt7jkScgJA8{32WdzsTOH%4t~aqmJ98dxv}O6Ni*>B>r`nD(XDOBiygcID1AC z?->|$Ydv$Jm9E#@iOr;NzRo06CJjxb?D^gDivXWkWKotc1UJ<+9B#$|{QU+#{+^#v z@!>`1=(dIQ57=Tuu}@s4GwA$R^|WLHx)pW1Zk&*2L<`L8>~lnwpO85OZBur1n-2v zDIeo=x)<7=d7Ic9GVrA_9uf)YkF95vYX4V|CO^N*<>i7nJqHVbieETpZF`y!7z{FM zIAqHER`oHf<$I39+KH{sgAT8pTny9^c$JlTxJKc53^e8aCRYKkXq$G9_U_;sC)&2T zF1U=kyvonl-wx!EI+JzBX1E{-_5+1Y9O`eO12K(+oAe5478EugcITe{_4@52KU3PI zji_26-H`zDE#Ud;!KOe@lYRQ)F9UC{_LDYv zWv6ePhC9aJY*2`%x)O#H*g%U_WMwrz()a5t%E^W3dapP1c7iPVr@l=QY7{V(r<5+e zPDNb-VuVI0f`Jwz+a=jFYlke{KVQUb*7gCF;g`CNHG zO0uCp^lSY>*>!kj+}fmfmYinOEVoPVy6{{BQzxhcYz^(DE}&zP0qew{mBC(b4hTOn ze%2n52rpgKqmt6YT>{q##|zOqKnh1`fFMAz@>n$!AlK^O7YMx#%WV;t3BApyIKDl( zv_)H`Yae2?Zx1Kdq4&7{<<-}E{_k~<>|=_Hh%66abJoAIQ5kSQHGLq_25M8us%wV} zkFGHM_ZIUm{7(O@+-Wa6PTSz*xY8j4YL@B5F|=oX3z7d@DdKp-e2-Cg8#fC7-ZLt) z#2s+{Ajd=3f1*vtR)Qitp;zBMX5LW?D-pt^JcjwYtbf>-KyIPb?n$0r@c#I>tP!gj zVPYLTshDZIaPpz6?x^Hkg7IPreDzF9c&L@%-0b81ITIG)`4^QZW7#gFNCYrT-ByQvTDF&nC?me>P;RCNwY=rq9>Zdj}gPyGEg@ay68;^KgR590^D?A*_ zs{d3YNF%bZTb5bdE?niflWu{soWpUQEea6g_(1+CtX;XVU+pwEzd82UlM_p8?E=7C z(VB*wI9ejk|GQIK{`}xGn6nAO9)5D7RHyUV?bp(_hd7o6{;BD(45+L;;0VV>QppHp zzfb?mm*6^&;=jI3j*s8BB*u%M#&Ypy@z6nzH!OW1b!EK#kJGmt9P$k~1lQ8i(*7^k zJ0%%gv46eH{#K4N!7u6>g*6wEpmuY>!m$bQcB*Qe#r`xeqOrHXwW z%T|hJCBW!iyk2bHl|E7JH=62FP(o3Z=ZL9D+rOiKeYi|5EG&$**S_?mD_rCjknIBc zXlQWoZDwYse##-A2SvrjdS+&367iy0Lb}E#5C|mS;MXTiH|5M#xru{!6<^N-=y!G2;8DMnhIQ0Iw zVg9#rznuZ*51LuTqbUL#4eR4+nVXvy*b5xjHb>0GtJ_B?jhMiYUbi?k$Q@h2S@s*l zb2T4ej(?kT;%Xdu;!Qt!=so~_-#*ZytJBsoDe>h1_O*B=l6-UlY~kRz^RDDyUYfZ2 zNxqb??cftm$_6@s0vwb9C4o=NjepG)@c4S~^+gkY+;iE7loK=2G3py_s~-DU`d6uc zVGPeB^yTFtAps8Qzb=#f!Zu0nFQ2(~_%FO|Ilm0tkvR~c1PAx*kL~}d*k2gxbC=N? zZoA9z9{%4>hj|#808M>zqL8Dq&}yCmY$#>=d-9(hr(3LmEygtB+2 z83{U=SfgwKqUgp%70@fE}0=vhsZo-*0JIboHTkIL*las=tlxZHOzRq%TAi zR-dEH!P%>kv%nkaQ%#hN7^Nh5J(RTghkjkF$p{NrdVhu5ryVh|nGXE_m(s(*CDI~o zM&CCMa>R)JREyqU2H7@Vj1B9D%Z98q>!fXH(|xE`RZblW92`FNCw|WEb@}xf6E9cL zr>eqNsav}aNL$RxbT&PjSb`~VY(hWnWm(w?7aTGGF4;aPtCa=v#TMW z>N)S72f9gc_(75~`-)WlP|J#Lq^reQD`GX?!64s}$tB@p{<$TppG`>H3y&DX$?*ZK z_Dia2lN6M>;u{v&!;njZ1N-~x!4vF*z96)ze~-U0^IMdOR3iQXI0=-cEGLk8MOxAb z(o;X1R-ZRugZ3T%%&}!%|n6 zt_f?!MJ8)=2b!*3*cRWB`JiU{z{dh|$}c*CHQ9Y*r)J zmlbDc)>CZWMANbQDbSYiX@*YkR`X8p6VKJq&oX}NzW&nYCpgZik9sb216#lN?d3hy zDN%=ouAJq>=q6MM{ob~+Vi3_#6qYrncG4yw92T*It>mm@cFU{Gct;TIvVpnsC;APG z-=)G}J&g-SyEFD@ZAaDQnajCAR|+X2H+prllB}kexK@PmHi*hzOY<3O{|myg*)9)$39=m|Q;6OsJ9PqV9wr;nK%?Y1t7>eS?2C&~AXPrfoK5#umVZUqFQkK?V zx4;gezXP0Q?vsfoTw6zamg6Mgwhx~;2Mi;zpXFzPqfe%W>@GNL=(fjo31=#vXS3K0 z>=RC1fEquMTv2oB>%LzdFZjW;d$dn;r{ftRkbN<#jr;>ep3T|lH}))(*ZAcLvBB-* zH}ny$Kx@wu6r4nCM2+8jO30p7zsH&?M6PGsdz}8@X@KSj;&IE=!XkK-@~Yx;uzq{Q z%&XLpUaRSCO&{Ji<3G(oj8(puV>u+d_rMCRxw?v)*RyEsln-V1*BPkO`H_334`R4s(6i z?uq}(5mOWc+H%~Q#l?D;(?8c0Oqv?MGe?G{@DkVR3Zzq21B-YtN!*m6t?fb-`f(wk zbzFPTUmCJVj!g1j?#m4GfGoP}>%rxTHKAEON0u|DKGoxo%>2q_stdB$X1=!AO-V8A zE?wISp~n^wDnH~7IVs%SCnX`un|ciUy!#d)%K78dx3^0;X(Dyc%d92|@i) zApuiE9vq&(YEjPM((^!MvioXyY1d7efrhnB-RrB;KL7}44=LTOGY%Jlay-^zi&dj#$fS{nl;>z;~ ziP+9Hf0xa1j6hdaFLRD?Y%$g5%QhyiDvEPfpMVkt=Mv9P;-NL%crro$au<5X(|X4?I#XF%W` z)nrq9+pdCg)@3^~5-AWcqZ2XwRwMZstXy&_N}z7GsUHGF&Q^P?lvN@+uwzZvq^MK4 z-@R*Bcf=_a9B92*QWarf&tJOKy9(NNTr67D%B(I)OxMg;=})&nhL}P8m%pR|YmWQs z3rdtmldEbAb!1exX5z((yYvijbm@$2zeiu8ou+%oE*WNLK!TCtA(MoWtYliLpi;TH zzFny4ExS;^TYZ{Ua;Ly0rnX6?6NHqo6dGlpcjkjNs*26p9|9I&lkOj2u+J3=1C~Xz zuI|j0nY1c8tFj+4+jLb{oGF=ckn&Dsf5sbbW5J|cNtL{^Vs$Wa-24-$2eGiqvX#^DG_(tM2OA>?(_fY;PY@9k9??x6dSo$XSMAv?eRuqn%Zw!i3`P9NvsXv5>*S**Q8xB{8t~Ub)r_Uv$Iw zWnYYop6-71;Jt1!qvmTqz+XTb)^o$g=02-x zzEwtsWv*i~Bln6LXG?uU+LmVxJ<5!11ErSGo3kt@upbj9yuNE+X3QA<7|FB++jc?v z&!#v?s#3-~kEg1YYXg)?i1;8Qt;E#QbFtG~l$@Tx+X|EB*>@b)a_Y4Ic6u^! zSv?~QDPi=s^8%f!i7nZXvKKZV;-y+;MTT_Nh;>%a)*Tb>fJw6t*|V3|cK1-udB6&` zT(U2;E{K=O@2#`<8iSdq3@)siNU%nSYOP-pi#(Zj41u{wo#U* za_^Q!$danST$}FXMxje=Z%BL1?EK5)ZsiqS0IwrpiZ0skY%PY*^#z(t$?*Zc9kQj^ zHq%;I=R`VTB!sugV2PnrwMwGmX~i#*98U5__Mc~2x|>7hgO!xCsX6gGOTcZMpW33K^>1svW8s>MzQd? zAbuE+WH-*XW7bB)4)s?14$pcJYSa=mabi03-QJK1?*8uEb6Hw@MnG!gxABa6o)cq_ z4V+&qG!ZS)ptjgsvt~V~{knd$4L}PM?{&?0Dy#YW8I@~RORZvXTI}`L>k&^Gj?AqP z+1+-5ngZvPW`VQ;)1)J^7Psuk_q2mLiyD~|y`QPxbUxq_`y;0jB01qxzdT=kj~-B^-m^!{mGucWM(mOTEr%1ahcrA zr&D)kx>YNLf>;8X<_A*IL9`hG-ddfJ?iaA{oxpMc#*Wi)b%cR8t_nG}^Kq7r?(03_ za7Z;lEkgfReAZR93Uz;*%#8}(l|Y}`I&5Nvje=suHHYQ*uv1{j)wOq{=}*fS~dF>x7v!JXg#XFfXbY8R|$1=zD&H z(T4u&7;a!>td`?jQO?c7&#P6bj8ta~nc63vDmWG)lCt6bqiwgfKVivTe;*Jcv?71> zBOoXPHQKxHkUUeV5Rz~1dM|#I$7*T9|CRIM&&)@IWSozmL|mG-E93cSnvKt=qWzye zCU5c#r;eRAWvxNcDZq1|aUS3GhSA?)4MojT4CZQQ;^quH#IsVfj)MCrpYkmxwD72?&SW3XDI~z&K>bCA^>N zY^T!CV<)Ke7(Wqk-E34=qq@x4@@~cEB=E)?d-inmMkcyZy}d`|7_z)YG_-#||cGizR-*hsa5v<6X|Z`N#s7G+lY7Tl zGsC-Yw1WCOfRr`3VwQ>ImSmqlyhCglokQr@r!tZ~^*|<(1#!i_t&->&Z~JR%fQ9-K zg298h#8dUq+^2|YD+li_<+ z3%h+8OT*O$Vcn`3ic`Fg2>VG3uU+#6=w(8Bd^xU0#oT4RX!49A<~+IH&oUMIHi`&j z5FzB-X6ygT*JG$+;68$PB=t-9_czVoORh6pEO;lOZzRv3!KtE z7En-P-bFaFg#iL`$gtX}_4Hip^_M!SnKHPlhb?Pk#9HlUFm{GFD`qrsv!J?AK7+_i z)x@f-hLgVRO(?d{)d(5wR=dP^yF{pczaYM?I?TJniKO|C6}WTy&#W-S?zcayzLD&a)$k9H>yHT633B=7h-M@@cyZv5G@qwE;#*ScB<;Mpa;(1%`oR>xmE ziwSO#4dBt9k+(wPdHak6>#kF2-c`ph#V)yA)o*45ztYFqORADZ_JzVfO`o;WLh_)k zbsu+nMufU*QfIb&i!dPnLDDzW;OpyEc{H2T>*t>onu=<-4amtna0XRS*7lG93~Ah`c1f z0n4<(b!$`Rxc`6@JtDNM24se|wvgi*2{E$MIQT+XoYzw4J*rzvlqBgh0G4MRuBpzE@F6WJ>Wd1^3Wh1#2 zEwvAG&$&S%j~Xo_EB}yMljxPHbYms(90U8P_>j@bg|3?p8YA<9bjH@hUGi&0*+*E) zXI~y%SkdkMFRA0-RzETMjW?U@MT4Xc?+6%8`K?7|ErdQEHi_BM+6L=zh zJ?9KjS;Lkbyzo5!;IU_u!8I1b33buLNEoD$%D9#9%qQvUhqF*k7LPgLx0;D4&k3*} ztk8(`H}9@fiC&)Wa4Y0DHvCJdePYo4a&mYQc1}qQi5wX|KTKF0&=5u+)H>_(azxh~ zYn(rQr}MPS;8fQs`i6mw1$lfp^#O?d-ZPA6alPuK-q3av*R6O2BDG)vA$dvRyq#SI zsLXT4-OYF2(5$*oY0`o`@Vn`GTCJ+;0j9^5yWAD2`D!UCQsPqgYYT;IJX%k$=$MW) z#p9<3OQ5Pt2((;AXvGf;N=Z=#w9RXI2gkCGNf zMyKU^j~0asJHQKOQ)?@wgB>H&C*D`3f4lC5>_)@huU2>sX4OUWzLxlMI>4;>Hn;xe z8{HL`wHwSH!b&xb^?ak>%ruh;1$>P3tH?Yh)cxtJhFE{BMe*o>H2bL?Vdm?RupLK8 zsa{%|KrW;F&y@4u-b|?Ew&fuM@mM#`jB5(BYmwzy;lTT$=tJ5ddPJ8Olm(-!dUCcVBTQI+Q z3aa|(4DE_`X-)i&nWRANP=iGO@QT(?FZDQiD1BKEmv|1de4ISLY}t`L$Ec?~(-K`q zJZGfNKP9j{4j-oR<+U9;=;xB4w_JXO_2pICjsBMBuVZws$mjunQpS4R`Qf=AutM}H zBXgVBbRQk^K0N~$ZwN8;VK4fmM?rY$zhXe~MsGfTLv;vuh;}eZOOjj7qN4fFzK(zR z$dqZ{`4yv)fWCc9M)leS6Hat4)`)8<{dAVo;O70cC~N_JH8KrP3@u1_!cMRpT{PhK zcf4{Jomlw%0F?24i+-~Ku~8;{_xK8w{bL5FvaCtsKiSrF?=S85y1BZ#%_Ov5Kk~sg zRCbdK{_x)Xr7g%Z+WpBScV#%Zp_a7`nGg{tKuTxXo zX5R#9ZhEsz_R@QPK{phX+adi&sXy$J}t~>$D0!evY&l@AS-3SBivzobpj;h73tX!pH5|L$oZ%o0|C|+xo>T8 zlpj)sB|wNUw=UK9FXJSYHx8)QPt0t)o82a7w{OLOm8JSiiVv>A$_0!c&itsid-|nY zcXxYkOJ9Z-9kCj1a7({Y%JsMANUNG`0tpBhGp!4iB}F=6)rf;t0fFZl2p?&O0T3?N zqJ(7`8(cvtNnUeBp7tKv%sHSp^vX7bC%@(MA(yG z7&BRRqw?&{^(SNYJ|l*yv09=(ctM9u@*iEfn_`mrTNUxkTI;Kq3f(h{LMtFEqN4hs z>#-&)a-&1m)nPL}VZ{$%0?G4j-h$ap{7F%l!TRsNu1u26m}ojh3Pa3%^Qr-um<(Nt z51P+LoqCqsdpY)ql{}#;@Wjnr*uv&ri#Y20>t3;XSB0WvKJpY6hh)=aOv)D+24q)} za^AA?hsTG1QGWp1JZciwG-UATW*v%GZG^O7k&c;rH?y1Fd}|+g1TVXQoCxEjTotZM zT7#uK56E>EE_9ZS)iA}huwABl@cpMN7NkQtRU|2Ny9{D*z&2xOb&D9pWLO9RvC7Jx zsp~4b4Zmt%t5q`nSnL=S81Lqx7s6dyev`%b-73$|`P=V}B}~W3VYFbp5)3c*SmT; zJj&C3MXqcTvdTkY?eu0YR`FM7Yn)l--QjuBd^OUP@QwOnufMpNA<9;tuD%Q-v19dL zTL1yu58h)tc7ePF#PTm6mL$POU3WLPl0=J|f{&{HwWzSgN&$NXBx)UOF;F$F{Baoc zVEVgb9JffZ%N4=I#CPxM(V51rv!j{3VX1CX=ka^6U3}-$<*&H?l*;SR zJsu$}BC?0Q@(RUbY*odjc5XczTe5(Fk?@nJK9vJYb)&s(Z@bQsuXAFSWG;YS*0u>M zNwt@rLEe|L%=PoUGb4^nOmQ6Ai5-xun$Innvg$cBBYqHiC(C0y08|ne-FYdl{|Y1^ zO;6AF&dhjhm%&wO`OZ8{?kx@dm}xcRE*_SaQf-){H}A@q?cjVYf5M&oO-)*C@FCUx zncY7#b3Y4It;M)=bvrNYrVlMHhdCCEErBH`+~KlbuGOgEMpHb6qmz#Bp@*yIxC*BJp&KJF!p@gGw{sx)+Ci=;(n)R7yBYi3cZwS&% z(JSv9#&2SnFMRvA)H1Ucml`xDekXWqo|$`C*p8yb*UU!`iS5Ts`!YbQ=>7B(_lpv0 zdoqfJtNT*$p!$YL1`gJ9Nq=4&N{+km22bL!k$SA;9(TIJvnmDyhlzzCe5Z@&71 z9r$4j3sn$4PES~>-u$+AnXi!7>w~FjOOv?+zSUp$Uo7g8YO!O@*~Yo;_lx!Luip=! zotSlnj1``x_dVI3SfFB#WLa9~fXFtYSmQ!)jCB0cz1t=;PttpoWK(r?H)d_lD$VFa zAoJ#r6PVvpINe{f9{@9JJ0s&-B_2MgOSOfHUN@7iR9@fc?aP!u;~anVIK`{z*zt{7 zN#rKkzyk}@Cwwq}9+%vEax(hV_B>VQJ3x_xZsjER#q*YIhRNl%a_MCKj=E2h^yjMa zTt3%)X@Awi6CZc%O%SJ?{&OKwy zpk_wM;Q0&NGeM7R!0CEwdN^&0YsvZ@buMvx3%syCB4DKc+jnDbedbdeGGi-#+Oq^g zHBas>MYV}9mcei{p!hAmNOgcypNf0?+Gw*qlBsaK-AMny+wDDuiNI2PsvA77mJ3`H z8d)vfA5b((HMR9G1TaDidj*`8mBm+8CjPz|N7EX75qtIbeSow)6cxbEKuarV2juyO zwGZel=Z%MIcO=HjeGT+4N%5PDS9D@ly_Ao=&rad`Q4Dw45GOxk)>zQ=dsrQp}W7I`8$;U>VOPohbF9{owV|5zG3EDp(Hw{3_)B^_Wq&g-{ zUL=DA7(2OM3ba;vX9OMOJ~Z7BNEVge((xWys6YyDZa;NiDRUc39qj|&b_x;@y({eF z_9Mm*8EPSI^ip*}l$LN@xJINy{o)A#$RP%yI524v^=Ti;;qp(U^&AvsyQoLm$&T&C zm$WS9&>#r*&_Hn05SS5e;l~{D7kBdly%}rH@-NG8S_%}r?nL}jK2{?BP~~ao?kMnL z5SnHBS7j6Gn5w;6HX97Ju2}IHDtKjSk+JY+F!}r8q8>b1Yy1V}dx!+kyVsV=F*!Eu z?X}1wbVL?Hs3v|)#&fb#etEk|W|rrU`zzV`xiB5E>9I`3Z{SW;OTpmOTQ z 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 QwSuNhjVuixU-Y>3FA5V-mH+?% diff --git a/scripts/ci/constants.js b/scripts/ci/constants.js new file mode 100644 index 00000000..1a43049f --- /dev/null +++ b/scripts/ci/constants.js @@ -0,0 +1,9 @@ +const DEFAULT_VALUE_PUBLICCODE_YML = 'publiccode.yml' +const DEFAULT_VALUE_RELEASE_DATE = 'releaseDate' +const DEFAULT_VALUE_SOFTWARE_VERSION = 'softwareVersion' + +export { + DEFAULT_VALUE_PUBLICCODE_YML, + DEFAULT_VALUE_RELEASE_DATE, + DEFAULT_VALUE_SOFTWARE_VERSION +} diff --git a/scripts/ci/updatePubliccodeReleaseDate.js b/scripts/ci/updatePubliccodeReleaseDate.js new file mode 100644 index 00000000..bcd04990 --- /dev/null +++ b/scripts/ci/updatePubliccodeReleaseDate.js @@ -0,0 +1,56 @@ +import { DEFAULT_VALUE_PUBLICCODE_YML, DEFAULT_VALUE_RELEASE_DATE } from './constants.js'; +import YamlFileProxy from "./yaml-file-proxy.js"; + +function update(yamlFileProxy, keyPath) { + const data = yamlFileProxy.read() + + const currentDate = new Date().toISOString().split('T')[0]; + + if (keyPath === DEFAULT_VALUE_RELEASE_DATE) { + data[DEFAULT_VALUE_RELEASE_DATE] = currentDate + } else { + // Navigate to the correct keyPath + const keys = keyPath.split('.'); + const keysLength = keys.length + let current = data; + + for (let i = 0; i < keysLength - 1; i++) { + current = current[keys[i]]; + } + + if (current) { + current[keys[keys.length - 1]] = currentDate; + } else { + keys.reduce((acc, key, index) => { + const isLast = index === keys.length - 1; + if (isLast) { + acc[key] = currentDate; // set the current date + } else { + acc[key] = acc[key] || {}; // Create an object if it not exists + } + return acc[key]; + }, data); + } + } + + yamlFileProxy.write(data) +} + +// Extract command line arguments +const [, , filePathArg, keyPathArg] = process.argv; + +// Asking for help? +if (filePathArg === '--help') { + console.warn('\nUsage: node updateYaml.js \n'); + console.warn(`\t: path to publiccode.yml. default value: ${DEFAULT_VALUE_PUBLICCODE_YML}`); + console.warn(`\t: path to release date property. default value: ${DEFAULT_VALUE_RELEASE_DATE}\n`); + process.exit(0); +} + +if (!filePathArg) console.warn(`filePath is not defined. using the defaultvalue: ${DEFAULT_VALUE_PUBLICCODE_YML}`); +const filePath = filePathArg ?? DEFAULT_VALUE_PUBLICCODE_YML; +if (!keyPathArg) console.warn(`keyPath is not defined. using the defaultvalue: ${DEFAULT_VALUE_RELEASE_DATE}`); +const keyPath = keyPathArg ?? DEFAULT_VALUE_RELEASE_DATE; + +update(new YamlFileProxy(filePath), keyPath); +console.log(`${filePath} updated: ${keyPath} is set with the current date`); diff --git a/scripts/ci/updatePubliccodeSoftwareVersion.js b/scripts/ci/updatePubliccodeSoftwareVersion.js new file mode 100644 index 00000000..ddbcbacf --- /dev/null +++ b/scripts/ci/updatePubliccodeSoftwareVersion.js @@ -0,0 +1,31 @@ +import pj from "../../package.json" with { type: "json" }; +import { DEFAULT_VALUE_PUBLICCODE_YML, DEFAULT_VALUE_SOFTWARE_VERSION } from "./constants.js"; +import YamlFileProxy from "./yaml-file-proxy.js"; + +function update(softwareVersion, filePath) { + const publicCodeYml = new YamlFileProxy(filePath) + + const data = publicCodeYml.read(); + + data[DEFAULT_VALUE_SOFTWARE_VERSION] = softwareVersion + + publicCodeYml.write(data) +} + +// Extract command line arguments +const [, , softwareVersionArg, filePathArg] = process.argv; + +// Asking for help? +if (softwareVersionArg === '--help') { + console.warn('\nUsage: node updatePubliccodeVersion.js \n'); + console.warn(`\t: softwareVersion value in publiccode.yml. default value is taken from package.json}`); + console.warn(`\t: path to publiccode.yml. default value: ${DEFAULT_VALUE_PUBLICCODE_YML}`); + process.exit(0); +} + +const softwareVersion = softwareVersionArg ?? pj.version; + +const filePath = filePathArg ?? DEFAULT_VALUE_PUBLICCODE_YML; + +update(softwareVersion, filePath); +console.log(`${filePath} updated: softwareVersion is set to ${softwareVersion}`); diff --git a/scripts/ci/yaml-file-proxy.js b/scripts/ci/yaml-file-proxy.js new file mode 100644 index 00000000..40d81b28 --- /dev/null +++ b/scripts/ci/yaml-file-proxy.js @@ -0,0 +1,22 @@ +import fs from "node:fs"; +import yaml from "yaml"; + +class YamlFileProxy { + #filePath; + + constructor(filePath) { + this.#filePath = filePath; + } + + read() { + const fileContents = fs.readFileSync(this.#filePath, 'utf8'); + return yaml.parse(fileContents); + } + + write(data) { + const yamlString = yaml.stringify(data); + fs.writeFileSync(this.#filePath, yamlString, 'utf8'); + } +} + +export default YamlFileProxy; \ No newline at end of file diff --git a/src/app/App.tsx b/src/app/App.tsx index b8c7ea38..3a604c3c 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,4 +1,4 @@ -import "bootstrap-italia/dist/css/bootstrap-italia.min.css"; +import "bootstrap-switzerland/dist/css/bootstrap-switzerland.min.css"; import { NotificationManager } from "design-react-kit"; import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/src/app/components/Editor.tsx b/src/app/components/Editor.tsx index 1267d62b..06a47b75 100644 --- a/src/app/components/Editor.tsx +++ b/src/app/components/Editor.tsx @@ -486,7 +486,7 @@ export default function Editor() { fieldName="applicationSuite" />

-
+
{languages @@ -495,7 +495,7 @@ export default function Editor() { className="languages" key={`publiccodeyml.description.${lang}`} > -
+
{t(`publiccodeyml.description.title`)} (in{" "} {displayName(lang, undefined, "language")})
@@ -554,7 +554,7 @@ export default function Editor() {
- + fieldName="longDescription" lang={lang} required diff --git a/src/app/components/EditorAwards.tsx b/src/app/components/EditorAwards.tsx index 50514a41..0558b351 100644 --- a/src/app/components/EditorAwards.tsx +++ b/src/app/components/EditorAwards.tsx @@ -70,7 +70,7 @@ export default function EditorAwards({ lang }: Props): JSX.Element { return (
-
+