From bbbc7df4821d25a112b0db950d4c119ad0268172 Mon Sep 17 00:00:00 2001 From: svtslv Date: Sun, 8 Mar 2020 05:35:51 +0200 Subject: [PATCH] 0.0.1 --- .editorconfig | 13 ++ .gitignore | 50 +++++ .travis.yml | 21 ++ README.md | 54 ++++++ angular.json | 181 ++++++++++++++++++ angular.webpack.js | 24 +++ e2e/common-setup.ts | 41 ++++ e2e/eslintrc.e2e.json | 6 + e2e/main.e2e.ts | 27 +++ e2e/tsconfig.e2e.json | 13 ++ electron-builder.json | 40 ++++ eslintrc.json | 24 +++ main.ts | 75 ++++++++ package.json | 90 +++++++++ screenshots/public.png | Bin 0 -> 85291 bytes src/app/app-routing.module.ts | 15 ++ src/app/app.component.spec.ts | 21 ++ src/app/app.component.ts | 21 ++ src/app/app.module.ts | 43 +++++ src/app/pages/home/home.component.html | 84 ++++++++ src/app/pages/home/home.component.ts | 91 +++++++++ .../components/page-not-found.component.html | 1 + .../components/page-not-found.component.ts | 11 ++ .../shared/directives/webview.directive.ts | 6 + src/app/shared/services/electron.service.ts | 34 ++++ src/app/shared/services/storage.service.ts | 16 ++ src/assets/.gitkeep | 0 src/environments/environment.dev.ts | 9 + src/environments/environment.prod.ts | 4 + src/environments/environment.ts | 4 + src/environments/environment.web.ts | 9 + src/eslintrc.config.json | 6 + src/favicon.256x256.png | Bin 0 -> 5033 bytes src/favicon.512x512.png | Bin 0 -> 10731 bytes src/favicon.icns | Bin 0 -> 78529 bytes src/favicon.ico | Bin 0 -> 361102 bytes src/favicon.png | Bin 0 -> 5033 bytes src/index.html | 15 ++ src/karma.conf.js | 45 +++++ src/main.ts | 18 ++ src/polyfills-test.ts | 2 + src/polyfills.ts | 63 ++++++ src/styles.scss | 11 ++ src/test.ts | 20 ++ src/tsconfig.app.json | 12 ++ src/tsconfig.spec.json | 24 +++ src/typings.d.ts | 9 + tsconfig-serve.json | 26 +++ tsconfig.json | 29 +++ 49 files changed, 1308 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 README.md create mode 100644 angular.json create mode 100644 angular.webpack.js create mode 100644 e2e/common-setup.ts create mode 100644 e2e/eslintrc.e2e.json create mode 100644 e2e/main.e2e.ts create mode 100644 e2e/tsconfig.e2e.json create mode 100644 electron-builder.json create mode 100644 eslintrc.json create mode 100644 main.ts create mode 100644 package.json create mode 100644 screenshots/public.png create mode 100644 src/app/app-routing.module.ts create mode 100644 src/app/app.component.spec.ts create mode 100644 src/app/app.component.ts create mode 100644 src/app/app.module.ts create mode 100644 src/app/pages/home/home.component.html create mode 100644 src/app/pages/home/home.component.ts create mode 100644 src/app/shared/components/page-not-found.component.html create mode 100644 src/app/shared/components/page-not-found.component.ts create mode 100644 src/app/shared/directives/webview.directive.ts create mode 100644 src/app/shared/services/electron.service.ts create mode 100644 src/app/shared/services/storage.service.ts create mode 100644 src/assets/.gitkeep create mode 100644 src/environments/environment.dev.ts create mode 100644 src/environments/environment.prod.ts create mode 100644 src/environments/environment.ts create mode 100644 src/environments/environment.web.ts create mode 100644 src/eslintrc.config.json create mode 100644 src/favicon.256x256.png create mode 100644 src/favicon.512x512.png create mode 100644 src/favicon.icns create mode 100644 src/favicon.ico create mode 100644 src/favicon.png create mode 100644 src/index.html create mode 100644 src/karma.conf.js create mode 100644 src/main.ts create mode 100644 src/polyfills-test.ts create mode 100644 src/polyfills.ts create mode 100644 src/styles.scss create mode 100644 src/test.ts create mode 100644 src/tsconfig.app.json create mode 100644 src/tsconfig.spec.json create mode 100644 src/typings.d.ts create mode 100644 tsconfig-serve.json create mode 100644 tsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e87a00 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23ef933 --- /dev/null +++ b/.gitignore @@ -0,0 +1,50 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +/app-builds +/release +main.js +src/**/*.js +!src/karma.conf.js +*.js.map + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +testem.log +/typings +package-lock.json + +# e2e +/e2e/*.js +!/e2e/protractor.conf.js +/e2e/*.map + +# System Files +.DS_Store +Thumbs.db diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..92087c3 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,21 @@ +os: + - linux + - osx +language: node_js +node_js: + - '12' + - '10' +dist: xenial +sudo: required +services: + - xvfb +before_script: + - export DISPLAY=:99.0 +install: + - npm set progress=false + - npm install +script: + - ng lint + - npm run test + - npm run e2e + - npm run build diff --git a/README.md b/README.md new file mode 100644 index 0000000..4bdbeb8 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +## WebDAV GUI + +## Table of Contents + +- [Description](#description) +- [Screenshots](#screenshots) +- [Installation](#installation) +- [License](#license) + +## Description + +WebDAV Server for MacOS, Windows and Linux + +## Screenshots + +![](https://github.com/svtslv/webdav-gui/raw/master/screenshots/public.png) + +## Installation + +```bash +git clone https://github.com/svtslv/webdav-gui +``` + +```bash +cd webdav-gui +``` + +```bash +npm install +``` + +### MacOS + +```bash +npm run electron:mac +``` + +### Windows + +```bash +npm run electron:windows +``` + +### Linux + +```bash +npm run electron:linux +``` + +## License + +MIT + + diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..5ce3815 --- /dev/null +++ b/angular.json @@ -0,0 +1,181 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "angular-electron": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "architect": { + "build": { + "builder": "@angular-builders/custom-webpack:browser", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "main": "src/main.ts", + "tsConfig": "src/tsconfig.app.json", + "polyfills": "src/polyfills.ts", + "assets": [ + "src/assets", + "src/favicon.ico", + "src/favicon.png", + "src/favicon.icns", + "src/favicon.256x256.png", + "src/favicon.512x512.png" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [], + "customWebpackConfig": { + "path": "./angular.webpack.js" + } + }, + "configurations": { + "dev": { + "optimization": false, + "outputHashing": "all", + "sourceMap": true, + "extractCss": true, + "namedChunks": false, + "aot": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": false, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.dev.ts" + } + ] + }, + "web": { + "optimization": false, + "outputHashing": "all", + "sourceMap": true, + "extractCss": true, + "namedChunks": false, + "aot": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": false, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.web.ts" + } + ] + }, + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ] + } + } + }, + "serve": { + "builder": "@angular-builders/custom-webpack:dev-server", + "options": { + "browserTarget": "angular-electron:build" + }, + "configurations": { + "dev": { + "browserTarget": "angular-electron:build:dev" + }, + "web": { + "browserTarget": "angular-electron:build:web" + }, + "production": { + "browserTarget": "angular-electron:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "angular-electron:build" + } + }, + "test": { + "builder": "@angular-builders/custom-webpack:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills-test.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js", + "scripts": [], + "styles": [ + "src/styles.scss" + ], + "assets": [ + "src/assets", + "src/favicon.ico", + "src/favicon.png", + "src/favicon.icns", + "src/favicon.256x256.png", + "src/favicon.512x512.png" + ], + "customWebpackConfig": { + "path": "./angular.webpack.js", + "target": "electron-renderer" + } + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "eslintConfig": "src/eslintrc.config.json", + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "angular-electron-e2e": { + "root": "e2e", + "projectType": "application", + "architect": { + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "eslintConfig": "e2e/eslintrc.e2e.json", + "tsConfig": [ + "e2e/tsconfig.e2e.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + } + }, + "defaultProject": "angular-electron", + "schematics": { + "@schematics/angular:component": { + "prefix": "app", + "styleext": "scss" + }, + "@schematics/angular:directive": { + "prefix": "app" + } + } +} diff --git a/angular.webpack.js b/angular.webpack.js new file mode 100644 index 0000000..88cdcc7 --- /dev/null +++ b/angular.webpack.js @@ -0,0 +1,24 @@ +/** + * Custom angular webpack configuration + */ + +module.exports = (config, options) => { + config.target = 'electron-renderer'; + if (options.customWebpackConfig.target) { + config.target = options.customWebpackConfig.target; + } else if (options.fileReplacements) { + for(let fileReplacement of options.fileReplacements) { + if (fileReplacement.replace !== 'src/environments/environment.ts') { + continue; + } + + let fileReplacementParts = fileReplacement['with'].split('.'); + if (['dev', 'prod', 'test', 'electron-renderer'].indexOf(fileReplacementParts[1]) < 0) { + config.target = fileReplacementParts[1]; + } + break; + } + } + + return config; +} diff --git a/e2e/common-setup.ts b/e2e/common-setup.ts new file mode 100644 index 0000000..577604d --- /dev/null +++ b/e2e/common-setup.ts @@ -0,0 +1,41 @@ +const Application = require('spectron').Application; +const electronPath = require('electron'); // Require Electron from the binaries included in node_modules. +const path = require('path'); + +export default function setup(): void { + beforeEach(async function () { + this.app = new Application({ + // Your electron path can be any binary + // i.e for OSX an example path could be '/Applications/MyApp.app/Contents/MacOS/MyApp' + // But for the sake of the example we fetch it from our node_modules. + path: electronPath, + + // Assuming you have the following directory structure + + // |__ my project + // |__ ... + // |__ main.js + // |__ package.json + // |__ index.html + // |__ ... + // |__ test + // |__ spec.js <- You are here! ~ Well you should be. + + // The following line tells spectron to look and use the main.js file + // and the package.json located 1 level above. + args: [path.join(__dirname, '..')], + webdriverOptions: {} + }); + await this.app.start(); + const browser = this.app.client; + await browser.waitUntilWindowLoaded(); + + browser.timeouts('script', 15000); + }); + + afterEach(function () { + if (this.app && this.app.isRunning()) { + return this.app.stop(); + } + }); +} diff --git a/e2e/eslintrc.e2e.json b/e2e/eslintrc.e2e.json new file mode 100644 index 0000000..51edf19 --- /dev/null +++ b/e2e/eslintrc.e2e.json @@ -0,0 +1,6 @@ +{ + "extends": "../eslintrc.json", + "parserOptions": { + "project": ["e2e/tsconfig.e2e.json"] + } +} diff --git a/e2e/main.e2e.ts b/e2e/main.e2e.ts new file mode 100644 index 0000000..d1b870a --- /dev/null +++ b/e2e/main.e2e.ts @@ -0,0 +1,27 @@ +import {expect} from 'chai'; +import {SpectronClient} from 'spectron'; + +import commonSetup from './common-setup'; + +describe('WebDAV GUI App', function () { + commonSetup.apply(this); + + let browser: any; + let client: SpectronClient; + + beforeEach(function () { + client = this.app.client; + browser = client as any; + }); + + it('should display message saying App works !', async function () { + const text = await browser.getText('app-home h1'); + expect(text).to.equal('WebDAV GUI'); + }); + + it('creates initial windows', async function () { + const count = await client.getWindowCount(); + expect(count).to.equal(1); + }); + +}); diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json new file mode 100644 index 0000000..d490130 --- /dev/null +++ b/e2e/tsconfig.e2e.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "types": [ + "mocha" + ] + }, + "include": [ + "**/*.ts" + ] +} diff --git a/electron-builder.json b/electron-builder.json new file mode 100644 index 0000000..d91b1cc --- /dev/null +++ b/electron-builder.json @@ -0,0 +1,40 @@ +{ + "productName": "webdav-gui", + "directories": { + "output": "release/" + }, + "files": [ + "**/*", + "!**/*.ts", + "!*.code-workspace", + "!LICENSE.md", + "!package.json", + "!package-lock.json", + "!src/", + "!e2e/", + "!hooks/", + "!angular.json", + "!_config.yml", + "!karma.conf.js", + "!tsconfig.json", + "!tslint.json" + ], + "win": { + "icon": "dist", + "target": [ + "portable" + ] + }, + "mac": { + "icon": "dist", + "target": [ + "dmg" + ] + }, + "linux": { + "icon": "dist", + "target": [ + "AppImage" + ] + } +} diff --git a/eslintrc.json b/eslintrc.json new file mode 100644 index 0000000..913e297 --- /dev/null +++ b/eslintrc.json @@ -0,0 +1,24 @@ +{ + "env": { + "browser": true, + "node": true, + "es6": true, + "es2017": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "tsconfigRootDir": "." + }, + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/no-empty-function": 0, + "@typescript-eslint/no-var-requires": 0, + "@typescript-eslint/no-explicit-any": 0 + } +} diff --git a/main.ts b/main.ts new file mode 100644 index 0000000..fc052f2 --- /dev/null +++ b/main.ts @@ -0,0 +1,75 @@ +import { app, BrowserWindow, screen } from 'electron'; +import * as path from 'path'; +import * as url from 'url'; + +let win: BrowserWindow = null; +const args = process.argv.slice(1), + serve = args.some(val => val === '--serve'); + +function createWindow(): BrowserWindow { + // Create the browser window. + win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + nodeIntegration: true, + allowRunningInsecureContent: Boolean(serve), + }, + }); + + if (serve) { + require('electron-reload')(__dirname, { + electron: require(`${__dirname}/node_modules/electron`) + }); + win.loadURL('http://localhost:4200').then(); + } else { + win.loadURL(url.format({ + pathname: path.join(__dirname, 'dist/index.html'), + protocol: 'file:', + slashes: true + })).then(); + } + + if (serve) { + win.webContents.openDevTools(); + } + + // Emitted when the window is closed. + win.on('closed', () => { + // Dereference the window object, usually you would store window + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + win = null; + }); + + return win; +} + +try { + + // This method will be called when Electron has finished + // initialization and is ready to create browser windows. + // Some APIs can only be used after this event occurs. + app.on('ready', createWindow); + + // Quit when all windows are closed. + app.on('window-all-closed', () => { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit(); + } + }); + + app.on('activate', () => { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (win === null) { + createWindow(); + } + }); + +} catch (e) { + // Catch Error + // throw e; +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d33471a --- /dev/null +++ b/package.json @@ -0,0 +1,90 @@ +{ + "name": "webdav-gui", + "version": "0.0.1", + "description": "WebDAV GUI", + "homepage": "https://github.com/svtslv/webdav-gui", + "author": "Sviatoslav H", + "keywords": [], + "main": "main.js", + "private": true, + "scripts": { + "postinstall": "electron-builder install-app-deps", + "ng": "ng", + "start": "npm-run-all -p electron:serve ng:serve", + "build": "npm run electron:serve-tsc && ng build", + "build:dev": "npm run build -- -c dev", + "build:prod": "npm run build -- -c production", + "ng:serve": "ng serve", + "ng:serve:web": "ng serve -c web -o", + "electron:serve-tsc": "tsc -p tsconfig-serve.json", + "electron:serve": "wait-on http-get://localhost:4200/ && npm run electron:serve-tsc && electron . --serve", + "electron:local": "npm run build:prod && electron .", + "electron:linux": "npm run build:prod && electron-builder build --linux", + "electron:windows": "npm run build:prod && electron-builder build --windows", + "electron:mac": "npm run build:prod && electron-builder build --mac", + "test": "ng test", + "e2e": "npm run build:prod && cross-env TS_NODE_PROJECT='e2e/tsconfig.e2e.json' mocha --timeout 300000 --require ts-node/register e2e/**/*.e2e.ts", + "version": "conventional-changelog -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md", + "lint": "ng lint" + }, + "dependencies": { + "@angular/animations": "9.0.2", + "@angular/cdk": "9.1.1", + "@angular/material": "9.1.1", + "material-icons": "0.3.1", + "webdav-cli": "^0.2.1" + }, + "devDependencies": { + "@angular-builders/custom-webpack": "8.4.1", + "@angular-devkit/build-angular": "0.900.3", + "@angular-eslint/builder": "0.0.1-alpha.18", + "@angular/cli": "9.0.3", + "@angular/common": "9.0.2", + "@angular/compiler": "9.0.2", + "@angular/compiler-cli": "9.0.2", + "@angular/core": "9.0.2", + "@angular/forms": "9.0.2", + "@angular/language-service": "9.0.2", + "@angular/platform-browser": "9.0.2", + "@angular/platform-browser-dynamic": "9.0.2", + "@angular/router": "9.0.2", + "@ngx-translate/core": "12.1.1", + "@ngx-translate/http-loader": "4.0.0", + "@types/jasmine": "3.5.6", + "@types/jasminewd2": "2.0.8", + "@types/mocha": "7.0.1", + "@types/node": "12.11.1", + "@typescript-eslint/eslint-plugin": "2.20.0", + "@typescript-eslint/parser": "2.20.0", + "chai": "4.2.0", + "codelyzer": "5.1.2", + "conventional-changelog-cli": "2.0.32", + "core-js": "3.1.4", + "cross-env": "7.0.0", + "electron": "8.0.1", + "electron-builder": "22.3.2", + "electron-reload": "1.5.0", + "eslint": "6.8.0", + "eslint-plugin-import": "2.20.1", + "jasmine-core": "3.5.0", + "jasmine-spec-reporter": "4.2.1", + "karma": "4.4.1", + "karma-coverage-istanbul-reporter": "2.1.1", + "karma-electron": "6.3.0", + "karma-jasmine": "3.1.1", + "karma-jasmine-html-reporter": "1.5.2", + "mocha": "7.0.1", + "npm-run-all": "4.1.5", + "rxjs": "6.5.4", + "spectron": "10.0.1", + "ts-node": "8.3.0", + "tslib": "1.10.0", + "typescript": "3.7.5", + "wait-on": "4.0.0", + "webdriver-manager": "12.1.7", + "zone.js": "0.10.2" + }, + "engines": { + "node": ">=10.13.0" + } +} diff --git a/screenshots/public.png b/screenshots/public.png new file mode 100644 index 0000000000000000000000000000000000000000..6e718bf983c830dcbf4ff0d7d5e7cbb49d76c4f0 GIT binary patch literal 85291 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 KHaaI+7Vv)vm!s?e literal 0 HcmV?d00001 diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts new file mode 100644 index 0000000..ebe54d8 --- /dev/null +++ b/src/app/app-routing.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { HomeComponent } from './pages/home/home.component'; +import { PageNotFoundComponent } from './shared/components/page-not-found.component'; + +const routes: Routes = [ + { path: '', component: HomeComponent }, + { path: '**', component: PageNotFoundComponent }, +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes, { useHash: true })], + exports: [RouterModule] +}) +export class AppRoutingModule {} diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 0000000..34b7e0e --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,21 @@ +import { TestBed, async } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { ElectronService } from './shared/services/electron.service'; + +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [AppComponent], + providers: [ElectronService], + imports: [RouterTestingModule, TranslateModule.forRoot()] + }).compileComponents(); + })); + + it('should create the app', async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + })); +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..7ca6c31 --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,21 @@ +import { Component } from '@angular/core'; +import { ElectronService } from './shared/services/electron.service'; + +@Component({ + selector: 'app-root', + template: `` +}) +export class AppComponent { + constructor( + public electronService: ElectronService + ) { + if (electronService.isElectron) { + console.log(process.env); + console.log('Mode electron'); + console.log('Electron ipcRenderer', electronService.ipcRenderer); + console.log('NodeJS childProcess', electronService.childProcess); + } else { + console.log('Mode web'); + } + } +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100644 index 0000000..5fd81a1 --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,43 @@ +import { ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDividerModule } from '@angular/material/divider'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { HomeComponent } from './pages/home/home.component'; +import { PageNotFoundComponent } from './shared/components/page-not-found.component'; +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { WebviewDirective } from './shared/directives/webview.directive'; +import { ElectronService } from './shared/services/electron.service'; +import { StorageService } from './shared/services/storage.service'; + +@NgModule({ + declarations: [ + AppComponent, + HomeComponent, + PageNotFoundComponent, + WebviewDirective, + ], + imports: [ + BrowserModule, + AppRoutingModule, + MatButtonModule, + MatFormFieldModule, + MatInputModule, + ReactiveFormsModule, + BrowserAnimationsModule, + MatIconModule, + MatCheckboxModule, + MatSelectModule, + MatDividerModule, + ], + providers: [ElectronService, StorageService], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html new file mode 100644 index 0000000..bccd099 --- /dev/null +++ b/src/app/pages/home/home.component.html @@ -0,0 +1,84 @@ +
+
+

WebDAV GUI

+ +
+ + + Path + + folder + + + + Rights + + {{ item }} + + +
+ +
+ + + Host + + + + + Port + + +
+
+ + + Username + + + + + Password + + +
+
+ + + SSL Key + + attach_file + + + + SSL Cert + + attach_file + +
+ +
+ +
+
+ Enable SSL + Enable Digest +
+ +
+ +
+ + + + + + +
+
+
+
+
{{ log }}
+
+
+
diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts new file mode 100644 index 0000000..64e2583 --- /dev/null +++ b/src/app/pages/home/home.component.ts @@ -0,0 +1,91 @@ +import { Component, ElementRef, OnInit, ViewChild, NgZone } from '@angular/core'; +import { WebdavCli, WebdavCliServer, getRandomString, RIGHTS } from 'webdav-cli'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { ElectronService } from "../../shared/services/electron.service"; +import { StorageService } from "../../shared/services/storage.service"; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html' +}) +export class HomeComponent implements OnInit { + @ViewChild('logsRef') logsRef: ElementRef; + checkoutForm: FormGroup; + webdavCliRights = RIGHTS; + webdavCliServer: WebdavCliServer; + logs = ['Homepage: https://github.com/svtslv/webdav-gui']; + + constructor( + public ngZone: NgZone, + public formBuilder: FormBuilder, + public storageService: StorageService, + public electronService: ElectronService, + ) {} + + ngOnInit(): void { + const config = this.storageService.getLocalStorage('webDAVConfig') || {}; + + const defaultConfig = { + path: './', + host: '127.0.0.1', + port: 1900, + digest: false, + username: getRandomString(16), + password: getRandomString(16), + ssl: false, + sslKey: undefined, + sslCert: undefined, + rights: undefined, + }; + + this.checkoutForm = this.formBuilder.group({ ...defaultConfig, ...config }); + } + + async addLogs(logs) { + this.logs = [...this.logs.slice(0, 1000), ...logs]; + setTimeout(() => this.logsRef.nativeElement.scrollTop = this.logsRef.nativeElement.scrollHeight, 100); + } + + async getPath() { + const response = await this.electronService.remote.dialog.showOpenDialog({ properties: ['openDirectory']}); + console.log(response.filePaths[0]); + return this.checkoutForm.patchValue({ path: response.filePaths[0] }); + } + + async getSSLKey() { + const response = await this.electronService.remote.dialog.showOpenDialog({ properties: ['openFile']}); + return this.checkoutForm.patchValue({ sslKey: response.filePaths[0] }); + } + + async getSSLCert() { + const response = await this.electronService.remote.dialog.showOpenDialog({ properties: ['openFile']}); + return this.checkoutForm.patchValue({ sslCert: response.filePaths[0] }); + } + + async onWebdavStart(config) { + this.storageService.setLocalStorage('webDAVConfig', config); + config.rights = config.rights && config.rights[0] ? config.rights : undefined; + + const webdavCli = new WebdavCli(config); + this.webdavCliServer = await webdavCli.start(); + + if(this.webdavCliServer && this.webdavCliServer.config) { + this.addLogs([ + `Server running at ${ this.webdavCliServer.config.url }`, + `[rights]: ${ this.webdavCliServer.config.rights }`, + `[digest]: ${ this.webdavCliServer.config.digest }`, + `username: ${ this.webdavCliServer.config.username }`, + `password: ${ this.webdavCliServer.config.password }`, + ]); + this.webdavCliServer.on('log', (ctx, fs, path, log) => { + this.ngZone.run(() => this.addLogs([log])); + }); + } + } + + async onWebdavStop() { + await this.webdavCliServer.stopAsync(); + this.webdavCliServer = null; + this.addLogs(['Server is stopped']); + } +} diff --git a/src/app/shared/components/page-not-found.component.html b/src/app/shared/components/page-not-found.component.html new file mode 100644 index 0000000..3105220 --- /dev/null +++ b/src/app/shared/components/page-not-found.component.html @@ -0,0 +1 @@ +

Page Not Found

diff --git a/src/app/shared/components/page-not-found.component.ts b/src/app/shared/components/page-not-found.component.ts new file mode 100644 index 0000000..bcb33b1 --- /dev/null +++ b/src/app/shared/components/page-not-found.component.ts @@ -0,0 +1,11 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-page-not-found', + templateUrl: './page-not-found.component.html' +}) +export class PageNotFoundComponent implements OnInit { + constructor() {} + + ngOnInit(): void {} +} diff --git a/src/app/shared/directives/webview.directive.ts b/src/app/shared/directives/webview.directive.ts new file mode 100644 index 0000000..c80502d --- /dev/null +++ b/src/app/shared/directives/webview.directive.ts @@ -0,0 +1,6 @@ +import { Directive } from '@angular/core'; + +@Directive({ + selector: 'webview' +}) +export class WebviewDirective {} diff --git a/src/app/shared/services/electron.service.ts b/src/app/shared/services/electron.service.ts new file mode 100644 index 0000000..9017c8a --- /dev/null +++ b/src/app/shared/services/electron.service.ts @@ -0,0 +1,34 @@ +import { Injectable } from '@angular/core'; + +// If you import a module but never use any of the imported values other than as TypeScript types, +// the resulting javascript file will look as if you never imported the module at all. +import { ipcRenderer, webFrame, remote } from 'electron'; +import * as childProcess from 'child_process'; +import * as fs from 'fs'; + +@Injectable({ + providedIn: 'root' +}) +export class ElectronService { + ipcRenderer: typeof ipcRenderer; + webFrame: typeof webFrame; + remote: typeof remote; + childProcess: typeof childProcess; + fs: typeof fs; + + get isElectron(): boolean { + return !!(window && window.process && window.process.type); + } + + constructor() { + // Conditional imports + if (this.isElectron) { + this.ipcRenderer = window.require('electron').ipcRenderer; + this.webFrame = window.require('electron').webFrame; + this.remote = window.require('electron').remote; + + this.childProcess = window.require('child_process'); + this.fs = window.require('fs'); + } + } +} diff --git a/src/app/shared/services/storage.service.ts b/src/app/shared/services/storage.service.ts new file mode 100644 index 0000000..cc0eb1a --- /dev/null +++ b/src/app/shared/services/storage.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; + +@Injectable() +export class StorageService { + getLocalStorage(key: string) { + if (typeof window !== 'undefined') { + return JSON.parse(window.localStorage.getItem(key)); + } + } + + setLocalStorage(key: string, data: any) { + if (typeof window !== 'undefined') { + return window.localStorage.setItem(key, JSON.stringify(data)); + } + } +} diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/environments/environment.dev.ts b/src/environments/environment.dev.ts new file mode 100644 index 0000000..7953ebf --- /dev/null +++ b/src/environments/environment.dev.ts @@ -0,0 +1,9 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `index.ts`, but if you do +// `ng build --env=prod` then `index.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const AppConfig = { + production: false, + environment: 'DEV' +}; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..047b3fc --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,4 @@ +export const AppConfig = { + production: true, + environment: 'PROD' +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..ca0b6a9 --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,4 @@ +export const AppConfig = { + production: false, + environment: 'LOCAL' +}; diff --git a/src/environments/environment.web.ts b/src/environments/environment.web.ts new file mode 100644 index 0000000..7953ebf --- /dev/null +++ b/src/environments/environment.web.ts @@ -0,0 +1,9 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `index.ts`, but if you do +// `ng build --env=prod` then `index.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const AppConfig = { + production: false, + environment: 'DEV' +}; diff --git a/src/eslintrc.config.json b/src/eslintrc.config.json new file mode 100644 index 0000000..ad87184 --- /dev/null +++ b/src/eslintrc.config.json @@ -0,0 +1,6 @@ +{ + "extends": "../eslintrc.json", + "parserOptions": { + "project": ["src/tsconfig.app.json", "src/tsconfig.spec.json"] + } +} diff --git a/src/favicon.256x256.png b/src/favicon.256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab23f411ab7fda8eaef77fcfb41e484738cbcca GIT binary patch literal 5033 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 literal 0 HcmV?d00001 diff --git a/src/favicon.512x512.png b/src/favicon.512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..04339a0b1bb3e2481c6c8f271549e5a630937b2c GIT binary patch literal 10731 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 literal 0 HcmV?d00001 diff --git a/src/favicon.icns b/src/favicon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b1f50353e1c64b0fd02f7343d6a0acade813fa42 GIT binary patch literal 78529 zcmeFZcT|&K*ESduigY7LZw5pWq=hP7LkCe*I!Fx!q)8WqL=>Vl1ymwUsVZH9AVs1y zh0ubuAVv5|=*55{0?y%i-uY(cd)NFiv)0U7-&zmlCb`$iIcJx%_qDHcZZIAJArJ=T z4;T+cbqItt^!}xb#++9)6@iI4gO*ee~&POYn!fH4`_rmMHyU;WLW*+S3Mu* z4B6=aH6DV!7VeDyex~88rxi(_L6(2qRXN)?20qT7RU*`cpZ}8d1W5M zHMiUrEmC_!gWHYX`8@x4MmG9MONXI6l&!~wWBhx}1fh#i+e-hd*B@fXNd6tGYbH~i zY5o8B@}q!F2jR}S_GP!0yyq;5YLDIwuc#xu8>CAhD%+Zf@}J2QB6si&T#J72#w%IRL*NZ2)W>_-83u;^5Am??S+jl(wx)cdw*A**Uh`u52THZzF5SQOc) zJyFvAl{f9?e&q&2@N}X(R{dLRP*F$I`PQBm6Xx!aU<_(6zC)AGd$C@qOGx3Y%fhoE z4>LiU(2bABa_-f;R*Wo5&UTacGL;bSI_Fz8TyLXeDLz)q&nSUrqq;iG-5SD3dJ-Wj z1byI-u59ZHb@qF+?eM2=L^!ajvUvCGaGh})?#GRl9`f}r9S53m`@7C2i)B5ci+^)h z*xAuQLglF~fz$mXS9Y+Kqe81D<-@yL74)E@L9yX5VyyAGB=4 z?X2wVCOw2)P;+dTqiaCGTC7gV)+h4%!ZYP5B9n4RRiy!Hk74S58_{OwnA4pIRC~VX z{B~BYMm&D!=v29Cyr1N(x-y*>lubkHg}WC=DIlpG4iQ4TLh{IUM4`_8Q$d+g3Zv^% z6(TN`}{x&kOEjuOL3AN{qYW^5fZ{^qR z!;hK7_!N#9c1~1=y@@^Lx2pJ2ztuU?!SB_kOTo5ExRwdZDP?+Vr5WDp8C*_$XFX&~u1{o3 zxKbi6YB{JXHo{Ld-V2!OrbuC3#}Qbe&dac(7vCF%^peVIz79Nc;67)9YGy9=@$V*w z5q_%^qOPD1!hjc*kC?(Y9Wrzt6P|j{U-z6(A^d(sc1rYjFyA<*kjze8>u|Xc9aJ^K zWHjN4!)vq|AZA0Ivy&ASsrwE+B1hq6@Pt|HaKaP6$*OH3=QzBxL(|4ZXFaz!X>;-w zf!`dQ`6JzOs#MEV%fj9du2I5DMhJ~-${$HSzkJWCs}!nw_`Dm@aq#y0&Y-^Vh@dV} z*QYk_z176-hW#D@88@Czw8k;XW9(&{@TE^50DT6*SZnWP62@vNb!#W z6?4JQURVj8<2>cF+D%ThP)osBcnA$;brQw7kPgvEI-KP**?2>=V%Vt3*$;!tnaAQa zM9u30)H^c=k7aM3ndX7>d)$8!_hCZuIGo?l-{_1t=InjEa409SPx(AL-~qlR@>LYg zU8`@9noXz$lbw=o?r!ek&>;}6r{Yg-DmOd$Wr)X`6X!#7E5jILDW2W}tAbxsdwLz? zt=v*ZRwFwFu5>n;`?b92HM!B*VOJIQ^z-|a>(!CbdoxGmMyZ8$yr(o&PR$(AE}niG z^e)PeqhfeBowX#n{_?WZh1vvkuu|VJ^`&gxPw)AZ_pKj&U=^Ww#O!yw*V_-{QSG0P zBuaB>oJ7_yMU;(1C5-q^`reV5n|xK*K2ZL`{(?DCZHZbDrczSV|EphlpV{ukb}QH9 z_eONxMauSi!-Y|%$lQ_pW3P?TQ$ldAo4%-=J6A-dkbfr_uXKJQcOhm^{X^_*$XTwUK(Em3dy*o@k4H(8EOY&+iP{#FYQwn90jAuWE& z3M@1ljiM9h>w^d*@r0^3PIaA#-%%IwTHtjOhR1onsg<0K*Z4Y+j*k?cDp)p3;@3bTbOqpXua@`6 zs_HC8UG{%2IiQ;rd|J*g^Cc;Iz0o4B83~!)=)5=YKOl*06@ zQGR+;9>G(*@TxB9ockG}wf^j6HKz5XCFLgy)y(H8H}yxEek+M?v!XJk z=QVGv6LGz3m;80UBP1hM-M$Fd@%uqktwZhn?GDC}kdR+9=bh5JlEWR*2Nvk}qL^T{ zx#68Rl{yV-$T-2p0qyvSAWO7M7QwNlA%L=Ol*G$-0?|k6;hcO#Xu55Ml51m15c@=4 z!^c2Z&w$9flHKxDr2kaU+2^}a{*b6&8(LH~MG-rqQ8X#OZW@_(r> zt-||kQu|snNGVkNZ_>~gq%FnDyiz88Wj zXSvx)D0)mvuGQ$&S;2fjrA1n)E zc8(O=+24P8sy~>kTTwXrDP%o^c!eSk%Mgg3BpvH^WFyauWVortmO$2@5^X5Z&WA;g z*yJC|ru9LopB07Ul5nad&g9%t>q$S&F3+r7vD%Y5N94S3G(TB#>Cu#KTiGJWEXtA$ zLq{xJWrokf&^Nh0D{8gKKiL>@JFhNZG)d5m@UKNxZNeP|t zoe3k|%lsuhV~gvj2v)s#KMJ{Cr~}jI?`V8kX+VV>S5YjZWy5RIuVh1-FHl%;=BEuP zERwV9I2va9?3W1k)nyjxD>se}TOum**_6rW0wFsVC?}Sf?3?l#p)9M}(B_<77Y2(L zI>sj17GW8tTIZPr(H^u#d?ZhG!p$kmY^j!GStfq_Bsx*;GG&`cJAxT{6>tt?{8FOr z#tqRVd_BzA)Df}xok&AJ@Q12hUO`hsutdSD>hVO_)rW3sKf__NGPH0i-S?hr;xO(< zZ=qQzolz)K<|up_KZ#S3*G*XB{?&()#iok z&1_Lvt5{+M8(6crEtt4qTDW1-v|)Rjeo(@F{A#+%eZ1^Tn)CyI*D+>S!HP)}%c#8d zC#dtxPLP$-9CmE-UG4seD+cktd8Ikb+p4Ea^KX@y?sCq^KYu#XhzoEP+>p(YzzA==qnOEZ_Iya zUpHp8f8u-$E+xXqb;ZDlDJoC=Mb7;%>W_~7(AGO2#dC5}VUbSiAg-S`&4087Q6$tL zFH>x>(?xk&Qnz`sJ`0|w)D~G5Gzy#G@s`b}5o+n-FjZ5k>3NisnJGM2hBZCh`m&K~ z;%V<=+m;167c!9s6n<<3B`U&XS6T7Ck_6^tknHL^a1+Puop6F8bTtCj5e`cf2tP7* zp+@+n3?lqtxaN1~i|0`*&kK@$xvcwmm$J`mvd9=vt}_IpSDG(V{ua?)xW5{DH(#WP zZ%|IWhHscX@b@I9@J64MSQBnr;zkVayCO>Ptx*H zDF4PO5-(+q@c_Buacn zzDWm#*z^3sRKxas z|LB-e%`#SgY5e^8CtkK0552~Ri~L_CfRWO}#U#%%DjW4+4Uip7C8}t(xb8lw%+wDWXBid8sbbm$&$952;m|N+g>OF97su3M zWi`z`?cd%ZN>`|wetL6*Y5T?re+CS@$;5e1!C@U!DhJT|7Ueu@OPRt!$t$YsAYG-b zvE1zL!TmAKmcq!a3O~TJoDMu1i9Pm4t|_4wg_1jEV4cAyrD}@DfB$k6o^9f2LOp*B z;V!A_d6gI5WRm^Cq=h)rW`YC_oQXgk?m+0kOP5i5Jm2L?Zu{Z9U(TNZx1I+7Y)A#6 zs-AK_k7h}!EX+GglIY-j^cL?Pub&~L{CWb$aruU{}d5-~|H=Q12D3!kAwL933;JG7$sChqqyR2!A#2L~~rg104p? zAlQ{3xa3poej~~)9|LP{jPNU&!aPylhbl>Kbet(sjkO`2-}ISfjVN!n*`1=cFH(z& zm@Am+kS`L85KM+9yNQDlRgLoYkpxC?`-TL_6k-k!zg(a)`*y#i1+$^r=i(` z+x}62&oVshN1qDW=6tAz`^kB^AA;fR<1#l{maIr4c6_PLyNh2azK35p>93>e^@Xm{ zfuH@VdamQ`Pzl~ne(|&_s$FWuq9%*jWg49W1`Ihm#zZcy^TVt< zJXnS1y(nQ;{U_?Z^D!nyGIJjDEkR6~6k_&P!uF3lg9o zL6Y|KY+&dUD>+ZS?71;bxD%8F?4*>*(u=%05b@sL%{aUejWHMEci%$IF~AIK_^dut zDOCnTMm=-us-n+u16)N`?oqf-QJCqjRpyYP1NTPQnFsi=^qUfe_waTfO%d)&9Y64P z#==5hMvL@OWCnC_x^{my_Tr3G3w-m+168Hy4^T=aqpk%_?s;AtNo_{R!IA7^e){ck zjq}3FzUf4QdkEIW=p3^)>k2eg$(md7DKuTpgLWr}SSAo>dwJUT!C5b2F|Xr=Y-QhW zdJH@8yq07l=O>)VSf@#gzBfE~TlH-M%Bph8ZoFNF_F)~oX zyuAw9#eL49Iz4~-=oyC}v`27+eQS`aG{bssE|IjKoNH+(OMCQFu0x3AmE78cV^%y| zMMlRArOqbd6EzGd%D`}({=S!{j}9=}1o^V#*acsGu9lW`W|VtgC#{HLF`?$ue#dom zI>H+8#CYB&MjyokA(FN$_pm>69#hE>Re9!wOLek)KQtS2#VA^hLM;P%MOq=9_;}F8 z&@cP+sp`y`tp;e8{$cQKyfcKN90vxC$#?G&c$@6*hdn{f9L%#Msy)v5Cu-^+!>BxU zLH{!q{slPW`c#QhgC}0*GT!`5QqG+i#Ny4RKVltEkT*0t-W#*1`1DJ6 zM~jVpuFfUVNmAY8D9!#yYKh2c6<<7FvuHa+2-SWz^C;XBtUv9G8Tf{*U9lH-+=>K# zxq>mtQ2lr{RJ)OB<`)(Yr5i^VU{5Xq&eKTqkExb;7EEM@9L73q$t;gp73{pu+gnspkIdd34%Ih`=7L1alz#TH z>>h`S6fv4M0gS!+iT55_(~%tA2ym#2~X z8Sb*!N{qi6fhE2p(wcZ38Nf6n79S@6^ncE1YIzZXk^O$-d9y$11m)mt zkkatJ?f}zXK~cXsRbeqBJ>Yq5qtv8nlrt$e^C2xNV{==6#)y(SA9Zm2m{jkH)zYiK zu7DRWIMc;S#@Jk$n51+p5o0*NO%e*z$xn+NJaS$9EXq`JMjABpqY>C+a{^G<~o{yMHu84WixWlLmuHf%udMsy)%~duC6({-)e?Ik`B*yUe63 zwWv2B_|&{n{L|@htqr$sd!~PqTM~+*rEbHsOdKHM#W{;bqQ#AcMV6&HP1xH+HNh+k zKPv_+$_Y+tJxioembsr6mcdAiYXx!(vwDi;a^@3#uP2=g5&}Rbw~2!gJnnD`G}Bw$ z8?mm+m<#YtnR7JTlf4h{(+oeADWRruNA}Gc%%JY9Da<4hSw|9WfQAewF~Zk6fNqn(4>s73WNxoMevSwu6a4`e08W zRj?B4DQ~QE=tyfi5%zzEW6|=6_xj#3C`!H(#Z&)kga%^mMf3e4&P$UL7#^SL2yDcq z{)mO=%(*pO4Ub2j5l0xO%>0&Lo5@IuMZp zq%?$Q0gI1R-{AeOYSQy608eBk${=h^3sUiRhAdv8*rG7rhhK`AOdVw;FrwSq{P0#L z4yB8T*?<|DK8t<$ra_;!ILkqTFUsMP^FwKBJ(Grhm=(>EIY$!?9TA6F1*3mohi|&{=`fTRG+xsmFc8eGVcFro=znDFq94cr z7gxJTF4UuN@kd+U$rb%Z?a>S6Rj~X5K1d!o;Bx}Y&|&`mIxe!BE0 zH;uv&l{XE59yE2xo*@S4jFEY<8o%Q_lTD=kfp7MZB)k*65wofINPfk3 z%`=GimWJ?6|8wOAG;OxMV}+^!i?Iu=UOq?TAw}TQVCqBf{o$KpGx-8qKyvf+1Ga|v zC0${7E2qf!EiLA~H2jXlhQ|$_prZ>VIq@X!g=*%*35`fquzm&3Ofi7hz#9xH!q{o1 z048Z`7szxH-U|AcMZk4s+qgZK#DDVkk%bff9;mPEd$7{c%QF)sTf{7#bYkUi5AGUi zHIptXQQ9UHYJ$>6Eb1ElIfJJk=Zx$Fg7+47<1s zqzn?;w2ZDDcXa2(YEv3k%i`f0v}jSOrvj1orv+KQCz-K`6?5 z?fyU53ewTs2ysl=s{qv?@j3648v@^B{ug74{_klmE#$sl{?*t}oWw`(|B0~Egg|8I z|DCXdf@aWv6LwpXUv@#GH~)jMYna}4p85TYmYpFiB_(yWyZ9@64)c*qr=ME;l)VkG z^;;$v4xe)n6;%k?vienhWX6i@g6%O6?g2&U32zg zeV7yj^xGf%UpShn}wnf~YJKN>jHKvC3*1yG8KZlHxekuk2a zbHQlTS0mxLe8Tla=HqZv;a{HfrgDn#M;yyCGpyj-ZDtDJP(RWrI(Fm+GKOpZ_;&R!J zulQGvNxneuDa3rR+4f=4@5L?r&K!Q{^ak5}S`yA{%UduA{_Gc9x=QP9XVeYm_wm2K zZEvl!sjP!u4zv&mT_>~ORV2iGH9k^DCka1V7*!=<%8o)G1fllMR^NGtkqJ`TZ(_8& zGhcT{>a1Mg1AH1(HY-{l`ed;6JIQaL+2&!KcH^Cm^`SgU4 z>*&1p5B97%Y);l@Q5VqfkK380A!c<5zvG}<1UYY5nc&nTl0B&+c@#-h>ImW+>_l#P zvY9@!Xu@XWvi&N=p(BuKQMevc`3rGBGa0?>e)}h+d%h?4e?R<82C*jdn_OYasYO$R z^!Wq@=--n_t0X-4Kn8g)c1A-Q5Jr7jnbz{&d*MT!Hxp`;)xw7|?nw2X)$*(OE03IJ zUMXrhS)3{E@y4k$%X5BNpw*dJbHvW#?-S@fweZ2irj~J!2u~UEOKZq`>Lds0HVmmp zFy8}vMWAYuSetWjwlsJ0P?;g4r;!RQVnr2gK-Yru9((d0&EbQ6Y`YN}t1Bg^m`tBd ztbHN}GXEUBgxd3y)|dIN-1v^A;VGAy%u^*J_@=;qS;mpX8yqbQAQ!8UL31N}tI+ z3-h`&CuZ15v;_&If=7&4L2lhv;MrAe)Zq+U_cS+-q@dc1le?5>Vj9Ok#R@OXLtO>u zHX$jQ)+3Z!>uv|?Z|#2#{Ua2$r?l$yG1BRX+>3bfR}%eD8aW1+-bihIEx*NSA?myQ zJYFeG-mAI;rd1Jkk**E-;wH|Odfb}4m$n$o&jEe3m|?$i$XWjt=6_pS&lcK*pX_p1*Mol4&$4Yp7Kc#bU zYu!f(kN>lH`Nj1=KBolopXc5NpQ#ArN%5S&&#`O`W{|zZ25{1(b9dxdbKxG`<1O#w z)yZmWFO08jE!$INlC56k-nPgqCNYtsiZibu=_)f)uE(pP8X`wr)vJXgIU2MOYvpxQ ztX~DNe$q(>w;X^3>u^;ESEQXQfWwS`3w-0&~W71l{BwkvWcsej?**stw3SKFT{Tk@2 zA%*V-%dLLBkXEuVdWDGW*s&Pw%Si4IF3w!<0c)u5lZB82TeBMSx-eW1_7x8Q8&R=c zkNsn3_XIM{57*;t&KcK|Lr%lt>yWqJ^Kp#2(3J};b4tKVy+Z4c*|Dt@$I0Sq7ts9G zx%`c=F_=i-N-k45W4Kazv=2>VH$>#W#^(92v3WQGon^jH5`Oy=-raR;R!06E#qWH^ z?_@YEN8_@y{!Sf(i$g9JR16_ze_``Klf@yr30$2zq#hp+&JDUxZ zcYsYMN%3U8#K+bLj_6qK{d1~_15jS2IV`6!q!m7WlN6rHDE2&#fABKuYYw3~3*R7v zR4C3)!h(^Su(_m1p;yf`-;S7xo5^&cr8%{sD<#0${J2-;&@oR2`gl0zv=Fl`geYDf z1hQ2J@m?1hC$w{v-lYW2F%f?IGN%*3VUfU3%L40dtK?}4en*@{SdcxrYBAWFw73>NW6HI{>Z&#A+zyse1f^4n#JhTyIkg1m zuzaY1Dr1bd%v^0|xL9$^Q^WQy+!aD}Y7#yU>heJZWNX72sC3seuy^cwe93$OL_@<+ zUU-J& zOZ0(82JIi~?y47>vPgvjpn7TaLqhff$V~2$6BrsJRSOsXcBuAzD~Qov$^AE}QCSIQ zGOesRU0)+^p<)D%NKafv?L|CS#3|F8aO#Ece3XL3CjH&fzyvX_N^OneW0u0F2Bu_v zJoq=FZrLo1UI008)Bd6s_h8>I^n9!PL8R=)oW_(i=;x`K;K znSaK|=4RHvr;R@C2o z2riUKd(zE>x)ilkmJ%Otr63Xi8y=7=TXG1oPZo{cmdNeF()J3_ATeGRr9v6b-Q}qw@y9_<)?I_xuzbO;f5agUGWOv^Q`yMwZNhJ%nQ&?}(?;_71zI%d+y%%qrtrX`yvD6GtGse~yt> z>0l=xv-QF>&BucYDN7O*X-48)(TPKy`=OW2eydUcpwKQHU)xvwKaocv`9(GO9UJLs zJP899x*MYcJU@jQ;m!_| z*;=n9)}#}1kI2zx&azzeM9X64bkTwK=vYbr$t*%3lUQLBu(~jolen$NP)2a7_ncP; zjACyIxmhF<-)SauJzjd8Z6*|W>RFKjyuje3An6;&%aO)=%*u2Xq0i(YpXVcu1RU>f zgo1y$CwfSv5rcl4uD0g&a|&8slnWBvSyBLXJeM#H(nD@B$&p}T-)EWY=GLNNB-w>E zMpwbfNrn|KiF{~h|vekPb}(u1@QkPHpk+)E5TH<^1;I9u?N8w4KA?Jx4d zJbQk?l1@o|4i0-Kjz@E@YQy&A_y35_2vVa|d5T7MPwZ~PB``&qZ@4TAyhtjODOoM> z$rd)dZme<$kAKd^h|(c_bb!15J%%q15d)oYk+DJ2Bauc`l5MbS*`amg$F;JF2?_khNNS25#^v{Al%E?sgRDo%zJm(jO zK#wQB6_Qkqr*8fQAW`S0D$_%$W9?YBwlM?YGL32sI`A3H(eSW0a!yIEpFp1~G2|RT z8+v^Z-wNBIK2x7rP!J4t+Mol4Il(Jrc@wT{VJ);#D|bzdY0XRjp4-avlxrgTGG5Q@ z&lFpP0D(PNY9q8)Z+K`-0Nf_s#g`DwzFN*yGJpbe^zo3bt$)m{9HP_K1i}aOiE?xg zmItIFm@LQK30L*Widl$q$TNFjX|5Z`Cs(0jZsAX$ewaD8nac^aJdt-ZIn{YpWbx3cHtznB`-(5$JOct$zl~M*l3) ztiBc+ajG^#ZuN$DWW+$9Qu1}^FXd#$wc=b=pY$9?5rYWF#Q@>S3g|_5eE_3~O1&$V zL;9dh0Q2+K5`AoKL!V8BqdpvnMgM{Ru#Zon) zmg(CnN8yf(rx9-{owpLgkp31(^Wsblwc$SQIP)?1#A1M|!kR^+RtA6lvs8q;R&9Nb z5yD*^2ml1j*_>#@B4$B(cSrj3Euoin0fk_7t5Lza4q(cA0b(J6JVglo#ZgTFy;=LU z#IJ#wl`IB4JM7K3VuH}}omiXnZM7ixJD3#5vgu(@MyQ+%!azV-PE`A?ggX9)l+^!H zb|ctu>LszYjbAh-ynDuf*^E#E#!yi}AZ>>ZB~)5n@rdjn=yUH>5FBx#+9ykY9w!E~ zOimgIdn;Ar$4nx;A@?rWVuygdYRb&_zI`=_D2sv z_ONKb1ZNl;AzuA-Ef1<|9+8Aa3XT|2?Ydq#8Vd^x#(xYt){q;J`p>;5kkWz4SEOSu zKB|*nQ>AXdtM!@VqP~k)8&N9H#+gMdYlJQ@tl7Krcqn!NE&n8Ir;Tf+^Pdy7Yd4R6 zMw9zS;$x^{e7o`8X2<|_qsKzp03GX%+A{}bQKIBx4_F6Y($0qMq6AZRc(5`0{Ud;1 zmVGNYe7LJQvr6KvyBi&36ALnbye1bF`h#7r54>$uBlRTQaZ2uR3K?<&s7ulST&c3Uy`a zdv5-PO{y{XfpL*9>r%0BJ|wRu*qBoIXAR9)|N8KnLNnbCOp{d0NNA!EL_Y` z$;ugjuY)Un^)PFORy?LvyvT;96R$(6KsmMd2*1N1)J^sRnd+#%a*iXe6zfHv;ti4x zVps4N$|}e{h3oxyp9bj4Z&6@)~Tv0>=~Tc_Ojnjym}yt+=9x zv}vc&G6*$E%vazBgJ3unK0JV89P76l9s9{6Lz7|2_HIB>Fs`aTxwXBdZ$0rs6@UO?u|8Ov7&4bT%E{R5BBL$FAWzhSo<;Z2Kpx-Lz%hE5Lp6Y z6mt(Rpacx65+rpgtEJaOs0^Tat?0$mNGlKAC-RU$+VWz64$IrTwMuU&Z>IS@y^u<1FTFK z*JR5Ap5x-vPA@;j(#*j2*`7$Uq-@G5` zPLe4u@3%PDn96!dAm5SD0#4UNVOYO*vQIKgDXePD@S@jkq%807U}#C9AyD@I`yA`c z&ndt$XdsX3Olq@#{ls`W*%bBlqugUaxuSnTtTxU^W1|TMfb0Yc4=|uKR6t#fgqyG} zp&^LF4g&eB2>~ul7MtgjaG1t%jum$xf6>S-_S#HBl?Pgq>jsdW9tPCD%_o&IA&a58 zG-^G%M?(QV061PTNkw7nj4P`ss$JCr|8eJr`_B@B0V-Jo3lv_9L9g>sO{p?IC(QYt z4EfM>&z&jG`2@XUrioK}S?6LNLEAh}8@ybxEhLR{i+KyP8UTC_9tJ|yLciF|MQYTu z@Kk+grZxvNtv`19AnanK5Njn(Ja&;6J+&(j6XUy>d*Bip!O2sgsC#_ue4LTU82;b} z!nD)?#n~*l zrmUm)KyG+D#yMC`~xsl~a@aw4`6Ss!myL|65O zNE;x#RYOChf)IalIm%1o$;}C@${mrD7J5b?Vu~0?s}GIrA6A2+>>{iysM_NsR#NVk z0+z>z20vUY>S*bduiz*q@S`43f*({lENd--g_H&!@Cc0%sAh{y{^ookg2wP`BZt1Q zCM0d*)*Qf`-idH;=RmllqFHYgRNN-T6KlD`!j#)I;C2RD*FD|r(h2L&bNv?A?5I(9 z4|FWFx)jCKAyz}cf3!hF(|j6`$E>Dkz&2OMK4#!iHv&IQD?Wi*)!9D*s-j=AT^8un zB+`#mr``LuN^$@|)o)?#JJ9=W(A)XL-mDme7bTGWv?xGnHNJyKK47&LXwAk1wv&xi z_~7b8@%XXx;OwS!LjAFwi!(v@Ue#dU577tP*nP z-7=f&gFLVK@5B&p_O@&syN@?ZHDPUp0_gR10L6N;zBuSvs&_$+VaBko0Z_*bS!Bs{ zuA`~D+SM6^RYoz!)RNrn#jajrt;mkr%mof9#8gL!jpuw5V%C}DO!&=0O2jo09BrUg zFkOSVix8I!lJH<}v~vI1RQxXr*o3%-rjRZZ>8JOjGl3v6l_gDd-1BTk-QK%0$xv7|FmM=kR#C?R4-lxXb1HMxhQJIWiCH-a2`Q-WRO!3}Pozum8DjUkwD50^Bd)weZ`4v|s zPOtg(0TXm(Np9D|v-e|G zA!45%G;1Sblg719BBprYfM(6du0yyy?s(3}LHeFosH5l8hDK6ISIAaX5Ad?MLX02x z#vfwso$&A>upL!Hp!W|{nol$fimTG z$WYo2Izs}%2_hIx$^Hp=pcMkB3P7oKkq|-;@MT%~;6XQA;81pe=9>Y2W~ya1(0U5v zeR8f&bVqxR4hiDtd8sIM3Lg+FzCwKZ*h+YzX*-+V^V82SW z`>^BOn}upG&AJ3k!(W}TW+c)$v9Ojzn%pWM*-Zq5Oxzj7fsn?N0QodLC&>>`baC0A zx99OY#xsm)8c^RAAmo%J=`oqx4=bL8UnTqwTr@@PNpILw9Snr6lygdbJWhH%A=oNO z*Nv2AUAkhCnvGK*0C_<<;{qIBNRAPm{MxSg78b`DqqEv_67kk+z6vVNC^kRiEC6;I zn>mkACz$qhGgi~_fX33}jyV$fjF8I%NU9h~9Z>l9lW&tPWwArpBy*WSGPxdVzBtP7 zSF!#A6hfQ4fUwd?UVEYxYpbMdtMsBI>nObD1aev*!~%HY%aL;rjx^!{(EfZ>na+=x zU0&>ZfRE(fxI&utoSz2UHI6v%$cvCJ2Jgq#m4I%CRuve-H?M;yv@PBP!hD%z^*?C6 zm08UmTn1L%sNE5#K3MCpY@8)mg~uln#?4$=`+F=B9v;s9(a#be5An9BCu$`Etzhlp zhB^FBRTEfMJMMx~4}avG5FlItT$&^W1wan?BH8!tnfH?LJNzs4EMqL?5WdZR|>Uhz}Wid`D$N4_RJ@ z^E`iCx+^7A9q=v-Yet}|(PPl=t>$8}VMr3Vgg$_72!u>1yE4Ig$iE8X>$H%6k8jBB zXBDJ)3-$pvEQ|FaFk>~j`2nj!il|MkP%`Fv#8oa9fwZsj!}0Xr`G zhP-!j##E&cA1S^O?eo3~KGqf#4ihH0-eWxmS64QNE4e=bsS7YBDal8S=+3pN-|j;mWE{c;xNs5!|mn@aC}Hw0qg<(m-qZAL({-{ zB7Z~bfit^y?_F67u>XX+5FtG2|NW?8yLXmE-3Zv3kK-8Y`uc-L_|5049@3RT_`OY{ z3ADC=xbAwF%hMJe3%2p5VSfhhJSOB9c@ut{&SO8`eN{I_IsvLqQN#8_#<2zWneIpU z%{&t;J&h#%UL)^G&#=ztH6iJKI2OVDT*7bkj9I9Jcn`T2H+|ub6{S^{0AtIbAw>#6 z0ss}3pV%eI%CaZ8!9kzS_ntS##eof0)@E>O!gF2$CeEB^z~|2Ys8@*CX7oVRgzK9?k!_mz`-9XyHl44+@#;0%L$SL0HP|=is2&E z2JAN{!jiB$Br#Y1jdA?gWxp2oF(`0yybJlvjGws-zxVvPnNU~N>SJRpD~#dL31kQ? z2o|JTE&QLeZU520|2G;ay1(_8A^M;=|F^;R^Z)CSPbEbNB%ko#k9;zMW{m$n@);*8 z8xI=U{rkx0%7^7N(FM0L+H|x$vh7>?*Y6w=rU99DvRXAfES0!MJoc^rPyy=z`vCW@ zEIY3uj`_C`ug}p_Z+uCqBA+Xz%pIH?WY^>skU5$mQ{7|GWp3ZOBvc-fu5EQVv;Tbk zM+5)Sz<)IG9}WEfpaCc2!hK@p+O>$+@xH?W4KHJDbjs9*-)6gA?OC!3YrR!ASzRIj zx^^jJ$t&o#s15h)=+y*!=WDd#u3>sZA6FU6a7$(BI1Q~@X5Z^;Q%kk69e&&R`t9(w zx>st$CDg07!{z9&Duw6DFP1gk4j^Wu^P{ibzIxlHcjxa-JDrznb;9VdYq_@Kw*5_F zT(2{hF4mRvttQZyOtacy+aDJcW-?XLd58K<%cc}t%WvdBgONQH%nzYuJ2NIRFEW@Ln0@qh>Jp)s# zP#eA$cFozQ>b31~&yv^nn_Eh>7?;~Nx2<(5@@)FcELG>E1&0f6Rqf_?3jDRNd&#$2 z0)*Df3OT46Ubmg_6>j|$zvSnUT=iDC@-_c(1TE)p!EStIV#ZP{n2<}DljvLFSVh`i zep%dPo?TsjK$=o)*>2VAs;k@+oN*5O)5GdzwE?MKVP&^eI(HOa$4v!9y6oGBRqdjK zS|)`(V(NAsn!df+E!u5c5)PjHuREhd<(0234;AYbW}j=TQ06^MSL&=?vfp0Jp<}j- zZdvQR(tXueMqesud@29BXXy>~DzY-$Fzl+1h{qmn_^;jBGQ%beFp+wh-s^*x=gQu0 zCVl;%MspSqOi_xh-(4@OFPjT*Ypps6i}pMYf&7g#s(U#y{Kmo7c=#>#YWC8b#+(or zo2SDa0&~~GTyn2@4<`XH@gBB%E#9vg=d=%|bKAzh%-`wM@>0>QtCN*ahJ7MZd@qY$ zD;?4 zpX0C3Rft^+yp|L`U2y15iNo}zA#6)M8w7j3?sCQJ=;04J^wp*KrQZT`_S^Q`m$&zq zqC@)Duj;+jeVx~#t0mx}{Zh=fenNbC$zVHn+l^FL4L&>SW-n^nHEeo)49HUIk*rtt z{@U%3zTc}$iC~gXfqz^Jga7e#))DY%)}v_$#Fdvtl>I7;6AwCD4u#BE3Jt$*MAG)2 zpL-SSm%JIgow39c(idnmUHRVj_SIhBPF*|O^*+t%s(||cjjQ(nYcg%xh7|?r7;5Od zAQp-cBhtY_amA%b?}RKxihxLOvWNsp;PG7%Sc(WLm{3K^Qly3Cc{GBk0i;RDD<~jk z6^RJ=&mG+F`M>Wt_Sjuxa$j@J%z4f^b2l?l8d{7@j~ZZK4Z(p&!(Ue2X4cF*uX*2T zuP${qt5$Merx-EU$#dXIr)b&sV8={m`n-Mg#I~zTC9`5aMwcvGKjOT5SAF(vX34xY zp6J00hwVLq^(*Gh9N*TN=6D?^TSU8-I4(Q2jKN01@tsaul&~g|Q4h+lU85G+fNF|i z&65ks7m~XSYnGf_D9et6htIexXX2|Sft zU%lj*8cU3HOuoP2yapSob9qblc9v-na%TRrR-Zs|cdFRJ!1|8J`nF_<@GwO9OHa8W zIfwjeeuS*;luPz+s!H)p_AGJ9Up-hu`D5OG&ABP)yC%7B{&9ksTVg5Jbsx3K|LT8T56{or;*Zs*Pj$Gu1*k|%m zY7HH|?7Tc^5Wa8c=#BPT5SNnq9yA-AH^wl~rr476f!H?5BrtKcEWuH+rAric7#ZCz z#}pp523NP*Vxmj-=f=d@mi+8$XCuUNA;_uIOVKHl`4KSNIA1Z} z80?HqDIA74R<(I)jiqMK*8|*~waJ4#Uj|fm?W%2zj&|RgMYHdaFx#2)>A_xFGx=d$ z$F{Vaijwy+zcC}bz1?|tbw@Wto-71ADY}?ZOdpz(O|yL-AYp4YT-pFIIOkHvcPCy% z?b@Z+(`Hz+4PL#IgV`RRw`P{htv-8Ht3nRRP`JZeYc)m+ef*N6E^$nC7T~@05*8n_*gz zWA_s3+L&t%wKn8TW~A=Mgz%_560BdGnd4g%Xto)Y1~_;w;@s_n(#%t9&VUD-Ca~N& z7LxT+w4;|}(WPcty*HtQNWcynmPTz`>ZUGL0v)w8|KJq4I;{gkw2-5l-fy6R9FQ23 zb18GHG6A~3DXLClyZ;pv zQt)FVsIPC7xZC(ZJS#fP#)^%-eP02hIy6&))9C;HpH)y>RMJz}t9 z#e%)Xm6y)~hL(<@!S4f_YMMV@ zw3;&CKRMKi&j%LfHz?{WdNS#*7RCMxDpMFw_AC{?0|Ty-T7ItTMZ?;sa6yekr(O9;G;GNliHN_jaI0}7ZEi6yWHK0&NKpc99?T7 zPr>>|%u`JdYugGTN@2R=A{Fjj4`#>ofkXds!ZW96=j4`+x3k4Q%i-Z}T9oK$sEJF? z;L=y~lNcJ5Dmrs3*j{VQwuO%VUX`FbxA|(`mhvoEqU+y}+FVMUW66ENLu5_s+%HG3Rl_Q;=%^C)UkYP$4|E8xx#N3Zu4*=2MsR@%A+o5Ab`+TExKDAmVDu z+I^^#Kvr#DiY}P|yN{U_^UF?ic%s;Baq5L+Pm^q)-@JftJUX3f+NLa<$d{ZBL6$kK zJu12g>EsbME|MK=PpZwe*CJbRGtA@pmwzMGTs@%ap*J|yVl8s5#9%HmI(8ubf=RV$ zRZ22(wTPLI$jlTp^HlVOEjEVshr!$kC2%#n8gwLkzO@L?B@|oAooMXydGeTJqh7dU zcCZ_%Hs7DC3n{@4VdJU*SPrFtE8!dmDY@TLpBu<9?cs<45XnagZY7TEWDn-4_Ap1v z{1loEICDm%TRi0FYJLrOsTe(a0x{BXF3B^wvgjkM1a5rf?wrltk&|x1C)mabW@s(~ z@qC=K40Dhi?rc^Pl@dip^`Svt871tjy9ylc`C+6 z!KQ$|pxj@obqgau3mz}hgW^ZF9H9dU9?5maH;y^xGn-8w0VVhV*2urEm2cE<3>SYY z!V_~r+&%acicYH>Ge}Pn$^=BGOK&czZsV6|RO*|Aow5U~080V^ekpF04+g(K8v8N} z6$XT!F8NIgU{0F(Xi|srYqZ-B$2k=+{nu8(UMI7{DA0K&7}~N^YL~kUCFT`;*@J0@ z#&7x#d|jJ=#d$W&ytr0nxHRiJXrSzvJ6BAf^lWScr54tXbA&9<23UPTe)Y)x^It9Btvcbv+-4+HvB)O!Fo-^=baEd{?I)G+n_EzG5OoIG6w^owc7r+z z8pmFb-j>jwUw-xLO%gd`ep;I_Ln1riUC#r+Fze4^u=l3l}QivyW= zaxvQ%*Nm9<@Ql&PKciCYl3{&4ru`au>`J2+aB?hE*2t#$Syx9ZaIH5;2K$oOMnCF`o|MnP1_H|DGP zc)f8l0@84&%t_4(!>UUz%Z}^dkE!R!cAT$R;qF8Uezh$J&H@cf|FHp0NU-QJ$2(4M z0j$pq=DuIp`ep6W*yBV1-4q#M)0klNPZZp_DzLRE5aL`u)@%e{8D^Gm>5`qAYNbEs z>?9etN-R9C86YdW%t1{$1%<`2(}5I2udZ{5fa zBpkQuVTpWbGMGzHzznMf#(co|h2Wtj$Q@u`E&}5uYRTa7K~Nmg1~g6`rRCd1P|JiI zKIyLwXh+2SOlbO`*Xf-p<3I*v*tTJyStJ&>?Dx4$b(@JzmMSd#;d0lDa+7gCCz z8{{T#oq!Fy-7%_mX5zTJaW^4@3Y*kvMEW603>}yoRsfGhN84$QD@G9`-8%n_@@}${ zhLk<%<*4lR7Rvc{@uzjlp^v3bkRNs?wNOkZJs0M$415JBtc^R`Qp70AAa6f;cdZqF zf{%j+;wPRra@%C`B!+wJF`sM@K#maS<^)jCF5E)c@rw&HkSRt9cWeQzh-)H4r)vQ% zU?6c7mRxq6V>Vv8ZBLr7Z}aK&n4IS>rM&i63uQfF%bB?~KRF-M1Qlg5U=%vnPxJq* z^}}(GCL2nkyx|~D+2n&_W-)nPFgs$sXy}r%AvgbR-9z&`@J+$~10@}IE9pp%~eaWCf-55f} zqr5WEs-1$x(qXBZm}e|Bd)cwedutUaDZp*AcIqK?8Hw1Vur&Cs;!mbq9XznYX|e{H zI=F?k$u=`726NE0{a+h`vV?5t33-4*;es%x2lgHay_F--FF<)*YadcF>z*6Dou73B zX!Omu>IFKO)TB590hX)>5QDjr5E^{FzUHQcwRP6NP zUciY#(fmcIUlqt#iW+NeXy{xr`%(_bof4NKK(8p2|2IG%r=ndUb;sw+4eM%m0-#m| zBEApQ=Q^mg_R0DxQRv;$AzdCNym?;FJ<@D301>7$bIeMnRq|2_Pzg0&A%m00SOOHdH}Fk9bNq zWhnx>Vs2DAko8rwkyg8Co((gETuLPqw%lg;P|3NaZCjd&i>_>QnWTs&Y#oI*@(?rL zXA~&q5P}Mjnw<`l4|6E~BX64xDWIcb=$ya$Ff7(nYm z{`90CKw?X7oFYOV9fA(LrnYOx`yhoo<6#n*L-q$E0XH{=>Oqk$aRH^XgOV7`+$Jd0 zl6kjwyqhAhgAwy%FcTUZ8zBCgsp4PP9w%J*Z&aSUxg0`JzYq@9iUK7O(TkWlJw(z+@mkTnUdIO>?eZIBLWAfp!7xdOJgHT+b z^>jue@=s*q!v~P?IYIbfSh+JcbPAt>DO3*G3AU06TbX}84l0o{{|NGShffyE6E1Ak zZ&bHcH-F55Qqtz57?TXCilOZg6$~364t(o<0BuE;;lgt_62=BPAqp4r-ksGaI^&TZ z99XIj1}cg!&!#%UqT%zS<7bfU@^=9w{{gtSXu24S%xa97xDlj)L;NqTZGd`it1^XQ zX5B`w6AZ%|=c~c6y0<^l(4ZOO`DpC(EC~h+PB2tJ1`JL$37?S9%f}vPO82at*mHI3 z1O-9|oeyNsk}JdmT9Dd0$T2Py$Ds;A$(r|X`XJ;2zpDl@(0UP9=kE=_TKNs*)#svO_$}hdX&Z3hq97B6wcM;(nr5ZDiJ%oO*TTXLGsF7C-IZ zP`k;O-s7v|nyO)ZgJ8yTPrWsoO-K%XW2_capX+trK7Kp6c-pi!xlJxNQaNhSCruzG zQYaBUo+MJMIwP(zsiD&&e1FZ!_jg(K$&g4Ah2ZLTCSxt{?7dSy*S3E-@X}WYEzGx2 zL&I+hjBHfgAe0bV6;b%2%3dX~5ieQVC3h(9>R+}ky#h+UOJ9YEI(??1_5PolT6=ke z;o!8rs*?N*_fKYFn(gMjB~T-%$TY!bZl# zbH>f*4lL0n+yf(BB{sYR1U7I81v{9OW$jI)Q$?AO|?072NpW4=_IvXdEtQtG!3+n1ZCiKm_XX+OX10r4zzm7#Kr zbUqQe<5l+f48DsxoJ~PVH2xY&-4Xd_*~y>&b@qV!0r%rU^`}X48r3g;0%PYYd)xv{ zZxH_4KHNa^B8HZtL?gwplWwfNVmj*|f{kf=7}0@}sLaB6G3C)Dt=fpRyp+RsIHJ}8 zxrLv>A5wx_FMgW^GarGOM{b_o5-;V~vyD^vY@IEAapfWpZ*#=eb<3=7+n=MZYv;nk@QV z$5^88p3LU6)@Ujm<=kM%=i+eORYY)bhmOVHMZ_Fn;9k z`w9)#Kg=_XdteKdy*TrUXN$6oS`n?pUoy{knGCW56jy5-BU@WV2PG_CWmU4E*WvJCg z=D_-PAqhr3DY=7~AEB)Rm-p}b)|%l3 zpW<%?HT3cbX-1G7jC+$O=yz5yrqpE589^bWdFpuIbTP0BI z$D$q>L4r;1o;CF%{lQ4ukAg(9p#Hps`?K(bXEue=K_KLTLwbbshpo~C0;)b+{ZZ(m zPk$;$uC67anMj%&(F?`Q@fY3pVm2h zwh8pJ_j;z^ghb>>z<$%4N9sX=uaJ>G%{oq1 z#rqi}e}yL}LS9YKwr=ICnw%%wmIK!(cQ3D`1Z+z~2&D_~IlS(V`HIx-{C<~>iP#rD zQ$yewPW4*ro2RXOy=7WN6`Vt@hHMIU{hQ%4GwM7iE9*3qmaNk7*iFrcvxS_5m)gHyPs~JaL5MR@0*=FUr&0v0h>Bu zxlz%tcC?-gt)cQ$^SLL>B0fn%)b5`m4L`T{y|G1z+f&Dq>L9f1cY6mc`N?C?+pAnT zWas;P`{;idiE;8~M1q8IH=SdWl3%#YKI4hISf2%$T;-dhj;PLvO!O-*vZVtKCw)~9 z4Vb}R)$2R(OXZG1YtY%nP(P#ugQ^~zn&JKbN!IZ}KY4%};+2}a zPd9??Dwx{5Jgiy%y*zi##6^PdJ(sG|=@o9*r)G03%{z(;!)K%>XwBQ|cD~n4zK;nW z;yA!1lVG$Z)Rt=%68+q{OBZai5JvcGuNy_24>so^@Kk4-BjWucLJ!0Bz zvWOS!qRAd@Fb~t=%!rHJhJ-suyrN-O4kY9}?2~omOMRx-WDthVdo&{B^9OfNHjhke zuP}blB}?`aPHeo@9FNs)?KN=T;AU4f>?IU`&&(ZR>yWBPrHI`r0+RfC)@3iWv*dK$ zizvNHIjS=u9JwbqTp|u(*BdewL*0DTV(k5AMZNpregXWZ;Bw$>*K~`1&;1@lc{XoH z&axFXF-}%{S`-0lmSTqjN}?kR9ugU_ZL%$^%zo{=^4Z;UMnU5I+L<)W!Jr}6a4FG< zYlVk;Ke@2?ibaw>`<_neVLCvNlL6{h)>aX2hgtRGgR-IRGBj9T6|P=nXTry9>V&C>=AGRA62A1?y_Bk~JSG%X(Vf};+XNz&r z`K^}O$KSVi^Bc8hx2%37a6*!V+6(3@c_hw95b9=xyZTQYBz0XmH?SA@fRc=XoYyi8qq_(Vxbfk|&9>R)6 z2=VsL3fi8Br{_%c7NJ&uPRW7CucT7zF!ZNogFI?qRA-DhqEE6~R(XI@P0xk0HBhUu zaT4FJr9MTz)^HjRwNqU8b`Y=-s@cvx75q&sTzakFlTIiId@xu=gS&YK88TM_ukBG_ zub*%!r}0E->YTps!TSK!P*Rw;W^YN|J6?4~yMd}Z>w32dsg2-f=Pm&6rQ0XdUMOer zX*`Am)LNY0U&n^)!DR}+9`!!m>c)eII@6Kyi4Z46M+eTL*CT%q(G=M@0FXYDB$XP8D6BhSm3xa(V0s;K{^n6Hp_i>eGY}7rjB2$wKAwzEK2H)G}M-0w6nI?YM zC-`+xO_x^3^_G=R0*BB0KMa}rTpdp8ug5+)g|guhkf#E+6F03oa&tvC?sf0go;d{9 zx&n;r@NZ|~-Xxa>QX*>gQowc{M@*kSftVUx{o;M@$qba>Lin|GfulnMQ(i0LuD|aROyv_-ZHYsA?zBs9H)`@2OpCfWKZ10_t;ZX~S6IiyO zzMZye%{D3WC#o*8Ejq69-sWg+Uz3tc@41s-)nHCB3}>9MPd9qEY$Wyd(j(@>(SGujcvx@qNOpWd?at8VgnfiSC^UWOZX;`YU2 z8vcTGWfC~ct9}97+MKS{U4eY*X4>{vRCTP!)`hZ@uBix^khtI2_apAoZP;Egy$MvN zCG}!}(t>wkp#$*!zc&tJ`b9w~N2I+XxCT6kc5<`LGQ_%|hTi8R2!o@&&)uX7S|1;_ zD(ja1vdXs&x9Z#~T%J}-A5^i!$+YX|5Rw=1d4(FrR9PsKgJ;URh3lrrQL7^yOpH#$ z8^QAt*FXd)SZ@kjSHD0Dn|hVg1Z$A2LJhl=QTMh)Ud=*ab%v1~1DvoQ@upC0JxNf@ zz35>NuT8`2P9E%H8N{4XpMG;m7ZsWHis9*w2Oe<6r8%eWJ$H*=&#KHk3jif09aNLc zBhhhH*^1iLlL%LoUy@I<_bB`-XgQig7=eeY&{L^u(qLqofH(Cm-1M+=G)Cug)Lt6w z;=6P#eBm@{pFS3y)W!|hg)(zoa$W&TItFv*p?sE<%__eTL>;QOt~l!}G#a8`>a#U8 zLmxnx`!B4YW7KCitl9fr_aa`YLri~61JE~6c}U#t?tsWl+*vB|vfjM_hY^m3 z0=v2A6`HlbeUz@KSr5u%mxz11wzaR2_6)#GW0OCz07yaV5?-cdm4A+N1j?SA@b-6c z5xE_34!dNTC_w8nc^0a)!GPVjMLEwINf+1h(;vPHLi-XnVM)q>O3V}JI`0jV3Y5s2 zM;TRk9R0!j4^Z9x+ys@@(1e(aOCd2gf1k_!V;7G@$F=WpOBOK}$gijI!pw;&BH{b) zbx6#a<;bjzp8TKpkJ58hXTn#Ge$k1E;uTy3v|*kxx(x;*q2OM5n97r}cA|GTf*LuQ zIAX}_vv+JsyaSOpyv|4C5$Y72JK?~!;=(#Kgnj(1tk0z32bb)mPsKcFdo?Yb8%Y|T`{S%;E_R8{_8xdxX|&9`{r2)|Jc9J<^EBlK0{`u z1+^;Ck!eB{d7`QIAnu6DwsZ^PJ2@9uIb&-8iOA;ua5le0`gdDjBD@eKT<1CCJ1Q5c zKCWVE^;4GcXm32@N+s=xk|os`n|w;wW@Ud%gteZfK9Rs?z%$&T@wuLt!hfp(w=X~F zvqRdE7|a**_ulE&#kh-z8HMDJhx;0q>_V; zA{&88yM%l^0TtcZJA93Y7Q``KsMznJ89*XEV_O~R%lNlmO!HK_?jYBXi(JRUK!)N{ zr&AByb}eI?rHRL`=%H5iIDB6)C*r&XL)m!*j?tq3>~~^RwVk{%2_?E>_~ehmxBYi} zDvvafWLDw+Oa|k-#2icvJ{{}D1t{SWdscO@b5B|klGag?ZgcRT-3^8YN9ne9AGr-G zPS{BQm5*A$X#d&N?reqc$;Evu^RG9^VyzL1M&J)$`Gn|6zdo zo{&Lgn$AcG3RIgc&&5xVp=**3Lh(;mwm12F%zd?0Qm*oP|80)mG=RD! z@`yLm-rmb3flDmE!-B_3LjYl^n#g-z=w2^^){h4IQ=R@ukV!lg}u zEs^`Mj{Mwdfh%VQ^asce3D{Ve!VD@HN|1q#onN&FZ*xO-!?rpyAh}XUGq9CPnH(R~!X0cn)ain?6bicriRwZfKQ5ul6RKdkr%Pxrd2q$5hlMFXeE|Wl>Uslh&_Y z?^=>xcZ#>i$wDW1XS(#1PnZ=|Pj!YK2PL%D;u@Our?X#oV!XSJP^-UoWGAOT8S8af5lK=E_Z{?I zNrKebwLD#&g2bX@XKn!k*4Jz3#55V^v`mvkLJK=^zT? zUbwKbpuECk>Eg3;{{>U95F?c*InNlI1}Ql(I71t2IGHa3H6uBi=^7UkTs(tP5B*@7 zu|?2-%6RzPDR36D;65biJKjnb6B2ho^Up@Ndx=Vdn{ZUJOYDk=z5B*8c^jCFE&(BlcezMcr^DDv$OEh~?ezM&MPD&w=kkdlCDNnd z)-S%p)h*Ido_B{K|51qRsr(sBO$BU0(k0#paeLmL=lipKc-_m3E_BR`{lRo&bYZLpw_MI?pYBxTQA`2CISvn~da%e#x}@_~2spUh7E> zOrH{se+%H+ca+xV!d5usI<_lsZP*X#H}9TCAbI!n-9)X~*4}fmJZUCL@cd}O_0UrD zbecq(Ag&S8SWgF@_BA7esO)pcgKqLW@)uo{Lxr<&0o$*Ab>gIX)DE_i_Jn@0fda>1 zWCT_YFhKvEj#Z!N{khrx?kONoB+#>9VuB z`Bh;kyfcP;nou~c>&b?(h(WE$lk-{9&|4zkthTGLRDs9Lh^x_%VI{4qx>CTq2V~C; zsbHX&Y<1A8F%9W2N)BReSN97I+NA$zU5@DVX)XHRFt~lfIz6h`_iiFDt-wzR4}Do? zH@^oM`=S%!otJ!75ZF&hxy@U$2yjOG2e3Z;3NxhcB2?t!8~E5~CK(z(T{@fLGAPkD6v%t5b{b35zhgH0Lh4g7! zdwUZO*JmVmWYn?eT2F9}LE`M~>R(=kVILh|jLRC6fVQ@tWTL?GHt)D96G0pwcF6E( z&CFj_Sz&Xgb zXezQXJa;{^fpl^(Kugj{TcfZM^?{xv%hL#;p zESz=5xLf%q-{6I8xqN;4o=uclpEmsR>Nou!@uovOs-ZZUeQ~mN)4CnkM^@p1nEle~ z3wOJPGf}JO0#bNKpi2>cQY8pg{mAK-;9?d^y0k>DGLG=qC0+zKp3{tgi$LOx1|Yv! z9yKUmyt5m3slth9)hinI_#A7`@@6PuHP0E`Q!>zm_r8*cXHs?io~ZwKC~@_I`KBqh zveX;q-&_D8fe&SuzysDrYci=)DH%R9KF2;KZwiP-UKjFY%UM4@``xX)p9f@gCMPUl zTjEQk0!kbCfjfu;{I%^O3+gz`?Z02+(Rw-U1_N)^O?W#wcAFPo`e&v8oFU{n0|(h| zlFQUr!d2SG;!mPLglt*1YJ1s$IbGuCi+^Y*#p1#HPwYHGLH z^jkJ`_DzFF?JH>aQ^T%xGLkSVrc}HqKFwp)GV8Qi7)z>nMkywObie0SkUd*)eYJ?O zX|}S?Ikb5c>+yJdK|D)Z!;^LMd#F%moRnBZj&%pLMEm)-PGk{WRt|1suzR2gC84Cg zL|%KibN~uq4p!5|2szIY^7=5U&EA5V5}MSy884Z zvq515*er&w2JGXAzPs}I9B64%S}E{&Y{Q*G4{mTXmUIi);!SYQFE07ArkPmZX2+bu zbXleRd&@z_<^Jrmzr?85I(pV7J*6MW`)=Tqbfo{C`R(6^{^#M@pN|B`yWMEVzM9;% z!8fhY5t-5SPRe45A!@+E)z8I$2`7rJ?&Fv+FfpwOnyZ*?cnNcq`6j;^%-mi57Gf*u zilze$UDKzGE@~Hn@Ll#hkHdL|2ZFXMl5cyIXDZ_^u8hB55maWulQ&~mQKmHAn6q7- zqI&PKpQO#YzY|hrQQrkq38>)Au;RkE-O2&8!mNBay~laq)ScCLHxRB@y}P={Re5?E6KZ>^gSt%5EFQ2a3(EGpb42*za1~$FV+s zA0|gxsNB}43}vp9$g+;q9GH0 zS#o&)<1i4J)Bn$TD{`N>3&$=#+Pv6*)_^8zMZy;2t2>meJ#ili$EU)LjHjhb{^k*} ztlEs>5eX=$SZjB{-!O3B`*K|9HTv#_DcE%1@OBew^&4kSKen}*BWXtMdd4v8f6G== zTC~j!NixH>a1N_%yKLHWc40Fwile%6Q%eiYj>mb(C;h(6_6eN5Gfj8Ju_qI$R&fl5 zd=k9WL1G1(6SF7iIK;ae?DMc627Ni$@|!Lj|5}UTS2VrFCg#&!$_zHfCEv{>m2$ zT~TR8ysLXJep3w2YQ?y^CrPAU6LN$OxajN^*XeJZTzHhj>YW$3K(pq!G&OIQRDgcp z2*xTS!j(tF2A+7$*yOv^0OymR5WCSbaW}FqCxB3GimmM9afz!f=97uLE&)elzeF-i zy)K6UAt^2tHUF`(zYR43GO91*y4K>lwG7|!$`S1o6Lm{{uS*=~?=ni0)3U+zD-KWD zAlv*q0RrgpO`>Xb?^_1Ltot?V&5RsG2&US(U35O9cL$o|ZWg8zEzGaz_b60~K0_2R|1@N-d*fcLZ%Cvcy(@ zwiLCV*=Q_lrTIcLD_RE-yyCH^&Euf)RcRxvc#em*!$~8k^K&SuVqXfjw5EStdSB=VE zfd~415)*iK>lN34Sts-AJQud`9NI`hcOW9C;qNvEoOaF4Im_M}W`lw1+B&`HycQP( zDa$q_+1b|qr$}~HID6+NR@XO~X_-=EBhr9_REJnn+ja0h2@b!&CSu_W3o3dL zG7HTkRXSb7*|W*N&gXNWp-*>v8TlrrdGtsfUC``5FvIXN-wba(sc#HVvbp~D8N&ey zMNmXqU;*d8olT}%?XjqjlOM2ASsK-OQfL;BZ9^X|@-mLmX_Xx6boS@getO|ouT9z7AtPa+6^A65thaQ% zh#SK=S(a>ynC*Tz=QI5))Jj>K{ZHq?=8)=6BSq=LcqvrKI}+^475Aa_vn%)+v0WD7 zDhGxR;9IS>A;w&NxrHj7JL;QVa+ybjR@KqThh+>U#0E2T=%eFsIfmu^VnxI11{$By zH#j>`XF+X=m|dA**CDC1?&`Y`vDVrL6$4K9nDtkR4x*LKsd|yYD~4j6-B09E$}G8% z%)o5h)jgXQ=1DTzilux}Ng{z&_Oil!;eOYIjOpg_inm*P$J$@v!R|abbv0L@Z>s3r zN>hzF`wo|`?j#g`5ac z@hdGHjGW;tM&wE<)%Wl>9aAr!mIU-RI9QgQ%03kLyQP8Al{l)_r6D7gJoXDn_V>4# zWv4O(S?*doDFJrK%baGQy`{vqo7;+AA#_rP>ZN zrIjl;36__Q*J}Q9$PWK| zAVNhl%EC{ijTxmML!T6bIu_2;pFWL7gzXrr(X;hK=OqFrP~vIO2LiS-jWmT>0oonruR89A3qR}}p zh5X$pRPhN_8ggr#v1#3LIZh68CJRKwK{*EYlfl8KZ&#M!8Hz8z`DZ3>?tj}S^%7SFl^Ql9w@KDbx$#{_ zdj%50`m-x56Y@y0)KDd$)jR}AXkP$gzqx_QQhoOx!^IAxEG0zk)Le$1TJ|76FcME) zJ?MiYM_;H{(j=i+)zNwCR^IbFfnUE7TyYg0-TZh*NC_;0Lpg*x^1*U6RM82%6w2cp zwpZ=Rb%{*Xo2~TR6}{Hg?S$^P?C=#qqkDarUWGvnhT|m0F#=In*O98UiceD3JDYjG zC*Ir>u1ykta<Bjwk@HrkD@wIU^A4m}8q?n9WE+yvX(6Lrg!f`@87Y z|A6Q*-Kk3zL+`a7nzPf-5bD=zaW0Kv+c z_1Q))Y&G?0ub{kVL`(VrIJ~7S>hvdZvBIxx#^!G6DKq&^9%Ytb$Y)V2Mbs-offeG& zq?>~HV!s<$;;mPpK&n65=Bm}!JKJO&Dqu-Uyw0)BmG7Wd{5?Oa|Azi6|DtoM50?pnF|HppLYl*J7;GJt!eJm;@6#{eQpeSAX&h(*H znq23)i(j@>O3oeDFe@lR2{rgaF6m%HzoKc+VC3>vW1mSah~575KKsB~5DtN}qafN< zbdRnGAFA5_^g}~8ROOGhnf~UWF^W%SV2-Xx*05jU(p=&k0V?L6WllE89$QaRIz)wF z2da(+q9#knqOwRxF51UONtOEEkRaN{$MT4{7taW*f?rQ(pNmfpnDU<$2hUC`)56@CM9At1OqgKv)kTn+)(1sHs#lJrq$PsPfnY(M z@VVDxP&%{sZZ#74uvE}|q^3tac+cr02XkyQ)_m0t)~r_si?KfC(R>VkYxodIhjlMpeyZ}DGGAHqC=2xi?7 zdi-<@myT$HYwGm7bVX+bHm9@4iYS;q1w7ybG#NLt?(skrRND4yZn^Di=-1ff5zDd4 z%;)efA-brwdvqG>k@P=>X8k4WZ{ZC?0kdY)Tz6r2>@r89eumPaq~VFjrzSvAZ~9x# z)0_(J=pDozCMQOr{vbS436~P-I1h+=82e^OH6yh6xwTJR{v85_zh{AHtU^)&PoTAm zxKai27Y;mF%;Eu=+$RND&u-|~^`0I=noe07gfU>&dXr~;Dpj%e*e8hzBLyj&h#RP0 zK*XWTsm4Q^bys&zUF;iD2OV%>fUk{qdA16rSLBA0sl=PJF4P3D{sR>l-3k zhCPJO2&q=g5j>=CfnOt3&8EMqmB0eh+^dbUP^}d@_Y!B_-ZPyR!H~zJXAZ z2ch)atVMw7Gsf`he0?{FR0p;s_PkxiBeOI)7~S2tdD(DcT1`o@;c4V3Yj=w)KGV@A z0|oN#FK*dxGW!)l%rO=B@Y-IW?x*KMBca@Uv?>GRh7M~t^htvw*>T`);JCBzoPt*O zsygzgBN1b7LFXP~?3d{X{UBQPI6su=k&6*Il?8`GGPN!>P=~kSXFMU0Tij3ey%jI5 zfcAX&Vn)E`MLAfAv02%Bs49<3F;}SSbX=zHQUgue=-pn+Ap689k$^%2B(6Ko!pu(m;|`TGf${o1EXEKx#(jYQ>0J z`4Xj(GlUCp@)7&^=^I@7z6tj3lC3u^RBS6?m+S;r{oP_cZO`zi-`u1S@kMz*G>|cI zR7IsB92jU=9hsYWix>#R50b0T)xgMjMpSIn zH!xM)!+1t%{XN81SVsR;`qNdg#u^&i9)QO99YhVN++qT4uDmBW)K%YB#8D$D(QkqE7vEe=c;i?r&l1L0QbL~D~0iY6mn&O>}=3STjn!-4QTnWE3PG*C@LRcv&Ob$W-ytu}^AB z&_&#^-eLO3PZy3w-7M5z-Ek3Y99$%c(o(MjeFBB`3_exexJU93`tIKet3D)^a*LW` zr50CTd@54f3>30NhTkjJDV~5ti`Wa7c_&4yC0u#m5ak&INr$)!k^!*_Nh0@mYpyc~ zRfeIY-XMg8-Wr)!;1VqY#5@-~HzYZPi{_wY>iQ5)LQxd*k;N*CIdwGDkfr&@H6DrL z83Fg#Un+aiwg8f#4sTxtlveONXaXUA5>OL9Ml9C%$QjW!8v6M<`%p-?NzoXpIFoB` zsAL3*Ho)SCY0NRW@&~TxD8)ga0+_8RM!J=n4j7T#$U)??poi?_w^(~2|Mq-ieGj~ zAF68TC-9JAXhT#|jH?w@H6io<=?tJSu*IO%ue?K4W8$}2cLT2gAYVTDcW{XS7C0Z~ z7`=OtZm+w3DZX6&<@5W0iCSj};y^Qc z!#Q3E%HL21NhB}^#LeF@P$dv5gB0&jMdcB-gLDi?t3n6$avVDc>md^^-%Nx&@6*Eq zjzU%=?B3~(I3~}*iVDd0t^;O&{qzI&(+RB1=xCjsZZGTX=TQ|!&|jiPnW}boPrajr zWh#B(97yjuN*3$>k3VkS=3NMC-UhJ7)e#_7qwPVY%%wntKZ9$w!*xf zM#PrE}oH8eRrjm zCiKGqjR`=rAW%nQr(7cgCc?!Bv6Y1e@J56Mr+>1;7vBYX1FdlTB;s#@*Fm66ET5jc z(%KKo2Fdl1dykL~W6^hWFMdtp?C4SE+BX9vY{s%1OSJ-Z4ikh z#h2T>K&$cG`3H(QxL~l4_aM?N9Q$+->oYy%a`Ij4;>uMI8HwP)1xJ+5+p>mnhvKCn5b((TMVxS?FBagrTMSj3g)+HdkfnH{m9E(Q zRPZ>W-&Q|Fkn-c~ywhcmVpf-q7qG-@{)R2`Dkbwe<~#!dIK4X;&H^CiOmsC4!6?x48I3C4vV2T^>hOY@W0y)i-L?vSG?e6bOn@*hd-|+tkuA7 z1ge|1kJp9%cLB~_!kFP*SY&#B+=`T)foYZ!1QGuoLHAZbnxHDwet?C z>R4uvZLfh4ljklZ%=g_fU6zX%j|tz85zt%%uQ9=V33?@>@pnJ0=9@#7xv0~pb`a57 zq1>8eld|iVXu4UMFu0rk! zR4<-6@`U6;|F9>CaKv)Qt835+f~UA7*f+$I7BY4L%?c0DH(%f^Mr6xR;L`b;j&Ubr zYTSwH(INFfm_)*jG6OCr+4^g)7Svw@Oj}aZFfcQ2lymU({rx28Z*il0K7x+?$YkWm z(TMZ`ptidf{@)F&BP38ojN_c|a1FANeou?)%zgIfy>Fi~>extn3G;P%E26NT!1Ulm zbLv5?B0;GI75PUY_(VUK@Qe|vc*i``N;5KD*5;NyXyg3CH{8J;gqzEK`>u?BMVzD5 z(%M7YhQaBJvePPCc-;pD6&7(uSz3l&jyNJMA12-Xyh;(vcgS{dw^c7UAR+04#8tQe zY4C-Sjg;K+Aa35REa>j63oW6vP^dzV5?mRB$a<`2`SbHu2XDHv`CQO!bJ<_b!I5DB z30A=jWR?fkz}b@Z_sJH=a~u#VY)(xR)P;MZ&MYg3==8yqaRi@{*mb;@S1ugETF2kE zNW(@tIobs~2mYVNLh8IeOQ&$_9|Q{+>2@J7(g<5xukf!({S8J3ApM0=!gjeY$jPsf~e zA=TZOjgp7u;Gef-ogOXAjS&_vcfHcpYou+bf*I+iS4|`W9Jf)Qd7w1@EAPmCxJfIS(hYyN z@rosz8}u7@y{)Eef)Wg!*IlA@alN$F_bb023jNGA?d(|_+w6Grq@HuB=REz0Lc(^O zj|UvlEIGXJ=RkQBJnfyBhrM9%t77RY!7^1)*uLU(jr#rLG~p)Lr6o20b8bC|O{s%N z?z@@)vrohS?sHlE-0M~vde7E4i`P0-Ay>4{)sK>@RttHqeucmCe!s$^m)@2jap8T}s^J3Je z@PZuvx}nNumn3{+$HOGeXOG~YSl(dI8FAGETMH{U)K28kk(Db_cRs9ch;nasoyI!z zAJ{sqgItl@@MZikh9;>hxzW_m<5PdxQoZtFA67bO|5?$x?)|#w-l}7=2;k|E25LUx zEV`_rOI_t4=(-mz;@7L}=WR1(jQv!(>n?g_VJ_LJ8i*=-L(d4VMpi#_Is&TMb!l0;p2QEwP#K2kBabEZ8)f+OQir#5I z2jALuN36Ajd$iS_ObbbKSJgxR{53>C*YdEUccvcPJSlColgG>I#K?5_?=e9uH~6$- za;(ZM()Hjb3Lj*<&1GTmdLW1W8sy(k}XwhmHpykac8n4ECnl%yuhUgYBog2 z37jF?CFI-Pg?n=_^g1Dx%he0E{>ll z8}3qcj^g6{z>OpJY*;GU08I7s> zGy19-uZCH&LdSO^yL`?QcLSw<;M*Hqb|6xYT~+sQ#|Wqed*X?AV+D|vy|dM%e*h_& za{dU(;T%?Yt*%d_v_87Su){Bl1a8J(ANvs8aP~+t?Hp{^;am&)>qo~U_b;CNAlkGY zilNWldihjVy|`H#uG`n=2DeiqGUJHl;eTy@1lvh6nybXX>iV966hUF=ocAole@=f` zF*L@fS?=tZoBr6>8!df8w?|?60O{rYoqX#hWJpP^bW{>741YRs|4PvX@>a|_upt)x zfy-0xgr#geGQk-+G?o;)-1380mOub{%mhGSf9(Hb?>)ns%)Y&0=^agIp({l}YNSXPr769GbcwV8LPkKOM=7CO zkS>TwOQ;IUAZmaRMn$So#6tTEilQ(mVga6Y8KYwkj^iS7JY#?UQx5zQh z2A2FURx8#JEJF$%$w2frI&C@wZfafHisWLkj?DH*o`kYBEvT`)sy8H5)?XC0Eok)` z%_BfIHW1JQ+0L5|cmF*4rlqyI$&&X)N3q%hM72TAFq{R!=i_Tl=*y(ys%LZB&uQt5uIe0H!2z z`;^paoLA1cScd%LBV=lxnx-a?`Ik7BTA1RJ<+nkb_a5@Ln!fEH`3;>BS32o}9h=_f zv~Lc&CVl_EqCWw6_1QAV={I`!qfcwTi3Vcno1n0)8c$I(m2%)%qGBcC0{=hk zSFJM5Rr0DHd$4DdG&SRkThNhrR=|!tU@pQ`n`cVK*gocui0$QZ#Z*Pca)EvKbGNKH z`2(0<_=3yO@@b`M#0=TLZQmC2j1US-Q;@Ozyx&^JAKWvnjY8#~2{%>7THulcOmpC< z5A?5(gsF;(RjFt*{ujxKJYKj|xW^Ams~hY1aItZ3Sk=^(E@`2s^TcPiyZs>geWSzz!4Eb zan+hC!k`R+iETLihXKt1e)SG|{9IgVA0sYaP^ZZ^kNQJY3grWyX6$G_IN@B9e$Gc& zb{ka@t%$7Uu2TUI;Iop|)TanBp+TTvpXb=K>JE38lL|lgUD-94*h(e+|mkH97&S4Vh%i&j(A`9?9h?P*Cp` zf-7^amBxVB*SGDd5w&(%oyw+4$mB+xiC#IsT`^8&+acowf4IzY3-AWiU8ia7#prm4 zn;MwX_I1Cv6GD!EvPl<#C+0Lm^B?2>d3LC_Kj_>GReb`;V#Gb>_4dywq>t`Z$s5o3^>l#TN|3ekvTAD|yBcy> zBD5V3=A!mzjL&kd7C3I}=#blyKN6VrH}=CaiZ#F4saK=fKk|MOXhGIf{Di%UtT%8J z!p~`eH|1@;XWuQS>WXDJAyGsDq79o6uyKWc+_gCg3F#b{_)jIkHLZW71`fOffdzd# zE-to9b2t0=s}8X>J6Sp*47FDDt}Ccjtf?Aj%%Xf(viN6~0qFYJEaeWVR#A5eyz+au z%q;oLeOl?+ko$~5JE|>*#G%PwhlEtl+e>?Z4bJ^U{zRfk2zikRgdYhKP@~&^V70&= zLVy*{k0X1&)FA?VWNVhGWUU_66%*SpP_dH!Y~~7tt8SR8FLP+T*9>=2y~G>-&~CrX zps=ezZ19R8>a-^RzN+3`EWFqrmF;MmIrlSI1M}~I`4j)1o69+*4MLv)vwa3$_(R?q$?CN_`}n|f|WJFp$2=8)i_W-}VANWFxs-@l>L zi?fy(KSYl0aNFt-0u076`vGyzRgK@tg^Lymy-3_d$e+wtBAnOH`BK+!AY(LRQ~QS$ zh#9TauHc}PlPdPS_ynlywx^_ji-!CIT-pQ#o1fI_{55@C?ZL}ALG3p`zi*|BSF~M{ z98+7*IoJ--L{dDLP`ZLdK2_NBxJI9qW;6f9Od1tfV3UH+74? zm9r(a1$VL3ZkojPJ?OLO237vKB=3y57HPmNuK7;Fhsb1Jk2T$+FT}-?V~-=L=+%W} zb0qYZZ90SaUYpVW%BMJ59_+MeIs~Bxmr}{2vz$>A)1r15xCREtgmdgp+j#*G?4l3$ zvgS4`cBgn+=t|%F<#QH|qYpO|wH0gZ*6*NJB9^C+9KrS&QB1Y~@*vN~QQdB4EmiyK zOII(Ya+|<8l%!r=17u>YW0l}l`VGxdGaN3zw*e@%%>?d+ntlPP5uI|hTW61;Tm8qD ze#nk~tJkhIr&)MpAKOozX^-t?d4@!9AG?J*X&93M+1A77hh~uPSza{kkIclT+dfBP zRq-Q-$fV9p(oa(TMkhDG@W9bS%$~~2qDm#bXG2y}b)WIqfzlH4v5=3%5QX`CmUEgu zzntNNr+@tyB8t>$E|%|wHJ$=ez_xw^g^OQ`l~>gt63kF0_gh%Dgqz^VqJ&H=yRBPB z(BR5B_N#pq^?ph7qnlguypf=0fE420aL;z)FTo+J?7D(6H%aP3ZV{drmhAm+TGNna zuk~~17grNv!OhPwb3ObfFUJc3ut~=A87|+Ib1HfuSNJrJM#-VwHD8$ELB#e4l0M6+ zT6$YaL@K*l?2)v|BzDD`cxM#heWZuM3{xl)oW@jeKkcM(n!phw9~{orNrOFsLX(jU zo;WV_u9Ys~>j3vfuXNH_;lXpW4_lrPBVy*n()vOn0gW|N`uRX;$Vwb#hgwPL=o2-i zC7S+1xvf3-&(sw=^gBL1NCM%&BX|=9^*ox97p%wj^O{V#L1yc94dPS?7;u*FZPrB6R>x+sGKdm!-&r?Q{kR>7 zCwU=$9ikW&=<|>$$#$vlExmXQ(r38@Ib3F1w6x<5{Gz7+7{Pwp3r`;n*wtRy0~$2B>tU`&XP`ODTN z6MjTThTV2bTV^{>X;AOu7);}l2-+X zj{1kx%ursL-prS?dt{7i3*LMQx`4n`{4f0}w;A?tnD@iTo=_1tA1IU;L5fThzs-3l zAJR;j>nn4Bl;+^(Dv`WA$l$~W$dli};=Mae1aCGTdKjW)FQcnUy!uhlMX{!=V9d~b zdjoX^{|NWwZ{g~JaHnP8e5vcTv3xHjI|Zo=1ZT+7!aLX5lwSA>4m}2sJ1rF2o+RaM zsw@ksRemVAdQhf(NwMx(wuoTKB7VuD2e3ZPcLdDifXV{WVdS9lPula}#{iwl~YKHc|y4I3nwr zU#uSBMCrrT2r?)A=DY#8+=0m!a5_;4)mfzdGU+IXziuYU71UoSuSi7;K|EuUap7ty z(<#~6Go6tJP;J7>h;1lFqEK%2Kz$A=o79;_di4Io@;SCb_bO;-YYGM6MAIB(4}e;K z%`A;fLvf|o718f@1dP_tMj^QkFaUC}N{ftra2y`##VqOZQ6fK;DP1Ap_#w2VvjVKo z%_0aD6J!IIQkhPz#Cz%d<{mM3QxG%5y^WYeC1=|y{!j?Zte`vt;Un%pKli_ymXghY zI)HF2G(q^N#=X$c?_~L&DHM@AJm^S3@~D;7;FZ*j0>`;^Rz0XENpZ38ZjvMb0X6oeV_2p%Xio9M&sagg*)vGmymg} zU)J{8`LUN1t0OBW;dBwfO{4C*pE{_izeRQ+WQh|_$ ztr*qiLl{O~fo*7cylBAG7HpEXSOo@f8A26pG#-x(H@_5AI+V~`dbYB*n6{!#f8{3~ zfk^h3n_|tDjLc?E{02qcICszOcjdQ1d3aoZH~~t<_T2JyDV~v%-3S4&{FiyiUZC2C zpd%pV`t&+%kL6jOo!@yO?O=!NBQ2?WR0(NH-Pf)JWVp?uahmQw|CBGNho^ZF8J^eD zd!cv~GxOQW5*DTda)~G}pEExMB`kI08J#dk%gU7q+1aV-2P*>50sB|COBZo ziy`1?0uIjb5&yFcH3(&yPb;H$xeupsoy49E8 z=O1>ThJrMIi>2ZdzuJwxzLsAs`yR@>=fh2mm zVgr;u9;uadC=5SG9O|=`di6d-^P7#*+eax2ZnNxXFuGDizGuO0CVwTxXlqL77<= zRf#u94UWen^`m&&s^Gg3zf6lTi56{{LO8X@B}*2f+KlI7J7Vd~N>QA!JxH<%2JD^v zQ!~9GR`ro-TzJ8wH}AW2_H%fxf9C@)p97+N7TYJhN1sjh*T6c*D_I9o!ZDTk^;9>&T;P~z zwnak!B;0aCve4}+)e0UIOR=V7?)i)&WQcRIypER1MUFo-ny)seGVNU#fyJwiT>2Vb z?D)gm^8IJR+l7Ni6<^mCY^GQZR0Ab#SFUF9{0ag)M1RX0X0Kd+Fk_YsDe<*G3}Pl= zXTzZ)C>ztpQ9UWPbf|P0X|I<${$NAUomV^G1BRRXetnMZ5q}okYNn)rgDENF z!GIRJcQ`Z!38`gf$B;N~cmhPtmfmTjxMB5+<&;FeamK*}y4pY7)RQ8zhejp&=!d~W zT8@k0G9hajvdC^(XWM!-bESA%Sfu_Jo&=3uB;P>z$MbuqP|}$VwG3H8^bg94+kStW zpWq07fvZ4}CVx*-#-TZOldw@;6|Jp(@sX2~&re8k{y59y;@+8=-I?j3aQu?I=k0F! z7`>}+zx;jT{&4cu@x%j$CGJ_0FK?b~dU_;NP~<}W5h42>_C&hi}`r3*WTx3otJ7exxrRA^Ru=#-V%&D1YKixtme@{_w} zUR0h~_J!6)y}*gXJHs1sVOyH5qyXjmJTzQ7F80mjGB0k(V;64AsqKTywUV!TsBb)} z2lD1Hd0h*bygAO&wKsy2je+y_OP*Sir`WVddX9dTgO-13MzvCJcwbJ?I5jkPk!$`M zGJUnp;o3r}nX#Y#GbnbTYn(v?cSE1vS_lg)wq zloC!4-Ya(n2C6znM4m)dDO6gPL}-7-!vI-Z{8{F z+WCu%ir8Llb_{NQM!pu~pTbl)>ZtOYDxnEu4p|1uor*PphqSq1=K)@MBsT(@xHk{( zbHt)sOie{X-JcA8=u8joJTIBUh%vdADXWu_?cP`WeT<4K?>$@ImxZu?gH(L7cG8QR z)pmLxv`x}!iQDVm-$9yqWc{;|D6d@Ipl4}~H4jOGe9f;`Pt2XhEi57B6xEtV+!&`R zdYMiu7cNzDJ!{J%PTs-mz2g37<5Xeu;yBGrW?UFfoF}-UkXihl-;E#eYVIC%m6({$ zIgw@VN%v@V)>0i5YIr7Ihe&01Z9TX8spNXTmRHY!PIjpKz+Q9Ai5%uk=XgOPn?xqb zs^qLFOIWFzN_j7vLFT?)WL&yRnBR5n7U4+VBAMBYb(Afo0()wP=gZOqL`}ANf3D>F zm16&#lEq+Cnq#0Uu4l%O6D9noi?1G^O%@=9((20bIkg0p+Ikg`(P{(7krD zTMt@CoHocGcXu?zy`t8YytuP9>#O1~%0rgL_OsR?`#g}kI?zoeE>M#kVvWR3r{!d!uX}LAJG~dvDk^rw<8+G=~U~Xp(%jrP8{Q4 zpLX0k97(?2xer~@v$vv`i&q^xRTzm;KV&K*X$EBnOUMDMS?~h z`FM2FS7W(+r+FGnA}m(sNb5pFpjT$)eU_$P)DQ1Y@I7A%2=wW*X>Ut&j<*MG;<`6z zkdMRoU7uuDF(A6h%tn{H8X^)0ay(+uYP0Ytry9ZbE3_dJb0u)F{8R%x(sZ%NWELox zcY}G+f#hnUnKI~aePPYo#+o*bRy-%D;vyWA-V zO^tZm9Y7Xk?@lyot11Jc?q#I(z@)8bwz^TCbi8+nOgP?GfJZ8fv zbWZNb(d9H+=6I|fiq)(-Q$NoI7-Zw5DvbpOG*;Qldz4V4X5tj^ z49_DaDHy-THSb{qSrrARVSggt2)}g44$YBX(QaYXq2a-7cV`voZ#_C7%-uoe(IoH=&wM4V%O~Z@axyMs zPR=iMp5tSnf={5fEnlz(yhaw6C1cc>Cp#EOd3SOiZ_4}e-d@{lX~qIpYi~3)^xgZ7 zmxl4=#2RBYnaPsx<%f<4FnEr)jG&N(FmiBy^oigJ)jE z5?8B;0p$ar;h$Fu?%hhM?!=%hmJO29qF?ns8SGB~(3u%6c(kL%6CSWq9~}Hf5c0&3 z3x$VfF$PGzlG^>#C((~)CYr@ZWbwOV{}ISG^5W8s;xO?Ef$yp_+JGDr zag)`cEbUYN0#3@;s>GN9{Xf7x6MW#CettSxsWmk_R$eA4OB&bzCd5zlvCi8H+O9hU zNw;MqG#qa@{OmIGqG4L5#hOp#m`?f<*~+Qe>s(3jI3c-?s`tsCqsHTkR%@z2EPsmy zbgOKMWX&cw7)zfaNc#HU_?HCHT7@Sq(53lb5}dAOXoca@*?Zpv`*B&VSzM=aeh9|Z zuLWr_?mM0g+!>zZYypS`RB(S8?RSqBoG{kcu$Uhf{Lq=p|3fD$fN?XmPQ9mzqyVix zUfJ8gu6m|SX;U-ujn_hw*@OwgN+<$T(Sg&ce2piruSFBtZOv)E-{H~c?gp(F9Rm5Gm*gVwBxo6$ zs0nQf44rV$(p-Vq!a#U=uSalw;$Fv?{fxYGUWj>imQxEeKSS5Z!B`QkAO}& z`KLlCAi&oy!LJckoo$qk|5nqmc4ga?H=#sIbn*l z%ui0kEz(g-^5LLcTk5)-#er4BSH_dce9E&1n|oz81(LE(yE_N&yH2T-Cg_r7N zipb19@YB_pqFNO1S!&u_LFHMGKsrtuxsEt{3pCCI27an{v0=&9kwmr3Sgb4h^vf%s zI2)y#4!pseytecy>JZC6?U3nln( zbwGxwc3a*aOV(cK3r7=9FOKa-JLRWm0iIQ1rfN1XWh2@>55foNe52QUk`R?4YyXu zA%@<%h0a9FTdua4!WS{lpGpXg8P5eJp`}vB0P@9n={}gpfj)li)?BPd@T4^2X~VuD zK}xoJ+aa_7@5q2~?fi2E@EHbymCJAY}z=i?UJUZb?yeqnIa!H;gf1Ynx4`PzA@^x|u#aox-+%Cnrda|e8~Nn2T!v#hSpZXj>p zY1y#)*DZT({Q=3+m^1Ib^CxkQRr6@Jk*am_rDxzFwL9xf!lTaNppl2gy$kU1dq$|t zrNP(J%#`O?hvr-mPcvZUe&lh&QMs69t~WjV&B>HZVX-w||8(Z}ekE1LEPUI-0cE>( z{v`&ok&+km{V`8Jc{(k9K*D$7!liuX#3)(+@{*YCa4TSbViSC&xa?{~dU!j5?>PZg z=loJe)gLQUK^s1>%94;u>CDA)=ezOL5l}6rv~MeDAF6!0u~oD@G`n~4>PeqGkDuZ7 z$t4AJmzE%1*|PK%E=t)5*iFkMVNi!?JD1U_egIDg=_(0QsEtA8i}<@LBQ$j04C~PJ zLy}GgB!+e~nnTmaluz{hI%+-Ae|J4G@V1Ma9}^GfPc>{G@B8VagX$*abT;K{h!y1` zgzbGdt<8@A*3_^TjigP-%G(cZJC)Z?*YZ{AYr}$&lbnQ`YE{{kb&N%%Wrr34y>D65 zhYs1rWt~i$kA69dwF>GcnP0XXplhJDu*HU zlsRusVQBV%?Hp^~j1D`-{~Q(3+C|UDHhDxyC9k;auAywl2u_RPj5^0YUb8 znDT0jGhzQ4+)3CkQ$Y_{-7`XaNLoj!&WdzqmqFS>aW~m14mkq){gfw_J8zcN){J(% zd;lW!(>fWqbkYPkS5KtaE!&#DdN_y;#P3uZ=`A6xi>l6ubY_NjUMxA&nl5$Q-fzBw z$}CJ^wVRe0nrk4%iVe?%l=q8D985Ov%(FXi+GObv-jA(Fc6N)VW?0G&It<3vmMSFC zGdgIHKId*+?8}mHp=9fvCk9tL$;`(9z~rwmm2ok-MvROVnlR;fiK$MjJ>NiMW%)AF ze{>sOnvHjc^Db2)#P&~oQXCl`JY|}*RLN}Ej{PGNY~6Oc2;+ycVFV3k^ zb7IYNd!LQ;u;0d-WJcMss7Um4mD7)VWs&MMRu5Fr6(ux$(V5{1(5zR)slx&lJd4Sj zInFzhN3vTMy+1hU8C;#g#r=)d!@U=NPToKqRkR{e(J#8H=-{WM5ix!G3uChyA}@YB zzr|6_ks~~OniAIX+))~1rj>ksXA7$m6ic?x$9N?B}ToN~;39M5-E2F%C5BQvD(O^K>WmrJ$|o|3spR@)U^pKdB6 zX^?3;nT&9#BP8%PL0?8yzq2+tXg-|xsg(Oah|2`V`$iEu(P?Ab;sYmo+07MDobh!u zR&n=%zj`!iE{)T5v8aKzSwAjTG5*_Vwyu)zOmBL<1@S*?W~QwQCWZ!wmzm=59Rs*5 zRioj-J1Z7pGEef^nXAOmnNh8BmJt2zep-vbA%8Qn3vqq?&c>>>XpJx&i#`Sy__?6i zFGZ5qe!@@#yxJam@e6(Vy_jqHHrA2`Y(F|P4?&MPcegS(HobM`&$EV64E$XRguLs# z(m0c*wb-z^rNLho3F$W0Pl}9Ls`SQsE*+H{+vL$4vH$r(&?k?Qp+@+71Rw!LF&)oB4fcs~4%9ZR*>HauF&B8eM&EYVXCN{+;d#7fPL!I&=&iGtd`FeWqK3f{Kb=49 zpDqPcJ+^r6yt)iaYEd&vzQ?~hOmv1d_Zamf*LWRy^LNvUzl5b{AtJ_ioYmYe+i*B>4DgzKX(Jl#-IgHG zB;(I#vb_chdmD(7y`J565Au@^5=M6&Ew6oG^%Jj!lcVS8Snypiw_N9igg^ z|5+p(#80mAnlSGmBUT_HaNfJaBfLT$EdUi26AlZ+vG7}h^#b@@R*ZA+`|AxLvX<8rJMf@l!Yc8dROcOzK0J^LP*l zIvEJ%xTUL#abP+lGuS@%=79N@i%8Uc-$RIxAQWLigSP%GU!HE3qoE?QJCgS?ey6{9 z^59@{uL`oNo1bLmbTa%9fhE(K!r(u5Y}*kZp$Cl4x)JRStjP3oI% zJCHXeRog{@m&o4%ruuN{OrNInIiX-I(R0Z|sG!(iQhM5Vndwyh>wFq(VwA(|ab?Qu zd{OhxGMFW?Ggy{^-`Q+RlrrjvHejCJxr&ZWuKEhK!E@R%5)zjOKOzCjP6$wJYTs4m zUcC1k)2~AGwJl3fm>CVaP5ZL5sdC^vCDx;fyVkvL0GcMAoF`9iSQbpce4o?Mg-w5m z{5l`iJO@p96*L~u3O$x)1l3n?``(aD)DHFxc~*7a9#-sr*;AlSU<96-~>&N zy|{|ldKbx3CxF;|DSC{r43^IR3>&j<-Iho5bf+E2o8c5@teIpo8zy8ym-X<3RL7;m z2w7YtOVS@Y@>YiO*Y>&Y6c(gYzKC_je=EhtuctGpzcR#fa?>q?P4nTf_V&hZc7 zMiWYZV`anI2$)>}6m=peKfyJAm@akm4qP>Y%-Ox?+-t0vNGOK9QHE*`nvXG6z8l1p zt&=XFIyvX+p92*z;D^mGDW}1wQW>b`fLc;4o5-@E@^xZ*AKaW3Yd$$2u`K?@zMk>P z&OZzM!OL}#ZlaRHMc~K@d;c8mPf*WLudD^P{8E7-bg*$tYNKF zE)b4cl6#@E;!cS^ZedB=OtfM5#gYef4ycE^-aVA5_zdvyz9cG{1~b?= zQtYE&rPr^P+)=lWKWWqP`2a%vBvJ(Eo7hCGByXVn`f_^fu908mtT$7z?(xtvIkptQY*BjnMG~~do3@zTJihokGwPVC2Q-~qE zUu(ebN_3rnYO^GqyE+&)hlk3GPyYd7hLpKXTiQ3ozodO5@UX%8m7_lg*ogET{j@}f^H9X}O#&gDyMp0@A^^=vsE?ScO$>)@AT<25`u zHG3zP#cWJy(3FrxmJ*csT zO70a-N0bE0w$Q`gv{(%SOQhs^5h@8*MAc9J!QUVnE-TscjgNd*{Vfp__~rY~4B4z3 z3W^?$?&yM8uBV-5PS+0J`%tGkQg)qblGVn)uGvbZR@ia&K>3Vv`Nq{V-#geHSk3TO zndWb=pB`$g3(}?Q)W=YcPgS1n@C0za{o{R@qYv23kV&Am9$%%mB zv##IB4lGi7xrlkO)jB^(lFS22nLDvEy~@$^>y7u zm@$X1(`yiBcyv7L_sGNYlkef5jo(71y2g)dKIw{uq1U(Y4TW@xj9t`V^3WY z575`!yIc~F8#YS0Oc9^X>>^^5ZM*XR}GG($N53+}gYy}$y?`lW}@$IY)@o>&wY%FzqPAQ^v;F}iu z>I)fXqn*QDx8Gm1SdDj8IkyiKB9PIjN8zWyTyZRY$_yOgfWT%bxE|2gp3GS}@7=d3wCM|U#Fe)}7r|tL?vdc0J2y%#S`O)8IMai4%Z5+6Rh5f{68D*gD9X+baD>i z){ja?1X+!83okW%(?JCc1%@HFOg2iv{NTnoO5D9Jk9*F@52nM5XA#wW$yflvHEy1Q zoyQ3tI$4bftGg7~c0Af+$+gn$4mqDPOpa&xXfdzXmAQE`?kx_-Ck+l@UcwY~In}|q z1o3Pv{nS@b=gMfpwiF$r-JitA6*354JM}2@j5w`m>^zLG$5HgMvo%43J}mm>tROab zcU<$H@5af}+MRR^OmubyyELpc*COA--;J|R)TMWNzi$5IqR+7H@Vx5sIQGpT?BhLV z?(o+saa>M86h{b480vQfp>wn;LR?aY5D0c86WU-ZQaYHQGAs6pV!Mik(13Jis zjGG>=u$BsW9DirB`9AU=`98u%9H8n}C@vF3N;l~jTc!sIo3MczC zzY)cC>)VW1x=O<&^3To@t}QO&4D${j@IhoNhDUTm7h+|IfVvKswYnP73 z!r%J`t3Mm!wp{VeT-<`s!lq=Rj~>b%1w{UoF30 zUR;3h7GR8b8RH7R8W6zk1EXfqF}k6YjQqb3Sz&t-Va9b2=hek-y{0wtONIzIvDL+x z4$zO$osW;h^y?Sdp~qD~S?YxWh&`@?e*%-01iicmhUXj(Xx{CSgPrXKM?)zy6ca_tJ${02H#TOloMwCykKN$y92L-3-anVgb zsu#~MHmTBY>QUCnYUB(<@n)ApO`Dxvj^R<*JjynVm-dgh`gk`ryB@3!=`x~sy2AG^ zEzS|nEp9E~@$k`!rM02BoDYnSMGvsPdc+>S;_rD-YAf8Gvq25O{rFsk+2(|3FUfpt z9(c5*4$md<&!d_)b&M6vT&o^v+Bg`;?3q)}59;51c+pCpXCy&XGSYvXq6!g=IO78& zltE#LGxBRg;_k-bN^74FV32=TVlcqX{fS^LL1CKSM^B__nv2my8O3I*3UB%N^8$*N#n}hVEDIQ(-3(Te>}JI=s~it z^XIQ&?k=nN2VE|P@A@O}{XiV7d2~Zi-{I(6UE&XhJ)*0Bw8q^5`38YW)f+W@a;X+0 z?5W*RQB3~2hzBi=`5O3@u4w}tjEl}8RChUmgeX2_ZFu<)L?xZH$YxqC!pQCcL12D4 z%zN*_%n>>~4arij`VhQHCEV%&g>ty(dk?f4;X-`Qip4ftzAo0_tAXz>6g>F4TfgD! z9+vLf;T`U>6OhAJtEG@>hrzzu9h*HK9T10kH#9o~kdJGI=U}zTj}f!*CWGPOn?P!K z^0pa}T@f=_#T(g-ck3Z+0r#Xwu?4?%T;+U(wo53mpsCCCo`KEyV_Z%Vxrm&LulAs* z!VAv8SFnF1?(lg6_7Ci|g}|&4f{q>k`|E!>@V^}RUk>~)2mY4>|6e$el6-%QEk1FG zxvRiW3i*IzX11oyNBqu(;IP;oJD3k-+S^+2af@-oOMJ(UnmWSQ-NN5KCsWN6IwVr+Xyz-W?W`GOMrN z{luzzjYoa7h4}FJ;^+G z?7rO}yNdMRXC!o%l{)7x1#)T0nV-_vggQr>nxsxR|&V?IV{oG z8jp@;gfv>-#Drp-Mjf8`DVk$RqP(+Gfy*Md8$J~{?v0d^j?b36=bjJKw|X2O$r|+U z(4LLR&BJqlSW!#Irtz~!vYQk;M7wxL4T=bcIp)sEhBnikf^ zbrsw+d>HsEKheF`BTr=hW%^I|^BL=0k4IX%(p#{{E#Kp#G%Xcxb>>bj3m#n7cqaen zIm)_ahu%XWiM|#xQSS0YHulTxF~zqQuS{DO&xG~3L|ERGeb_5kS$g?o^d*yHF(GpA z?QZUS7Qtuf>f!W(##`@b5q)KbJIx?}poCV^j#?Ye3kT0U-1 zUe!dN&@uV;w3?p-6=gIk`g-lZZiR_y&tu){qX(BZsR!-x&&OVv> zS)qWlfu~|@hil$jzRC0Ou2;I!{O&2 zVG~g+yYFXL(0fSh)`6R@FX34wj?d0gIi!}8^TS@ofq51*oxoY{T=_><6Ez8@FZa9^ z%MC54hCu|0hKVJ*d2^3)NSG{=nvzDr1HFAR_fvk3^r_ZlAYZob;6y=zT*L1x95HwSk<&u823sgxswjRP5Hz4_>GGb4ZM3= z?O&WY#}xka%Gu)VeXXoc>V+jOA$R%ieBTmvw4E78&6HCL_Jpg=UUr988(8t6)^S#r z$+i7fSh&3$9nkVHDfiyqm!Fey_PR~oZlbj6$v3%DL;D{%o}%VHIvTi%ygNpTXW1&p zk9gB!uKn-Wz)h-n*>x1gd8jjm)X6`7rSDPnqYo3+gT3mta5k@T+WAGTa&PP3=T^U1 zUnoiLL9v>vpRo#;?e#e)M@O=VRaOsvS80_n=qa zU9I_dj|UwjXuOS%xAlfo9>z@b=bW4mHvPp{gv+4EB`_<=_)FfNwr!-oMzzUl+zEZP z3-zIuZ_3fupK`lQW|rwys@i^-?Ez|epqXHeE4-~zoS*h+bx6bSrU-$85bmfz=!IkOY3p^6_rIWLmz)>1sN=MDOWX(J89u3LKQwwJ~LA(wD6RjnbY@ zq?k;Q3A~|K+&T<%J098o4~zb9`;G|QVt>Br@nM0-A@=_QCXF3C1lst6Y5*uC@#yjFCm?K6D-sWWBe zw{O2}WR#9CX=`=eec{txj;k@0dVMPIloRE{Dayd(25s$Vm+MS@^1FW#xl(r=Zf8Gt zftp%!_WonthZO|O=J4mU6V5IXSkFGZr*UTb5&o4F`y_RHJJ<-FbdNb4QLp=p{F4DI7AhbJQgI@UX+1VFLdnb@BM39iK0^ zJB>-RT*kz|rlKEtau3c+Tt1CHGyTF1&y<|M4;;G_nfFj#JUN@FMdi!6 z`rPq#sP4eY;;T}(s**ok`huT4XzF1eEgEv(d4$?n(Zak_V=QVKKOId?EBLl|+Ko6oCfZVU z|M?EzYC{%dk^Zjw=EIXagf!JD3uUObOHO4wx=qG7h*k=R$2j1MK5-#rO6BPpo}~{Q zd!5423>%rIO6~)LdJ#L;txdf+63YHiy&T1{RL0z0{=0J-44q8k=`~Eity{bU6LR`ge=5z05ofhsSIL_4&itwOLpMFGLA^UD~&l zK)##OzTteq!DeVe;O&1Vte$*R-1GQm+SAjr{iRgG^x132+REyWjTw#2GkX_2-!Xq- z_j|?t!S=)(J)~=?IX@0qUeLs#+D*p%r}?Oq6f3h(Fkm(iL>-#`GRD=y zktEv5RlL)hjh{uI$e>P{(fW)d(=$m+myTwVl+@Zc?CecuXYa%-Gp8M}Hhp&&2Kyk&jeb`V;<<$R3owXH3lb3`>6uO9m!} zbHb!eyk1cz=0c3_TW{MVrXR0e&%yIM4hb%n9ns}bJUr&h6cPBb+hJ_$#;VWGS7t%o zwqw%EV|&P`Wy`GalkK^J@$$PDUmTu%TX04y;z0LJoZ>)n7cXX!S8b9JE+^>zDG|zg%E^L4PhS8Xh`B^pD!;aEI0nQq%61xwN zIpZ&BUTKGqYU7bhEFj3dH=!B~c{$15%fDq`7|;Um*r}6wGA)Fab2)UZc)1v*7^XvgJbn)mG)UVTz7H@qr+^!ia#ubl~b zi?=Vw>`@oev21IgvfT);g9Vp33hj5x)M6(sh)SX%`p6>S7qzcmtlgo8YyVC?Xv|d&?3%h9et_kzD4=JjPFOEPbRJY3)0$wm~gjc1*N|$1!WK~!Xm_JT2%ZZW- ziC0{6wIuzY_P#r+$*t@2NdiH-5tQBnA_yuFs&olGh~mA{1Zf5$MG&M2N+KdrngSw` zD%JZ6ikARN(MLg02rVdLFc9TRxpV`9ia00tzTeDzGvBN=e|)oM&6*cT;VI{wz0W>- z|MouT*@wE0oY)iYf^WNZcKp!v{8j1%^6a$>f{)V9`l5o0%+Hg5lMH2g?DX;xn-q9Y9MQwI0tz)U81Yk892WDJ&b=XOeGva5_T9nBr5a9+>s>$xW39fgkRNT ziZDwm8(+Y`Fc$^R_ViM|I~J;uG#BJRRu7Fc+vCYQe%Efj(tyWn@3D5v-KA#WNTq&y zy&Y5N;O)RVv;!NUY7q2`B&OA&@R>t9eWb$y2QKiT19k)eqR$*TirloEV* zN(CIc74_v&7Eo2q%tIy9F3kHCCHr9I7rSmWQ3Fz}a%J`YF$NN(gsH2pF})6`_EnB< zufMem`%#FACR_YtOibi@tjxlggDvKvpfq*?+ppNGVYqF+tg#rBk$=?Ha?t)^0-QiM zL_I197^7S~{qk-EH0u1&QzR4;4hdHod{Ix61QiUjQY#lw=-(o?kJ_{N>1UMQtf4Hi z;fBF!&XkC2<_K^>l%Et3$y;s%cFgl3)^6e?x!*J^N)#lo>!3YPB6@THB8m2kIXld$)@9RQylyDDOr5Dp zrOxaQH#a!-nrr-m$Snu|sbJ5`7#0Rxkd(;B_KUsEX-c6hRQfoJVjfcHp&<*h*Io$9 z-Tlp4G^fd)kDmznz}p9V9R@yMniZM*z%S}|@I}*bHPvJPtcC%;Q*EB`uz=p}m{by*y)Ju(~e8ZsEIKI`R zwQ>al48KbC!JtYR*sQD&bhOHR(XCUS;-prJ3iAq?t>*COosveN@tQ7!^i@rl>GmX> zly6N)XAtZXt6F1E(()(eFtoyC0o6 zeQn<cGO>tA%!`r1YV_Iy^o{bWh;^du){WaDp~zmD5#iM#mM%x|;A9&7Bcs^GLu>lR z7ws3a@TrWay%e+#Zxq?>uvOcaPE9kmX6k{C6AeFoWMcau-|@)P!W3bd-(J#|6!X@Vk8s3w=TTA2mzWV8~kMdpEN6$a*cKVDQC@KDSkDdE)sV3?4REi zU*zM$OkO;(7tjwGQ13}p9DP+^40B<%o_BbYfg6TtxC#B!RH{kkTC^;_b6?(ej0+fl zW`}dBj|#pi-tiFEp-E|%kE+I4r5NHn?Hu!73yA23ZJ$BqA320KvorbbXsT3zlIJka z3BGYb@5e64be%-ErP43J*&4CBf;l7830r6P0yTR9uU#|x;gU-l60x`5apT#$J0p%zxtfsJESMPCnA7@&`3aefBs%T!#fnO^0i&b+-T9B^hGn9a?JC~Ig@V>>4Jz{PpjrxS8l*7kGk zm|0T^TRV5C^{Fh>{IY%we7Pf8qB}CtPA|D_uN*&{opHNVDVk@* zmy}D_%-OnhdK}$$;|3A&6jhu5I&U=%Haj>O;kS3U!+G&~D%}Q_$S55HNapO8QDnho zpcz^I|1c#S!ZXT66G|)z4|l^mg#Jj_(ox76sx}*Vn`;P}^@n7mP-;Lwl>l!~;nSuQ z$mo`N)_3>pu;d)Sh1#s;pv*1j7NwUOv8K!ZJ)Zo3WVBzYOjNsoDRA(Dl&XqmD;26* zDk@!S%v;G9=!P-{giu$6D^o?3)hrM%Ti_gON=De3ip@jkNeg>m-@Pxno4q+=P&5FU z;tpQ2m}FiPrXA0VFJJW2BiUe9G!IU@@9w)soj`oiW5zfpZ`;HS+M1js&c`6!9b0zB zOVv|9TS#HNHG*YH-FFwINyDUxy&Q$t4cEj@56aAuy-9VBp)LTpj~r#|at0`tRYhaF z+2|y350pIAkIIK0psL-*gULQIBTsYasQ(_0CGN*Qu?kMYGfQ=uK~}%S8Dkgkv|X(f zJ;GKdNrX(qk>idG#LbkUiyw+Tx;b*2KEgNd6gqcT1-o^KX-fH;my0k$86BJWK;3`> z1F?~Ek#cM1kbF5#9g>(KQ{#=6B|jNB^!^q>r3=zEvBw?Dv#1`n0;gigmFFa{zpmtW z^wv}+DXf`EVV?4f=pM#?jNoYY6Mlew+WXCv1h%f6#(N#{xvtJ?<~O!F=ZbPUs8N9e zxZjxqG%B4ZU&w@#2USm!(c|448*0m>gVS;`BT6XODB{n9!G3&8R_S+{ zC~rA4@JhQoAo~n^6f5#J?BbMAf`K${B+} z9tke2GXJxe@+-WM$5l|S>5z?az?)%bE$qJUC7pz_qI0MoF4HdrC!i+?M$hl_nV2Yv zdXYyv3Qz>ZH;N6M3lkmham|vqZ>TJ^X4BtftbU?y{G;+DG>&|~?S$apE~!2F0KPMh zT=wMq-D%@UJoAa!z;|*TyuCP1iFEI`2!lwa$>80~(w~z4ABzu=zq-~VgC?$N}W59jOpbYZTXnwr`#Jyq|8 zi_qJSXxwrOxz`lo9y-UUcyrK8LE%93%JFmO&Ncq|Xwvvx5i31wu8QSz&gbolSL2&q zPLCybY*R}H4<9)TS6QLd5XcYTJ=ZDIj^5k$m^@utTK`!ZJ^nx{N6qnHfB)hDj{}tn zDl@|PVs5Vs z<>)`X0QT`iKS}xeVQqCuNPh{GvSo_JTAXnD`T)jG)l=im&C{uGD-s?kI|}28Tah3) zLH(u2B+W?OAFX^Im!=vosqND~bB&sf)GA2akIWx>`UwslY&(9vGIjcQP$Rhblh76J zdHn~VX#W;%>=vI#r##4Is&k$CNWL$W-_h&QxSP}00}Rn)FxXmhho4ZNH#i9EanmSq zx?lH0V!_5*WG+qQ)$^OHm7o@^KX|e-a=CngOSE5f6OFEx<3Kj{SaC1tqAwJpZ;gpU2Xb!S}AWdo7!KiyO<2PVW zxGv)@j;{M6a@SB7ZZ$~A@iw8ATu3Plty4mdKobfWOa9tBN}*1gmM24hsHpdT${6^> zyC;|aFzMzK1+aJ6cJKS~lN<)TW z>~QWSwZ46(p>;p^<0jDamF>H$@{|I9KhaeXG&Lvv)QA3Xn+M@%J~GuXc8GVWOY#lc zEktR}L&l~N?4{m8f_r631IfpvAF$~SMO*u7irGA7MuS`r2Lu!=>pB3hW%dVd?hkB> z9qJeQ7H7OLU%iLl@%Gpv*!CX%W#|ZgGgRG5^OIi7V}VDv#GEv5>Dpmdq!;9^e;yxl zz|U9mF8+SMhf!KpN8;@0(#9RAC=`X!2VXLJr5~h`rnh~I<6AI01iDGzvQ0{Q=!oVg zg^agHVVRigG&#L!Rd$hJ?J2_Py6nOJz2BOz+3~*dC=nkBn#yJ#AznmHo|9pR^BE4h zKo3qODOMM&&P-tFTpe>w2j=F=I*ewS$QY;VYF4%7FB(E}Gk5bodv#4?Se`aNM+W;< zdE|1z)ZX6k_N%(D7`-!77916hFg!h@j5`pRq*z|uxO!&af*GFI!l#=i%iA*XomCm# zdYq(|cP}r>%}gQvWF}Xj%sjUdW`kRg7wfCpUsZpO!Efp=oOm98Vw?7z6vlg)%cDjc z;oBE)W@Q>WJ0Z(@Tv{TjMk@KOaf^RJURb_+d4E-_=zKF}asMeZMS(AaRzyYH0lnyb z;q&Ofd)m?+*-D!Jl_$kjt%ajY>Ibh;on=Y|LMHFcObpRiAoIN;Ay+G(n2RP|iLI6y ze-Xn~UWUG35R0cq?DtPnEX%Bz1=mGcn(tk`r)Me2`pw}_AAHgkJ15OykvV z-x>856ItV%x>V`_vukK|DMS|J*PcCk=j8X0J<_FR#TURmb>}29gQl*E%(;OU6mAFs zoW%C&iGS}b*Gsv%8oaX}JUVvA{@CiACrdNK^-l2xLP-_O4<}UR9m8?;Ick18>ygIt z+x(2`<>EyinPL}f8^;CT^Sy`WZ3WKqEx)PCbH;Ihg=gU#Fa{om5Bu$@H^&)4Mo4#5 z;$T>KO|gVD5ELe(GTm#gFDVtgVXURVO{eRUU&5#B*6sK*edv`>)V21 zN@G;su+132%3h^jpuOTVuF3m+0LK-DQ(?C)PvYktS$tW1zKEimG(6wHnDBdPOzGXm zElXIPE*JDXtIpKZIkyMQJa*x5=)ad3%hGdjT?d_2*^`L{;T2^@1_f|B@i6XJ-qTXXLKjZ4wn#tciJo2FlDU79PThTjHZQKL~vjjB-PbKqNAm?oaCUt?7o{DMS z;UP3%m8?Z+m?28l7fZFEMp5$p^TqtNe6hNy{8XbBP5T;7 zdwkiyO%M0;Ep-E=naK5;OQaMQ`~>S9l%T`qb;H*Uf`3?<0oiddI9+#3=ox(xkD z6g@ISl(^n@gx?S(LP|_03saH9JXSie<@C zLr3xNi)d{H)JK}Q1676TWKdHpxfs3?^NW*7(}Xoi|AQ15I_wWO`^ zCkXb9BQEk*b!++5GLTDK11FPWN)et}G(Mk0>mKSVUacLh@S2NYc|PCJzH`HCZgMr0 zr1>dM^&5bzx2Oli_!_&;MtE*8{TdZ0SHS5ji-u8tg)@uT zE@kXuC52&DvL)||!bI&c*IJ!B%JS^l(5@=BpB(_Le8t$@uYQ7fF&ckDxTy2}IRZXO zB%Xh=K^<#>ZWC)S00ri474ylv80{QoP}oAhv?Q2BVmrnT%k5#7N{|9g|5;?$-$iym z1P(VRU@9vb`|&g8ip>l9nX-L4!7z$r zcIm>B3;WPn)fBHe9s?fOlY%uT8}ecmtJ-hbc6L*a(Gs)LsmVy+XY#;W+j5ZV-M7Kq zvER-=odoe<0Voy_ z7Y}M;EyQYx5%Dg>E#utjKiqmA+%eI@9ViE^S0`Sl70v+56c9f~n&xAfQevBi8xB1M zI{H+`z*$y8!4)UXr-DV@@8iznlccw)kNtw*j4RWj=y6*qMiq}kbR!kn;Q>U@1xbFo z9W6?uE^>PY$F)KNrIr)UAD?+^18m@m=V4Rvq5gH^)YE{ic&+70LenI9jQ~7ds9w6y zU>fS3iIBjJ;p2KK4btNa^r#&R#RR!AX{$RY6Ulo>WqD_%1KpfVG7P^!uFS4k%!ad)|)BKv@9o0DV=(+x#Iw{=908= zuDp&qjy^IokwT9$o{TmQPofw;k=gK?dXP?Dvh|S{PBOiX)8ifjYP(Oqk~&JTrzNO# zj5*2G4358|KfH;M{I(8-%Xe+a+sTO!vOiKce!a5BSD%Kk?L2@;)3r3?pZE8}tSk+k zh?1_)$~s-weD*qcW3oNrvsW534YLG54h`K%d638xI<~5fReVWk>0#`YFH*{&D*d4x zG$lY0*GplXum*CUOk@t3QY2;u8sKg{ZZh;1(Ts5A7VU=hBct$b3LCP1m>L@KVZk+OT{jqiBj#TbB8Kc504HVvXIVNsV|VL!-~0wcZ=~2G;4w za$;GD{L8UZSLXD%Cpd2@H73Sj1&$n!>jO`&DgzKmxO4Tm(_`|Yg~0qDoCUtcnhLib zevvc6;YD_)H6Yb5+HGcHIwX)Erv=N%x8W#$#I)hAA2COqz8bQ=pziUozf8 zrIin<8^_frc+X2y5(|pOgQq^hQXxwk93lN7J?@*BIIXnB;|F^f!qOi2uxg514@n1&pV zd$beHK~qK`qS#l>Xp@hpb~$ODOi_O)#EAitx=+5GDm}!Ofj@}c9cf8LgT-I6uNcE2 zWg{&#isZMr1L3tn#9{dskU=HKaPicaab#^}F)(oZ;0V^cV%h{S55-lmH;v#LJk<<= zBzeH-XdNMG;7+Egzk6(T2j~{6%`c(sLvj2b1NDZ(T_k$+-taJg<56Vb5m zP9c$~HMv_9%a$N5;Aj+tAVWJ_>F0cCHzgg*PrVwR5@QF#KLC=M#7cCK9bU3bN*oqhtV3mq^?G-oJg^?c}f^W#T7{KmPe)o92oAS=I zFxCS2HOZ!w>|qDZPx9*B`#AtsDss>~2^ds6C{R#dK^=XrZQHr4#apDPuRh`qkVF|C zKu9q()Gd3i6Z==m`VB^X6a{NJ(}F6uo_G2=G^Jo=+Se#hN_2s|JM#OCC;o(^>7H`O znEj%!z0L&YpRQA78Q<~`F9(LYI7^Qk!y4@*3w4ZI%iS}sClSxwMtR%vN@EmN7l%ss z8_=T<0<>Y-51p=aAMSSy`3M|>;jZJvGjgKf8?LsM(mk^n(_&h@sK~!~$|}`=zAW=s zc`MCRw>|e(5uyRXfdUP2W(#3~#$y1tsdw+X5+%G)%U?Z+2W<=q)M{wHiPnoY?`Q?; z1DUUv*h`iGrU<1aGO6Nc#IE}Y=|$i61U)Slwv)YpRP>L{M~0Fn{W(XkG)Tl>Hq3&K z>&V3FWF(RSctE@4K>c@Gi(wnacnVw*6DNjBr@F+rlil?aYf!0K*pIu=$EEvyVw!KG z3W;B;P3nJ*iQCfubXiaxvrPNw^&td5Ry~GCvP3+JsTm%u0tLUumUiO zuG=^7GHeCh1kk==u|Rs-9_>^gtt94?%IbFRuGu^wHe>_qRtjLk+E99Sf@nC40~-_F7Y zm^L&Q*mv0u zP?}q4d&(kcS@mqhZC+`o>&9s9pXd$g9~R1sKY>Px%sKK(vcnhI$N>ViMDd;HuQW22jEY5wHN1^V*d|>>*V1Gc@0htkBmS=|g zt9SG$0XExOE?BpoI_eM?45iw*lZOGlhI;7K5AUtx?j>MoCNB11;HI1AEH>d1DX;Co z$|(_GH}*#EVTTLk0Q-@zTjn)q*WxW!^zx3WjE5ZnubCOv{>JO5#F;4v-}m}#7r^n# zLN+{oz4Avj#Wp5Rss7et3DUwjE}e{%8L?w|bl>r|my?r8c^?X zc!zI@0sDQH+J(mrA(LXP$0>#*y0wKAr?@%en7NrnPd|x3ofm-1UqF`TccwW~2NgUz zofB_QYkz=uAs+BGEq^*bY>f}=C8%2yF9zc`oq=1FraIdT#=$9dAKOj^nxil#%AWY- z2EZ?Kr|U#Q#Op;1s#Dy0TD-K<%JV+|gHc%#4raNYNp`U8jM6DP;fOCl|2Cr#wUbpY zDDTmwZGISq*Iv!KCi#fo>-xuO3A@0kT`B{xTmfV44*mt=APTrBKzp2JlSiAI(ZEJ9 z2wit{0M`s#ygP0c644mlYg7!baH_ZNPHVUW^A=zRz?EWvF97=*G1>Y@jN|!@bAePC z>8YpshgYV8V>;up`n?c=_a3uSVj*Ta?E^&pF8tL5U%MlfY2J>+{>N9RNi9b?!q%hj;%oCZ5_RKyW z$pCpe%Eb+hi?NJz0TdPGsm=5h@Ky*^0J`h0PCYQZpmM)(Uj$JC{jn|n9(6e5=GE~3F={Ar` z+?_m~1sX@ju2&woK?`PfiLqMKfl()1i9@lA5!(JlXRp?gGzh#?;-MuDer+$)TTw9sqZ0^9D%BE!)F51uWHeE4?CbN)7oGV_Y&) zJyQ5UxNJdr;T}rg-(^}8?|(=D<4Xi6`4aa~1zWxYyKyxMzQp@?3PG!WWTC_=GCL?8 zGy-t;p>+2zZ67t@Rx?UvqorCB1L{LZ`gBFIA8c~KQ$gp2mNiKQq- z+ng_^nW>Zd=v|n%!$&ngg%OYZ&Cv5*wK|H0wDyYl{$9$PHo8z);L|#*PgM$n@_o@G zdWnTM^h?#)#XZlX_M+}J`q~3*E{1!_Sc~~3w7o=ED+7!v|1Tq-i%7&+sb$IU=KS-1 z#9^~(4WcI2P?hu^h`|u3PJb5_KrxY}^DW*3jFDmXxeQN#Kq#o!zzX8ERXDTYo&FK> z8-`omIb2RxIRAo~OI*$Gkwrbri)h8l!az!+{Ae%v)^Oi6B~hl~d3+f0%Pzz{XU$=T zGS)6Bl`5?ZI#fSW?MOj;pM&f@faXmTXEkuHfs~hwVd?C-*$8uirjo_`!AQxjK;i3* z@uUCb^^-$&=Q>67qGjV{8r&%uQ1@;SPi#HrVSMcsws_(aWRgdIsw0Vyl(CLja^wc=?%FN$5Hn@jE|%2p=@039B?&% ze=^dOu31$(KseZvC3r--)SK20R@Wqu1mAZFv(ah?7K}NP#HHhEE|(-o)9EqMNa2C2 zB1`BpCJ>BiU`Nf_X2S1Z@@Zs%?IE9Q-vl97;yUEId?=BeNV5jPPQdU8Yv!Xmq_3S^ zE4e);8p|u-j8r`>!k3@0awwfbYI!Fz9{}jD962xCkVktENK_RI1GIC`0k*I0Qp+6E zB2D|YnBGX8#)EhO5WFf_|G?^AKS2e2rvZWbd?PI2OEt|JpJ7Y}3~wM2mv*rnS(+g# z&b#u5L#8bb?yV|%i9F_HLeah3=<6Iey>e)J=xE)VtUBI5sR`ve2;wYvi;4LOjRH9tRV&~|gWIOp$ z>Q)$H?}C}5DlLKU&(kIyUWZK+J+1V(2KsKHY$qU}^1=k7Vt0I)z!NJ0TEhO5D!75F zLIFx^!S+<3U0qg#J1LnnfQyH`T|of%^_veO8o0O2{$Xu-XY$*@e(GYD{|A#RE041x z`ah+P4EHq>u0NLsD&vk)DSvE~UpA_=0%(dt5{QqO2%c+{_h3Y3RTcYa%ezBbA;I{# z?)qi<4iM}%h>2E<#C|UpsjW@{Nzw)NUc|ErmUcj6%G)Oz4Uhcbd4meV@`CgDhMlk= zT)cXKEDQ7>@8w;p)Sna+ZNlnpX8#l%V13&m%A@Ue-TMyxLv zac34~)gAoXBG5Tq*nmzEYydt{Fs!`p0-Qo`5Ic8HufrJQVQqRc$loJ}wp3OeI=kq> zO1QjbPB87(Q8a>Fhk^W<0gYyIE20E#sADZO*(f|}9oRU6;hB|?Gp6;0UjVA&9&w+O z?lPfsx7BB-eprCL08kB`S^Na}egTwrh*z2`LT*+WH!z(5LRu}4G4a;~-K3uulFoE8 z?DThGjD}OFqlduSP4z3yJ2nn;BBv-|DKYwp)8mZTMIwbtjT;`Z9Ax)~O#7cd9(ti5 zHYKLFxqHe0275XL6=nj)e+P8D8Gu#$*F!^SN+JX%9}vl zhb}#y6Y{%Oa%$=mJz8A2qmUvT5-dxMdsO!z@MDGv z1)5z;MAkR6`dr!qpCVsYb#dWrcOSh$e#4MsBcg^Ke-RBH?P|q-^nrb7Uj^VaN-NF# zIPw9?!aDgdq_g2uZqM-O8nu74lj1UDnK) zaG@J~y7FCnnIFVzFanxb zJ324s{$mt%!rrt7G4Tq*ezaU+BI7UM!J-L^lTKfKIA@g${AgceIq}~f>R~TlZfeqb z+78nH-)M?J-LJ}Qq;rjbBo+ZOGC+SEq*A%6ACtfba4}O~MM`A8_Oh3+1Y)_$RvPWzg-tRh!$*HL5oCm-Sc)vZK#8*T91E zV}81#r>2$$9fh~P=8sS5pgPecq9`(#&CUbjjBbd zAccxAf2TKGij5rx(@_nVR$6XH97Z0lEaZ_RcqEkVV5%xMP6hKiaAJ^SdxgcfkA?4OD}&mb16(w1lLX zBgZ+zgpxJPN-%u3#bgiGg1;@J>vWw`@I{l~^FD7;H-tG3ti+a)Z=v+YONM)w^?!^B z|HATkw&BxPfbXm+I0Cvxsy=toPQGPqW-%RRuhx!yO9KI!ybO{n=DeI245F zk_%t0O;I=OIef%vz`kRE$Z=KpCPO@wtdve&pnW|v>xkb}U-o2qSVikj{gAT0>ed%JWNh^);z;tG$Wm7 z-%5qnE!_c*(267oSQ%$5=IdT`*R^ohy;EJV9rI8HH(>>I0VeJ4$iZvdTBrbMzuKOE$9W^rjdMHF(Y07id4AQqySfocsg_dI?vq^V)vnOLa(~Qb$6*VYT#A zF!m^KL_+t}(*zA(Tn4Tlb=yH%5O4u-i48|aKwG=wg@1UWH`A#bQuECMqXMQJ&cGy4U7MVnXAF5JbP8~V$Z zxY~P^phG*=yE9{qK-^_!(GGYumI$-HdNG0Hh;->A#4Y5qbo7{>A3v&>v0jnVXo~x} zb6NXGL3w7dOh1T*6$oAj-B=HD^9vp?kRPMi)7pz+lzhwgzrXp2ggWClg}4(2@R_oA z@z4e;=7=8G5{ert)nwfjnf7FPFoGUk`{46}Pm7SB$rum+>kr*kHuB9G4riQnJv9}F z+Ntn6V{mEq*IXtKE_Q13ycYmq?7F7&!5jrI zwynHeNT?n_jnRNkTOtP!67KhbX{{1l;X_2Mf#m z@DN?-SE3FKseRZ57KfnB2<2bAWyiNt%PF}>Zo$`tc za>1iH7u6?lw6BYdO?8goR7oq28%hz7DJ`abC32i%l$ClJ4U`F+ORmhPS~QeU?lexm z92fxLVX5+ns=f!ZO;R@k)!&ALG{wulQ%z%f+yFn}j#g9LN#PS$eHmXENx{S?f{z4d zP2M70he~V6b2LB{2||6n8;EW2PL3U%@A9++VF7ZA3T(Y}WOhE4e(*NV4RSY7T#bCDW#^Qa1_#en2Gi&j)@O z6*dzzLzwZsm%^-%cr~NsD4Fnm2L5*H9Jw7V{9y^7=$6Mg40wv2fQkS>G{Ctc4kM3) z`Q|iKI@ugn^pjeCM;$#H+Achb1VT>rW$fjII%`S=PaWjM_!-pi7!{c3i$#Kmj!}`Q zNP~L0f30o%7YF{&aG(-wy@5#Fsw(|zy;k<`mV8FzK=KI4q7Nb?_`pNi2&fS}oSlvs zhyHhtfceT$aMLzkiT{~Dsv6D^B#nbSLQ&3g&Z-)=NAu;}^s@Hf@^Y>U%5$~Tqu(k@ zxsYCwZ|;+xNlsJ|eO_L3*6TDa-!Z1`p34&i+d61 zc(-2#FA8{F{_FEUI`H?I|8^A_L4k7qtxO6i7u-bt>u%mP=zms1M(~>c9lZWU!2jJI z2>WYD@%^U{ssB)J|9?K1UJeEH{>1>lKJel9^IN?LwEt%~1pdt`1v>D5I6o*ikO+k? z-Ge-aq1*xpqEVV3MwVRUC9ris+*r6%NgiyG6bEgy&Ofi{(N%qlHb=r zW(GK)K!?VxH{@it1iL*U=+~A%%Ja_lSr-59HwY#D{?~cYEy-a5^ymIXEeP7je*Qiz z=JUWn&R?g%+xZ5At^0q*Kus}R6a=9+&iu3_F`&INe(#}cwcz|eZo2*9*Pa7i9B${) z)wh36Tz=u%Vz}SxvoC>upL-Veob2b3X8n`GJ8ytC1xnV_7*e!4XbUMGah3qzAZ*yFY z%9Y`D~{>PAk5c*&rOdEFIMrnHlxSznTr~|v3#{Q|{ z1^Xm@L_h@kmH_r?3qiOqT$eo~T^2GLG8Dr7-L??!n}0509h3BB7}96^&!83Ft(c@^v~nMk06Ib{s6ff@;Zb%V<2Zi_6htm zhD#uqLU`bS;z*EGa=+eJ@0=Dmp=^Y_aXN~__+eYn0_Dlr@zG@9QQ^La<~IB z9>VcH26+IoFC_GTB+5JnHh9q=@()2~giH+lKRKnT^XI7NagBPPbNcj8KGVB0{ci{1 z@pDJWmmvRvuzn!qF{k%0ru?Ape3$NwJkAn7{-C@9;t(2LKde%E`_lF#`OWxLxQ?ErkT*j{=W#}c-MFRGZxM<=ksep z|NEg#mb|Xo8^Up|3gP%UmlGjlAngBL2PO?4s3Tmc0>Lu$S)zEgRrmrA*Voo2jTd_{zsyGk+bE!!xJITxH36D=kn(v zKazQVkUtu7mdo=R>b6Eh^au6LzI>CbBOi{D+ls%>`eWo@hWx?#-5mLQUH*9FPYHZ< zxBtoT_a5Y8$c(NJ&NJ(Gcjad6s5=(YSd%^mr6M2#A|L{NOMv$Y_$*}`Nb^1cp5f{v z0wN#+A|L`HAOa#F0wN#+BJk-TfctCHLn_~lL)$de`6Nbze)&Gh8SESB1juea4&-^C zmiK>opZ9$T+ZT4ayifTygemWBGT(Tc80jpo%sM_B;CGTF>mdI50`Fy?;dPMb{eIr}{1fXTA42Xy`v9cBg0Srw$XLjWuFU5tgI)e9 zq-R3@F5{#9ToB$P zzs_4Bzcpk<*Y4xr#Fe)|8|@E;`1mh(Z9`DUd++{v!D!^EyFP@vytmGBI7b(v`~>7p z$gw_#Fh%`B5ZW<*z7xch+X}b$r66phpP`|^$3T>Q{L8x-S4184$+jha*ZvRGa~qrv zvI~T|v8?UlLsMhUEElgwGb3vdq|*cKNuE$#60Y+T!?EaQap8 z^LdZAUCZfShxACuU9P+s14N$l#eNTl{1(Ewo317JDSAIeJ@rOIc+a0H%iJD02Ijd2 zxZP0hhA@Vik;d_t_=oZPZS@4k1Yg`oaIO1y!M=|?``!q$m&-3l-SC6@ajtEhC_ND6 zc_G~XFLO4?HlAO-g_QeCAAe(Qp}Yx%eU5~rwx4GF@CTK~bFaV9H}a1_8v77eJ_2R> z;`7V@arqtD7Jg7qpXB~U$Y{ud5ZawYJ*2llK7^bA;WH|>`DZ{r{>M=_3i7mTABMCP zKYepseFnm3XdggM^|2v;v8&^=)P*7JcdT#sDe4&C8z>KOb#pph|1RJnDBtGlI1cif zgSyE3_)kHebHW&Y?b=fDUx{{Zdowv5Zugwuby*MDiS_&-{{ZAEm*>8O>;8&HWAF!c z6CtnB#8q=1=<8yyhCDxWKxXrGOi}jnFONK*kv7|rkK;#GZUA9l=eu-C z=O4w!Gu>N!e<(i>xzCq1bNPveTur?j-N4m;ToOW_staL`&|3wz8+;i_OOn6FMA!I zqK?Or1L?}ueGcVOkj8P|>!niYtnGALVxlhUxy{lKh3vP2G@iwVzEH>W9_p;->yh`i zKMd-2L;V51tW*RY;Il(uaSU}BWE7cAUk$Sz`k>|UB7eZ)5IX>w38drB(P{%p; zx-0p5rl>zNXrsX6f{PVZt@cOJ|9puD)NqwX?OYNz}~`El3wpi8$7 z+v7ZR_zp1ra1Q?gS;OU7*LYu>Hpo8>VckKokFbpP2~KZ(P>-s{d+@YxFh%P1!tsam z>VL0y9CT^-UuQ!*ZZoW-G~Y92-qrEF>k%$LE{LN`7CIa+{rnU15@ZjTXWieu0rJm5 zSa&OAd_q>GF6t*hsMj2qtAEYa?^@8~_XTL*c&{Gm!LH1@Sl)rJ0rbZY+WForbr|D% zF3;_-@&lbcogVk)+y=P4o$Bf)c|(-__~RISxil{8_+!1zTrB)P!B$Q#aCHy(_?V*Z z=dPY(na|}vK-%RUV{eDHlbs&7m!}})zXODJ9GgET`tfuBd}ttCtJLeQ@h|24vyaC2 zy^x;h>i*=%;l_WBtKWMHj?PzHxn&<2+3;O>`sQ};_vhb2o@;^i-*LYG<;sT!_Bb1m_ENM7$< zbQQ{*W z7}YP1`rRQsF7bFXebny9&vDI$_FW{ccn;vl+4v2^ zK<8Me6CSfycXjkPi`Vrj>gEjEyz;=9vE{!`>JcZ z)}{Lf?VSJfTz&JHfbvqVF80?jMO%Lu|G9``e#mzr&p{Y#m-UJ|9(UR1w~uc|YKmY zKmYVCo~l8_c6PEIhGn{!YM@$Cs?tM+8Jb1VlgtL_h>YKmYKmYKmYKmYKmY zKmYKmYKmYKmYKmYKmYKmu(=47U@Thz@Iv@H_08S;Z*`%TC$ zkV7E*LpFyjP_l*25QvY-r!xn3E24dG$U%_JAcKRpE?Kmv{CU4CqkS0|&Dh1TqN2iI z7+=#8x-&z3Up^huRH(?nW^lre_SvykxT~y&ze^$h|B`PIDx!XapzV^dttt=w86jgJ zF9f#UzfW(1{n{BHqY}15QTJ8IEs3_*QFk!>4NUn&Tgso0#it)Y?0_T2 z{)WbSEJK%Z`#yX+Dy19N!G`O`>xb#ip@Kl_LNP|r2%`+hcTOXUX)7_cDp z{~6eL+p6?v_`!cMYW=`IHDBAJ{^f%2b87gjii!32Ko)C_>f;jHQt|cl{GVGf)^k6O zqfR zQMYvDD>eUKpU0I6kf#&AsPhzj4Kny+zwbd(G5Nmkg`ep{U(Ca11jOt3^qaAs)8#pk z*YRnWZ9cMHG-2ayCqp;6T}D2NMfAbrbki^Lufxdik5TM=BWfR=atfWfAY>W(V*VKD z&k)!wgu0s(dglc?RqKoXPKKVJkAW!f3;8JFZ%uIZtMbCnBIx~Q8S z`hH*jB=U!$uI1VSb)z8Rc$vQsdIMsgs6RfTdqk**_LM(A|Do#c313e`A>NtV!{3|MtPubP2gU@FozvSE)2hw#DZDi5q1HCg6y2(o~Na$|n z+fym@ABk*6M&*Z7c6I9DkLxfV1Ivy59n*^T+2eko7c+YgI@82@)-wF1=4-7A`vK5@ zJBszDP`AQg)%DKMy*Mj?i|RYxnhj46DZ-L2qK@>$zB`P8q&Z^Pk(Fgx9c)b7I(Eg}82wdF>U@5k6T>K=>gHwt5_n}@G`B7b+ea%1fvf0HZwdOxnc-5OqajyKzlW4yv(CL-sZe+DSamP6_(-mx~T8Qu?KY{qx$PYySjP!x+U_r zX;5A<$ZrHQVSi)f z^LJ7EIZ^wKVY@XCAMrKDy|hLBk0Sp+a`pE`^^NVq_lLGCqIO>6RJ~6zBXr|yrz^cL z*I#PBHV<`t9=`aVMC|Vx-=6W;-T5akK8p&s<6lJm{vv9BA#9KG+`q^B*+W7dv>y`r z<9^#8A41h^9zM>G{M77aKhiN zp;icL z68d7E*Rb;${Po2AZxZ$YA^QEi>zl{952N-?!nndb^x}Q{WVFu|>LAbc6OXs$7!m2G zig3~SZsh08l%lVL?pcxkyJ%~<)_yU17a92z<=MtWz*z6#}8B74SmO3sGuu?_UQyzdH~ z`1-|KA@e^M7F+L!vwhbqmBkEBtkP{@D+F$LD}MxcVKV_@0mB3d_*FHPXK= zZ1;KS#P4L?>f0=%go;oOYP*`oc|37h#7Hav&rek|U<#PiSgk+4smyP_>M|KCFW zNs!o=FFyx=$vLg?m(=B$pdZg^%k?C6{0F-6Io|PXL;dj(9~;w4y-g}bJGb3XzvUeU zZv&lp9lYe*EGgd6{Yumi`#dIR%l6oYeyVJsJ3oYT$m<5a|Hor8QnpZ&he2UxA1CYaDKU?S{%%eT$FH~iI5cJ=JgmZCitmMnkJ2=w)8{1G9zZ1dt z)2lwIee!WBW%!M^E1oBG*%zm5SqJ;2qIfyZmh0BomhB0fC1bswDxDVKPvM%+Kg2`pu1M2PhUHx^jV+Kt-Plk`+%+H zf683><4K5UdhmHX!8g0FgZ}N2&BakUc`oNWhVGV;KIi{?zCBD?pU~Yh)XC*xtNBmQ zKks40*I=B7%5y)@89HMj;rfsF2c`4tJtBMhTGRUvQ`D#S6}yKzxjgJO|5N5_C$RW7 zWMv5VsS_dL9Qu6m{u=C3Ytq{@O|E4>PiQ|d(f4R<1%#2=ey7yn&@X#?6ay2Tg`ud{&~;-WXKFv3{&;aCft5} zp5Ix^eqgKl4+z!a5tvnGEByKS;e7Mn)Xk71;pEGejxr6f-5lb5hH3V@K6DAYKAZo{ z5Y!|BA|L`HAOa#F0wN#+A|L`HAOa#F0wN#+A|L`HAOa#F0wN#+A|L`HAOa#F0wN#+ zA|L`HAOa#F0wN#+A|L`HAOa#F0wN#+A|L`HAOa#F0wN#+A|L`HAOa#F0wN#+A|L`H zAOa#F0wN#+A|L`HAOa#F0wN#+A|L`HAOa#_Ah0-f_+J|FU)DN1hOmUspec#|ihu}+ zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Pv_oLl&d$zJ30bz}3^vOq>_)+E){<>E+XoLA zFkn;kJr*(n@+9O9$cK8sI;qi! zzJ^))b2`InxbAaR#JDbGazc(Q1p}KS6L$2qPRX{7cDQY0kFUu)WCUvb}Y`7QVzix}p##!;nbjL-9{a?_EVhWgdvyXxE`;JO3NRS~X{J{fpqxt!FzS$DYb#9HsN?F;#uRc1(f8 z;Z?SU`p?7f;|1R_-|m)QMNGvt*2gi0W8yh?@zdAwA)u{`K?MqkkM~`|ai#Km2PUR0 zeC}=V`;p06UTFzKKdCWIhTE^@UH5$}#&Tt0Jb$c;3U+@i*#2LYZLS_Z`7Aogu%e#N z{P}F)7|4MTK9jr*!e>}@{EW}V#kQLMeBZox$!C_MAtNE@K=|C>w_DOT(EZ>Zitj!2 z&3pQxSk`4KPSbwV$BjPOcgjy#_rG4>n!@M42EXrG{Z;9qk6jJ@gkuTwe3sg;J{Zf3 zh4DO46)@}`DA>MGWt*v=0Y2-TUtJ7ei&prX3BC@7yj_UX&k^r;E?D8KQEl|&{W1MB z3{&?(W<=XzkUG~m+vj3qn=!uB`8BWQ7lZxokbfHe_;K@|zghoAp*5J%~`?}qSMo_ zHcZ%7R>9|=EPkPLL8X&)!}kk*c`ma*OtbF^7kq^C{v>>v-rs>w%e5ZK94r|eKciTqi(@MA3V>@o@=77AvOBz zRaL|~x-g!`Tw@J?KMn+Sn^^DJiVU`!I}HBDRhU;+!{@k? zU-W%@r2|6)?6)fPaVy#>mD>e;Y-#AKPgD>m?@3k08nlgw147$~pgrf~lGrv=Hl0(T z-`{3@R5rnGEeNl-d0%of$n=%U6%DY>jn%jDKEkXOE|S&od!WTPwx91N9k@!159rj{ zH$lDgMvGs|whcd58+@IY8)K>sKF>4wy((pEt%Lv4KIRnYQ2cg~N>8!&*V}rC^Ql6t zKK?HA0XqwC+Vecv^uhM?17kdEn;dpk;ytc;x>nn3jPc!U_c%opepfL1-XrJR=%dd1 z=RL)BjDF9}#l|-H`Mtr{)g?c1JAD4d;FtGf+Wx@*eT6=DLi^4IoqO93pl1!gP>9p7 zeWv%sU9-+=58K&d`&1eJ4zl=!?H5w^eNktL4?4BaUlDumUFvWyvfs%x##d|oBQ}2D zjWA)c!5$oqBjKJ2HbK)3YVq&L1Bp9{ZB z8)7tlU((M594r<%`LeG!rl#!;zD_szdoYNj&$EX3xINTW1;Q#Dg>;`*sZ705k zjlQ=p#J951PjdddX}eM`wp<(fEq#~!EN>6p(suk;ulq@*h%xsZCNlOt^dyKyLKghuDzZ0&uc!*drGBip9PFDCg;C9wpeTPx4GU1qTkmG zeK*hfpto;9_jSY(UQf3fR@-JAPwqVhJ`;Z~8bfotLw&qX|AV^Ra}PeRFOE0iH?<8s z1HDnbDE$4q$`ATY#T3`Iv%ajy|K>cTg6z%s;M?-NXlyF3ppN^I()Dr7vnR^DJ|7gs zQ75~!f$JLHA#~R)=|lIE{5_D;_4{Fne?l~dJA?7X_gb%o?%|Ps%bdY>QEy+B!am-w zwD`#R@4>cDY<(He|39(#!1#Ux=TocZ*Vn_x;|4!HJ@=3K{_CcQmCyCE@xbTof!{ew z`t%v-_h}Z}*~W$VcyI8eNQcMp0Tk4~6}6p+@;*^r3orCJyfjGIYyB6tGcw9?%*{d2 z)|=-i&FkQ*I1z{C9iW!&Cy2e>`nKQwLEonp`hPYaEA)9zoQw6e*ru<_h-*Y4wyn^< zd#r=_7J@7s*E`*<6ZPTv4=s%k_FDh>ZH7Gi`})tu$87*(;Pqv=ZS+O{q|)|R)s9$8 z=RH@(wy?RXFvk00o4zU|uI#&eI9Bsn=NfVRs9zt#?}WtjwFcV~^`V~S-7u~Hu53ew z%xBkEVGg{n-aP(i=Kb+lI zf<|mNj}*2&`fux<8`!N{@{RHQCrk3nvGu{^I|ptRkg-QT;e-1e#(V0%HqKhNW5NZ5Z4 zcBSiv^AmQxT4gx*`Un9uj?;)gKGyRci1^T_pEbE_4`TU_B zDa{9C|5P7e5r2-qZ~LT=|2($bWr%gP(qe#*)eU}{&#p`U;&%8h-CKAhw((`yK3a(F zF|XTKDdO3?5YsC@7U=C?(B<~Df1v+bK|j0Q!M3>mvHvo?OXyi6Z{nbr-V*4$OuP=_TXXnP<58}(7Kl#`Z=K+RTi@yT~ zAEo>3EypO|za@ol%elpoRlZ>VGs75*=QvgV+o?x9f62v!HF8(rchQ_K+o0QguMf7_ z=L*oz{;mVsPcQYyK7#maWexFhTk+R3N#CXTTzm6f@T8N9%07%QdmdI1UXQ$=?0tjN zdIpx4c>SsrJ}x!*S+B}IR}a6%dw-a-t*U&WZEHhpZGR`Zs^45a;(4MF(}cjD*YvsX z`M3No0CcY__qCKlG7BFMm;AtR-lTD%5`K%nRRkBySGj@x3Z>Z4-mTvxs_MI< zej4;w`n~y!LR;wHn;ApP?*c)ubiKph#hWJdALe0yXr?c&E6RJY85G(X^W2vepA$i6 zWX_+9!N*dSPHn&c(?HV0>z~)hFBN$5J3E!z3)-fIed)VI|IN*3t_{9R@BK}NeeN9| zzB^R4jrjV$d=GG8Lp*1MOrW28{?YRM0=j3F{KI$UGeG0{5}Budk30-JmAC%3=yoY% zUsoERYxmDYy;(7Zo#j};ZKltE|IY{C3+w;d5>NE~72kg%{YuFm?bjsiELE1@@p-1? z2>m}>h>`m^{%%mOe-OtSg;=8JMfD{YLv zSBPS2DH?t7Jg3%uUHCo7;u~wQdB3$KFjuhnfKF|Gbl(f>|JYKz=(FA9p2B#?u!kv`B>|$FWi`q(luGZo=`TSIK8l$^oGID?;UOMZHy9dV2{ z#L|48@A|C#?E|#8{DuL1Tb}8R%8dm+t~SKTYk=%|dep~u7N5|W5ZQGp8vSq|@Fa|_ z|Nmznqu-a|GrQk2`so+zA7imxll{KSB)AHU_1w~Uq1w*1BJWLDo+}og^T1E(w}7~< zbou^J)tI|ekA8~J*Pydo)W-~{OT9P8_a0l0mC*Y!#2^2v($gaUEk)SxZ16$fufZ^T zuI?PKNL{1P?6o!h8U6UN^WJWDy`r7}gUxbZl0GkG47ranzW%cQ2O{3m`QF5;@xr$B zy!j2-Hr{2e@=;X}-&dAc;@o1RDtliKo#7=vX#YR2-%@%5MW&;98Qg_t=nspmbsW_q_^`;P>7Qx*LF zyWpGWpi3B>Em`t|_NNSfx~+nK?kUBB{nhv4j$p%M)NYY<+4sTr`z8NqFTTG6onIUL zgzMtJ&_4$<5;DT&OV5@w{2tIprC8xB_Z-m}c3urJyike*Yk2Lv zm+Ds7u2b^Q7^*!qTjqdX-Sy$uNjvGQ=y~pD@0pBYeC_mavB|!d2{fK_*%~DuT4E(Yo)H^<5*U1(?8GU zR)NI+;xeC&m9B{y!nOuqvG2CZ=xbMYX!-P2Oi@2?AvXTTO7RofRq^OI>mLIu{cZ%u za9BKW)|JKz8~%<(?GN@XTa|pH{YI-}=-yQFhd$eSPGOA!db5{eU_10G-)A)RWqOAN ze!gh%#r=uper44*ZmqApznqHE!Vo%_8TG6&9+-+HRcGwCKdpa+T>PK!m&9X*4X>wi z{3gMsGq$so;kUSNfsT2*fo}0R1$4$(V(W&EWj|}Zr%@G#3_xM zuz9jD*3y0E*k!W}zn1lSRMVi4fxn*@V&zx*$0pCJ|e-3&joBm=3aEco;D-|qUi{AS1a ziqI;n5%ZW*+%O&-I2c^gNBihNzg8CK;&< z@coFv|0yj284B>Zp22VPz7%vPyP+Z8mqMGK&KqOk z`ZwJNuZV9R!#G=hGo->#RrTlLe|N|OmVP3g2T|S=j%TcLZmExa`n4LT@%maHcJ~`? z??fEg-$~2GY3w78FXyt^2H%!vs^;_JreoX>GQ{0{Hw(IZ7WDaS&UB9{h{0zq&;Gbh zmh}dPbh$#jjqL}1W;Xb0O9ktHQ)3KswAH~Bqd6^oFqUrg(J)0nOF;I9oDZ1@;kL== z?0lDwdDdM3q0W-s?a$l8SG?9!<<$CuY2*7>yf47mUWL35VXU`8j)Sa(e%iWc)dTT) z7gg!3h%YtPxNe^+2f2Fqez@TObZ-y6@de$7ylxxmk_F$5@xt$yYWSYp=+p8(QH^dt zRz?3mG{(^Gev_Swuwf?QJGJ4?Xx3OG0HLm|F3}fdSt@S)LKwUiVhAzJ+U;JJ^ zblN_T#u!H##(7^5wA`Z&1I&n;-@vy$BUKd6i28Wr&Uw}OB6-Fy~dbq$;G z2EW%^{ngb&-&+55p(XSUbI9#uYB~PTfU(?c9P>R1T(zpu&nkt!-bVX71)b)5LbW<~ z%J6M@Ph)Id-|+kELfqVLYTs9|#sS}2|5jKTJ;NMME$g4pa;`Iumt)>BgU#B+{SDvY zpucv6_aA4lc9zmZzfT$ZK0IZctAkI=HPn+iAKhs~|62du0qATE+s3DT{ZE6T^82q( z8^_A=J_Vb0@B6pR3VhvIqu+QRaYKuHO%3sVf~l3!#eF(0Bg72Sq`TKd@bJvs*11e@BH`} z(EkU9Ij;SVGkor2@XP-N(kmbIt@YmnWDRrpSz7=92GY5D0Bh)C7BIG~!FV6=0i4wO zu5{R`&-d2+!tY)d-#(6>PSLm4e-A*l%pvEx2fAv@g)zQ(?X**V1p$7&tso0V7{i@y zjN^`iTT`>K-`evFzgqtvU;pU+f78}jU&*-rwzJ+t8{Vf{v3_(m3yk4cZH(hsoA+%H)>-X8x|cK6pa1Wo?rOY z@n6S(!xq>*7320>cg<7(Ey!Vru1B8p6-GH5`YL{3HW(|vk2`C@r>QycnPa5&pQfqf z|I~N<=X(H0V7kAQp7P$QMV}LmYmw`;`P%^9jmFrg)_)qb*8it>{qwy${vV~gA%B4E z4_OY=-1c|r(wm5_7JZL}fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y z2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0P zh=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%) zfCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y s2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz|y2#A0Ph=2%)fCz}dXP3bL1JA`+JOBUy literal 0 HcmV?d00001 diff --git a/src/favicon.png b/src/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab23f411ab7fda8eaef77fcfb41e484738cbcca GIT binary patch literal 5033 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 literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..453dd24 --- /dev/null +++ b/src/index.html @@ -0,0 +1,15 @@ + + + + + WebDAV GUI + + + + + + +
Loading...
+
+ + diff --git a/src/karma.conf.js b/src/karma.conf.js new file mode 100644 index 0000000..bd57a10 --- /dev/null +++ b/src/karma.conf.js @@ -0,0 +1,45 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/0.13/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-electron'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../coverage'), + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['AngularElectron'], + singleRun: true, + customLaunchers: { + AngularElectron: { + base: 'Electron', + browserWindowOptions: { + webPreferences: { + nodeIntegration: true, + allowRunningInsecureContent: true + } + } + } + }, + client: { + useIframe: false + } + }); +}; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..77ca2f4 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,18 @@ +process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true'; + +import 'reflect-metadata'; +import './polyfills'; + +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { AppConfig } from './environments/environment'; + +if (AppConfig.production) { + enableProdMode(); +} + +platformBrowserDynamic() + .bootstrapModule(AppModule, { preserveWhitespaces: false }) + .catch(err => console.error(err)); diff --git a/src/polyfills-test.ts b/src/polyfills-test.ts new file mode 100644 index 0000000..8ee6ba8 --- /dev/null +++ b/src/polyfills-test.ts @@ -0,0 +1,2 @@ +import 'core-js/es/reflect'; +import 'zone.js/dist/zone'; diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 0000000..aa665d6 --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,63 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags.ts'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 0000000..eec529e --- /dev/null +++ b/src/styles.scss @@ -0,0 +1,11 @@ +/* You can add global styles to this file, and also import other style files */ + +@import "~@angular/material/prebuilt-themes/indigo-pink.css"; +@import '~material-icons/iconfont/material-icons.css'; + +html, body { + margin: 0; + padding: 0; + font-size: 14px; + height: 100%; +} diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 0000000..1631789 --- /dev/null +++ b/src/test.ts @@ -0,0 +1,20 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json new file mode 100644 index 0000000..fbae189 --- /dev/null +++ b/src/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "types": [] + }, + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 0000000..eb2aca6 --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,24 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "module": "commonjs", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts", + "polyfills-test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ], + "exclude": [ + "dist", + "release", + "node_modules" + ] +} diff --git a/src/typings.d.ts b/src/typings.d.ts new file mode 100644 index 0000000..1c0e6df --- /dev/null +++ b/src/typings.d.ts @@ -0,0 +1,9 @@ +/* SystemJS module definition */ +declare var nodeModule: NodeModule; +interface NodeModule { + id: string; +} +interface Window { + process: any; + require: any; +} diff --git a/tsconfig-serve.json b/tsconfig-serve.json new file mode 100644 index 0000000..f9874f4 --- /dev/null +++ b/tsconfig-serve.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "types": [ + "node" + ], + "lib": [ + "es2017", + "es2016", + "es2015", + "dom" + ] + }, + "include": [ + "main.ts" + ], + "exclude": [ + "node_modules", + "**/*.spec.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b03a019 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "module": "esnext", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "es2016", + "es2015", + "dom" + ] + }, + "include": [ + "main.ts", + "src/**/*" + ], + "exclude": [ + "node_modules" + ] +}