From f1750d324826fd5346c5eb23d151f6eb64e00825 Mon Sep 17 00:00:00 2001 From: Kendy JEAN-MARIE <1673979+kendyjm@users.noreply.github.com> Date: Fri, 26 Jun 2020 15:31:20 +0200 Subject: [PATCH 01/55] Starter code: just a copy of course-02\exercises\udacity-c2-frontend and udacity-c2-restapi to start Part 04 - Monolith to Microservices at Scale \ Lesson 02 - Development & Governance \ Concept 06: Exercise: Divide the Backend --- .../exercices/udacity-c2-frontend/.gitignore | 35 + .../exercices/udacity-c2-frontend/README.md | 67 + .../udacity-c2-frontend/angular.json | 194 + .../e2e/protractor.conf.js | 28 + .../e2e/src/app.e2e-spec.ts | 19 + .../udacity-c2-frontend/e2e/src/app.po.ts | 15 + .../udacity-c2-frontend/e2e/tsconfig.e2e.json | 13 + .../udacity-c2-frontend/ionic.config.json | 5 + .../udacity-c2-frontend/package-lock.json | 11183 ++++++++++++++++ .../udacity-c2-frontend/package.json | 58 + .../src/app/api/api.module.ts | 15 + .../src/app/api/api.service.ts | 78 + .../src/app/app-routing.module.ts | 22 + .../src/app/app.component.html | 32 + .../src/app/app.component.spec.ts | 81 + .../src/app/app.component.ts | 38 + .../udacity-c2-frontend/src/app/app.module.ts | 36 + .../auth/auth-login/auth-login.component.html | 17 + .../auth/auth-login/auth-login.component.scss | 0 .../auth-login/auth-login.component.spec.ts | 29 + .../auth/auth-login/auth-login.component.ts | 52 + .../auth-menu-button.component.html | 28 + .../auth-menu-button.component.scss | 11 + .../auth-menu-button.component.spec.ts | 43 + .../auth-menu-button.component.ts | 48 + .../auth-menu-user.component.html | 5 + .../auth-menu-user.component.scss | 0 .../auth-menu-user.component.spec.ts | 49 + .../auth-menu-user.component.ts | 18 + .../auth-register.component.html | 25 + .../auth-register.component.scss | 0 .../auth-register.component.spec.ts | 29 + .../auth-register/auth-register.component.ts | 61 + .../src/app/auth/auth.module.ts | 31 + .../src/app/auth/models/user.model.ts | 4 + .../auth/services/auth.guard.service.spec.ts | 15 + .../app/auth/services/auth.guard.service.ts | 90 + .../app/auth/services/auth.service.spec.ts | 12 + .../src/app/auth/services/auth.service.ts | 59 + .../feed/feed-item/feed-item.component.html | 10 + .../feed/feed-item/feed-item.component.scss | 14 + .../feed-item/feed-item.component.spec.ts | 57 + .../app/feed/feed-item/feed-item.component.ts | 17 + .../feed/feed-list/feed-list.component.html | 6 + .../feed/feed-list/feed-list.component.scss | 7 + .../feed-list/feed-list.component.spec.ts | 47 + .../app/feed/feed-list/feed-list.component.ts | 34 + .../feed-upload-button.component.html | 7 + .../feed-upload-button.component.scss | 0 .../feed-upload-button.component.spec.ts | 27 + .../feed-upload-button.component.ts | 38 + .../feed-upload/feed-upload.component.html | 19 + .../feed-upload/feed-upload.component.scss | 0 .../feed-upload/feed-upload.component.spec.ts | 27 + .../feed/feed-upload/feed-upload.component.ts | 68 + .../src/app/feed/feed.module.ts | 29 + .../src/app/feed/models/feed-item.model.ts | 23 + .../services/feed.provider.service.spec.ts | 12 + .../feed/services/feed.provider.service.ts | 39 + .../src/app/home/home.module.ts | 24 + .../src/app/home/home.page.html | 4 + .../src/app/home/home.page.scss | 0 .../src/app/home/home.page.spec.ts | 29 + .../src/app/home/home.page.ts | 11 + .../src/app/menubar/menubar.component.html | 13 + .../src/app/menubar/menubar.component.scss | 5 + .../src/app/menubar/menubar.component.spec.ts | 36 + .../src/app/menubar/menubar.component.ts | 16 + .../src/assets/icon/favicon.png | Bin 0 -> 930 bytes .../udacity-c2-frontend/src/assets/shapes.svg | 1 + .../src/environments/environment.prod.ts | 18 + .../src/environments/environment.ts | 18 + .../udacity-c2-frontend/src/global.scss | 14 + .../udacity-c2-frontend/src/index.html | 25 + .../udacity-c2-frontend/src/karma.conf.js | 31 + .../exercices/udacity-c2-frontend/src/main.ts | 12 + .../udacity-c2-frontend/src/polyfills.ts | 85 + .../exercices/udacity-c2-frontend/src/test.ts | 20 + .../src/theme/variables.scss | 77 + .../udacity-c2-frontend/src/tsconfig.app.json | 11 + .../src/tsconfig.spec.json | 18 + .../udacity-c2-frontend/tsconfig.json | 22 + .../exercices/udacity-c2-frontend/tslint.json | 130 + .../udacity_tests/git_test.sh | 4 + .../exercices/udacity-c2-restapi/.gitignore | 42 + course-03/exercices/udacity-c2-restapi/.npmrc | 1 + .../exercices/udacity-c2-restapi/README.md | 40 + .../udacity-c2-restapi/mock/xander0.jpg | Bin 0 -> 4847763 bytes .../udacity-c2-restapi/mock/xander1.jpg | Bin 0 -> 669175 bytes .../udacity-c2-restapi/mock/xander2.jpg | Bin 0 -> 440726 bytes .../udacity-c2-restapi/package-lock.json | 3234 +++++ .../exercices/udacity-c2-restapi/package.json | 46 + .../exercices/udacity-c2-restapi/src/aws.ts | 66 + .../udacity-c2-restapi/src/config/config.ts | 24 + .../controllers/v0/feed/models/FeedItem.ts | 19 + .../controllers/v0/feed/routes/feed.router.ts | 104 + .../src/controllers/v0/index.router.ts | 14 + .../src/controllers/v0/model.index.ts | 4 + .../src/controllers/v0/users/models/User.ts | 26 + .../v0/users/routes/auth.router.ts | 135 + .../v0/users/routes/user.router.ts | 19 + .../migrations/20190325-create-feed-item.js | 30 + .../src/migrations/20190328-create-user.js | 30 + .../udacity-c2-restapi/src/sequelize.ts | 17 + .../udacity-c2-restapi/src/server.ts | 46 + .../udacity-c2-restapi/tsconfig.json | 67 + .../exercices/udacity-c2-restapi/tslint.json | 139 + ...udacity-c3-restapi.postman_collection.json | 870 ++ 108 files changed, 18623 insertions(+) create mode 100644 course-03/exercices/udacity-c2-frontend/.gitignore create mode 100644 course-03/exercices/udacity-c2-frontend/README.md create mode 100644 course-03/exercices/udacity-c2-frontend/angular.json create mode 100644 course-03/exercices/udacity-c2-frontend/e2e/protractor.conf.js create mode 100644 course-03/exercices/udacity-c2-frontend/e2e/src/app.e2e-spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/e2e/src/app.po.ts create mode 100644 course-03/exercices/udacity-c2-frontend/e2e/tsconfig.e2e.json create mode 100644 course-03/exercices/udacity-c2-frontend/ionic.config.json create mode 100644 course-03/exercices/udacity-c2-frontend/package-lock.json create mode 100644 course-03/exercices/udacity-c2-frontend/package.json create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/api/api.module.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/api/api.service.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/app-routing.module.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/app.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/app.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/app.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/app.module.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/auth.module.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/models/user.model.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/feed.module.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/models/feed-item.model.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/home/home.module.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/home/home.page.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/home/home.page.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/home/home.page.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/home/home.page.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.spec.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/assets/icon/favicon.png create mode 100644 course-03/exercices/udacity-c2-frontend/src/assets/shapes.svg create mode 100644 course-03/exercices/udacity-c2-frontend/src/environments/environment.prod.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/environments/environment.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/global.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/index.html create mode 100644 course-03/exercices/udacity-c2-frontend/src/karma.conf.js create mode 100644 course-03/exercices/udacity-c2-frontend/src/main.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/polyfills.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/test.ts create mode 100644 course-03/exercices/udacity-c2-frontend/src/theme/variables.scss create mode 100644 course-03/exercices/udacity-c2-frontend/src/tsconfig.app.json create mode 100644 course-03/exercices/udacity-c2-frontend/src/tsconfig.spec.json create mode 100644 course-03/exercices/udacity-c2-frontend/tsconfig.json create mode 100644 course-03/exercices/udacity-c2-frontend/tslint.json create mode 100644 course-03/exercices/udacity-c2-frontend/udacity_tests/git_test.sh create mode 100644 course-03/exercices/udacity-c2-restapi/.gitignore create mode 100644 course-03/exercices/udacity-c2-restapi/.npmrc create mode 100644 course-03/exercices/udacity-c2-restapi/README.md create mode 100644 course-03/exercices/udacity-c2-restapi/mock/xander0.jpg create mode 100644 course-03/exercices/udacity-c2-restapi/mock/xander1.jpg create mode 100644 course-03/exercices/udacity-c2-restapi/mock/xander2.jpg create mode 100644 course-03/exercices/udacity-c2-restapi/package-lock.json create mode 100644 course-03/exercices/udacity-c2-restapi/package.json create mode 100644 course-03/exercices/udacity-c2-restapi/src/aws.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/config/config.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/feed/models/FeedItem.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/feed/routes/feed.router.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/index.router.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/model.index.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/users/models/User.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/users/routes/auth.router.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/controllers/v0/users/routes/user.router.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/migrations/20190325-create-feed-item.js create mode 100644 course-03/exercices/udacity-c2-restapi/src/migrations/20190328-create-user.js create mode 100644 course-03/exercices/udacity-c2-restapi/src/sequelize.ts create mode 100644 course-03/exercices/udacity-c2-restapi/src/server.ts create mode 100644 course-03/exercices/udacity-c2-restapi/tsconfig.json create mode 100644 course-03/exercices/udacity-c2-restapi/tslint.json create mode 100644 course-03/exercices/udacity-c2-restapi/udacity-c3-restapi.postman_collection.json diff --git a/course-03/exercices/udacity-c2-frontend/.gitignore b/course-03/exercices/udacity-c2-frontend/.gitignore new file mode 100644 index 0000000..b9ccfec --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/.gitignore @@ -0,0 +1,35 @@ +# Specifies intentionally untracked files to ignore when using Git +# http://git-scm.com/docs/gitignore + +*~ +*.sw[mnpcod] +*.log +*.tmp +*.tmp.* +log.txt +*.sublime-project +*.sublime-workspace +.vscode/ +npm-debug.log* + +.idea/ +.ionic/ +.sourcemaps/ +.sass-cache/ +.tmp/ +.versions/ +coverage/ +www/ +node_modules/ +tmp/ +temp/ +platforms/ +plugins/ +plugins/android.json +plugins/ios.json +$RECYCLE.BIN/ + +.DS_Store +Thumbs.db +UserInterfaceState.xcuserstate +node_modules diff --git a/course-03/exercices/udacity-c2-frontend/README.md b/course-03/exercices/udacity-c2-frontend/README.md new file mode 100644 index 0000000..94bafbf --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/README.md @@ -0,0 +1,67 @@ +# Udagram Simple Frontend + +Udagram is a simple cloud application developed along side the Udacity Cloud Engineering Nanodegree. It allows users to register and log into a web client, post photos to the feed, and process photos using an image filtering microservice. + +The project is split into three parts: + +1. [The Simple Frontend](.) +A basic Ionic client web application which consumes the RestAPI Backend. +2. [The RestAPI Backend](../udacity-c2-restapi), a Node-Express server which can be deployed to a cloud service. +3. [The Image Filtering Microservice](../../../project2-image-filter), the final project for the course. It is a Node-Express application which runs a simple script to process images. + +*** + +## Getting Setup + +> _tip_: this frontend is designed to work with [The RestAPI Backend](https://github.com/grutt/udacity-c2-restapi). It is recommended you stand up the backend first, test using Postman, and then the frontend should integrate. + +### Installing Node and NPM + +This project depends on Nodejs and Node Package Manager (NPM). Before continuing, you must download and install Node (NPM is included) from [https://nodejs.com/en/download](https://nodejs.org/en/download/). + +### Installing Ionic Cli + +The Ionic Command Line Interface is required to serve and build the frontend. Instructions for installing the CLI can be found in the [Ionic Framework Docs](https://ionicframework.com/docs/installation/cli). + +### Installing project dependencies + +This project uses NPM to manage software dependencies. NPM Relies on the package.json file located in the root of this repository. After cloning, open your terminal and run: + +```bash +npm install +``` + +>_tip_: **npm i** is shorthand for **npm install** + +### Configure The Backend Endpoint + +Ionic uses enviornment files located in `./src/enviornments/enviornment.*.ts` to load configuration variables at runtime. By default `environment.ts` is used for development and `enviornment.prod.ts` is used for produciton. The `apiHost` variable should be set to your server url either locally or in the cloud. + +*** + +### Running the Development Server + +Ionic CLI provides an easy to use development server to run and autoreload the frontend. This allows you to make quick changes and see them in real time in your browser. To run the development server, open terminal and run: + +```bash +ionic serve +``` + +### Building the Static Frontend Files + +Ionic CLI can build the frontend into static HTML/CSS/JavaScript files. These files can be uploaded to a host to be consumed by users on the web. Build artifacts are located in `./www`. To build from source, open terminal and run: + +```bash +ionic build +``` + +*** + +## @TODO + +2. Tasks + i. Setup + a. Clone, set up protected branches (dev, staging, master) + b. NPM, Ionic CLI + c. run tests (npm test), identify broken function, fix the function + d. write tests for form validation and re-run tests diff --git a/course-03/exercices/udacity-c2-frontend/angular.json b/course-03/exercices/udacity-c2-frontend/angular.json new file mode 100644 index 0000000..55ad1e3 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/angular.json @@ -0,0 +1,194 @@ +{ + "$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json", + "version": 1, + "defaultProject": "app", + "newProjectRoot": "projects", + "projects": { + "app": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "www", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + }, + { + "glob": "**/*.svg", + "input": "node_modules/ionicons/dist/ionicons/svg", + "output": "./svg" + } + ], + "styles": [ + { + "input": "src/theme/variables.scss" + }, + { + "input": "src/global.scss" + } + ], + "scripts": [], + "es5BrowserSupport": true + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + } + ] + }, + "ci": { + "progress": false + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + }, + "ci": { + "progress": false + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "app:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js", + "styles": [], + "scripts": [], + "assets": [ + { + "glob": "favicon.ico", + "input": "src/", + "output": "/" + }, + { + "glob": "**/*", + "input": "src/assets", + "output": "/assets" + } + ] + }, + "configurations": { + "ci": { + "progress": false, + "watch": false + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"], + "exclude": ["**/node_modules/**"] + } + }, + "ionic-cordova-build": { + "builder": "@ionic/angular-toolkit:cordova-build", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + } + } + }, + "ionic-cordova-serve": { + "builder": "@ionic/angular-toolkit:cordova-serve", + "options": { + "cordovaBuildTarget": "app:ionic-cordova-build", + "devServerTarget": "app:serve" + }, + "configurations": { + "production": { + "cordovaBuildTarget": "app:ionic-cordova-build:production", + "devServerTarget": "app:serve:production" + } + } + } + } + }, + "app-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "app:serve" + }, + "configurations": { + "ci": { + "devServerTarget": "app:serve:ci" + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "e2e/tsconfig.e2e.json", + "exclude": ["**/node_modules/**"] + } + } + } + } + }, + "cli": { + "defaultCollection": "@ionic/angular-toolkit" + }, + "schematics": { + "@ionic/angular-toolkit:component": { + "styleext": "scss" + }, + "@ionic/angular-toolkit:page": { + "styleext": "scss" + } + } +} diff --git a/course-03/exercices/udacity-c2-frontend/e2e/protractor.conf.js b/course-03/exercices/udacity-c2-frontend/e2e/protractor.conf.js new file mode 100644 index 0000000..440ef8f --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/e2e/protractor.conf.js @@ -0,0 +1,28 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.e2e.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/course-03/exercices/udacity-c2-frontend/e2e/src/app.e2e-spec.ts b/course-03/exercices/udacity-c2-frontend/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..7bacf55 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/e2e/src/app.e2e-spec.ts @@ -0,0 +1,19 @@ +import { AppPage } from './app.po'; + +describe('new App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + describe('default screen', () => { + beforeEach(() => { + page.navigateTo('/home'); + }); + it('should have a title saying Home', () => { + page.getPageOneTitleText().then(title => { + expect(title).toEqual('Home'); + }); + }); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/e2e/src/app.po.ts b/course-03/exercices/udacity-c2-frontend/e2e/src/app.po.ts new file mode 100644 index 0000000..be943f8 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/e2e/src/app.po.ts @@ -0,0 +1,15 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo(destination) { + return browser.get(destination); + } + + getTitle() { + return browser.getTitle(); + } + + getPageOneTitleText() { + return element(by.tagName('app-home')).element(by.deepCss('ion-title')).getText(); + } +} diff --git a/course-03/exercices/udacity-c2-frontend/e2e/tsconfig.e2e.json b/course-03/exercices/udacity-c2-frontend/e2e/tsconfig.e2e.json new file mode 100644 index 0000000..77d311e --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/e2e/tsconfig.e2e.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/course-03/exercices/udacity-c2-frontend/ionic.config.json b/course-03/exercices/udacity-c2-frontend/ionic.config.json new file mode 100644 index 0000000..e653493 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/ionic.config.json @@ -0,0 +1,5 @@ +{ + "name": "udacity-c2-frontend", + "integrations": {}, + "type": "angular" +} diff --git a/course-03/exercices/udacity-c2-frontend/package-lock.json b/course-03/exercices/udacity-c2-frontend/package-lock.json new file mode 100644 index 0000000..51a6f2a --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/package-lock.json @@ -0,0 +1,11183 @@ +{ + "name": "udacity-c2-frontend", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.12.4.tgz", + "integrity": "sha512-19f3jbGyP+GzTSBgrHR4SWGK81SUgtTxhkAcyhmsIEDuXrMJM8kPu0HB9WivJ5p08+jzwz6xdF9mpNYSeD9uqw==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.2.4", + "rxjs": "6.3.3" + } + }, + "@angular-devkit/build-angular": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.9.tgz", + "integrity": "sha512-onh07LhdxotDFjja0KKsDWNCwgpM/ymuRr5h0e+vT4AgklP2Uioz1CpzVOgxPIKkdVdGR9QgDinVsWAmY90J8g==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.13.9", + "@angular-devkit/build-optimizer": "0.13.9", + "@angular-devkit/build-webpack": "0.13.9", + "@angular-devkit/core": "7.3.9", + "@ngtools/webpack": "7.3.9", + "ajv": "6.9.1", + "autoprefixer": "9.4.6", + "circular-dependency-plugin": "5.0.2", + "clean-css": "4.2.1", + "copy-webpack-plugin": "4.6.0", + "file-loader": "3.0.1", + "glob": "7.1.3", + "istanbul-instrumenter-loader": "3.0.1", + "karma-source-map-support": "1.3.0", + "less": "3.9.0", + "less-loader": "4.1.0", + "license-webpack-plugin": "2.1.0", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.5.0", + "minimatch": "3.0.4", + "node-sass": "4.12.0", + "open": "6.0.0", + "parse5": "4.0.0", + "postcss": "7.0.14", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "1.0.0", + "rxjs": "6.3.3", + "sass-loader": "7.1.0", + "semver": "5.6.0", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.10", + "speed-measure-webpack-plugin": "1.3.1", + "stats-webpack-plugin": "0.7.0", + "style-loader": "0.23.1", + "stylus": "0.54.5", + "stylus-loader": "3.0.2", + "terser-webpack-plugin": "1.2.2", + "tree-kill": "1.2.1", + "webpack": "4.29.0", + "webpack-dev-middleware": "3.5.1", + "webpack-dev-server": "3.1.14", + "webpack-merge": "4.2.1", + "webpack-sources": "1.3.0", + "webpack-subresource-integrity": "1.1.0-rc.6" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.9.tgz", + "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + } + }, + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.9.tgz", + "integrity": "sha512-GQtCntthQHSBv5l1ZY5p00JOECb/WcE1qUBo5kFjp84z0fszDkhOy52M1kcWCX4PFzJaY4DKk58hbUE/2UN0jw==", + "dev": true, + "requires": { + "loader-utils": "1.2.3", + "source-map": "0.5.6", + "typescript": "3.2.4", + "webpack-sources": "1.3.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "typescript": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", + "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.9.tgz", + "integrity": "sha512-6ypu6pzNmQxzATF4rTWEhGSl5hyGQ8a/3aCZF/ux+XGc3d4hi2HW+NWlDm1UEna6ZjNtgEPlgfP4q8BKrjRmfA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.13.9", + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.9.tgz", + "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + } + }, + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "@angular-devkit/core": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.4.tgz", + "integrity": "sha512-XHF59tIHg2qEM1Wd415xhykBLjjfOK6yMB7CjNk1bToUMX2QDT87izJF4y1Vwa0lIw9G0jdgP/4/M/OqXcbYmA==", + "dev": true, + "requires": { + "ajv": "6.6.2", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.2.4.tgz", + "integrity": "sha512-ObIDnIxXRpts+Jzs0PQ7JVuK4d5vWEh9K+Ow8nMO5/LmYJQ8/2nMEQo/9lhdKPMiXmhbuvB7qZL5J+cxwwijhw==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.2.4", + "rxjs": "6.3.3" + } + }, + "@angular/cli": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.9.tgz", + "integrity": "sha512-7oJj7CKDlFUbQav1x1CV4xKKcbt0pnxY4unKcm7Q1tVXhu8bU2bc3cDA0aJnbofcYb6TJcd/C2qHgCt78q7edA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.13.9", + "@angular-devkit/core": "7.3.9", + "@angular-devkit/schematics": "7.3.9", + "@schematics/angular": "7.3.9", + "@schematics/update": "0.13.9", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "inquirer": "6.2.1", + "npm-package-arg": "6.1.0", + "open": "6.0.0", + "pacote": "9.4.0", + "semver": "5.6.0", + "symbol-observable": "1.2.0" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.9.tgz", + "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + } + }, + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.9.tgz", + "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "@angular/common": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.15.tgz", + "integrity": "sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.15.tgz", + "integrity": "sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler-cli": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz", + "integrity": "sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^2.1.1", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "shelljs": "^0.8.1", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "9.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "@angular/core": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.15.tgz", + "integrity": "sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/forms": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.15.tgz", + "integrity": "sha512-p0kcIQLtBBC1qeTA6M3nOuXf/k91E80FKquVM9zEsO2kDjI0oZJVfFYL2UMov5samlJOPN+t6lRHEIUa7ApPsw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/http": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.15.tgz", + "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/language-service": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.15.tgz", + "integrity": "sha512-Ig5Jr7mnDelaZvSbUd9YhI5am3q1ku9xelAuwvtyDKvQJeKQj3BtTagcOgWrnQBfrJ/FsA/M5Zo48ncSsV0tqQ==", + "dev": true + }, + "@angular/platform-browser": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.15.tgz", + "integrity": "sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz", + "integrity": "sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/router": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.15.tgz", + "integrity": "sha512-qAubRJRQanguUqJQ76J9GSZ4JFtoyhJKRmX5P23ANZJXpB6YLzF2fJmOGi+E6cV8F0tKBMEq1pjxFTisx0MXwQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz", + "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==", + "dev": true, + "requires": { + "@babel/types": "^7.5.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/parser": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz", + "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==", + "dev": true + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz", + "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.0", + "@babel/types": "^7.5.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz", + "integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@ionic-native/core": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.9.0.tgz", + "integrity": "sha512-9qBOUBptF0E9fnu9PSjWdRYbM67OYj51fUGK1ym/bzTNmFNZfcqyQBBn5AuwXWK3MWq86EacK/cWU0B9EVBKHQ==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/splash-screen": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.9.0.tgz", + "integrity": "sha512-6IhAEtVBf8lE7HdLgs+GLm83z9ukfdSwbKS9oMciJe8dpXTY3J2B2Fy8HgXpo88phccHXny1acEpFndns3oEkA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/status-bar": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.9.0.tgz", + "integrity": "sha512-eoLKkpK/umuRUf41CUdfAyYnBJDZ3XRfQAjiaWWqPdk6KXjBuTr3SIRmm7DrUIoShUntiIqbX5IbWDqxEgJmbg==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic/angular": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.6.2.tgz", + "integrity": "sha512-BUtT4ve6ThRaSRHX+YrkVyhcZP1FWY8P31/S/Hj7bWNCFTIdfB21dEAFzFx9SfGPfBCVYfDj5OoLYtKc1LUJQA==", + "requires": { + "@ionic/core": "4.6.2", + "tslib": "^1.9.3" + } + }, + "@ionic/angular-toolkit": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@ionic/angular-toolkit/-/angular-toolkit-1.5.1.tgz", + "integrity": "sha512-B5LHuzEv/lgFP7yxfOA3/wggDM/X1mDkWFX8rZtaBRZBbC0vtZwdwDu73RnkfFZ0jTFyIgtoBW8qTrrCyd5MLA==", + "dev": true, + "requires": { + "@schematics/angular": "^7.0.3", + "tslib": "^1.9.0", + "typescript": "~3.3.3333", + "ws": "^6.1.4" + }, + "dependencies": { + "typescript": { + "version": "3.3.4000", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.4000.tgz", + "integrity": "sha512-jjOcCZvpkl2+z7JFn0yBOoLQyLoIkNZAs/fYJkUG6VKy6zLPHJGfQJYFHzibB6GJaF/8QrcECtlQ5cpvRHSMEA==", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "@ionic/core": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.6.2.tgz", + "integrity": "sha512-JThYU8YnEtxlByNm+77nNtQDMOBE496eye25b4WbCpKNHEIw2g6V0TMxx4vSP0ynAw6Mgu/hAo8EdUO3XvNcKw==", + "requires": { + "ionicons": "4.6.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + } + } + }, + "@ngtools/webpack": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.9.tgz", + "integrity": "sha512-+ROpqfCXLdQwfP+UNDLk4p959ZrocpStkdd2Iy9CeOJ8yDkityqpstTwQC3oHzzu/95BiyZ0hrHbM6AsPPIvJg==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "enhanced-resolve": "4.1.0", + "rxjs": "6.3.3", + "tree-kill": "1.2.1", + "webpack-sources": "1.3.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "@schematics/angular": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.3.9.tgz", + "integrity": "sha512-B3lytFtFeYNLfWdlrIzvy3ulFRccD2/zkoL0734J+DAGfUz7vbysJ50RwYL46sQUcKdZdvb48ktfu1S8yooP6Q==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "@angular-devkit/schematics": "7.3.9", + "typescript": "3.2.4" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.9.tgz", + "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "typescript": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", + "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "dev": true + } + } + }, + "@schematics/update": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.13.9.tgz", + "integrity": "sha512-4MQcaKFxhMzZyE//+DknDh3h3duy3avg2oxSHxdwXlCZ8Q92+4lpegjJcSRiqlEwO4qeJ5XnrjrvzfIiaIZOmA==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "@angular-devkit/schematics": "7.3.9", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.4.0", + "rxjs": "6.3.3", + "semver": "5.6.0", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz", + "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.9.tgz", + "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.9", + "rxjs": "6.3.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + }, + "@types/jasmine": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", + "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.6.tgz", + "integrity": "sha512-2ZOKrxb8bKRmP/po5ObYnRDgFE4i+lQiEB27bAMmtMWLgJSqlIDqlLx6S0IRorpOmOPRQ6O80NujTmQAtBkeNw==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/node": { + "version": "10.12.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.30.tgz", + "integrity": "sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.15.tgz", + "integrity": "sha512-5nh8/K2u9p4bk95GGCJB7KBvewaB0TUziZ9DTr+mR2I6RoO4OJVqx7rxK83hs2J1tomwtCGkhiW+Dy8EUnfB+Q==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", + "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "optional": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", + "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true + }, + "adm-zip": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", + "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", + "dev": true + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "optional": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "async-each": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", + "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true, + "optional": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz", + "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==", + "dev": true, + "requires": { + "browserslist": "^4.4.1", + "caniuse-lite": "^1.0.30000929", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.13", + "postcss-value-parser": "^3.3.1" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", + "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "dev": true + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "optional": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", + "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" + } + }, + "browserstack": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.2.tgz", + "integrity": "sha512-+6AFt9HzhKykcPF79W6yjEUJcdvZOV0lIXdkORXMJftGrDl0OKWqRF4GHqpDNkxiceDT/uB7Fb/aDwktvXX7dg==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true, + "optional": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30000983", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000983.tgz", + "integrity": "sha512-/llD1bZ6qwNkt41AsvjsmwNOoA4ZB+8iqmf5LVyeSXuBODT/hAMFNVOh84NdUzoiYiSKqo5vQ3ZzeYHSi/olDQ==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "chownr": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", + "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", + "dev": true + }, + "circular-json": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz", + "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", + "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", + "dev": true, + "requires": { + "app-root-path": "^2.1.0", + "css-selector-tokenizer": "^0.7.0", + "cssauron": "^1.4.0", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "^4.5.0" + } + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compare-versions": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.0.tgz", + "integrity": "sha512-hX+4kt2Rcwu+x1U0SsEFCn1quURjEjPEGH/cPBlpME/IidGimAdwfMU+B+xDr7et/KTR7VH2+ZqWGerv4NGs2w==", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "dev": true, + "requires": { + "mime-db": ">= 1.40.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + } + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true, + "optional": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + } + }, + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "optional": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-format": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", + "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "default-gateway": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", + "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "dev": true, + "requires": { + "execa": "^0.10.0", + "ip-regex": "^2.1.0" + } + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.189", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.189.tgz", + "integrity": "sha512-C26Kv6/rLNmGDaPR5HORMtTQat9aWBBKjQk9aFtN1Bk6cQBSw8cYdsel/mcrQlNlMMjt1sAKsTYqf77+sK2uTw==", + "dev": true + }, + "elliptic": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "braces": "^0.1.2" + }, + "dependencies": { + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "dev": true, + "requires": { + "expand-range": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "dev": true, + "requires": { + "is-number": "^0.1.1", + "repeat-string": "^0.2.2" + }, + "dependencies": { + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "dev": true + }, + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", + "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "dev": true, + "requires": { + "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-minipass": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", + "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "optional": true, + "requires": { + "globule": "^1.0.0" + } + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "optional": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "dev": true + }, + "handlebars": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true, + "optional": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "optional": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", + "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + } + } + }, + "internal-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", + "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "dev": true, + "requires": { + "default-gateway": "^2.6.0", + "ipaddr.js": "^1.5.2" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ionicons": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.6.1.tgz", + "integrity": "sha512-HIT6nAozXnM5yO9an0QpqABM4QFs1xtOjTz4Neyqbs0+fbPqN3p2PwJuh99WR9YaYGrFPzSCW6/n+LLL6C+xeg==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true, + "optional": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.7.tgz", + "integrity": "sha512-LYTOa2UrYFyJ/aSczZi/6lBykVMjCCvUmT64gOe+jPZFy4w6FYfPGqFT2IiQ2BxVHHDOvCD7qrIXb0EOh4uGWw==", + "dev": true, + "requires": { + "async": "^2.6.2", + "compare-versions": "^3.4.0", + "fileset": "^2.0.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.5", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "minimatch": "^3.0.4", + "once": "^1.4.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "dev": true + } + } + }, + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "dev": true, + "requires": { + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "dev": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "dev": true, + "requires": { + "handlebars": "^4.1.2" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.0.tgz", + "integrity": "sha512-4WjbsaEtBK/DHeDZOPiPw5nzSGLDEDDreFRDEgnoMwmknPjTqa+23XuYFk6NiGbeiAeZCctiQ/X/z0lQBmDVOQ==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-3.1.4.tgz", + "integrity": "sha512-31Vo8Qr5glN+dZEVIpnPCxEGleqE0EY6CtC2X9TagRV3rRQ3SNrvfhddICkJgUK3AgqpeKSZau03QumTGhGoSw==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "combine-lists": "^1.0.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "expand-braces": "^0.1.1", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.5", + "log4js": "^3.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + }, + "dependencies": { + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "^1.0.0", + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.5.tgz", + "integrity": "sha512-yPvAlKtY3y+rKKWbOo0CzBMVTvJEeMOgbMXuVv3yWvS8YtYKC98AU9vFF0mVBZ2RP1E9SgS90+PT6Kf14P3S4w==", + "dev": true, + "requires": { + "istanbul-api": "^2.1.1", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "^1.0.2" + } + }, + "karma-source-map-support": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", + "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "less": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", + "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + } + }, + "license-webpack-plugin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz", + "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "optional": true + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "log4js": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz", + "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==", + "dev": true, + "requires": { + "circular-json": "^0.5.5", + "date-format": "^1.2.0", + "debug": "^3.1.0", + "rfdc": "^1.1.2", + "streamroller": "0.7.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "loglevel": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz", + "integrity": "sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "optional": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "magic-string": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", + "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-fetch-happen": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", + "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.3.3", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "dev": true + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "optional": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "optional": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", + "dev": true + }, + "mime-types": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "dev": true, + "requires": { + "mime-db": "~1.38.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", + "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.1.tgz", + "integrity": "sha512-I6YB/YEuDeUZMmhscXKxGgZlFnhsn5y0hgOZBadkzfTRrZBtJDZeg6eQf7PYMIEclwmorTKK8GztsyOUSVBREA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "optional": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.25", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.25.tgz", + "integrity": "sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "dev": true, + "optional": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.11", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npm-bundled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.4.tgz", + "integrity": "sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-registry-fetch": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", + "npm-package-arg": "^6.1.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + } + } + }, + "open": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.0.0.tgz", + "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "optional": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pacote": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.0.tgz", + "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^11.3.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "dev": true + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tar": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", + "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "portfinder": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", + "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "optimist": "~0.6.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.1.tgz", + "integrity": "sha512-L9TEQmZs6JbMMRQI1w60mfps265/NCr0toYJl7p/R2OAk6oXAfwI6jqYP7EWae+d7Ad2S2Aj4+rzxoSjqk3ZuA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + } + } + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "raw-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz", + "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "optional": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "optional": true + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "optional": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "optional": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "optional": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "optional": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "rfdc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz", + "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "optional": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", + "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "dev": true, + "requires": { + "node-forge": "0.7.5" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", + "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "dependencies": { + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + } + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "dev": true, + "requires": { + "async": "^2.5.0", + "loader-utils": "^1.1.0" + } + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", + "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "spdy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", + "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stats-webpack-plugin": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz", + "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==", + "dev": true, + "requires": { + "lodash": "^4.17.4" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "streamroller": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", + "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", + "dev": true, + "requires": { + "date-format": "^1.2.0", + "debug": "^3.1.0", + "mkdirp": "^0.5.1", + "readable-stream": "^2.3.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "optional": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "optional": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz", + "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.16.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "dev": true + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tree-kill": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true, + "optional": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.2" + } + }, + "ts-node": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz", + "integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tslint": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.1.tgz", + "integrity": "sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", + "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "dev": true + }, + "uglify-js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", + "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.20.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webpack": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz", + "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz", + "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", + "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^2.0.0", + "internal-ip": "^3.0.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "schema-utils": "^1.0.0", + "selfsigned": "^1.9.1", + "semver": "^5.6.0", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "3.4.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "webpack-dev-middleware": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.1.0-rc.6", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", + "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", + "dev": true, + "requires": { + "webpack-core": "^0.6.8" + } + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true, + "optional": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz", + "integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==", + "dev": true + }, + "zone.js": { + "version": "0.8.29", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz", + "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" + } + } +} diff --git a/course-03/exercices/udacity-c2-frontend/package.json b/course-03/exercices/udacity-c2-frontend/package.json new file mode 100644 index 0000000..f02a7c2 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/package.json @@ -0,0 +1,58 @@ +{ + "name": "udacity-c2-frontend", + "version": "0.0.1", + "author": "Ionic Framework", + "homepage": "https://ionicframework.com/", + "scripts": { + "ng": "ionic", + "start": "ionic serve", + "build": "ionic build --prod", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/common": "^7.2.15", + "@angular/core": "^7.2.15", + "@angular/forms": "^7.2.15", + "@angular/http": "^7.2.15", + "@angular/platform-browser": "^7.2.15", + "@angular/platform-browser-dynamic": "^7.2.15", + "@angular/router": "^7.2.15", + "@ionic-native/core": "^5.9.0", + "@ionic-native/splash-screen": "^5.9.0", + "@ionic-native/status-bar": "^5.9.0", + "@ionic/angular": "^4.6.2", + "core-js": "^2.6.9", + "rxjs": "~6.3.3", + "zone.js": "~0.8.29" + }, + "devDependencies": { + "@angular-devkit/architect": "~0.12.3", + "@angular-devkit/build-angular": "^0.13.9", + "@angular-devkit/core": "~7.2.3", + "@angular-devkit/schematics": "~7.2.3", + "@angular/cli": "^7.3.9", + "@angular/compiler": "^7.2.15", + "@angular/compiler-cli": "^7.2.15", + "@angular/language-service": "^7.2.15", + "@ionic/angular-toolkit": "^1.5.1", + "@types/jasmine": "~2.8.8", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~10.12.0", + "codelyzer": "~4.5.0", + "jasmine-core": "~2.99.1", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~3.1.4", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "~2.0.1", + "karma-jasmine": "~1.1.2", + "karma-jasmine-html-reporter": "^0.2.2", + "protractor": "~5.4.0", + "ts-node": "~8.0.0", + "tslint": "~5.12.0", + "typescript": "~3.1.6" + }, + "description": "An Ionic project" +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/api/api.module.ts b/course-03/exercices/udacity-c2-frontend/src/app/api/api.module.ts new file mode 100644 index 0000000..1ca8afd --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/api/api.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { HttpClientModule } from '@angular/common/http'; +import { ApiService } from './api.service'; + +const components = []; + +@NgModule({ + imports: [ + HttpClientModule, + ], + declarations: components, + exports: components, + providers: [] +}) +export class ApiModule {} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/api/api.service.ts b/course-03/exercices/udacity-c2-frontend/src/app/api/api.service.ts new file mode 100644 index 0000000..dda6627 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/api/api.service.ts @@ -0,0 +1,78 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpErrorResponse, HttpRequest, HttpEvent } from '@angular/common/http'; +import { environment } from '../../environments/environment'; +import { Observable } from 'rxjs'; +import { FeedItem } from '../feed/models/feed-item.model'; +import { catchError, tap, map } from 'rxjs/operators'; + +const API_HOST = environment.apiHost; + +@Injectable({ + providedIn: 'root' +}) +export class ApiService { + httpOptions = { + headers: new HttpHeaders({'Content-Type': 'application/json'}) + }; + + token: string; + + constructor(private http: HttpClient) { + } + + handleError(error: Error) { + alert(error.message); + } + + setAuthToken(token) { + this.httpOptions.headers = this.httpOptions.headers.append('Authorization', `jwt ${token}`); + this.token = token; + } + + get(endpoint): Promise { + const url = `${API_HOST}${endpoint}`; + const req = this.http.get(url, this.httpOptions).pipe(map(this.extractData)); + + return req + .toPromise() + .catch((e) => { + this.handleError(e); + throw e; + }); + } + + post(endpoint, data): Promise { + const url = `${API_HOST}${endpoint}`; + return this.http.post>(url, data, this.httpOptions) + .toPromise() + .catch((e) => { + this.handleError(e); + throw e; + }); + } + + async upload(endpoint: string, file: File, payload: any): Promise { + const signed_url = (await this.get(`${endpoint}/signed-url/${file.name}`)).url; + + const headers = new HttpHeaders({'Content-Type': file.type}); + const req = new HttpRequest( 'PUT', signed_url, file, + { + headers: headers, + reportProgress: true, // track progress + }); + + return new Promise ( resolve => { + this.http.request(req).subscribe((resp) => { + if (resp && ( resp).status && ( resp).status === 200) { + resolve(this.post(endpoint, payload)); + } + }); + }); + } + + /// Utilities + private extractData(res: HttpEvent) { + const body = res; + return body || { }; + } +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/app-routing.module.ts b/course-03/exercices/udacity-c2-frontend/src/app/app-routing.module.ts new file mode 100644 index 0000000..261dfba --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/app-routing.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; + +const routes: Routes = [ + { + path: '', + redirectTo: 'home', + pathMatch: 'full' + }, + { + path: 'home', + loadChildren: './home/home.module#HomePageModule' + } +]; + +@NgModule({ + imports: [ + RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) + ], + exports: [RouterModule] +}) +export class AppRoutingModule {} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/app.component.html b/course-03/exercices/udacity-c2-frontend/src/app/app.component.html new file mode 100644 index 0000000..6d61d69 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/app.component.html @@ -0,0 +1,32 @@ + + + + + + Menu + + + + + + + + + {{p.title}} + + + + + + + + + + + + + + + + + diff --git a/course-03/exercices/udacity-c2-frontend/src/app/app.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/app.component.spec.ts new file mode 100644 index 0000000..50b38c8 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/app.component.spec.ts @@ -0,0 +1,81 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { TestBed, async } from '@angular/core/testing'; + +import { Platform } from '@ionic/angular'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; +import { RouterTestingModule } from '@angular/router/testing'; + +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + + let statusBarSpy, splashScreenSpy, platformReadySpy, platformSpy; + + beforeEach(async(() => { + statusBarSpy = jasmine.createSpyObj('StatusBar', ['styleDefault']); + splashScreenSpy = jasmine.createSpyObj('SplashScreen', ['hide']); + platformReadySpy = Promise.resolve(); + platformSpy = jasmine.createSpyObj('Platform', { ready: platformReadySpy }); + + TestBed.configureTestingModule({ + declarations: [AppComponent], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + providers: [ + { provide: StatusBar, useValue: statusBarSpy }, + { provide: SplashScreen, useValue: splashScreenSpy }, + { provide: Platform, useValue: platformSpy }, + ], + imports: [ RouterTestingModule.withRoutes([])], + }).compileComponents(); + })); + + it('should create the app', async () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + }); + + it('should initialize the app', async () => { + TestBed.createComponent(AppComponent); + expect(platformSpy.ready).toHaveBeenCalled(); + await platformReadySpy; + expect(statusBarSpy.styleDefault).toHaveBeenCalled(); + expect(splashScreenSpy.hide).toHaveBeenCalled(); + }); + + it('should have menu labels', async () => { + const fixture = await TestBed.createComponent(AppComponent); + await fixture.detectChanges(); + const app = fixture.nativeElement; + const menuItems = app.querySelectorAll('ion-label'); + expect(menuItems.length).toEqual(1); + expect(menuItems[0].textContent).toContain('Home'); + }); + + it('should have urls', async () => { + const fixture = await TestBed.createComponent(AppComponent); + await fixture.detectChanges(); + const app = fixture.nativeElement; + const menuItems = app.querySelectorAll('ion-item'); + expect(menuItems.length).toEqual(1); + expect(menuItems[0].getAttribute('ng-reflect-router-link')).toEqual('/home'); + }); + + it('should have one router outlet', async () => { + const fixture = await TestBed.createComponent(AppComponent); + await fixture.detectChanges(); + const app = fixture.nativeElement; + const routerOutlet = app.querySelectorAll('ion-router-outlet'); + expect(routerOutlet.length).toEqual(1); + }); + + it('should have one menubar', async () => { + const fixture = await TestBed.createComponent(AppComponent); + await fixture.detectChanges(); + const app = fixture.nativeElement; + const menubar = app.querySelectorAll('app-menubar'); + expect(menubar.length).toEqual(1); + }); + +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/app.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/app.component.ts new file mode 100644 index 0000000..f8f0154 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/app.component.ts @@ -0,0 +1,38 @@ +import { Component } from '@angular/core'; + +import { Platform } from '@ionic/angular'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; +import { environment } from '../environments/environment'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html' +}) +export class AppComponent { + public appPages = [ + { + title: 'Home', + url: '/home', + icon: 'home' + } + ]; + + public appName = environment.appName; + + constructor( + private platform: Platform, + private splashScreen: SplashScreen, + private statusBar: StatusBar + ) { + this.initializeApp(); + } + + initializeApp() { + this.platform.ready().then(() => { + this.statusBar.styleDefault(); + this.splashScreen.hide(); + document.title = environment.appName; + }); + } +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/app.module.ts b/course-03/exercices/udacity-c2-frontend/src/app/app.module.ts new file mode 100644 index 0000000..64faea0 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/app.module.ts @@ -0,0 +1,36 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { RouteReuseStrategy } from '@angular/router'; + +import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; + +import { AppComponent } from './app.component'; +import { AppRoutingModule } from './app-routing.module'; +import { MenubarComponent } from './menubar/menubar.component'; + +import { AuthModule } from './auth/auth.module'; +import { ApiService } from './api/api.service'; + +@NgModule({ + declarations: [ + AppComponent, + MenubarComponent + ], + entryComponents: [], + imports: [ + BrowserModule, + IonicModule.forRoot(), + AppRoutingModule, + AuthModule + ], + providers: [ + ApiService, + StatusBar, + SplashScreen, + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy } + ], + bootstrap: [AppComponent] +}) +export class AppModule {} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.html b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.html new file mode 100644 index 0000000..d318f42 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.html @@ -0,0 +1,17 @@ +
+ + Email + + + + Password + + + + Log In + + {{error}} +
diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.spec.ts new file mode 100644 index 0000000..d8a7e45 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.spec.ts @@ -0,0 +1,29 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { AuthLoginComponent } from './auth-login.component'; + +describe('AuthLoginPage', () => { + let component: AuthLoginComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [FormsModule, ReactiveFormsModule], + declarations: [ AuthLoginComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AuthLoginComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.ts new file mode 100644 index 0000000..52fe1f3 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-login/auth-login.component.ts @@ -0,0 +1,52 @@ +import { Component, OnInit } from '@angular/core'; +import { Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms'; + +import { ModalController } from '@ionic/angular'; + +import { AuthService } from '../services/auth.service'; +import { catchError } from 'rxjs/operators'; + +@Component({ + selector: 'app-auth-login', + templateUrl: './auth-login.component.html', + styleUrls: ['./auth-login.component.scss'], +}) +export class AuthLoginComponent implements OnInit { + loginForm: FormGroup; + error: string; + + constructor( + private formBuilder: FormBuilder, + private auth: AuthService, + private modal: ModalController + ) { } + + ngOnInit() { + this.loginForm = this.formBuilder.group({ + password: new FormControl('', Validators.required), + email: new FormControl('', Validators.compose([ + Validators.required, + Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$') + ])) + }); + } + + async onSubmit($event) { + $event.preventDefault(); + + if (!this.loginForm.valid) { return; } + + this.auth.login( + this.loginForm.controls.email.value, + this.loginForm.controls.password.value) + .then((user) => { + this.modal.dismiss(); + }) + .catch((e) => { + this.error = e.statusText; + throw e; + }); + + } + +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.html b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.html new file mode 100644 index 0000000..a43fb46 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.html @@ -0,0 +1,28 @@ + + + + Register + + + Log In + + + + + + + {{( auth.currentUser$ | async ).email }} + + + Log Out + + \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.scss new file mode 100644 index 0000000..f2e4e87 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.scss @@ -0,0 +1,11 @@ +:host{ + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} + +ion-avatar { + width: 35px; + height: 35px; +} \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.spec.ts new file mode 100644 index 0000000..a94da9d --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.spec.ts @@ -0,0 +1,43 @@ +import { AuthMenuButtonComponent } from './auth-menu-button.component'; + +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ModalController } from '@ionic/angular'; + + +describe('AuthMenuButtonPage', () => { + let component: AuthMenuButtonComponent; + let fixture: ComponentFixture; + let modalSpy; + let modalCtrlSpy; + beforeEach(async(() => { + modalSpy = jasmine.createSpyObj('Modal', ['present']); + modalCtrlSpy = jasmine.createSpyObj('ModalController', ['create']); + modalCtrlSpy.create.and.callFake(function () { + return modalSpy; + }); + + + TestBed.configureTestingModule({ + providers: [ + { + provide: ModalController, + useValue: modalCtrlSpy + } + ], + declarations: [ AuthMenuButtonComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AuthMenuButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.ts new file mode 100644 index 0000000..432e97b --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-button.component.ts @@ -0,0 +1,48 @@ +import { Component, OnInit } from '@angular/core'; +import { ModalController } from '@ionic/angular'; +import { AuthMenuUserComponent } from './auth-menu-user/auth-menu-user.component'; + +import { AuthService } from '../services/auth.service'; +import { AuthLoginComponent } from '../auth-login/auth-login.component'; +import { AuthRegisterComponent } from '../auth-register/auth-register.component'; + +@Component({ + selector: 'app-auth-menu-button', + templateUrl: './auth-menu-button.component.html', + styleUrls: ['./auth-menu-button.component.scss'], +}) +export class AuthMenuButtonComponent implements OnInit { + + constructor( + public auth: AuthService, + public modalController: ModalController + ) {} + + async presentmodal(ev: any) { + const modal = await this.modalController.create({ + component: AuthMenuUserComponent, + }); + return await modal.present(); + } + + async presentLogin(ev: any) { + const modal = await this.modalController.create({ + component: AuthLoginComponent, + }); + return await modal.present(); + } + + async presentRegister(ev: any) { + const modal = await this.modalController.create({ + component: AuthRegisterComponent, + }); + return await modal.present(); + } + + logout() { + this.auth.logout(); + } + + ngOnInit() {} + +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.html b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.html new file mode 100644 index 0000000..e0eac1a --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.html @@ -0,0 +1,5 @@ +Dismiss + +

+ auth-menu-user works! +

diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.spec.ts new file mode 100644 index 0000000..8aca5f4 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.spec.ts @@ -0,0 +1,49 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AuthMenuUserComponent } from './auth-menu-user.component'; +import { ModalController } from '@ionic/angular'; + +describe('AuthMenuUserPage', () => { + let component: AuthMenuUserComponent; + let fixture: ComponentFixture; + let modalSpy; + let modalCtrlSpy; + + beforeEach(async(() => { + modalSpy = jasmine.createSpyObj('Modal', ['dismiss']); + modalCtrlSpy = jasmine.createSpyObj('ModalController', ['create']); + modalCtrlSpy.create.and.callFake(function () { + return modalSpy; + }); + + + TestBed.configureTestingModule({ + providers: [ + { + provide: ModalController, + useValue: modalCtrlSpy + } + ], + declarations: [ AuthMenuUserComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AuthMenuUserComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + // it('#dismiss() should hide the modal', () => { + // ......... + // expect(modalSpy.dismiss).toHaveBeenCalled(); + // ......... + // }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.ts new file mode 100644 index 0000000..2f602a7 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-menu-button/auth-menu-user/auth-menu-user.component.ts @@ -0,0 +1,18 @@ +import { Component, OnInit } from '@angular/core'; +import { ModalController } from '@ionic/angular'; + +@Component({ + selector: 'app-auth-menu-user', + templateUrl: './auth-menu-user.component.html', + styleUrls: ['./auth-menu-user.component.scss'], +}) +export class AuthMenuUserComponent implements OnInit { + + constructor(private modalCtrl: ModalController) { } + + ngOnInit() {} + + dismissModal() { + this.modalCtrl.dismiss(); + } +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.html b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.html new file mode 100644 index 0000000..66d58ca --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.html @@ -0,0 +1,25 @@ +
+ + Name + + + + Email + + + + Password + + + + Confirm Password + + + + Register + {{error}} +
+ \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.spec.ts new file mode 100644 index 0000000..e45a285 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.spec.ts @@ -0,0 +1,29 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { AuthRegisterComponent } from './auth-register.component'; + +describe('AuthRegisterPage', () => { + let component: AuthRegisterComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ ReactiveFormsModule ], + declarations: [ AuthRegisterComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AuthRegisterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.ts new file mode 100644 index 0000000..7b20c93 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth-register/auth-register.component.ts @@ -0,0 +1,61 @@ +import { Component, OnInit } from '@angular/core'; +import { Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms'; +import { AuthService } from '../services/auth.service'; +import { User } from '../models/user.model'; +import { ModalController } from '@ionic/angular'; + +@Component({ + selector: 'app-auth-register', + templateUrl: './auth-register.component.html', + styleUrls: ['./auth-register.component.scss'], +}) +export class AuthRegisterComponent implements OnInit { + + registerForm: FormGroup; + error: string; + + constructor( + private formBuilder: FormBuilder, + private auth: AuthService, + private modal: ModalController + ) { } + + ngOnInit() { + this.registerForm = this.formBuilder.group({ + password_confirm: new FormControl('', Validators.required), + password: new FormControl('', Validators.required), + email: new FormControl('', Validators.compose([ + Validators.required, + Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$') + ])), + name: new FormControl('', Validators.compose([ + Validators.required, + Validators.pattern('^[a-zA-Z0-9_.+-]+$') + ])) + }, { validators: this.passwordsMatch }); + } + + onSubmit($event) { + $event.preventDefault(); + + if (!this.registerForm.valid) { return; } + + const newuser: User = { + email: this.registerForm.controls.email.value, + name: this.registerForm.controls.name.value + }; + + this.auth.register(newuser, this.registerForm.controls.password.value) + .then((user) => { + this.modal.dismiss(); + }) + .catch((e) => { + this.error = e.statusText; + throw e; + }); + } + + passwordsMatch(group: FormGroup) { + return group.controls.password.value === group.controls.password_confirm.value ? null : { passwordsMisMatch: true }; + } +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/auth.module.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth.module.ts new file mode 100644 index 0000000..b26076b --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/auth.module.ts @@ -0,0 +1,31 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; + +import { AuthMenuButtonComponent } from './auth-menu-button/auth-menu-button.component'; +import { AuthLoginComponent } from './auth-login/auth-login.component'; +import { AuthRegisterComponent } from './auth-register/auth-register.component'; +import { AuthMenuUserComponent } from './auth-menu-button/auth-menu-user/auth-menu-user.component'; + +import { ApiModule } from '../api/api.module'; +import { ApiService } from '../api/api.service'; + +const entryComponents = [AuthMenuUserComponent, AuthMenuButtonComponent, AuthLoginComponent, AuthRegisterComponent]; +const components = [...entryComponents]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + ReactiveFormsModule, + ApiModule + ], + entryComponents: entryComponents, + declarations: components, + exports: components, + providers: [] +}) +export class AuthModule {} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/models/user.model.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/models/user.model.ts new file mode 100644 index 0000000..135078d --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/models/user.model.ts @@ -0,0 +1,4 @@ +export interface User { + email: string; + name: string; +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.spec.ts new file mode 100644 index 0000000..459c042 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.spec.ts @@ -0,0 +1,15 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthGuardService } from './auth.guard.service'; +import { RouterTestingModule } from '@angular/router/testing'; + +describe('AuthGuardService', () => { + beforeEach(() => TestBed.configureTestingModule({ + imports: [ RouterTestingModule ] + })); + + it('should be created', () => { + const service: AuthGuardService = TestBed.get(AuthGuardService); + expect(service).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.ts new file mode 100644 index 0000000..be88a97 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.guard.service.ts @@ -0,0 +1,90 @@ +import { Injectable } from '@angular/core'; +import { Router, CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot, UrlTree } from '@angular/router'; +import { AuthService } from './auth.service'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuardService implements CanActivate { + + constructor( + private auth: AuthService, + private router: Router + ) {} + + canActivate(route: ActivatedRouteSnapshot, + state: RouterStateSnapshot): boolean + | UrlTree + | Observable + | Promise { + if (!this.auth.currentUser$.value) { + this.router.navigateByUrl('/login'); + } + + return this.auth.currentUser$.value !== null; + } + +} + +// import { Injectable } from '@angular/core'; +// import { Router, CanActivate } from '@angular/router'; +// import { Events } from '@ionic/angular'; + +// import { AmplifyService } from 'aws-amplify-angular'; +// import { CognitoUser } from 'amazon-cognito-identity-js'; +// import { AuthState } from 'aws-amplify-angular/dist/src/providers/auth.state'; +// import { BehaviorSubject } from 'rxjs'; +// import { Auth } from 'aws-amplify'; + +// @Injectable({ +// providedIn: 'root' +// }) +// export class AuthGuardService implements CanActivate { +// authState: AuthState; +// loggedIn = false; +// loggedInChanged$: BehaviorSubject = new BehaviorSubject (this.loggedIn); +// currentUser: CognitoUser; + +// constructor( +// public router: Router, +// public events: Events, +// public amplify: AmplifyService +// ) { +// this.amplify.authStateChange$ +// .subscribe(async (authState) => { +// if (authState) { +// this.loggedIn = authState.state === 'signedIn'; +// this.loggedInChanged$.next(this.loggedIn); +// this.authState = authState; +// this.events.publish('data:AuthState', this.authState); + + +// this.currentUser = await Auth.currentAuthenticatedUser(); +// } +// }); +// } + +// retry() { +// } + +// canActivate() { +// if (!this.loggedIn) { +// this.router.navigateByUrl('/signin'); +// } + +// return this.loggedIn; +// } + +// signOut() { +// return this.amplify.auth().signOut().then(() => { +// window.location.href = '/#/signin'; +// // TODO maybe additional cleanup +// }); +// } + +// init() { +// return; +// } +// } diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.spec.ts new file mode 100644 index 0000000..f3d964d --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: AuthService = TestBed.get(AuthService); + expect(service).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.ts b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.ts new file mode 100644 index 0000000..7f8eaf3 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/auth/services/auth.service.ts @@ -0,0 +1,59 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { User } from '../models/user.model'; +import { ApiService } from 'src/app/api/api.service'; +import { catchError, tap } from 'rxjs/operators'; + +const JWT_LOCALSTORE_KEY = 'jwt'; +const USER_LOCALSTORE_KEY = 'user'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + currentUser$: BehaviorSubject = new BehaviorSubject(null); + constructor( private api: ApiService ) { + this.initToken(); + } + + initToken() { + const token = localStorage.getItem(JWT_LOCALSTORE_KEY); + const user = JSON.parse(localStorage.getItem(USER_LOCALSTORE_KEY)); + if (token && user) { + this.setTokenAndUser(token, user); + } + } + + setTokenAndUser(token: string, user: User) { + localStorage.setItem(JWT_LOCALSTORE_KEY, token); + localStorage.setItem(USER_LOCALSTORE_KEY, JSON.stringify(user)); + this.api.setAuthToken(token); + this.currentUser$.next(user); + } + + async login(email: string, password: string): Promise { + return this.api.post('/users/auth/login', + {email: email, password: password}) + .then((res) => { + this.setTokenAndUser(res.token, res.user); + return res; + }) + .catch((e) => { throw e; }); + // return user !== undefined; + } + + logout(): boolean { + this.setTokenAndUser(null, null); + return true; + } + + register(user: User, password: string): Promise { + return this.api.post('/users/auth/', + {email: user.email, password: password}) + .then((res) => { + this.setTokenAndUser(res.token, res.user); + return res; + }) + .catch((e) => { throw e; }); + } +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.html b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.html new file mode 100644 index 0000000..b614210 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.html @@ -0,0 +1,10 @@ + + + + +

{{feedItem.caption}}

+
+
\ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.scss new file mode 100644 index 0000000..8ec6d96 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.scss @@ -0,0 +1,14 @@ +.photo-card{ + max-width: 500px; + overflow: hidden; + background: var(--ion-color-primary-contrast); + margin: 30px 0px; + } + +.photo-card ion-img { + max-height: 532px; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.spec.ts new file mode 100644 index 0000000..73c6b59 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.spec.ts @@ -0,0 +1,57 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FeedItemComponent } from './feed-item.component'; +import { feedItemMocks } from '../models/feed-item.model'; +import { FeedProviderService } from '../services/feed.provider.service'; + +describe('FeedItemComponent', () => { + let component: FeedItemComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FeedItemComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FeedItemComponent); + component = fixture.componentInstance; + component.feedItem = feedItemMocks[0]; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should set the image url to the feedItem', () => { + const app = fixture.nativeElement; + const img = app.querySelectorAll('ion-img'); + expect(img.length).toEqual(1); + expect(img[0].src).toEqual(feedItemMocks[0].url); + }); + + it('should display the caption', () => { + const app = fixture.nativeElement; + const paragraphs = app.querySelectorAll('p'); + expect(([].slice.call(paragraphs)).map((x) => x.innerText)).toContain(feedItemMocks[0].caption); + }); + + // it('should open a modal when clicked', () => { + // de = fixture.debugElement.query(By.css('ion-buttons button')); + // de.triggerEventHandler('click', null); + // expect(navCtrl.push).toHaveBeenCalledWith(WishlistPage); + // }); + + // it('should open a modal when clicked', () => { + // let navCtrl = fixture.debugElement.injector.get(NavController); + // spyOn(navCtrl, 'push'); + // de = fixture.debugElement.query(By.css('ion-buttons button')); + // de.triggerEventHandler('click', null); + // expect(navCtrl.push).toHaveBeenCalledWith(WishlistPage); + // }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.ts new file mode 100644 index 0000000..64dd434 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-item/feed-item.component.ts @@ -0,0 +1,17 @@ +import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core'; +import { FeedItem } from '../models/feed-item.model'; + +@Component({ + selector: 'app-feed-item', + templateUrl: './feed-item.component.html', + styleUrls: ['./feed-item.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FeedItemComponent implements OnInit { + @Input() feedItem: FeedItem; + + constructor() { } + + ngOnInit() {} + +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.html b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.html new file mode 100644 index 0000000..6c10337 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.html @@ -0,0 +1,6 @@ +
+ + +
\ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.scss new file mode 100644 index 0000000..f12b046 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.scss @@ -0,0 +1,7 @@ + + .feed { + display: flex; + flex-direction: column; + align-items: center; + background: var(--ion-color-light-tint); + } \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.spec.ts new file mode 100644 index 0000000..6713af1 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.spec.ts @@ -0,0 +1,47 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FeedListComponent } from './feed-list.component'; +import { FeedProviderService } from '../services/feed.provider.service'; +import { feedItemMocks } from '../models/feed-item.model'; + +describe('FeedListComponent', () => { + let component: FeedListComponent; + let fixture: ComponentFixture; + let feedProvider: FeedProviderService; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FeedListComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FeedListComponent); + + // SET UP SPIES AND MOCKS + feedProvider = fixture.debugElement.injector.get(FeedProviderService); + // spyOn(feedProvider, 'fetch').and.returnValue(Promise.resolve(feedItemMocks)); + + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should fetch on load', () => { + expect(feedProvider.getFeed).toHaveBeenCalled(); + }); + + it('should display all of the fetched items', () => { + component.feedItems = feedItemMocks; + fixture.detectChanges(); + const app = fixture.nativeElement; + const items = app.querySelectorAll('app-feed-item'); + expect(items.length).toEqual(feedItemMocks.length); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.ts new file mode 100644 index 0000000..a0e5f72 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-list/feed-list.component.ts @@ -0,0 +1,34 @@ +import { Component, OnInit, ChangeDetectionStrategy, Input, OnDestroy } from '@angular/core'; +import { environment } from '../../../environments/environment'; +import { FeedItem } from '../models/feed-item.model'; +import { FeedProviderService } from '../services/feed.provider.service'; +import { Subscription } from 'rxjs'; + +@Component({ + selector: 'app-feed-list', + templateUrl: './feed-list.component.html', + styleUrls: ['./feed-list.component.scss'], + // changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FeedListComponent implements OnInit, OnDestroy { + @Input() feedItems: FeedItem[]; + subscriptions: Subscription[] = []; + constructor( private feed: FeedProviderService ) { } + + async ngOnInit() { + this.subscriptions.push( + this.feed.currentFeed$.subscribe((items) => { + this.feedItems = items; + })); + + await this.feed.getFeed(); + } + + ngOnDestroy(): void { + for (const subscription of this.subscriptions) { + subscription.unsubscribe(); + } + } + + +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.html b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.html new file mode 100644 index 0000000..64197d2 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.html @@ -0,0 +1,7 @@ + + Create a New Post + \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.spec.ts new file mode 100644 index 0000000..d418676 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FeedUploadButtonComponent } from './feed-upload-button.component'; + +describe('FeedUploadButtonPage', () => { + let component: FeedUploadButtonComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FeedUploadButtonComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FeedUploadButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.ts new file mode 100644 index 0000000..4491307 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload-button/feed-upload-button.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { ModalController } from '@ionic/angular'; +import { FeedUploadComponent } from '../feed-upload.component'; +import { AuthService } from 'src/app/auth/services/auth.service'; +import { Subscription } from 'rxjs'; + +@Component({ + selector: 'app-feed-upload-button', + templateUrl: './feed-upload-button.component.html', + styleUrls: ['./feed-upload-button.component.scss'], +}) +export class FeedUploadButtonComponent implements OnInit, OnDestroy { + + isLoggedIn: Boolean; + loginSub: Subscription; + + constructor(private modalController: ModalController, private auth: AuthService) { } + + ngOnInit() { + this.auth.currentUser$.subscribe((user) => { + this.isLoggedIn = user !== null; + }); + } + + ngOnDestroy(): void { + if (this.loginSub) { + this.loginSub.unsubscribe(); + } + } + + async presentUploadForm(ev: any) { + const modal = await this.modalController.create({ + component: FeedUploadComponent, + }); + return await modal.present(); + } + +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.html b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.html new file mode 100644 index 0000000..0268f0f --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.html @@ -0,0 +1,19 @@ +
` + + + Caption + + + + Post + +
diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.spec.ts new file mode 100644 index 0000000..c0fd4c8 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FeedUploadComponent } from './feed-upload.component'; + +describe('FeedUploadPage', () => { + let component: FeedUploadComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FeedUploadComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FeedUploadComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.ts new file mode 100644 index 0000000..68c9e1a --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed-upload/feed-upload.component.ts @@ -0,0 +1,68 @@ +import { Component, OnInit } from '@angular/core'; +import { ApiService } from 'src/app/api/api.service'; + +import { Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms'; +import { FeedProviderService } from '../services/feed.provider.service'; + +import { LoadingController, ModalController } from '@ionic/angular'; + + +@Component({ + selector: 'app-feed-upload', + templateUrl: './feed-upload.component.html', + styleUrls: ['./feed-upload.component.scss'], +}) +export class FeedUploadComponent implements OnInit { + previewDataUrl; + file: File; + uploadForm: FormGroup; + + constructor( + private feed: FeedProviderService, + private formBuilder: FormBuilder, + private loadingController: LoadingController, + private modalController: ModalController + ) { } + + ngOnInit() { + this.uploadForm = this.formBuilder.group({ + caption: new FormControl('', Validators.required) + }); + } + + setPreviewDataUrl(file: Blob) { + const reader = new FileReader(); + reader.onloadend = () => { + this.previewDataUrl = reader.result; + }; + + reader.readAsDataURL(file); + } + + selectImage(event) { + const file = event.srcElement.files; + + if (!file) { + return; + } + this.file = file[0]; + this.setPreviewDataUrl(this.file); + + } + + onSubmit($event) { + $event.preventDefault(); + this.loadingController.create(); + + if (!this.uploadForm.valid || !this.file) { return; } + this.feed.uploadFeedItem(this.uploadForm.controls.caption.value, this.file) + .then((result) => { + this.modalController.dismiss(); + this.loadingController.dismiss(); + }); + } + + cancel() { + this.modalController.dismiss(); + } +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/feed.module.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed.module.ts new file mode 100644 index 0000000..900a078 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/feed.module.ts @@ -0,0 +1,29 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; + +import { FeedListComponent } from './feed-list/feed-list.component'; +import { FeedItemComponent } from './feed-item/feed-item.component'; +import { FeedUploadComponent } from './feed-upload/feed-upload.component'; +import { FeedUploadButtonComponent } from './feed-upload/feed-upload-button/feed-upload-button.component'; + +import { FeedProviderService } from './services/feed.provider.service'; + +const entryComponents = [FeedUploadComponent]; +const components = [FeedListComponent, FeedItemComponent, FeedUploadComponent, FeedUploadButtonComponent]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + ReactiveFormsModule + ], + declarations: components, + exports: components, + entryComponents: entryComponents, + providers: [FeedProviderService] +}) +export class FeedModule {} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/models/feed-item.model.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/models/feed-item.model.ts new file mode 100644 index 0000000..5ac4633 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/models/feed-item.model.ts @@ -0,0 +1,23 @@ +export interface FeedItem { + id: number; + url: string; + caption: string; +} + +export const feedItemMocks: FeedItem[] = [ + { + id: 0, + url: '/assets/mock/xander0.jpg', + caption: 'Such a cute pup' + }, + { + id: 0, + url: '/assets/mock/xander1.jpg', + caption: 'Who\'s a good boy?' + }, + { + id: 0, + url: '/assets/mock/xander2.jpg', + caption: 'Majestic.' + } +]; diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.spec.ts new file mode 100644 index 0000000..39f6b12 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { FeedProviderService } from './feed.provider.service'; + +describe('Feed.ProviderService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: FeedProviderService = TestBed.get(FeedProviderService); + expect(service).toBeTruthy(); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.ts b/course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.ts new file mode 100644 index 0000000..9491f1e --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/feed/services/feed.provider.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { FeedItem, feedItemMocks } from '../models/feed-item.model'; +import { BehaviorSubject } from 'rxjs'; + +import { ApiService } from '../../api/api.service'; + +@Injectable({ + providedIn: 'root' +}) +export class FeedProviderService { + currentFeed$: BehaviorSubject = new BehaviorSubject([]); + + constructor(private api: ApiService) { } + + async getFeed(): Promise> { + const req = await this.api.get('/feed'); + const items = req.rows; + this.currentFeed$.next(items); + return Promise.resolve(this.currentFeed$); + } + + async uploadFeedItem(caption: string, file: File): Promise { + const res = await this.api.upload('/feed', file, {caption: caption, url: file.name}); + const feed = [res, ...this.currentFeed$.value]; + this.currentFeed$.next(feed); + return res; + } + +} + +// async getFeed() { +// const url = `${API_HOST}/feed`; + +// const req = this.http.get(url, this.httpOptions).pipe( +// map(this.extractData)); +// // catchError(this.handleError)); +// const resp = (await req.toPromise()); +// return resp.rows; +// } diff --git a/course-03/exercices/udacity-c2-frontend/src/app/home/home.module.ts b/course-03/exercices/udacity-c2-frontend/src/app/home/home.module.ts new file mode 100644 index 0000000..cacd46a --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/home/home.module.ts @@ -0,0 +1,24 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; +import { FeedModule } from '../feed/feed.module'; +import { HomePage } from './home.page'; + +@NgModule({ + imports: [ + FeedModule, + CommonModule, + FormsModule, + IonicModule, + RouterModule.forChild([ + { + path: '', + component: HomePage + } + ]) + ], + declarations: [HomePage] +}) +export class HomePageModule {} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.html b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.html new file mode 100644 index 0000000..b8934ae --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.html @@ -0,0 +1,4 @@ + + + + diff --git a/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.scss b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.scss new file mode 100644 index 0000000..e69de29 diff --git a/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.spec.ts new file mode 100644 index 0000000..6e695f7 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.spec.ts @@ -0,0 +1,29 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomePage } from './home.page'; +import { environment } from '../../environments/environment'; + +describe('HomePage', () => { + let component: HomePage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HomePage ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HomePage); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.ts b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.ts new file mode 100644 index 0000000..ff86e81 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/home/home.page.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { environment } from '../../environments/environment'; + +@Component({ + selector: 'app-home', + templateUrl: 'home.page.html', + styleUrls: ['home.page.scss'], +}) +export class HomePage { + appName = environment.appName; +} diff --git a/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.html b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.html new file mode 100644 index 0000000..68dc329 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.html @@ -0,0 +1,13 @@ + + + + + + + {{ appName }} + + + + + + \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.scss b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.scss new file mode 100644 index 0000000..4dcab3e --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.scss @@ -0,0 +1,5 @@ +ion-title { + font-weight: bold; + font-family: 'Dancing Script', cursive; + font-size: 180%; + } \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.spec.ts b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.spec.ts new file mode 100644 index 0000000..b9a82ea --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.spec.ts @@ -0,0 +1,36 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MenubarComponent } from './menubar.component'; +import { environment } from '../../environments/environment'; + + +describe('MenubarPage', () => { + let component: MenubarComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ MenubarComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MenubarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('title should be enviornment.AppTitle', () => { + const app = fixture.nativeElement; + const title = app.querySelectorAll('ion-title'); + expect(title.length).toEqual(1); + expect(title[0].innerText).toEqual(environment.appName); + }); +}); diff --git a/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.ts b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.ts new file mode 100644 index 0000000..41fcbe5 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/app/menubar/menubar.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit } from '@angular/core'; +import { environment } from '../../environments/environment'; + +@Component({ + selector: 'app-menubar', + templateUrl: './menubar.component.html', + styleUrls: ['./menubar.component.scss'], +}) +export class MenubarComponent implements OnInit { + public appName = environment.appName; + + constructor() { } + + ngOnInit() {} + +} diff --git a/course-03/exercices/udacity-c2-frontend/src/assets/icon/favicon.png b/course-03/exercices/udacity-c2-frontend/src/assets/icon/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..51888a7bbdb59f04c29c548523eb2638c1c954f5 GIT binary patch literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!x&nMcT-^(N+`Ik{1{5}NM-k9f zx+Ot=!3-}y{#<)Uok@}X^0T)Mjw~(h@l#Ir^NC7r=_#0-8E$a3RKVL~nc3p~*UxA# z4bjg_XJBBO<>}%W5^;EK_{&+V40u?Vtzk_Oy;*YMVqw~ozwz&rPG6d~>D#mR`SK=; zww9K@s-5|}%Dy=+ak|}>#qwwKGH>ZO4~|`P_r2LJy1RYqyXB`=?Mw?@F8Z!h{rcpz z^y94Mdt1KFIr?nR|NE2g?N}2vO^d(4;=OB>WP0Plul!REN;cgwUAJuA?C`^98NGCJ zuf=eS_OHmETd)0azdLJ6Z^FIm6*YNHw|4%lGf`stp1;dK$1sNYdj7ec{*dYEN(RM7|LFZWoy#R9733Kz`kee` zcsH&1+JCz2|7qRT%bgpNUdZ3E%i6T)I?vY6{p)ga_qlB<;GAPn(!{OF;x_wm_K%n( zW67=BbK}Hx+Mo2yW_)0K?|;#s9f!Uw=S;9NQ)S^>UOs1+lefL)nQKa6oJzg9f7^uT zr^QQJHL|;hJ!n29P`>r{pI$??E8ll+Vp%D3sqgGAQ?16Ir>}307i!n%dGB~BKleRm zV`}#;lUe7&`Rm%PqCLs%HOEe${KnWk%jlG>GM}cUf9>%Jt~^m(q1U%2$4$<)xHgTq zd0EM;Wjbazr!IcCcJ{`1i$kvS+;+RTmT^vJdf^@OKlARE7bo`3-BEDmtJB75>uhqr zB>Z2>{qec~lUw13i#jzoi~HY diff --git a/course-03/exercices/udacity-c2-frontend/src/environments/environment.prod.ts b/course-03/exercices/udacity-c2-frontend/src/environments/environment.prod.ts new file mode 100644 index 0000000..2f47299 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/environments/environment.prod.ts @@ -0,0 +1,18 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: true, + appName: 'Udagram', + apiHost: 'http://udagram-kjm-dev-dev.eu-west-3.elasticbeanstalk.com/api/v0' +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/course-03/exercices/udacity-c2-frontend/src/environments/environment.ts b/course-03/exercices/udacity-c2-frontend/src/environments/environment.ts new file mode 100644 index 0000000..183b725 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/environments/environment.ts @@ -0,0 +1,18 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false, + appName: 'Udagram', + apiHost: 'http://localhost:8080/api/v0' +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/course-03/exercices/udacity-c2-frontend/src/global.scss b/course-03/exercices/udacity-c2-frontend/src/global.scss new file mode 100644 index 0000000..cd3e674 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/global.scss @@ -0,0 +1,14 @@ +// http://ionicframework.com/docs/theming/ +@import '~@ionic/angular/css/core.css'; +@import '~@ionic/angular/css/normalize.css'; +@import '~@ionic/angular/css/structure.css'; +@import '~@ionic/angular/css/typography.css'; +@import '~@ionic/angular/css/display.css'; +@import '~@ionic/angular/css/padding.css'; +@import '~@ionic/angular/css/float-elements.css'; +@import '~@ionic/angular/css/text-alignment.css'; +@import '~@ionic/angular/css/text-transformation.css'; +@import '~@ionic/angular/css/flex-utils.css'; + +// Fancy Fonts +@import url('https://fonts.googleapis.com/css?family=Dancing+Script:700'); \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-frontend/src/index.html b/course-03/exercices/udacity-c2-frontend/src/index.html new file mode 100644 index 0000000..6b3ce45 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/course-03/exercices/udacity-c2-frontend/src/karma.conf.js b/course-03/exercices/udacity-c2-frontend/src/karma.conf.js new file mode 100644 index 0000000..ffd7c16 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/karma.conf.js @@ -0,0 +1,31 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + 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', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/course-03/exercices/udacity-c2-frontend/src/main.ts b/course-03/exercices/udacity-c2-frontend/src/main.ts new file mode 100644 index 0000000..91ec6da --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.log(err)); diff --git a/course-03/exercices/udacity-c2-frontend/src/polyfills.ts b/course-03/exercices/udacity-c2-frontend/src/polyfills.ts new file mode 100644 index 0000000..a6d34ea --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/polyfills.ts @@ -0,0 +1,85 @@ +/** + * 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 + */ + +/** IE9, IE10, IE11, and Chrome <55 requires all of the following polyfills. + * This also includes Android Emulators with older versions of Chrome and Google Search/Googlebot + */ + +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + +/** + * 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__BLACK_LISTED_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/course-03/exercices/udacity-c2-frontend/src/test.ts b/course-03/exercices/udacity-c2-frontend/src/test.ts new file mode 100644 index 0000000..1631789 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/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/course-03/exercices/udacity-c2-frontend/src/theme/variables.scss b/course-03/exercices/udacity-c2-frontend/src/theme/variables.scss new file mode 100644 index 0000000..460e055 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/theme/variables.scss @@ -0,0 +1,77 @@ +// Ionic Variables and Theming. For more info, please see: +// http://ionicframework.com/docs/theming/ + +/** Ionic CSS Variables **/ +:root { + /** primary **/ + --ion-color-primary: #3880ff; + --ion-color-primary-rgb: 56, 128, 255; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #3171e0; + --ion-color-primary-tint: #4c8dff; + + /** secondary **/ + --ion-color-secondary: #0cd1e8; + --ion-color-secondary-rgb: 12, 209, 232; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255, 255, 255; + --ion-color-secondary-shade: #0bb8cc; + --ion-color-secondary-tint: #24d6ea; + + /** tertiary **/ + --ion-color-tertiary: #7044ff; + --ion-color-tertiary-rgb: 112, 68, 255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255, 255, 255; + --ion-color-tertiary-shade: #633ce0; + --ion-color-tertiary-tint: #7e57ff; + + /** success **/ + --ion-color-success: #10dc60; + --ion-color-success-rgb: 16, 220, 96; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #0ec254; + --ion-color-success-tint: #28e070; + + /** warning **/ + --ion-color-warning: #ffce00; + --ion-color-warning-rgb: 255, 206, 0; + --ion-color-warning-contrast: #ffffff; + --ion-color-warning-contrast-rgb: 255, 255, 255; + --ion-color-warning-shade: #e0b500; + --ion-color-warning-tint: #ffd31a; + + /** danger **/ + --ion-color-danger: #f04141; + --ion-color-danger-rgb: 245, 61, 61; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #d33939; + --ion-color-danger-tint: #f25454; + + /** dark **/ + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34, 34, 34; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + /** medium **/ + --ion-color-medium: #989aa2; + --ion-color-medium-rgb: 152, 154, 162; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #86888f; + --ion-color-medium-tint: #a2a4ab; + + /** light **/ + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244, 244, 244; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0, 0, 0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #FAFAFA; +} diff --git a/course-03/exercices/udacity-c2-frontend/src/tsconfig.app.json b/course-03/exercices/udacity-c2-frontend/src/tsconfig.app.json new file mode 100644 index 0000000..190fd30 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/tsconfig.app.json @@ -0,0 +1,11 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/course-03/exercices/udacity-c2-frontend/src/tsconfig.spec.json b/course-03/exercices/udacity-c2-frontend/src/tsconfig.spec.json new file mode 100644 index 0000000..de77336 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/src/tsconfig.spec.json @@ -0,0 +1,18 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts", + "polyfills.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/course-03/exercices/udacity-c2-frontend/tsconfig.json b/course-03/exercices/udacity-c2-frontend/tsconfig.json new file mode 100644 index 0000000..b271fd9 --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "module": "es2015", + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2018", + "dom" + ] + } +} diff --git a/course-03/exercices/udacity-c2-frontend/tslint.json b/course-03/exercices/udacity-c2-frontend/tslint.json new file mode 100644 index 0000000..104686e --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/tslint.json @@ -0,0 +1,130 @@ +{ + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "deprecation": { + "severity": "warn" + }, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "no-output-on-prefix": true, + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "directive-class-suffix": true + } +} diff --git a/course-03/exercices/udacity-c2-frontend/udacity_tests/git_test.sh b/course-03/exercices/udacity-c2-frontend/udacity_tests/git_test.sh new file mode 100644 index 0000000..f62840a --- /dev/null +++ b/course-03/exercices/udacity-c2-frontend/udacity_tests/git_test.sh @@ -0,0 +1,4 @@ +@ TODO +Verify dev, staging, and master exist +verify working on feature branch or similar +verify cannot push to staging or master (protected branches) \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-restapi/.gitignore b/course-03/exercices/udacity-c2-restapi/.gitignore new file mode 100644 index 0000000..46b3664 --- /dev/null +++ b/course-03/exercices/udacity-c2-restapi/.gitignore @@ -0,0 +1,42 @@ +# Specifies intentionally untracked files to ignore when using Git +# http://git-scm.com/docs/gitignore + +*~ +*.sw[mnpcod] +*.log +*.tmp +*.tmp.* +log.txt +*.sublime-project +*.sublime-workspace +.vscode/ +npm-debug.log* + +.idea/ +.ionic/ +.sourcemaps/ +.sass-cache/ +.tmp/ +.versions/ +coverage/ +www/ +node_modules/ +tmp/ +temp/ +platforms/ +plugins/ +plugins/android.json +plugins/ios.json +$RECYCLE.BIN/ +postgres_dev/ +logfile + +.DS_Store +Thumbs.db +UserInterfaceState.xcuserstate +node_modules +venv/ +# Elastic Beanstalk Files +.elasticbeanstalk/* +!.elasticbeanstalk/*.cfg.yml +!.elasticbeanstalk/*.global.yml diff --git a/course-03/exercices/udacity-c2-restapi/.npmrc b/course-03/exercices/udacity-c2-restapi/.npmrc new file mode 100644 index 0000000..3364a17 --- /dev/null +++ b/course-03/exercices/udacity-c2-restapi/.npmrc @@ -0,0 +1 @@ +unsafe-perm=true \ No newline at end of file diff --git a/course-03/exercices/udacity-c2-restapi/README.md b/course-03/exercices/udacity-c2-restapi/README.md new file mode 100644 index 0000000..adbe8ec --- /dev/null +++ b/course-03/exercices/udacity-c2-restapi/README.md @@ -0,0 +1,40 @@ +# Udagram REST API + +Udagram is a simple cloud application developed alongside the Udacity Cloud Engineering Nanodegree. It allows users to register and log into a web client, post photos to the feed, and process photos using an image filtering microservice. + +The project is split into three parts: + +1. [The Simple Frontend](../udacity-c2-frontend) +A basic Ionic client web application which consumes the RestAPI Backend. +2. [The RestAPI Backend](.), a Node-Express server which can be deployed to a cloud service. +3. [The Image Filtering Microservice](../../../project2-image-filter), the final project for the course. It is a Node-Express application which runs a simple script to process images. + + +*** +## Getting Setup + +### Installing project dependencies + +This project uses NPM to manage software dependencies. NPM Relies on the package.json file located in the root of this repository. After cloning, open your terminal and run: +```bash +npm install +``` +>_tip_: **npm i** is shorthand for **npm install** + +### Installing useful tools +#### 1. [Postbird](https://github.com/paxa/postbird) +Postbird is a useful client GUI (graphical user interface) to interact with our provisioned Postgres database. We can establish a remote connection and complete actions like viewing data and changing schema (tables, columns, ect). + +#### 2. [Postman](https://www.getpostman.com/downloads/) +Postman is a useful tool to issue and save requests. Postman can create GET, PUT, POST, etc. requests complete with bodies. It can also be used to test endpoints automatically. We've included a collection (`./udacity-c2-restapi.postman_collection.json `) which contains example requsts. + +*** + +## Running the Server Locally +To run the server locally in developer mode, open terminal and run: +```bash +npm run dev +``` + +Developer mode runs off the TypeScript source. Any saves will reset the server and run the latest version of the codebase. + diff --git a/course-03/exercices/udacity-c2-restapi/mock/xander0.jpg b/course-03/exercices/udacity-c2-restapi/mock/xander0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..751c1719e8ad045dfc546810fe6040ab1900f200 GIT binary patch literal 4847763 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

~w% z#IO;N#?;#oU}tHVtFo=%Y^@TSti@(h6fWojo|fT#e!tZT#6{$!3GVqpLLRkod%9~i zn$0b7>`^5_kK%ldPz+i2H?a{>hi48a^R?mvU!9OK0LGsb?C$*lZtd`_PJSN4Xw}nB3Bs2JRbXn zsk!B*F`h(+IO#Y8Gd>^lHi*ja;#xbMXjqmVez7O7k?=JocHJv5`{2Jt#rcZg)#mn4 z{O=o+vioHRmPi{6tv@n|7#2#))KEKv!?|4{mVX_C-9~yaT%5y}k-y*!rk@u&t}quT zBJ-YEDZ|iPsQ(K2GCrRun_k&*=qiUu_s6gO6yEJl+xKYNuZ$WZk7|KmO5(W+M$%>Z zOBC+!$7US&MA=p~F_y%{^inP5XcJ&=QfsUU+|(fR-{&-a0()W4-iaUQGjtG*kOp{! zblu~!*frKZKyX?A-VW!zdg(u?pEuet<|;qB=ZQ9+3#QN%^Zm)^^!=w zj+7HM6y*nv-A;oGmqopM|9^mZoVXT319bqKxx4nc+ zizWuqHLTWGJ!5Lm+hu1)i94g5@dIgDXd-?sheQ6v8T2AtG;3QntL`5DQSDT90LRcf zgN{+Et5&Jn!n@~#_Y*I;6=4PbLUna(T~o75>yW=S1+&hsBCFvGw&ls_UF{J4R0V(F z(0<{&LeR9eJD2y1+dNH=5`!l|4 z<9%;|bGISx$OcFDmKA+`Fs1i-ray^}>$!cNclLpnU2>?^%_@fBYCXBa$cF+!K-!1w zjwsUcb(x8Jr(HAr^`Ib3sm3c7Db5R5CFHRk`v@}qeWg`=)%8`{+f{mD#57!H*BL)L z@B5LIQsO76AMb>DmJ}gDYXp4|&R&E2K^;w$@~2dlyRZa7pnbMji-6+}285B9E8|o8 zWUNCLbz-jiWJltJ>E4PK_)W#59e{Ld#4HZE89{hf$7j5Mjru&L zhOD8?jx_s10J+Ex+%wg;BX(iX1hoDTj ztAtW{uEcQI=5tV}}dFYp|xykpl^NfDkaR3vx-D**=)NWi@ZOM6cjsM1B1oyp+aea-CRm z2P(xhvlJ%3s{Cdt7-Q;lU3}v3bO;3MGYrb|kYmw>avNkr>UFQLr{Z`}l8iiVp>l3- zmn$?Gzix5CUpc`{T`$I3O)XTZUC2QaaL#g6cfM2O4tSN{LSf&ZT?)xir?^if=BtMa z{_358iP-VVBstiN9g4wV6^2xFP>fRyvt3YMzb|>g1hZlMeYuy8OZi5eWKKK>pSXZPdf%Y5kEJ<{?qx*D;ayRQz6ByQcB$;2!W82DZzmagd zgsr}^tUvk(vIKV$u-+uJJ&L3IKDB|3#<_J@--C8y*b1%PUwuguh;MYLYNRmTBL0Qz z4X#5`IC-GbzTSmJ9Eci@y+7KIF8k4-IXg-tu(O{sJaA>-FkH~SYCzClXPn_rC(;`L z#?FEdibg$Tn&7Vd^^dl2C&(INsFe01=NA9u-nMv;l|VeMHktb$VmP?Ad!&TqnIsTyK2M`b|KplJ4kN-@u~3jZ(bs zZ&2ZW;B=01`$sDUpOSI?Ml*L>hDC$=eql5^hu_zN*ODp8>nEvFwTg}u+sX7WN$q$_ z{nxw|cnoMqU+aQN$%jT~4hq_9()IiNyl^@{cKB(5Fs9UG^@sWXt8xR>;u@HqF*`sjx;RM?GH@Ek-BUR6+Gw8)$f0W9F z9cHXfZIkRC5#ZHVKNIJrMG46sz#C&$NlaeWl3$;D(jfPk5$o@@?u~u$`jr!@Z*YP> z>vCKI*)-fx0MFW^t&nKq+W-bGenK;TN0`<}5MeWh|K+(G%9shK}L(dH#LrgAZLxd8exa~j7~7{xzHwSe5~H)p3&qUyqj z@yy>OO-ah2oRDNL?$Ds3UGl0gy9mYn?*VJnM;L%m;J&=`V!*e1VE#~&&)Y_v&00!S z=1ynuIt;GTP9AC>m0rKUCn`{7AcZ0CSUgAw-oNH|#LEuX?}ztuaHm2X$Bu4j)4~wN zUv?H9f~-8L7=5@p_%IK>eGNA^TAL9%Q|f}a$qn?eTcbf^@yuMQW)g(+FP~Eb-^%H} zhg)PU%MueF18fXZ7_%G==nh~4Q`kO$3aq8DU?vHfaSJ+BhPb7eZ#*-B%evQ|PBuoQ zIM$ML8%P{p*r^;9VKQ5=kpqeM`4tQPoB7jMfA{O$0CSp7nn$I*=3Zi6Pv67u*9DTA z5??K<$p^=NKC1AI)_9M^pmF6~SEmb{WIwm`C0sL=uSA=gx44w!^!LjPs_nypiT6X{ zi$s5F5?A`J1g4V_bPcVc)YDfFriQZ#4o4ZrS z$l;{sIMBli`Aw(OVLcpoL|-=#fYmcm#w8^K;)@N&LtR8GBy_BPLsmdnoOix15~>!R zJ~s8%=Zf?^7sVCQw$t8ikOyEY-|^C_K=;1|uf_#kx?3d&Fe#Rab7U-{kTo$$4!~20 zTnAy2;pP+NQ+YsgdSq_6pXI>Qyj{SnzDLf#2IQUiA_kzHA3Mt@q7z=F)4kE}96 z1W%kSArLTN(m5s}leubC3qUpb3jvYg8*4~ktC~Ci?xW%aF)*Uy+eJ?s`_*2q1hi@B*mW`n(8%vRVv`%D@j@)4k9n9;zdHDw&!saxUfBo-;fy}12S`* zXHkrr!G7#xx$W-Ecp_heFz{bdWhbs{^Cu0nRK(!wixPls5QXP|wS8wn9sL>8QDfs< zl_d^TS6tzBi^P5J_raDhO5`&C_ILrQo)^2i9b+k-Kd85}dR1jlfOl-4*3jmAeAf$$ z)5910S!;7;7h8q`mkZK5+^2o&h@lVD1WIRj8}CuGYSb*~4W**)8@QhP!K~1*4deR( zH@yoYnd0|xkBZoEGP1v%k*KB(>ZZRmnVuQm?R*) z^6_zD!HNisz`P((D0}3D4sOubD0l009;3o0CD9r-v&@ityK2DB2r9QKUz#!sxB-a3=7d zU4DWl5G`C!g{Pg-1`7M8gw_lF z+2x$l_sKS&Mw}J5;7fz=0hwc4n2D7PBi~{I=!x2t)KZaMZm)8IKIQSpU_C%udgC*v zES#6pk4dwiJ8e~E0ydRN%OfeP4|4cEA87JA*wNXxvC7YTs8+QXDED8J9-R_+N#bT1 z85AMP1>?ZPH$O5bo*!qzvIfs#s!-*rqbD#(=QAspgPRP$FYU4Bqwh#KU_D3KO3hfo}xj#xR~ z_&Zogug}Z&B(I{K~XoJUkmK`eM-4$GUn2+l-)FVJn^eW2Dj$v@wtL*2X0_}(AL zAswz4ih8)e?f~afq*15C;no6IN6qMLKCdbK*huoMZIf8ax0eGpNOd0=c>*w0Pwo3zqOQ)GG|jfVFG$QG|dfzpQ}xxa&B& z<^{~xOUcf+UU5{E8%{=2y=LyYa?CcvT3~sE3xm!%^oz??X-(;a;xDKl!9#QlbPO6? zFPAS1dN|@P1u}0?7WhFNy`x{1pUZLoG5+2U{Tm+BZv_`SmVn*cOrN) zT0<2Us{l?CAHdSy!5t*V^ila`BLvPFZ;)RVL|_-xlELI!EPi^iXP)W%W&eouv!x~+ z?<~V1V$pp1ulU25EqF5bgr0cQWIxr@e|aFe{TMV;C;F&@=Oy049W(gtH8yFWF!n#B zibikG! zkaG4nUjnGZTW(vE01CA(X`J9?Kc4I1PJ!ay%8f%&nSFpajpX#BzE8t08C?0)(Qcz- z=)>cRtum)FDQ&v<0cpNGReQ6vCZ@52knpr2l8fiS1ry=;X}*v0^^yI7{1==pA4 zUrOz_vWGL?+b)1IiXSsI<^=J>z$pV+0%9m6f!Wv)dQ{}f&>pPc<)8^7S0AszgQZy6 zord~0fy>|q7O9>eH)+T1ydJQ5cY07_cS7W}o`dH$jq@dCIE-*fhwBJzr`aP(c?=+0D;s7ya6WQJ;KHKle)nB7hTk9}57iNH9;xPi-T0->l>cfj22{f5F!4Zi5@XGW za7a;|dM;48)8OAT?~C$_CHX^{WOvjp8=2Bo4~BZYMsz>25gp_8|MkCwdI1N0p%vX$ z(^5!WKg%DVX@0H0;dOw&pwz-!*{878d&t>fLv>e%;HA(NzpvEy7kkYi4E-BLNb~)E zRb7j{;LYcx4l+Ia;?XTA<5Sk79r!q>Q1Y=IrDMZD-g)}`mG8S9T0|MF^nP>UE1)2J z8AzXGv>c#w4n9Jzak+Is$BZ+rfJLqh)nBlUZp5?V9}S?Cvo7p@lUva{>7*B4S=Y{ zXs8%J?@^wPV0Mh)%CIx$4jm?Z4_JiL z?9(0&F?U%NHt-B{^8qYGc@0S7qNVLAw z9gAR;Jr4Ks{Cse&rEw{~+E_~Z=<5Lqb%&WfMa|pzk-Aa5!(1}1qpBZ!9j?;6JYuDP zQM%BfF3=E|ANlvlat+`SjeB~uqA6G=Y}R9T58L0<^Tgxc`x%R$UCekgUE@)C0F+}Y zPgp3UIFO;cxr!pX;0X0(Ht1f2)9Ad6u?VnF@a1B>N{DnP&{pW3h;+)>e zvfp{cF-_@g1{`C4Vr+u&N>*!IjCvsQHx4rk2iV?D+R~O8u&%j-+LQ248L_mgES;1=5C}Au>`7u{_HqS?cmNQ6 zrF`QLn624CYUHJ(sTd^`&9*oZtcN^Y7n7Tu$E+=80-(AM0dcEu8o9F32a>gLY&n!o~)Y{qF6{+heAp zs{B>+Z^}178A9%SXuihHe!PsKZ0+ZhIU_xXp-f$PcidcCL_)N-NfCdUf&l27t6*jp z#Gd!^`mte|(2yDQi}5?bb@M>vIKZeDq|`>|W0%1am7~y9ywF{VG*I-u%G7T=q0@nt zg$Mktf+ z)1o@~g%kxgrM;SR8?eon9{yCA^DY`nfewKYa_Yi*^SjW0Cp9$?!Wi zWjb*Fw)<#sY(XiU&20kGyqd>JUzIfwF+293(~-n5{W9V2GJEN5o*xdR5L?PZ+#v4{ z2URP~vQf|~Y1DS6`7AxBeU<{%Ctim0c{uv9?@$aJ<1*bL;Buv!XqF;wVA;;}z`TBl zU@*t$-3i4>c-;|58<*ouA5RHox+QP2UmvAMU%UXNaXq=BPY_)QB8p?sCJv{5Gd<<2 zMGlXMp_?D)RPbOGS9I@k2Fh{Sg;AQBuJ9RpEDuoK&%xcNd?wDVAQhCEEqciAouV1; zZgV~c>>Imb72Ekm|4=^-v`xZfskxCz3u!e(M(J^C3@{cVQ+gw-DwuJSB+ zeGkMH--xqDz=lQ9?)0E9T+bMRMo3f9YCuY2vGNURMrYzMw8rK4Oj6LUQ)_3%x?| zvVsgl3g@QaIRdHRUN1Q^GuhQ+g~141G80PRfX5xO zMyDGQN;E>FXgUlFhroS4m5=!W{=jnXWVDg_nZn51XFf#CE0De*(0;r~5u6vfi#&_< zY(wt>mH5 zSVPs&U*2}+8q9^j3wV5cX^!*EF8ag(b$LIIa1Y-7n4F@K$;gaEv6PW6$8~gLbgI8p zCek-!3IHvca6Cm%2-v$Ldkhk#lnzgjoax&axC&77O%W@5QJwyJN^^?}5vbWa<0ppJ zytc9;mY@~7z~$l+OQI`)BmW0QuDxvLRqH6zz04K=4tqQ+Gt=?W%Lc4?K+E7w18*I| z&pQA`hy%q@xiPa#tKAw#6Ct9qc)nK3oibFe`4rdFnt; zW!X!RF+nT5dH%&zEEmO^?t@4ieiLNgj@g4L0p3{$U>1WX?go^$E!tUHi(6Ek3H?|FO_0l6OWh;+&O~b-S_35s^x$nHu73j2=rBbQNjxB zSp6yW>#sEba)n67qOQ^1ABP)I_`K4M=^ACvl=(aP(hfF*V?!%g{(<(k?Uz}UK3_NMHTjjqPk$aZx09}!!SIw!Kbz>Uh1^@KSk2&% zPN?&?%Lop<3F(u2V?QPmdBD!rr&&5bn7NmQGw|1=tRvbY*S7Fr*61rNp1;2}Z~n>Y z%6HY#^^Oay8!(D?Cb_z*MPXi!X9U9cnXSE>r#aQRnhV??$=OcP)I68mAU|u^UJUVM zzA1PIn;eVEFB2-x;O&L-xQpgdP;y@Rt7fl1%xZlY$8jRO#HH`Bz^%Yh5QHSKU6CD9|xhYG4FFk#ml@fE8 z4MkneqQ;lzEug|h4K{jzlbII%UKX$-D5cl?%dUj#uUPtUeciRs&(Orrk$-z1%03nC z3QJLh5OnGOTcho+X~2#;cfCFnSL1E`Ey<5gsDV)u?#23D ztB#0{-5h4n+$KEdq>26!P}2)9w-^)tBE2h_Wc8o-aGM$PimSuc%kg_Dteef(IE;OJ zd^N6kXSO(1_+)mpZP)52hm_$rcg@ zme+{KzowP;4G3VfE}iLFkfMYi9w2N`}ut;*8G^L~?Xa`|kZ@+unTj+2q5oUYNL5(tF+*`^2c)?k48!4*2}# zz;>+~mayhD#sTm@Ia(oMv#jlg|>oul)ys^Dqc*5BqDYjeE$B$VI6k{eQ_H=mTDc4REKLwf1_ zNBm`X_Fvcgvgl}S%nL2_yrg`pdxJSHQ%^Las#wd>cwH$!dQQX;5*r7|0-q%4J|f4* zaKB^A)#G36#@l=;__PO=2#xml(zMWHcJ_%F@N+1Qdnh{tj@&Itf)pHqHB~8?nJjWo zvOShrMyYr9xxRn-DCA9R$WWWqPp6p0vEv#O=%pw|x%ubC0g8beZsb24I39;>}gQ zqpD}&k~kb}4a;MZ<30W+h_Ji(%x2imo;`SF;I8PV_FbJ!1bpsqMNxLI3EsV3bTY}K zds;oBEVmzD+zMczkiARVMA%CjB5ytt?h`tJyO3wWq(5~_BhrLXSN4E0aZqSD7PsyN z9M6_mI44Wg&#Rk7c`v&! z-XVWk=zB#9uNR?(FPwjod6dgLr*Vz^_+)MoSvl(48hiW!qQ;+$F)AW~Cc<|!g56-f zWY+pH8R~FYpZI>PC89&$m>Ei12#b2;g|)u1_d?`YEYyMplK~P|tKcg3I{gVB~F7^2k6sP(fBI6kywIAbLineq3 zcLGBw52_gfj*mF7%PNqs;MMn3JRHexv&Idq9tQ+U$jK<8)TTOQR21%2?8|8PbO6`V zxwH{xi%8S2Km&eZfXS&%fW!9Tv(|DD8SWn|A$&-6XyB-DEY{6cy^p zGstbYF6+n;K$?ZCBCZ=~J9&@-BZnfH*oed|hqdq$)91@s0Bjx-G4oT5Kw;|1D=>f4 zmqeH3{AYr}%t~*odDm%=)S;aG{gP2`QadUmxNm#-VXv+tR(KG1CvW;%Lc-(-*DSbE zB;JDB@A%$}xVIj%RJ$NE`bqd5gIzA7B_!=xRqV_?9Q8!0_${cKowB7iNpFi<~95 zBPkt|ZDjNvra~}YawGxi&D+Pen6CWm4%dmNtFHsDSS8HKE_cP245vY$Zxg$F^N#1Tk)%a3Cf zAk$o2Z@IBi17joL@t~N~iUsj4Ii^GIh}79JSOIL9g5X=KlCX_D;9Ocu%5{Hls^Y+6 zSo|taz@t>(IBv<^iiGU;{IR9Q#Z=PlNcWBw0uudqgv)ACJ^M$9uYtoCw*Y%ex5{KC zqSf7>nEP**-34*GPH#M5;qyZ|5A;Ac)O8{2ji%;h`(~xg+<^YjVt2NVVH=rOg@{U3 zqG^ck;&AWbpR9CCtVr3r-gF<&flA{5_{4?Bm;}o4!Em~g9v)~|=szleQLkKz@6eqj z^LM&sS_Dq6>*O1*gMvh{Uc6Wq1*(W$&sKchS^TpB0=?f=pUd81heJC1FVL4`%ADc$ zgjpUlx{0wJFJD>Clj#@DpAJ7t_=OWu^1vq;)@|4lSsFt;Q^Q*Oa1xEMB-*(Z*iZNa z5BDi zOxNQW3HU5YANv}k)Q}RpdB7d*XBvwI3GDAh$-XY}x~TGzcTH4%cWL^(UZ`*zHfw8& z?^nLSqCgru&0Z{@x~KlNJ*y_;1cR&*-URJXiD;HnhbH;O7HVe^6{t9ZLCGJM@;}U$u#=kCp_@SWjFPHt~&p!KpEvZoV@#M@;d_sd2 z3RHmc%RE>CLH7_17BOKp503T3kV8C4D-!mdhFP=bUBchQ9uN$1OfR^1I(ZIztHwf5 zGTHjfBAS}_FgZYi_!j8g{ncT`ySEqD=>@OI_|P8EEJU4oxdDaY5v@827d&Qmq`?G~ z@fn~rxs#7mC47v+zDMFEJtL9;K?~gOjF%3fkG7e&nTpmO;aoTw++XTuCPjglVdAzC7M2S=bq3!AW0+mo$l56(Ot=mN#D}&ZP7jiMg=z}(nU=5 z9yruh$&`HcxM8&`eA3HZoGD95XG{#0$JAI^$cZ>Go2}2d2q#g%{w-xzlbb@3J-+ zulB>I$LhUd{({Dj{R_rm1ab}orq`KY*ZImKaW7jv{2B+7i3cYJWsezmC;yeg?G$`c zL9RoWXrzSgI zxkq)$WhT3Cmb=GhA8FPDuh8?pe!Zsr9amQaXv}tC29-@*e&<)=?s%aP+qRnK;u5%G zr&jlX6eYfz=!3T=2C%W79A0;X(6$j5gXLq`hH&9_Et-1h4mEf}{x(%C(7%lFIe}*i zpf_JD*VKPSFKH#%N7(d=nm7xlda=X%U?upudm;r<=(6_u*y}jgp|6d}{Y@f&QmyyD z#`ad30a2dm{m;u&X>D~o2q)U(rW0tdAx7Xv`(6hxcTS9%1cdfJD|n`zuv0ncFzfx4 zz3S!8vwo5?0;a9Ye*b)$ivduvq|guE`!+m8j==$4JHdRB2mpPLmW-14TROC-Z!e;Z z()mu&l4FZ^max$;aU}e$VGDYr`ZEc)k8b}|oP#bF+y(iQos~wWhkZf!6Id;aITrMt zRYAV+_P72z<%bv0Qi1ru7?+x+$Fg5w&U;QKWfv7^0tIzLsYTL9u3rH)q;N>4x;-j< zSzmcDHqbUAD(|f^r{M5=44&vK(I+w)Vbj+rwlnC^FUOndNS0qXzZw%YK!;vD-Ed3*0A(oKYRrB?*8< z?j21j@$k4vl9MY8;)rm#^|}FfI%mB)u{ft)lpae4$=a=U5w%ev83{0H{?|jifO2Vj zqGpYfnB8xFZ(^_%J8r+1mGG84rWv6xT_+ z|K*X~FLa2;_g%&~&O5pBrY>n(lz1};WpjMJ#qETt6bQt>8ox|}T4o4N07>&6%+Oi{ zO4+MH>cx2xqWJb}RlKOT6l}M`W4u^^G@3ZwbqiP$K(VbD!9R{1-0CL^?;2T3Km7?E zKR)8^&j#~$_SdALi8u9mIiG8kDL{SnJ6zONz0#j914;X1iV=Xn^dr*F*fo;QZ+N=k zkKk)#KTVg@g8ZssOa_m@ZsIrXFJ; z1Y$G2f}RqN^znhzWXHO%4gUDea5Gy+KmokOo$OHrBRiJ4vb}@KTO7WlcEaMqr=yy2 zz33d9TMx2KfIgG7d4jvowBl*v8B<8wuEE(in9^VUu|nI$4-LR#5zZPF$3?4fuE(_u z!kvmag?57VA{&*cT0Ve$JJA)H+G5505?`U>2>|3!+hVDJJD8K~2m&+#m zQI>JZ2)j4mFba*NEBEu1l<374ikV}61^W$Fu647w^81{YrMR`X)ijWh=jp&@#w&bx z>*uGmLv;RggcE(g&$gppTNVV_CnP=KNsWG}JhyLD4rCBJkLE!mGf!&;Peq4F^36BO z#U4I|*JTI;;<8uQSw@C4D*7pUbwx%>4h5Dd27o*LK{yR6D;{>2yxRnp^|sb8C`bvY zB3(-(F_}{0A*?bbX8h+^B2bGf6#c#0wm5CLpP-C7WdWbO-z5W)*KJr?C~~|0^s_)VB;)zODjvT!&Y@{KJD>$>_A<8`F(!C zU+|(TTR5`sFUBX3qvY#=h)V_2W$IDCGAlTTFp9u8rKYkTziX#Sa}P2GmR<+b6L?{q zakSFl@MQB(&{c=;bsp0nWRfMa|GQuNOqjjmC$w7yVes(*+(16Wp4{z->Ezt&C7Cca z^({l}78U1Dle2G~`u^I`1=~QmSeumDXD6^ru$WQ1I1{@d0K!k;!4Sc`^fQar>DhbJ zV(H)jop+B*RS@?pGN}*F&}MVIr&v~CO!C-~(J9{D@7`8ILeU7&x)k%X*!kV4GF5%7 ze5w|#>*WSS^5Ik1lozd2NW%Y(chs%5HJW2AeO*okh0B0+LfIyF5My&48dhOvY#(vQ zCZU6{GbTlM4B3Y=)dF~u#{)P#yivh10UC<+-aaQ^aG*EG0PuxezD<;i5tpdT9oE>G zUSfzC^R)=?@>Y-%o`Pu|)&aT7ntx~ORW!k+lzK-85oMscZRtDBn)$S! ziw1Jw!^d{8<-y73asiyG+{_Z_*flTrE2_GYQxb$y=LR``rDY=V=ra&bi8H}^)bcer z4xbj|%Tj3cfoMOH*aN|aNTh_q9FI>24)NZ)9n@bDZQ2xxC*BIzGpP8DbVzuzr5#uQ}`pwDDQbebb@$rZkS# zuE~(Q1QE{AKXiAAhAYrx-G`{1%MUzW_7N)OPlR^ZP#|*`d>_X%>>0f|aJvMK-TW^X z3$AjnO%MLCJGr5B1Nf!T=VA$Sy6UF0WZJ2-=|42{p8X+aJ{I8vy052~TF~eM0|f{H?B{J z*t8s~R{i@Z)ZFaxbkSs0IS4PCo+)^mZPYOB&z*znJd7ZXX~ks%B>jp1?e2qRsScS2 z&V|mAMvJ66Qy)$K9E5DNkEb#+2b@UO_6-YCGJjFlw?mwOl7s#HjVtBAYtX-thrp;e z#ZLAP!gn)pea|T>meRejqTWP|rsdJ3a*3&xsM_ zA?B~t0BWttqQ$(skN7GeF@wf>@W^A9OrDRkO~=o-c^H{Iv-cBXPV;;NA&32eU@2$hHN1SPBzvN?jM^!Xj3eb&*I@hwi8CCvjK?_gOHx9~8 z^G#w;cN^WY52(yli!oeTPl2boJe-!IR9uo6DP>ugSdmVM(I z-wTSu-3fx$z+ZWFO+Fs({~~~O%9r-ldj4~1=@?hSVQMeHPXIGHBn18ly5&NKu7}`4 zMO%AYmEOeN>xg{5$8G#S;3D}=VQ`OphLe5%$7KTZnwd+ug1bUzYhgH z#zAM7zzmp~Sx!ts-cG3kDxNqh-8yu}t6EmP8sN3)jF#GHyvg|PdYiia!2n$6_Q%Qm zyVKt(_INNfGsX_zr=Hq+Lh(0@uiHHIA)@bEe&MC0g&ps8BMT%s111QP3+ue$H<33F z#@=xrAyB1P_gcGU360DNP=Wj4q!QMnm~cQRxDVRvz|2q9s_4q*AK0JEd-6cpoHDcc zbm}x*bqg(hpI;TvC{X4S&2BRuolU|DN$DLYGX;FWp+CnHRnDInd zPR!nZ0R|iZkG+(!nwe7cux`TnLjFPQzg@1ipsis`8LaTIzW`+u{&oUZ%jj~0tK-lBAq}w;e1x*jaIoOX3WCUNyBu;AR4Ix0rYi(_T4GPQQM(z%IWU zlo{mAp+gO@z+l*a-UT~xG2;6YD@Jgcm0;bbozw4Pi{ByS)|;ueh{cc^Hr*{)IzQ%d8J1Ich5^x z@H0w~hvWfT*!lb{S~$*z$6oeg+;Hsc?(uAnthl*60IHO_lgh_Pjy|!V$IU;4s+}rYl_Vbs;`|(}f zgyq7YFjj$RXecb!EgF{wembZcKpEs`hWbYIT5DO;WW(BU8Ur^+mDJ~mFrD?7py7ld zC*)%Pix2T@jL)#_TDNXhU)SmU_J-U?-Eo_>9ci<$!=c&mGf~l?jRW^k^R_91PtmnpF#TkybuM0Z#;wuW1l1Ev|dgu77b6gVkh39-P^ z_+?YWy`6XhmGKc;DuXnAt5G9BgDYJ(w`&L|y^w|wLtPa4aSE<~6?jD(oAX&_(a@dE z7tz8qIfJ8$Kd&&E{@MdlqnKDdKB@>t704C#1fI>x&Tim)WLM$SJ`Cm*|BMURy^NXk z0;e!mKL~H>dIrMBeMO(@{KtasaC0b064$o%eCvzo3?d|$ezlXAE{J?fSRW_=4%%!c zvMo)M-|zj`8<<5oO29okZR}CY6v|Rlh@p_$0HD?7e4pEGWnefnN>f| zVz=USo57GWQKzFyxFMZ0u4IEGg%G)tq+3(Z(S`A8ZY8VcN*r{J-mLvmbRSsvVABQ5 zCHFIwYyCuv#I`{#E$;g?CLKIfqh^2IIdD|R!YI;V!IKZHO zu-v7^Z-=4#(M=E`{~%Efc3I%?82Qi@#w<&!r#P?}_}O78`8~SJA#BfMDDmfbIxnV* zc`$LA8zv?14otpWt=k1=9N973Kk~K(r2N<2+8C0Apn~=-Zco5R*Pq|{_bBj`;KKQ> zx$(PvAf_JE!K4l5C4!8H$HdjiUzaOx8zI^Muz@c}Sws|V&9U`2vQE{tE$R9f< z`<&I&LY?8$Vaf!Ji9Bzf>b_LGRk^Gmk39B!NoE?luEvP^()+{XYwz42wk#0gCBq%x zZ~41e1vad(CjJTu^K#6E_)d$qD&8hQyS;a3i-(B-uxB z%i!{GzE0&(Dm}34R|M+AN@%aT+;XVhWm4Hl(Zz0DAj$%;1R`KY<-0GToC+f(b1^&y zdw)h$;8cK2;wzRc;hU7u`tt>;pznJtq=a$#vl%YO;b4~bhLV?C zX@?7i2)Lkeg9gav=@41KnenPLF(DMP-5zbv2>4;&eRQn{b91me3;bS2t+UjB_uYYB z=xgA`P=!N$us#K9%=>8Hd{G#rumF-?2dDtO=IE;471-@x0Joz-STl)u zOwU7yd_T7GrL_x=MVH}~7&9B5I2Wv{C({lFm?r{A&5$B@wkB={2vQ2xdO+jG^b&tu z@Mr0PL0rC1v=5gh6E`9#b3PgYFXZ+p9~*m7NwUiwTibCRiLZ$*BgAxXL2C2CYe4T;|CPb26WP^aQV%RBM4K4gn|UxsOLU1Gx9!y7HS9PG!xAz*MiGT7cc2)i3jXCGWoGJ)0 zcmV9uNa*{LGFuNl$0SE{ZmMLSaYYnlNYm$A>5rNpr`C%%@0>?4=yx(vSA_8_t z)Hg%P)#!st!>>bE?SSLYaYcIsSoEqGWL(nDH@LTDEd|Oy`nc)qTH-0^HJDw5{8IuD zRQ+25Fbyg;1=3q1+bXvxOid)p{BLW?;2zq@Fav^wF%9|*94r@MqTRlygeEY&RwfW1 zooWIV0Gq}co(WQa-1)mKRu;!S5H~l_bXZ_?*D}bzp81Pk23QYIRtCmC_Gz5`+Nt7y z3^qztI1$XQ&dUZ{-_qj(r2fo989oEa8j8CfrDYk^?5^;CAu~gJ~`N* zcw~gTBQja@#d7Bih16<{r7L~2o^K)ZGQ|*Hdzjs=40{c9dfUm6@w_v@$^7D;rAyi< z?X2a^W%99$wH%tS)LymcapRAd{V6t9F>-a*Lnd6_mf}Pa@ALcbO{22T9NItSfSn8z z8i>Jm0-dHHR}-&GyB6k#>@dQdf5&c1g0&>--~~^aA`M znSe0v++-Qc0qzd{(O_M(=%d#|5AMX=Xm%ER;wo?+kFVUjd#A;$20_!?cGT3C$r_f( zpB4FK_AY*JCBs<3xn8Hr4P$wK`F*G}l~F?L4hJ3G4)y81Tp&R!L;={fM3L zw@}EDWhW-GZrhIB`{s>$avxP;X0UPb^hjSbI;&K4MZ0Sm1sfYExvI#QKb_+MsW_y!Gt&gp8luabKl&20ef(< zn`-Ih62j}mvUd& z`D{wU+v~62eY^(}$0DzH$$m=05f1kBbPnRv%=ox!AmM9`pz~4X9#7}a{Lq*U-Y9EZ z!~C)WmFNoKG#SV1t@j?jssaS5*0s8`8D_)fAtKHAy=4**3k$iT6m3qIV>iHaffg;< zib_#c&+@pqJE$L#i|*H@eq>L4DPTnSK3{EpoxIZ&@1CQ~|GmTU^L76IB;JM&I{oDb z?}!bai}7OzPsWe4hZjEmJkVsCjHW1S5#Bw!9NTq)p50X5-q|?6R;c5>u<$wmrTGk3 z>XW?j11mZpjSJypQD`q5bKpFt71-Md{X%>7+E_Wel6}C@FtP(d*%Se%<0aj@HM}Y1 zuPjfdRT*@KLDDS-3ZpF3Thn4IKm_N9h61AE;h$>3;sQylL`kA`DW`dMaVtkop|YMC zMqsxz4w@45nYyAAG=7BdA^YG~3z=Y~DKsdiRSh2a&T&D514G6Oc@C1l#}Xd<>-kBU zAMw?7U3(e2E&*m+CfZhWQxvW_t88yk162Q}ztJ;*a~R8&1w=<}j1U*q(W%<9N5XV7 zbnVh~5Uy#u2S~mn-R$nGL1~4*AX zIi&mUgk&;(Q{xuQ;z#jc!su|Jq|qLs%Y+(c*MNQ9*4Q$cC#Znx*IqGH5^>#Wfi;G= z{#%#2c{x>OaU6!n>>Fu6=of;-)BnjG8yPe>+P2GR|Fir%%pW_id)}fuj1ICjeTjNm zcX$H#=u;gK>26*Pnt9s2#GPXT%VO52nZBcahyjcW7TpkEv65KdualW#+K9dS8Zp4r zAIJy~6S`;`;A7YqqQloyAk9&i?0L1j*IyugQf7Na*^e23#5%iY!MIFo0)&9(F+1Dm z+d_;pU=7n1zjdFN3e_(_Ppe6Wmaw$DbWT$z@g9q zc*GD~p813sd>7`P<%LdVso+YKuPvznX|S#+GF z_qnQDXl$8^%Oev4qNrbR$fU7YgPcE!ZYiqjl#5u2_Vt$Z{(%JlI>bq!MDrNqt2=8) zHR%`;8ff^8iQl#vk$-thvLSh~5fCJNHgt7ogCf0@e=ueDHd*TL?%2+tN(Oi_p!AY; z-@L@b)gk%wngbat!I$%cj(6!M=&=#{x)spEb54{nH>*}wOj~U4ei^YGA#WgM8lYZ^ zwKrKrdeC3@0_3hl!J`T0ZxGL>46_>xEZ%DqLa@m1j`pRBcCZ)>hbO(H1s>W5s1^bJ z-ji+oAa;_Zv$*$F=4Rb#c)Pi}cskfuqvEEDcknA=lC=NQIY(MB${UWoX9p*upn<3D z>j7*pq;cdky5o+lFCHoDsc$Tu;pc?d{{uj)KLLoE<6t{suW^}Q@PfhlBi-G3=MZOF zcpRDjHnM8(U#7fNOdDWA#PLA)`ttPoPWx1dP4xg~)awN>DuJ$JS_N;G1#Y+G?mHloW>!5uev33|fr$dZMjH^+&(^Cg z0__JxuHlw|Pi(RH;TqFujOWV;ttXPk~bDo z1YlLk3$dU$d$$;sCBEaZcz8spWq?-i?nDv)&iAUd)?tDpT?Wt`l>UGQxJ>$`lmYF* z@z=NSW4z*mm;%J25k&xk?OPc-1&&%5(dO~>NxOtKMD#%hZ2f? zm}guK+I`#iDn#Zqi{URHXl&PMFL{k!WT1Nxq?acR1_6cfe$>!yrz_k7hJtI_ zpvT3$r6(?-;k%dA4+sT0z@g;+03=<|h5$WbNt)_c7NX_G?0y7>vMh##4IY9Y-~n&P z2etR17JL7FdAejr`u!8O$V5NuE6ZTL*cPt`G7>}mkidVWh4BJt(Pb00o8({Q5}ihj zn1gSSv{uEn#6AP3^gE3xpdYHR*+hik+~p_tZvdcMZUu1bE_6=uXhvd>n!0Yo#C1yy z?`?trgz>WlM1;FA$JYur*8B6u`{!9S?hv4#yPt+V8XJ z-`?)}gD?#o8kB_6!_H^(u?)c-$6K@<`4%?q`?3K+3s?ulDN22~1X{5V{;IYIU%CrS z!ul(*-psr0OZX|$QtP6IR8@5rIJvNP((Z)2mD^|W+r4fgm~ap#w~Mp{4-K#>F_;(SlCDUYA(DO%)#qajn1`;AL(kLJIyi# zF;|z{ zvV{X58aD(8dxi&!v}`KkE-Rs`WiDe-UAOIWA|?p#XSz_o z#a`F_EivyXbY0wn87+gU%VhOw_sS%8BhkPJA>Bx|xI1xga9>UZlRuxw)<}?4StxM2 z@%**!7ZGD&d?_gJim~PCP!S2bt9Ljf1SS>}?WJQ9g&iVi38wwck1;8!JaOL7UDl0F zC%n@H?(1n^|0&qfTE|>xjbCxD!H-Z^1VW?z?pPdfbIZs5{Ob$KS(|?xoynS_TDL_X z$cEHnQ$?u+q!xNqiqxe7PoFcgbN|NuPM(ty3VW|L=NQe}tY@rOk*0f!nN;(?b?dND zWWo-?3W?93b`++j2n4U>2lDTJ1y(jDj=l4F-Z)6DlO4j{+gerOYVma9QU*WYMJWbD zq>lmWdl4WSxPt_pD*~^NYM)ts%Gq+}Dcq+^EJx_g2`!2o#h<@Fxt-&U#L%H#T+XM}YoV9BM zw5YHFB#XY#`(@;oHa!5&0Uiah8F#M&l*6b9Iw7`} z=jGJbk9+($qbe5jmp}iBC04*xX$E>g|688gFe`vIg>#iyy<*+`}Ve>IY0caAFSkr*u0D%zdh^TN8^=R=o7X`;?wktavrOhS+kE zu3a_mjj+O~ETzE_kTDNO&}B;yWL{M~V}1+lb3gkrpv^jggzKcNcxS$(N;MhsHJP(! zp9C7L0H{{TNqdqOxn{fWtT$x?vAEKoyMG{_inH?TnNn5kiV7N&I4m0WrT?nOOTS8Y zK@Y(%?uh5qMwbZNMml;(_natKfPuXYYmB2?5VX}0+!D5k_?V)b;A4tE2Rpe#p8tu| z^%c|1{QL1>mvek8XxN}W|Lyq+EPCH_WXrv7eQ^Kd1DH(G=WQL!MGPxz{By~`pYX~N zm@bLD`BXdC4!lq1KayAeyzS(evk{Z)*!S%@C=&I=@-OA(r&d=em$z1qQRxwCsX>tF zZ$Oe0W^iep^S12G!)zkiaeFh~g}PwX=S&583=UKoLiv^G)_403x*}%M7?-QO#CRWTDKsB`wI7#`vAwv$0!@3;a!QnD~ zy~bwdX*AJ#JKaVejOW(GGVZ7mvq+}yqz^5y1*N1w;|kH|{Ic2>Dj?@3^3 zU~()Uo$;uRZrWHLw!O_uen^jpKfhx9txzsAw-7(D$ohf}@ZIpDAl1LW1ZJ@Z$9V=; z`?KZGA~IgHJ>BbA#!o!>7`V5S_h2LA);Wc0q; z@)>=+Cv-D^33v8cF~C<{Uam`gkUffSH3;5ed~B6#_}iq2LI7ro@uamX1u~Ko?hj{t zt*@_hHgHpd^2Y0Y+JSwT6sY1IxC6W;w;XoU=~k8(-e?!J$A(df4vj9rt78B$`wZx_ z#pfyuta%j;L&3p&NL5pWa@@PknXMQW0=L~uw@Am+d^O1SH-D)!4 zLRGWr+@WIRVPAPHs^BQs+8H4&h428+VAJ;?qJ-RcVFl*R_VsgKf zkRxMD(fM)K9{S%aF2CJgnMN=dFgAEY{Hkew-J@1E%P4<(k7tr3*r81-e}{zoOFR$V z%5HnXyDwh4Qi-}oIH3n?x&IO@99#oY{wU=bkeG$ow;MJinOR*=V#?yW#bOKcnlLS$ zlJ;sSLLp1Lb3aziivzjwc|C|`lLQ14r?^CP1P11|z51qLXnn`v5wy393afU?9j3ca zOi#^?--d>_K4661UroPHunSHcJ-OK{Jf1|(C1_~AmJ=Rk+PcrKfpC(F)8SK?shTnI zwX9FC`W`Z=vwfxtSjbh}`t&@u@$1KVd7V;?5&)gM{GIvx`=;D|1_>l=J&W{R;QL47 zgsg~;L&c7aOnptl7zXDRxT%k(xvWo|hPQlQi7x~Qk%n5niEhKHtCNGin=7Ap3k#Az zZ54{9w~m@e_;q$ottLa%5$YmY=oc8Kz$Exx0PD;jHj=p8l>l1^2p(+H0Jshx)h~}_~>Rn_2U{A?uPXmP8+);Mhv9(WqL_dr(ddkI6 zle;hh9%FZmlGpp-q(%%Zv6kOox`q4LuBDu7ipS-YaLOcN}KG-H|zD`^E|a z`hGE|cdB{rce34)m`Et1q{w`;F^3)r<25(abbR@`Cz?APpJLPE3bnMh(~dL>R@h{2~Fv{ zr@IFs@hVLq&V^NWoaNF5Sz|OmP4E{7$}ls3Bw(y9a`@Ty>3PXV_|iu8)sr7-I`-No zXO8$yQskrvo8oeIy?&Ha0EF%p8iZoX|}F=^;7ZUvk}sz|MgSct$t+b}2SZaa{L- z@9iS>Jp9j`xr+LYNx{V>WZ*@Ll)eqOt2;KQ3La3WQP8D#1^jGs&dJlER z9c|v9M^3p2QuDs=U9zaT+1)3i<(C|SVyyn0RN}o0reiX{bdVdtbQEVbK^iJ;5aSGP z(UCW}T<_em?r2tZ&})c|;d*==%S%ZJj7gU>isAPUYL93;nLpqg-bhFa0D0lddLvZF zm3WSM$0*?%M^=PW=})cAv^((yeD^-Y)h0%Xdet|CPyTlDeR2L;XVok5pA|%S(xl7X zV9ieA3ABJFx_e5PINUh-Sn8-j+7G&nB|(kWz4To)@TaTqo!SAZhd#TCWz?CIZdtg~ z_Mc)Dg(^}JQ%A0@xRu2whl=o;Q_azbY6b|RPS zr(k(L&Wquw@&mbNJ{+3K+#No7vN^4cYK@ma4Ic2W(PxEA))_&OE$}A2y(=E8uO0mn z75GNK3vtUbj82Ac>XYZ^=X=@W*Y}K1!cj#U0X660E{ejqmrfvzaB={YIuHq@7ZJPm>c#7VecbE!)0DvliKTXA6A^yiplK)OyPC# zlrwXcdZ7FcL_I{)zAf%5MM)6v@7U0J_9A^x4}3rHICY-4^LD%b#;QTn(F+J=+YB4kBl@W|mgl5NA!nv8_H zG;C`d->%qSkf659U2c7NZjbnmzv2NcNzkVv@&klE3=p@Vdm6zqq7Ld%JuAgm1VC@eUX^Se=Sv!xs>#Lrop+-K@c%nsO4QU62yyS$i7>)+?!c>|{bxWd8( z`S*MIHg`>|tpw*TkZ=d?O1v?T1+ZN8rA@;-V~>$TpQ_G9woR(V7PI|b6LzMG)qFU# zp^i~TjKU?YTyRXq@nu-l2F-2}n+4B-y@Y}n?x6F@Ev#DhF; z^c#0kLG!#%nDCNqtd;w0JHGjKp(;Pt)tY4hE%{=PUCpfv;h75$EfD>E{e?{T^8tvUZi?{8|-cY(#tK7KXs zOErxjYEydixFt=TZU;ADWix#RC=RI?(}?8(8?i%3XE;%Mh=VK$E0gC9oXuIc{-hF@ z!x}D^?1N|RF?zk4Ep;LqT88j>7t|GZVH%%&&gT#Al-bOv*{TAN5XBH8r`J=p2@-mi?m}e9KWpfy`i%bP} zf^4Ohmp!NrzHW;LD;AN~FRz%M<5|eLuxfrW3Kk;5>&S$Vw?rGFjPW+p0 zl5hc8*IIqR;Ij@iRQ$s|V8d9&oO%?fzAhC)UN$$>)f*l_JSq0Yqrw8DLw*{eD59e0 z!MT*5cCO^_8LQ+Xol(p@c+E<~thm@~KeLo9-pB+<3VA-B(a3@y>9ljRi2UTB( zy1VIeTpa%1(k@`@9_I8<9BZLtPJqs{3d z{hi5Mls0F!jN4D!to$t}9$z~x-SUY680yNGVx_6`sIO_)eGs(0(x=O2BrC#B(4BO$ zxqfgKSg2w{dJuf?leDYsMY*Dls=n9tbQ+)pTYB+O`J#{HfDm_6?Y=l#;+6ee56Bst z;F(-`prja=6X_38gF=w%mz~9z@Hv55njL}A|4=>y>M`0l8WQ)Q0LaUo(hm5DTuY_g-e>Q~qXmxIp~ZAiva~j$cHt`i1&STc0CZNGna_u1 zy!`FCetERRs9z253mRhx;kW$hPFw80hFKb5-|{OiH1C=ImOu9G`nuNHE;{srC1wY7 z3f=gjiKlkK$P^kmhr0*EPp+FqsTFKwu#%w$h@KmRg9OLj=TUaKy>uCcQsl?E_i>F1 z2xx1JaxJrBt&jeO4^euaF!lIaITNKikxt#WKHq@Q)bUZn;1bXaCjCs`d-WNamc2>4 z>ETEdPOkC`G{){F_~WKodiWJvgm@mf=X6fI{ot&KhdX*U#f8P}4ht^-`;2SJWMZB1 zv~uVvYc@{5jo3(eXojy-l_6O{KUNx?p`&hyUGYgJJa4LF09^Q8MO^kj>0^$FudIm* zVUtP`MS&Q@@gc5-eNMg4w{ znlKtCi)?R%(w@)n8SsJ|mT+~~UWnk@TN978Yzm2?`?C$ZL08Cf`=>TAP1{|h zg6LfetZ+d9!#@a!oD#NeRuBF9E?9*N|2PkHStiy3h_ZZyHL5v7=sADu7FmF?03j2H zgObD)j_^AZE}SCMktn|h>kTzo2mhnQ3LX3`Z*?vGgoJYz6w)PRo+LC^ZS~=H(R|Vv zhO2w}dK7I(J_P0fgs7W?*wn!wML^MLDy%y>37#d; z=;0GjO&&Mvw}AgZ{Pa$L&-Abipqr3n!xf{q>?T@*nC7HaEy_2uZOm|+Wbmg~hKb=W zN4yabOwV+OFrRTr+(Sz_c7~12V3kaJwR=yMkpAo%L`y^47q#LGSrX5~LusghQ8p9V z#Ww+v; zgYX@D@h}RNv@Guhn%sYAeUW&NfRkrDdMG6?RXGX+5#}7)B@>FMyb7mRSOiio=RJE47~E ze%b@#9k)%34%01gz}ZHud=m7J$?napdUmNXkz42(DOx|fk$$NFk8FDVacwWZ?E;qCZy9In4@s$60MKN5PbV^s@l1~Yv1w@T&7Pzi_#>;ftDw}#*gKE+na!2{MYa5? z-B%^NBKmWte*<RScNG=%s4bSN_9j62`B$WdCwOgVxy(H<(M-nO z`*Y5lzz@AbFjhww2iQ@Vo+Wah{PRVHU2aofv`ADu5d?_ckk204gg9PtJh`z-Q%g&R zsQ*)Mu&J`CqO9U%d;J)c_AFvxFFWn=*}Fv_d=T*=Efy-^%G^821EfiZ8Yqd`y{@*- zgj?wUF4c=pl7)kG8Z!mt$~5PRIrs)zLSZk)4G+Qw1(5e6zC{EF{6igYsGnF{){EFf z`WaPtg$y~|31e7fI{P)I3^dgg8T15$)9@NZ=eDIS9E%l|0aWPmJUX7|!had59BBCb z2-X~i%C%!Fp>iPG-)B*W<*gC#=ShI2#LK}@-iDc*fh|5yv>C$;f`|O$-mf7Rwx+^pC5indE$LGcse}2H2jj*>oZ;&Y&k*k)?VxNC{ynB1msTg zzpdyaxKt+j(|Y03H=hwA9?Go3YeKvB2OSXc0Pv@9J!OymKo&~ZSWW>r8bA8n&+MkV zZulQlK&=~@42*KmamJKiq`4noQOD<%K%Yd-r@$|t`-1Vr>k^`m@dLkoG-d>KZW1;~ zwtrv}?N*#c4{=J27i;|HQ$vJqi~JqYJVls(JN%Qr&lrtJpzDmjzu$HKvOeVhIf zyf@^J&-Umuma`rbp~cU0Z{W~QmToNx>{8*qj@Hl5{VTV+?b87bBBUhgxjz|`i{I>H z#|nrxo_>!r5Nf6$P*6eAnXF@l-b4I!eC)vNWKp80`=7e2cD4_lP>6g<`rx>IHUc8r!O=zLEuIFN=s$c#eUHM=H$9ID{Y+C zShV@#;hLWj724?Cq}oZ$dZ6-d_eQ`XzgMtw<4&zU3`h8xajYae+8jy_5-i9Y{oJ{I@wj^!&A!i1xxM{>O=UT+hfV^jj>I?m=JHlbPZ4 zE9eg-RO+GoE(q5Z*cpP(6Pv>xkvhS~onH)ZfX=}1W( zQ1Qn$+ZH{Pc;aJYlS0nVGe8xE{P^RWvVwswUTNEs3i{aNiI2p?n2BhK@YDvKr9jK` zZZ zh0t}YL4oo>21Wb^SGk?M_QN|U#jS?qIz^%B;1Y1O9ni~W`NR4f9(j1liW7{V`km=pToq>)0N4I3=ZDu+IL0Knh2lZ^O?uUy%@uI%HjLgUE$`H|BC@uMd=_pyLt= zFfm@{A6EZD=SYl5$MT(6In;i8)p5&cjRk{>oa0g*%vGc>b>4?;+WmQ zQi()hX^M4T*wk(tnK;VC2S?!VSyXP8>Ei-}*K>x4-b6SDT$P4K%LNz+Z{G1S2KP|> zq(}ZO9e(T&0pK7UCEPi`ydo(*Ysa#Ei%ffzciF57gL{Y3fd$&8z&B3D)uii2>#9PE zTKz%ih+eNxL71G%*Mbe{Nf=jM2xq)ua(U#;>u~yDjQ>+$ zj>K!R@6;i=?o~+<53xJKeUr?Xapv$X_T}0G!EwkZ!<5*qexL8}*yHnYJP0SmBD14> z!d*{hp6~K#M!wDL*$6hu1pZ^?__aUR-VeL#kX%#s6p6^Eiy`|^R~s-=BLX`V?}-=p z8=A!Vfmpko5ZIaiIw&r@wy}oTNCCD`)5^Y~jR#QADdso7@RmwEJ){mIFVM-Bc_PK| z0k%Eg5_%}+OsnU2F}QEjmSxI3g1-q9>)|v}eBxNO6PVCiDEqv34n_#d-0gDoeg^J! z6cO9kU2thpiv81K1s`|CEmNa=yw-cl|H!e7Xh)Gbn}!}t5H8f>oQwSRLM`ujBJf$~mdagtqWF9Cs5}OWzy@F(@>w=(h)?fXsDSL)FT=bS z==|utQjtRC=biQ)5~ZklA>-qsKDr0J{iqOC0F=HOBp3y>Lj=;&b9q1mc_n@nAG$n> z3&f0A_t+1~Bz@tIeO&4`RSCX{-p^!tvg5A7)l4k7C-5Y>d$3m1(8$7wtG4hg0;*fo zDnB+c28NTr9E_Vt9FH`_BXmfNA>_H7P8XDB0?ZJP(dRf_2wkyGnqIOXXIDz27&teq zxZc*9KD&uDY;JrNMChL#=!kp30Pt&QBw+9r98?j#!R*RMgXq^!<&lT;+^f0nb&-=pO-&H05vJj>rl@+dGM>S#;Ha`iJF(wKz)HFy9l&MBf02g>x(c_1_QmZN+du z`4)kXsImq?b9@hY>WfQv9j@>6wKV%-3ptL&HN+790|O3VZy^rJgBcm+HeCk%R+=ZW@N8 zYCqr7tZ`Jl#x9Np{@(3=j+auuY#$Smj#sK8kmGq@x!scC!NzKhXh3$D0Jlb3pBsR| z?8DdiH6Gcx`pjJBRr#iRCOJ3?Vu*i#s<*Xxll9~8x(M2%ejaHE7whK@EF@xQ;Z?3x zk49Cp)kLa(!&c{$7ynTzVnEHae1#DH|s3d#SGMlOqb#5_J-Y zpC39qpfV=9-tSrykze=7Va4$x^OytroJJ}7 z5L+9NFN+*E86YE$7otHpxm%8zF;Jm=^83s%wC66n5F7RWlg5Ou|3Ko-YP zQk?{Am3D8)nCG^kdB^;9c`iZ+u?tXBoxVF#!5t2Dl~Xl>gnG5-#YyN1(nvQ}yWg)Y zxURsY<&OT`5i}85xfi?x2Ajlj@b8Fu6pA=HK)e+ZW`7ET!-vLI+LHfRr70Z>y(;{w zN`7{R-#-6jKEFD!fk9WUc*me)vWC1D-yM-$nK@Qjh}JIG;2Qgf;`1G72C6rBZM3Zm zZhnefrFle|h_AE9l%495*t;#3>HsNL#es&`8u3Z^(n{3E_?X9J89u^kNuypL#g}&V?$4W73Dr_)!TO0z5DmT`Gp;$pwva;)|uTdc-fvZ z7Po?uLd?bEbf)=c0f=DTHIP{*@rEd6=DL1V4%Iq_qbT4c;RAF3TPdNGAji3X#Z#!{ z1nL-lk@LGabfVXTrQut!Zjy4wJH+mzvh)YM1{uF@xIzscn(%Q?>$q@W`r)B#XA-1X zN*G%XXwgEc{KN;U_=}!1$0@eHqw8)Mm9gU?=zByl-ZE7L zeJbpCbEn_pHsZx^^aqv+KwFh~26OFTaEQYq=*Tx>+P+-6ATZB~08NaZkO?Lqzmdm2 zMn1LYW%;y1>W}v!vu9v7@Nb(>FT{XQRFYcvOZgccT{s)iFYKow+<~j!$)uzHJ*4e@ za2gB0(-SQRDff-;Og?p?94fftBiVXQvF!)j@!;XT8;$k%egTopsn#FZt4B-mAGg3I=3qd`n&?Dc~Z#zw(7zxKUW^*5B7zc8~r?XQU-(;U2JR^9G;*vaUNc@ z*rxg)`kH(u02-!s_x!n!4$PRY!!$awDz|%LCfM|T^Sl)=ksaeJD6FOAY1#2H9iKJ} zhE6PhVdZ;&=KPypw5g<;H7soF+pH{HbjNJMF0&^L&~3TY5-@KQ9_8AkpCF#zJU4>M-CDu@_d6PvDhZVXJIXvJ>>z>ccnP zS(11puxm@BqXAyW`-{sST4T1=-F9IO1r0Ie`qF5kg& z2nUxp;5iw)iI~LP1>1Ak9UEMjV)B9<&G+*G;LlwZjG+-L`RDD^);Jb zQ6wz7AHRNh0m+WFd+~aoV!YXaLl_`LY8^#X?AKK|$@hjq?)*+0w=L?&Y5mUH>~jsH16CM{nkzvrah9?=ngy695yoFC zt$Tu(1s0xjW8PRxr$fLzfD%g@ybz#;l2=A}VJy}Q4c`-=q?}f^L;fWV>6K!U%mo^g zs+JLq&49g9w=@DP_O*ZS&~z)`sY#}1CYVSoK}(^)Ph1?ZEdq}IN>wMEkk$VE z%M11{Jf84Ep7G2?PMMgAMD2s^qcC$J!2Cd;?=ArecO_|@XkyiRZrD2r8pLGtamzqz=ve{U})LsuPCD%_a2x`vG-1m&_xl4+&}~w)t|?ujpao zZNfRf;g)a>R`J8JzP1-0()giziKPo6VcL9$kWCosXECT*BB`yBcM#$ZgV*#~wbLdG zjd?iTPfH1U-)-%&cnHWga*_*Sa_?~|aloa{cnI*&@n&kED`9}g0D=(%zZrYA+_M}> zP{sZ#V(z+^r%>MC-BF(Q-bUlmC48`vq_pQ^lX)+FN_zT2s=R%XK#6a$HcwQdLl0~( zBmX)-OZj9V=6eM`D~Z}8#P81-1EL}cH(~+0+`yuWZQsNP(_PFwlGe-oV{vfxCsM=7 zmPChp_GG5mjY-f|-@jdegUKy@#^xW)@9k+SVP4)1#MVG~TCamySs0^-&>3>O<&67% z7kAQ>Uq#Tu5DE#fFxpkB|AV%0x%J-C?y5(!$i+#JsuN>iSG7Gs=!&0+Z+#KiM9}d7 z6Qu~6_d^t*Yww;J*Z>#vz4OJOw=YGyPs+#O)AfnkqExGC1oC zn^ixY6%;-AO`}buiL)z*U)%jX52siWuo+pY+FBg?vWp+0n3^3n3HhPG3pfU2WVk>r z$ySD2UiNq7|6E1E>S*CJ+%dha$ZeG+}A zH<+Cpze}#W%E{!IJ)lWgcr_M}E@+^*i3)fQ36F<9D5*8R82ZGxyIQrq(i=a5pL*Fo z@%iJpX26s7kGY`-Ba6=M8v&_`FHg9=HzeMB-Hxb`HZHAMEX#n0tQ}!+Kkmg5n7pcm z@aGl?05m+lei_hOXOnjw@PYH^EEP~#_g_qc$;f(a&T zAHVlc!u#|kt?Bx5$!{bvDnZt?v)T5HR4d?d^!P9@(_K|Dr33omB7RY;9ZY0Ts(t_Kuvdeq@n}r-KdN~wxha}&ETVd;R6uT zi^w3~Jms}Z{)oYgPdqgF4v87dtmm#gPQf0g5`cxOWP|1$iB7{c*rO&JpTd`mpYJV@ zsQK=Y9{f#B<*m;9mAXeR!Y{4ezT=(R?koaz>Zw`{sgE9O5$|WrV#nnCNtj1M>It^~ z>2{xsOYV!L0|-F$>TiP(IXZxgSzr}vZ&)007#nkA#me?9$zZh1k-@M5m3_y{a-`X; zDanPKz`2)A;vWd=p+=sjK~?%#08|c1-0Md6f<$3+UR&zT0*J4CgO4+Mx``jt#7+RN z7osyhQJ}yG!yQ;+w^8_;<{x|yo2kU3m_G?qhsG_aq%gP3%X0g{{-=Z1_ZCK#TLmXJ zl%yrLk&%+Jz9gm<4V&K+c6QHr)}&px(MWA@jhIznJsALi?9g`j$AVWF-Jtz`?g z8N-TUG}TiFpR0nOp9ARvAjENxcH`ENF9Tgj&DQj9gAcxqY zI${r)&Fh2gj-W?Y@BDWWe1pTP>0n+y0PGju22<%%f8^Fck>mqkrpK5#&~EXx%-!*O zL*cKlOD+zzgA=t<8K0l)hR^ErL)z?k5K%&5DXp-t_Sr!aAO1%DL(FWQmtQ3?c{x4_ zIy`Ai7j=2Y-3X|>Q|Mk25qI2_PRip*91mX%bfoL?h@ksp91!s3*jC?_dXCayKNDDk zc=8zwcOVIYC&86Rx#s-hyamw|5J*Vi6-uVd3l5JjfNl`qswI%NA_c+&LDd7GEU}`8 zn8$m4y)^X2X;0C>om=gAP#(R2p0y(DZJzLV_^*bI_;z_J|wD9=&cY9@25SS#Jpgtgmkj`s^u^*2Q$zUh^Ae3Wsh(;5Rwu{t@*1 z+TJ8!z$XPZ_t0I9@nxC76`WT71+dx~r2YdKUAl;@&k6K{6DH6+#7CsqD(PyY zD)@953Y(nt#xHs?0Xl~e2|x_=)cqx`uV**m_gi-aPLwtQ5f?8Aj=K+N(%!lgWlwk* zl(9TX2jY$Qz1zMt=+C}tMhWr_?B3>#Z{N4S6+*|$^>k0iqc1e?m)}4$e*5w6Xi;;k zUSWmk{vdUK8M?bSu_znk<|^fuh+B21>)jPeoELx^5o298d?N=5kxKmThXNY}lms(7 zSbe^&;9^g;q>;Kk9J0*NqhE`7pqzu%jPcT+L!sC|bkFJ#fbyupq98D}mlKD9VjscV zsZ14ityj0n@w?RfF!0KVd#MY%!{OqIh5h4t2Q`~W31CSZ1D53xcloE!4X09b!q0D2 zPrco+I5c`C^?dsb>9`a!*UD8>&|ba5!tere9_?w@n?q8h)|^QR|42Uox<8x2ktp|W zDIr})(0Rm+L}N6c#AZZ5*_g+kBo}?P&Tf03k`>(io5LgODT328+j*+%AbP6-5j z@ZH8x^N~Zz`L#2JDxDvlxpl=V zLz4yE?-j|$!~Xt8%_YOJl%Qf8)hO9}pA#uTpdJS#EL%V%v=30j54ln`^3?)60q>r@ zJ(*Dx-Fy@k>pv>)i}pR>gDx36!<*0P7@rmIe7P5S;d*-`)t7r_?UnNU zYuUwr@#gEJpIdV6DeZF~aUfRKQlRUIVg^xk>TS7(5_tvo?^YR zws*e8XZMLRs`Q!9gby$eEunllewSep+{eeuE$dm`@(*9@z!N#cf^Sh`NzA-PGN+2r?is<@MCuD_d_HrV@--mQ_~+ zrySp`7sVNuLlnk+peKmeBfC#4p+HZ1M?{Vj6uQy(%c>yEfmM6Oan(Kea_RM!N5E@R zb`V~y91-8`BwIV)HcS0Cyve^IJ~!WRn5}?DdIENRnRX;^Z1k=4XQhHg{?z_V_>E0^ zt-7bSUepMNzgu4ap@yCY{Wybv{EImIM?fG%7Sr+bUS}`^NGQG{*2lS7z&)svR`Kx4*jtA z;%iZOZ70OR3ses=q)&(tV*Hsgdgku5FM7B+|FrdZLZ8<&Z33f6+kxQ|eyP0!7i^hh6iIz8PuW^YU_fe>Hi$Am&P7R|30v)vd0&p+EBogd}xQR)oFoja%7 zH3^Y3Xuwz~mFgoP)Xwi=%$qCAnjqh@sqq&=Rh~M#171)^h^M};*eJd6v+^yjBpU+q zpQT)JMJZQw91tcua-4b;VkN*CsT)Ok&3{7ib-iOx+_0**+K+6pF~HKz3jXlvI|X5w zlCvM5erv@8dhzxuI3#t%H=%LnY81fp%#vt;_St2B%*GBj3&6j`R}Gpr?f2BMsfRMZ zJSwy}ak-*uKc+i{s=PDItS^n(R*NIsmhb0HS=pxb1mU4$?`Chpc`Mlfn9@;fdL>Wc zpR_+ko3MBv4D_uFe!pE9;To*{ykFyKfTOY)pUeRR`5fj^s^LB1ZdILHk{<+bLZ*G4 zTG$Mm4IeD|5d$M!5+Cuh3Zwa?H9Wu==_t5*5kBor4&wfCzjp5h6td^wvqD>K38J*o zh&%FyhbmWo%$e zoBjGj_sS__3Fy(A-}42GnUhP7TopcI3mU-f*8Y$typ(@lpNBELEa~ZV3PLtV66a-# z!9B@Jm*gzQfHS1ghAM}!10g*;N3XNQ(R zm?zOP$#@VqFc8iBO_0>iV>+b}Q|@vHUl)^Z_qZ4D*-fTjF;6jC%UwaI_2^7;-a|JR zfpk(aPRE&}9%o=mq1(OZALnaOW_sIbxg7-4?&!*pQywlRk%y_FbU=8G&wGMI6(jG-2o$q z;{tSR;{xVZi96y`{XQUes2GpYGTevtbVWHOF2=q93-ya^??#e(2J7S;w|y6@FMNBU zf#*h+B?U9~*as*Z#Vt9>KWY|({i6i1-S%-&z82$~J{dZ?Y4kC7s_F2~{abl}9u}eZ zzw;7Qv~-kAXX(OaDAZ_%`5j*a5Rw6`-as29Z^`*if?=k>UYosz-fm>S6?Xc0n0wuV zgfDiUyNp3glon!vETZ&aRMZoaFLJUhklUJo8*mT;{gmP8>$D^pXWV6BERTVj2Z*sf zNGKs{-WF*FH+%VETTryQfSRlFm;z1Uax$YeZdft|MZLCMnYiO@SL^I+PmGt2g>rT zwg8`c`khPtulDegmGv$>wLpgG+o$lMRMU*U{ce}?9R{L%I03`rThibLG}+)|1wY}5nk9}jQ1an_zm{XSjS z-z!9#R=3y!NwVnM!6>+$hhD(X1y+hg#Wf(x>P#wv)gIEa-~C>CVelEc2B^h@RdGMA z$gJK%^yFq1U6f-gv}iy$?uTQs7m zKRH1CT{HaSf~{SASU`l_96-ab6!Ozn^@&(6+hdy4cF3FKhwD`jMJ1uDD*2rfF08iW z_aUvw9-Ldz(zR>l;Z!qmUuGepM2lbs@H2}%!yHtc9xbLZzLfo)q{&oyq*SyVZpO_S zW{f;KpP=};D~@fYl~Ez%$mL5fBq5R1LHbnn?wsw4k27YtW%k>BClt@y7P~?qOoTnw zZ({7LLHtQM4TBAIyJ%}Kfa${dWo&CA2uhhwc-TXRLkomj5A;>d`BX85?wKAl5VX*< zfpX_y>)sga)u+V!YkR2(<`;IdR%dkX#71%klLlDs7k=uMQ4FRdP6*cHfCJTUh5dpi z*EsmTP+I3e@oI@LR=(~lie2nS4(|jUxpZ;$t&2|QCa76w?{-*@>?Uh_-dRVfb{ie- zyjx(;y=wEt8nWE=npF?&f(v6yk0}g`SNL{k>g-j6n&LK5Mt4!i{~cB;dt(#l6|KHW zEWVfLv|!)pt8x3>tZ#MrBcRv#w&~P={KY(ABzJDO(KHr4x=me?MK%$a|2R66ZB^Oz z3ZIcXN!u}^RD$V&N?j-jC_O2pmRgD{%kAVc(n&Jc-#VTD?6LP+3g7p>b3Tu7r!UvN zVpC>_v7ss^tBBmHhIT7zqL2Lm?DJfDKRG}6O6{08>X1Zbe@sqyDjM%bM;*vy2Y{Xo zZF!~2GEaBTdZ2&CP#uo5CXDr~I2VxGzGo2yq#-wUOB6QbauUr4ZsRz1w7`~! z-OAt&bK19epC+~94PDPx)B2f_R?7BNKxd#;tkIgfy&KWE1BKiW^W8(jt9c(ne9y?^ zkE7~#!Yc_DI!)xh{A|HMXc2Bep{+o>)td2J`clE#H=70HVn+2`{X8ifZuRn$#9~q+ z&SwxiXWPE6PxUN7HQ<8-aRzIVHS6d0qH9u4%kQs%j~L0@fksW>UbY-w5lru2a0SMU zK&f~0BHWj|ve*+6=lv5@?#`tEI%eFEPP;;aw-76k<7c@A_PZ8;2!iOKEQ*DyYFGxxQ=5&Mczz8v;(qu3k75-Y%3!i>s)n` zlIw;n3<$dacy&Y{n6hJo^5rRX29cU!TN+h?}~eT5CN-)AO325C275| z2VTrpY?jq~zYQz6~s@$W+Ndt7(HAIR-;4vy#Mtv^toQ4d<;*pn+O zZ#@MV0?4U#@%6Ac$b2ikuHT53=)LiAcXNlBi>0FDJ)7sExdh;Ml>6JC1RAmWv_`qx zHxq*;)y2gCK!K~Kpx6Um)~);HWwpB|_#z!FkLbPr~>6gZLJsy8Gj+&iLHn zX^h9=Xr5n0hK)$_bBfe8vIh&|6+}+ZZT%HYb=;qz;_i1QPqWuU3mq4FvG3H&5Gato zI5b#EQbB#`?fcg{D;okJZJhGZZl;&UA~eQ%sCvS~`SBuCE-UgDZ_n@clKxg+GWGCq z7>${y@+=wCM=w*zkHG&o{Ap@CA4`>`#s0=QUi$|s2Fwe^m-#P;i%_%uSnQ_-99jG^ z?ij|KJtjIo?=tK3dy0eHc7II~it|(2$|1=yaiB3X&i0+Y*f!MxJT1z#`uq&S@q-W` z&c@hj#hkXg>fbv}jn&{|+K33jk6WGxe4h@#IiQ0)Asp@f_s7C!2lAA=OLx+rOK=!$ zD!hFu*oI^*blK1Rkb~)bVxTo#C;byyhK%mHiNiG8Xeb8IHYZ%~W&~!#5Loy8qV6dm za}b3YHBR&EN>xwa(rbgy&My#HZUM46_{?DZ0Ra!|B%T*XL#Y*>c&_l+O?M>h(6M2C zapH`EGYHK-rPc>{Pkn+jmrWey%pwDNy>q`07Pm?Hxx^6k-NG>2>yOJWI8aGPTw4Fz zgw@9czQ9gbi$u9U=z$v~R5@gI(F)EfUoNw_`}R&v;3@8o@x|QJ9u?~eJiNJ9j?U#{>>C~T(KoO*f`pn6=+r)U+sStFjP7Q`4*oVM zG!M`P$=9vIkUy?aE3Yxq@!!NdwY;$_=(htuJsQe{ge{uMQ(;TBiedy;52Nf^sJh+|32|{l* z4PV!NJQjdoNofPa%-svC{Py!OS6FvGFdH=FvtzW1)w*Bl8=@O2Vd6~P3a$GgjSm1K z2oU>HVh(#Sf`|dK+2F3AgW+Tvw9*u^(QK6V6^-zo8s z|AC3d6Jh_=G?Ep}Cgt@IBd6o^)#y?{aYzFwL2qZOqPAj_w?2??kn96gx64Du*HTQ^ zYE{60wT3=*C7d~qvy>x_dmSGX=!(*4 zd1M0%TAVwuPi@8Egs{!N^AUle@GJ$PI=9YfVEld+DkL~fE;0?X>WnI z)FFeSNti6)GlJLAwe<_g?ghU|#fKX&NAJqmhACf3PcYmdw1__&d#oBSm6%>k+!V{; zJSsn_bGrc%9+o|bVp!#S362~#k-Qa%$n8H_!$#yu42RpXu0e}+b9d7~(eSQ3vKy$W z93;obtP-hsoM1?7waaJ-zS+wFf%_7sfMAS@=>%CADufT>=j8Oc$5mWx7kHu{R?GOl zWkfIDAN6A;_!EY1C69B1DFr0+5u|*w($@1c3da6TzoL(}ejAKiW~95-H*&7I(9lGA z+p>uNxQACs4#&*ljqVqBw(Pxp-)^tg*)Tq3`0bIIrZ_QJn?ey1UwLWKzI8|bLY`+hWbo{PV9H8>jYtr9UcoHA6WlcR$R`{Pwdy_IgR9O)TpXo_suGW8uy6HCiV1iC zTJZDu9NIzvkci9!do@Wld{^L2{HJ7lHq5Yu&Opd$Znw*i^07K!6fV5(~D~@60V}R@> zA3mh{22AN_X&M;UN`!m!vTq*`KFj!5O(O8Ey||2&SAbou@>Y?1GPN2Hx*r>+amT)Q z{m5ei#*TYNYF_o!(DR^`*J}!6HMY);rsr~PfUZe_*!Zmx?Y=#=Q^vY5pzlA|Oj5{f z{;dJnRj1;y>8f$0uDS53wBj}KHU&*F1Sr9ad1DN=H!=ptTOEbgHG~F+aS+86R0f;? zX4}B!6foNZm4LbCEYC(6DC{?!bG#Pr%)=FG^YRklr&;^HdLF2imotzkKQt&7*pU}b zA55iK{A9Olkx2vNme=aBnUQzt=w&KEjfi2J4t)fWD=w!4qR{rbk{#uK=b@%~nBM!c zaIea`UN0(Wu@a-do#{D>*m{YvZlBnT-c#hRm0#W;F#2{8e{n0DTCe_G;g4VrS4l+C z26wyP$>Qm4A!fk2nu-Yi@7JFE(VyL=e!tHu`$~LqXE(p8KL&7lv}yGKSNUcvVu(rC zk47qj%%Ry>F6+=KC65Hwaeyfj%nDnND4b=$Htatijy{H;d%=Nkxp3D0%r18o0Z_aS zi;WkNzRoc+6s*hyw=iBpm2r)L!d)3_t^TbItXz3omt=&T;TY+>gl8x@lGg8?i9YyC zj)6)?Jx9vK^MZ1I16oJT0dWgM4!M-x^=zl=k+CiMk9$d$FPaf+8U7p&OIY7&JnBsFtAWGVstBnp|DJ-@4Gl@hD3Nu5=0K zeuo7y!SA8H57lr7(8Rg?bu(UtHkTKYEx_vwtcmt6w@9^i3?AI5(p(<>ve(G)il#$}YvN@kW#aseA}$e( zc)RJ}&E3>d5<&Ld+}Oz_t|}u_@c>t#T`=9;6{?nM%mgnQX6zwbRgQBhub2%ZHRjYg zu^I_;N`VgjAVhv?{u($p?J8ITCWiNQU?*p=Hs)8Z5hM35T&U)?|BV_uiMOP~w9a{4 z(&%uxlN?sDL7k{|0f1;MAl{>DT=}iF?-oe*5mdo58c<;-uMHK0!~7C%lGD+b^s5G# zbJbWHE-i{6i8{4x6cOsV{~1KD&}XG)qDx1$HdbHa6nz%Vt&XlPm5Q1?5^(|9^Dd?K z$C8R50}u@&relR%w0C2Hg!s&;t5${H-1Pd~tCadIwfE;-4($$eFz{|D#24-LdM$+=oiu>94}g zU8Gs}@elfz)#nimGfXpRH zfeX6G7aHmK?QnBu?%WK@t7Key26P~iO(a_dt~dVzxlarDM|Qi9%DKa;VoN#mm}7nI zzSfv}4M(9huIDjB0Ee*)#8W{fuqG6=@!?kR2<(v?eE?TF9?#^6xoB^yaL;=7HA!8ff_e_;snu=mX#NmiDmfdrwRl$G; zHzEU`m4J&i1oyZ(YRTymm*+>Q=qv4$c!Gy_CvG84e-YD3dLV6syd35veLWq2%2ONe z_8J$`q;uXIaWEC3FYOC!^Nr)Y%R6BXOR-k+^6U%0G2RGwezfhcZOAoTu+zZvYn!YR zUHY0~==?tXND1PJ z*$u~CB-klH{EQeh=Rl-iCG5^m|DI=NRak$*K7QaC$-|HpIH?)N^HCl^g zWzxzq9B?QBhYawg`jX!}ihn_A4b=(24)ae9f72EC==LW$x1@P7VRcc+q}h4r+lT0U zFL+kC&40ctND=YRX$D{?pz63Nm-yY3x_|HW-R`zl1%W}&Sd*1CpKW5bYU@%Dr48t? zsEP##WMJQy`swx={q`lCQuN60k>Q`-s{fWRXibnkx@{_U^S??yzX$6N3_0o^+XjqZPO0mw>+=Jt z$3qOr!NjhLx={K}ae457CLU>zqi2X+EV9-2{u3kIC5G{y@xH+TFksB5BgMp^+&LWm z!*R|My<+ZQI*rMWBEIorsU~EWxN|cUre82zG-bWRone4LCZd&{i{-T6K@+Qk({P`g zL*D*uA`tcPQEFOF$n#-1fKHkt8xM)jQNtWBo`;JpTs>~SY{*Q!F!K13F>3;~KOLm2 zRwyBcwmGr>&>(rn;`0$ktX`IIPe<|Rp3ET7duWn`L#70A%O8m&)tS|$GlKByg6org z@%X?`BvR>ulZ~R%+xk+5gckEC;HqSBrQ;%vgX%Jy@0x|b zZg|Nx-!DVowYSSq4m?7>^P~E(^9}-GI_K1t9OoJ<6%nQgWCzd_9zC@^O4nwTJs`@i zV$aNVKB4{Y^r`|s4qEyBQAWjb(Wmj8TXow#beZ>z$aj3?h4Ffp(6COtMvs-1`6zKV zxA0;%Z?>OBI;);8E_#F`;!u>r?|}uw#66pb3by-gATdc^Z4iI`M!XZ)?FoP4cr%nU ziq788Xy9U`0D@u`8C+){11QZ@dVl|tBme4a`dfbEpE)xAE_}87sW>76_{nceKzAdH znVmVBS5k!85dt;p=l9E%^@mrNmspn3JW?^L=6UD*{KEx`F($#PLr-Ss$NNVHDgSY_t_FwJDT9^_p>ARw-11^yQJMg(n>a1 z??+!u0m0t1ZRoikPgR$pbY)ipnwwM!xWC+s@ZP`?+G=ag-go|r9l|Uez}tTMFgjN8 zU721h>tGS*E3z5w8I?PU*W6}=70P5WzFz4?{o))`OW+RaT!Je6{xd>TxsNxv&Y5q}uu`EpRxeCs3e#te^@p`m`J_`x z02CW^utS`;H7=zL(uF;`4DwAX#Z!=(4lHyPRCasyreFgq{Vcr4IDFL6Q#)V5lEcn_ zpZT$Q>!s@6LrKVg)r$jq;Brt}E-(AE8=7I4j#fPeul6<&bcv8i^hsV`NQgTmdRE~v z&gFYd3&2!A^Ow7upCP^%`J^K&2t^=RVFLQLLO+fCP8qijdd>D+grCx`tusCa26&9p zC^kSd9QWU^yG$!$leG5${qr-@3N%>Pw_`j%_(_D#@6c~YdAVKCREFG+=IW=!TP<4H zK1F}HC)EVB4rtD{Q_gfF@{+ZaGkcZj#1NZl=7l}yto z0XWgV9N%dQgw)a6{s>VcQoPgyRFl#_Vv;OAL$3JiA4DtyW330M@AJLPR;%O+S}V=x z?y|_C2Lxp!tr(RK#{B*Q;i&%pwq??4>zUfLzt3NE^(drqexiJ8s|8!L-;b9Es@|LTy_8H))P?YwKqih1kGNPvu_FPVjhDyOlEb(|tBE&Bl} zb{&zcqqu~4>wYE$7hyU25dFA6{}%MI4sox$Y{~wgPhGCGa7|ELPSRL$VMhp0I?fsaZahQ8|a!I@VVI593(r%LnYQG&-pC1q65Zwl& z9_;)T^ahec2=M6P3;$*YDM_wb`H58V<|PS_f9E+T(|%g0PulzEy45cq>SBtC&bN%N$E zYW@DIt?23-#`YELJWxusAQAAm_SS-Z5|S?^on;rwQH@8rS0c2lv1*#v+PRO=wdH6` z2^dB|VRtKTHeI}$P;%{o+UwBiUH9bUX}sa+{RQ5{;&&TsDH#PiY;@0u{9;ty#g4qH zD}3$q%f;j}2u`{8QJzo9{fR1kmc?Mw1=llk=A#%p-_aU2>$uv;Hk{+UiRj}Vrr|^~ z4IH+iNS(oIk4Mb4+w)P3uIbsQ6tA)v4>zOenO3Vil~s9Me#o&2EC&tY9S{vv3jIwv z{LYrWES_^Pmg2dJj#{aTTPRPeJ^#A*=@;b3p+fjaO~1$xhnM}BjBhE!$R?5!mwo0k zu3#Yo>BI{J@{WDsXT~AnfJ|!O z94WmWhtpS(x&YI97k8$=cZ>gUamp}|=&*SC_@$a69wJs#YrmfSBMGXDF@!SP-nI*= zcBdQkqHnUBp5DueX_$GL{mWac{D6mhj&vpxHM&AZUqI>J{kCjAZhcV10?+-4Z=K+e z<)%8pVTZ2cliwY>JQJm3z{NkmeI)(o0g^tVt=$F+OAeY9_PWo9ezl(wdz1E5D+0*O z{`ne5kHl9@Hs~`3C2|@KKb%nCg#MV`b=mU=SVb8cAPaEy@eJybo!xlTpw_GWM$^&d zP=g5zXvP@8{JY12x1$TyUkNE zuUHF}<1z4{+7VBQQ^(*>hZTtadf7Gmp4vNDl0@W}oR~lPaqzw1DaVkYROWc~4|fe& z+1GF@J%7Hx3DSzuC%HTbpHboB`Ex`w33kapH}4K7G-K)q3-Fc(lsmmZRe${AW=yKA zvdmu=?e6MXn;g7JXaxJ1LUylagdI-d*zF)7{5ILck0XuqxMlnq%&m1dg_Db68U9k zhYPCOFk%NRo-;wW>p{WIk@XJ2(Y}0>Yun2ATiVb~ z0GdPVh6g46yar>QueY>h!jpzz;U~l2Q)AU^1ahq;SI77wuf+G=2`GSimk0ubisT1m z`PSnoEFztdu@}kUFQM;tfLp%PoM^evU#CX<`waQ(ij{nk3B>8m=q@q!71$%4YEN}g zoi8aWqvJEa;{&ZairOMped+OGMX^^VYX6M0q`&|9sU7jtWn4cm&v5D$9-pkr652P3 zoL9+Ju7{i>3cK|^>ae@%>OfYJ@xymF`6ku}yBe~3C)Y#ZBJsfse?m#;XA1OG5kDXi z^%cA<V#7q5=pOSvmF8=jd>qb=Ldu*Lx$d5=3YJ38HhqH?%|z-He7Gy4v} z7`;y4R%$o@fHX3fo76s@G6sr)rwh35I|%MMnVlaX<^i&;hIp2pPVLyYNnJcxAK5wJ znja9->(AX_g3Ox_mF_4vD(?~}SwISPn9(7`_%ihRa!v~a%-WkKT_lKo@jbrygzqOV z70*|b++Wg9wEMOX{j<@rxjPJ^JM3!>8C5;za18WD--oN{u>m-t%XqjZ)pW*Yd!HOz zVAz93Wmi+-cfJI+bO~R8a z{rj~;H-fO8c7$kvi4v;(LQJJGc-X0%N=5$FKXVYjI;}InRVjcvu#=x#LBP;28~Xaos&M&SVc3rm(NB*(@3wbH_;ki z(}MM0wnE0@$?Lh%n?;We;mQUW37#%T*N=zZvB_Z^u(+NM*^zh4G0Y-F(d7r0;S2D5 zLNHm-*n*09cyG>I!rnKPymiBQ2fr13jA`>$iEVpW5d$@U-UfP1Gm0a~VXbT6lX2cT z2!fh!eMraXh=_K57^}q61VjN?3>%(-j=trT;gQM%nV|J2N*?h>hHX(28x)N~o!@;& zA2CQl9DSJ0mJ*vVRNV;^2~Zf!E-MDU;4c3R)7mRd*69xT5LXj$6L>HLPe zJe*4PAp)&1Z!t|fRH9zWu~dxxG~q`1oaTS`iH z+M#fc!&bRAaZD6N4Wpm%sXb-Ai&TU!gkM2*ahf=?`5E9zM@B<$8rSy; z5M1Mt2HVpyu7{7q#x>62%o>4HH=pcdfGmXY&-4oSccaA)#x03@YLM6 z%T6*w&VSy=@a*3AS3MO68)0(kf7Uu2Cj!AaI|D_vY@E{czbb=0iu$~ z*nl0X9PTLV%=RlVbMoh1f{f{--bTeY&Pw=w);7%)dt(zIG-K>ul8mSor!nJRB-`YM zo)V}60Cr+z!P|&}BXBM6M1#qnw@**BI{wZFmMS~r z(Dzv3SKE&7rKl36%F;XMKw34&f6lDapM4ADAJD^n>JvCW>QYSalQNpq2=k>d(|aFMi3~)|=hh#aW$5 z+?p=U2vt{*A1-(2AdAaQ067gM-3KYQxC-l=-$D09GA^sSh zj(~R31g6F``}KGwZP#=^?dm@^<#haJHGtI$DdY4yDyCi-9z22LVPVtNf{JodsU2i)QF04-yj)l{8LkGtoz7 zI24jK;jrAE1GWoKCty092P1(b;&+NPKX8qmbniE{<+VsnuT^ei+)!lu3@8XCZ_Aeu zo#}ACXKk9}9WJF3{O(kTa;zwqhU*F_2uF=93pXdd-A5nPXdg|IVWqv=a?aX;m7T*6 z)O_q@u`Kf?@3ZG6BomH8;27-ha~~RSsN}Fp@$UFZ^1>g&`4{X1w2z;636^?*H@u(kX8|2^jM2>B^;K#mLghEAIB5f!)Rf<23>igs9Gro% ze(gR*x16$LJ&xDnJ25{u8$gBM>0w(H%0mHUhxpwQLXq$O0n)$?oE*Yi}yt9q=E-+RHDp1>h)jq(eo6 zC65c6y9 z$b9k=28wys*WK+(Wbx8UUGhXGwos{W4sJueNb;>P-|yoytk2a5c=kN7 z7>j>A6bDaS3;$-M6_7A4g{2YU#@=4XJ8@`(x`4>@PD^-aT~5MNJ$_+Q>={4Bp=N*9 za*co?=dRatD-G@yUddHXxbI%S$LY-}>uH^V{5Q=bj%@HR_b-A`jQXt$I))bEc zYrW!@Hb1;OKYXD#dtalB;J_*4s+o1<)p=a&TPY}Wa`T6Y0W>TH_0nX;jDwpsP2D3) z;Q62BB~0zH^YRx+DL#}LVS8Mfn>A9=)-xqk@Yw`7r#)>_bP~XPyPL^6y)ae%UTys| zF%%{34B$ z^a@tE5w-h*!xAoPe*Uhb1U)ViOdeiqfsDbq9N}^ZGAkq{UxLz5!ZwkAU@;uR^tOzV19Cr2u0q`syltSQjd^~0DJ-qev zKmhv7wm``vgoQF3kUkxH?3ClZ=ulDmt1gQ_W}!m$1YwBV16smJs4p7|VRnzKutcs+ zA-OS1D0EQqTE|Sq(_JFwl)oSftDXQR+11Av61Jmjd}{NHmHD?gh(4_cEGb#!_ko8V zg+d9Xe+hKmTykr&M{#YAW?;lFm$MgJ9rsAz+gXhwEpfPII4dI1_`spf?!YkI#Gl2t zSkHPU8@}Dm!Kv6v=Q6p~H`?3w`FFY9lJ)jpevI%Gz)5AXR2QLBV48)1#VUNVmh=W; z`6?j~A6Vv$7WXBCXJmM)0Cv7SEMnR)VQWD)9W6> zrE3w$x@8`K^2dPxIJ)pn)&}$=2UGUL5zWF9(Cb6RpXvOgK-wbz?OE}p*#BO1s~}u6 z$}CaxScknpRjK6H^IP?iuiU;5!?iharR)OJEWL(Sl zbcH_WZU9+_YNI!*;XM>5Jc2btsE;TxY@zv@+4^tWi#lurKl6B%!HuyehWSkP@!Yb# z!{{KhtUvYM6_+N(Pk-NIoI06!ztBxDN`d!0Tg3-jU)L?1$0SXvVbMoEGV{XiR@pzb z2*i{5wU=di3?m#>Tp}42*cWrWju-7#Ss!Gt{3O}_gsk5wF0Pk#U+*}J?xd%uFaV%q z>zU0*bkBE{+U9Oq_!9(WU%P+vx9iI2X@oR)Qw%RJ2*MSl8#Xm)3LFdkB3ha}=nok& zbPfiphjxIVX8xjL)SfQ>t@|wqA=~Xozj8%8cmOiyI{3b#woSKh9*einJ3uH}fDmhI zF!W)BKeqBamSdo8s=PQ4He{ELd!Edk^QlAE1`@qOq=v=K3DI60)rj4$(9QQ?+zT}j zS7%{Umo=VNZ0s8TVc+5I1NB8y&@uhF8}+!Owt~Fb76RBKtT#G4qDrfSsWUxMSA4%Lfg+dgdq>>xZ1@#Fp$b~w+Z~b9hQl1}Rdu_5NmL=u zPxM%%!{q?@Pk00&_3aQ<{G83+NNz+M9DY>cz|qFQV+Vv2*F3@X8VxI`kS|jnohH(& zPo|%F1^G88ECKi)X}L(z)%aQL6cMG0wbO6do`=CPDMo?75V74-HLg*4b^99y4)aDX z7@*wy0ev#iLf7@_9i&(c@KlS~PfO8VP33@eUrrT#!q3FJ3}>2ZtQ~44Codc~GYacG z67QGkk*3A2GCgJ-B9no0CS~F;IFlqbXrqmr%jEXp;fk_=bhrbsa`Jl;!VPoH-W$zy zcSv5OykI-LH)Yr!N49r||Xj{SvS3_+_-fL83i@4>`Z>S3tuEn?26 zLvF1FhqNkrDV57|0_fTw80^eb)_Te@pd+DMhq+7kMiyLP$;0LX8b18kbZugTY@wE? zQ*U)yx+;%(k=$v>Q>c<<6N}fv7CR}$$X=5X5NwAu&@o6m>*NDEg20J8G>}yY_;DWX zr*Aj#IDzMbf-=G3GwSRuyR2^X>J;H=c-QOjurFWQ`?oQ5ZI6}0KG)JpD z&Kwr+ybF3DIvzgx@#PD?br6f?Te?T=RsYW9csHKs)oCS5OU?!)vF{k+`MvF<>@k@dd-yK;$d?&0t-h19q5$%LNR=bzR=W!DlbUha- zhCkux^4(*-N683uZ3y6)TY$Z$Y>v@ak&LrSj8tKxZw@lFPC*v-r)efwfwA^V`hc%-Z4+a(^Ae%t7)|2V?@unxK1 z%Dm_x)5ZRY=AOS>w%d*2dp3+q)_6#I3T4Oat0zuG#*c;;x}|TwNA!4Po2)IA?HCO= zBtKDq?_`LHGhIpVj8eRo(~jkVWBWSQaJr9(7~&xL(7s@)1F~tI+VK2ZSG?1V2*qCi zQL|Fsw$i65jWb#1!gjqD=S^3BdeVw-cu_Ucu3p&9gWksOr5e99?5(OP-$$3*z6eo`R~vg&cvN z==m&#&rg=`kW(@A6&GIw#&uMbOQpIm>+E2Z3i_ha+g@qD*&1tGIF3w&ESa;=4%6Y6 zV&$P(K&=7%fh&me3xi8%67O`_pYb^ZIlco_Z7-aLr5KwNI?O`0e&|n6_0(-{=?{J) z&DhIp1UuEo8IX3x_ZvPgEY!Yce=%baG*L`=*3hxRaHUmV5@5 zNN~4+PhmZ{gln#0Usdsp9G-%AUM-t%0-^XGD|0-e;nM|?HJflGal6NEbk-u4oC3!> zFd-y+|2rXb;2h)_5NDt<s=*zNdDrv245v+#ERF@;(|Sy(nQ+<5&{yI zJ*CLg1{L*v0XLS${Cj(7WiG|d6WBKRYbS)d@ik%IPwl*6;DMtmqnsJV($YMBwKwaU zoEo7tC~#C;s_%ytFdh49I~M;Myz?*iFpkMA`G?o+ zqGNWy7Q`BWRVDBrKh+%ubNs7! z*sKS8e6L?#E9L5flEQa?KztE6Bu{^XT!2pOJzX%D{N5t$3C7TQ9ynxbkyA4;7H%F$ zu&)+@Dgi#j%P|v@T9ToJr_b~nDQDc>eDk4Q_=<#f+xVL+7vD5*!>qyEN7s=^LDgml zf|SloT$AJKk$1ya5-6CChQnd&q$)>9mDV!8K2M;wzisU9j>fR7NNu)l`ZCaKAhE!a z=t%9S7yEOYV36b)3h9FJ5ik#Fh@w2J9+`arr6xb}VJ-&5-Dd^wWr#0)e)iK_!95Le zl<4~scPzWF+-TD!KQ{^knQ?XYSY$t65362Uc(s$D)bbaafEVCK2KzjuLhSe!P47|A zM2jepmECS$TW)lIim9b}i$H?E?rYk+)d^I2PQDwet? zkluHei5OnSG}Y-P52L(}EmoYhfI;9~M^Z+E&ch^Xzs)Z+&oj8e+NufHc~PK);fv{y z;mJRx1+RgbTk4ncnbI%9SMV3x@}LSIa6Be5!5O^xOLweeWEZcOFxmh&G1+YFeefeI zhJ1EI{PwiC%OP=z*ovixMGe=6d z;r^ezUm<=@+>5zl7tPN}+o6Rf*{>k}%k`Bvje=eF24MSd06cOuH)r{Lya_%ccbGbo z+Yu}p&eaaplGnDs8u4Za7Zvdf&AA`HSLLMw&(l{sVLELjgA<60j%J}t=plLM!K7B; zOgQ`_0BEt-uzf{gTEtK;c`Y$1Wx*|fJuAlLG>f7SwenG!&|V*RL@SX~a!*6tm6Zlp zL(wdDDe(4CU9gEWwS76TY$BA}*QMp-p)>}_1afs)6#V7OaCmrzpm2|STYMW?if7in<8OEr5mQ?inSYXK&}xjDJRg0j zY(fPqWkGWI?GjYh-yz{?U$j|fpru4Kz~}1?{x)y`BnPNoE7h7u+I&Jpu#zqTfC{ss z-wR`(>d8~)**?g4g_&=7R$OimhL9+oIP1ihBQQ+w_ccV##Yoo#$qsIZ?M-A7D)feL zQAv?ox>?d`pG+2_^qHu{_wi?B)it~Cr&c_I{+8?$9vv;EDyCN>l1qXxK%U=sqp_GghV!YEh9^^xhpbFx9c;0bON+lZQaYKd=En0PZ}Hz8j8Vl4GF#y^ zi}tGCRK%|t`z$!W?X$HD9Mt7!rPOr-BjxaYZ zl9T3Ot#4mMFW*;% z6qsMB?sc#qPFX6w;Omf69+ckv!esq(FS?DLhrl2yHX@{mr-Fa)td!PvL~uGOoR^=t z!&$N=a!7CHeI=SZ1q#O~ty|ZnV(W#V&tkiSvYV#eV`i)Dy?$sN+rle6#7ypXXoqr~ zXR_l(58rBzJMe~Z5xsKzs)`l8+A=+_SH`RP8JIQ=w6gYe{N2V^!Qc-kI(d6sS=&06 zx1|6?tl`zbmUhS^@!LX*Dw72Pn&R-r-L22sSq!SqId*NK1!%8R7pa&d<~>=JlFZ{W zR%`o|4#D!3w6`1Mj$=|TB3X~6s;O%S?MXdgL9T*RF|{xmAR3tJ1$wL3>xJK)(l7LV z4%XA+nB!y#SQF!2i<6k&uU2xVdiU^H1s>!J>~6O(X`4YEqT#dGt(%HJD^`z0JXToY z&LZ`dZ!bdT%QE$^HgiTYVgI~^rr(tI?<9FZfd8#+L0D`7#eR(kBVmF}E)Yfs7=gNG z0EF%A^@eE+I%w@9|1SG^LLxn|(JXc`;llNuOFCCG8zrK4qk`ogKfV$E8PrXDbUca7CUs@x=mO^7^UQz_i9>?P zwR67zy4U_|?J$*E9SYacbabr!5TEd;)%%=Xywf*Yoh_sU+|*B0 zd*~LLRFGygN?ckAw<&3QbF7QFdUc8Mx#BA7tP(9j1*ylL zJU)wWq5DYFhZ=$Q=C{D?02!Sf{?lp=XEw}IS=g|yeG11c@i~NJugfz+0AJRn7E3Aw zhWhun16u#F@livqI8^+6T~Puu@g3$|3CpyVmjkBag`@6R8h2``eh8}SO|r#gT>B~t z2nrEtMe8ef_*!Mi>_!=C34qc#4@ebJjDru3uFwz(wC0|DZb!M2| zr@;Vp6t4~w*N!^-9vnU_#viNT<7sH|mW5C(>Dx}PB|PcCSs*D@p!eIry-49RVQ>sC zAwY@So$v5@$Kq2F@6X4KPeA~!6A73%Kp}_Y<;;>{6dCx5;GfmKwo7tD$!{(IleKZL z#J4epFe)D5cOP>BKbxD0j>K?3*QO)UdOe;cOC?>oe-Wy_xNldJrbV0B@B-3=qx^d?7=7Jy-MR zH}%0_k@9Rdg!dQj2KVG4t%_IgImytuKI zoQxb6$Pu-eqm`+!eO!~QV-?7-O@}i`tK7_U7(YsOY;Jer`$o3rhQr%0R4_bmmam>v z2w79F^6kWkw1B86V9x&9HSZobD17u7^uUMi1#TKWCGGQkdCI_ofeAL;LHedT)Xx<`fRDakJz@`M!y7DyJ@Vsq@-7gC6i? zPRn=w{;2uMJy&1KC2IOE#tzd)%jt+A(Shxc@q4u!5);B(4W5ehI1+RLaPN!U)flhE zp&C5r6vwHP4Ki?I-q>IS<`$ox%#ots`uUJuEO+*L{G$1Z6VlkPjI3FEN#p(2j4k7L)r+v5OgmQSBoF19J>y6)i}#GMX4g zS^uJc_wUo2Y&$MT43*hLHbzQ>;5`9poNU{fFLKzHeQ;Kv{Q2+OBH`lh_Ir;GZsWro z)1b(V0K!)yJ63d-PCUn5lE4rp(%e!EuH#F5y41k!(}!UdRGx;{vrB)dDlE-+v;{33 zrmYiFM6b6~xAxN82pNv%2He*h?4!mvEFB0iTXe}k&tX9T7Cic5!T`8?L(ixLK$;^W z@%&jglrVgPt*r!KG4Z0gmSJM}yI;5X8wYMhH#f;9l)f`n0<_Qn=jc4z z71g#V`h#ppMw=#(te~VGNy(DaudjKk`@VPU-a1EN@3rO}<25k6lZ3Y{Mwgt1SOM_x zS_XaNMyMcyd$~d8WLxl@W{-0qGe2ve#p;oEVhk}$KL3e;8 z;>P#iCmOexPlQ9qz^N6zA7l@)2Kd?}V9yRHYjMKyivk^~0xxwt-`U6DI-hH|bRW)* zm%#pPBZnQAbo#dN-H0)&WO-8CF>gJ*L8u1IpCoi^471*Wke^)^>?_8h=I6utfnXZS z)~e$eRA3;D=SJuC1piFSSxZgqT`+N;g{2B9C>h5;M?ejgNbij4g2T>p#j<+jyZV+G z6@C@ytOt%Egu7>^Tt5Sju#f2&i~;XKd$Gx}_7sYpP24>a+#Sb$^!mCb)?=#0=LeAP zpjY@1l}e6Ir}`qjJ@dp5^*bM6&a^w@J6#nbYFDMXZyH)|WHoMg%UQyiF| zc3k!hl6li!m{Ks@It=au*a>!?fFZ>ZJWd^~mEB@hRPCXiu)~iv-2ZWYe%TKDYT5Do zz*kQsVi9<||0r^*fZzNAojmx%{PpVSFWHdRsH!_L=(U|v(zo|5UAq&rp6Sk?B;Mlt z-hrpg5B^c;hA>+S1*KYz}vet8o}|Pe6NZ+#~GOVgBd{zMXJ-pkp6kD}}wZkgJ}s z?>L>lIUI@{+`^f&WrJE!pi5am1tBSf5+r6?c=EYG1~dHCk?jM)<5$XxTJl3sce`ge zxo?S69;a6x*e~h5Cz~Z+UN#c02Vm{T>YENgpEmdW6ZW((;c<=uclTm(b<%@#6~QN) z58R2I_p=MhMEokT+_sQA*AWGw8@Ed)iVNx=_p?#;7v|`cPC<`FOce`vN65eU?x<$r zDCe)micd-dp6zvTR!mP75V)8Ury-m}2%cNufkC%#Q_vQ~@KsN!m_3WkXw$7oN7q96 zK-aEUIYAiU<&zfk4Ma{noG(B3ao|`eFT|0&PKmktGW?fb*Lz2G3}@V1L{SA0)MLcY zK`H7!hW&HX5)|6fQ3%hX$n(#D$ko!$MeE3Hc( zik@~qGZ#>p;ODR?FoZ%gq^~!je(zNjArb{2P~I}%tY7Z%c+~wz%B?DWDNP)u2c!SM-z>d1XpG2=;X|NJI~gc#`}%Xo9L&j z4qv5^Kt6yi;$WS*ROVrd77{gSgHN(P z+Qe72lr~rxSeIU$QV&GivNTkrKIKpsgA|(nsgVM72FI(@guyy&=i57t(T99|?#cKf z6EEXn80u!Rh>`P*L5@1Gj&cN|PN2=x0>|R_j+^}u4$6Y>yIk$PCBV52PSEk~kaj=a zbJaiYS&|Tru@%IaAn{J|`Lf*k6TPQ2G~dMjRf3L4`ZqwYejLoN+;WUZdWucG&u%wg z`OO>zVW~{3?>d2+@@@-<(PE&W0_yf5nvM7yYyto+P&6=~a&{slAP> zs4X`JrU!&~w$hi+z(yc7K|Q;>c-Vpd4St`&wm_9NdA!%a+UxPyJxMv;J&ADzN9jF? zmo%Sf^!^aC|6q*2@&(~L(^2-DhBg)&Bmn{m#`g2Z-pv?hvN=810bWOV)i9XE7bjZg z=WrJS2?5g`TNXTvU^4%XZ`IVWbRK=j^YE^Jz{WPM3%*G4IydJ^&+{|J8Vy9;iQ{;5 zj5Pr7Y~M?G>>4`Va)dFwE0KqY0us+Ac=UC~p2vnsxn)G$gkdFZIHEO5U6Nn<2XC{RZGZdsvfzm`+bC&%g{)Oi_(P&D!X-)(^xK8z56g zRc(!KkhtP(T~pzRv%=uSZCu7+II$pMLtjgU2T%(>L32DGk_fb@P}u z9@bbPJqVvHYnacG8Q_-oyM(pZG5T#+L|vT0ofqcS$4Y&>SHMB0K=n@qLdZ`J_^#)0 z$WmWQELlKx>UAetG!}W!bWfn*07Y^-EgL6dTgFMk9TeJXfc;p_l2gho!?l6NvUA{j z3hW)5OJ+*=iHJG}bqzmm>mYlP0h=RUG2^=Z8Jw}5(*rOpSGRb3UMTt?gyIE@!J_Y) zzrur>(A&&)eXt1&$2ogl#e0*DH4&iC!VBR@U{Mt{z4VSR%HrN`uPiZL>UU1RmOdjk zcI@=)HQd}I8)dq;ukuTMM#dwVd7)d*i8WK~*llGzt>MTgW#l*HO45)L=)5d;S0w9B zd!joAYd*)?hAYtdPSc9l9>9z>gw2&-m|2Gw}T(7EXjlhrad-7yNHL~u85*&FVw1|_JT4p6Aq)Keh zZQB;EH+)BmSt-*dgIRv+5*k#SzPN%(Xv5@sM$|1u9XKtYGY8>BrdjlZO0HL!+8Ol5L>2u@36Ez(QFht(I~mbr)nELmVQ2q%_u9* z?e(X}t;?ID&)@T0*0C99ZB9GC1ccd%0Qmrg{LLb1{Yj^hzNNSNl zaBkS-NbSL_tCdZ99R`~p=qwC1=}-bYqeb72-yMBWUia72FHfykvMA&JpkNI%{d~hr zCVr&|PUX#*hL0!OMaJdI-C}Ny0RyPuI5vyjHZFnISN9DZ*3OlnIxeQGDw$(6(gt(z zz{<7F?UP8ho_elX1wgFF{a>|X@D@x)aFnAh7N+{bxkD}b+j*6bQ}dO87oh`>5@Z+c zIEj1^d@J*?hWX*A!+I_=i&QQl-jnF>Y#!A?FXT?BAG)d_ZS4E?4K))JI|d5esG=@? zF82VP4ez{HgJjta&F9z~mN`$M01=~M5!U(_QF5i1#(^6CDij)#&2k=`^f zp`C#|6T083& zy!^wAyeX7lFZY~WAEzm!nJ$rk;r2d#`U520QyjlpgWuyst8m+#A9QuUgt6XQ)M81% zIa-ImG0NzE-FZUme@EEAAAYHk)?l5()tp@$KLq{g`>Qd+BkwgkaeuCAY`>)!)*QqI zh#bp2`e#ayJ4QVis~cs`5uv2ww@I>*hQzMvG*pZsNAIpMa{=e!q1KE&I^CfeRk<^Z zNIHh2P@IU|#FGn>-5T#jEn(Eq%EkbhE1>U`PiLDi5ojlqLklYA%p#?%H1Q2$f?gF$ z`zGIR%Te01MFQ4sb!BO*E~PrWFx|Xo`u!l%Zsyo2(BKkOF6q;R~` z6IOMYm zZaDaAk?%IJ47Cvb<8)^tN|^E)Q`= zPWR%NX%ORVYmGmeI&hz>VBOqqe|oqr-k{giKV7L~a6g~Gk$!MMZ&DbEGT-zqP@*6j zuNNg-0G<)WA!~i3vSx|PhV9k3h>1E-WDSsIKJGJh-CqC|;c%|VzH^ODB-)C9)e-y- zjzoXzy-*78G!P3u{DyNzptgBZmBR})3!LGmoYv11t0vLY+<-SzHP|HS-NuXM#Qx2Y zeuAf*SODW5%=Do;BZh$>EtJgSWFY{wb7=!b*j5gQ__XkUsU98;xnT7k6q zQ@rZ|LQ~|I+VPUDT|F%t3Yjz+$=Xvb`nPG`yORcy{3K>J^&@`nqSKi}#_dM_L#b8s^tinDu&7 z{2F}uo&vT30nhLHopz6;`Fs0xna-@g%*N9_XS0uqefse&9T9Dn#v>{c?aZWrXk+EV zbTN?-qslQc{nm%~3Gv9&11W$4Xu=L$gp~+!(1%L>sif1~;K{6u$LCYs?(wo5uPIC21w zemXwhd#58V84ma`_jnb~+X+^=4`8DVU?emY&Lyn8?T5;!*N$U;FV2A;2}KP*e_W-L z8f=@`!%>If`gc!um%}qyA_ojwWT0|TVjNx@!JKU9%w1e`Q!#zPEaq~#>=OHUt}?mplJFWw*V8@pO%N&$^CHmiw0< zE3%)81$lI%+|N20uy|K<>i@AJF};68I|d?vR{a0q+oD%?NT! zTUMlPp6?C&GEf4Mz@P`FxvDH6XYcbDIt1Hswo!O?`hCdlPa(S{%*99*2c#r---qNe zq>}Fhhx-ym2&RE7vgOX(eF0bpCG^&JqL#PD@NC9!^h@vMINsy5D3kGofhI%q>XJZt?;Os!SeS-mf>!G20i2(|9f5&w-TtAARjr9sStUNv74F0j9h|_S zTY7FWwf-W@2SB)==+U;gc6gnV&u07Fuf};9j=@_#V{|F#m#_2osbPbA<6+@gQ-Qli zF^LYt==7fYY_kQCD4#3K81=i`C82Ul$8HpP5zj-efn8r#fA%z=#nfK`zkMABd z=7V1EY|IH>EBo{24zk4|U?PM@az1^47i8`Gm7Pup0B$t-uAYzxG;J5gPZ4=2^bK1IK2F{Hd@zBP+VNC#XsG)rg8it*?|=@h zlU}|Nu}fFy9(5>)aB}4KuOPpRkG|Jn?TUsG;NgbgN`3mh!|Clc-~qaCR_pY?3B&Fk z$MggmRfA_U&pn;uTp*&}cVM;hxX=!dv${Dg&SjydJ>=~3#fbBi=&!}8YO18~NOGDY zh%pMRwmtaLuXmB5qZuu+hQc9jzS`SmQpe>AdxpT)J^sx`3nkg-79i{B zAhm`B5W?Tq_HyF!JN_ujQX&bz>n7y(ANSb88ae!!??<(%oe#q5u0(xn*o(z+iTmYN z5hiwmG-|55UqWE=kYS{_)@E~YbNU|86`sov7^;6^#twBIC^k@WPwaY5yB{8Bj{(FK z3Pt~PJpH!I!p;z1T@AH)TTcg7(mj%MkDG^vPXt?iZ4Jlb8>sIK1VNYng=tdTa!rTd zg~#h)Gk&D}vtS%?^(bq5cA%Qvdct#oF+F@q^i2xuZ{$X0K5sow+E zl+V)gu6h2-)4TO${#3huY^IA@m2T9u4$rK4r**BrIkzBo-hxi zatFkJ`}+9YT`&lpfnmKt#dj|dderZ0(^=*4P95jm*{KSluPz_wefn0r^C5$t+yu>N!y#As6-Tq^U`};F z+%kcvy6D{fghw%7n|$RE+N{7qwF~eQ|H4A>TmiT2uV;xr-S}s8x)0W)aKJ?gRtYCW z=|Vs5181w@C=_phc;Gtzg>0;oUhES^?Hr4*LeE1Qgj;k!l%0!UV6(qk^O~+ia#+lE z$M`O5-`neJCCB)Pxof8s&DnY5Up77;4(>ot_JAs54U$#E-Z-rr!~Dl$=r3* zWH;eN1=z0vd zh5SNrIQKs#I9}|_)oH>-*zct=s`8~#=`czpYuKjfwz0E*H;Z0+WskKrzDWV^%Q47y z=ag1nNbZSDj!6-SZEUon885=G!PsErqs91gDh1|Yv`|-Rts~bs9|>>o{H&)r19t+W z^jQ@mQ4Me{@>j~NPx*CD4p!(0&^Qd@y; zFL$oMnKmh91*05qzKa?Hl#X}L3WG(p6fS|wyz_e`%Mo`l!FiAk932?&0W+mJfjvgd ziIQ~KNgw#cvXbHYl<}m@O3MEY^m;e}n~a{aM1D}^W9W#l z+HaTz`blcORwRKdESM-yO7<6?k1<}EZ9{U!5;3`^$169yo>u|l_0ww(dW_Wr-<$X9 z{SFp{b=H3|X%K(~0?OtT<>=hP#fVCrt$bDhnc^JR7LC2Dr6Q1m^c6Jd&qExbd^#N{ zX9cGi9AfcvdGIsghm&gI|9f!s>y?<@&l2H6pR zdPlzpYddA1lT&(@iT2L7<9vL0!HM|NrXM?r-g&4h%od9SHGBKXEFR?8dfs*dW_nC# z@#XvSN}p|mUf&;f{qYU~;KV4m#(8$;U`87^h!bol#y0u5OOMy1aug35J^ofdeHx8g zXgr8Zd#ewTx))H2IzF@FP|C0LC#MGvPm*zWxZ^s)U6uG*R=1*`PnPlYUBO!&a+hMT z2@C}1My`~m!lra4|8x#Rghcx0q~g7JZfG5uwbJ~7j4P7{0%bFb$Xrj~w|9cElkI{& zMnXJ%g{lZi9uO=j9C^H*2W-pY8RWHd{4T$j(V=+pj*vF#rgsL<$)75X1ND<%><{6h zbv@jHtOHieFcw$+O2>)#!&~cuEZJBM~{65C;#fOFy$>HCn4*BIbE@-afRO+>QCz+%2zBTK4px_^97(0Q^9?#-8nx`jEA-Tm1+_QfJYp7?~ z6Zd7h8{w=2VrYL|yR)5vjsuo(m=@LLjBBzX%8gwMYyY(fxz0|aL4T@WqZfwgS3H9( z*9$`m^DB+XV*;X0{4|64Dq`#z%*>NT%dm!<{=*#B!*v@E;rA+|@k!ipI)h);o;46_ z()nzKcw3)FsJ}*F-4Mb4y)4>cf!|h4lx>Hn(p}ftz-IY_AAt2|}1vOIw-?Yi&27 zzQdJ(Q=LP6A!6U?+PSE(W(^}oN?MF02DnGCrLlHl1N|A>FSfiR*?+!A`Ufwl9zUiq z#}WwWHf2OP6H%qqOPJTTFj#p+>8oppqE5 zLdhY=qv+iTDH@@))WUX}Q+RuvXEQ>G-4K;CX^+_z_d}N>R(9u{+}mqOg4IV-9?qV4 z1xbKx&C8L5xPEKpo~fe-HR$+weqGp87{pd?S>3TVEpBa-82A0yBl>{^ys%YX<5I=?R|Ov+EflxsX_eKnpBoQ*}xnq#Zv=cUsW#8b1s~2<`f%% z|Ds8H##OKO@g?M{PF-I*n22xX_w)8@eu4_I18D^)4V%x9q7sV4OxS(8nb8X{6E}c* z;M&ubdPvg&v!6jBzYIX%t^G05_qradKSUd zM5SO{C=dxAq17L-m-teUI=^TC%3q0JuLb=Pmw+0pD+cOIZMp}IA(Y8qOd7K_2kGVp z^b2g$Ug6D-0qQzok5Sg!%a?zL{bwnM9DuYwUQF+{0(1LwY)FxQ+)+al)|AqLw98_4 zP7feK_F{VoZl7^x&s*l0=R&Hx;n?;P5y6P4{`6SKYJ7KN=qse0%L}KUy-`$th?S`t z3rG|FkstWm@vv{K{@6Q~E?*i7%<%^{U$$_U+3bupm;L%;jgq8@1|4qcW4uLsR~Np- zQ@g`WWx9%Kg^9$2ori>|GLbe;CF^&v$t`%_+Ixe zU{IbX;ddhtmzqT{fSr6yF~s$~Rgla?PxLX*hi#=#()-92$d#Z)-oGx7`^r<>a7TK8 z@#k$pgV!=ruio9>obgaF#YpsnA6t}#`^y7=Jt-*c{^Zf-A)Uh{(Xq{LyLH10) zY34D9xv5dU4;~Q44;EzKkpFG%PTaogVMBn#@R<^+NTAB%=C(x2gfF^QkBWMgBs;6N zbBtUi^oEJvCr+}zCje(U*GnK0AekRXHWRA+e!h>mKZN!T87}eC!jL?W5=I5%bdYwU zA6A^j;Q5$|m$f%X>4^3+`6$CAE#LJjaaWjvtvYadMMXZ!I9?c*${}C;9mGWNee*8y zXQ*rYNq(SO0Y%dlIrulPYY#0k$rI{Gj*BZZ-7#@;Z9p`_nP3oa=1dXYk@-0JPJUqA zlFyNClYQ(TjL#*W&{VO=m}SfN32vO~MT)@@0o>#^@p7#rJ#p$!Mr{~I8L`Zr5YECy z4Nm6it5|JRA8;AxIwm0kJ)7$9`3*S0ncab~-v0=)8xva|cg=4n=+cyR$j}J6Y-8o9 z16)SEbyP5XpFL@}9;z9{R)ww?DFL7!0XDi1gNd8Ieid-|Kd-7mr@<4Pb5z-sJu!HP zVWTeS#j}F0=nSG^`8*(8TH@V?X~rj6{tA0t&%n@p%J(wH6gd{HM|AtqU#@ka5M{{X zn0c0G^c(cM$fF|k!+p5CyIfY@UO7v>)tv8c@6+=nl;=1RIO%G#^(I_W51AdVYJ7%a zcIXfxe`z!={K6C8RI0a{W#nN5Hlw}&t6cmSL`D5g$alkH-!nTmtZP?(OmW+Llgyg- z!jXCkz}L5Vw6fN-LijHF-r~>vBNPDsWx}KqI}^tE+I)QgoWeAcx29 zg28`^iOwx1{Z*(kIiLN@S|6s)4&racj;9ZE0?Vfy3-r9Osrw=}dgQXvg~Rv;vx1cs z@#}e7Xm~AbS{=DBKL6!uZsvJTzI&ir4T2rsE(?@>PoY)a2v@U?vN9FO@Q&WY`y^je z3YzPWJH39z%oI1oFCPXEnei2A-CO$w2$4XM>g#Af|82atg2kUpq>y4R6(mcfX6?1; zNn67fYDD#m8B)G{)DEuES*-6+?1h(8I!Xp|EjGe1Xud(&;wuKE;T} zML-Jv!b}?KE52dmCaZk$a(Cl1(f-kp(7i>B#qCSb}Ba|a+N$$(j zvyWO}SxU?;v$L6e`6Kfla^?<=i_9@l12(>UnqLcePY8qY=HPuyNHRd}h1V0BI^z*Q zPT_L%EIxgzO}-B!U|lzkQP7OKI=R^Q$*K)q7fWyA^;F8D1t=w$yh~qB}sFi0}%N>Vi8Sma5V@NPR-tGtJ(qFK&A&N-ap&9S?c)7&C z%`ubhHSVx*sbOPk&~xQgF=PPG`Y+MY&JX_g7=uR198P2o2sXh2>N4lQI6>T9Mhek| za9B{QTW3V+#Aad5=gBOVqeY=~C7GEO@=ja6xjqfQmu6D)L$`S~#iwg!&|TKVz}5aD zU??EOHIlhCEF1%+Ygzd~WbRYYV&zOMNuVC(w2Qa{r^qA*M-Ei+v=# znELy$T7g-Jgn%RQ9tmq0o7CY2bJBdhofI_569rMnN4>0~zRr&~I@-rm&_9}@U~^%C z;WFx3$lJL$0EVzx^s(BXlCbLarDhpl^DcaqQ` zM7nLCs1cI$BpR#r_1mD-q0l0n&qr<@H)knd%d$Glfnv3bDvz|k^X?!Ye8Q>f?@J63 zorYI)SZE^<7{~bK({a(`mLxc)D__>!_)`k<2eYGQeTW>ga_KPItTH<3&=Gwu!J7dL zDY@-$m)+>8?k4lYmE~{JmsdG)(%Iv)be_-G2|WTJnVAhc4t%CXgj9s_07Q{pRS)cB zK+Kqo!K!Z7X1z{$K(6WI1>nc)443l>j+z-cON9wdUa`GrK7SQ0y&>3zg7(lfLa+ClKfZAyUcgCtidJG}<=v%fFQ)f~FmTP29l=Yv2GPUF|(J+2@FAH8@1m*`@wDK|!-eZ648ip#eiP0UIL22I|qbLRSyg9FUv?7E=J ztBIkhAx6^NP$0R>AwEuigS>HSSNrMv@LW-Q#bp#s650?Ee!M^+I4eW`HtUE)v$LK6Pd0%jl& zDa?)KU)gi!;|3OUCkG{j^Z?EsX>tb|1F|iUC4Iy8!rS14Fqgk|Fk>TyNso6>?#i{M zWBPi3(2;$Az!vq~nXy^px05dOfTOz1Zj-Z<%6Y(+j*e2vIt_0pKHzAfM6ga%*dgJ~`RSdw=5yUttc^%~a z#rcZTgfNVsB~Ey$2~lD0&`v%0_Rrc)WG7^Jc$eAz;NNhFdb#$XRDdAUUQ{;Vv-yFv zDtT8KhRDH)`nvDm?2{DA0Qb&DOBY&%9NZb9kbIdo6&fIQr!q8?NXnoR4 z>r$&e;_L*E$iP0D;MI%cy9hw!cD`zc#c)BB-wyU$EL6L%#Z zj)&}`My+zWFY^Oi`9*Ch(5t#w#2G3E1|%Tr+#;^#!p8PvErvYOpsm+PtW>2RZPb)^ zM>k?JB#^w&QW!+`YFZx9)s``%WCxUXnlU*A;Cpw} zf_*-akdz1;#%p>m;1e;ST2Te1Du~YT`~y2`)#310I2p;~h7<`2+%MVepl;_;bNGDD zk2hwK&k`I8!SpX)gBSg)e;_li8VQs6RpnhIU&9yr39kT#dQNa=eh?_#uxuy+$9t5~ z@Rcm%5>%GA^R)>@bkO~u(*1UjK?{P26El0Ky}C-^$2!cc19nSb@8Q3m(4GpU=u4$?;HFKYdeaoHF-t0<9D9w8soJNmmcYdT1 zK*woUOgn}ZwVF<4K^f3q{@DlgDIk69IP|54tA7+bfX7ElXxY@PVqaX*GVZscB^p0V{E{Dwj7ZC(@_t>u{}@cLVr zl#r2e!FR+rng;@`L4;MNkAq|xeMyU{M@m>e&NoGY&!W%X#~M#NBz7Hj`NMQ&t0j+@ z0)><}$zinT${Ltu>etemMY!#M1~NQ#4p>Fw^ca4@EgzlER`NXah`tbNLu*RmDl(cI zzL6n8)kSg&Jn8(;u1gn+@;-ULYLh({V08g0RJ^9Jum^pr~gVo7B3=$&Dku9Z|nK{b)HDsy|SL##^#8Hgn?p>dkX1HV(OC z@MkLkuQNNd<~YmfX(JzJ0l^Eq=8h1bI}aQpyx`D6zPAi{L2rGVzt(v_dK+@}w5|+j z&1xFa-h>0j@KRGW3bTXas;EvE^pejI9--IwiZMf}=y$KP*P;H}a?BNTmb{15#s%q4 zr%qB5P;A**4;pEWqZ2-qh%rjXXMQbH=@NhEpW9Tw@OOU)2Gke(x1%O z2BEAMfTQQ`P(AMrO8>&r9&Qm)wj{((0)4-N%9vHTVHZI>eOBdAQy&>n?%Pq@l}~rG z`~!<8H2Vbi{A%2A$eZ_2iTUdnEG z!(Mim9r+AG8rKD8H%7=ArSEft)i7^kqu6pS3$0fJ?!}*0_%mR-xbxiY%c=wQhpn1a z5}-Rp0L1yFw2cTwJl%{Uj6%dKQQ#;Y5S;%Q=gRC0Z^3QCZo3Rlln9V`5lj08bm%71 z<+cD;Pn)lM5RcDbfZHSiVk+zG=;y_s8y~;YJJeY{n0Q*(x43{~1A^(8WT~U*o|xw@ z?HU+Kf9|qdPcj?aFa$bie~$Hx+-HyJdb-v_X zTSYCpCzrpcTU%QxY7?|nE!x3{ryfGm(w~6&^G;!Xa?8)|9H&klyO(WU6&9ke(ik5B z1QydHi}*>w@*i9q9YGwq4Hsyq-i6RwFL-Ty)=Nm|bJ?dwP)b$z2OsdVLNXm5ATdHZ z-uiI2H=%g}6JJ&D%g&Bf{o_2+#}m_h*nuo;utK%?CfM6e{$*$_l+BR*dp@UdJoH%n z71|R3j85#sz&VWQm4A4$A8xSizN;=yk3)qzRA-_PP_LveR5hqqp>DQbxVV-B4Gzjxx;@nV;IrwW=5gH?yN zo{w~ey*IxiMPjelcNg4a9YD41qV3$<6d{nyMy@j?(i5PFm(kVikolK-de)yPp%$I_ zPCUi*52%SRma=Rju1$@Oww5X6)%d%J-d@uuEUeu3b9V;14;~c`zf=?M2M-C5&5>KG zofn}%BX{n;hV^0Je1jadSPNaHP?71cSIOossP8^lZK|vqwHu=b9&J{a)?Byt-P5%ugJ$Zk7S4HgD;bHK{NXdNSMY^ z+bJ^`Qme>sf$Arl$nFf*uQD?ofCf$U+AKwsXl%XamK0n$8m=b!TDAzm{w#=|g|suf z6m1}k_nq)p(oMX8)X?s$%jKPE8)^qV*5uZ~bm(IZE->}}K83I48c%dPm$vr(kya}a zz2_Q_TKVVz$!mWu-az}@17o6SymNW_qNw_JE7q_-0VYCSQYOQG2L^IuY zvi6LvP)TNIF^7-Z`)Dt^!*nP0!ay%S-f3KHoSCYghN)z*e=$-mJv9~zp}k$6-FCcb z;?{Fg@FcWV6P4|1Byym=`P$nnXBW^)X8$r75h}~C)h-m0V)`Es0o`_&`2`!e+-g8m z00#(2PdN?T1{?iwFn(Gh$Uq29|BbBwD7{1c!QXS^-=7N#qF)uYjE8%c+&D#5UxdB( zIOu*1>k$&akbo8r7BI3wKXfV_yk3!n(Z1q|o^pKrRm%ZKE(8U^^)SpB(ZUkZQfR0= z>~^pi`&EX~;|3xoT*vQS&)H0p1_6Z_D9Fmj4_=K|h_zxA!mW2^0)poK$nEeF{#yjR zcoI@=WSI9$8U29F$lw(O1kPpF2lrmh;dOY?c&80m$+2k4U`aX!nn&RLT$z^iQU}xokunp!SdpmJ zt)Oc)U^e{f`oRV9nqP3@h0L7WVv%=oGS>&wzN;QWZm@YTecRhwu@1WU7=OPRzodbG zhMJ2*%+GJ6@|NFQ?LK5R+XeL>TOu`u-Bo|?df2_ZT=)m8xidnK&`JEaBW5Tqu(Z@Sl6#OP9rPv74xW;ugM=u zEw<6{xQ~3xO#I8k&G)uy6m|19P<+b!GaUUl!HjYmQq?=A_At*xd}5%%-QE4wguUS~ zU4XMQz_8SfUQ!kL_$=!NorH@fxRDhGa3!g` zz#(<1i!M@yP{|eM^}U})$RR|RpElaRM_0E zC=I)2a70avo{w!PH>bF?5xE_Oo$c~H$`}AQ+5;049UniG&KfTV4V1?}v;+qYjwKHt z*Fq}lu}}}{SQd-q4_#anuwJcQuJN3+3(TU|D3WZWM zBHj%Bd|iVVT)@9aGW>o^v6fvy;Hb22R&RT9dM+3U4;K84{B&qKw3TF^6=B;%mBfQ9 zuZOOBlQCO7(f%E$;2dH<=5{cwEi+hB{#m}bkL&Pz{v2NR!-IdGtIeZ`Jy?V9%ivKc z?BOG7n)GHAKzP>d#bC_G{mTLJls4#~Lt5;k?3*YK5N$ zDV+?h%+qOZAMa*o_IoN%Uff*`sH@?z`&xyy7m!N~WFsu8uRqAI(4?q1{IUZ%JrbbK zAo02_AJG8P;k)OG+sorlnTIw&t0iZEIV3G|$4ywvo zh>nn6TFJaQ*8p}-3~m3gkXU(bjApe zyXDi4KgdNfZ+Tv~o2wCDLpK@WJyC+5&@``Ztt>t~HM@+P#y`Tm?mq*^HNuEg)F_s7_01-%L**BK9?WtG_RCj7! zIOvJ-$j-4ye|ynUULdI!)L!NOZtj>^KMwkEKHQ%fOO|S!38JY))wA%{m$P*DTvv6X zpDq*-aOfDFFqiwUCxv;AbpwML0qG6>ZG;#*#ChNVeqzLB@993DTI-|Zb|T5gMk2IAKCW??-Xx`4G~13|$5+`d5E_zk`-rFvocmH^4yFH>xP$ zP2`C(L4Y)+mi{ijw}Rkqyb3hab-Yq+S9~&*PP#ide?$(x@`PYxhG+0J-Y|PUCN2#a zK~Tm>??&40dVpi+sc^vGja%Nr=IHf1kXLu@PF7bZ*^L(>v~G}NFz4D(ex~wV=F`Qn zf#^_9KM`AhV}9sPr<^vXfIoy^E^OBjmZ8SEqP z+CU-GlNDzCJ$tt{f&my@WrzJ0>e(Mu8Tf!~_+X60D~tA;mwqzX1*I?sv|nkGPq=4@ zaz&p_5|z#$6;8nMzlFXn`gj|$337ny3!d=iIz!`JS8R2R3sP?jUK~7_Dy&1Doagnt zu60Z{D!0!D(lN<*Z%g#~bOCFtGY(u3+&390LkkQ5sWtFl#|l}9xkEr5=EN@4hd4%G zR1zV2BeKWqCr-mN50pqQpNPf-v~??d;wUwx1Dcm2X2~=D*e@FUPnBb5zRiZ|WH%tn zGyHoV&5D^C+xcL?DM0O(KkmQ4BVp`-5iNw6v6gc_!CZegwj`ab)CzRIB*IdCVvP?= znus$hLDV`I<4~E95}2G=A$KcB;3s4W3mo%>rcimzw#Uf2kEh*merP`Dj48^PFwrOz z4GUa}?+ZdJgVDkla_-mT@$wYpqltS53Ih&L@V+Or1>*iUJ83cDZmXB|BN};>M{vIS=nUk&j!9NpKymnKi!3*X&3*0&4xRz~vq-4$h34C6ug- zUPxmzpSnKmJ-D4%Fm~HX#a2z}jEu4@x~Mq$TbI{ORDJ5+D=8pX1<+#7*3%R^Bs$lP zR6c%MJeS#n1}VYgioLd`F9BPsJ72}3T?8_eyv7-kSH;0_3-KltD8bj8EaMWNcVml3 z6?F6IEqrY+J^oob2O97Xa?@Z+P~zguzti;xe1k_7ttagFNMy>Q^bZ^Dx|Q|S78ixT z!&A3Kos8ZH!JB$3?DZJ_Ns<89i}By?$+KPOrR*U=(F=Vv%q+e6-jP^8+8I-c+xzGN z?^^Zqe9}PH!-5{HC#=}0$GS+FG{XxG1~!%s*H;(F5R_I`?!k`)eY}j+;czEFylFb> z+z8Zl72eEB|G|cFAaICxszaAl+DF5D>pue5AoePRrb}SiqWv0VmdGDWsGd0lz-hjb4t-mk}>+D4etRT61zL zqVd|;P0!{L5zB&<4T;yY<6A3Y(zz9{KS$p2LK}P7t4xR`xDFeBmCO6JH}NI>br(E2 z$rUv$)Wrn&8Q9_(pr?MXdgI+=LKXX(R3n%s1$}Ga|MzA7d@t>@d~d6$%PJ9ZXOuop zf7GO(l^yI(Ii$qy2aA_bTcMHc-$0gvy>gDJvw$V*dOedP32V$B?L9He(t4tB8duAKd1#Q3VCr%&+NObJpi zPQu%D7Ua_E@VdgWc0xQBlVIndQIAMhot^LduJ&Va62CV<2I3h%^s2OeqfOiV>VE%1 z1!nJJKFL2FYi!Lm&k+@7`3Of^1Z-0E#Z-Z@<({RP^&*r*DL!g6>W`x@(m%=jvjfA#a0waX`wWS)A1;Qta3NV-2uE% zgMavDxS4~4{?h!Z2A~R(RsDpa3zKy!u*42y0a2|jBh}=toV@(dNQds}6&RU%sfLUh zf)7{B&>nQ4nxBUN+wp@0Qt*`oinfLWBq+{#+aYKTe@oXv>cU|#zH@Jxa-mDKntoKD zZj)aYuhh7HuiO51N%5+%i@~gI``Z7~V9T_ls<%9>x3GALcQ+C3;HRVtwoX|q?LtR5 z(eg=?hU;mNMd=RR3mPVI`(}uV>60>GSLVp9x#w0nwC9tDwTC)X3lIZni^j!!rDd?j z-Ips^=r$t|xE4R$+or>Fqe?A}ONc8!gZ7yD@gt1ksHn!yK>Mg^Jf-XWaL~Eve1gS} z=VkL2afbD>&e6$qoRH2F%ROSfP$2IQcnvF3<2e5M0Jkf#Bp?OQ{@FXQhyn= zH~{>h_YwNIeoU9W!ckPo9ujq3?KXgYu5ct)ro`}Y(6b;bv@uu6Rs$OauD|=^H7a=F zlf)UfIxoAv*|?k8R}x zN@pnU-gP&Qx|QL32Kx*l!6Lo$Tp8=$hk^^}MX^=H z9K-mg39#L{B&Y<*QhQ||2>z1LPgJ8Bq%O&15EqH0VX z#Jn9NJDL08@JJm)Nx1r}07V62f^d`3<^wsroIk#Ef86N$Sl*O7POKyO(Wb@ztzy)$ z2ZO#G#x{>RG2Xgag1RSW>ZrdebwI=YRzpCt!Xoo2%!YG-wlh0tx z+$fIiI3bR?2u|F>u0q6q{Si3oU(@od2zXzJ!&HT{5+V>lA#rrlW2S^JYP)&6I9NOr zgx}Ax#EC%8<{OIT4kA711^OpxQtt=tSmU>#zr(KniuxC0!`YC?lzNRtaQ&XB^SW8+ zV~)Uu-|f3<&;?c*OnHG+V_!aR$C{Q84xvpyI20Fr2iW@eC*VB`QAKXRXB6C8P1yN*jyd z&7=CfNdi9b#_o7=l5h8WST~+OOEED!Zi#F}9VCRqC`+)yO?bq4Y6iqYH^d)O|JYxZ zRe-ML7l77TbzX?2CXBU~{O$PHN3UYAjO`uph&ZOgDP7DIVZ=ov#%S#`zf#oAAI{i; zfZuAc*$R!V2P0j?<4FYsIG{z%`e=9yKnC*%VST9Hv4kUYgD6%A6&?+YMdGlZNWY*f zJi_X>PtT|)#s^R^$bG~L%3yIOd7TG}9?zFOKoVvCPP^bY@AIT<$RmNUJ3oOMWxEP; z%H{`q!;`uz%>3Ps2~gDdcc&~a9y=sO&b<8AQ+Lnv6+luiGJksU6n(5-La*oj$dcnO z|MF?+J1_72((sl*2O=$30Jx4w`np*Ap8)bpWWu0k@pbZ^`AaCb#uP#s!Y-+{x|hA4 z9jS<9w_;dY*NIddjz`>L6u!0tC4&vrF}T2s7oEO7iYUj5Ai(ZW4T5Fvfu4@I&6{wrH#nAM%@IQlTH|Ca7qTpo(1|r|!Kfi2D!pGx#+4nGU_}>o zY03|p?xM`(Xd$*P;G#l=WfZf7Q5JbIT0Dr<=~JDr1*({2Tycj)$YRZMj5s|A{2`K# zRsGyhKu3(<`*UE;7llXq`Unpb-q}-X%J>8?{1-CFPgbkn8seGlU;`t|Tv&~%JZ?a> z%BX!B4E!w)>ESkYih?s|yp=UNr-Owyo&m}il;PmC?R@IVA}T?ZpZb@vu#74KUdQPn z7&#Y&=dI+Q_saPGc&NuE%o1Y;Q12AUvVfenr#yW6e8&12?FLs?Xbdsl7OoE|&AdpP z?Dfi?7~IjnN_@`Z$fNOnoS0iD`U`E`nP13&qaKHecaC;{J+g;$B%@L5 z0v(>;3sphfX<8qpsQ|s;l4F>xs9II|s?X8QOP3qmf`xJoefyUSP1!Dg{d3(e2e`i^ zpiraYuduP^W(`p|Bxqu48`tW4|0u51=PiArkm1dB=dyzoY}(&Lp#H4=!hX{ZxSis? zxmQIFIkb+jD6cRDJC-2B9R2Y>Z0<3h!6hufBha-#B*iAiI#mE|t6oJo$5 zi|ejj8=E&&C_xO)P&?zD^od#Qrm<;;JV-fH6L_wlk*t$ZY)=aSe^=m*)J4BO0mnj! zfjDwbP+iR%ICNFQyEsEQ1voHX^Lik%aUe($>j^YFe=M=yg&$n($f{yS_F`H}d)0R_ZRJ?6X63M~oBUH7K`i>MqASM|_Bimf$VtN~{9I^PeyiQQsFTzETBZ z7qOI7Z1>AiGg|YcR@zl$Z-*_ikk$I=W4ByfD9l;n+^R$}`jCBA$!Wg8kb+yG4e5mY zGoECQwIJKRUZa&;VhfH{c$XTUf!4O%omi<4RVsO6p)AA=u zR2`Mh8oZXfRrVS>-}^nQK)_nFGK=L5qK_(koq8b!wbcF+5cpY*XE zoQp?$6=sT36=x{-A`Uy7nY=`>P`*Y9o3ssF_4ns2rwyk?Eq6qu!|%`?SQt*X$jpDy z`Q2)_wkiP2b4y;{#mGm3qwSaC4lm&v)Lf# zb)q?GC*kLhLHsX&Qy=i^6hIc72l?Axzk-TM^E_v+wR5qzzj~-2&QNtdTdDN*&-ks# z4`Jn_T<-2)+;4N*BnooY$MaO+Jt)_|60)I0j>ulU!Y}Lvh1K4$nZUFnRoVOLSAmy; z#5}olBP0{}gp+cbg#u=y_Ggi0PM3q_lze}hLI23EWUV&Vv$88^H9LWEnAg}1|HjHBcEvWdRLOsyb8z3?c;t|BEJ zW(=ejA2ioJNv*G9v_Z6lOHa2y$rxD8-fzT9ozxtbpq6_jOHKNMG2-EYNT zLb5~m?Ikj5dl_V9+dCTY?MOb2d+MvAymeq7rqzK91Xt#D$t%U!v#Sihb?05Mo_Cu| zcs6j`5?weQ=H=c?EDq;>5IJV6`r@g~jn8*yGIvrybXT>zA-DF*_GI)1bZ!O2i(OwwOua=8}^qq-;;>EkH z=Oc4`oMTLP_>Y!jlL35hcgrwh<{JgP3mp+E#C?eTqZ!O+$4;=^sf;1h{4R9YYS;Eq zai(5r_>Zg5P$HO6J`Nb>hu-hLj?KdiXMA{61x@+7-4gnNHM@58Y(ZWYDCrjCqFqbS zKOc{4hG!Z`7sDgg?(@FZGCbYWk4yGksCVM3*;@M$*tTz1pS@LVBz`UZ zf(d>oDlaQ@rsIJ!%9ng9%?4;42K|&^*%19OG{^&iFIdi-GRW{9zLoyF8rtjc1(ZTl)#GF|*=f z9n4Ypc$iw;<8h^~33$)cOTp>2DiN*)aMz^+N~#!R({}ss5KidT;o$x|erB0-jvww( zE}NL`mMLqp%Y*{RP(AF0%V@(uwdnU;zcf~k&UKrJzjX-HZ4_l3LBaPmaINWYRpHxr z`Cf$Vk9nWkJM}9;lc1aDYwLsEBL|#jVv$!0Fs5ny%5IlJ(BO#stIO_iw*(UbgNJ+# zD6T|~YnaTRpn&Tqs_GbQ6=QB1yl@C^e7ZRR1e&f?a6u3tgOn#>^r(3FKPThm6KXe1 zxz9Zc4l~C-%)nOPRwdy7dX}hG{UpUv@Qb=9<|DqI7+~G{-_E-m1mT!@KHXSNt;>nA zu$UJR9bZiPRg=!y+JDa0k2xkb`>0}`E-hW+!COb(=C6%+`dR3UmTcP|qO!t{{#jl` z2HFl)W6rcFZVz9RkwZL|t*QeO2bf3S@3q!^KzVMl(1PAc3N3ML8e^yBI~QSR=YHF8 zvV<0pD|gc8c>pgdLtD`@XKb->;_>OKGL%69vD~=c_V640UXY8=w~ZzTz}#>M!9fdt zmIrc(hATv|peX14r7tPxqp>2{9+{`Y^s0-J%=O$)j58k`**TbIt0&;rVo)F0 zeYN#X{ydc)d0zzsJMr-mX?=NpO(z1O;>+O!-^LO^B6HH&~VOiKc zQ8-_lelOo2q<0=!{S=k}fmo}mulrQBgq;`~GmH*3>Sh$F3L8z|y<&asU$-64N~oN> zgaSorGTaZRb{Z<{-dOM60f|3k=98B$2~6u0#$S3s#~qT!!u+?@`G;q~sT>o!bp z!vN2rwIe1O1RS&w1M$u*a(ewetg3;9HI9s!m zCfsyZ;KTRhF;T6dMK|WY-nDzpfH1ceWyQLgfpr!wtY-KladG&N<+9(J8;$(Rq$hPF z{vgCTNU)#^AZKi*k9GLRKOBO4NJ*RLFOb<(@?kfbZa|HxyUlfX86CW>S#(51M27bE zWM@UT+g3DiuF=PRA7t3Z{FA?v$<9yv@ekb0L@^*lLvt`+<7*}Q~5$j;05N4of$ql>T517 zWGP+dIr-on*t6$@nRH+ef=t7o)E~t%AzzT_-dPlTzb<0Nq1o%?Fc!DA25%0QO>g;@ zvOjs_z;yRd>e$ccc`>d?fyTEvMoAL-_;O6V-R-hQC>O0{L^9!zBZAgNTfU%PH1L4I zJ>wX>ja9CmztW++{Ok!T&Qf?um28~d+glzV-j+`%l)HQlu-7S3JKw7?@4%DyesPleuICb_y+3g$xc_TqwMC`{4KRY_gS|-)sv*2?Nxv^W0w>IsoNp-ai7TS z`!lZ}+`jV@ixq574X;gQEtQ7DdYV`sF`&!$R&3y!73Xig+3=6imRHvBn(OcbI6gjF zA0Nly9z@WWeqe4V&vZdJVCUC`!(n$Nfwg!_*7tjQ;qS&~Uj%kAvGKnDz?yP@4{z;< zV{*%U?%vXiv%mA@4!Vj1g7!oHlj@Yz!s2z2+(=fDAe!TJ#Ts9ax98_mEtD|GwF9Ij z{llW{K~kJQMUofwY;wY9l6)uYgV=rjWG{&g#G1Sy;!cq6)XpBUZdMb#k?Iljq}Nm7 zs&!zjFrFor0dSI-6fWq@Ku;ZtFJcWZ(`)l)KXZh<5(F>VL;S=!kr<#1oyCW#^q`@dG^;#W-b$CzDX8=b`7b}OAAja>UKnb21q-!+zPqw$UOH|sgIw$s&mQJuQ)M( zZmOHVp%O+}vQ#i}!O7Gy(SeeEM0~+x_LI=ATl-Cpi-kB7mP9(RHSUYW@TrRQ9rtLO zgu0#1)yxFe%WDbcsW%9)|?4Ep7O^DYUa7;+%Hm}j~!rOhb zo$j8dP7y4(6@PZYsRoU7W94Zh81~9#Bb(vpF6#i8#|Ek7ueV8$eduu93uqOY5;BjO zK-&?&Kaf5s?baP+>4)mraJWc>&mbyW&J}_bBg+4f_Cm6*u1C>$8s+6n2zWoEV7Nny zDq^-H@Zj=}?X+$R(iYLNVuP44lp6@1Q;~Go;QXnBb-S_2kF>1$1cK=~pQZs=sU>{@cMB>hSg+Uv}+&~|9cQO`j&NR&n{nzl8eBrPIrU~9j^v*CmXy99e0 z_%aTvpuIPt<);%S`IsgCX0ZH|LiHJsxL>d6sJb9p^>t~8V=W!@9Qy258#G-b`03xTISp_|hEBc#>vO4JhVG76 zdHGB){wTyoHilVXHE~|-L zk?ZG9n7>N6*t96UM*v$fxIfE>0r}c{{tzN4?0J~%%}GBD`tjZ;*z)2t4|MDKF%e*E z_CEj1_V*0A_ojCgy5XD`_Kf){dmRF;K!0;ZX`LDJyJE7>gSBlFBRADYRWLVD7lt-P zAL+l&HqG2B5~bT_uPDU^4Fi*CPz{hrl}SWd3&l&gE)9Zh0L{1uz zhJv<3Nvm~Ce}Xez9T}ZVTJ(F-L2DWlv=D3;97h$Yth`lAEMZg^d*)wW?nYeO%T&sr zI1IcGqu1ar`K(QH#i&&`6yG7%o#8~0_1j@|xRXlN6zLGsJEw^8pZl>y@bhfq!{4%7+VjP(DwA14Z8%i7qgU>3r?mR&WKNp(eDy5%lp=%>TipF^Tq zaF0=sjkSNd5Pw9aiK)LgJVC#m7~w3&(I?4nEm+$8>1YH9er^#)7t?1JMF1QNa(KVd zQWL*Wq~&f(a-Y`qyXaipcEOcnPT$w`eBRT;bWifwg`^C)SD|5MnmoXNhas!uVl1Xk zG9Y`pNflM(xSonXn%+rWKLZ4^0u{GOH-5S|d5&;*RP4U@os)?5%bKodkpzAU(oE&# zO%!4>=w1asF=KwH+VXG-8Dxvf0KBcKfPMC<(#Lct`|48z#@FF!jaff6DCiOf?^wPxCM}Zut7h(F2_=T zpcT@fCW|Zm{D!ja(i`h*GC?==$&$CF)enig1TsIKcf(;l?)`!sKeeO4{7N^*ISX(6 zAKqzrbr9r@hk}r+drIBy5SW2=nt($2WdL*R7vdT;}^z z2X_9P-+*bZ5R?<(fO_>JFo(D*k=%$S2U)Td52-id0wK?&(Ie``U`Qad=64U8{mZTx zxstvzJb+y@y=osr#trGsy_l4(-p_6Wc*rXYGobh$mEZ>y4cvr8`)c(%8q*E(0xQ)c zW9Ufeb;QxLu9N~ldggn)eCj}Kv32x0zs@GPOa;nt&fd&?gJ0YMTvIiP3?W)WK}~T_ z_fr(gDOV}K6;)T!KH_TB4}J2x-(V6X4;Xy~_of60_l3kwnMl(U3(~1A@O-loKr;{G z4Na=@r2w{Z1d0Il2YU?8$MYBP#n0>fT3*k{1i&HWTbM4cDO;BSUV7}2tvL(n6S!6K zijOu__2QF_FdbA2{VuE5_!}<{{TPSP3l3Nc<#fUsJihAjvxqTSkAyNpe9p4^9utI1 zDM*W!dazv`Rq`Pb`NU>TH}l}NAc<>C85+^a&{2DU8`9G-L5DS+kAc~~jvtb+lM83i zcyl}9MgP(m`9Ht8NSi2@#MEx~hxG9Qo|_Uvw)}eKI`rH;yigH~{Cy3Z7b|VXJ{bXm zq7LJuswL((l|cz|mTDik7WVM{^KjO!9o7un5dvq z+NYvKddRzB_Z^%g3jR$YJlyDrREEIw{JjZ)hT0RQqu+LbL7+F*i}Mr7Z^lS{69aSg za6O&Q_YKap`%&-`AMrm&5GEvFFJP-*I!I8xSA$noK#IG^2%bgV3ZUjZ^)&tAmxDjA zW=^b1s5YQX<#VW*1(s*p*+~Lm(QopA2J$_!TZ=>0tJ-~$rlPFV9miRD`Svi*D*b`` zHkL8p6#uC4e~7s`<*eiSw&ADgwD`4HI0);X1a5ka+rhUcAA!oWm`O z)CXe1uk>l+Xo2b=a;Koci%;^uk6246$vm9G2i zeGL%5O@8%;`Ay-^8uNLX`xh0y9%F`N!^;dg7O*fJQ}0s0kSCmx5F@WDGHXNW_{Lhr zohJ1Ut$-NS6QOpf-YpqV|rpI)@KRQ-xQf_fXA-O zZsHktklORkJMOi7g-`aBix=~LF#2ef$K^zVM)F1SQDhC8*jWN=yj74Ba0H}!#d#G^ z=^mkuk4A#S&Hfip%j62$*c~$oaS-N?z03nK*kt{^?ud3974w61=@_1l4siIo26TDr zl?-JR!)B!);W2?9c{>?|>t+NOgUjKZeXh%Mo20yTn&u7hFzbLOc}$f~JFFD|y!gF9 zvWu6dxIJIg!<`)tcew&har`}{^P7uPod$w@eL1_p7-4-BQIj9C)0+$607w`@Ts8}~ z*AZx{bd_PVc(CxIHKA{yaJF9qM{tNKQPd0!Tg+}!^WE&~)bsH-vp)OiDej2M;e-18 zX4@05R^UTNk6R&6%0-NliM>vgh>>Q%32NQnw|#ZVdc<1HQ(&@Faz$ZnE!ZvXOd5m0 z%OkbhhaKD5dA+6k9_PV%I#1ElKAE4-$nqIHRAg*D9ku zc)L#Jv-y@0Js!L3=VvMUVS#$2X`<81#dG2I)>^rfi(x%=MoF$S#LYL9PS`G>soxZV z208g+|3nN6JYr(U<6B$a7MHzxG#j|bTuHWL-8-81Q4~-Uj^PE}wWkkRk73{7c0S%u z9JC^hff!crqS`HWC|G_7cD>Ud&Te;odSllg6F2OvT8LFj+Pn6L!GNfVtS`Gm!2{_y zeH8J{fZvOjldzzES_f2zi}3np??_vK^{IjSjFr0U>(7IUzl*iDJ}O}~8*0-WOdNl= zo9K{KuVak>$KZo*A-&ua(n_KCX6N(qz)W)fy6V9;Ne3l-%ve!^mV8-o!W8po;&ekj|BB)8Ot*VFxXt4Zhlf|+x$zRy`eXC| z4y-Z)rMj+ggSh{yhG`w1(&b!XKpu56=&HdOD(_ew*D=_cCK=O^6(Bt-my12%%>?u=-1asFZQ|I?dlUp^k*%!=PyzA(&RXzr&UjA@>Y zGz0P!iIIx9g2lGMtg*uSi6K&{`?>UizO{OPkmVcd-E~fe$ z(bQ~~>cNgLAvizReWp zx|<}PVG#i|5U{XI>B2?+MUZI8MN5zQU-3W=1&WpYk00Ss-nM{y3`qcHQC}ZNMLaZR za5p-iRVo?jaO<679ff+yD9;=3TIF~Qd z%3;~8eoh0NQ>Upz7Ws_3ZtXtmt?i-dz$7SYwP_#gGQWK#{KdVrcj^x7vB6h+f0i=< zz*qA{uAu}Ixg|gVRuZK(q!4vRXIr{%59D)G&_idM(?CW=8(fTbfLqj<)SZ9L0Q%zU zfo^axtrl(BE%1*kiO}~&Q{#Fw%np~O{=f>|annchWAN99Ea7mh9(3&IBew%qxZzW@ zQLMx|qg{O{$WQS*QvK|{HWLlszhuc5KA7~5y*1dGB=SBN%}x_jT9%ppVF8K-)}h|1 zx_epo;WVgMJk7trtqQ~Fo`bIP(9M9E`geyMimKcBlC`#&I8 ze6tbPN|#yrc!1~Qi3c3$S=TxFxVI0R;a}|P{eaQ>Rc+5SuR~u`>RT(zFhr3RQ6^*< zN%a@rPdC7HY>N)L%*K07C_oXpYa|852Y=o$&^RWY7JP~MDri<*^B7;Yrf&3Ay7xYKE~@{S+&dw52U9fLuPA#PApq zII%%6;(Sh$nP(B@et^Zp&{_W1LkaK;o1 z#sOsv1o#nD>gR<@*n6M$7l+BHx;BQg?`=ien&-ctN@Sv3<;oGK!bLz zWZ=>KwK#=BWz&@JGfSarSPFqZaa_<&dA%Gedp&eXB_^7xR%J8JiKJ~jz%cD+;; z5;}9$kzkeeFL<=Tx~yiJ3f5Ur(bdBUm>g0Z74hgJUdNZ7&ypq4Lb4)323baqmXYN(?BHNvE!)Mwt zR1ax0bbaXa2{W17;diCTIsQiV^Bw*Q6B~-)(_yWIr9Lff-yg#W0#rLUkWdRJJQYUPKp9DtfP$4@|z#tvI zw$*Uj+jb^eq}+)%yd|a6@7y1Pq$t52zOsxAj(!h9_}kT|Dr6~{GJOZ|%5Rwj@pkd7 zI9%Khcs0bK;l~I5xj9=axinjHZ69NQytf6Nqp@()O>f3d*^=zjnKCgf1>3Jm%Z6QN`*y^ZRByNnz;g zlT_FbRzL)H$e>BZ%sDWi9xhp_3GScz3_KtzBuQnj!d*^Quy=HH0>|p&SR+AI)l9t1 ztb+J5x2d#EpYltOqDNTFOPM2Z&FmfQgmm`%Vyk3n6)ioK-16J-)Y~sDs*FF_jmyvlJRUoqu=}fl9vco;0M46%8&CjXlmOsV8hC;?VEl3Iz zFGsq<{bF<9U%%?|NMnV45+b?$c&MOz#KR}@C~Z7+1(B&+c&5*EA2oDLz+aV&O=);o z7g2ikcQ9Gx>#Y@e-pZ{GR?e6?LhZ2vBuP4mWxqDN4KHDor^)g+twWq507raFbbP!U zojUbUNjIif0BuZ)X2$t8pgwKp744rpMcvF4AtI zyGmcmD;v+nRAvH39TGShPi|+ZzJ`dU86nqJ!ohHQ5(jDj`EZ|K7@`ALgeA$dGSMbD zPsibS{O!n_RYYDO#IX~NxrdYA6eGHQ(e!zM9Ta>YGw9=+NzO*520hJ={$a z(utHie2V2MDmPhXm=0G^;&vqX6v|Pc2{@j6tS=A?1O4+V35^7**@>SsuZ~zK;w}(PLxTRnOS1h3^9eX*Cj&7+ zJw_g|GV(v4A7!+b-Ch&fx^>U2;X9@{z<+38!_E)- z!`L$N0WsH2b-~LTPhRyUI4CV-3woya3^&(dXidQyv!{2zepO+DfGGzhIiL`uGzW1t z+B*Lf`uNr++L(P4Yl_41Nk`ymxmK4_TmMJcRj}fOTB_{ziL}30@_PnskklDb<6z3R zwWjHs2`l3TS2X|h8NGv)=V6Yd_61>dE4l6v8(I#6)pMBjSjZ~ zO=#4BOC2R`x%wZHsv)Q|ecv!{24ZCK8$VC%aM-c)T}fjEPkECsOI_=d%;P!}$U)pu zx0=+h>oS@rfB#5Nde;ib=DX9?VoXS|oMkz;CG+usb2f}G(cc}Ib>6jc+em$p6&-1# z%OxjUk8F5BXmsV47)j4K8z8kRpO=ZkZmp|!HS zySEl30V^nU#iPg~Dr7?jBfanBRVM=J1Hv)9W-%wT-S2d)URS(rpsReGc563SA)qgb z172{V_Vp>x&o-{!1Q7WCnQX4p_u>qoN6KLFK~PvxWsCJ}rS_tl(GZZNSe}$0|KdCl zCJ23t)AyNrN=9~We;Xqx9Q4e;Nm)_FVZGaZB#F!cr7?+Ro=>m4eE%aldh@;C#mj}T zNqm5I0{A0!e(F9~cTs6;uc-O*#EkkfiHmdBV(oOeDVI=!Cl3AbF-xrU;P!a;QzXdb zK|8e=3W296ps?|2{NoPnwc#0tC4XHoaN2{005Fw7d_G!_UOs;lI8J~i%6IEN@eCon z%YvdpdC09fJVCKG1#{_ojU(lbztG%w^S?mAV<`%BPUGidX&-K5hs%?2rzat@x%9XW$g^JClg8^>G)Aw}kV9`Upcd8MlRo)@7 zx_a@GZ2aC#S<%89vn#(?g6>=RI{!Ji4Pt#2!Ga@NloLXHHs$PbjXY5hK5s_1tIq`# zY}+;e)7cojOh_vCl51KUG!tso+ehTm1~zU%HiI8N$gz;ePLvsU=u>g7tt6OU>9 ziQtQ5Z$<|-d*{i~k3T&|dO(x|WlUlqxdR<*X zfBk5F8j|Fqv)V&^i)scxVG~em`jW}}l_m_!qe$X~>)fR^bP|lU#YZylhLW1af*iRw z%PdbRn#l2KZ2%#!7UnMOZUSr+j&}$Z5!Yyr$r6rLzKP{})sc4O?=uRm*v95W6gzk_Z|s(*=H z>zi{|_V%Us$=A;=2e3FA4qJTRWxq0KvF``5*!Ippe)Nrt74`1h)w99<>ig-@KMz2`H1>a7ZY z*mc>ab>i3TF^(LfNpJPi+tvJqmjs5640l4L+Q`qfw5LNUL{Q-%6^V%oMzs=2FPlNe zmycsv?qYr`G=z6n{%fE?5*UXS^Tx}}?~S?#s}uOM9$-)E-zqF&d1ZT^upod8`!s0B zl@i>@(nc{7cp83o73PshHDcxW(bvWDPe;$2{SpAE$93tZYWM8PH>$(e(>e0KS`7uQ z&-mq1v>G2E9Sk_u$Qh}`ZaXyd=G$_-hUEp6XVlx5t|g3iyWcUoL9qT(h`>NTK3^aZ zKe;OA(_X#1Y!NVzqxya2)7`?1`!{@ZhPJL=6BQW8|L)g0cvpZb;C%Go<+wXj)x;Xy zy#E4kpLuT@nDD2x#}_{jU*-8_Q7>HbKFPpyUluQXDx%+@T3ri|6xMMA)74wE9SYa; zVP#Yh9PHwFByEtVu_F{-6GCRhCzOn{xl&p(Q{9Fclv=sX5QAKrC z4DmDXAb28w(4eZ4t};R|vOM#0H?X>-W5ciLMch&iaC!i|?jewjbqn@Vjqb*jV=aq$ zds8MYu1_+5k~*;xe@3WGl_P#&^kF^kt3at-RcCA977~h|F3;9F@-$jR+g8d@vpOW} zw96-A(&{}FRhGX(t4h5`lF&UR@~g{mSDUNoK7w_cM2h29J)DWj$_?dLQQqlKR57lw zja2&nVx;f1APTRA)fShvD>_Sd_XYU!2jn8f510Ai?YA4pxyrC+J9I-s$5*JBiop3%!$NVPq({ljA^XB(944R7z{t z*={}kIJv~n#~hhJefyGPa)E+W)gDLC{xpQ2-{(a ziaQjJ5hlmlgh@u8+@hLX(>q?HR~@@g!T&9Mo52k}{F?9223oB3-o0xjsCrqCz1D6qZP&40bW+3vIZ|aFoF(H8KeAT=#qj#a31a_K9X%mhut)1nEyK=Q4#EP2W?Xg37V z?KdgRYY~c+u(Yp1R+Y0bg9@U>0!k3|6hJ4d;oA>5k!GDi4;Tt%|cJt2~EkTrrpP5IYEH zln}y!6L7)-?Sydz?VKD+pUMSuCM*o3 zPV(b+Svfi?xBYAS?G90jN`!f$C$1mZlLkSL1la!g0~;^|t}iwis4~7SPC%bfABJSp zB6LL!yYhtig#%^3nQBnoar~^1Il20!;}O3WjN^m$8|0A^ZxZWiFvnc57vXO_8Z<)ns_SaL-?GJ)?a!2^` zP>ZIKZ3=-JLv};P&#%JBI0c859DHu;H0H_V)9#V|VGr-~A@0^`OkACAi`|OV^u;x( zU*G;l1qFcj)q}}wi$0F~ezp8peqiF3DbMm80!w)8T|)FO9CEXlqecxL~;o#6Y<*?X-O z<%j#d+Ih2{Wec*bfG3g@T(qPE(MEOpVgGF3Y#iJ&K%lGj%58kN;5`H5l9!C*`CEbE zUhiPr1~xHU&$glu)4K zv|o-rvD=IeOpwfB6Ao_hnPoUyc$gA)-ub+M9-9$yS}I-ADakj623I*A{T&Yu3=%Bz zwCT{I3f-0e@;j3Ho&KiVXvZl_39i-m@!p4&qhVM1R=cz%rC07FPldhPqrOy#lA89+ zZ)jbyu0I2y$ApI=p!Zq@=umf&{HmeAsfcxCBrX!KQ1!>#^M_h_x^5EQ??fpy=f`q6 zBezBBYwW@dH0^Dw?=`UX4(F$M9Kk%fj2E7U_OGT_XuyXfO9nv5V=cVhFFTi)^Fsq_VsQ}jhC|$=$U*U1OOUtdhH+cm7Ar=olT7#+R z8?;;c)8I$fElQ(`v9BezA0W2n{=UFj9GH6QUL$9~Jr_S|wcFV|NNsM-(*BB{{~)7q zkgA6FviFv96^|B%FvPDvFqnujbkqY(v0@z;O!X_G<~}9P+RL^QtkMZLMcHRKB?$lY zDDa0EZ`edX3(wv4GqI;UcAwKsLFX7J*sB#$&+BRY8Occ_Wa0>TsB)zryIXpr=djTU z1^3;zVEv&G)oO$o{jh5IA}CvzO|4g7g{cW)fl zpY!8f?V8_eVXbv+BC3(NK5KBVk<;xq3ufIEzboHo*6opiAr=W$5#v0f-4McG*d0Je z=@Y`Vfw8pdMkv4YhVVAD;hU_h0o3G}_x&BT+)^38)kq{+_=y5k{upL2cAH;j-jiWY z#_@9af~h`JIFJ9~Ov+eU7f|>R%c%-UX>pr4f*6Oi&-_Jwe_JjB=yMKO1>NfvK9dpA z_#SiABTXTPaxvG|`d}uHU=C0d$}wH{#(;Xo{@g5sr!wyChEoWcW3l8d-73)Yf1(92xvvoF(l#xz4;D6V&N4^h!7n?1=hve z*PRZVX>v%}Bpif`ehf2Ep9L{{cD9~hi~CM5p}jy@w#@0&&t~#B$;>xkPU4ZV0Wp%| zTQn8ZcKiEgLixpDoVf=X6wIN!ecg{ID4I2BtQiqeXTL#O9BhIFHG*d-L02orxw>;>0%R3E#oKk8M@u6La&2J%u zRo!a{%&o_}8lI1r`Jr}vU*H9E`}?QtXFmIZ_1 z^4%=UJY^2J;_QX$L*gTP4;94|WmRNS0_<7i@0awWe|S8 zfd6(=IVm+*NP&DDf-cAr4!jHO03J`tlr^IevA*R;`;oxBUF*KgQz|BifzRHV%Qh@+ znH)e`9k69&_ZVWd^V!oC4nQy6p2g~XUF(f`A8FLRPV_5N&(GbnH<}Ok+{YHGNQX_pl;CfY1A(Xg9&oTA z){`HA72ryhuD|(Z5eQi8{*n-fhxwU4=zYgbu@j#fpzD~Ar+MHV?xQG?nBQL{0;S0% zN;mIb75ljVXlnp=hNxo^^B_9SyZvlsrV2 zK1)t1&_6bDqB@cuHg)}3Zt%K@^zRnrcaFf0`Mv%4n)$wOL;nYAv5q{Nrw|GGb{vWH z2a9$}huibvxK#bc)~<@IK}GzLdIgbuQT_~z)nPohB>Qf?^6BXzyb3rkyk5^P|6tq+ z=FA3QiVzMRDL_f1=MNx6XUEk?UZ@VkireG5GGR>tYCt44UCrOHrKb4F4fov+6&JSn z0#W%LQ590j>N>49w%^+TjCF~P3T2ZAZkF(n1mLDYE9)~dpQ)lNr z@2z2hPQZeCUU%2mERPQyAn@07Lwf*?6sVxJCkTaF7sUcKXh&U#Vi_gY{3yQm@ppN2 z=V8689-1Q15PZMMIwny;#zw=QbfJZK0rf)t2^}m#IN7`>x`X|=#7c7xmi=YHtF6O^ z{)5$RhtUrHW^f(2b-f05c70$qN!fP`3a|a$;D8=BO?M9DSX@1ULg!{XY7^W8JW%u( zL5`gdKE-`Ze+(g=a?Hsl=1LfmdT>y>d3z5t;X`RIW(&QyHZcm;9-j?E{>VMHb5cfB zhKirf`{4d%2;&+IW<|dA6{Nb(+_*r_T(!5~f#&REx$}O_3%l0w9`bPt=7>bk+xtr#MQeLC{ zgeJ-9{;HrARA+NR;z_K22P&0LJIh=eU~6&Np?(eR75J$OKK?pQ^F5NHM1A&T_Z{Vx zh>a5J3bDpJAMlF#T{z$AITARp5PZ3c>Bsexocie{oBjIwlK4D*y&K7ZzjD z`G7Q2hV-3{C6S!2BM}Jf@}Uw|2HmtG&H>51j>>affkne{dwKhol)$R-288G+5&NZU zluXOEPNscFO}Jov@Cffzj$B@4yi4uz@tJQ(>j-lXztq}y%&kMYBGZo8fk%$=CraPH zB@5EEkGGo~)eMgXR)hGgkToa8BNVS@@o_bcaD=l;?oVTL0-q(JFakOjM~DIRYsxzl zyk^{+9tg~*7CML3gSjNCem_6vYfckCXPUhQ;h@>~s3|;pBaxQlB>?^5xbq)9rW*@y zakGtZa2mhX6Bd*%z3np7|4dW#%~s@uW!9E`lw#p7EAjSCoN%lAVA{!#o8_Svotzbn zldPbWllK{9_TE>r3*GPi`PPsH!tiEzG1g_z{s8XE_q{U>WA|w(wqS>~9B4Sbufa2a z`)!V;tQ^I31_SL}*F48z?t7|dYvhoklsu;xY2@h+pQBZm$712T*UxT-h>`3PW{Z?@ z5i)~AcH`%=KJE8}!KWe?-o zO2^%6DaOlk1G=@}c34Jfg_+`Tv-2s;BjQ^u{@&-??R-l6_`t;EV|+6HNd;p^UqX8{7F|DubYvkbj10H`sZ&A3*i0@wX;=(XSFM%Mhb*irg ziP6fkyp%Wakl35AVLTH1Of`PWME;VdoKNHK7L90{Pp@`la{Hu>R~o_0a?o>-ykd4i zaTS#X-WoXIHnV{C_pA_Pt^b-Bz$7UDV?ei%A;SktlJklEcV@(kNtYg9g^df!v>q@> z9J*{w8z>)$Jrtg~rIpFV+S#x4v3lU#Vt1GSI{}&09TU@cu41FBAq~Aj86W3~iJI_i`M8wPBc0pKBt#93AAvYe{GhrhPv>O4jw1S-NnHi2i6s zL2)B&?T${7HA5*yz3-%%A6O?l-C?z*N0cYAZBXYUqCt3;&EAX>CdT?52nFc=oZv2b1(JY04W*CSqbr6HFZf1!e1W&P*xE_?;T4Q$ z6rEfzu(y!=84oBdEMyVk0{mXiBP4K725X`)A_WdGsNz8U@MgJaA|lIzpK8RJx%L)R zD<^{ib{bjFeCv-m#IQ{notH$WF=ES?94*8hVeGKa;(WbA??rSHtZtwu^N?2VZ!`WY z!W4)8h#FH^nfskr!mMoEiV-sUoHN@8{q`3$N3hsG{%UYPXw; z{yA`28*16b;lTx$9#4#y--90WRkDBDCZYPUnp}uNfde2d>=gSpkB|921T@JaM zdGE7`TEQ~+iflwgty}-Po;_vav{dyHTsxR-igUB5CKBb&<7R-7C zDAWl#bDZ~5m(CAi+yUx#2tDeF4QQT8Ia+P14=!vQ^^)>X4LZyi)N^$)~H;LUYwGT z;|VFcmx~d-YBrJ#9{CH;BKPAS+xyJ74iJBkK{r28VCHZdDewk^^c$hHlK)}mE;bGN zfUkA7`Z_D13i$||n&wRuBJv#E+V6n*lopv+k(&6mDHRa0b zIPGOpC((-j4(N7>Z*-^H-|5#0`>4A8E(mB@jdDV*<>LQ2SoZwcjutibKH~rY+0Ntc ztG5wHL6sEKT^9QTqA_ASbiVmnYqIZL+qcz|vefL{Emn%{vbQ*^|0co28n@DAGkX1z7aO2$&DVbkq)l zyoNXUiMNIL8(G*j;QS0qc84Ik0vQA>#^3Aw?J~Z&*b>l7PI>4L$i4&RM@Mj&kZ{Xw z;_DpS!tzqlDuKK^e+vS!$oO|HS}iZyvYKv8_qhmRFo(F&^rBu_1i^MlGDjdnh>pT; z8i0rTd-6m0lNCNxdU4RcWWn|freyDf%#^_Co1PtbmG?oaEioH_u%BH9&m*MYfD=3~ z2t!XINDRIDqesn89uboRDoS=TmqnH$#Zx|%V zQj-V-N*_D*K=&j1%g-aTKYpecvALLkZMRVq^9mhRq(8{+{jI<8w`|w&M-r^)yV*ZKy>0ydOig|1hzDmur<#j|f4pvMkiCe+RxkPbalv675*q22B|k;6e2hy9^!v}9Jw*pV3`%Hv8{+$ z0dsljsNZqw%4Ck|?))^U zR;_A64Xjhh5uSKZ7wP~mQaL#Q zP@u#E%k-oO(-Ie+Y}V&nfn~jr?4TWMd~x=PZXiq3G;0b1`@k$7ijlJAPP&_Qf5b-jPcWfD1zSj_W zxM@%d8%Xfb>mE({NLzm*9s)=wVV@UpQIs)!7rvQGz)wK^st=*X0D97%)V<3oG=0`P zxVmgM-{S+>vu5D^5UO8!l>f=~*PXpsdj6Gx-~u_Ye$1v9CGl@-nFNRsN^5URB_Tdr z8r8ex8aJWw6;6K?+_XEqitOx}%=I?}4={~SSl{39dc*b8<3Bn8vPTVcH}uugR~)v* zbD4-yXkTx4y%u4;V;2^eep3#%({3NWhuXNo;U$>PRUdFGqbZj%o=1#V0=$&r3OLJ~ z`ALS-?5GWWQxMswYPm4M=Q3W|_!^qyDP};t*w+qG-lR*XXU!%Fq<5+-nbJ=bi%*w# zYB{jfuO--|=+rkbSh5Vn#l}c|J6j~H$&<5dfWAN4)a(ca(1505VB^f+hQL%eZ>s8= zPj_BlQVaJpeHcN~d^-a`1$iUP81~nVhkMPrAz$mzo~q}JiTR;xa{o8Adjn3qv%c`t zk>@O^Gqdj%5DkY`r1SN7qA<0b^c-<4-RRc3p5pftk{c(YkK_yDI6~G~2U$$ix^z#idQb?sJ(5@e)_k1I zbuIM0jw;Tn;<+s$=BE#o zxIQe4BO`jbUWFwEy5;Karv?xI5phBN#qYMOrhl-nZG_~EsUh$ZK%DDm<)##70gMoF z?3kcUn_Bn6GvG4%5i3a8&8=o^U;LMfeG=iiP_`e~401Q@MOb#iKn0Nr^N^#0d~U)v z0$VqB$mQjRPUTb+ANZ1jowH47kepg0F=D_}Im^~O3>d(M&yK=}Z6UeyfTO1xLTY2xWzK4~B z-!+FjN;loE^6B2>GQn3ZhB7d>R5Ni_VBxbC4p7TMb_WX=!9R}-`xH55u5gR zUa`)!3`Yu3d8{5%Von=Qp9(o%ekg|%Jz2rT2R5AfoT(731$~57rBk)c(^lL&%|cvs z4vSUY{NaJk(iDcMldf!}x!SwuI^ z(eBBYEnIO9;zcT;zt7IC@f3b7+zq29aM!*7cGk*xTla)`H9>3MJ@Gx9S4NgvBH=n- z*yMNZJq!OUv)Z`x2X(erlN^p{C3Guhk+=rp{?I|!bDEgb_)Em#->(IemFYAY|UfqRY z_jR*#L$UKfzt}jbbkk`ylfZa*(|YY2#rPySgg6e`2x@dZKOecMl70F7UNPjB((IW1 zpvjt^h*zGu0@UF${fy)W{RF7fuSK@5OI zDu5|`*|Ex|+K|A4G5JzqgngAIQvf!w9RVH{*jzr^Q{m$y5?OR?7})UNh$9F{F#x0T z1*){*>tBwwcRID}*E!0`Uk@AiCFnu^m{ebAOUjaU-e?27TMGI*U6f58{{kb3rxcSF_ zD1f>gvzNICLIf4>*L4}?c^&uYGgf3B-a10C37@|1FGb49SPr%)Jo=Rei5>RN0fYYc zA6{89F?|4Z0Q12eADiHEyhu-m{mlCOPIDHjRRJcr!CST9q+TD|9X5DXP!98=WNds- zybo?P6B)SRS3lD3SErET^y#II|FQvWBZtAkY{LAvN_>wy1TZ;POV7c!?Cz0r00)4 zBKEgqz3LGEvBI5yco4Gd;dHiczeT1|#2~;8eMAy-YYX!y?3;8?&w+a&Ywz*{k!NeT z@;2htX!`)qa~^nDSWB7h6DNmgUJ=p+XS`#G!cd4r|HkdvTs-I2m~XyaQ8~BawtT-c z_uzRC>oy*b%9HryGVCe(#Sr}KySdixR^)R>ajPp=1KA)vdd`9K@` z5itc>njNPAa6%Ms;d`|YorN|O=8Vw5I;YwR6bFSS$F=2S5JL2hwzA*~Nmgfl!XeMY zJ5KW%HT|Zmr^>bRMzZ;+!N>EP9tv|5+w39JL8>PXp&8-lD!O#*ZVkJUjpNE*WZdV8v8oVZO6&7nKsO~huNqq>LfD08AFtX5onEZo z@6Y?gf30VK!KY)M?&SS(xE5w#gh3&!=PIgRvOIr~?j~=lYY1{rYSAmuf5AR;&^X4U zNBp4Er4GLeGbS8L8a%a?zu$3Of26f#pbN%kx(!&*&LJPF-SC(wuUv(^VMf2NAWx?; zl&RJH_0oCwU2JF81hE+Ui;dBw{{y&f2B-#BII}qKb_em`XKV$G8iPi^eXFGHkpe+? ztlGodkc87>W2lAQyHY(lesAnWymA#UbV+MjYCa2!8BJ8AxmxYDT8j~XL{Nlr5j$Zn zdH#IltG-!V+)CBeJFM!96TdPO$oJLf@V9c^tIq%Z_x~b>K7Rjezi)CE@#Ez8!7=Qq^6R z?QLat(IQQt*(;`-Cz7Sv9UeW(O}5p7gNK zalxmCBQ7|(b^@zX^VIOUq_@5w>$Sbka%h8uc5?-H#C%wua^4|VQm?uH0@Dr z0iq}|<{>)=$Ki_&W7`;d+{sU3WF#+yycY}h7SW^$_p2v28}_o73>i_UEJQWDRmolT zv5`46H%0FkUkS0mG~MrwZO}~M-23ejF63Hk&4vx+<8%AzmxpOC%X7K@is|cTILhI= zMz3A$p7xb0;eNOaMI?TYZt{Jt^uCaGThnHH?{i)HEA4ACJnWL;?x&sb(7129OHQuH zBcp)pY~>C|;4v9M&p^*Ue*xqpyx2JC^{P2{u>hv3f zfQU@}K0eG7wFnVoWBrkj^3}KH(-bt?U<*HVB7};UGKAQbD_CvR>Ak6lsUCQ~tLuZw zTngA8w{|{@1^9~i?SSMLmM?MoyvzAkzA+Mx1 zxzJa1&XPo|H8Z*av(&9e{fd#Am7R?{(l0|%!vl_a0<_|7jo$v0<+V)zq6nq(%q*ef z;fTr-mNS?H)$0l#T3;q@Kws`FamQt|LS8MixdUk&e^AUmudf~CXZ=$iW)Z5xV#W73 zMF^31Pk@$HZDGJLAm*?q{*ll<6w2MO0Ajq3jC`N`u zqltJvA!UdlhIX&4k41mNgHr>K8}yi4WKU?LmDN~oxFg}7LI@dRo<)|~(L`%kdz<6g z^@KV2Qo80xyRa00skxx{cB9w#F?5m|_=s~hqLr>2GU3kL&KUJzyDs8FmX{0HV_^*( z8!Kw*{^L}Sh4|Wok$%p1@(7)GEc3-uUy3`g`R-R2U z)MS^!>lneIqf^Aw`MWQ+DpiBNd}yzuX1>eu@od`1^H7|~eTGk214k+zI{`r=;7G}M zVFb?aB=6UkpckJ??4?CrbHpK@#vhc}>c@6mj%XX7@4F|u5d|1pR1mu|g`Vf;PU;=g zhIZo@W;2yOh@kY=vCY9|$v=rVQNQ3(`5IcP(p01n_SsSTt1E=@&$91A^LR=fg+@<= z%3#~8EOdQrm70!9{9*|N#Lcf(vMmA6n=Qao|8Rnl2Guc#;wZS=XiePMqWct){Xih# zT8dn9HgGPP?x#a1CNb^D432bkccb3$QH;XzlC|S5s@))VRUkD)U9)+kfke}RO6hK|^~qt3^AoA2F4cwEhGz2{reNDd3>gw8AbojA}S zkeby>_6$_(WUzfB|Dsr4&V&8a)8wGLsF&h16!re_D_`0`i3Wownplxf3Zhxm14=jq z^bG2-O!0zH3xD_pt5ZaElt?K0oh25j*nGtaU&Pu5DhjRd*%8|Y*f+LIVmRtxv&dhC zTkz#o+nRd@KXQJnVAsf8O_z~4B&Q4CVfl-+OSn^I>iMGnsE9g)#S}+xyt$BtW$vO< zn~VddyF&0QD2*zTawz8aw`m$PYN)_*zJvC=X7E|r ze6T~4IR-eiJl>MxxlfTRgQCK(_~OmPWj;OD5OsPtUpBrxO}ke`wwjDT#vfWS;#D%# zqWt{kkFOnb>UBB@a5H``v33KvP61ET5Cv>O5^Vb5Q2E_(@e&Mc@^7SKU$5${q7!d@ zVSsI)H>gBhO%iFSF^N-T*^gt0jFX-yv$UZJ;ugvxkb$%oUkcL}#9+L5Dnmtg%=cA$ zJVw*qxeGwzSzWjbW|cdp0a4v%4>g8}>?g{u>RPHxdDx>GeswyHXO5Son;u&iQ&OP7 zm&l)v7PJxc{T`nO7i&ERWxeKo!|+*!Nxh1PKPitYYpQYG1>JS5I9TfM0HBicZDh<8 z^~B@@>qU0F5E#ldFfHJKok+@W74o`UfE{43mTA8l(GRNTh=F=jpPrciUhcmiiyPt% zaVNaf5oI4ym$zN}&uW8BU#z*mxxQCsPn?!DBApjsZ{kj$vN!klGo{M+C;a7&%2cA! zLh@l9vNuC@&1(%~f9r8C;0A<++Z_le`=^WP2JGIKIbh)e5re&ahI?%DyOfBYh<-7U ztKmFxHaFb7MS}Y=vA=@hYU;xPSqp$jSXZ0wcYxqKU zZ~_n4^@kq$g%swbku0k!cpphG6&VtxP0}U5^{EMuucWpqARb1)dm>(fssWMKL4}tTJ zlfK#hja%2@cp!%xT_sQV8!Uw*756vMy9baVfFzOc*85_1IL*A+qp(JA7DCUn{R=N) zr?tOTf?6pcNXHzSh)U%-p@6=3C& zf4T$NkdCp)-y*vhTr#|wq0`HWbR>N!b6W(Sw6lxp(* zV_%~hR!r2v@?bSAU?{xl+P$pYL*m24173;@$I1R!IyqXw;ulBrkQ$;L-UheeY0Tsp z;H9I55A||DLWt-H=8OIJREg;q7mUk(NpY{dr@ZH9-^q^kmXZKYEd)KQF_3*t$8r?D zmMKg~&Yh&*%C+RPiJ9`a3DnUWTH3wFWjgv*Dg6zJhP+(q1B>o!`~;ifP%f}|yz*$s z7o}tLsw~25be1(lD|5)h=p8(I*h1x*=0t4VqfC@-aTMH^f75>D{-YP(Ai_Hme+pJ%&JN$3{F z--r-{E6dlG7AzJTg#)DRf#~ik#HKaRATFw+U!|G-AbjO58;Af5L$ADU{)yfuPP9^7JFuN<&~89I}D z^FyS(uKD5ad=cdAqLB6z53Ggps-0f>he}WQafMF`#+XZ}NY=y?oEa$LuUde)OB9h_ zstW}jr$^Z6kNKBv304b0!9Kepn%Q9bEqTb?KP=!NVk-i~ji#0RkYqFN!^&Vjs|%L8 z)hc_q2frjm%}V;^37ZyNGcX5td#7BAHu4xP{9OWe!yBylW)Aut(lf|4%>2z$MXG$? z+UrTjnYeRHce?!EIeDoSd=^SZbPaQNPk4qjKJb!#vs->ft#`A|#DtCCgZbvVUr7g8 zeGO!Q>T)`iav1`sm4qEdBiHw3oY8rmE~*!P;MFn!RX7On%?Z~*LcsLyTyOQVemP9v z8D&dK5N#MYsd&u1nhe-kcjbcU(Vh;Nr~7IyO1}-Vz_T`Dyd~z9|O!-nqzQFu09;cDDtrvE>u%#eJqgl3#o~ zyNzK*pnvkNhRV!x3fh>xlM~$qSHu|cNQhCd7b!CT(g-YSF9);WujQ-ziiCOl0Zq~S z7D(1iyChz=WfHh7@US^Gg}D{Kt%yyLeRzm{*TW_e0xgw+(49F65iR}7{^01CerrtJ zy^e9(JpO8*DzE(=spINZh0;o6lf#hB?X#h>b<1zL-KLLuQBjhtNH2Sc_b=x%OGo@P z)uf%mfc6k2KZHLH4P8-HipXZ-r<{mt_GRVr=|V|JBna?Dqj5BrGl8R(a>=t8!5G-u zb&{-GuzwM}*4_a9F{Ftj;(?P;Y}NVPUa-#=n%7Gv8OplmEB+EZ`H@O?ebTl&-)`jo z*S(R$M+3ChBMU2yiGe~7pY{!-Rxm>vjfSCG18tW>GCY|ub9Q%ACfGmx0aS3gJn9>r z&eLnx5MN%PBy?Sez!}ThJOH;Rmd|sP%3|YER9urtB+nagn+M|^r4M|O7Frf*{k-rC z@>@O={}$gI@Zff7vdXjF=-&Sp)VuK2>2Km8KYBa-UNT>v6h_#p3$$lq0&lAJi8b&2 zHT@&9tz7L&m)iwXHbiAxfVkdmunTLSTTXvvZ=eEy)`NNC;l2nMQ5vJmaMBw0+t)Y! z=kasT%JA!JmQH3kzKn^7c6>*vrhw-W5P3e3qhk6Rr}qkqw`U~Mltl;;{$jYwf)T`1 z3ILSmd~jZMa0Q{MZ(u>&)e75ccYTQV+2?$P5$e@X?#p;B>jk%I3VfxrM8jT2W=j!qMYv5@Q!&Z}I+lLHE= z8Wd!*`R2ky%AL-;PnLbyXUK*I=m%dm#j!I&BKjBEN{Ua|dQlyv$Qj8w zhEh03oi{D|N5=|Z^cc$}QDEoK4XVrpe!)byZMG&0qkQgZ^#QBrdnwx9bH!saB}e82 z*evUItR1e@5lI9xbYiZ2P~Ulzt!b56FSQel_4gmSKfci}Ls1g1+`b(r0SMHGp&n~< zK~sHV{g!vf*z&8c2EctK9|A{yr`|?sXXB8C6BT?LGw?d3HJIB8)pD?vwQ+6XQZEIS z?wxOof~4CN&mP@x3jczcg8<`c4VTOn$t?T)81KMomG0+qLba(M(5Zwv*;w`)cBel6 zw6-5bV*xn4>h;9;`lI$)f|c%%D3c!N6;<<4`J67?OwT!t+(W{%{VjSf+U*30x{3X0 zg975d@aeH01jT=%3a!8P+0EqHax(3S{Kb}uS2KL|!wzeP+xyNaGC$la{lW<>nP04T zs+4owDn$hGV@De&>IfT=Z5{R_P=3bUI&v=$Rvad{;J(HZWcn692l9YEqllI13+O3n zEItjXJ0$6k_rnLwYAt#PE6HjK72_-Kt>|!H>9Tqr)$Dlsi2{gr0e+V9)BTaR%P>Fx z=(EvdyYX~GmkU@>$aRaR4u>%nVgABI09Z%u2(Rrj7X=P@^xIbvQ7?E3l;~FqJBLZ zWkhH3=B0WpamPz3@dG{}W{0#cjrYx9V()=z8n_?t(IzI)c|X`OAMt~STbI*=IfZiBM=NX@Tb`W}f`vQgu(U`gIQ8ClC*f+Zz|j%#f2c04Hb}v{mZ62j z=z;?{J*dk1mOasyeTQF@Xm&t`QQe`YBy~GqAIV-E61 zb5hwOcnt%$>9kr8r_Z0z?nt!eQ^L97{aV!8{-uOhC!=z8cBQp>Gt4{wv7)u6>N%GH zoPKyKT?w)npOd&EO+O<8*3cU!-GWe$z%-#0@bxN*H$FBMt*Dpwc4(ib|*fp20lh#Z*jCA{(k& zyLlX*FBlFUpH1!Xwkdy%(11&0{QS!RW}GA+4ZVDT-)0aT-re8(CbT@sK2LX~mrN4I z_1gKKpK^`(T&rO%@fqM0U%|dH%(ejKZJ>6&U_im3eQt2>RbKeGlVxCTpnlZjt8ITH zOuZadwNx3B*xi|jjlH_d4V7hq(i9C%dmL$TU0#X$(s+zVC1*)|EFFVmd&vR&g3z2k(F`+$BS zd%%0_plISDIL&pD2qyvOIT3Zolk{Vds@y2@3w!T)#JB-T2%>g7^V@b;k4&Y=XG!C2 zM*bIsS7MHj`kWw4I@vg=Zz0>lt$uNEbSe?^Il^V%0)>4u#-F!55YNYXiAjEaiBI2d z%o3l#-y)%tzdGLjme<$ETnsV=jk-X7@JD@ofVRMg`8AVFEjxYt?2vDa(8a|K`VtvJ zr`@5<{t7wSo;*QpF!q*zt)}E=m*2(r_gLUx;@xe3@`jypfQ=(Db5xa^GCVF|c~dt6D>I}rhE z;a2>5aa3?RzRajm?=j-Kz~JH@8hma^^QR^F;y&~;$no3u6J5y$2Q-S06WQoSXAIO~ zSUBH{d!@DvOnSF?B!nVq zAs_<{xQdM{fRJc?KLC>10+0FHv814yf3kG~J1pjJ!&XU`v1*z+A_Vc!V~ud2Hat$d zh<(ye=4?=Y1ZWfLc;k6Ifyk(^;w1+{pYKNP%Iy4$aar*1AB@})9FvN}6B7XPcu33GG&_5uq$NjBSEl9AM`kkvvJY&em}Zh~c5Sb^m_AG)8va-pP|*J=20 z)yQI;ZPMIM(Y^O9;9yE4=^2DN#iO2vUk|Dy-V;?h8SLj)(9x93e>YO^IVk4Lpz#|!Vof@`uKGrp zz%t1$_#{n8uF)aA@!CpZ#+yXo-#tZ{Ya2v8F_2U%!V2S%Zbvl@nxhH=U3lG35g6Ea zzjMD|ubgDO@sBgu$nFnE%CaR~J2w5R>2a22x=D|&(sd6b2;_o4bLSE3Vulh;4j8rp z<`UwQV&YZTiJ+m-p8IP)V))dTCKUAD7?7>Daz=i-BpLUzOuUnXfXKO?{Ok48n8}@FeJ#_dq9!;Hhah zx%;z-e1*L=BZRXwT5q&y+!-r{gLa|(zHr&%&C@Ici#B#o%==g*@mt z4`7D_bgb>}^P!uMdy|f!lz#d`u!z}Cl?EdAfJw`jokGD*-p;eE+)b}-O4K7*E_^Ed zF3LX`ui!!8-&iX7aN`HLljnUxzT#@YVbu^|Q3x5ax8kep*OB1SW!Rps$hZPV05Qe5 zPp#;;uJ)n{y?p-l*W(fDP+YQpZzPS>3ism8{xkr_z@P;prVC6lJ8vX1WbxZbRs@WK zW76r#v1t0%B>*rWDYC<7C$r@gc9`;&p0Uk%V2~n>sNp*?#w!e(1Obob535+#?R=>O z%l{E=J$@l*6xOFU<=m14i1kb?N^{plmyzDpB8P$OfF{Sk_K5U)*nRIQ6rt|NvmUJ$d(Y;NbtCqx0HURNJEH2l*gT^w9t)isbl45($#? z*Vowfc3V5A-Bab>!di2V(fb41+M7E^;BY&?m9x(zK^^_yHY>^wTV1vU#bx2iY1!Hr z;4(xr?6Bv4;df5iJ>zGkbm}U&orZE8Ufn?=pRA)FoUp4}!cJ9?Ywy%TN<{`eR zg`@pW0QmK{iL-G=K%uWRy)V!-iZaA+0R5MPmtx|r;hU{;UttHGQ}z&&f)qg|U#h2# zMC5}#P(;IqMVGWh(5-vH>2@a{IfC;u!>lS*F9;GM_Bo@DalFy;4(4Zp~sQ`%8g@PSn|Z1Bs+zI+7g)e)Pb?b5w5iQDCfYex8q42a&+ z$S9RnK0SPRMPGV(#Jh!0perlAgEs^2g0oVVozvmeAx!mt(7KFhlWx9zDHadI!|#iW zasPac%lcUwfV0&1xG6(Rbb@SnAsXdW+r@4Xjfgo=6l8YGf_qSaG&`&cUvQOgpq>Bq z)eK*}tPrxbHXZN$IB|;h%%^XOy6h3RWE0aswkwd295k&cD9#W={_w1e6lS|4P0)1q zb1CS!EXB}#T^+~JYY40J_z4n-O^uH;wbwJYzMpeCo=i|2QkbST}_}ya5!Oe%e`)a-> z1sn5h`|EET8!f*G8?GMH5buYJMDVg%xR9_PeiZ%=Y%-zls+W&YoRy25*SWy%s4{5y+-Mz&2^7gOP@v#O!S^2U%RmYOg z=@1IP%bkSCe0E>rQd(7FgNDnH$MEBIz?73O^<7+*$DPHiq9V@lO1|JZ?Z=ij-CyfI zH}HynI;W={2UcN2Sv|f_yT;rFm#6WV00Gg9`=xn*$fs!*`FG&2Q-8%Y1fAfd3;0)n z?`vtVG3BZPHO(N%om30A=2KYVk`}Pn)5yUKziI1*pfKzfFC%vZrXH;z_w$?S2Xt)h zfw8F*?5ELZ>aYp}9|jlZ%cESre*!ZWtKM8(*0o^e(ui4Rw)_OV7lkHiJ0hO*80)~= z26Xn|^Xm1Su7AC$Yd>C?a@6YLQiKmNNv$|Pp!G^9`{TIJ`FI}Dy(I@8f@d^~@5ztL zUKrLzR=LR}(>?nqSHOJS!BGiy(LKLj*9?P8kHat{C`>u&zbbM?V_)H>WyX9&U%4NR zmDzd6)W9XZlkl+b2wVm2EebF}LS6#J^pISiR){{0UcEz*2+r&C-KbXxCQrJ}Vc+Ru za%Mn|%)vf5P#DW7B=`xBu@C#}^t$i(_%QDLx4<9m@+){(8FwcH<=B?ml;?}Ee`o*) z&Qn8QZCNVhSPr&mQEX<7}Jwzz#Rmew;X6}kY)_V%HJGb3;T04Qo2A*Y%T!Wq&NYkalm)yf(QvsT}J}==o zZQhE?X2rlxn!+8EU47QJ3U*kM;;cD(CBd?m%mFLC)OIdDcB=+)m&UL< z+V-I!^EqRU=ngYDw|{=Ps9Gf$P_LJ(;XsWdnJ-;YWIuma#5EFM^mEq2dKYtPH*1eT z)D(TNl;dT0q;EMYhas`ec?%ZSuoj$=8QO}I9rL``R&=kG@8$0P@cYS%RORlg>oLc% z$-RQ5>F*nmTbh`?p-fT6)cKZRt4=oVJN>274gM@d4RLRAYiC(MFxzf1Hd3MSmL5fr za#eLSHCJmR{%g#c5qHWY5w7Pbsv&4!0VfQ;10R~kU!VCqe zs)KrV`OLljKKBYiZ%lGEOj@41(~BpH{<+ZhID6yTiC^wdQDvQYgF>}p6R(dI&tl2T zbVuFZs6my93Dv1AN|wlgL9RfYn_MM;;|b}s(~mq(yx7ul%BsJYOOfwm|E`@54)a?X zs@8=JIIR*>tmwXb5EL_li)IZcrmtN@g_4Qr-o=l-O~KeHKeD>4^&LXw(;!6sI$$(| zf=KOsWX$ixFJ|Xabepb#hb$pQO=1@@ryxEql^qt-T@-d~KK<_%18!P0c^RHVJhnIP z+PpHtPLa~iG3{7JREJR4u-v;}3gk`Cfut=_ED)~8H)7%e^;oU8M!^mxHI^tpqH>M9Pq!@;cg2sJT+4ecU0;ftKsf8c;BAX#TULyd31azEM_e>aG{I-m3%&t zr|fOxOMg0^pj9!=r%VZMF2$slo?Ej=R+~UAijv32+_v9GuEBo}#C6wGrG}-}OMqbr zJ9+zt9}ClhSN18(mod*A4zrpAmecs@%u!x)-1nDMsJ3Oq=LEB_Y$pi7 zqJ*(mma`)#dpqx>?_!jADBKK@V~Y<#@!md-fHUHGbxdsc78`)jj2cBg9`i=b_9Lrl z5q85!Af2Rmp(u*UFZjDVcnbD^L9n3Yr&Em;S?E5sAMXkM>K$wRKOG3=rFE4C>JuoH zh#TE_slq*JnjWzFlHttB4io9ZSy-M4$dkxg6Q=c0A8}WJMNdi7hd5!j`MyL>iW%7r zmsbaS#Sju`_eNI^{&e=`fsuAz)=gGSN#MHZc^BzYz$3W0E>WK&c7=|JfP4@dx4j8!H0Nof(i?_4nk#@hYy>U)%zx=TbOJ1QU2R#XD(FcM6qy2twG&8cQ zdel<{FDs2_9;c_G&*q#Am*wxwUh|@%nEHmlH;M!mS^^84$EU;je69}hW~Euk)p)`q zl%*ln3WK9@Av+CLr&r5?F=Yq@DalWZ>RXsSYsR}YzIR5khYSXH}mXutDM)STTNdP z64JW=sHT5kUJuRa;L(KNk1+~Br%|zN*iTtK5E<6cp9}JzsZj$TpPD(-5t3T0VXhyX zU7I40X7^Q;D>?`J{Z6)^GlRNarvs~Hmk*3T8j^JtaYxowIZ1YLxvwP>7ssi+2DPRl`x6P8aRu5 zeuj#v`3(!2(&y|22g5P4kzRN>$a}d(3^wD-K}%ZH08in2OoKjGz-IvxzYX{8Y^!S6 zC~r)&^H$hr%~Z6vEmyS`LllVDY2tGQYZkg6)_{=cl5pPP*Tx%Ug=Z-qPaTmGCY#%)D|yTCsebg& z;h9THDMTl{nKF@q&P10eutVY0=phB!?pI>E_ED`4gz%_x3f3r!K37VDa@!NdI(VEKq5<^%uiH(%VEX4C>RfRUs8H zUz{-XDNKR~kgveFmA#)Nu@`jvTZ%YF!y<(tjT`pPWs~o|ewKOWgeR(%*WTXg)ZtD@ ztu0R1p@e$t0fA8okAju(l&TM_Wg1A$l#5Q!tPMxktB~H zdbtmbpY&NkI=)a5;|J?a@X7PVy*$M8C$fm2uu8vc&6YpA9vb?qTpN5HdvX)_hj$rb z>$ZHC>ipJ2D+hsz>3`}gFr5>f~9Vq@DF<`Mn-y&1yYfg*^r z+|%`e5nt|5f>0k9XX107X9=`LNC9}FnOCPm7IRZ~dV&uu^VR0VbOEfUDln^j3f6y>kH*92AN zwMZ$M%6BKi48>81L&L_+(BOn13AQW2%e}!udJ_Wa4jE;ILjEm3pViMh`cr*Y^GO22 zZ0LeFTopc2zJ0R0pbGkB?$}Hk81Ns-_Qwn$qg5$x?$-hEGty_`puyzgozL&O#~jrt zLq#<1>)dZfQw-IxKc3x=;AQ~5p68dRiUP1CYmfP|Nxyv+py5|=Ig6`y`PP)%evlsP z-k3}ryf4gH#q_}6;BYPP2@5_{#a~|Dv5UTUdhdc+Zf$>MY|P^F7cca<)KRtdFb>CW zA4MnqU=g5e*|^eraf_yhd^JQ=*cJrgQar z4DbG*eOWCTESpgm<-xamamP>47I&Xec(AbjE!@!EQevsU6Ap5L{7(Bs zR0Al}e)8G9z}OMbsu zD)SuLj8cVx?TwFmtyhlE}W4xb?UGU5T zEhQ$Rr|*Lp%pcC^;rA5mqmKw4^QF z%RpxYelu+7@#D+&vzVQGKD4lon7FP>(nBaNZq6FOIv_j@hp5jt0<8}c^{BsSjRAP2 zk7d3}a`;WyDnyneqR>I8JO z)a}-uVzp6zuxV;J6Q478XGuMA@XB>1n%*3K7#$Wd2N5g6J9bGQ0$h+d> z^x0OE4b9o})ujC?1$oFl!9}51cEPO2kq#MOJF1u{_odo6*VV zIKf8uilGH8i;r@@A>h5emM>7JxxdBX&QdHyP6ih|-we+?V3p9k9YDnJ?t@!?GVGR* z>aR$%Ymz34WltjamoY`aKWL?>xd>w&vGExriu|FIV zraqm#e7JY}T%Y3W%=Iadi_FdDSOm zOLVlDr>6bjFTpJ)@@(1z{6Jcaomt$G$i9Zz+yo~qNj;6AIr7+!a4C3f8$5BlXhCqf zcEwFq$)-hf!N(si{&1wK$B_3%22yl5HY4~nzOJ;P55tQ3HT!J4+i+mo6*cO|qj1?< z!MdksculY0p*yFahw<6k&x$G-)ypWZpcP>{@nG6PZixpOgP&eje_mG|WvgBI^(CG! z1+aTaMr&D=W{RFPem)Bp7Bh1P&CH|s zMb~#+0<{~IE1|04FSqje&=Ny+f#8d3pdxSFxk0WXWe}u$i4#X6T$yM?YrrN|47!GXdChMPB_wg7uWDkpxV?t&@ewDgA+a)>d;}!+x#%?%aCd`; z*^2l#RLd{7_?`a2c901VfxP}u?`XZ+593>k#w=lNXH6!C?}zm86e3Wk#0vizLV<;q z3(T$dezPcr6_#PKK;&)*s0ykH3gWOR+wG7$Y0Mn8gZneUKbt~KH|R!tsPc41Xc@Zy{$v6 zk4r$wXic>o>#<)1IMMF(1J!r>+xr&wjjy>rq_F6IJ%bQq>))(=DM-BR?Zyjoum{)) zY&T`uEK4a}jOBV6Q$s?C!egEPA9B%DXrQYp=b+C^5MhPpR;mCD2bb@o} zjp|uyKPe3Tb!ZY#d{dE%WFC;#wEv->ARYn>q1z zbqgW0C?)BQZm7WCz{OYrngN2;p03Uh*>Q!+X(Uj0=r^8PfcS>jZeGEiNf8VUZFu4- zKiJ4{_)$dUg@arez%k^V*+qu`(~ zy|doyU~438p7f!vPexku`pwsS|8fVMX1>0iSi^Ng606Z8;9tYdoJAXxMU?u|+8yga zRmsw$WL(VyaC)!+0!9Ere`l!tjXJuN!9Z0z;^M2oZhPnt-)H_b10XLF$PT}Zpd5{a zuc_jFC=i%Z@lYtv10LcLEua2)=K9V$uJVLssE9^>ocVr=w+-eTOc4lfshr4={h=j7 z61(aE%M0kRz#KOZftq{l=|XjKpSnk4KM`sDJDn@#?3{wnJve-uMp%ON{8)A$U;-L2 znKzRJtKju|P2+W#Q}?C9(2<-X8>u`*z|wrJVla8$<2QV0rwt3@YA5b_L@#zI@BZF? zsz0{qi&0pSJm2r{i%^kWIQwvAam%IU#w}>f*MJcYY<0}rzyra#G9cDnDHfY zSU`Q*_YP=x>Dr->Fe03s(csrhH|aJ8`YQ1zH@lcVbiW3=Su0qKp#qYE7C#`GcXh_q zES#in9SX4W#bHJe6uCVLqIY*qe9ZG{JO$JTYhK)L$cTy$t7h^y9zbChGU3aZL#s_N zAkpuQT9RmVQOkiV3Ezl9_%3NQ8IGIIA=Y)Y==(SMYz+5p64}uGwPEovBRV=qq`>PT zaL7N@D!{iie^U`wc6eyZ55NCTOy(*TfcqQ^1Hcm4wSp77oC4d5p;oU$PQZZXz&+6xF#jLYZPRr*pZ5%Pc&a^)Zfr zDFE1V1E>!1Z*e4x$SNx1I4JOpUo9 z)ZQ^EG1TOE2Kebhok$dePKmI4?yorK`XdTYu>iwq@{wPlQBKbAGyqEyhf7Bn+Clp4 z?Dl#E^$md027JOFg++EtfR%LrRiY4^NCrsn2drxe3!c%rTL5C*BF`BDm7h z-=A^Bl`vf4oPwOKadT$~-q9gMHz$#1ED-Se%Yd-QxA&q*_G1kK>klKkhbV{)2laLL=;sfhlu3eDv0dJ-co}L)=>M*JFX-kh zp#}8IDFgmJxDN46YyiS6qynjSD{jF%VdK|{fbT1>+>2p z%y7synGvWu#9}ebke{#~U#yrHM7DO+pqQYMAAS6F-CLQjfD1pkGhN$VXoz~cT`iPc zW_+E?fDXpkE`J8~IE#eFtRR8tq!ig6=8{d#9#7=!o2|D=`g{98h^AlhvekNnHxSqY zP)3C2KruPn$HY0vllloLd;+kquNg*=BEBLlDGnuSl;Q4&=gTdiNKO`r)hEke?qPlH zhA9$uWjru|bew+ajgFiLf8Y_HzF7$-Tm-@=05xtvC&*A-;cL4&ymwd-%_8C8Gpu+ zvt?ZeZ|RpX{Vou0tZj>E4|4sd6!D!Egm*;k_I=+ec@a*6nsaZ!?oNP!E6S`K} zvBRSYGj^52z)I5$JqV)@J_xAQb!YorHt&|oF)ZlKY0eUU|xki zH3fsQeMi*(zhf=rlTn9*RSZegTb)JCzf{KI68V85;(3j6jF{EF$jX4wR?WD9Yb;=ih`iiGOXP6qP)XK z>3B>>^A4`w(r!GmQwQQCqQ=x%#{s|iuR8bBqlLH!@MGvb^Pj@6_sk7>s-)vjNAG(= zo>}j~@Brr0zRg4ZCdd^e-~J0&6_RO@T21&3>0ai%1;H$$j4~I>oBPn826s#Y$SJ&= zb41cl>^p?c;(3+eHu`={KkeKnciI~fadvDI0`4xAm9EWwbuCEHu9pEo?RlTNmpBKP0jot?@@ zSi<UT@)%KYSz~6x1bYzUWpTy_KG$~23Am>wlyP$_7T&3%qJ9g5E`7qedjuT?L!H$oJ>^-{CjEHKFJ#cHeCdfH{atr}K5r?4 z5(lV`&qsK3`O@)m4(O70+2_0~ z_F*`?Bs0I(NPiw;XIr16xP`*o`Rh;9^XG<2&Nlx@T2da=?@q73v!fm*gks3~*B%IJ zKxFueIFz>R;{xnd5V|?V zSr~bg94_ycAXAE!kdAm@`2>Y3-Y9zraPgq`dibd{E`X{kb7aB$xi?+i^S6`gOz-!- zr;l#(gf=q3FUVt+&dbidFpJw$SrCSYyy3;)=4`nB?&6u2z;A0_y8CF_U89`F2Z0Fu zcpk>ylheoU1PkArh~L9-|B<<61C6IF#qRi1oh}(DALlTU3V9-(zv=^55S&imJ4x(6 zl!{T=NETRg@kcn1^=fh=>$e#uYehQKlR$)!)(%7eVOD9=KV-eKuf|aMtlym2$ThO@ z^=W;Tb~&U{_!+dM6wl^9yqTdF&71D-k)i`t=xd8B91#uITk0O03~zlyjOt* zFr@^HHxjdy+liBgoeg6#N&TkeK@-kaVSP4hGSs#j_=QRXEvdN&NVK_K_0dnFn^dT% zzASWhvpb5l5gj&|Bl@!s-Btvb20IG?2Ahg`?;zTpGaN8#hndJBM=RgBeD~V^gdJ~wc4T3-AS%1FY~DoldzbSIh)r~H)c1sVc; z@{phAXS^(-x?N~6>f_1JA_p+VyGT?I{qvzgC^4Aq!)aZ3$K61-nFXGE|CMG$c`rq~ z=TjDOxF=RM&f6u_)?h z9YBrYyBSjoz^ROpB#~GD%FSdB);qQi02A-axslSf0?p(8`He0qnwwvIk4<>HTgY z)~;)&|5ZBQK|z``jxIfaCx3m^KS{@?VNoA@j6>^K#4_NhZb%QAiMck1uZVC9++-h< zGZtw67@YWI`VS#5wEU?PFRVS^o{6R<{BD|@Uq|R)7Ql<(D-$p2{cM%x*@Jk2AdRa8 zr}%xB;m2jpxREs<76-JN1pf%SOJTZ3`jIp#(Fom~Vw@1fwlK34c!;5$;f_&7%&_ zMh*8c9qm(dHW6+QkYZ2p$!`~wk5Vv|cQ_)kzu=yB^D2oBH-dni85ToD{2gaTIvHC7 z3TtGJe>RH`@T1-V=fTJ`_SyQJEnq=z7@te@^P&jvW^PAN( z_>=gX;+sHcT>w^!_AwoQuj=m%QLHs?+QB~@Nj4guVa>T%NHefgp1{+v!oN}nGNdAZ zwZED0U2mt4Wzp7qS00>+YQAiq-$wY?(6+i;meX4ncJipt=qma=Wxe&%A5JRX2^WB^ ze`JRE2AuY(L|>c&TTVR? zz$MsOJt7MaiRB^^?KUpWJG;FewW3Yu-S>3Bd8D)7HrZNxjCBj0|NVUv5l)fI-P;_U z@rqwroOAC*g$VL3Og@Q7!MW6W$AgA8t#m@CkoS(*GB$7W&hiS&R+vWLf!Jx^wRik{ zoo_9cAf(Fg9a;ichnT7a7_K873|Ba)nA-l4dd-BQs+=hIHG!8>u!l2vDR-Yb;vce1 zZe1nsL_~acERz|^pp78zV!<8CY)4|R_O4+0Z6j?+*T?0EbB2w;uf@&Z+UY*R-K}4g zvjJQe-SyUz`+bazs)5sh=e3}{98;g z#7b(w+2d&=b>B&;I^9+FHv*@r**IvQ!~*)#$y>U+2_4R(XBf;pm@Gd5Gks^8qvK3z zXDsdMke055L!L=!ZY^^61s@FE?UW*9wKx%>{by0X4+sX|=^JfX`a>4mWho;`_0# zR^o#>4nD_6R*>LTSioY=9C1xr498c=~08u;DNw}5p zM!jCKfxu^7xpzSc=@w&hb+E5?fM@tvj-O;uXEGFG0M{{~*B4$WK-zvG(A^A_ z^p*)@H#GY}wnxe_pY6)Fbg=BKsSs6PzQ#M|Xrl@LTCTeJsDAe+*3YQR4wr_bt#2jN zQ7s$gdIm@hzQix59c+^|wi=Nbm$!NVEj2Xlo?j+JbDFbno!Gu{Sf>rz{%Pr|pZ{#+ zxL&R?FOQW*freFUMSD5TUcQs>BHm#|GWa$bI_*}#E@hrqy&69*)q01Od?kfZMkbz) zZRKelBrTZv=7{jKE==-KX2xj?6=y~2UL9)fFvoq!#%_o(#2M0%bp?D8bkFG7pu68S zfH4|L^A0tWjyCtz73oLHce)T@espWBr`gD28G>@iC9|L(q)@`bCE)4q`rd$25C_x1 zyl85$3k4rXM{VP*5TFY~%_%p|6S2K7aDpEDTC9Ai0*3+AOEAHRcg^_}%o2C@&Vb}ZCoeOfcD<(`a%1_qFk)x0C(6C`3Zr~i~hzU*Jyu}_gu zn5@t>uz8V(xbNXeMWaspjmDr-$(IC{QLEMo7Yw=?8hO_$Q31m`;5gl^L~pxe1EP+=5M~U8pLYolm|7hUWmOqY zz=K79-IM}xV2qLW*i?Ar^#i<+{IV-I-K&39`9-#@i<4k${w|B+z(`0&XII5BAO3^= zZERS_?85gsPEscaaf8VT5no*O@%232`p%=V{}E5ipC4dw!>L;9i!gpt^gy*BL|u&m z!rko)$FYstzsv#$_tfOH5_}N4SPYY&+L5?>R1ds=>$&09D_+Iz(D(3EIGBM3b9 z0eqwirRkz;Od)#u`aa0RbAp+XT#GUdcdXKPP!?Yiu9p>c-jzn#eP5Yzh|Q@6!FVbI_h%4qUfX#lQhtWA=6lSXLa7172>2PonGXDLo8V z>R#E?1mn3&w@saVH(GvD*%Q#>pVrgT<0RXYbKFx;A}0>lGbec1VdnTIKGeO?giU$4PBOUg416o1~F;QHgo+VUM3*D zUpJ(-McOf=qMX?D36sCp2S*r3h zHZ*UA2`5Wn6Uel0;zQEB?~%Pl1BBo0(VE99Y7?MmZ5z=f)2V;!D(1gZ8)qs-73gox zfOYc}?ENxPwCCbW-cE+Xmuy{7%7|meb>B~c!}w)|H281Ke&M0pobg7`OIrd`>!v+w z38gDl^PMB+5u))3wupLV&nP@g;@Y?vKn^F!k9KuXh6nc%0)UQQldLa!yFdl`htm~z zB&D#B087TvFcwzR@Av)LL>B@Qv+8Dy?P#4rW(BXeeZBh^^)@Z+9i~TZ?+BmIOEcua zkaLtBcRVcN?)ZkM=(i(~P;(ysXoK#_cHjN0D8odsKh>;QNLhltLLTtDGsow%vpZ@k zG`2-1830WM`VW2&36l-!R`56I1(1)wi(c3v=tjY%sEil7y&eX?23Hw?2KxvzF1y&3 z`F{UK787~eZz}6d?NsLY!7r@SdB^aE3OW_n>$K_RsBdunVf`~zf00pS6KkY7^Z`DOqH56{ZEBW=lbMVglL}8eFlkTwLQZKtv zv8Bq;j0RiG3kEk|JZ>re_nXZW-BzxjFZ%sKHTeV$UA!>g?^9L%dSv(06Hp$+jxQSZ z#@jz7?sI%SMoE8tH|y-bFm&+JnmK(!%+fWouIAqVejkVqKlX4(r^rNOw}c6VdX;g^ zL>vZoiSJOm)MKBuL%e&wz5?A_X@QwI2M@=nK<@FSU+%LA)l(KAH{fXLtUadE=uU^n zj)io9-~E~h`C9CiEB`6tWuqSw5KooCoY~Z_a0?CR?el?&ifM0nbK?^Fj!?;(HGox5 zt#CDOKb?M$@3(P(W1N*@pX2?RhJ;rb&<#P7L+%To4>p=3VnBmi9Y5I-*UDiDH$j9J zRe~x29=tn3^VVsIDfk-VMv&jlY?)PBL9nBg(q*f;_HZ=TKKG|WTKeOJ-0A9f2YVng z>9Vs1TKpT!b>)M2sZI`K}Yr=1p&qvH=wEB(CUN8*p``etd zV_;rZ_?-;~sa%+FJ3D8_cXeITOegr7UkVcn1ol5iVgrYI1^!OZ-r&ifcVNk$+cOk| zuUHcg{D~Fg;%ICARPiw%r{H)vV*l9C{)6 z&S>B*fgc=2!D`UG`7W3Mu0mcqczb-=G6Sh_?frf^e?bMuj!L9R{cw6~2?1if z>g)gv`2x2N%8&Mes;=&60J6UO0d?1A*AV1EM#7JXVN^oUu~R_0 zV=%Pv)Yw|o*w1%5Ixpuq)~}d(E3$Enu7(;9+ZydoPQ9H9y|H{BchkE<7h(<7$>|<@ zuPjVVvbbCDH=x13(l_@h#dAlT;58flL2KtT7o$NQ<9-ArKmqYnuK)ytBcQvVFlpD{Z=i$_JfNkeD201k{ zUrbVO%AUp)^31WDgB*Y`H31${uh-~appAe;rK<5nu}1tx{y4QU9T~@-IVP_D=N2{9 zgGIO2kWK>J?|!(x2krIfzBTjuM<9^P={$d9nFGq)f!={YXGlisu)2s6bjc<@wVN`z>plvfYj80%kJ%Xs5JqFm#pZ=b0psSAoi*(U2 z4;+c~(yq*i0ngDDO#~iRCRCWa{>>u=Fx9Noc=HM)FQj3Mow(-9G2Sl3I>z}jTv+L} z4~B6jR%9j9bbLJKxd4JACSSgo+1RtxoTL9t&i|xxVm!VpfbfTDu09tlI1S5#y$KpX zm#Mu8SgY`wFnGHUN(QQ&&({_K@!csK^P}v_>mfb$pUMr?!a_5Aht)nVkRRR@?&0nZ zD4)fp#?F4?Z9q-ial}sl06@Na{z53*gN^#WpQ8;)fA_q_ZnYjH`8x4r#q| z_mPHbhAIwz_)!NBToXUME2=S;#1e{6^4JTel%H78j^kCpR$}j4MDUre!bYMH5_~RK zuSVyxrtqa)e%)A`Gx{Z>sF0cy74Bth1b}t&G|Nju9M(YGEId`-*SO)%M^Zgi&KuOm zC^XK>w_|e#vdjF{3@l9nTU4-guQv6CD?F!9=Vwo? z)!E%jw2J-6J7CafA9DY|KWP7bL#X#*f7IvtGvi0r!|VW2F#^M%m)I9f25ab-V#Et| zX~oNRGms&C?4PL!GSX(KRTZAlBnZ=SP{$EN^BBr`^ei6Cfn`{>Q!VZgS#U&sWWq0X zG*Rob9tofBKsXFqnBg;^Z8FRFB0|g^;2W-@o8u9l7&sh!0>fgt?3QFkDvCELadVgmfxWWy~4~S;o3u86iUKCz!VP9S0!ragb2eSKjHP&n%#n5V;A&B8gq!{yFOJ{e@^(Pv?CRc)XQg z5o-1G*LgqwijXxvTz=aP(rG}(Ww+IsJo;;)tEeK~YjEP?%k&Gw3+`2C^GIZDNDBs3 z1QxGNDSWR`VZR30J%J5?NN^Dn63}vtT_1)D(zRhvm^Y1|V}R};YD_9&73~ilykB=) zIza_n;q!W2i<;SaN8I#$@iapM=8x$q<@kV zdYr_Y{EDyIxqWN$p-|ebM^i|A8*nH^n3a?o1PgJWl>D)Mq&&rRVOLUaSLEU|nqSOd zQ#t>s9xIMQce)l|58U&pC(>T&Im*8o(lC4Rce&G7yi8#p-eUn9lzHfvM_>qX-+0Lg zU(oEy1ePHda>R#pqkFi(-N`qiKI2g`RTMilUc5G?b^!h=`1m+KQU~Xo-7wiKj(tU{ zXtfqNxTD*!BhnVDT8?cRpOy>EI@R@y6R(D?%~=iJOl^eJdAVfzRH$^C(0AioJY~Cl zWQWAv56E;pv~u7JU8ex$Voj6-Q2u{KuP-J?oRRM1O_p1=#fk^5g<8u#6B*DllHJ%D zpBQ{tAm{qf)^+FWhdBeP-2GrPktl5M(+l}Iaq{JBsYu%F$Zz?JOnq!6I*k%j@nX*UeXVhhPqCPN&uJJSd{jB-p;|lO(P!GWgwZFN| zC*99G9P5NIp+4K17UQ{Q-Y!70zqjLjiE3t!kB~IjY9Ql}^6W4gQ#Ib^s-rqxj>07D z!xMPB>fH+c%W~s@G)nr=Kdq;JQfwzwkY~R zHY5r*Q6x!Fkk}&`2$Cgy{hg<7|GiUnOAqY5)|_LU=KC|i7~qCH0bwN;_bHyynXwMi z2>%Y;0VAq{0br@ng0C}uIub<~8iuH#c(6KPfaRNxH?o1NAz(P4(>fs+j`yF)(dVNl z0|9dl>+hO)_`opdQSz?QOoFa|%SOfsZJC>5F|m#LEv3?L0f*r0qN{xG z7xq#)n)tdtc2m6S6kkp((7e()b)th|W8mZWo6G3A=6+xUrrtlU#kVGz!bi_1!2$!?7xFK}L zD%dUEf=<1n-k7jE`_FAytWU zy*;cLEM=H!v7R0PtK=S-*NU;fo}VQUI2gp-?hozqsq{pe8xCf+ob;PM!liflrU0Ud z7r39p@QDtXcOXAdo=YnAfP@KFa%6pkHYw?QDUHwwwf0wA@kCvAW+E595BdN~nBrHy zK3lTsWJ}}os5pVH9@v;$Ra+X>ANO))ya9};t0qPI&NLA>hjI+H z1Z4#3+wMg?z_>v?7P5qW4)Vqwo0g!NzBr(IxT{Vn#zc=2=g;YJxJ5tqTkY=osVqq{ zFAnMDd#^S56x<%jRCdU^#?&ku$-9K3i$#v4I>eWcr>QgULZ|!~;gzd9!)I&%_ybt1 z=P81hhg%K7*7x@v9f~lVYY2>IxN}QT=VNgY1(Z55Q$3Gw01eV;BL&VSKVHD^PEIwm#GsAk**|C0@DBLebxvH(U-tE67Mfmx!Kx&BZb6jFS$yfHztsH>Aa2S7* zPq$J1JZ3}l{TMgs&LXwDPG07bzM0^*EvxB^2`s~7HvqC73m-p^7_4<)xO_}*pJX`) zqJF(&_GkTtE6QK7U#{hnUsi~7N!&_Po?tBwVEpTf_*=ouDI`Ky0rjqdWWnF&5q1f_ zRJj@f9l2NdnhwVU@skmJ^*29MpQQ#Hz#%*EGk8iWk_$Fi;sD0JO#Bbmi2@z)(pQ1U z9oxS4AK*bj%npEJU$ga3Q?6DQuC4vX0m^44+P9(ErloC6zr(eEhmCQuuePkf{TbtkiMV$}E4V6TNRNm9fVzc)Y9*|&K@#A`co%<- zxi)?A*Lj2M_sM?xZf4opD)vraCQFSvq4>Q8SaHg2Q_F;kK2mk2{8ag72ayn3^cTe~ z3KTtzJf`z6%Vj*3%hE!v$+q7U?yJqovR~fyfnM#2`4A1>%kSX|E-1_fXIarPj{>Z2JgqA4Oj<(0!#O;39q3q!QioQ=qvQp7-CH`yA{ z`k^28GPJhykbz!+?`zi{p3w%f*+D=`ljnyUpu9KyLmd#4L2a{0F0F^^mXQth5VU|8 zqKRp4m5EguAMbJf4*$v$R_ei;qAwt)-5sBZu%Twe<2`?4)3{Dpg=lHqv(Vbj_g9jR z?-Zpv+F>JUd{5vQC<#O-5jp6j+1lkZL-YG#Nkxffno5R>z2rDQP=1 zWhUa=0Mv{o!2iV?2TbauN=nwIS@8i;@_jiPSqG-L*$VffQO>VjA}@#6?%jD@ccrbE z)aRL>s-!8#dA9bG_;*j~zODbIk;i!XOm+R1NI+t6qP~#LT&4Q+R?1~>piceWA3e9{ z=4m9})A5$6th21fGrQmnh^7v1e8-uoR1E)0teZxz0Q zt(J^@4ACumlG)k6KYx`ad-uD52Ox1YN&oOFck7|PU-ZP;SqShvN@AadpeuVs!36#| zfY#Tf!V6rzed*3KkM0c&Ch1>Ng%-8v#2a(e@dMwt?ql1ABxvUdSOqle;sW{E?EZ#6#9QCHy{JI5h{mft0lEE+ z>CAV6I)vW@ife#3zCRe;dK@$u-_Lozg()TPfSW5@|KuCnq8)L|H8!l(@Fg!lkMu{o z3MydWzx&_fl3v2hp&?dBkucBI+XVsYlO`qcck-4QATN41U3rFooaNjDvKGBR@keR% zh8i5I)9v!p-Sjw$1}P$W`Wjd+mQCp@a1l;=FA%occtLG%3)x3?zpu(Pb0H^>)UooZ z+FT@KExN%+oPq5nl97F3`v^e%T}1IbjW&#GXl2#fjVXVoTsjOXf^uIgnU7z7v`QaO z$?9e+7&03@M%jy+*Nu+U17q2sARuXW7VbDE!CNBCyC{5b$OT)+aBO?%(>8w=9CX(; zMuoP?>EYuVj}F_xlDVAP3+lv`Xy2jpU}a4^B1=x@!|xMg?9{z02Ntf($=|o(=}!?! zIXVBX4ZV}kcqfP`7@^MMCTIp<3cJ4}L@20-hy#v??|_xCbQ}^|Gkaqy$xZ4|zP8cH zUeXh-*RaGZi5)XQvoCL`)jR6J_mQGXskTpC5WY07S|s8`r`;10Xl!2-@V`snmWpxX zJ1Ng|*7Q~bYCU`~1bhM@Ma_M(l^2GEk^VQt>oFv#?NjEro18W)Ad%1J_VGiSkQOQH z(-Zip1aj06p8QDN!-E1NSWC_@(xBf68r{NrprwXzD|O~p#k>4Mk7qMbxlQE@SJvl? zsT8*4`WtR9qgrsA`&}ET=F>m*V06=?}{Z$a;aKupM(9Oro zA5tInuLPCRO3*LgRU}Wh--Auot#lh-`kaF3L_az|Snff$#k0WzXN)hW-NCasgfxx>pL^Ed|X|_Hhv6K$K zi^Pm9Mlv#wMbPJa()JXnjWjM|`SOIy5JNMOJ@lwEs=GskLPzSGX6%C6X0MLANA&vX z58UFlAHN!uk9VJob3*Pv2pJvUfs5Df$7W^6e7!Zt1lQmUK7tSaa(~KJ88yc15@eS^ zS<8r(;%nYkSChaX-zvYmK0*7ZgzALqr~O-EhM)fQ8>%7!$iX5JoOsx}QK3dFe)W$G z0#Akj`7LtJ-<{Y`*2dpwll?3mtS^1}#HO%0dg)fQ8rlN9epAL@Z@u*-fXofZWV@psE!(AUrF5t(~2RJeP` zHT4__3|2b4 z^U{O2?+}$qEAm@aws#KlCJ)#+4$KT78xOa4EOiJz@XRtMPjPhjV|v0kY>|2CRD!rN zSS2)^jMmCIdITn}KD-=%stK7*8GqKqPH!n&;S76ZE>Y`Vc10Y-20ci1Wj|2di^m>2 z6s3KMPVa$rsf%q2MNHP(2keZ@ToS;maq;fAW-lB`o-&qA$INK>bt-Bq;vUQsChih| zO*PV_YgRi*iThRt41_xlQ z$R;I(N<0hO4j$6!z&~UE`v!ajA|-Og0`9K|E5wJ{ceHZnjTD<(?O*1e>?gki&1%px zq>UgxLyUo6_)J>nYf0e$eZVMe0JisnqXNoq)6KfoYj8sJ2G(BzBcp+m*xFr%ii}Qg z2`j_y+HLBT-J;+^q&OeF?24Q-W`!$B1tY08n)BU&*im46T}|zfhRzr~dM}>o%Y`vtZkI1_xzuEF?&ZUa(JP~m+ZHdAYdgf`SuwS8k4qi#gtmE_}%V(<3N0IPhi zUE7rv*Za+fcng=ab14x$Ia=tJu_E&zj;?PCf${bt>5x1QY&%pzVig3GEI2SgQ{Yl| zNU`_#u-E@SWNclh;PE*wR(mze1&AQ@R7J25gk#4s6o7#!;zw6c@IqW`rG2rfeMekFSu=N;+3b9DUWFmt~HoV?px{uz1?-rre8o}j78p<~-CwKaRsb`8CVWK!fl?c)}aC6VV?cC&{b;Q!C3%?{1D zU7$fyaXP}k3KG1c4gH@c#2J0ZsBAgX<|9tpg02`*lE4%OImAX9jo9D0oD!-)yp&(K5)O!SP})CTegNHtr5kit*3;wa zn-@Jz_iQfZ-b7;Xg(@bgcqeE$4+C|pu9(sPy>PeZ7Yp4OYxH6bKf>X~&bKFt^2en( zr(ZohOpu`VidTEjDJt%YeEeZ?+VmDx1!ice4uO#5rkmgDxBJKaOua(^ZE2Z| z`%DpFOoEvu9GNF-|L_YD(2E~?>;sX;Ja)k%ohKyY&cd{Tj&uF~#a16*gjI`^Z7pCbEoRno^ug7G>Y2(DB-yNIq!de6DXTi6Zv%0 zRUvwRe;oPplZVz3J8)E^Qdt)sd)P6^_G0i*`-w|@y;Db_W4!y5-H{fM7WQ=9I@A7s zcrymU9n*J#z)n3yFI>ckcLN@$I)b7SX_~POLy2cj0Gh^-*3*vnDELZIbgn(+wG6fl zq{8>L*#ID}_iLHDSOcrb#nvU4NBwUKgTnOYcp(ND@Cu^9A*fafCRj050*Pu6R!9G)<`P&?yV#jv?=R9TK8wOTU zPhhdp&vDGN_wy}7I1kk9BR~|0>1yq-qNPbwZU8SApJ^GW*YG?i;5Bc~su-U%RF8NS zUf96?;l3+xWu3TS!De0|N?!EFC6ym{s?{M(o1;U&jMM@}97SKt9COiMx85nT`c17o zdn>$oB{jr&Ye-}s|1`wsV~R)h;r@>lW_z%PI57xTSko(ySVv4pCIZAd>Uq0r6^LHWcCYIp9R8m``o_2DL15XNn-!Z z1V6|C*rX4+ekQ>;B8r*WHGz&FDAaoL8h-c=*CU!q6PrXK&O6luLTCK<5W9&^u_?Y& zbbZ#Ma4Hlngek&%?PRPW^J5IoMyO#A=qO*{q9+p4jpMa0>(9V6Z+_+ql+fXY*`03Z z6ugS_?uvvy*V3tQ!TiLp5xp4Iu}z1L!;*c4pPU{?twlTHMKB06MwnUV2H#ORaF=O) z6x%m2hV=u!7-YTOhjr5nS%YU6pUZEjBKSrA0;}{@Pj#P=3qHAB&h!!gJaBqz?}yL& z-5t^dnvrLM*dHTPaJ-S%<2|UUhh75O@i8I>$ficq(;B;b^?>7Kd+e0J)pry^{QK*t zM1<$p2EQk=Wev>3nA)`h+}#zy$BZ)KhIA9_8eYxL@X(YE`|Qpc?^(Kq^6zmW&vZdd zJ|*p#DZ=zH-RHoGZC{;U(gLUs77*|>coxZW+DGVZEFYqY?>`X&28}hC9psj`0Jf?&35>A)MY(WVt&ao|IvFOO zX~b6wtx@0pYmO+JHy$2XRzQ(+Xm;xB9AKVv@*EhJT{9u?56YFvkjLmfL5(q=yNb7; z7l2FJH{s9sJno}1d#nqHZ+=Wh?NCTOQl^P>_{sQ&5y$%dIAg_uJuOx*yUQqol`D@l zW5k?%9e&tN?#Af*PUh+v)5uH{Z&#ZDpM^e~G&7UwO5$moYVu&X;r+!p5`4aF@EVNM z-|>!*Mi!X5Gwu7h;@&fwQ9h#)Bk>JaX_*G*d zqR{&`fDP&6%;vf2;%JUY)Qk#je1Btj3t`2yUdc{n*xz_*p~v{ZMF>5{b|6X_I#n{e znTE_y2$-THb$(-@I(OSik}{Dqjl28j9-R=PD#-65NzDkZoCX0`e|hbAZ1Abx3x44o zL8A-bK>HlXQGORjPS(l^m0@4JZ6bYE9?+VFp(B+y0;F3 z_;*d~br_u9KMNQp)m*UnK;yQ;6JhHd=f3w$zXA}{XRBvATWWJRq%}rZ_%A&hC{>%> zgwiQCi57ODbu_2;Hx^?yI|}wycD;R7hH0xYrnuFNDkX^pqKLQ)Ur;TD_a--GK()Q9 zZwvCoaSH1QH%gqnq9eu(EB#53u?zxDx31AgLRLD}4;UIT?_bkm>iX34tHPBcZv1KX z_)OT(?Xt2;S2p5@4}2CkL@{4eFS!+ABRe%}9}+$O=m5kJnlrmy`8_em$_&sogYg&s z_g=ZNsiW_BK?z0zkNu9=zx$chyZKt@@!jYhblrC#rhsPO>;3QZTae3u3eO2-m^W^~ z7kUVwlaFDfTuwkJDL`nbdfpZjgE1w?sivkByrBQ(_=8CG_YhGwybO${k26g zG7Hc57cSGsZZ<<$cFewXwi36Y1mdb4pp}3h+?W|~KIf4k?q@JyVLyZ66ja~kM8bK7 z&97Bra}uT-ef`Slj48I$608?=UeMc(O&HIGWayeaaEbF2`FIvxBoZQao9Jakwi(#Xj zST3&+&YEF>OOe&HYrM&z6(-6J=tD;R(Vtv^qkX*ea+1w5Cq&hZK$oX;j!h!2@>xLQ zLxv@d%P;G`CzW5%r<$I*i3Ax9cxndo zj)Gi4+(H&5azvu<5!Cu2X2#Oa@d2<=?f4fg=`pY-|jDqlB5 z>4ga+xAF_N$FN5dhTcDWO<{q5bhv>e?;o(_E8yeRfuOJp%rVHRz_#f z%?1P{u?fj8iytN*lL{6RxzJ2uTteUd?O{%zFbRv=EvkJ&wOieQh;BVheTF55SReCl z>aW{Jqv*$G8EHmf_tlfF_+Xf!4ME;xi<>{;;3Q)iVXH^o{7o>a@BH8M+XJx*+}B~l z9R;|!vqtj#omH>g*#42~ZZ&Ym3DPYV-iw!Ue@gt(T8dwr=2-zXxGxjc?;&Q8BI-IT_9NX!Od6VSjucH>*Z#lwGwbJa_ocz`J zHWA=`Lgq-U8VI78imPCek(*E*o&_uY5UzBs*0)Lvzg2$Q5K?`!kg1g#eU;fmaSPAg z9HD79hFW@?XtRtq3|He$TS3PA8*oThsjh)lyzao$u2PfO@G_3-KKS@Bu+&qdeG!+X zEN`_K5SeHfR@{Mh9OJZ7&}hkb8_QD`#12r6nDwO^Eqi&d_a~3~;wVBiHnw~WB8mJq z;-zG>D976KIl^}y80KDA$zH5))*Rj*<4*FFlOakNj{e^13$(x61MaO3U)S{)&B|33 z>=9Fkz1)qd$LTJaoLQ+7v-~+2SNjwRw1&hx>|f52JSz{CK>}^KUy|3wa$NPma`kXZ zUJP1$`|>8fvIYEyU1JB*(#}6vx*&nn9TAb;Bg)zmJZD_}WRu{Ms2beCnh~aZvoHZj z+pSYyyY~Hh9-?)7azXoPOX8g4FOkil88X-L$f;Ph>>b@pa&k9QjE_UpQ_Ws9;zgBy zpDtPE;Jf-6D;SUDleO&fBm&d(mxcdjkR##t4frkrmu-Tmm1!;#=j3~f_6 zm*?*Tu71(}g<;_%*Ozs3B&>z(0^X@48|3_ayYC+`72kaJ2Xg5pc<=8?K0i2ph)TEm zraUGj&f1`p4eudJ9V#>dI4;7yTE zTdAm>WofO3aFuLXU>OqkPt)L3PMh#<0s@EETe%gg0A2}h-M5$2D!I&{Vematv}|}i z7!BuonqwTK#`Yb;oPwtzdCW&UZr)YID8708LbpC+jxWSD+u`R&(U08Um^(4L)c zw)NNEMcwG}#>&`nn9u}Xl0EIoJb$SzJ3%J|s=fnHtI7+nd^Cs&%*hC>yd8G1E#IFu ze%Xt3V|(i_@kt~=^Dvl;X#cc%U{QVt_i(h6n^nr;wyrH$iTULgh@b@T5jyq(_@jv8 z5ti`Z{n%z>5m*gzH&>n_c?7rl*9=KWTa=dzf9HVrq1a_!i2eKV{nG+p3Ub%Dzi%z4 zfS`2>a~Wf@uqiroMOOJkbeD*Nr#VIn8izOu83{#HIdk7$7&pQd;=cKyHP-d`LFFEr zx8f7*^n}_$#WS3T56YPLdZh9gC`n#mi*4V-F6KsQfabR+I?=jz27JH3v-Q_}p9T*b z`=9bw8_|xx7U+4_7;1hmpN=xSp#f{b)nJmj@YCcxB$&9`KpppMU|34SVWhn(!V8f`6&K^9ARADB)iK_3xU$#U%3I#V>nID%;EU z!hRA>_8wyhhV-u3i7kqo9(R~?E2b74cNbK(LTdw0_i8rtfisw)0Q*>RYN925}Zq1$|RUPtWKT4MxuoIY=*WDhMe2gzz&Zo-D z0~f0OjT@S*5q21B%m7oFxYjD(C%RP@!6*)(luv95!w&*6)FqceXvf*$=DD3HvkhV5 zFP6hNcUdUy!di3o*r~k%e99x;MQ8b{Kt!0nr#<7j(#%<+yfea?4sbUFO#+rn&DPb) zUtVTW@Ez$wP=~9plY2)3Nl{UOjiG6>WFTq~41DazV2u~CWAA{%u7Epe2TW+94;naF zarYsyM`^T^Ia1Ee%R3Rj&6!5d31^WaFcw@n^vxu%v#U~`=i}{cJLvfuZgmvn*Y3eD zX@4X#gVb)OB+H+1e%}l3b$EIYPusGf4XGDOIqbdYPTZ4hHB99-z204`Qkns#H@^y! zVRmIMS58*8AUjQw$L-%92H-JU>FXUqg87c1w3ol}?d{Y71MV}xBkPYL@i`}Ebza3g zFhMEIv#WU3#u?t56M=Hiot|HqSQW|kL-IoislT#rnWuN`PhBxN3&sntowTlo;~%62 zQKx7UXJrHNV#Z8I6Nj};S2|@-IhGar{@A|1?ePlli-GTqQHteJ;XsXj)I^m)S9Ewc zM@p03R5Ioh6shBYu9tugarrPSoI~6m3a@9*JAf#qnnMKT8&q3*upXJDW;Iu z`E9|p&;-l-)*dlTP>aWgX8kiooUhAi#?#VV(Qa3V*{z29$z`rAIxK=~UZ+P={??QD zQ|H$s_LTlhv@|#YC_3-Q^FF?VSBl!psn z&n`Tu0iMefcN-7DpTxApX-a&b-;{XiFzm35=Nn+m)_>h36~G$A42_&X0LDeE1Nmj* z>Z73vNP+e=94bRig{~;}kfB8tH^b$;j~W1t>pfYp+Kk!Ml7SpK+v@AD*?dPY2X|{< zy`{8%-*j1XAj$kUmh+A_{)?|rS+>XKDoODj;-Lb8U z_2IKQ&Jif^KZbzi$}iTLsXlKKp%QUs0@W^eBO@A&My`m_1r*OR&%r zXD>?4>|@_yYcodi0F3RsxcYdQQaHR9G+xRtu5Sw zFr^WHO&SO?*I#7MCQxVL4tt^!%5m(xVLDc)@$&=M?*>cp!f`W_ABppzKifQB?DF~* z@Lg*GGx!W44r1T4Gf&a@3bb4HaFb<1A_JC&-ely@iy-^XtF<_Y*nERJ^!369kZrXR z5&Nsk%{yAdSEg@V9G|OGvwrRdpAui*M@c@;FUu+$U>Cef(8M*C%dEKB;sFZ?A}vO& zOK|D>yzVUerjWmy*Rj_TSI(1>Id*`H%w!R zKr+6=Q?$BeXbQpQvVAo?H?|)#mAG10#8qjefQl-8-|6;Yo(J_gJdYnI(8{m9+yDRf}^*1~B(TGv)|L=ou3r}RnG4asH6eK|WvCO`TFLTf}&)m!{me7n4zLr!0pe)P>d^}wo%?tec~>U9Z3wB(&itG~l~ z0e0rFopfxu4esWkLC#?-F-jk=QodLwJ@y%pFnUZq1a2-?!+v8D^4jBvoq3firLT&1 zL#*>5bZ2YVpU);m}h2#__CZ;n{eB|R@V%gg!WCOWA-)0nen#P1w8H$P8 z9P|R-){q(oL?BN>vO!TT;LRChX2;wxSs~GnPP*evZ^=v0V9z+Xd|Z4pxDEx0g?ul# zQFZqiXzH0i^?TYMfECIH3=NNd65B@xh0KTT^>u;G#8%--BZjL@?g61Z#cr>lOudz9 z8iAAePW5W~g*%j5H8f>r#)HGOWH~Q8p2T++Jy&d65YviqU0&N?{Y<{+?Bw~-^1b!u zP67PP>pN!$&%*eE>qpZ>d>1#{x6W^&_eO>bbv9W*%NIS^UYk2yq^`miFxfx8?&^or zU7Cfr3Ix)4<^r94-3LP}QEBCHHfad7<&lAT6d>AVz$shIH5p?(aHM;F< z`J0Rg%uccxKcserHirx18>qW}AO$C)K(GZ#TTlMaQX;5;zeQsmUA=}lxViEfOjR1d zrSN%J%%;Cz&&MtcM)Lw(FV=@r{$7X{!ywEkcUX$lZDSYgYVdF(S62$}XMVW2_ew3! zmH&LRa9iPhrKB0Q?G>1`B7XAw%M}C4HPrg_OaBjxRlqb_ur?{c2vkDVWf!?QV6!*8 z1ootm9C^_3J7(42ZgtLd3{&{r6_sOO5ah*UpTH7f9AOk#m`Mxw!@PzO+~NyYqY4a_ z(kh;!K8+B20~Xdz=9hoKv_#EMXQvEr_rDoWCw7>_!zuMGPoeO91|WP>kH`4(+Wxz? zxLZlan|@ZG#{Y&5IU<0ktiAf0J>>~Pt&V34jhfg~EnWR3b~eqjErbTB82xTg*QUUD zSZHrk1*gegY^EqS}8_)K5}TL&LlW%npZWh4chX(53J zKQzN5#!D{_EY{_r=|G@Y=<2x78^CBOV1m^g-FR5mzU?t~KghR1EDzpF*&j)q{e-)O zfuMiDm2L^|mtp4s)cAzr8pwQf6JnH1HnZby*sV!GH_z3QQAMJOBj$sGdFu+X@oJQ6}Y1V zsl%y#8rufG?sDcLRt5M4(aYkxJS)-^b| zJMSS=S?g`p=Z0n_l!zw~<7D-0f7xX`Ae(U*&ito3Z})i@9GiV+u>l7>DZ`zy4OPnO z;vERL70yja%#Cc_md-$tYq?6Ox4mSh9QV?}J#|RMLf{J`P^c?wL$f+mtSrpVWw(ED zOM=VycRed03H-kLi)UKKlc$rk@15hNU$phWQmIx+lEBpOJVz(3mt8_n|?VCyO$*N<%ho2%PtZVqi(4@M#yXm@V)%(3-jinx!9Gx9StzlilhFTq174+;JbI?1{R8!uY2(^)7Oze zd8_tMBAdP-r1jSQ3)vgxmihc~c^gQ`$s7APApQ%@=o93%UP|UMkF^-!)Jo9qI57Ur z_qq&y@^1l%WjcLmYud@r*N6NiM8n(O-GH5q5taqD6R`WA|x2Y#KVp%X=-L(8j{^^+&Z*1C+he%?x8A35n zv&53WVAg;Jzk8{MH#$}Dqwh%5!vfoPuqW3xM}hBtHIxr<`K}dUO=V@2HR8M0-}rZF z8OIs@Nr|TRaYUkv-<&x7Do5x^OREF+jCZ=B<6Nf^;^5Efalw93s$$8xRgii^_z9X# zMXJ&GhIyJYb=`s|S3*Q3EINou_mjl`R<)J`R@gRoCG6OCr+zX?1l7LceFc@srgO`~>)0p7B1%1RU`z031Zn zxSA;X`d8!9$bb#afAi%_V&g5*BhW1Nijw*PbVjYIcV3+~fO|dJb_iz*rX*`J7&DdIj|3 z{kh2Z6OV~w^ST@DFM8$d&H36Ik>4YB=i&h-;Hj4;cu7}h?lBo}MY_Gq*m2J^81OPp0#soK3MOz`cY^ zT27wJ?|Bk@?&6-tukqS2Zd&T%t^*h@Cn>n*Ufj|q^LgzejYp>T46&T^rL$#}S#jJ5 zwO4-J3R~)#yC|n!>K-re1zZ}%8|~LCMqu}=F3F5N{If0toHyRvx_|N++XT?_k)Egjr zYJ)ke;|$XUt7|AEZ_F##8jd3KQ@`-zktF`e2fyo02EAPpr1!5Xy;D^#KpO&%N^pnI zhr;Riv-er>-VyZ?ZDV>GHYm|zaNX$iefls=SYjh7X-}FThJJE7y+qlftUHO|XG+|P zuhL>v^C+Yrd^Cdz9^&Ktw2ZQZZ^Cs>tUZ<135+WMA}t_dTHJC_|0GTA&ArerQKHas zJjEisc5vvld^z^3bM)0FHUigA7byJwba{Oh3#Yg1?filJ%ewFK@%*CCj@87OAsQ;Xgbf#$T&?%&3%|Cal4IH<~Wk_xw;fR-M0*&FV!db175){9defx?S1! ze6h$v$2Rb9h$uUEaY{=@JuR>76(?{Ywy2uU&kAhcy8zF3ag_>4t(;Y21g|W%*;$U) z*92sV_x(<{QsWdwa?r=`E&%-eg)nUQcW>ibXI}Wag?OLX)Qm>twFs}!@CN8Wd-aYU zQ|h`T9(4kb@PL08z!`$#0GI-84EdSpr0S{Maa>4Zq&5yaj;h$y9AdS!tR^A)x&-~7 zf>+jI#RcQ(J8Goa-xEMl%|r3N<0j^1Y~v!^b-C-+E=N~2%{pL;L1qJ(c7M)Y_z}9H zco(?0-}&nSnSt$0ymgDd-7fi+q-|%a^Ach7WMZq`Y+{J8CsjLrx+OW;fw(TG>daqo zEz-mO$}2M+jVj0J0~YesCZ4pT54#SYj=B7R=hi)muk=|zm;U-7O|=8o3X#or_tZ~9 zl$H~{GJnyh=J#2t>Eh5|>Z{H}h!cX3AO|i8T<_X1c9l+t7jd8o;@?T3Pb_)^VpRVg za}t{aGcgYHVG-cUF)wR$2iy{p2zmJINlHWy?P=B5@Gf6KCKnx9dzS>X#<0}swZ)6d% zTYQeZ8qTUN-c1A7gd;i7&V5rs&GH$^k%4Za4e1HssY{mY!01B)*mjqsOG+V`zvnNh zb(Q?pVxY!YJK|wuVgR=zF70=${cM~6%KCUj9awg}lCeg_tQ|5d+GL;GufP#Kz;^8S z(r38*Q2UN)*C>$=T4m|wFGbHW{kC5K#A=h8_)dCGS4Hk7yQ$ipJkD8nl}LBM4#QHB=1{{ z+B&BZrfB+s{_Ij~2a^hE?Qg#Wv1rxM?18H_S|lc3B4L7S_q&;@b{qUnSU=Y7hfGt$ znz}(0&Tag-SO`eWM(?Vmvx`3_E-ZAnRZgOdPlqo?JN?n#P>QIPkD79H921?>fwf+(lZ3a{oRpBvLAEIi4%6{RR->O5488zOq`05t^Ux ztpLaFK{bgZTJ~kIG;>K8tYn7c;X7d*y2OXHS|j0t`5Ty?<88!J%U`N;M-&@ZAySey zi*)x#XE}SQ~pAMd0r-g_%!XZ7+;xD1|!?&o&2I&c&|81 zW3xl#_QuX}EG!+lq@&&xI0Bg2`TK98LZFO_sEqF6@e!P<=PM2=oxXS=aAD2VoPS8! z0fBjKrpA&`6MvxZhh_@#+Y!yI)II~u2NJqZ_XQd8mI%n|!vH{WU7;9Z$)0~SHYUW8 z8+qnl(^07Y9ZPZvao1A`x?o@?=M%q-)w$=tx1Yx~OIg%Ec`y?CSKm_jg0Q4+Zch{g zOy)U-+|6~4)O24ZfBhmj(fux2kpzVLemx@9r}2Vz-$#7>=nvxI9gnl{wITTtc<9I{ z$B?UKhWeZa>6PDY4!nVFCkLMu*|Lz+^MSLn9hrX_a%O6gzBzb04u6#o;t*oq^cB+t zGdJZH5Bj1tBr$fWdRDBAfyF+aUNM{Bymuoa#I4^&zsKo;o_I{BQrQ#ZaIsqah(l*j#7#ku_S2+C~VRKV{sn29IG9H9!0 z$|40e3!DLvFi=K3K-^VO-{TjLQ1y$)%uFiqbV0Z=G!}9#GBT~Z-Roz%C79idBJDex z&K`lWKR+H!4ST@+gwqee3k5(hqHmrOkR~*$aj`8v#c%q%D_AQ9H@))QF&I>E?eVVR$@?H9nrDzu+$tc0u?w#z;rbA$%wLZ`yg--Fo|b^HdAh-vxzrRyZ6r z?49{n&$j&YA}IAsDX#3%L5Y;M2_&`p9Ig^~dav|^Kd-+YiwilEkYp^MM_E*Xg2M55 zFfXNF?SBL{un@$_`H#nYP#9Z4C=?F*c@tSaj;Jd3Ys}apt&-cgA!AP#`T5;BU zVp|&!o-%QZWPnPMbjX{3q$wlQ(Ii+HrE3Wf^aPgjFW zjw}-oap)mEZa!$o$uNr5(IO6@QkIh$hI>eJHX*g~<0tC+jCJxpe7RD4S(n4hPp>Tsb*j_+IhZ+)pPXz#a zO9;X7{AYj%C>T){-aSu()(Z6=_5`xO2@5HwZ2Wp`=AmM-6(SE8ouRMu(+ec$JNJOM#7 zdY_NBB+DhjD{J3Egd{hC@!frv<;~t_74l@j(6Arw8D%dHwEGD_wgPE5)&H_qI}$+P z4JcTKvDsF!ku88yPElZ4S4|K?R93eBD9g}Sy>Uf55%ts6KldJiE~LmxNBMzpePVDR za5x_73=+Sk>eY$JfCb%|c`^|5W;v9gM)3YQ^cGV(7YPyrOcV$hr1h(P|w|aOT}wuc1@D2xUR23&p=Z3 zXMEYv{!2&ZJl+QLZ5+A@J2UgpHukzMWOr7yq)ORg4L=s;`a@#lN6-Ufapukyx%03+*toy%h>IT4@kheBSBj7qOi$ z@G8)^A52e*KG817CoH$Sg7YH=PsyN>MYULJ{+5^^x*XSQoD~hLpRW`+j_AG`(TNfIt{q{LGcO~cv#p_~ zH?>nvA%?U2D$qa)^Eoc*m@=xBzH6ht5#zwF-xl=_*53f1~x&$<^B{PFWsjw z!DBpoU`5;R!tPAcqtCxlrqAk-?6W6YNT0?6Rb9ZqT4AstyG4Hab5i+WvHOv-)eqDLJXUZ(M|>Qf;K$&F|6q^`E@;<N`0T;AVYN)qTALC zS$@EzkM3sMY(+_N^)ve=>oTG0gDs53B`DC-0f+H7Xrt|=B~}Q;>jSYdYD6Ajjdab; zo+(=L8+!m;dIo=Tt0vzO)>pV{_x_`6N9q;=lN7US8HBOrpYRpQ@s%O$8%`6w4tjIZ zve$V%@b;&g3XqrO_I}NOwSy7Oiw;SsPmgS=zMe}Xb7RCeb~}MW;nUf{N*~Ar8Tl>D zsyB1j143XT5-r+1^uv_U5MsOP`DvKGF6hHItD|F3_4HH$y+Fxh#|CoPS#SUb)X5<%+?4 z^x-n#{?LJw^nEE;fD~LXP}oCD;+~-t0234vh?r{Neb{}9Va?q`7T|$gacIUQ#`{%i z5v5C??uTQV<=?6T4^sdAVLAhXhY=d-g)-IiO)WmJCB}lleV*p9W4yXai*MZBqs~v) z$8x#AF3jCME$iH6^o14!fF}li>}7$K{hQO~jFb1WMS4KRGLv}67r^TP6)3EmMyE^; zJm^FqrsOr`Z#LjW*riMJI6J?tRYW2P_IUYM@D-#l_C4vQ$K%trx{XcE!v|$n@)m6c z-hiR>QPGVy0%QD$m3HsBE z@A`x+I1k{+8e&2q4wH0)A*W=5n#P5C&VDhW<)kH{u^N&JUV1X7jy>%?s9kbSy%UgP zlyXoUiG*twGss3AL#h~4I0;Z;x)E0v6f;=K&l-Gi2vK#=z6ldu2_`pRg&eDzqmhx+ z4c$-Vt>FxbbcQ_s?pGG{{pU$(7fXG4jdc$>P?fJtGTme)8?1ns?#JVnD z5flvYOGf>RyrJ5SE!)xZ1!#X=ShcgoAM6uYn1|aOzx`WZrJpyvkxdn5KBns>w2a=a z_P=xEQcbD<%w_A#slw)3GEW+?L*(%rz#NG{?OOtJbRgPbxjngZ_Q4nZ=)(bWAKk@* zW=Qk?HmcqX9KBfa)0}RX9BaYgOb<53VIrqTFR8z={hF5}kA!)F5vGM0*UKJ~s7yxg zP%#t&g5=RXf6oxkx?48+{%MIu+==hZ<@&krobqvOv2eC9R|8AjJ$RscW%8@=FfpuB zs?uvSc>LJlbn&hIwFKuVnqKCh2G*iJcdT)Dye_gM2-`y*r&QC#G zF#Ur#~b`5@wsbgb~eFHHz292E&Ulfz7-{Ql&w?u4m* zl6-<>7@j8`xyMpbeBJ)?P;m?Kw^dNHVid>>O_hf4#*Ll{$zMdWD`HnjNFcwXfZF-G z@i7V3-5M}7MA;aQyI;`d)x`Dh9r^mA&y$hkw7Q&i0*s8oAAHw+-_ZoZ=v2S}T87*Y z*qB)-_N%b#jN*%jowgk|Ds8T3UO~VZcZQB_`>JlP6aBlLc2X&an?_#9;XEH_j}1yV z4`Jl!{Eq`7(*||dh>bG+<70umU68y4YyDMm2f_si4`wOjahCR3NC`=jK1oaS9mDLG zZNm@^(EYcu@nVu;>7$6Kya8R?ZROt;isf&-Sm>BDcn?WaiHOLrBkeMtB;kQm^z{(o zs(<_DTL$D~?4*4#1lvsr9$ZH=gO-$0d!r;0X&C|RS6A@wAvUHE0CuSgT+s2e502Pa z2>I{%*@los*I;@!t?cvnYfsDlFQE9t(8;lVY)#0UE7Tv5nCB-j@V@X(k6wy^RaAB3 z9RVOXhUjq4Pouj{3<#=W_wnKMqwWqZf-DNYF*%DVQygVHbZvm919k1k>4b1eQ5R>m zFRy!FiiU0-L*ns>gq+&}Ng#v>PM%q!2X8~3tGXD!9r*Hm?|}{I5)gE9e2+J~9YaxR z4RdZ=uzZ~qTejDyW+5Wk|6*)=MSIaixe!ER}RCA;ticD7eUvAjegxx zk~c>?;q}J(>X<+#IwGICZp?J6_NBe+5N8Hs?E^$e@%6Wr$uFs;G&%*wT@jTr0#SjxL{dJy8D3$|!H)$4Z+LxU`#0c8eqR}6sL1k)3bGqbaQ}jHt(&y2!4%a! zgjGCKPXxXAoIuK?{Y?h0J+LbrfGB3h%mF0{_Py-k6$_r(Vhf&H@LEE11HBgA!jl+S zv8U0pNn<91|ABpDH$#8tWJDh3xOavU3-w3bxTJ%yS++l}zu)PPVy4xbUz1}Q+ttyK zSnh8Z^^@UN?^%5O=+9E~f8bwsejXr1LdVlQ0*ym%_GJW}xu3nJP{3n6jvc$I@Sy>P zcU`cN7s|FA-Yx==+w1aoVB0fUqZ@<-j>g{!7ZZ;1Ed?cty7*+-29PnP(CuRBC!D}a zh%D=o4C6uN-xXo)OVqM*8@Rs>yC3{y(Td2-JUBm?#Mdrphp6;(M0CT7tlRl+o%zST z#X;3~qBQi5>$da7@3mDbbP)e)t7Cdowe==N=A?=!Lw&dsQ3`&>*?;>qMuzrriOXG* zWUvWi2KDvj_;Vhw{Rj73Y-cg94B$7n#y8?0oxPFQ?PuuNega_=5N*Wt(=T+U#Hh^g z6D4jTP6A579&Whdgr|!~J0Z7*Ts0)4f+1&#KhrdKG#>4+ zxFDwwpgcg*w&cAz|0oq~6+ zbcZ@5(7rz^y*XN6Fw5H>pbf0qR*kJs5bDn7V=(mj1>fTG26tITk7Yl3 z>z|y}q5#P{D`>4DUI9f~T8B&KH`}F=bHkzd<8RlFPgYC;j~UeC&yJ(OzN_4{B%=zp zuu|@70b$JR)qD{VyU3D#j6uii7 zES8)D;(9nF3AAiUG0ya1X{emxN8{lgLCZBjg)b2M@#M8kMq}dsYf*1jsPcoheaUAj& zJQ%*)^X$d^)V9SGZJaXFNhte3PnwF~c_scV>;Kw^AX*NAiYp)g$Xgzwo>7R1SRph~xl&^HTpN|>y*F~-ZAa~2@fpX3v zW2_9QVbB0axOV8s^tPM)Qj}D~SFH!CxuGW<#P41F0LL5U?$4+=dRdX;ruJ4CY+k?-B)E_7{4SOT_?k0T>@%@7Hhc?e;YX-Zgu;5+T21 z-M^V@Xk4aEbm)E!GwJwqD5r~l)~cB~4eJ0jaf8}+g^Cf6pLIcw*g1YEdlPtRPV?|s z7Ty@SLzGd%r#tH$-9NyVxzelekU1Dx{Pz_BaLYxMWu8CRWTc>&`trW7u*^`A14KP< zZVH0tLH3IV`masQPZmE_D*geqch!|zvliObV-Ho>9?os7=tE`Qw!3;8pX!2R%y z_sY3Psf(-}dXh7D;(+TMyWb2-3kw3`oH^^e?=vO%be?hJVDx>+FVuKs>+k^Y=J}V}mj#??25NdAHoRN3X$f)0wc^n5D z1Px#5{+sDndBEw^EChK|??C64SzmsTQYcNecPA>!9+U~ydURNx)P%MlWI z?!&2CsU9!5T)A?A*ctg1y8I<4%h$>l{0v7@P$m+EB2j!+BZ>EKa(H8(vtA5?Q-q5(+qkpgp z_%ClSWhFjP!Ea=}CR9SgI3oDbPe6O;pVU288Tsi1s{PzFb*|*kPE_{K%laeHWK40z znK2FO!h`8wc-%iUeW1G2DMbq}hPcahwd<X|;*>dt)v<8q+^3@r=J?;mo$wcS~_`4)ezkKKS#p)bu2j<+A z{_d7BtNH6>M^;@CU2a^luQY+#7uF;U+JhKvwPTaAqcP1Ig}fl- zmA;)U<>a08sLB!1D@-HqJ|Oe32zn1NxkT-Ys^$Rj;M?~XJFRzP%xg@o(g$UJy z3B4!9PhWG7R0XWN!HG`~gPp>g%>=e!QUbE}z~%Q5GwgF5z3;G6{>)1YYSdX<5zi*2 z*Dc{eAc4qFhLGYpjyY{Gyo~qDp=;;Knn|n{e(2JQo-}62x#*oWy%Gd)$JEAPbdDU)qP$cNwM$ALGrp!2j$%b+mj0}J-a&ai_%y9JY>Mz=iX;QV|F|9 z;FLRau;I5Wml|h)Kz`bfwd8V^a3JG0$Wwb?OB3I;_0e5sQeveAF|I2811HdS4F}G4 zY#XJdz;9qEWd^tc67^BT%@g@YPWkb2is}>y&=)xuJv_Y5G=;(m*v7dGpU=D%8S0-~ z{93@o{ToPpKPMb~egs%mODTp6WyT_1yHwaO)0SPl zLy8bpz%Y9YT1P4hf5_aR3roS9`%sU$z?>AfC&l__{%{<;eX+Ukte25EzRu6}fb@X$ z#eWdsJ!tRmd^(JAe0a`~@nqKvdBng~>b*F|5V+D0rWyY$dB&0DPnhk4NN&NYCRG?jL{LM{yG$^2M6@eBib9ni4 zrH1UIM9Sp^xXijQ5~F{?Q^O&en2H&!p5OG>004@)a1p zP)a&Rfc}@|E)?;;SCQ(;qspAjqx;3L)l^;G|K;}L;)%r_0H5#M;$+0jX!DmDOv>BC zLsoOwy!9^*wp?p{)En++YS8|5uj|}WiaW*{^1)Z_=7ay%OgrL0GRj(BE81pA2wc4} zH9TTUiRpSJl|*{P)bN_*@(5kS;ZoIxc!k%{u6Ewq#!YyONO&F0TDLC`-J2v^3?Jv- ztls?PW|1dUDt4Ubzpq0&fJS3H_}>8zuJK5!_`0RjhgahxY4=bh(fv`1Wx=HaeF4Jq zBV+Fn$T-+G18t07rw97qHJ)*`L7b^x#Tu&$yJd3Fme0%M9^?8@{CPtzh+&Lj5F{tG zlv-c?1pc+oK-vMI;5cgQwGhoy7YO&HapO<8#2zvMh126160&9h#77+`X+s!lv8*6IcY*c7 zyzu=}D_7v~6uDb7B;rDfDqqAje&Es?olLG8N<0l}?guVDJ$yr;rZorn)V@)MY{};h zcUdy6PMxdLZ*kL|`T=j)<-QE!*6HFD71g5~vagfqi4u_o1gpP-K3bx0^7?qNa;%pq z-pd(k^;Gh1_3oYKc1UF==^^yvVMRlbvR`b+=t8!nG`Ilj^~Dh~0Bs-dFGm>QqVa73#-XEb0Tl@C-!SGa%FGqMUu^JL zMo$FijtE|c$Mkd&hD`_zc`YAowYQ2ZDGX4OEEJA?R5FmO({ysUT$qLz*!3bKD2H7V z(zFtvyu!LjKSYV0y!I&gYPT#l1a>a+tW!Np!EqEY1-Y;x1W9p!BTA!V%!jydQ*!_O zAb$*O<^49vOhG@F_t^rI&jMlE5Z1F`zdx*!IV4V!E?R}Tnwqzd`MBerQN83h4bKCx z;?n&H{+3iGp=ob>ATW&+>DOgd-LFT&Oy{$;;Kd7)6S4A9H}U+5dE8-~&EDrm+*GE# zqDtk4BJ<2Zt+bxtOjyff$5k5j!uxyvLN%v_2K<62JOhzIQuq#)DDoveM;fhlp^0$phk;6S3W0! z^Z>^Jma+YL1Rbhuo1l3ws*RYSMB#XJmzdigxeS+k+#bM*cx__P{`2yBdhYd$9g_@8 zRNk94Oi17G7RQC_Nd`Rh3g~*X{kS9TNuQmwqrpu~-xqKm_1*nba~tEPL%?uuc9uypX?eKZS$>y3FS6(qFghSOwvt%4YJ<%g6@@dVGtOIYO}J)at9*TFY@gK_8^211O9m0j3&SVH zCsz&^eXF%g-QthdIiJatpUtPc9=@e-I6il?CMre%cvU zD32!oC?Aa)e0k5~eW(ojS+?Lod_D28FWvd|t3KXgtI!~2MNJIL)W`$7m){Og|DO19|5s~oj)=!w` z&E$4R;PZeg0E8Tp{T`ukTID(*$>X{g{s4fjw!_ts9QE;&OZrV>X5k`&01o99_R|65 zMZ%54+C0u9RI>)IE8(5$D(Iiz&!UvENEy(3F*9KK5yHUNTzx0_DMi&03OncgY%xI@ zY!i{)nH5xsTQL%pW|XgLj~;Z{0udb@5E!kDBtQwO zFLN2xeLlSZ$^?cWEN83ABbWe4>~lG};wc%h7|!jBevzyWGX)aT#4J30wev>@8fnck zFZUi;<+B)2gxczuxH339P89aaf~?AY0FZ}Z>g^EC{MPr$&C=EmBqlF(ntK4uH~&_@ z)O>M88aa|bo48pCeIlvWqJRPUtLaT@-9OkL)Zmw7{CwRr%H&_f=uS^aiS=ixZNMz>2~75yO}RZsL5B zUqO4rf}44xQ(UZ#iFu04XXx!;tBaDQoQ#K9eb>(?78@J1*xpT0em=dKn7tUjm5Sp# zBR{_{zX$5ZIr7d}2dVe&-iB8sP_pym`-VWWBIAol{rD=wk0U*M;MobUi}s=k>2h;F z@Kf9{p194ul(?5OI#E#tzcXxMsFaZfR`6jTa+?Tj26cZ%`vd17IBr9a% zoJq@b?5)8BbOV7-XWY-%bDB$hBTGC$21R*if7Q0}b2D{Vf!->+()09D|)9X{&2Vvu=B-0|tde<|zLYq@9FopIUUd=v>g z+r0BQ9BALo1u)$7@*d7P>QfM?zA~j!R(rrWE+^V0v^vVz?tQy7m#A-l0@&`%UJjxS4;Uobd3t(m6qZSg+$-2=oKp+fb@ zNy-ui56m>A_;R;JJcMjp>v{Q(T<~I(L2hpfz1PO=MDTdpf^2i4K_7|los2{BpnWtz zqNUs>u}B-prFrUsB7}N#%c#lAhh{Ww?b|fu8!cQE9XUL~A~ue$co{2-Li>`4nW8v$ z_CcjP(=<3thf)+@cQKkKNe`ivlc~CJSV-rOskcE(d#wGv_$tx%Ra0xcf!+wc6N-?C zA&dJ`K()e@Q$^y#^Y0y~!eb^#;X@H&lgYYhB6SEK^Vtdl8B@h8JM`zpLJx?M9{cpM zZ##Ptnn6}rl5No<`Z`=QYV3kj=^o>(4;bSuzJ3MT+Ww3T3-`^e(92R{eZjl$M&Zo()vU`~x|v>$ zaoj}`yl@6dNOuSs=UgkkrVM~G7XpFzOOO;<9OoDd_38Q?%@cA}R(-zyI22#ufS=zN zu-Iu>Zx7w^W}LgrT{p@x%Dx`7V|hZ0-}cfwd~_YmV|JX^qw}SOcTk0~i1gy2r5fZ0{cvGtITq2@U9@nzf(jQK1T;B&TI19`B)dz@sXNrCp4PXaN(rg zfkAd_T;hSu=muK;lcxD>5&_ra#xuZq5G@lT*QDLwr^(>oEp-#h4{nt=Q3LDV>muVo z-a+<~`vJ?4Qn%Rysr0Dmf^w@cw6x$iGv6|UtJQ*h%i$ALihGB6F=gxS_8604J__9v zu6xR1!4&9u=PpzZicXS{893|Q+nrD%g`19^*)3?S(K{CDH$58^;=?&XlO7&d#tDwD zg5yCYg>AiGrFseC3pK$d@&*eT==nDQo5U)XQ4#n!BJ}I=YK2(!?!LnTa^mRm`bFWB zY|P{PUK|en{>vPLBf;&W9B0S2e__oaeJ?2Wv=W0FXB{o~lh$%qjo@s+)cZ=dNn()h z;TWblZ1vwKb7c-s1f}c7+Boo{(XD}i@$^9102xZoT*ZYlsD}t`NrPnLA<|G{eaGB5a{xwZC609$*=|5Vkdl z>7(QGM_uw4gm_l=^?r7yKb~4%ipeA>&vvp6C#F0CIfz`>N0X5Z`0LkOu|4!V^9a6w z^1PFedl+G41V4^{C`O z$5{zI8T@tVPHiHmqF~qd9JVh6cpPQF{w4@w0r_g42i>T*^8$F4GD6HZzvStnV{S7} zyQA)4JV4l-vwNJ}dPHt(N}lu=7bx_1RuIuABf6&+wzV%6x(%(!kc9v$It?~n7-07F zZ^?aM%J=}Xm6b8q{{8*JVNFv(rl`13D@mnL4YE61b*UxjGLRRxy>LoQ`ZG8iW#S1E ze*0awn$N1i1Ijz-j=YBmE&JL)`Pj93l+Wq!j_+o+gHfJHpNkxOr{~j-hKqQxfDKUE z2#bi5LeMtwXKSEB3~SqK&+I`!#$^J{cUS84qIJ_pJqs#zzf)hqd9Bj&jam||WCw+2 zBthnS?N036L7ZaNZ?4``@txV2BiaO@`yoocx4a6Q9NF|MdVhRnQqkb*<^KCIj71?C$A8K=aK~_+NenF=ho!`%L8#pI?AiH-YdS1J&R(!g4>{9+Kn z+^W_A8M@cIT>A$pmTaz$$mE}Y30|=1Q=O2vWnZ*4!37G@O^AHs3eK{y;C&80B8TqH z>uA0sC>`K9ef%`;O(EXPzOV%o$MJ&aln@j3O>T6^@IJJ=WW@0VT9H$l*1KO!ry~$R2JVNcq2W0TdB%y_se7yk@qvxmT4EBD zTlU_W*O1BOvKOd#wjASvVNwX0p2pd09V{TE%PHUE_I{(5I4IC&l%COxt~_#4qNdA~ zX$FYK$D+bJeb$5R;3knDK2w#qf%I0fQ<|MW$nTML>FYZVu4YAF_ToUj2XFGAfQxP9 zVEK)K&IkoSNzdtri8#+fMci;{OPwCzLa&}4Ss4XQJ)B5cf#eK;X)Ce>D z*YJKN9*_sri{%ItZ0Qek^d3N2+nrVqSQRFXZuFLO1;4fBtog6LXy+$ZIGT)ah?Rr@ z!R!5obL)@pbS1Ly7k^^K!NXI=J&>vZ=6uoytK^xBv3vLJN8nxs|D9sLijJ7pF}1;| zN8*C2V$$PMp4mzB60yU-M>*zRN>LEaq`^Et)TNr0_3uEvtOHTpRH5Yj>V_l|BJcu z+?BcrM-JMOD{&-l*!|xSIixThq_4ui{;#zB>;L?}|H3V>0R`A`DFyK2ZrG+lK2ZzQI60L!b^EPNC+Ce z1wt}>*;3}#Wxc;pK8fbLafL`{lU57q1&G3>mk|pEBb52;Pxa*c*2`>eo~~q1_IE`L zCEolnF{e4X>-7sV^0spcNoecscb4L+lFCPSICYPUGWCHQwqbpRq^0cUAv(0+!Vt(8 zOoy~H-#3?hpR+0D>r_%wox4xyPH-?@Ntnf*_4?qIIkyQtiw*1 zw_Q-=nv;s8IR;Ct{)J>DtaHqV%SuwQ??&eQ zI0{`~^_83SOT!DEW#VibO|DyKpBhk=Vxd%^l;mJlm&Ff{W%k|3)@{_FEyBZ^-NF6ANtY zx8xKO?M*(lEWT_&>U=ZkzeANlh0Q)|L!o`YzU76+P2ssBpZj8(0{`|5F=zV8Zw}3m zY-mj^E+NTq3yB^sr|lrDR55@x;(*=*s{X~%Yn4`?b12l0x6^cqR;BOHXv6-y&~$9= zO;wnFo8l5N#i45+ZnNIGHvID+AMm9Ixs}Ia`2M@H03{x%Z{2Z8*@z7OU0^`dqq&UD z8Ukx6TJej6znc+O$Wi?lT@=xgmQKZfQW?Vtl{2P&OyeD^`Bu-=uiD1N)(Ddt23;aM za|IH>I+%~fXPTy@FF!<{zdfl)WR}q$XvB@fi$_YLiRcFQ#}n|ZnJFd6Jzq*grx|37 zURsTD6FmTvEt8Lv^5&;*=FwZ{&X0tiygC4zU@IQ6{&)FMWI;PH*n#umPdJdfHMbrv*EOH7 zCi%A&(}jI8bAQHUTtw>I5_dEHd|bZ0?1Qw+h@k$-QsN81uv_C_?%?gb6!2s{G*_QY z{L-8%FsgEn4K*G?=LtSOOd!zS>%26Y&JBQsi4M@} zk1})GYbGJR5Vg|h+kBkJIkxDnRP!^@HbQoLhFrct-y(hrV zXzGcMImtWK@U!>=K-Q1B$&?@mhsE6nFIXxZ;I@850SWGF#g@> z#A+YGDfhr}4#?8#gf3uQG2#Cig`yo7L@NIgv3eCZhJ5-jv`ZNYt=z3TpsVQ)2{2x# z+l!)#5X|$m5t3skXo^f3CGk7#CLdX%{S9|^=(eoK*+pd50ndw&f0m3pim^pxKzP_k zDK`G8v#$s&tYed5iRG%UU*K;A%75)-b5I{q!YJ79M`(=+)l!7&gV3oHh&2h+Fu2Z`*rbZdiF`#_YK1%JZ0X zP4VhV4|({EN6b#G?=#RmQbc0y^=Aa1KFNi%I|nxx-n+^+y)xg4^ek|*(^bOQ>M}4f zCuVqH2b{5crMK;lqJC~Dy_K{Oc(4Mj7U1Oo84s25OtzMKrxbhLgt+*F9+fbqsuE$8%Q2Gf|qr?5|11xF!9g+dD@-Qls*>|9~$Z4tIA8IxR10XadCK1VZR9Zp_%1gsDNxi{;Z)co@j~EOAU$k zhVopmIEOs!pba~`B%8z@YXtT7M^)I%oG<4N>1H4*aOb_8PI6f6mcXdS90f`iEgM3Z z1i>M?7G=_SZH)`1J=V z-jE3W1lYv4`<2RJox-TrVsER1&-(Q57n*tK7{L{ZI79@HA;bz;@$RrZ?dBnB&6_4C8ao?f#gqV9`D6az=VZ3r(@w zS$AA5zD|3j4wxT7yv}SeDwkJ~QkEm-;cMs&)o;wd1-OVO{W}b*d|-KNQpx~Cf}M*F zphG`&oOz!NA=j!gml2h0*p*JX7h{8c%_ev9h=_jY>PBq5Jd%j$esuqqUTw{s;#yiS z87_?Kml%N7mpkz*hNJRwXw+W~k|vu7-a2;^W0G#=I7vI4*GA3^MYK_iss|wyl`}h8yO?~cl2W&Wt zR2V8oiT~bu?l1nvxS(RXsz4vH_vXVMTeDG>Y@32wB%@8sGm;!|H<{+qo%TO~aTGG# z1doT<+z$YOLZ|L^%p$=lbv+%FXFwMo)?)XsrG3^tno#OQnv-}fhS4{5ba82ZD%0H^ zgxrsnEHOWJ5CH&qXCjiV3n~e=sqm`zI0bqN(W{J5`-jydIbgGqL$1b&xyjCN8|UjzH^cGe|NiE+zLt`P=%aY?EfoO?JrRo^Ez# zcbKb88t#C(Y-ak&%yxbSX+$GHjZx(K!Fz|4H7G|H#|61$p{nsR-lxKhHgy#_rXkp z&jA-O*v<%b3D_5NseN3q9sz;Kc+VZ)Wr{98AWH3z=hkC;)8>;k=aMkYSI|ZQJcdRy zz)j7+{T>{noo&E_1`uLz-VkFTV?s!?#tgR$aEM`Wv=nDfyMTMTds^hXsw=5_Vvi>7 zF+vF6ldiU;iCrBAGUQyDc&hW5Y^tq?I$9t_ zzK)*2^bOZ57bQ9#CfZxV0jVPRRmOuHiWNCizV+r@`BsmiAq3}*Tg4Qm2E_DgbFI$1 z1&rE}1}Y;&3RSJ5?jd6HPBNl@00dvnSO7pk?Ty=F-qs<0?!aw$qAV6LO z&1N;G=U?yAz*qs-aT^sJI$YAXgJbJnV3^Rg*0eC3WKdt$#jG>DxRLGe_y|>m$Iw+C zh62q0PJJE~+c~zIOc3v?aIyTR0JqH9y*Hk^4-$RjXwMSonw26bmY$DE3_NB=y^i1e zt33w@a#DbwK*RU6W3@%*5{c~R38OP)=1{o?p%U~wA5TCvu06GzD(^Ce_ImoK_4rf;LgkR}@xb0F7;8@DJo~YzyV* zo3apaon~QEyiJOgk-?-+uk+=Lv*itiU~?zLYNvX+8S+=}!9n(!>>%YB3pVi|crU2s z6(nEj!_k(ept+rXUl!|B{ zvVu@;$UD6*uTsh4vC;r}%I%L)MmqdRrCgJz2N99K$5(O;pCb0pjX>fZKN0 zxYy#0ef2KBgGVIU4uRz`YO6DUlW)TAaF$CP;8}JnxrVIjsU_<@64{au$xHnlaN50t z%*74k5K&o%c>0f`YDU^_7#gGJ6lYJ>Rhjfz)sPZe%zD$oUNc@s$`ZQtDsGo-^N2bd zf9Ke~^IxD}nVHHn`#Lg@hyJUW4R5xoS5;7oTGj8LHg<8^!{>2x&l~(75MeYAFIz57 z)%9!kP6(8l^Gf@t_^ko%r`;SKu>eqwW(7%j{v2NBL-w|6+2(JbLL3mh?8zJI0MH4? zBR%S%{peRhUoQBFwbKdcSW5QOU)rJaHp|k9ws*DG)+t7~#iJ@Oq6au5hLRY{qQWL; zp(#;UoIi4~2j@*de#MryySs`g)9yNHfv&|tOoN$GDMB%+)vzsvU?30&wFcs&`=J5P z>-En<|6i$K**(Ey;j5S7H93Z zbr_2{3WF+qAG5iRQcz$MkkJGQSU|mA?lkzKSh%HZJdpE6dSlwZiC`XTzqOrVV}$^6>rsxbQaBwq3yG7hk@lgo|W?S`yNa4Dalz5*-Y-&}b<@mn>_ z{!gFtIbBAS#D8Yqoa;x(mC=kQVS)TCfTgEn-~YDe_A$iA4kR`cS8lGSQH^;X-Ru78 zvhJP0(j_M?Uu%m2Oufzus8Ieuq7d^dlQQ z&vg7)iT)U{DKpxXTt**#L+|+5l+Ac8lm5DvVRA3git(VKdCqJcSh#Gsa2oiqcLI&= z;r@S_T_MLEr;b50fa45;XUxb<8zJV$d&Hq4|K1?aB8wmYGRIq^jG!&f=)hWvv)e>^O7x+q15`P*? zV&APU3qtcnjuU&(Ds^Ms(8l6YuBkeVfTXOUx=|sE&uc6IzGNR#c@(f$#n@xI+v3bLM{_>iz zb&Ld_z%W*rP&QjQVYLw5S1(>aNPe43fyf0aEsG2OfuG~2n>?_ZySRv`c!+YC+ZEZZ zt-OuT^%POEPJ0oYFk}NlY5%26(fBFJlTF`flP8}c>5Tf$)bWautkr+DWc(!nE%ekl zpnCkLW~$`$cC&%vqR{WFt|-!;+BGlm4a4$qZ<>=E-iKOmO3gUS`2eY=ox0<;qIEuD{dNaz@04Rx zchJ95|HNEu%Df@-pH?-$76f9NF0FjHVR%ihDQcQa37dz1O`XvCa%Fn2+mkxaQ4GTgr)Ty2Wo1sRhYF`N~|DN*ZqOaBO8 zX%GyG@^Rv&!;T>&&rf3!KboDByw;~~0Hs=DIe76aip@1$;p64GpD|ce$eI)zD!^)@ zt!(fC^eg+6J&q#@XaDq7K@MMB2dkgdt#wIK! z0QKj(ui2tDPS9CPTvZ8d8b6%uw*->K~SkeKs_ zMgSQYJ&SoCLU&J_xbS15n;F7h1IdoP;TiYJkG*^NY7L1{%YIuPN)i{^{G7>GvExR? zFjNFxiwn*I%w7UFg5k1g?U)O;hF9g+D15-RLI}hipeDKlB=Q)f2?a0nK~3cpNr}*AK4j0@?wD8*xt45 z;0R@Mb33a7`GmEwUu6wMra7D=ab<-93)~y@)bApy<3$`bgx}?nIFfDE}w~4eu%RR z%0p!r29NgOFu*AYrq5mM#8`51f=$T!&@!^sKVgx}G(UY+^|KT4xqc4Lb(%vG*d>MW z$uSPDf77((?}>=igB#yvL^uZ!)MtJDTMx`8g~Hj?B6@$~cWNTyZ6b#UP%}OgLugz; z^0Xryr*{hU6?Hm4TXVUZ^Zuph%kS}gK1kA%(C|g`11n)S6W9s7Z(wK z8ef2b{C5Mp+LQdnZ_fmd*6Eb1BFXDJ%jLm+`t0XZqgUfT#VUVS!7I8>Rk&x)q|CJ4 z(?4L~bZXF;#U+)`+^{^3I?x4!LNsUKa>H&2S~NT4OSwOsVyUH&HTe0C`2bTGKZA^- zRIrlaT!(T5#`ju2-23tPhj-6BwS~79TZ*r4vF#|ra1-DzUh!=O3Eum~3+Rx@;sLxL zXrC(?Y&W=r%ny#*t_li> ze1}=HE*Im>CX#U;bMLfwzFNwYylP5cDn{o|oz$&WhJ(1fh;@8uR^6Jt^~@G6_d|95 zX;1?l_+M>RC*vs7emfV`2`gG298(Lqbn*!XtDMm>vd)fouSYTA5m9<$-KdTqn>}9h z02Cu>St%UqN~ea`KJBC`1B3Fse7g;$%p2{RaQ~dU(P{-pkw8EiN{RP|S(j41Sf8jq z4ttjY7UIG2KnY<#J`=ex_8j`zIFFHY#D@)9J@1meJ$o|27VMzt)5vi@xM0Zic^Lt# z)F)a4qko)KO08+{-CyxgW>Gx2NFDfvm6S>-W_7R?>*mZT?K3D!=C_yB$wgPk$!O(pNshmc_yz z-o<#>1>$Kl0O?mD*JkAktT_H;`+C11Rpz?_y8)C1L`D2e?u{1nzw_Fu?2YKtBdt;z zMFicSO{5a+hR5;}(Vln1Gtv9x;jq}aBDNcmcy5sh|G{!pKD&9Jhz(EydoZZhv zM@*e1!tm;i$Irqj-I!wN2+P>rEHU|T$RN57FL(PBY4Vs&y#g|O_+2Pn*9~{QX7MA4 z1&5Vg_zvlVOLltLfZYk8YM~P1NjFVBNHxp@*s^YX7tNhGD^doTm&NtQ>HF*L&wgaf z(tR6?CEnBXj; z76|6?c903ackqn5OJ-WNYn*-<-iNV(der!_LA2QOM)n`6;PK?=OLg@fXY%-_{~1*C z2O$*z6^xUGlp{yI5(;?%6dgJ#1#*z#q%MfPseHb@Cjjk~Qr0#$Oo5T-Mm3hpyuGv? z{^fO&2lwI`J72wq-RJ|O($O@s&+4$?0tiT{!*3$1<6FXBsa&o`RT^%`~x z>7um)p)cq3cbwx(=F@ukX(r^OQsIg&H@EMM4^Df#4Pu-JXI^!d7@yoG*C4dDu36M6 zC0Pwpz;v@1$9saw9QsagOc$r>jo_Bl*Hg$(JK&&OYl|SE0>S%khqT%MAbGe7PriICnUUyI3 zlq8(PGZiGvQ#3faZGs!5pdISqton(+P?ukr>S51U2?gfrNEVkp+``r1)iKI5+S6~@ zHczn`Pox{Uov=Ond}2!-GKW|JrGPj0bqh6Set z>J=U%YikDcVf6oI9Ni5H%Wqv2OfM zf4h|ZQOIOe)MoQB({L9wdeBiw)!wH2fH_nfSuFAV?T+d*-S-l6@CTpasrUg@!-3@R zSGt`~AdSc10Nk4-^Q;f^ASDR6nCDKaienG#Vc67-#RB4%0=TMjeAW$g%*0T*4q)|X zRHS?^Pu22hFqK^L`-rQ7x(Ng6O~Rr5+i?w|LRy@c<|jRKuk)ont=kn%B?k$|*c+s> zgW(Lp)BCEw(Tx70dK8B@O?f8Q_ufQhGX$Zz4I2QTH?=)6{!P4HI1ncbn)|&D)0I#_ zkCq}@MkWf+#{5rL`gll*^Ln9Nf-MRvSqHQ}{mW>-2lp{jKQ{hz%{rBQuc*}?M=l5i z=68NWLVu97D8#%Hr*YL1SOqKR_~R!PqU>l_e&55e_ptk#E@ zL@T_uXgi3;EU#>>1VHjanz=IRt6xUC_to@iE5Eh&&Z~p_M%V#( zf0xr49yZ-nl@ufPFW!w`_o3>lv@KU~Yg0(69B1akNNi%oOXmb}5MV;1yK(;<-l4)D zE{%DUs#nc{rhdDe-eB5Gn8fUx#+$n5nLl{<;!a<+=9eJ(TJGsv_ED%REUoYiXQS2a zYTQ59qW?iQ0GU-Ax@`o_oL?of!$M zohIdFb%#}eZ`rhC#j}nT@-T%@^;w>nCGOl4C}RMhFnxl_y4~lHmdXm6!fw!SS13n% z=m^l^=Hwd_aPIC?(72(4TJ{yf%Np1@2?`3M>V+cSg-@mH0k# zny2!oVaM^7Pou1G)Y8R#>S7+o?gHH!yHa)=KOJ;^-Fo$Sgt(^Zr){Y*sS>qW*#$c2 zjk+BVTnWBmi-(VTLGYkT2!bdrJb`E?!6!~A?EuWyc_wIw4KE{61!vCm;>Toop6ibQ zJ_P(m0^re!Z=6BA_40#BnlLXZ$~F~Nj&l_S>k)Fi1jgyq>%1=2`dHfC_u10~1E>RQ zFs2LZr*9zNo`U=GX^3}x#%_FLDK?UNN97#h^P=DDjP@;Do&EjEUxoYy;LrW+^5rGm z=#BiGk3aB0dHDqdnVtRin6w1~_*{UU20@!1zjqX+NV#Gz&?~3-`R8HOE^mxDIzCHM!5MLBemx1Yy_k!@)paJs|CJ2PTpP8|jbOg6S0lL)>5~;)&%EZ7pRhKoS zjtI@LB10SjN2RY|B-NKf5WZ?f^a-ifH(Qh!{ITV%&$j;xd=zM*kb${E-HW>sBrb#K zz@2{XrWzE_{e$e|C1r{R;l1xopEBl5TSE$ggikt5c9_6+qAzB0x!n%vqphg}f+tU~ z5si~ZtKsRDXiyKFh1Fh#8UZyD{5HG zf6nukhr6_e7p8MlHc>3(jSp`p>QhLSa%V3B65+rA*4K*91s*|M4(o#}<`ti$Z~)Fw zam+otpRg!z;{x{eZE#dDFA8uq^I{3g28tsldWA-jKQKU__|uAQN4fs)yk$w3tFrqJ z4yG$X&o^K}>LgIc0T+4RakbG>uf6ijTAF{cGWa}pzm`KoMZ;C+@}co97nB>e_X$Df zx{#y86`EfUAL9PgP_?wC`@v3hA*}dq+64h71#(hqz(W|< z-E=r5DKe`L^t$RmSuYrSrQIit>s5q4`*u6z-A`< z+BL?a-!KDZP;qUYSgNer=;8A8@bpMTo9>23?Le(QgS;kZMdY51{?6MdC3hf48Xa#L zfedWRboG8uS~8Ew1j{kqZ_;jmZ85(<@X=e8k7Niu!eytZE_}Ojb7V7gP`{KeqWKDx zhvy6oO@*19%4HJ>=Kv&5y7u-EDLd}pn!Tv-ynPhEY4I*6=U5 z$PCm_bE;@OLA6ZHro)7KFC$PZ>LE4F z1L8@T>Enao?_7k(qTxrG<@(HZdCF(|Pdd!(T{d*nz1b)sN$Fr+j$j`?wTk>IVB4<( zZ~bI@#*crEe+9`Z&*CyRmY}d#&#iYdYqP3OIR;ZgtuTi8LLS}(h3y%Xz|>XSgyufm z!W(x)aR|r=3v*_($o_I^xh=}>c)EFyUp1FcET7FP3XA)Omglf*BhZx71E?UlCB7Rr zw8S$~UW91v-nGQ$3$T$i%+da7Docs`Zhi?PGBw73Uw5;D^ZP0|4(8gCGCc7`($Cs> zcozK=tPB6A5wWPF+oJ1fcVrYHh+7&jJ(IdsPq4nBnH}1fAl-K#HX3&*;OW!>iS7sp z&fVd$<_Os}fF3yU@&c}GQ!?*T^2;7v3^N0mayKge_0ctv|NJxwb_mFWR?JwqPl4S7 zBoJbNm*ACf*iG($wi=$@A65a14Zfu-*U4UAeQ{qlO&7ce2aZchwqErQ_L*XTwDF5A zurF@Yyap|UGNb+yt85ueC$A`kc%gawtfB%$gV=_%KfWs^qU_b3@VCuO2@~ zqP5Wt!WB$NoLcGQtwc0DF>cL&5<*B}xEpct@?e5F^^er?T|GHx#bi3sOT4s`uER9| znJw~*)CvXciY4A<$)D)7b_Ujy8{?AkFYKuuThz8t0+a=%aCCSrB?KQpLb?^s zbav~TG!INRq^KBDCYUA{2jVoT!C_ML;!MEj0S@Cn+o+ysPG#GC5F{LaXNLH0=^m41 z>5gGXJaW6tAP=|h^pj`7&EQaa8D_5V3LGWcQQ7Gyk@$Mp+XSXIIA^}s@wWl3=EO%= z^K)WE;k4(m>)YMM5nm?r;Gzp|%zu zll}Vyiy6A`qaOOt0BTZ}GC42aUC2#JQ_cBK_GcQ7FAaf~)6^1(*t^G@M463RJ4zcp zmiZ74RYE`NX!&}6lS`Ec^jEnoIlSfnPgu?6b*H0 zCb>_>LsAWsh}O9}%(9N1;FaI~fidw8diG!DO`P;T)O*LoOZ$R#=y4NL?X#2h-GjT= zUs2vM>NQQwc7K_H57Qig=WJB%7E?jlMOGKsmpjuIDk_^_=N1?<=ZMx19mfwIh;S>QmL zd^+{<;qu0zUgn90F3Z4oLJsU>Of+_?3vGsMaioBE5E|O4^+?@WUpBW&t zFF+%k$c4QW-R!vN#=D54TL`GluZ!fv_2{vjV2_({h8Zf(Sb((G(;JB`Py~9iljWeY zb7B`dU&;6bm1KW}ljH48zpZP2hx21QX;e4NE6Ub?R)DFJ}U#d$#-Q-?RH<&%M;ib9T^w26-xkD^J^a9ahR+*V=o0qhL1P&G z2rTZt_=`5Bb!2=DcLQVT!I~coG1C!^?yEcaj~#)h?frcIGSUX()p$^&=k4@Cd4vZk z?<&-<=X`}3!{?BVv7cWV6!pu}mW1y(jv1)a2Z=xXcyeA&PlA_PZ8K+GY$fev_ynhh zn)Iad=N4@4<>3F=GpOTHBs=PLvck3S_UBrJq|6VBz=fiXN8V=sZDr`maz!BfbKarjj3^sJk>jT&i(AsHhH;^9 zSTvV2l}`2gp;D~Ko*!Z|?`Cs!aM%*hZ$=*W{y@@w(;h@%{)c3iLuO+WSYQ4M#iw@2 za7+GLhYtbg&Mn5y60Z;w+?em`?}jg&C90x(7Z5jt;CzA+sL#`RDOJiN3hg(CW`Jil zBK`pFQ_lDD$6;kKQpd)r&pyR(R`0N`L`8=LAJSJ~k$bu^6Y;IkEvN(KK4RuT@1>a* zj>IoB^TJrJt%{C#+^B?{mq>ZRdFGQMRFWW?{3IU7wrRysWC$$6T-H7;lc8-HsgoQ$z%WZk_<{Rtk#Uh`EZI zMp)qrRSDD?+AsIoITWsd+rU2jn%fSPo}R-Q04(5jdS7^x6DxjSAe*OWXV4h3wS0$l zb;U;D&?hHHqq!EApVJ)(!q&xfgg2P2J$M3{bRdBif{Etuy8$aObnApYLD;>A8TD@; z6pQB=vZnYAyCC(3JV@42g>^rSs(xD)A1%gAJO-cH`}2uWa1@LdafdQ>!*uFEUdr%L zZxIWQBxZ{P+zF&}3bL@`6x^c11E^K-y~|MRs%DJYZylqSc|z>ysV>e=-%@{A{B%CN zS9TYq29}1&@#ZI46-gw9o{+dyU+l?{{CK9%<6VZ+u6pMI2tYM()>E{9fA0VXk!g%H zhkA!$ENnjuJf%;kHIgIIF!#&7zY{=fqs${F$#9_AB?prK9)>7(;tB%LkdD1Gm3klR zZFX}9p@32>T=Nr_66Vx>(VcHm7y5!=mvvSC?mt#R91b929exJv=Pg1Jv{CYt>rR$U zb7q_G6lVJ`+zbm_+Rkf6P371FFNc3;Nwcfh!2t)LOQ;_ryg*n5%P%@So>P=v@3HfH zSAb`BxAypzSml@^@*`xeoQ*pRK=5H{p!R}2&-|(ElNw6XZ2$~-|9o|3pOshEy!oxo zvV*!H`=F6x_NVI05>mb1*b*Nvdgde-fnJJJ0kV2i7rJ)tj@G&`d8GXHDIM0~fZo1D z9A|E5vn#&S9uyIcmnoLkJ`#(H+ZL-J) zusl$Orcq3iJt)$3Qv z8LtOaQ&^yIJ%5zwtlt2ZZm?vHl#xSg4Dg49@~a`A`ELU7bi(P@7)qG-z_K9NF}}EMBk*Dw=O3!;#-8zbSK1QSGu}Ty=In2u_iBfh$yb^Ou8tG*7oL zx1x!+?%ts^F~`C9p<>M=ph@gRqJFu!OwQ^VzZRdT8#4 z+`jii3{f5f?T(dUN7w#9eaG=C@-sBG~M{kDfcYSPgSbfk-f z*Wm;3kCSt;E?)))`{~Qh6j>IMcmscl#?TLM=;#s7_7kuR=Ds5>9(ae|z1_#GbC>+|_4R8$3fRyXWqU^Ps&JbRWFCWF9FRiVf?pIenc#xz=`asN-By}Fere_iQ_GsJin0*X^kKK2WYpn|26=z# z3=9ppYBD-WOzg7YXwkXKgFf6bkKKbemOQ$IRM4kDm2@Mt%pQtOL-Bz9>7c9@LdD)3Ij-!ap zL~Zu4e^l}~<~C|wBtEm+t}4GK7QDb<2)Se4_rQ@GSr0~1hOvX}OgAi10qzr2pNRy> z|1u!*aMqP7_k+jsUdE%;gf($e04+bq9~&G6AR~uoG57RmQaFUe>RUbUI330y?ms0E zhpiZuMMpP=-c}4Qd@jK2u>*4?(fHNIfE!{J-MtrcdTiAZ?xY5 z0O+B-y2qX898|9H@Yi_-8c_e&@|X~-gja9IYCiaQFmap@J(Q@D_PNs{+mAiGf^V3R zwEDc_wV6iHoA2KK(JN(5#iRwDv+lQwe-DkxoAZp9i!9{GdxPy?Tl411Q zUvAh&Dko^uOl|Z9zQ%e_8*qyGdN(0m5ElOaxP36!&&zFovcR*f6)Gc1=ck2YKgjSm z_Yr~^_PsaXbo{qiau?Jmw{NjME3#n=LbeCPj#d7$wwNuK*?i{6`AOAJY3TLvFEc*< z`tr}l`ptwF?@b?r2+RiRq?L~Wn3m@&^ z3Bj)K$#^=k<6w3T-S}fa$lEgEhWzNIe1B9<@p7jhT-WmY^#;((>o+v1(~`0a7d&Jf zyfO$kNiWrk+5Me(dcpJWU(LsT6Hb)N>gOv0+ zzRoqa1QCU2K_g3KN?keZfE!P#e~)$7Z4Lw zX?LLE8fuwwr+REg<%F{}dFdOWP;|%Dq;UGI_kzs4{gDKk1n9@zQ=D#?CECSc>un(~rk*^n55#4gG2gj(ZqPV$ zU*_z4a=)hY)0=zX9<|T!{AWN#415PO%`tL)bl`*(k zzVHjpZ53)|k3_@yV@jTC*ckH-wCGF_&>F@AX)55}zI*3G$I=b<**7aXeRsp%)%^Vy zs45RHxi;>L%(g5bT0I4=RCx!_f!`a6CkNg6DjiUO`Njo0xQ`atMKVRQNR!VJw&FW@ zgQ@aU*ddR@m6r532KZkEbLL_mHc)zQB_DGjc6RFHf^Dc$qEmyGBBmxDZG=9p{5(&l zv3?W=e7MFO&d-{pek)(kUl|bXZi?(C4PYXK`m)(;L-?OB%#i^?puNe;TLKJ!choGX zuR}Gw?|f13?_*;rh)>(T#eVTyThJWCoxpmeJ42>Z;gde=qw7wW%?e{8wu*- zAO^wBsOAP$7yfMfI}VDo82tbTgC>fY$!Kz%*WKgpIVAZCq^6gq-dw(7qC0BD%f(OYf2+z zhUvZes#ocl^N+CHVE}OhpUG-PGY1lkMlJ~Xx;^c#t#!=&ow+RK^*Y~T5-zf*F>x4= zO9o`55X#Yr&AVV+Mj_Yk@6X6UZujdY*E1w-fcvSnfcK5Qu{kc)i-zUUjf$cE`_zB1 zhph1h9GpkKx*3MD^KU2gAa`wEMzvXrbPxvgcccsG~`*m51@q z;{n2-+*Tv)%!QC%tA3q1%>3#RWeV^(zjgleF)OKlJ{o-o6Km|RB?3o0oT4z;V2upr zTMY^dTeGJ36>zUO;WK`X<>dS}a3y_-UQa#nU$`0Hp+YlE6!>+)$(O{&x1F@|so&qR z1r{uj%BXa$<~AN7w|J~hBF!+`DYNp`fW3NdA{0bd`7;B>xu>FF>H6w%T+?Pc!3*dU+4?2jw7a9 z-Y9rY7a+C%K-O;uH?o7XHwbyo`=fEnUX&2GD^(USd*ov`~#5U#-@)vOY#GV1l!+M|-RXSAND7A);5 zO!1#@lAHz`_f})&5qKi9a?$epUXIP>?hs{~$h$N}3Gg00nb*{@9b&QTm(H%o@pF4& z&jwY5dNEIaFd`p;qU))D3Vn0$&uoAg;mxV7(K!t8fa`I;cm+TJob=Imr+ntfQb6$# z#b|joc8HCZD1t@s)t%Z=PmD3N?uhzwECQWDH!syQS@NsKRl`?78F821RXKj@I;e=` zw+_(Rk2;Zfd8cOuITJ7H^IZU233^-c+SNnny&-2ZP|hfpPWZRa|V zANSB_{b377$ZK|!`Nezlp;xrXy+j&9UUA|tC1F{&<)dMc1#}qS!==#l(tzj8T>2** zIhwnk@BGafDRo|A97hnsUQzm&!(|LwkOC$Ht-4@{ZaWfC8#Fdv$b}@v`H+BZRz7lt$iyv><=Z|>$JhI(jT5Ii`$Q)pxb8r{Y?0P1A zf07hbX!>@LhV}8pndyR9Ou3~0CnnxE_1m)AZOf*u_OJ$7$)X64#hb-#Pt-_OWKclC zI%?=nFlNcBU#(H|;8V70Ja>I@;*?#wzD#^mAHTciADdY|18OZ$r?hb%ZRI^3+(2|YL644j;sIXU`G z&-Q;I#7A~B?Qerywt0A`{OjPh8lwtii~L#otBn#P*+&Pm`6zAi^+5|*c$Sy1V1B?C z_43JaKiByxv-qoN&W>~<`!xobBgt*Re|fccI0|U2$d5tF;KQupO4ank^j?wTO|LJY z)WR%`EY)rTY@D#7{fGt`H#I1z$HozChlKedD&Y*fejhNwf~cc{jrbe_j)jsuM+~1x zdy^JW3Sz?_zl}NhHXN_C30rJed910XKYl!(rDO1iTD(pV?)m`Qq49ms%kGAZ0ujR_ z8`Ni#&lRvou42m8B?XRUa>bgJ3+$`uvO6$cXaXSUJZA|NzCua~9vPNG8LC1R_f6fK)`f-p%DfF$c>!}rmF&VF4 zm5kK4ypWb$X)aMkSPvZOSNy2J3$iHvs*R6azOF%TYEJH%fxBq%?`w+);^>{^|fj&>c@Q8R_ zVTr}~v1rPzdD(IK?0%z-=uHQ&Rw9&R2kie&`tl;64&a1~Pyo?zp;+ek)A`>!=fI1o zVLKv5w&6eJCPQk91FWJu#K>O^yTjj%0B7+S3A$H$g88lXSX%=k!SHt#8V8>#{Nz^{ zJU_pJKk%hU&rGAU{)I z*q_m{`}=bH-_73E!HNm9ez@soemNNqIRu*wkwV5_*B9i>#U7RN@EleJQ)k}&hKu4m z@297G#8C=i*1s&eG4Tt_Vg&5}$n*W35^x398yqDnO$%giZw-hCnadUD{IUfLUQ_fK z&pWMvka;dOSUSmtXsXxqmvPbj30qeq;)-!kbC08D{w}-wlO(tD7&B~ zdIC_-ihs*FLA~0}r~b(0m4vEhFc~a?r_v&-qH@75(J|z@IYs$*a=x3@1XNKJ&vTyc z>+=E}3khgnPuywlKFeAxJmo8&!E|m}YLgCg)T^v zW{}n4Na`XjLFH|>&!cdWq-UiGI2lWW=+))a1*~-0fA8K^#Ehac`IqR6$hruKCDC_z-dh z3sd1)7^7c~4)Bh>ofxvo6l^Y%3H=9^eY_dtX!Ce%@ba8#PYu0Th==rNu|1d*l8)Tv zZI5t!EVG;xUjsNxi$0AE!v8Tv3G&APT8{;{{(f|y<{l5cBU|g{ROAYaWYH(@Ve)uS zz}y7hJy%ZiMFPy8BnVQwkXH7m(^&u6VtodF;{+d!fXNo>>fy+$5W%g;1zzcX+$MY*;`@GwAQJeTL$|Ai`ET9HwgY|cNo(K0mv38`* zozI*DTm%&U{^20O^L20YRdh9Uyf`fh`1iN<{LS~w0gGD-zseOR$4a%$|;JYz3^41kcP@|9pNK>LSnhPMl!C4B}p{9u5~}eydyJ7_S;Tj&N6O)QV{Sf-Ymi0l|zV2|dYCBrzojh=sm5GoE$$6Oz1;y=}vg6NR zdyLy5(TwLT_U+L#@l|Gd7qfl5*r0olx7%e5rqQWRxKh<=82kIn{fkyvuoQMJ!_pL) z8ujjKik^mIKYO^6yPwybLrI3O$T^H6-O?<|9O=eZ>-DkD*$Hf~>GJ{5F*v^Qm(Hjc zsM3g=Lq>ZCGJ3tv`$9b(mdGviNjOcJ1C-;}ptMJ;vcr&~S_NNC0(Oe3tf*_$9125q zu#bg+d2xL^c`H$6%WPlmJ%T06d;OLKB6a|CC7}djG^o?b*u|AO zSA|5@J1_UK&s_V44(pajlIQZN1>!NsH7uTRM4&dx#w}2epz=He6mZG8mFWoWl!bZn z#&373s`jJNxc@@<<)qJ_G26sx^csRN4rdiqXnF`NuCQyNJxK$+ z-5!$qhipDZt5|{9Scl)1$ggCdL}zJ$Bk@NG_o+^y5I!B~2QFuj=%f(Jb1nQ1y>N8Q zS+IXE?i}u{tpn@WOi{Eu{v{schSAy3omC(3|E*p89L26NRPb&!y{&e-kT$8 z972^ZWp?!%DpR*DTnQFjH7ZoDG_LXO3hb|Cgu$Ti+UuweAL9Jo-DT}WEr^mlVp~M{ ztvmMLV7qAC8>Btn_iQ|b+`#mpzQzY;4AjzV&gH#j8+D(XjEAkk){ghLSo45KEd&UX!mz~r z$JdR;-5c%4egv0_`XJbbOx4FhgYbTa#2J-kzr9#=4!ty(oI7N0*gr-Ig+?m`3*kk$ zhgnGQPu8bdw7M=YOLO#?xm#{EgV+dzHR#Hc0&oK^a({^smzDOaX>4R1EjzR&*au^Emd`3jElS+B9c&eo!m!CVSC}-@;bX(c-j=BT7;KQ<_=% zgj|67#pA*TJ(URZ4N^}OO+N>FS)JYqz+T@VZf=XniZW6C0A7BkIsY%9gd194+`sBX z8w>g}btA{}=dZnD^fm^xKEQ~bOk@1_o}rw?2SIyDPkqzPi-5uTy!?xdN<#*DoO zxF#KGp$bPn-J>Q7yUKp-pN z7NO#(Lq~{uw2g8n3hFmZo#55IFxK;uv|08AvmIlQgu_-bAdt<@?td0&ub|)A2C7WS2guw4Qg#_3M#d(HZM)OU^z-f2z98HDyahoYVkF5*G@}qa|4npJ zJAR(3o9uOZFMY#(&M`_kPt~S)-rK+zG<=ZCP<{C}Z~Q%eR@(OseCD)8f+O#|&l$iu zat`r@c%OHSmd{i16dpbK1HTWFp8)Yu42lT!*pJlYyDTyym<#25Mw>sl${urY`!eP@WBccUNsQ-p|2 zT`26rZcf{m z@tp}ivU(1|baPsSwXRoqneFy`Mh$J=t`{Jvr91w3-I6Ov3)a0RIS7*cpY{yKeK=q8 zE3)_%vv9Dc|Adq_*m&J?Phpe;3$6}8g7GG*>s!`^V|ePPsIO@t*F zVilNMC(oC{;*bdrG&Gmw6?ph&=a;enV8_4F53(wPqfgrYbq72W zu1U^cd_%e%^3tT6!`Sb`W!B%Nf)83U%2!iJ&_~DM)OWRy5B%1K>NMY* zA94loe_B>#rvhOFeK4dUAL6@%p^%ocA`fJM*AFSZ1&8qOOWO}f;?v(1s40J;x*`l8 z68CD)E>Zvh@H#()9_bYi_O`^cqR`2~(-6T(1UT zlB}e~*6;);%AOAt-p7IrLOSK+6q6#TF4VUHuv~Ca#_-H(=Fa%stxrGY*r#5+_>zDK zu(bG&Zy&Ojv#k>$TB~-U04LIZc$gZoNP%&2IGF`=k4$w8;=c*H_cuT^o;+h-Y@rRs zy?v5PBS`gRjhzd1Ue5=d8YY1II@B)`P*=mgL%aq!&>o*{{-FIasj-$Sqv-SYFSc~X zxb;cniQ>#5`Y4#p<_-J~_cNedsAbrw${3BFUvazSQ|(QZk4y6VfIL){Km$D=rco9c zb|7$xhTe0L#-J|1>ePo>c}5oW6dBN<G!%36L;+ritcCmu?rBbXUCf<8q_(WqYWn!LDBhxbU$n@U!A$<*|U{LDskpEjCBL z!m?H1e|UH?VJ|sCBM?+$=?nj-nUE->Z|a8(u8MkI8dyUlBA~Tbp?eS~p)Jyy#m7UvchYkc<8Pu>M{lZ}3@H8;IA0xO^AN1e##pBA@Nu6c41(U9&MqidR8*}8c>`6PQRw_RHK}}u* z?8ctR|Ik=+>8t9f*L8jnexHXXWnUjjG4=IcR83U{J|~@UQu^(kafdRO-r^098^wI7 zN15nUYDcUlTj4)>-OB!!Ri)w0{0Q}x{E^V|nZyq!v8rSeh;m=!rq+=X7LHe#fDW#j zW0;R_7K}|N*DmRe)~X%*g*C%j4mZ<&KvV(K)nr)I-zqfR5n=?VvLAI0Awt<=}a8EjPVXLzG}Y>~@L} zhPqf`f{S05fq)Gq?(_bVX`_SPhu)Sv>z=SmRT+19PY&So(vZ`JTk^BOBHcP?P1H;k z%i?b}V3P3l3VHZagLf-GMUms{1PuzyGE{Bg!_}wp|6$G4 zh&<&S4sQ@UeG@>)pBUAoHeQUU?QAfK*guVp7gKu@hnQ8!JAY=?#~X|~63z5aD&nP! zlZxpRe_Pu}!VAkVl}J^)rwklk@lTCeeyU`r4Bo&t+hc^#L!EZi3=77IAmj?Y?*5D5J*T*+Wx%Nu? z#Y!3D=q8W6zUh#!l&7eu$QT{}8qs$gA-N77kJI6VX}1)~32x+ZW(5U?^9boQCOY&wqRPy@F8A2Bu|D6+=*jHV&U zLwO&MZ{swQw?WRIt^y&7-mlsR;)L$;E)OK2<^Ew{kcv#*>1)WoSpDFOehUP|zvgZi zvCs@_u*(_wE(lE?%J$o08SGg%Xq4wxDDHT?(U&=65Gx3N%6e;f{O_#p{PJ0V-Rs8l zF@FtNw7Pcnm6RHEQ#;VUPz00CD!)r|s4^n<>oI&qH%>pZxU^UwF&<0mu?VzBnDen8 zxGw<*t=H1idm_q4yPqq#A2AX4tLfKpD2_&5^1K(%4R(ynQ59C;N;o_~Gi^A(;RVzL zEJBvu8E=I*A!G;kQeaQkY;6H1Gz66JW-6NC#_wG8t5RHR9Mv}+WRJP;Xr$d+|?8FR>Kx)mz2Lfv|(Bf||NM-D`3D;Al33Nj|;?%3yX-#qv$XWj|?_ru?SA}O!68U&uT^47nnLX z&4<1|ZamrtQ10?4q-Ig_Tl$ne_a+n*`BkisV~JjiVpOo_Zp^9BrQ@&ho6kemTbD9N9kGeD4mbN!J{u zg|1F0@PYm%Lm6y#&peU5W%_R8uTbQja|g2SW)Id5ClW{e`5?1m&x-H=`{5~DaMA9^ z^SD}A*Z;uHbFb;z$(CQio)P2E-Jb3OCYs=L%JpUCc>RNqG{W3h71qg}D}q&$%OjvR zfF?>vPJEFW;D<{0VShm3v%QSxx@LxW7L25$80;fGKW;Gz?T_MS$?lq`<&+m9b6PdU za>55(H<=p^;S*e5Xv%UUiT2t7r^+wEkrMU!5dE@jVWG!WdImY)NLmmeFR+VCsX}Td z9UDU9BxBP45z^Sxkd@9MePv;&Vd8`LEs5vDs8L_iUblj&b{!@BaXk=$nU&R&4m=PB zZS&p1WU4+Sr$mtjd0}&(KVvn+uWYxDZ4KG8cMQ?U|H6QlsTf}e1GwgO1>V@WjQMTj zk4KE1Viu&dp70_TV!~S=f+9lpyMu~1xPhn9a;Ok^xfStpW&Uw=CfkZ?Srq*s8cHSD z6bniLLCPMLB9+tvUmxp6wsPdi7xAta;js5wb7pVU5q2ed_y8aI5C9S5a zQ;(#6G&kryhLMa>wu(^{%`D&E19ZK{@v2|-%W=oa^wjCw@q2k)l^`Scg1G>8My zlEz1lxFzIb-63$w@VqO0cG!XasujPGscjSs(xAock}>ehm&RiRAntqNQ6L~CJCGr} zGz{l0sv3sOz-OaC`-U>>aPw=oP8S~C=s_GJUDpF|!MXSnzSYquuKKEQp1}-s9B4S8Nh)p@;7m4Z2|JmU_YTA5e;A|*q@_jZNFU#R-Z_?9S5|nm_;Z+ zU6REiqFj2yntX`KX(JEk`H6ZoR%5*JU3GPNvWR1kZ|ng+czM^BmbdI5bdh`k_$ui_ zsC>Uxdxe8`MXGRL5MTZQ=(YL$nS$AL-~8*egSv8!sw<_VGIA;aj9sng*~0<@FWe~q z?!D|t4v3vp59@D{mw_k!2Ol7ZeAKRyHVMUgxc)^`tKAt>nK!PDT}DAdSau!sJU+si zqc{925wg>dts>(@b5dFzDQl$C4^Dcwkxl6~tZ;0kZf_A&G%`ax;nv+I3Q#4teLRN; ziq5#tzN24ebDLafxPP`B)2YR%v{x_u&5LlqiZGeXUU*suc`Nz@)30Y9&Bt$O2%_ye zfCeoG@<8)}l!F}{bS7>)LDv^ti&(#Ud||7#{mv0UKx%QPm>rm{ zGsxODRi(_A`CVP_a4`=x%z9zB(gyFxk;x|RuT@T`aA1(ddoj&?Y3Y0xzZ3^m(+`<} zBtWYZeFR(`iSp-{v8D19!W(pi7)zXd#Z~l?70Gx7ZW9Y)Ca{9C*6q zmaG<&3YffM}MA+na? z9sbzsOJ}rp=E7?ut)Dxvfvra}@OzlA12z*p^%W8+ab)5t&5vCQLJw;XAg1R>#u$*t z`#gYb5W-ek5G@Z<0&p4b(i%0LZf%5WuBgi-txQr(ZoZI7#0|HZRHK_Ik{S;7&#?EDKee)2v zP{FdOW-LKJ74m-z+lae(>uk{?BLWP{!B4^BUU~pe@TM=nXpx3-cYj;~?m|U=48RSI zZ_kwVOiROekU#%WyZ?Q*8v?&e5$wR+zOH!h4mJ-7aJyfkfWQb- zZ3F(UKe}r3>r;x{m+Z+=KRh}R-pr(kR-)RK_h|X>5Rpje zui{7xNdmMqU3z5vQP%bSjYUHaGE0wAjiyKY+!!y4*-6LtdFsBx`F9kzrsohmUhwy6 z2LDxq<8*r^*=0veL*zgDgZD%a`%-cUX+wAlvaN$5(d5gz`@%PL)vwfr{~7vM4@PKe zW~DEDSVUjZ+3pMq&(1jh?^XUjya-Rw)0UUE#^Tx+ci?R;M{S?N_Qp)`a`0p6WSPeb z3xa^K|K4{_U6GQ9-TW74bAI1Jp@6v>u-C>Bg8HT$z2}qlevh#>hpOty|e9c z@a?vja=YRgC^d!Y_nTAYvHsf3JCFOI{5H@Grn}q=FZbi3+=h{JZ1AKKI{3?zqNaLm zpoJ~ztnkhVBSX~K*)bdD z9PvALP;brG!yWhYKVZpz#q3?S61oR0%MogSz{@38qtc4467u99`|DsM4XzrwgJSfi zbPma%WJc#K7I8s-4;5AHS8vh_eOuWGhQ5d}FU6X@K;VEU?_oAM6`&eY*8V(vJPp*= z8@ORC0dlN?+U`z&HiC``2jw|Xt+I#x+yPzEzHS4*7i&GF#kyHpdX?zZeBJPi*CO%! z!&?jr!bN?ez*+dJ+VMTqAcM^}@B4z4?K1|!%cP|%cLg`^@RoXYOUGCk@ zU}?HI?BQ`|TYP33dKKo6%5o5=Z;csGgY)nqPjm%T)rmqS zKIz+IkCMo>bP@_~jYbg#{7!F*C)d;wvkNrM(`E5s73nTzY>~&}sq9c7625$mjTq2B z9ZVdgtL~`Jx0vMPw@4~I2f?fcb!OkEEJ|^h7dsH&XCf-s5zrHmV(8DIZ~WJF(DSRk zSns7cn)V!-7v~cJPQDU=TvgLclTCwzU}vR&QVZ%f0n8cj|F|Pbo1`VxBZGtMcp*_E zy~QE@sV^_t{bABkAP}D&!%N#*(^ib?zO#KqUUA{;GH2iD-i5b8`YOVFYFf-r7(p%Gg1S(ZZ?_$>>i(Fd1=m#Evd zjiNW+5?;4y@;=_W!(?G$?*Rcarg1VXyqs(s|JdCGq`}k>mo~anQWE@zD823|41^9G zZVrcFZDO#HY0<$dp8nU1 zDB8Ljj};4vBc5ju@|%ntwAa79)t=jqdc$2J-vsxBN5BcrubA_%ZXQ>Sv0_QLqT7Nv z8}5_Z4-ed__*{W-sTQRkUW<+&tRnA2HR5#x3%>=oeSC41@8QbHIr&=N@qxG|`-g0u z-e^zMfRTZtb;GLw434pTxzzWs{+8K~Is4k{vO}}y<$E(26Tu0?KS?xSD4>wiChN-n zOIM`HI*NGeh&TJCM2IcxwoNIj^fupU7b3n>uBQA>s0nou&;&}~qN@4WLU z2Sq2n&*efquLkH1g;@lFc>5g28yj@xaW({mD3Nkn$}%A*KZvNut?I`aws!|$)d z`IXhXtF~ZpZTFu;p-#CV!{+gkOB~Magwb zv!3`^p0{0P&CF{7aC1cL@?t+RM3A7$L0U4W+luk@foxBOc5m@4O2h+1zf%F*Hwz6W z89wK`?-VMpoF6+yDH#AG7FRtCapRnzly&19#MpU&U{-?oJJ*jS;QVFU^~TnLle)Sl zkSY}J%fBYfZmC)EA*3~!DZH1<`Q;ox*^eXRYVFwa%Ws2go|`xKc%8&%?l9*%wlkE( ztcGs)xnIaXkaMV9BYdak1sdN)izV*A~|4l zjB#h{t#hzWDZga?iA4`Sr7kFz01-ZdUh{m3uyIf!}Dm$k=?q1{| zXzNX2!w~#G6!Y)~14s`1p!);ETZi8-_`UCY3%UxRKF9>}*xl!$5dxxWr}s~#e%tk> z!l}AzEEOFX>t?+VHjALka^bT>)qCycC*whJot;W#S081p>6MKIqi0ueehvkmY9I6N zHIM6f!RH~MLvkq&TEicf*BjX4qlM45CeZseG@C(VX??cSwL32FWAfUAZSn%_!u(LX z=Wk@R9Ead519pz^ek~b3K1*LdlPlcpn5{jiHFwURxlKOw-7|ZJ)FJ)`9&<>+aR&!| zVLUu#$DI*=i(C9n^SU5>(fIYP^16&HQZg14gxIHEQu@OSCjYczGlH67Zfm^KP^qT^ z?WJfqcOC#;Z##9bH!s``kg>e-XF~D@^TOX>)W_D5VQgdp7#7)gfo6EDW1_Gn^aF{q zE_k+s@j3*oUNoEH8GDbzId-qdzz%}CTb)R{A09l3uihjI-06((ZZt$QHd_sG1=*pm zr_CG5)N3E7uyl?aCG;&hen&J#0F@}QII5F^eFO5})dhe?B_EEdGGb{NAz@*^C0yXm zx~`k?qQ7NIF~)s|g^Y)S!HD9cU_Az&KjQ!3lY6m5?kzNqwui@@*taSLdhE5>!65=R z??nk#Dmxs=`$ye!XEo)_6Qtmj)E$l60!y6CiL@X zIXS$RfR;dW&5Isful^Cp&YM}qaW&FkyxNPiC@tZfhFL`JYhb>M<`;VDu2FWEmVh9! zh?iYA12!qtLY}+hYMt00W+mk3Wo#8|crpzTTpPy>nL46rN-gWXJzR?u(=kQh!sD!<#_4*n;Mf8PMhT07hR7#s z7UT-@H-JV5-@1sQ&tko6A=)PkKP86j&?flC`V1qr<9obj^4)C80B&wx?V|WQkiX!|rIb*`Yy-j_{8YWl-s#O) z^%w;2MBlOp`ky~5`ojOM7m2WE;Y+Pc5OyUUsKno$r3$cO@Ty4^eJc~2%xKvI#%VlJ zgFtmq4Ncx`5}Z`>2-?+4`|Lf3Rt(YmvD8?g=z-yse~$@^%MJ8=k=JH#SIFYO7= z#O!bm0N`PMpoMK5S;Jn9|2^mdeQMy->9bwy9TTq{0MYts$t3p~V(VZsfIKiIW&MfP zQbj$tS}|Y>*4yECK6TSFU0|}knz0CQUzg7gs**a9 z5ICJO5lje2cOoTl;NKIib@GrI#`JW=rmq||Di92tJ0+)-hqQ}}uIP2)T9))4Lpt#q zXMB$0GpT_#Kvn(mOYC6_lGUd8^k7X=p6Y5T8RL3L98%JY{LcwjkQNq=KjjJew zcYuIvbr`1QzP?v948&6{V0c2m-YX6?4dpT~1>)JadB10=oPGWMX}4jv$xE3C(!dX2 zXw1eF^|8}5gffmP!YE(P{80*Cs(`h4$9J2vnm&ugStY0V8`juloYs--=}s z024o9VwJ_Y`yIHPLpM)euzq$x;hFQ;(rVH6J#E#F$HX`nSkk)I-q+L1EBe6KT~kjS zo{aADHNElt<5fI3s6Fz{MU7&m@Y$9UPgdiAch4Uvv&p>$%SAYZf8);ElvebyxdNb} zbmNvi5fHsk$LH^Rxk`xsT>mmEIs(w_RwkvZbl|%{ZHFP~`Q~fu3!p&G4TmqopedjN z6Dre}Zvs}h{{R_}#mB&k{kN{XTYuX{?g3dmi5=cM^$iR{7r}0;hiLjUHi?+e6&~v4 zO5H%aQvvEAaeRbd+YoLBs`{_;hnzu6wfxdbc`8A{7j-zS?7mT&`^qIodn*!E{arj) zynn%ehqzQ-9ngOWzG3iqXL0m%_~{Nr{8zI{t0gn&bCTwYtuOVmqQhp*oWg6U7^i+R zfUc+D8%MlkEWRNq7PRR;>hdsNhnAJu)7Hx`-FqaJwa1Z_-JI8TY^5uI0RQdZmVgvSN~8A1EB_tu>} z-b{7FLhULP0-Qj&Ii^?$0MOf8inO=*e>sfWZYMKEkqAhL?n585W&Ci zWko@nzJ87#4AKE&m*1TGfFxdY!pYN}$EgxAqdLLTQ z;~6xwL)y)crFfPm!l0{-=;Y~nwM~{d%IWl5z5@M&jzDiJ{uf^P%)#GZ(496`o^lW4 zwXQ<@z@-~jcUkQ}%G_;3;`BM)SNz%BzL>Z-bkU7qKQ8$Wm&(3+E8z!nLc|2n?#Wf= zJ!vi2*J1!eok|=d8l;pli3qRcfqS=f;`ovbW2d|31<@2|zK#bJFMJOfZ>a%$^-ohv z_v6v7_Wd(GKOaXyQxA8qOr$p~yV9iAKonaL2^e0BQ@Y!mPJh#-z3S1$aDA?ON~%1` z|N8<(?jOT=ub^DOKGoj`ut7(@ z7%IVikQwOEU!y-ZD7N{>iT#JN58wqN9sEIj`N_Ogs?tZR7Tit>+`$v`^^jgzB+%Td zWH4q-Y0y=VqBmz2KneZCW+5P#`X+bCLjIOf8o*Fc&MT5hW{o9(m5u%a*7QMC&WN+J zf^UH6(cZ7N|5B13*lYZ6GP+Rv4tHZe1i&Kltj}+(h+$c0vZYFzraa=tC47Zqgg8H% zAwj&vInIgwLDQI_gVKI93BB)j5p}TIDWu$c>a)u;&DGp2_~siBrbN?9 z++KNuJ44dqNoi?P46Vv#Mk^2lB+LaO93t-30JuX^w@^~@dsWvpEpgY(fIyDQIQ4GLCCx(xVR+zc&4_QNZru zLb?yQNB78Om1Z4SZ_}_mA$)SL!oOmxtX;*asxBV$On$-3Xa-bD=oWDeTZ-`S_3LeW znBjcTQ)$?=2Gu0Ght2Du&kqLhq3nnk+MK4k2r43iW?9r?Tob!NWITEiT6YzW5)TR>nAvpWD;|Duc8yxgKAbD{pnBhpCb3(314`Qq)Ii2KD)Gd8bJwYB8|!UvVC0Had9R`j;bK2YwxGmO;F>RK zTJLXwWE!8&5=H5?4|WWx34PuA4(OLH#xAszG%-3yk-%*S1dzE$}lXnVsI-`lEP3~J7cu>_Z0jrDbd)^$EjYLK}Sh? z#xPnv!)9KV8BW>v8qr!6+4IROa(dZmf4ax^am2#D`;{JtptOGFBWt_4;=#$M6FwM( zKTqJE8fSM$N4a-0pywrZk8>!VLz_tcMt4m{S#~D&>I7YmnHaH6Py2{oKK7q5RD8`L z)<#v5K^Ur`TTMsMo4#PT0?z5OZ^=6T>;sQm&kO+NpkKU7;;6J$8+rWoJI3?&;BHQN z2_!rMJhu4U`wbYmMiW1~l!;SX(yfRE_X5AHwR_Ker-Jf`>S-_9>b@%O_7@%ws${_= z+m5*;zUUyAot{Vk3!UisU`nY?MMM6$u9zLp%Cg5AAbRe@Xh_r0JE;8wte?`c$MU7W z|6pxQx~I;pLKmC6BFc*x>kO`+o6a(9SgUARSOcpa&XF`s)|~ldk=e0B$j(l~Q`)~k z(B56pD~HXqRav|(O}~NBFe!LXD|^pQ{y5DgX(hTV7vgr=h^H>CLXaRCwF(r>R{ z3gJlH>a6`(0>N{T6&kY|55Wqn)ZVjYFrxs9BmPb(3~cwMY7qG$XR_)uLNIH);BM~H z4j^a-VvMu=w zGeTl-@dS~XAA_<K zR6G7XVP!=W*{#X3tsh4DJ#FuHgysDRs@Y{q&2Qo^y2L}hfixJWfmj=5$|GRjFPxdq zS+va;=MFNcdsAo1X*hgS;_t&^8CR5?ciMe$f7sjYtu5rXdMh9aOT8=x{jN?vUgMnTsV$(CrZ891&qGDcwacp!t~Ek9?}w4uY< zkLBZZI^B)QXnSYC7j9V}qUjvF=PUS|>OUT31+NJWs8Bb^XHYcI=6asxTLD3uDFHaE z^XwxLsY;WeT+z+n{eY!e{_iZzu80%6P3_Jd=%D z?Sq#^V!PsAb2)`DAO*M~J?qCJTrrZl`2mb~0Mb1UIrQPzVPC({{c&YhOn6fC$54Ai zAf}#9OMts|fM>(uc~F^lWfUCL^*iH;PT80!`8{Ji2L`@;sHj^}>$lrMRy0#6TwZRu+5NJ)auLikKUbXz>BGGw-S;6+w^56yAy3~c z%2uEdNrGm`uc7R|-PVMX%B&Uww#X4*Gu3cYf-X-i{(W|nsChi^-BlZRe=bRqcXkxN zoFL1`x$+^f|1!S|+rL!NBs*h&nL|?cRs?3cPI*Re|9eW?I9vZww|#pS)LZ6x>xN^`Q{AG?E6!U!9}{ofS8@0 z&~ifm$U}KTx66GCEo;Q6F5)h7kkv2m>v+&Fee6^dAzer9<6cO^#RhkCSVRHW8I``2 zdgZ_l{y;f`KWM2{Cl&Ia^+w+3rau&QpG>Vy_$VO$pgpzzky__BCdvDoH6!pOkR`GyK58k*>)@ToG{duD1zb3=j;YT< z*`1AddqL4A(4^`7et#WBfZDz*h2R516Mj_~U9y&Qy9q?nqqvtry=PbCpqO5(^jsLz#@^O@GrhpNsRpLJjc2Ap z(~LVYPw7>VU0UeFc!-0Cf8^p3WN{mtgAqMC%+~)_C)tI2Ie;mxXDtD#qiDH+Be&iA zWxs&Pl5p~ErKT!=35tBJk7>o8SAS9a@``!`L&cojzfIqa8Y1p@`(*SGQ3jm~(xA)8 zz4bt#9{FjV+MmcG$oj(G_w871ObtBF1YdCrvOBZGW7lMWrzdUR?GJE9r>m3ZJY@oD zkq5|C|sd;x-ZLZjf#N|_5jr89aZN@33*tlqAq+Qq0M;g7n#%L zZFH~3)k&W~yFf1SczoC*S-#7&P=FWT`Td|9In2y7?Hw`?he{Oj@E#PC6&_YZuP^|a zLjlO{68>u)h;K($)NAts;C$Xp`yQw31D=pecq!AD_kPB8g6C(HeQ$DJaPaH#!{d7? z@P>re)yb`0WO^M*5S*oC0-#UPzNj?SQ`YPZCsqW|0wrb6LZ5MDm0SWR0EAYr{mO|( zcDtlz|EaV~V1weps>nh|vC2;2B{@67qsC{WcE5K$1ytqq7byA|IULA_c7HM&B->;> z?xdD(U58&KdfI>pg_sGy9hle7B_IF>w#$_B>AP_UXK4)9g7idmF{XQv_va>{Fu28m zv0AdbUq`O~l@EN}bra%r*mb)FDGEQ!i=~VqZ2Nw_C<0f2xrOr8jV)7cO6_wyT}ehYHC{qlA@d3K*d5F_^>m z22+XYi4U#gdld7sdv-keLi;90z3-~J6@@#hXx(%b4CDnNy}_H~^hPkB?0YzsV7EJk4vW)bM|I~A{dd!w_WO%{&6EJ*1yck_tBr2o)i}$+)W~a= zj%nT+K$@D8CSfIm(ni`j04Bu%I&a@2&=fK4eBe(7(!U#(!M81_+tuUjbyIanWnU;i z6u(pd+XV_Mg{Th^{ic6kS}*dEz8Ty$7!P;}f5sgBVHIeEBa)HH(;=zLF|hELN;6PB zsN!VmY>DsF_4L+PRfJFlnezkmwSOPgO-`mSU}4zuO{ZeQvi0&atj&96*kaI|zCU~# zIwe`?Ij!>2{V?T8$ljS1CVR4e3;{QTJ-0*NZoeWeUmwZ&UIld>^i~ldU%)8AArveS zH+EYCVa36_M>3};MndLLlq)3p0AqZ_uY8iJmVf}{wJ_f6`HQYFyx6pYS$+CazZQAt z{u-*4-pWjc_(-YzwTai~vSUDQ$d#DLiraUt9kh8b3sR^n@4{@sJ)SRpTtBe&5f!Ym zDqg2&`9nQ0j$@&Mf@8zzUu8&V&{-^a-R|tWRws9>VaWrc-D}+rhm|c^SE#(@r_wPM ziKkT{7k)k$-P3bB*k{1knXczI2S77if&E#3TLnO}UKxbg9yn=-Wx88FkH<-1F*`r2 z5p50TaM<0EzOYn*|BUbVYud1*=E(L1HvM8qNY|_2R&Qv;>8xM>n9SFN?PrjWpDHGI z{vGd95y&g2gMQ}p(pF)2dn%DqJvZ;tXomF{1;(&C)KvI_^xyj<350cRuOOXrRChy^4@MInZ2H`7^W7W5pbV}-X2~Mz=Lai?wt|0I~8G# ztii4GOe8X0P$l!*B#t!5yue(^kxmK?Ef56Xz*P#Z=(IQs93N4}!{>W?#_tpa1(28$ zeO#8~zCiZUJLNzkU*iE&I1gC(76M$_#E>?HM8j%i>49UnLRLM>{wX91tPnIM0*5MT2l^rby|27RM^XBuP3h}?Fo=R z5wDjWYBQG*G^Po!tAs0?ej>4k`oj`9pKtuAxTUd60Hc%R32y*pZ(xYs=d5Pf=Ll1 zkv0*zse+8YdbrEtw;y`7Oqu8V=_&Ep1ipNwzw^&%X|t9}ZnGBMTlAX4lt-(TO&kmG zn}KMT43QtB@e_Ckw@sy2^wj{%a`qR%WGBwMKE1>#@gWk{^W7X?_N4AT{~6B?)+Fa= z465>_0LF_J8@etJ(QEYTy9ijQLccVr*-ObD?gJsDhSb2K0hO};YmH=bU$zgTV7I!s zElMVQu)naHG6UIPokwrfFoB%D8%SDKX&HA^%!DIuC|xA=Ms9nP>E(@csL(KeC&qaGXw>Wz=C{9FREkc$&~_D*a_;h)1X9rE4R-AMzY|*;&KGI zfJvKu9jCCer&yGG{KVOLz6!wp0?mplY^fO!F-V_r) ze&E8<7J5pOJY+a9pVZt54jtX$dmyt-f+74AAKe;$7#hD7+#DepzD@f0^Z6;Ppx4D} z@kj8+f(2EFus!0W?24d3I%8F-<1L)cHJt?t5o0M|{PSZ8pH7M89k540ybWW$*7G}Jfb`M*FCu)SW#IpQr_(48bBDn1bZ*~;r>j^J&4SqzQAVq9fR58rsQ z2Qb{->_3&)(q!^z>;YoqtSgvlbmQiL`Btumbf>wQM%B1t_(Js%udkN>(8Korxvnzb z?Z7C3(`@lB-4U-~AREsjtY+_kd+j_tVMhRp7JO(o{7LHfzFa#N@KYjhle}gPUDS)79rb3atM3!rXVJDLxghvd{p97&;VZvzu({J?-S9CvDX&2 zRrnk@_n?)_IQb$P%|4kgulV9S`rbx5ypHv+xF=lx$BEFN{w&5H#(V~ci2#@?8LHvb zw|Tk{m=r;GN9)LE#q|1)ajyO8EAvM~3jaL7A8deDFLq;RV1N2P-<22%^d>e?v3Iq( z@&3}+B7HjABkS%Wg+2@iRWSlgqm#zS&-WIG*12k2*Zj=j+S2V|8I#q#j{$Get9RYJQmE=PhgfOoO;-}l;Hqu$ zN71JaPcc|<1M&c%o~E+YQ>bND<`{hAF2GZx7n~!~6l1M}U^lY@e~D0*)qe2~?<%^K z^U)cOBpKUoEaz~8rri{SKP@scbpbR~e>Dd8-f@q%?hbw$rK#<;g{F(_DY%FX82Zox z8B-JO%V>vT(}cQg(6p&^B|}PvCE#qI^au?LvOwzr@xg5OUI0uSMQ&_+oS|DXhY%f{ z2Lmr;{B@4S1kN#o7oee`XburLH2>AZfhq`v=>bbYpjTN>NF#0g-sms2mji*T$UDnt zd;%D_%l`IF>w_aK_smA{DQ9M0qmEp((&~0HI_|hUa}PhNf8Jq-z^1_+?!k2I>hu|#-7s3^;K z4OAuCs!sKGKs?7$h*+cx5dX&))z47Sx6~JT_FHwn#x;!JQoGUp2P)Lp-wa~$pWNpJ zqO~EO2p&=D;X_2#Ce`ban*LB#Tz#>^pswRs0*V3Q709$Z5{Yn{Ds0;AWjBgsp}ji6 zX#tMXN4vH1$1z4l@g@)4?fp`Bkn$3LPZH3Wms^@i%zpa%@CUvAxJNsC))zY-GRS9g z5^;*#fJb`=kQpkUAKOEi_V1u=^U4s!ks`aP+yp>h;a#g9`h`|?tb=_Adc~{7-$(56gHKUE_zKQvL@-d6MVxERs7dRepF=ymBzMY>g>QQM?+C6s*QIi4 z$CuL;mRLZgZShV4CxP%I7DAJ3p3u4|qCSA4>36pQF#2_gG+9gOo=GWN=#hwhfCX$7 z4|_v7Z8m72413d1I*Yx_7CO+>mMDGf@t&Y(J=H`PrQPML7};)fGP&h(zX;v@-D8Sa z(!(!OnwWL`(_*C@o+K>I`?!!<(zdy47P!v|OSDnFyQ?;?3&nh=(n z5qGa|v>jo^(uU16qYrSV%^Me)^LIDFF1*U~i)1JdE|hV^+uca^((1!AwVC1(Z?f@# zBs{|O{yuoxhO*K>mzBUxGL7n$TW1$6Zcff3~CRoJUEfA3HktRr>NCZt2b zEf&e(kltBfvXEvqr*rUgfi}h3h{7H25m}c=MO4{j8vzcoJBtZ3l zUVsuq3vzw%%+W>)6d1m468LrSBBI*H{<{t>jnMX-CctnkyttB(PTF9(iU3k zFjRxgR>-{ZeIxhn%Z2yehe!XzEH4ap4QdJh*|PrP@!mp681|vO zr@=+*)Ry=X07`+D7=t!HJe*NjHHJ*_=HsKTJ*Jqz7p;OK7cqtZi?E<6_a(W0Gua^0 zg=(k$Cp@`mlhJ#2jPIIQ*7l(@E)9+}CUY-8d&riMm+YG7?Jfk_Y4I>hZO=zaotc)OS_> z&R_r{T&`DR($njJk%49yw*`C2OwHNag(L$Ru=|dxm)uhoJE%|B&!ruY)}cldFZ`s+ zWifu|BAyf+Yh0RXI^E-)`d-$mvZG^dZ;n>*&;m=lNY~p3&D}V`4G~$3H2AJn?*h5a z6n+^U)V%I%PmK>N^h_g6-DgT>iMmp@zR zy;XmVHRDZq|Foc2ASW;EGx-s2(kR-S)Yr3ZzK@JHD>Lk7UD9IciXLACZ5HGi^dl9( zn|iG=?Jg+L&S)s0)~C$E3YW#1of<0+l^Z{^uSv(kJx=>3etww#!TC%nFgu8chX8XY#R)Hz&t#;M@ywsS%v?Xht7S8te7xG8-o{>6tl&hy$#GJz1I` zE}t2ig=0xjwx@bTP#qfMRTHDC&Rt}u)PpdK<47!&a@2=UqVoQM%lM7anywcqIiw*d zw^VOOo`Fl?wzax_IM$9@wZ+B3NQpyxW)9v=Zx*D6=8$-G@R+V3^x+s z;Py4mC2>-S`xHVv$kTg4%bk0}wTULbo@9HW;g8lH2tNB>YJNnJY}jYRz8;?mGy&X3 z=bcd#a8DoEEZ-=^LXYP`BelJ6l#l=j6-Dt4cFIeCk}!rQCq)Z?>jpS&HCGFo*`51Q ztoT0v(!dw1r+;NXml$)k^7KppMBnvc$>5f6AsOLUKMBYerga1vk8G#+AtJ1?>$Ax- zF5V6F(b7-B1KInif3wN3X&|nJ)w1;oUBAghUeO3TALy1}zUuPh!a$N1`0WN6Q9j15gB zvExt*%Vg-=j)qAPM{Qz`dq?hHPuXITX=I0{M~rF4@%YaL>NAK6P&hx{O~kG@^j%TG zX>gdh&bl+nT<_4{Yi0G{$4b;M7)$oMy7_9A0YcOIzlFc9RNXYr(UvM47p~?D!;fol=eC{4 z?>}V4U$wXdG0Pc`cma!c3KFIetVGOnDNI;uZ8ZW#U|pd#GNlu~ePN3N*yeVsZ01|5 zlMK&iS|3wrUvQ8~Eh+#hNMmtGG+-5xgE>`IQG|cblTvB1CdUaQRmT9&oA>SnynVF~ zcjnNHU)BV3fpH4+K}@I&KAF*Itg-b9IaoxyJiLP#yt{-1#llr2>#PH34j z*V(~A*+$_R@VEl$^?tcHJs1pQD7%eu@B&z9MO@DfcBd&J@2+?8lik|*LzKx%JGm8_ zPSXMkFaSZ}}0#-+o|Gf07R`28Xtnr%{Iw+Mmn$DWz5xUJGq|Cr#RX1sCbMOo7Oq zJY1l#4&Z%O(r@uJt>wrW29+JN<^{`b!Jt>5FyWxviY0~Zy6hZ(!p%Vyv|G|#_s z|3aKzr`wU~Nbjt;)FJRM{H?$(rAYi1VjmzL|Ujuv^3pZ)4wyz50`~W>j)Kwz7u1ZD8X}I1lISuLWw=W#->kGAmdKNkwQVL} zI^jXZ?t6@g**7|GDr_GxiyFI?GrnC(I_*YZQ{!>{9xBPNLkVjvWc){ERF3%B+-qMd zxx)kj8=DA?YAw@{H5dm5G{vtAPOpp9KSz-l4*-~8{u0euehn_^AgKh?PxHmh(e(v~ zrsUh8LY#GB8^%Sy$WEK?8Inq7Rndikh!v=p8&a4`0u|KkWHZ@+W58@eTU59Mf9_7_ z6JVq<-9d+(<`O1oa`z}2T)s#{TZa%{87(z26!1=Q1uYs7d$+CLT#U&nDLQsegwB@u zwpvhm&DuaHUJs37cb$JP-qe7rp2AJb3Ihda;m00ldp59VMH97}ulYW6G!X>%+9W~K zLnJ4vlnzx18m{%U;J51^fPY$Vml`|g{xkW(pOeJqE+1uGL$ zO#>duMcCfwHgssceBDpk{agbb^Aji#U(!K-6a%_$jS-VF$%x_sy*btk!Wg`)x6^f= z=mI>jS#0RssAqxBuqC>AyC!!JkO|OVIat8~u6wSv#yQKL+3eftlo&=6&(FhKM^^B} z*KNSG%3BcMD>U3cMmjOf-~G31KBy(-#G42%1TvlroP(Yad_O%eNhW5P>KB*p>HIZ) zN&!R3TbN+m{`cY7bczV4-E$_Q1G7LU=v7d1C8W0CQX=MVA(V-a`pFCTd8@%7z z%ap(DX}5gswW^ZS_wh(xIs$*x8%&~bsi76n6ojhx_$L=HX+m+3{j5y~T^dqt3~T(* z{rifr>VU6p6;dFuRsf4ew}+ADg&&!i!OU17RG(6I-oqKON90#Jmf|KBV?F_mfa7^i z-0NS#m~KLAuMT^s!j+SSBX=S^v~mwP@F?2Lt|G_kh|5MLpw7#88^)#2cd5&{O_qQmy54O2IheP2p18lDoLF=DrxD3@w+?XgW`K2@zLms#+jc)Vc7GXbu=sQ}pU7K4!+pG%doYhk z`?{SOI{zT88z@o_c#N5^6yRhjR9y3|z9!#A1}-?w(GEZ6ASW^ko>)?z$SW>pfD!bF zck{%rJ7n0$d#5s|2l_^4Iv<=G*UBBzrKv(kwczJOEPllPSnT`4#d7TB^q+-q5M+{Y zhcqsDu=Qh*8Y7|`wS8t0R@6JtHo>)!hU0PY=^glL;wqpV9403$1Cy!Tw)_(Hvk_HkoL;~XKNnR=Z&=~ z1V()0k$uRV<~a|&95fmEQ+AsHKb(lAU5Y;0Duo(gnzzOC3CH`7B^kJfY)53;CFsno z##nxr21D`617A~{Kz`(J6N^de(_5-J&V%bSA&@%}|Mn_-bv06e>%N1&Op$F|tL?Zx zrE>D;`C1S zUz*`eN=)BISA4C7GNPEx981cE2P~gF_UR~sSR+-qBvF4t?B;9UvUwdo=ofyj!%YxeOvO3Bnv2(Bp0&>(Q5gZMuZ}FaKSd1TVJ^q9wrku<44wSz zg6ZlyXbACXoF#XBc*LOy9q-p!^>mbk%NZ{Co(N}4pY}}$R~q??82@)+@X~-qIDy;6 zYO#?q3z&V6SxJ{Go@#Lg%e?Xw#FPB}N7A`0Ez6!+IFmk*9$OXJh+xkIWWPs1m;oX? zMG#QnY;z1f@9y<>QmNEmmE`;0jpFm%_gdG5OKb9FKM!IUn%!FKPIT3k#pUwfQHiZ& z5TS79x$1hNori|xND3Z<4We{=S^PBoF(5xx|Ak{?2-4h4&D z9V_dNVJKctpoY`;A554lUhs!=ws$P4>m~AIy%OU&@<8qjCXf5*6k;#yrCGKIWRrzw z?)$v2;AWin{?zOiKK^|a3D!163ljYiz0$`4X!IJ(gc;fr6^<$zpe;ORnYWCmRGQkJ zby$7&am1%RC23#-37_qXo^pW{ZCtt7H;esVAL-!vyZKi=^naG&FZ zSL1V1q*mQS(Tfdvy{7d3ejBVb_R6sI=STT{4>(Xm@zkQRA{IW z+1O5AYkodv;!}7XUzeQ~%J|C1jbW}ioHV@&E9SIzEHm4cXM%Ps-cR@MiC71A)7oBi; zkj1-xFfJCfYcjMSYx}cN%(RcXL)U*D9rb)LrMRf=&{QG_m>>uk^&O<70!G z!Kwbnr}Iv}RSJ-F(v$Y^ZkaVg*-R*KUg_3_ObD;yQc|bu>+|`6P{f@vaNj4V&P0gv zar9&nk9{mwfv(%vSL|hk2>k@Ug5ShMk<(2-hs6e7dgL_ppK8;jZy+n+qS@Z~gb2Kn z+aVj@9Od!df8i3$flw?Q5lbi0~!Oe zPGiUuMMqy%5Y#vTh(irNKEQ4hk+~+T&n6qJf^$3!bfRt{`@(ic7Dse95^hgu zRma-msPF(hxA4yY_PW+;Hb451`agnvTzH5!jR%g!u~EE#4+1+%nqBP8U(24pWovc9 zGI;^MSelYPTkw2zuK*Pd%+HC#jeF8h`5E2iRGSDYTtHCIlt;&<&zZG?wi@wZY`5il zb6xXyDeUj39(Pd|WPP7SQUFd>4MGt>gFiluzzWR*Eeg&amffyslW59(!<8B_npw^^n4g;~x}P}z~m+Ty2XVy*HJKfhmB z8^Phjve-MI>yf--@p+{VpZ=j-4D1NS!5@G^g*+%aYama_YaW@J!Bb_tI^^xv;{K`sg`H zX?^S{*WmF1T%W!!DZRULfBo2U!I1c*B?z6>nAiSZ7B3)w9Y=n4fA5nW9Ij8UWgUTM z@|)MtILSH(dRDiCq&!WJ>PxQkjS7WDYaiR%Eg$ZBlKVQ2LXJ9fZ z`oerZ>w-qttB}`Ce{?AKah~T5ZG^iDB?qhjzG|(bUDrL>ev|b>e`t90q`LYbqaWY3lgQ(vlk?e*?unlF97OyAN`~& z`V&6@-K85k7cYvDvn1ufQJ4~+@VC*eS3vX#W;jWQwrg;pM4}{uQgqoJe^{Rvv68 z^&6aH2Du7|9e}p}S#G*KxhW9d!zdEKt3R!;fx(xL(>)1Z(_P%uw49k&yAHo@<&q@8 zq>dTL*#}nm3?A`o%+s|LZu#3l6xAul*S_goO_s$;?xBuqw5TPrnFAU=g-`=SWd^Y| z7P;fDpi)%iNAIcY`FX;?lil?L34!;V16duC*`=2(`Fz-gW&&Zt``y1Y`l{4(@)BmW zKNMSJLqauOc7?h_QijqWo0FPTCxfy2$IE5p`MmR8?EQ5LY;4C%;lqP1`>AU!0gMmX^I+Xls(4g>m4Nt@VO zyJUU4Nu~Voucg6DUDGs* z&QyyH10kn{NN0$qa;2`@1#ZkTA9kif?w*iBZarMFzl-&wk)|(Fs~*mK`g%NpkPzK7 zZ@sWr+3bJj;X9quKNwA-FUe#i9uqXKU!gm;{w@51ka|=v{Rn_l)wnMcXB(Fbx3G(^h9WTy z|GI;W&gIDwGE!(Hz@TFw1)XNS1ARz%_1Rpv4WazPj24Dz-d0p5c0((N5YXU0{pFvf zG0QShWq0jM#X&4T0t7NJMY*@w#KJ+iWnjcV{oecvdwfDu^lwXL=lb@W57Rv#wnt-b z1G5ztPsY85=xO_Yg|M;|ymBq6d_U;&4-J15-xl)8%4A|f^-vvf)2lDfeIP1f1T>fP zHU}}_{iu*bY*Cl}jef<`)6aR}M6yltwbqf&qh9S(6%nmy485q38eS>Gy$ZMV<=hl^ z_XZ3BwFk|Dac>4L>~=q__>p0mSmgJdlp4@tUr(2z{mc0R(HyW-G2tIzX$v1rF4{N# zh_O9F$$5Qa1VO-ZCfYDZ-cg0*ovZcn<-g>H$Gklfatbbhsg};`@F1kSl9-2Gpx(eR zgJtRvhL0}@Ho%n-i?w71}}Q23Mb=+cT+O$pK=Q(%!m$+;0Ny9I;Wdd@olEdqMsm9=y5 z817s0Gv5jc^w9LJsmc4W#JZ>h_|OozG3Hr%l%Bm)gSxmniXfY$KMe8v_=J^if- zU5iW5w#uQf;4X64jWS>^IeOU#9d7a&MD3Lr0ml_p7C*Q4X#4j8#s9^zTyN1qeQUwp z=v`3f_6A36w&cZjB9?<);(dVR-Xoh5Fpl=gGzMd(AzG2rJsXUyiz-wb1wZ{AkF)~K z_5GN3Ct&z(KKnS?ssge!n2L66@dk9>lz+XNM<0?a4Z+^Z<9^JM83cMquqel3bP668 zU~-fdy<6*$+kn%k`(hl*i$VSH@u9LQQZoKu5LT80?~8mP%KfKfI`WPrNk%UFY88d9 zFFX2*$i852@FAL77vna#)>`$Av#|pUGzA!V zLlh!l#}6lm1+Hl$#z0f-yOP>PA!2?dbD*0ElWkw)1p5v?2>hpNCxANEUrha7qp7~k zl+IeD6U!a%81l}($wJr$o!-VrOtC(}u~8W&j^AzfY()=^PmoA8w7z21ND;oY$h?St z4V@Sl-owcfFU2&xHTvk5G70FXLZt$kFHjx*#NxPG?JPpC@q0s+#Yx1jvxew*iS-)y zJ4SJXs?|L(hP`gH!_<*4yn5VGDaPW7itGacm=rE{1~+tj%-HiAuFpuA!e7g{hdplE zDztU2+Z1{@T511c>ZPjtV~n>~{qzJ4j=|*p10ucPsK929vzb888V| zU6zHV5>b-KnoWf}`SdG(l6{y~cMlqKYWeI3J(t~xP}P0Q*qDRU$Nw5 zA+}lpp#5g3lA06bFdrp$me7;FhK(5S9>n$54+~Y01Jzo8sbq+4KuNOQLF7~#xMBXj zQU3EhQ#3a?xqPE>_jk_w^0kyDH~Z!nZfZ$4S`+Eo`S!y%akJ2B>F@p+Qe8ZVn4j4s zo*`@jHP|isc>O>JN9O>KjiiW7ekzHq@}5kC0HN@OTLp|oH^I_tuDt(GVu?TXwH)hm!0lQ4*fg>hJ5fYWjT*+~`$C70Kl9F_W4G zf0^`7F18J#kpH%Z%QQb#1T@_gV*nP{*XLhkMqnh%d{*kYSDs}%Kagg8!><}#P)|!} z2>3_?&#^6UKKRJJU@-v$Qxcd*&`kLN(uDo_^3HhJ05-vk3k#6U21kcSD>bn5niE z{n13bUcq%)^j}4mTv%gLP4tgX=?8R&M7+$QjW#H$3SWR#*faXuXAsh%4Gt04zE_Zf zDWBl#*JfKS&k9n<`mHg`<$P3ZEWqctLcn>R^W;jHn`t#?7N?Q3p5h#gw_ACTAMX?p zwkP9DnW$RZ`6M`g=WxHv=;p3Ule>`qx6wA6lG^)J9h?2v1gKu~!ITYvvS;HZ7 z#blonP3MKEOh*m?RDzkf($t)D6EU>f3)jXUEMzvVJ!ICf7L@(cB%z3RakxGMXM13N zGAUDK*~1Ok@vkrxS4`AiPro{Gz!Eg+;^1UY_$K3%mf?Nwce?YMJNVoD>H(asR1Yr{ zcBzzY5h`*+g%X3{J=Gj@+I@`}WOh_~%;Ml7G@s3SrBPwKhqdv|p^xh?I@?B<#GyC9 zR#BpQ6OSupe3u0$grsANP z`NwN^9B^p2ucXwNlN|i1$ zJAhA(;|_T4!8$-CVN6pFkdh0&^NmIF0oeTg+|(@7L}Z93p_RU;+e?!&z<<0z`$VY1AqC|UG?FL4c^}R9v=vyh1oF`n=EDWeSxq( zEDQrKp_|ZRn%fsjD*ixF!RsB+&W}-h;#Yj!;g@3Wj^fzkRlmO=EJWqFOj-_#kb`)M z!&=AswDpz=-yuD}G2#3GcGK+gH;E|ldP6cCqlHU$*%r2(r5yPdAabwNxi0zTeyIfC zG5_X7=4rdS(t5#m3uk`eyM3E4P)x(dUzXtV_PV!7O5Wm5T%+d9>f&(~=GDYyaEp!0 zkvT|GyNGdo`>pEr86t*iOFa$@-W-TL-sWgJ)K)D>Pk6MI^YL?~o7ym?CoeQO9gw)M zNilBOGkE+;+9K1Sg^XZ*lVO~)3i1FC+{`@6>Mp3zm39o*G2*}NARM^izmTi-KMPSf?=v}FR#J$Eofk&z-(6W)J+$>^opkZ8P}94BBmCadci~n@qekpuGUMtv4@?GKI-E4{3I6_+iuhC~ zu!Eyh`R>krB6 zy#r?|;TzD8Mtw;RPQOKOs`^DAc1yiodVajJ_AnITXSk=``(Z>dwV_aBd$1LJbtI|t zXPtxINAhT>zayLgPoJh;eOcvy=4sfyjOLK14hCD-9pptBD&8dA*r?Or_M)D7AM6jJ z%-;pp;l8W`C{rh!jT-$rZ#6S{q@CjP>2(i$_-(O!vZ5Hy=>e@pEEYuwHZRw5LWLZT zGPGOMLE2At0&~G=ee#X~oDWJ2T=FCexM%;7W15~uYx^MI1y%X;-5YL=y^|Cq81@SB6k{oS?tjP>=RC@cN@&ZaK0NU#nNSL2v`kVsx##* z%XR)kOW)BsyahL^79!Uq3Vd2i&_+f&ed^O};Qb_w-)5;6-!J-u!(1NkJ>nK)jZxNn z&PM^$$-^Gu0QspE*xH1p=D-t=$)Fns@{5&ofs3H*Z)nfhzZt?_h8VMVT>En}4nkrhaW3o$bG!A+4aj!d#re>SfL;6O!@O-Oipf zD>RyBjb%b?7fsYnrBILY?eN5r_S8Mn%8nC%3|1W~8Qc1P(bJb-$41kKhyxRrZTj#A zV%O^xlk^?0?{4{8_P6!;(NgXE2DFC%Yv!9a*TT2$;_%k{I(&V z<|H#$htV|n9jfrQPd`e-MJYf~QAEr?Exsa8n8!fD4PUWaP+wvRKoFUUH@06SpO1fA z{5+sumTeHW0*`cm8co_7n3Xh#S5&b@2BS zY?fBcWpQwm9dr~(5>dq8lt%fD;(R<12&40cJM=uk*wXPXD7k3Nl-H zqNv_oKU%Ct)1e~Sc29grHgGB$3fw-Y4R7&qvtvL8#{3REjClU?ukjXK?rjM=4n&rP8!;h}5VM4a_=hefD(({F*8ijOq{ zfd99YaSBtCvI9D=Le5ovj|s{1H^wS|IRcAT*3|6LJWx<^Z7!Cy&#sQ&92%CUt?sWl zQBlAtMgxD)&a?TP%7e!4{h8zv3a_Mnzo&}bHB*WB+?-`-kQRv34%d{J+N$tgI`UoT z+;XuK2a%QEX;PJg;+ak{8;3mYe0Ml^3RAQLE9;bv(wwDSZLAGsKiK($f_JEizxya& zlO1kq=Eqr>?^$C33@M3bxjOOjd%>oYc;_EO(mEbzB0kI~@||$3Hx%YxFph>m?)eK7 z;zD(SCwRR=6*whF7LGRX)2SotcQ14xNT_rW5IGH;)uU64hmk?npb+_%$2e~hzx7Xe zTRun@UIRz8SV+kXVM!i3!?3zpe0z6zc5zk$V#s}uo77X|%%8xfTJbwZ=>teTT1sS` zcB%|)F{K|nBolx(i|>L?eJ{6a-E#&O++#MCYstQTI4)pDFr>d!43vBfP6w3eRy%??J#0R@$F#X?Q&NG_?x}H4=Gxf$QCNr}yFM<>El+p>H#fU- zi2n6W%_kYJbSuq#uG`G-Y%@q!tw$NOoa3@bVqYb<0)&1!>_y>n#`?r$HhMQb+vZrzO8uYitZB<9ou+T zVGVWr@NPf6)|}~dtG$GON!80w9*6Kl>=@u9ch!O)%q{lbZXf3+j}J-AEIO!6^t3zZ z71x)V7M{IO7FMiVdt8=q^qm9=Nx0=~>Jq}pCt$f~^L|%CrA8Ly*hq(C2dD}%=x2Dt zXN%cE_)N&7m9Ht30hNeXEckS%d$r#XK-j5?@uz~k1rAnxv&qQe&;Rz(2PCJoco{wW zzH)Q$aQt@*-u>jC&^8`f_TFFoA_1K^Dz4Ll6>8enKXlLT>T-Zv&)1xUC zg1(-3-;<$l{B|;J#7A;C-rv)wxaGjGneBCH6COIw4MCowKaNyaBnON$`pq=Y=+ZpcCHp4Uz+vBG5eFR-xY1 zkk1GJ4;}%I2e9s8gk@pT^m@)JdgCrjMrIs}e}?&$lKP9#)6TkaIRhje;&{m0Wb!Xa z)a)&G$X9N3q^U-9a!b(Qk3$z+kcH?c4kxsJOt5KM(r<30?oYOnsD~5NIbhbZROR>Z zYP>F6mH1Uyvqjk@q9jn~`BwFDs4Aq2h~B!Afjwi2on@X+7Ws~b2<~%qR8fNmPjR|= zQdIP?@-+xW%yAczCaArKMn*swEES|t`{`~!=W)QV!yiR1QE{tdA2`uWqePz-eLOOh z1-{s4p7?{W+)M<7@CT#m4ii$IdF73otUUV+Oa)kD-s*TA6G|U+m8IPy&b87X#kAaX zKA-~K_0bj3)a0}JBtX)m8?Pl+jaSkt%0Iyvl0C4l;VBn3I}b0(qu)5^q4xt7AhhC6 zd1!%0jev3Ol%=?fH_B_kcH(qAnVgUU-h*#u&a&DAnD{Ab*JDSr1h-QTmNhy^`TAaw z@{m9v-?QrYWd*wnJF|cFjn@+)jSQI7ja$$k9Jr<5V14anz5XBv6L#9$0@E11jW~`i z)Xlz<`M0^k+0v1&QRd()dcCR_>f(lWX-?9Ix*onMgNb4V2pVqL*S{7}?cg3hct~F` zGt|M;XE?s(*Q{B+!Dw6AVn$&9tfOSOEKkmT_S(sppZm)&8Yb`38xk6x&s|Np@mI4b zq!=t|>B&r_i~{d+afXb#g8UbI19%&I+{zS{Euv68Y!RV=)#>}Bek)U~PqI_; zn#5PLWl>)Ve> zjVwa#QlFXn+6f1sC2vdh+)MrQ&h}}1$xd@?7q|K%8CE&p%%cb%1X+A8ue5)>$ z$R^mb?TxUO3Vht-Cfy|3Gw6h{P5?>y z(gOq~s~`}mb>ccrKP-4aglqDasVdk1ekS_&I`Ga@;Cwn$%O77p9(Xb z_|bGXz#u=y9fKn5vzO61x6TKDmURp27D;3pukquTnNFq%tlCNX*^~3!hHqWEmKxB0 zoCZom;XW@owJoDs4QM15qrn?2xgIaa^mgcCbG`z;{g$w*yw3Pbnb^3qgU!(D>rg&z z+{%y4&6R8Cb;GNd-vv`==Xd>x&kFUq@Pn#7n;T;N&NdX$e)+VM@cUQU@_GoE%wkLTFo zj}5!QNl;}G^_-uxHw6iBYy2@N%2$^kn!^_XN$1e`2W$JD!P=|~5x}so$*#dILQmvs zQ>-JiJ)T?z*)95RKGHdkFsf-2JHN(JxFbXzmB%z5oi#=mLi&&yYNr)-=eD3~0- z?$P-@dVLrlEJFDYrhlXOq%?aQ0?09Auh>%dhse-o7xZt!xO2PmQ-7=dTRFYy&qqox z*pDC&vS5`P;9lhIG^9Sk8F-&$V0SOn=I(t(mk+y%PxDY69(~z zPuJJiI|;RL+Lvy`5fXhxQ#jNwRFL4}FB<^>U}bcxNAOA!C0LPs5_9xTptVM;4`fV@5-e z*AeJeic56fTOgV}q`S+y>lSx73SL~2%ikdO^U)r{$Blr5fxAxifb32&Z3Cs~ezOxU zDs)YScYYqOm5B+6LF4Bojh_^)Y-Y^li>EUNw%$aqg&LI{vp#%+yvu3(q>uPkj?61K!wV@D zcKZ1M2|WaBMC>?x!bVR}IM)6zjY;A6l`rbod2m;se&KY$5~w_F`^sgfGYr`e1YnKeAuBaL$>WR?c#KeFx);Nu}|5#hk|{^}niB^imkNuo7wftCLnG0>3WmjVbqci*RT zL3D@sT3C*PIoF-hF*(wO0l!ZHkGGQqj+k?~aCfFyknWXQw|>Tl;JQMbm66_QaJ<y*oYC}Qcj*1)H zrn24nV|kmO1>%*1{f=rsUO`Tm5Kq{5f&AWK!}9axxm1C{pUscR>kwc72v8jXqI&$0 z_wC3i*y(#|!UMtv7J_0ld=$LTIzvi(Nj=i2P`VU~&I*1I;9k%?{kWGxY{n>TtjEl{ zd$pMuB4UN_l#Ee;J*om{t>rBAN8=~4=V0YH_#(?_`#V(v{|Ta~vxli=hS2nuVbK(^ z_3Vhu`B?$Je5RIReyk98(^(p(#t;o)trhpt#ijahhSo&huy1&zT*>dv2X0YaiBuXB zY;z%A#lj7HGtNDh9+K$5w)VVeEh?Rq4k+ruO?w5$8tfRL)XWH$)NV>(FpF>AdUJJm z15*pIc}EISnWWU1x!A0Zmz=N~JHxr)LB6`anTvLBuy2}9N@UIxUBN-&-+FeIXWIcBk%+uo) z;I;k)BwJ8Q>R<~!b~Qc67^~o0{w(4wF_@ao=!SA)yY>NTjv0NVgrrBr^L5?hN<}yz zkB(cRrO)(En7i4cQ|2$gX?Qyp}P4=drsb9;{ zg8|Gp71i}v*XBzchnD^l2S_&|_JnehnR}J<0zdbE|MfpiHBJ40?f2dI&-DJziht(s z*M52R`(l}jZmi$k{vRO2a{_XuEXT9BPOzjzae_o2B^sccgK+uBe=6U9{KtR)<?xwe5whOn~a@K+hr^> z89qA})FC(QL*sJbcSn8Pu0zNN3{Ki|)i>bpa>r72g60z*330&Cg_lih*}x2oI}p5H zKdWQkXKasbc-z^?=H^k|(PfsS*T0X@I`pva?7b9AisSD72d-^&{_EGrFG|_ZD$io_ z;I&6+YOXiv&N27B@)_>B+#jy9in7P1eXnYpc&l42(|#GkVe@d0JjuUs z7KOq)3)n~_=M0pf#OUuEn$XYC*^HY_KiPcUeA;LLD-D6^bH4s@Kd{#obExKN?F7x+ z%HkRDnu$`1WBWV7MBiFBZ*xS0rJdsMcVE7hNU$ufJs2%0>8?AOY8wxZ4CA=R90!3W zA57O1+WDu`sV24L9G+DLHaL@{BD^sjl!PoiW})ne8-Trp>3G4+p|xHWcil_Y1`)9Y zy*%6M$^9*E?Vay%%GYIi-`XR-dQ&L-3&L>D8%FfwFG~ZO_;uxz?j@6Ge}F60`3Z== zv_vejpr^N-wZ1Xi@rB0dw}`31bwzKMo?}>NaGyIG@#T zVmkLrUP}nVF^4aCl-KEU$)lgz^XnUp{10jWh+^erT<4zEv%U~HY|Er9Wl9{d5IIiO z;ad8-f3fbHG1H(^0C!JK%XT|D86smM(($D70e#_`&@NWTPN9G5f}JLET!Ims%bmcp zs9;z4_?B-SVi_-7S|W=&y+`T*azNR9+P?v#o5J|s^ABjhOeg!2e-M*^Mg(6J2ISum{D+o+vs4WRectICvV<=A5kp? z{Vfh}>u+qHS$tV-V##GSQIw4MydV5Hy&>qHYOuBE>;LOAY&-@|W;p@r1`PJY`2iaL zz^5XrD(I?3-1iMmAIu#Oz75S7BKWC!`r}I4Mi*u~-vYcI>nulUO8rs5c@}Yn90^p} zc)eIIj~{+`C;jm$7|XwTcWp+>YCHG2bwUXm3_C4O`Nyr^$3$1xNg^zn?5XB~#vk?s zGIOez_a(5vP_!06Q7!cFujjopgR&OJxKep%3L9$;eG^z12Cy^w_H@=qj8PvRYvRP1 zW(;6?`0p+cGp(@CxgJ1~v#I142{@nPfc29Sj-*0lP_et7j#GauT$I*Uw@tg9q4d<} z3WSNAEf@xq=l2JtFJ1UvlH*^=dvo{VeM8aeYNU&*=wGHhJDznXcQUBm!C z@0+}k&A~*oHA3G0U5E0nU!y*)RG6%1uo6lT9_UYJ`A>KVJ-czSPJq{J_o>4;C@!N2BK^FQA6^cs(d>(SUeQrHCq=dU1I{S|*7s~- zzdQstQLQBht|7jD96iB|s}VCndO1C&2hQ44k!m?sTRjWo#GSooV(%Umm4L@UVlMAtR6ZxxPcLDRiBE&?Sud12$Lc#>*4S-X*wT@P`uxEEt_P`Tom zq9OLu!XKKRszXog4;UAIS)MbgHoIxeSCj4N^5VCq$5`}(;N~KMKp;j62eg^?N;ZbO zWSozo>9F*lLUUvZz^6ko5;JozjcHV&7Hgc{>TI8Rf4;G%Q{$NZ$?!~mc{czXW;yS6 zs<@Lp7Cf4_j?_@uNBGy@c0A{~F5f^k**G z$nhjReau*Q)qbRR>OGCb9T8a1<^+r`0s-O#uhR}fniJ>TwP;W3hpF$WOk5V@v?*8a z2p-*q#$&iyDz1OIzI;1Du|DTBy9L&E=*Q0NWbFiz3|g&-Yb?`=bPVx~na2h%89W7>5O zvabTWK`SI|;H__@EHEV`>AfP>gty51FDMvR2rSZT`dF5CQbC##9}dh?!AF1Ur1GoGH3O5&y=dfjZ(82!)$)#8z>T7wp#%e;#l@%adSC+%+F zGVLpgzqI?^YZZlc%n!CRm#3zlRq{xDPvKLd(`!ZCuiv@_3J^GV0VYV+Zocqq^RVZ!0pPPBCa0N#-%{~EloGoZ{zxnYJ+i1u8 zgWs;s-6Poa-}xO<0Je2Ry#Y`S?NAdt8d7v40`8)0#g0R7*ZG2SklpXQYkf=Ko|#`x zBlIgH;w*Ld`ntVWRRSXS5K`i z&rtOxy|nkdnDN=Y(=5Ag3IJ3kh=M( z)1S^7>2)}|QMZ9V#^9l7?0jhNb?oS7eGuc{9l)bth&%Hroo-VP{u=WQZtD&Hw8!TB zMJxR^L>I(Ho!-!ccyEdzBpIe?9tUis+$+{7%n;o|W4UbU?xt{W>Q8k$KRy75!4XcN zEU1%=a&FU?H9ncvG2^A{knAJc?sfC~j5Ku1D3^;)5mJQDBjhl!!T>IJpka*#f*^aC zJBxE|VStnixMS6iQYC~n99~0I&Z0|C}3~ zO4#|gC$5|Dv8DX|!#d-NM^S`^#oW!t=n4F?e;-==p*xNhBwJ>JdCzDFRRo3gTIb@$ zJs?IU-=3zuw1V1Xvw?UJ?B}1}Z=Ua7iz}i9Kfx6{Ddjkm%T|vT(D**<7$SqSYtHeT zM7P>$t2|j~Y-GT}au8lc>;UeTn{KQ%<7h1T-6`zKOmN|T23};i*pnPiV2*nnu6PQ9 z2CzU+5Ww6fyA^o%2(jb?Ex%*nhrfFJFmZnm>iyI%i1;=a&))O0;}-oOA5&yjDB`u& zVfKJxoKg23K6WqNRHH1XrDc)a=PNUyEg{BKvsdWP`y;HA)aVug@WjW*`5oO({{0HNWX@oiM*q0Q$|3i#CXKZ-kyn6>(JDeS5R8t;R}vqddMvQc z;~T2l#Q^g6zEu=Fc?^mI#Z$uFtt*f+JAf4;GR<_uB`BS~US@9%u>w6^nCQz7u{+$Zkds`q|LzrhWyRB?@eC2%ehh0Lfd`ogjP|(}6ARWBY7im87 zXU7sBrudq=D~qs9qm%D-G%pA|1E%?hp|K=TL*?hlr0RiVD20B(Y9PaO;^)b7hZJxo5P=?fLRr4lRBFPdI}(S*hlCue931=UXghM#2Ik( z4=TY1MzW%&lxx_aE_=RdBtU&^OPF}k7@oMQUY5ZD0$vocls{<%(7L}Kp~fIobojyK z+3x||U3bJ35VZP~G|I+G2a{}MlweR#XdORQjQ=-c3!oY<7Zq9Ivwk?)JE&~EPWs+K z2Dxg$7VS<)Tt(S17YNvM&WRn90kW1YNdN-!0gB_zewIrWEV0mTa6XwbgyR+<)Mu%W_iVpX@^qf4*pd|ezA6lrS*c$rWHA!cRZxU;HHtveYea)FcXjmjFppWyp;i;r3%j*r(LQs6+cnj>_J_tn<#WZdDbr{yj}P?lWe~Ws(eLm2ZqvcuS4X8miRY z7qX;2{Xn*;!7UID390Ft%!DTMPb^d6rFz=@>C(fMfmh?B4WUiVNundlEG%4I3tcwX zWo%uyz?$|cvLyznBn5Ipcsb#Bb781JhQ1}$+lg#Y>g~Id&%(UHP0Jsc7N?m&~y*sJO&m~3J zYd0->Pz8r-2e#Xo(UW^cGOcs$&xj1g*<8g&!?Qv!Y<6V=79z|yiZe<)x30nK?fDcJ z2(o2%x+(4U>K_z|^sZ=R=Vtg;#7m<$^6$QNbD{IMv(2>+{I<@Gigzc(7AmVuEYmCT z%!9`^9;m~4L9WJu-t})OVqKQPjgHRqg>IPb#H zK(wD#gU?KTVd!7UWP={aB~fFlO%XHOjAsrnm32dqN?e&_Z|bV)SNAsrk8onq&g&92xrumS*XA@;+XKq&USv%?oPb@}&<(x2_3 zk*1Edl>Dx%jSdU?!PgwHS9d+HUM2m`XZi!;>&X(b(P`bQ=ST>=T;X8D!_<$YuYwm) z|93%ILcxXi3QHYL5jbuP5r;%#qEZ>qpdYWfi3XK#V-(j=Tw2GdjXk3M`!5 zA5_ka^kW6%dSOSqZLeRh&Et3p*@QE`Ko)0!{~vz?@IcMdBEal$;DXN)&UNDZDfG`16AdATJ1F}L~cwgYQob!)7+uaT4n1;R5L6Ow@T5khr&gB}$arx2YH}Xiz z^LhlG>Y#AoayCKxKB%!NeV%&+2BJw+lv6#Oez}x5CVLS(^+OrI>-)Khcl^giro7xY z%@S&!Kjv}|=-(&Q>^t1IV$|Jm!3eZaltjQ;aD9L%EcK#~jss$n1_|V5J9wona}1J) z+G;}eczOkhEXFS~tH?)@6z0?cpVHSm6=7omo!nD|dIKaj0#aLhcTL^Ux=((22+810(d4z`uYv_YU#<9;aa|UK!N16qy87kpE4J%L*tQnP+i`D4mCegZ z1plZUT&@$1rI~!Z9e+8ha4S9=yw#6Iy`=L!BjE{xEEld1&RGTfH%zEIRG94dbE5q9>&q^i(CJ?|o{g0;`C82$OQ@V_}&hF&ig5LA6Jwny1gTts)CN;o&X3Q_s zXbWjq-+T4xPL;_-hO(Xa5yS-oU<2ys`CLtWRtNQJ2SzsSgR&}|-sLS(f~(2MogYeB zJ$=811FcJ^cEqV+l^t$C2dKXCcWM37nD1c@-UI6Wk;)k6WFsei>O#kz)3NU0>t5GS z_(k1tBNUP!%SUl8NwSGUe@x-=Tk*HtZ^U}CDUm{>&|MmaJD*W5Fo6a-DI>2^_t$cu zRzPW_yYsfY?M6^u%09PW4iqG$6Q1Sl2wE3VVX>oyfD}rkp1xpPK_-a32F=e?aaXYB zQY=(gQ*0VJE%jq$ieWxK!PV^b)@jP~NqH)@MxOU&yn~@K^?Lu%&N`By6 zz|;|PCOhew0RV~mXvRnJmS3VX1?c|_m|Hh$`F|Xp*|MTq7DYeE2kFsAR2oqb>EVr5 zX{A-*>vNubsECTFsCzTdQP_K}Imf_ROkl2nqTz>&toss&c;8Y^05%BlDGB_#Ha70Q zn#XIRD7wuZ2fzqN{$(-O+m1{mraL%~3dkS3F>oX(pdcj?LJp2)iN`pMxXbDx^yeOEzrP-XAz|i!_bA-FQAqrXvE70WR?ns@CU4wtxP#B3oGahIg zn#1I}r9TNy`A01eq&o5(KIU=>eo+0OtBTp*P)QUG{(F_r&(1JN%sf=tt5-q0{H@*n z2umB$F#Ig5wY!vhuNYd&)8S8X(g;V6RFT}MF_4ayl zADfT|0}Uawjl!Y*%1fPM(0I|(V)5)>jdJ6X}kJLA5>28>L;lc6ehmCU@ z2s^6SHsU3oE=TSJ@7OB6o*i(jS&eHUqY2bwZwN=Oz>5c9_>lc21pIg&Lkl5Fv@fr_ z1~ecyyC=rC;S9h%nr)6*NJxn5%WL0R=uqbK>vVl>3j6zYMgk-sxg#xe_629zCoD=z zwBa|eNECfQ@kI}=7$S}G+_T_h7~*2_AN)f@3fiMEk}l;69~?+KOF`-JZwu4v9IlW_ zM%}y)*M5NMc?aaSlZc0w?Bb9W^DUr$=6W`puDjBnrvba_$MN0bnB_LL@L>N8E6}hFt1wGGK%wKkNcZx@4saSyQJQ ztJoFUV%b*3IFp7%os#dcdcKSqu|Qh)dFn>M*es>8`8mXIFz@a=Y?O@+2a-cjl4tuZ z)2Gvs$!k(KVC^FLxA_gQS=ML80)v~p5j3zjm)9Jt&wj1X$xA%$eLdKL6XcT8l5p9LgZxmnx>{)(S>WaS~OkJCV=rzU=ve)b1Cdk9(^Y0W=p6Fe$bgif77WGuo}k(S?CjYo*nZ3W5!~O za`u$ALhx!?lgD|2!+;(`4AI-Y{7nkL=Oedv*LFU3iPv#=si9PG+2Oe?XQ!8oT!lDC zl6$?rVf7}`3i4(n9Sp+f8s8<1KzGORP3&ZvX3-Tt$@a4F8JT^eg)v&hd`Fe0nCs&> z3nt}|i&6~Fn4(&p4846L-+BD~FdgXzCoYJs3iFH9ynVZ^&riL6vB6=?GQbp&Qb)KJ ze&Rw^BG1k1I7c+FK(Xc*{mNzsAcTKs&Ps=^bdXCGS(G6CZ&(wqHr~}e5XgO6%AGVR z4aqVdJOye0K>Vw7UIzceZnOaT3VDpdJS8?XCBaQe*a{-T1!ZFZB4h+kOck}FRo|db znmD)lab@QuXWA`83IC;3o{W*4C;524F6EgRn&Bgt9`+sJ#*07dib4Rma(cYS%(P#b zV)_g_)FeY{2a6i(0NBTqKdQ`h3{y#cpsX!X9`w1rf=!7c>IF-e=zDRGiqx@_dtgt8 zgCC-%L!-G0zR@(VA#ei7iboGpjVNjr#k-78_=Ckx(Z_n8TQ$OtLoeVzE8Z&;NB)6v zCV)bp_H^kIA~f?RSp((>3pgN~Cq|PyD)Q4-mVpj>IG6rHODZxU_w;c$&JtP+4jhKm z8V4_H37Bh4aPHH)Ms9z{)X=Lb{t3jUt7i>94gs3>;iI>_{U#uHaC)6*;b2BKkbldg zz>dX}nc!rgk&uMFS85?aqHt&Cmu)#F3v!p&;yHf&>KL+h7b?_)551PRnU;a-YHQQ=>+PCHdZ_n(wKJq^g(v@>M zRk1uCPOBpF4CKq#YyCj`sig`lvUD$hfM*6wFOdzL(T!e{<)M#*QJaY_+HgxV=f!?} zeWha`*4p?!@DX)BQD8-~Wh*SAldS~b8pqT385gE% zxH8oZTnP66L4!k2Vkh0BY+E3dWbr{lx2(AxK0pxMrEDgb3+rI%jHyuGa2T-_{I!9C zqdXU+%*`hy@!#wveo}b9Q#=3;Mg6YICnGCIZHJkvHXnsAFaPS``z_o|UckBbWVm^h zA2g^5{;=1V-vH&k`+jXYgyg9n7K6#!S<(u$OU|88Y~ZCIp2NB=uIv&x_23IQtx-Z5$q9IuT(@eiS>M(&|uuF zJ5zeFNQ)j5m!BB!05jf|KU;iRo!{oWS}KGFQCF{2;z_0Sy$fasLd~!W=W`ts9l9q8 z5|0xR>TmtR)OQYFB^j^~#(MI85bkzZvLkQYzGG*)wiC#Kri`4lH7_dN5=brOg-q24 zgQJ?Sm++@1KK&Byqu9#i+g!&$^MWFhNsY&^a_sPP{sWliSXo6lKbo+1BtG+q#`|Td z?%KWFgyBB(ff1t^oPS@~y7|w+yqso`P=Lfc64;jeV0#G{-$F`*8`(}!p^Q0Ou6Sj) z{aw!!<@e3@_?%?qA^~e`%g|S(pzV+=*=4&Fllv7(jxPf_RJ3_HimAZQf`jxqex2r9 z(+ozH4>0GwmP(7=&hw9K`;j(!BL;3h#Qwym{%PVl%6v)=*lNmkdC6ZfFJK+jLHW7E z9=eRkv}8D{HU){3$^scVOXfdi%HfX8izVOXV|z z*-_du(cykQHr@<$acYjRjHUC_@G91~p2UF8KZmE_{28d|Iv%c@jNC$c(0(>IFz=$i zqq4R`E^Sczks{g+ zruh^>uyEdT!OBMV$>s4h8kcdJf4A|}XcM`Aj059Eyz&qo^Wi+Jc*kD|0e=$L%&C3o zOT+y^2{UVANQuxdsqV;6jue>0wpCL$jQ}PR|I4h$?skCl1o4%jqV?&4_n1-j%Qo*X zV|26*FnQ{(bQlX`4ur!i{WC9aSkwQ})!^a2@%IXh=kpPr)LYs|cq?IVrc=iL{qs4DKEXugsDm-i>! z@~|pI!tyYl)jxF}fhQVzP7Z48jYd?e3~&tN`NK9Z4WF%Z41lkHI3;Aq z)#b8NNQNVic7C#d8l(YMoE@v_XRYy&3p?&X=34$MiJr&%LW6UzxP33N#VaBp)kgtf zDaf3?lt;v;~I6cGwgYT=cZ7=%0uuWRGl}aKnJY2SPw^@qR#0r5lcyOuqjQ zfgD6Jy&P|#jZqmAcs6B;%J~<|l{*U={!w_2<G0l)a7A+sBJ z5)L1Y!eMDx9Szic;l)g?wu=*yTi7`%x%2U|7`3hr3F%bu9= z&_^DCpNP)xugl(>iSNL0?+!&u6ZNd(G%06tgRtR8_C_%*rixdD`<~HA53ZnP9<#TX zzuu`q$~W10!5&V)u{C_!+oRxR2MG*ByZaLDC$e9jt0)0i0w`0?G(>X%v~A%)Oyh}U z0M~O)j@Iosk^Jun#T$zqKf^5g4fF+|aSW)A(YFx-1RyJ=Ab;HNJ0b6D?g0;c-xkSK z>tZ`-kff-u5t!i$uer#&W6k@-`ghu(01e;or!W)Qizj>3(R1qpcUAFtmTdR@9PO2trPX_D6$<||8?!mhFf}pWIsU;=wdNE|J{vu9$bZjf=bO9ZCETwN4 z32TWVpicN#k@y*Ju(YnYwwtncz0~tDg)@VsV(D&eCbPbPd?+jJ3m*c=qa87Z-Q)4L z4-dcnBT!JaDj})Qvwvp*TpP3Ox>pV&$YvcZvcSwqqJ99Mjz;Bw*xDbtkMN?~RdXs& z*5Q41e_z2t45iyk+&Wivsgra1daX>%zaZk`k}UQ0k2Rx8{w<~yshzhz*xO8K52SAA zGN%&~9;om$fQ7N(8BjTwRnB{ykV9&u6DM&n`oIXZ`mBMKum-fKIfivNgO?1PMIJym zeZTI?X7RK2j!d5U@J zG2gIJ9bgN%r-8fv9&GS_^*4|vJ{Esvo9JY59nQoLp3)OKMFyEE3)1uxO*wz18JpjO z5Fx`YF(+tn?P;jA4&h9ylg$c3jRgj>>66+Ov3mqJ?_^Rzh~)w-XA%pBRY!1KK{lSB zAQbKd6*Niq!RCHdRyE>H5)_`;;Z0P-`QAK!`w{6@DrqbCiN%?P2y^^Mr&SR91$>4M z6=>>sxs6J*0+n@F&b!m{6YwJH5m`G*>h+@y$j{pdTB21mI|pbdaudgi=K@XWGnDOZ zFCm0*Fk~0$mb+AV59?A!(QLL#k|KaB`e)w(%+azS9Lkahqbob@|OFYACh90`ZW@%;i@VH>^)?m#*7Zfo$(l^3+oj>YF!Vk zw#Q+*m~N<_$tmu!;csfwEI&iaRM;xL3ZN098DU?s+F< zYIs&wml>UW3;lg+V%cZ&4)JiJ8HU=u7LFvgI({-p;$q6A(u87y+KF-1VZq z^5I=il!7Cde|@I{lXX2BM3!Al7tZAdXwg3w*Djp1 z)8ZCp8seg{-Kb`+KcSEA!S4yHoTRRVeucbC@v~|}|52=tB-Cu|O&hWR@6*CyEFew6 z6ZcRr=Rexb^1k(ELr00nB6IwkpQG~%aSRqQpVqy*UKAFn98fssuZBGBJ8ttN^e5MbTSHQ6KCnBd{gW?{jmJUQ!6wqLt%ZM6QmfygU6dVpV-@x6xaE z4~$=N!`zU8ZD$Mmg4=o$eC4EaSX$M45eFM_3iStu0@VW2ztOT!IyoHsUc5(FmYd8q zu8tf0C9}-To{1w_c?K2KuRRsw4E~wkUeM{1dpFi0{nKt5C47$A&Hhb{|DNIy1dCUA zYPX+!#gIChA_$T?($#Ooj;VI*jlGHy^UI&ef5i=0Gj&?*8S`L8%V7C)XCl^H&CUxB zD0v7s1<`ulg)PPSe_K#^iHsi@)!K_V-+-!*F4s*A6Qnt)&z}f4{|Zgv zAw#Y$2wLS|;MO{w<78aWwLDWn22@71yPvTmK0PSeyet-d>3pkdwy)#latT(-RfR7R$D!sb{Z@@#W4FWPs7*<0ET{z=$;+ z#w+gc&`|on7I)o|>Y}~`)Kpd?1gTDYA2N=69MAFXhT6VN@Zi%81^`g=FH3&@eY9~q zC9j_W)vhNRW@0kWUUM8T^msPGUlFt?}*4A0Z; z2Xy|;8{gDe;8dqqwdju2`sYhX>IIwdTP{A@==PbzXGn)QKXX_il*$a?`O(~I^9wZx zi!;M<^IwWtf<(?W-|JphO1wpxd{bO)hHN}}fBPHV5fq(%eywA9?+&N}Yn&2Ni|Pb# zCc@MEUp=2cimbUIOk=>tX_5i%lC5r+* zng<3{hS&WH#omX(pEPlaDZvl#?le$8UPl&^a8B!AJeq=!pW-79SF9tj&X&jCLKtR{ zUV$5ud{Xx*Lg(psx=Vq*_J3NAF1U3 z#ap-YQBJ$(Jl-)tp$7qZhLGX;C58_3N;bb3<-DQv`hH{VbiZPQ5OdJ~ z(mgWKhgbXB)!0JH_`V})U{@OSrR1}j01CWc)Q9#;qe)w8#X)4gO1)q@e4ni%U3ZBn zl=9=!bgX<^)N?7G&en3;9Ubc}%e-=Bsdm17njhAA&GQCkCneCIsQD_hiS&|iJ+K1k zLmaNT9tw`Nop95Nl>Hb=F7})LYHf;=1MGEAYhZ(9B8KN@7e_PG0=rIUuKoI$8$P&+ zwOxO>S4${8<4ldJQW+MR@X+92muoZmtQQ3(+^vPE$}?A44cLu3-hxF?;5VpU2yqY< zWgiGa_G^DStYX6G&+unrdfE(Gz0@Gjch`jo5|L=fGs@IQY@r^BFD+Mx3eoUf&j2qE z7LC}6uHWBV^=Yzmv|(k`I5-C)KR=`9@f0+G5?iooEd+xbj*xw4-Rtn%U6M~ve3W6xN+h_JYNh67tzLBDvM2d~Cp zvmGut1tSQ8!*IxXCyxWSi!8Ceo~IH;WL53vw8@*Uj z`&4)HMBJ}i%YSz{o+#>gg})jRlz6)4cY4rxiB;kO4$_bdY=m$=ksJCVa!gb1Yp%(9nW3Pea0eqBfW_2aWL*`->!EpTSdvH)=c$gQk|wL5PbN}=7JsjfF=9wtG4$3Qa